ࡱ> (RdO){:EPictures5 PowerPoint Document(2#SummaryInformation()6t  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsuvwxyz{|}~      !"#$%&'*+,-./0123456789:;<=>?@ABCDFGHm~vʖݵ3qo m7eoL/qMR9orFDD.83Xםߺ-Q m3fk|]_1Ng}=is(:Т JSoh)mr[*|<:?Kj SvY6Dbo#Bn8%3 021h LDt]T.9/78!>m>Jַ+m1P]=W~0% " 'dQϟ8O=jfw- żj{>nfo4I% Чъ[{_'4 ?B {1c]tPnv7~'!5Y.mmEF"~[Es7l0*z)d;6[}9?ӥpiyucQ.<4un1\Do{U{s'=. ;)߃ ӑ3PNG  IHDR6gAMAܲ pHYs  IDATxwTTǿ[E4 M X 1*c_bb%ƨ1F$EE#1""HCav`ι|3ϝ<3AR aCR q6] ywC* MAT^4444Rihhhz :tH5oۀq/%` 5YU6aE7G<滍6QEG%l3gi bꚋWJkC,7P'W=MNr2&mQBAA' $*W&=Vz93 li)d i9]XJ t4>HET:#O=Vա4CEb2r%]t %4h?&gDž`H-bx'}[McՉuza\e蔒fJ}ƹ(PeZD%dr~knܧC'5̎8ծ|9W]'iHm?f<Әdw-.kGVTqMeLNW)}'p;@YmxVZ8.(f5uvfֵ){iPBaCc[S7׆T^¡{y9V#K6u"xmmc%nGqc Y[s2k gfEI.1W/TDA~=ԐG"DqW |!CP%Yp"fӼoyZ - pN Rh9$6ɢzՓ`E3z 9εBZ`{E[ ]rlODCA٩sE0102m*d*+Y~&}qT~d`,J~=ބ4W2Lwmֈ WښKMm5R~i$ k]*Jg-I& IP?$yS\Ͼ4?<֭>.v%쮩0 ۡ/nA{޹_ƤAI(q='iV3\w wȽtg`5̜lk3Euӧ| {utbEgƾo"ւvCw X@ Ldؽ)KKŤV@MJ{_0X⋢`{_ڎX!1'y6CM]h !nFr,))_ u~%.]6@O47dfgQ M+%ťMō{o_b_|f& Zh?<9#T>jp "n$s= M3׎Pl**i,.i,19*d;R,MLDS6ⶨgfۑD':)Ȩ_ iά/ :f? /8 ,̪)H5nq6/2^P@g4@2,䟻Pö;&9 C@Hꆿ9, |@{nVAYQMrGB5=ޯ㣊W;lanab/>٠j9hRW5D<ۖW|nnq_cga f"1'߹_NVxx-)[8X,;g o2P ??){8<]k}mPW5ƪ*=V`ikaWM"8Ebc;0&mN+jhx4a }P `JLɵ< I1xN c/ i5Ji%bF6 RTX{.~4Z [Z4i`<_%Kb1H]YQY1 Զ}ζmK9,ACms{Է1sl6s!LU.p#˖S9q]oP8@?{ȇ-԰i.^{Yꨏ,}65L+`dJ4D]ZI٬֜'2VdY뽳yrhO4Vfd(ٹ. "~ 5wa.g 4?t4#K``,.bVĐ)'5~R+ϡFap'4 XW^/;hr^e <-otmҦ Aӗ=}F_2hmWh ]W<ǸiVƧ*>up,iHMI-KI-\dxxS(tsa3NPZe*b>_(=оkUׂVOS[u(`-13tu~tP! _0~Ʒgn(gx3=nm>'`wH2xpkzLV+>vL ![2!Ch_9Pg@_]vojc')V&)Qůy4RTfl//37wyzo_4 %D|j.L8!tƫt߰`ȱHߧ?L8hlEy+ '[P츳54–^!_rG&>fzN y-G+ ݫl6Z+ӻiZx^ݝIRpH"[L? rhݫ ͆>RMI-++o15 B(2ݫ ͆!5\ӐgLCCCC<[=:"XH2 ș &$ &2 VY\ nvQB-*DU7 m6n9쵡l_STKzzHtirӁM6v:3oԃE߹n:ʒL.4v~:κЕύNxӄ_w̬U2 7) pl'eWV{ibr= q; yFXtYZt$z; 2%גJU&voAh"M+nCA3/yzakSDL?u? T]QT<p!5G;VYUBXLqM^C*ZYFLK"E^&'I̐DeUzuӌ f={^78r2cws h۳\T[8]ϼ^by?927SI6Sk1]@?AA~fIy?̨{oPq@c ['ԝ ׈;f|cTZa=W(N͍|NiWK6=#2et^~:iW౞pP,gKū`ĦY]MY#6@bϐT](`|?a/ mNed-)3̂[#$nй\/$Œ=tّWrIWǹfMSyF9/b8Ak}wBKn[=FqOW , l "[ݒg9`8qM"`f)8~C,fK"9n8~>+!cv,fR9U9R^xx}h%#Gs k܃8] 2"!`X^aL IA[MQ(%JƢhVH0Ғ!֤L|!(6PQDA! ²?XD{ Ԟpo9L[(ΰOSWF8~1oU\Ґϭ?˵ߒT_OAλ#X -'-rwV&z:5\\ɶ{&)uT7:v%{kF  `JGZf՚lB+BkkIJ.ܡy=-TzufmNWn3qi=`,fN#ɳ.aDl OE ~ÑL7v':T%UTlpŕ //0ۊb W pq1:X|A=mv )[ᕅhؿ>U;^v`}ӠBwzWWT\N29<@^%fGaNut8Ehw r9BۙHb"|C6~yx87GtgG$p̙8.S-\.Q7Ꭳ~EP@*kN*;$~@/k94R`Ϥ" fhV~0sAA5?zaƧJ=.=kQ~$gKowf.RS8 Qے/m2Lv49Eׂ -J#G,nAfNbl#4tNtv&b  )Ud'dYU-v#}2?}@Y1; nɞ93Cm}/W0@'՛U稔LIKxm𵐆#< r}Lwr8%Rk )zZ,p?D=mR^Aoa7yUTfZh= ffd )!fjv8$k&MˌXY1>ZXپZ 6l5$ a&#"c?r0wqt{\ h@ $"ɧ d(F\\[?u x 2( yT B R) 3hJP(Π)BP8WYyI䉿Bt3cܖ^A{}yTOO2g>3޷-v򧭡nD„ hT?t$ RÜPF&1$<لX4SIa Cw4L'`*BP(B_OQ( gДJP(AS*BpM 4R( gДJP(AS*BpRYбIENDB`nAY-;p8f$([9:PNG  IHDR ^%}gAMAܲ pHYs  IDATxy\T 06Q\p}1}'WdiYv-3>L+LoZi.]喠悂 0gs?r9s^q烿s8r 炈s4Ȼ<=""F""Rz """"Rz """"Rz """"Rz """"Rz """"Rz """"Rz ""ZA)5n^qEޔ2'Gr7xz]V[:!J5H8}ݱuxۖ;;x%U8X.A5ԃ}S'O}W,h3_RH}!,EF @z@熾ccGn6ez_]qo>-}Ahjm^C.M0M9`ߡȅoޖ L5VgO]ʶyڈ&Se}%"rJ֥&n^X?-WGߛ6V(ɚڝ~݆wI\T)֝>M\#fHdО+~KfNhچ"DEQo7vRTpp؝d+C?4i81]M}=9ӞܥUCbNȒ#/FĨ׼gk,;tkYqxa_.,O'`6 ڶI?KDܾ.A:`a_K^?>JvyܸR ylD &y#ҷM[9pzŇ=Ɲ.8N}x*Y3nh~t'wㆼg͎qQ@APp.r.tʺd5];Ƭ|{E/0(R4׃Zv^֙veҒߢ{Nd7,ܲ]JO: SDy mu6͞]uUI>)m0go6{iVzJlQY]?땸z]6$ l@rx꣨R^pZ%6G}!dNRZ0y(xy;o" hP@ v+Bz1wxrmҔпַ{&ۣò'6 sWFNƅ$m\h6US&"[\._{&ljѥۨ!-7l\( PpBAÙҩ!mf$)b({K&_l0lo__lIoxmV>PlF/P  h:m4;|jkѣm&ɮAAcY6"EDT]gQU l]r,2ەBمFmF,AX]: @DDuTH끈TH=q9̜Ydy̿̚b_<]=8V$)Q]gjfZ`jH끈TH끈TH끈TH끈TH끈TH==ӳ)5FCӀ usYԔl?CӀ u 4aٚ MCruB,QQ𗖡iм\n"".""Rz """"Rz """"Rz """"Rz """"Rz """"Rz ""ucڼNOn_}&O~' MvWX.*=LYTV't/D=١_ MCVt%s^\$Vr.8{*p$ds* ;l@&/urF3? MVXW`pdbgxLcG H` ̇Fe 2?0C/eH g{xt܃i4`hnzTɵ++gr΃G>ڲF@+Oh=iBb~cĔh0vRrOwc MJt1pĺip3:JK@mptBžV nH l4{c>z@`h04 *uf=&-{X @ٿAlٴ>a!gVo«$E MCsC:xzo&bMvDˏ _`Ӽ-P8$ @q\;7bh04 *%RM*.a`kʳ v+ ɹh"&T?$ @ks!O. x|܂i4`hnz`=7u[SH񍯿P,{7507^ah04 Z %""Rz """"Rz ""ϥ)ս?n4`h0*8 L{_|<=;?8a\:ȸlapf@S?| MCbƼ%^:rGymdA:Z:Z &sz14`hTLiZy{{8@3j/Ǖ0 }8+~ $dc}fz!)5YeV 펜As7r=>]UEQ4/g~iE"K?'vʭIy;kV3*C-;&osW'G3ߨ?TW%40(Hɦ??_oUi*o>_mi_=\%! yd-;Ɯo=BGo{]=F]Oe:%y{ނi4`huu^-mik#kk=T\xz.CӀin!9sYTv3+3EE-4`h0*TtDJ ""r'`=:^gٳg34W14 n͝j左ެYޛ0ӳNe?i4`h^_=6""Rz """"Rz """"RzqYK'B%<=ڄi4`hU`=TM[vxkf[|ӿ^=XmVV1fZ6R#Wlux`4`h0zJq(K5uoXDLtA/o#Fk8u@ߎn?A=o3EQЂnS׉bx܁i4`h5P)ص]-ZQ\ XL8sMv'S_x2>ԾRꫯLشlRd'I-z܁i4`h5?TzĿiqj4컾|> 3_N,]盎'N0g碅R~GQ`Jr.$2`" ( aA0ա_QLaFm)c*JT;P>,BAHD1;\.۽\aD\6Mcۼpv~cm.ֹTZ(`OfC3`6@6[HX!/N,6:V P\HcDJ/e%'&JǢ@^S;S fZr}94Ȅ :_߼23mևcBuﺒMQhYW|礞9lG :n8fC3`XfZsS5a=f݄ҭ[J_ڬ\jyk {lc~y-صm<>מ=^{g B+n8U^@[<knZqXb 7.^_o}r{^"ϯ|ng?q2^Za*fC3 2!rhۇz7R/YwYrJpg.! #Օ_ԅo8q[v6d j5u"wԘ:UK ҉Hfdrf`rvs&ⵇcuΓ !;ұV[yOϪQEQA `h0AƓKDD@DD:XDD@DD:XDD@DD:XDD#! fԍ>bK6 lCKg^d@F `hi.c9&[d+yW2-C30-C30-C2\Sf 6,4`=`=O. lHȚvUG$dA}>XT;r\yj1'Wc!7Fj<>J]|n `h`=K|;9XȶueF[Ќpj:/xMq|J^7BWWUvNo=+o_ fC }0=R8qʞ0PPxvyfCӴ=#x|Vc^mڗSB/wqrQT! DŽ֡|^ `h`=KW(*!N.d_=A`+p}!\H"U.P<וzᄡ `hOvfȋs-6_ @r3@7F'ex[ZV~)24 mKq\o<;֕$8yҒ_b8aK@+vģU;j9{> 6xiYr㱢j&<U:@v'e#c^2!t7KH) Ԍ/dfC3 6sX/hsN1iɇ QWacrkvD:,ŕ`h042;4X4@jgĴ}CW9wGO.;&5勵;ϋ%_gM^,j~Tʁ x[U dy?y螑  ̀L{c#{o\~J†sŜ}CVR``uĒF{ur(ާf \eGPm(zo߶RBRf^3s+ 8 B^J9moPvhqhdGܦډv9.R@i^<`]v3)^poSr `hi-}$I"G:Ü}`= {&qM?O.G2XDD}YYY˪Q:v;g;RM.z "JS&|f "Pk+l`+lpL5y"q/ۻ]۴eÀv o~|HmiںrsYݩ`=%zfnnLj~[smC@쉷n__ǓFϻ[9uS5""K@fͻ eɻ DN`=U h̻sc=*Yk^sH=#"HXG <^?Mz "2W 8T(yӞaMXrQwz "2 pɒٿ*#%sl՚\D ݏ}ՊcSc|l';33{\;'ؾj'Mvy&D̟I%끈,2QMnw/ͱ  }\HMPy|wwŬ6쬐J9)#֘f3Z4l.kO쯉ZD Μ| Pְ&z] 8\u}jb=^&""""z """"z """"z """"z ""%t(A IENDB`n)^`m>Uv^2O ?g8vq3؂]{s9I.^jϽ\&vBy|eQfH1mžY37jyQL; i[lIUp K~ mz7-]:~wF g XO" 0yս&hK;?Mgk=cVKC[O>Ӱ;b59Ŭq]n鲯jU͹WR=+ԍj*qzvjG;)[ŬfΜMs\"`4jڡ?Z!({s6pڳ ;(U}%Rh!V+^hh ej3㡀fj=;Q!2rt+ 6/Uگktv%fL_*N܂ԋ#}Tu3dV ֟rfTnzxh|z1uvYݶR)xz}̌[0MZ|FݛBl[CLeÚ6 )Ez E?%GpsZоf \፴C, rو/vȹTh-l{Ym!f/kRY9<BtoHܤFcQ^,+6P\->pG^zɽyk-j;-ѵΑ=<ꭡQ |dto&ss de]a[c-JuJ1W>u8F=@Δ2!< QgY# [!m]hSd{%Oe& 3cZ֗g`Ga$U~~3ڋ%am9Y6$ú+8v~j{ fkW}pf d XP;!4̷V`AbLBot֟ѥ^LVs%+pdGx@ˈ"|m'FN9=:'#ॷ,y@w٧[g q ">== 8sBEa$V|Cj_#Q_jB-hț:3]z*fdb%8}9Θ1 w_kӪ[Ң9Mbz mLC7~Ջ/6M7B0@cVTu{qOOlKz()dI$#b[-,EsOO7Dߧ(:@|jrn@Ȼ"6R<0~36EK*>Vy)(fy]&{fu޿>V@QfARr!>0%\R}dgLTUa6t&AV˪wq,gYErEʊ-,#mf$.N;hL䢐1Lfj8l=:-?{V#ruc:WXKN|n'`-հVIV1)l5U;ى+*GFIR7=+>fFoejL$ ]ɣ_SBM!6So%Մ'fʐ!GSBfPBl戽Ԓy !*`Qcg8Bf;et&!<&;N3ekQ<*k71P~*)T7 !ao#,ȣB_8Sx?d}r'mv~ts:Yxoc</`@8Ny `3 =ש xƐa\J#q'9R 6ԉ:˄GX_񵻏Εf,תyzzxF*`M y eF_ WJ0N*GiNւ<]8=`1^PgվhEg;:ߙC;[l 7GּxFGW<c:N:شC":6,8) OCd~_agV ؘ%b \l#' Rz{`yOU 2}UsY?:„/lw\r7OF _O$`DBuKSke#\!R5Wn8>A G:qLL@IJ:愍)@1*չ,9 , #N@$}7`N(\l]/{utzN=7w^1c]U- ٙ+/Kڳ1n>{Eؒ^Úz$4K2QSQr4U-"P.&>δ;wo21ǝIs"j Fgz<t;ݣ9Zc=Ӂ70BrS+oْ fƩ_Ǚ7=vg}?X#Ռ߱z(/#5ArD| ю=Ӹ1m]xe-\)Y5A jaJR);;*?njN-`aYg Mf(ؽe-+ vod DzHr2(20 (D-=dO"c1M\ Vy]j2H,bnn7S/$T4qnmUBԩEط;ԗ44PE\EܿZ@' ]FB6.^=eK5R)&,X0B:&7.-x^\G0JXK.TTѵaK|ſj@y`**FEvJ01/iZOW;~>-aZNՋ$%JR+{tc/zwظ`}M;E@ɒUnuS@jf8[ox.=00w.qzڸSu`l3 w7o>>:ڲ'}EH[% 9m3>:=-g,K|H@G3ZiAssqC f36/B-tc'{^gYؾmًtq(uzG2o4&.8ݙFg,i/ jL3h{ wI@ߴ_. gʦ_qR?}@IsxqU1lUqKMX=^yPͨWRo rQS3 }4Y A#5ɣmkO{+pzD* Db;k)[rUU{Ruw\qQu6jw?ܭ:wC.O~>6ֳ~(J={3FО= U2wT{O sCz9aMzgdad"qĹc5ka,#flZjUc/勶ԯql&C0iS&ǤcLP&T~м4H?4+d ^v>FAo. _5o@<zxL/pl9$y5SƳB~ԭ^?,34ԍ hC/}ިmyf;pҷY› /DVr)T5d!zN]-;9(kRxyJ&:tmQs&}f2F畜[};<0T[BQ"i@\~YڵC>+T.Oծ/sܿNl[s9)u=DT`reն@=gkeI,%"+r9{;. {vDDd$uڇ*$$ِ|WlC'[{D$ ( v$qX(JD$#hDEG?c EȢ$`DEEYK5]a"zX0æsB3% EgжaF酢W6vf Ni5U(큯#{wBDf#ST)))}7y\(JDbren^lPČVؙٙY⪿Y lPČVܙw-k [.%"1cePԢX(J,BQ`&KؽKY[߱sv;Z{`bB BQ`M0T ?R:~ySI[t=s``h`(UbM*nenק!fzKWS^f_$%eh5y^C6/OS`M@禵KpwԊXO朹FHO.gaaI @?53V&rkC--ڐ[/VפWZԝߎH_7¾.sr3•ɓ:tJZҩ t{#WE"P[3$:߸KD h kl+04'jN499V;4n8y=fz޴>jGC0@i"0ߵ;μ25vP@sKv=uk5{[6V"9~GìM]6u` e(X/N¿َ9qmsOU&'>촛T7/\J 3}GZ<{;`/1{NWFܲ`Ǚn&8j]_Q1>>9go> ]dY~bCSGD2A?>5\3wUhj?2+Uچlߺ+_S:M 3h# :]ph |S|-+)kf#Qot"ͱX{$Čah /$ZsX`Lw~m{\t WFs)SF2xZrjOV^7:0oq#B{ .1WP@F-SvD͒#ܽ~%O#Te9\.k8zZr=XERe\/tLo[$ 0CUXaJS?Af75 [GrE%ځhE\wj{C[^uo$Dj9.G]j{!pY Yc EBBbXH.>kK m;hКުH^ Mc,Q6Qmڛڢj" BQbd8vKV%Jc8,Sj9څg)QgndiM[$0hmZ|xNKYq9.H.~wn \,4N#ީYgjE1EFF~4jGaNkkmFBQ K^g-UPtv׿_eT߰Fg愄cMߞV酢ع~?h_%Fd%,'Gn$PԢ*P/)6;2U'*ڡ E`dX(ZVZ D&chE`UI$A0 9ae&AH 5pk٩nfjnu<](*ERVFg+  |Ae'W(:wHBџVYtF-VX})rv\fQYD{cbb-X(zDePD#i6`(1$+?aB EP* E8${- EY(JbB18#CKBQPZ$qX(jyHBQV,PqBPbkn9P`fjߘ=?ԖB`hX(jX(* 0#._{{>Vj]]tؐvSz @0h: s0hudJ]n_`BDBQK~ k`BRu dZvA3d-j֨@&RvJ=NJRաƼcw(<|G^?vNd( E jrHJ8/,E7^DWhPj衣?mnT^C+z+brC?XnM.=-{卽5IWmQqkx\>?x#ֿ{$"+cc<o !gFk':Yܟ=yҶakź^uQw@h7ѿٮ. y",(X 5@hߒq%P! 1k/\rʌP4))+@h yy{禵KpX(z:uG @朹FHE:{qAX9"e<q鷇 ή+m^A/}ٔ ڳo۳dvNN@ PCnZJ7{"&&fakœ&gJYEѪk_P={Q]4~!:EsBQ!{ 6/wwu xvދlX(zt*C<"Vwy^?I/we(\݋/jծn%QjӸĦ.=srww*ԵvC,񄸔eP0 0"`YP#T6P,1,BQ밑#=j{^yX34͓Zm6N4Z8Bf'W**p ݛk~Maj~1 Gs0ċah,1H"X(jžX(J6LМՒj̏sfBQ"zb`mMT?%%+a_XwxNz/{uEPHlnQ?>"3mnc״nV@DTl>\䒍J2ǗDT6`*+*+ EI|tPDDO2H4X(JdBBVY(*z<#cX(j!,9 EMå,b#" bhe#" bhe#"b1HX(Z 0BQb= EEFDfBQd{"#ӰPT X(J6FfBQBQQ 02 E%d`dJ E0 E8ݶṡD $k HhD%$HT?"E$X202M Is.Ç\Dsq۹k; ~_~!HP!HP!qUmY]'I,}h߷h,/l.5[_꾅W{8+xh"nB BQ( (uBldpxeѯy8<B\@C`< EFc`0 Es`(U(zk;o,XSi)!6E&G/(dts`U(-Sݖ.]Y:X(~`莭oIM5Jg͖TꓖlcDcdNq0000000ρSfP(-8D(١Ĉ|jÊqm}|0 q<Ͳ`l*IC[mybf7`{^J*=fY 0憟{s="Н0[Ch@0506 vlKSŀmIazlM> < Ia Vƀgpoj 7gӶt=BQaqIz)waΠaMhόS}[myA 5Qks#ntIi8^ IcueNζmYۛ=P_mNl-ڻHkҴʻ/tgD̔#@Waq_7@Q/Q7aP qEɢޜf;]a Od)|%rcEr6 m!:Ef ˎ#&~}{y{;c9:k&Pr1F3 e+8f)#Hp3W]U̯͡ɩ5 549?m+"1a5z~fjؙzWA9t?r0'rpZ>kiwig]Clj"?Q!YSuBkCM?v4t={}Hx'GN4BA?\9w`PN Ԥ lC6jUO~UiեGs7&j='6bZl.WPlo[(sҀ &;!Y;_,k>_(ei 5dZY~Q;W >rNjcgmv d4𖿷?:3Hݳtۡ_U O/ͅo4*Ӂ=&Lە ZrFYsr'[b[0c1neƌGRJ$k*mA0;YWj3 pbeј1ۚ1e@HkՙuQzpd10FiM{^={Pi%wSlף% 7y{j6_^l3l5"qipow>GWW3h}x|_mem765gӎ9?E44u]&K41mNb=`/?N & Z*L'^N .g%eےt Ƀ'lkEd+):dLOCo:0ڶ֯]7sz~zp?f$0~f?"!|pܪR0fu~G?ʘ$%l:_p%Kj鋄ĄKI6y ߴ96 ܹ ie9#)J;[{&ktDra(5 !>CgxDq(BrSI!DU#|Iׂ?nuO9/{iRE1 "fãs!1:{mUjd77:&g^_](t~p5NQ+i&\sN k+cT$VQl9tҊIn֐TKBWWf."+B(kE="ód3%nUj`卮6%]y5[H5dbn8BL;Wj,::ZZAQTK')L[>W9V awŶ{Sߌ^hWC6yokajob7505Txi m ϲӧ"̌3i.LYM9aNv9Q/x޼$\߽xf%*a[?]}M 3#KF&kt =&ic'yT2O2J_۾/6aқSJw ML1^O&g{A-F٩g`^׭+y2cH2OP Yi?wFuϕ@{C/ [ٴ5C"#-@jRc+h( ?B,=yu[ $aX݉= =P ;v w'sɱg) 3ӎ } rheEga'+#S >9lw0W!b`PmYRoWs1~qa<|@LU {sm#/Z.=y0 !"D ,M$NŬZ ?#BtYayZ,uYN!@@VB}7/ivxBH|`ޑ; s5 eg!XQuP$M$H"DR@T knخ˟ pyd ?B)00ܢLVu*pp`i@eyYQj|V뤴VI /aF`I.n 2z0WN\-tYIKY?r K_@w?z%ѿ墼><>Š0'-ƾ ~<(Amb/uF r,I* È^p2Z@A$Ԏ0 0zv!4PiPKTȃ:j ݲp43IEђ&plOAt:}hZ Z)? Yy MkQ.kp^akHȼUﻳPP[6R#H$5O n]cO~ԷYx nUv oPAw28$1`6q;ՀNj߾4vg4/?32DLDiTSZ_E=9dBs?j3k))̩8`8Oc"E1l%tD+FezQo-?u[;l˶rd{*} 3?2ɦeݳ޴t(kzM&:rܖi}y:ŝ|^:|])B>/zU|,[EĀ& v5 cS*IcQ# ]Buʢ5" @3,tBu]+u.:FSZ{Orz%KT҈nV۸zRb)ӒkBQsݼmhjkdlUCʝhiyvtgjHskfuqb˔uh.Ж>I vIkWH޹|꧃V ,/m ocW׊?#B9_]ON_`Z2Ӯ>!:(^?~0|Φ )mChZaJE& N0i佅'hO2ш0q-U&G=vAYީc&lH tqcnhIOE3REQO֧ kS7kWA 3uԘNOfƬ> 3e11c8~b⳸*.˾Ц:cgsA@dpAD$5"R1R)43L}PD%E%sC WPVQPUAdf}13l2sy9{>7"Z(*:wϾELw1ڥ)v^Ry5:!nmR E-) ;Iڞ'gDg^+(p 9oI1_lԵG/mD@R~4I Umﻺȟ?@)}A |Q[23EJ1cYǞ?Mb|(4Z8 ި8AJbLL̡3dQa;bSk"j,Y|:|V,3=~jwDľZ=:sf W=('̽`I>8c Y p<$\r-NrH_ɵ5$aF#nC;kfjY!PXE\L^̧_'"SҜ$„<յ!~_\iáyゞn֫J!kp{.1eMGݸ~cVZe:w6 IU4u퀣 JEDO:tn}*7R!<@z#?6LP%t2.k> 05nM&jXoټʥ+T"bnM\2<BE G|.!HJ/Us*Bo?n H!qQB.€ñ2{ŒGdH,KyN}~wԹةp k^BN4!\\l`/e rRpԬgҋe)M!=Ii r=ooNOǟ+swۇܑ+/ &, T*dga@XUJқfPSSSSSђȩ,Lg+-_rS_@m.TAbW6]q7cB1 𸇼TA=;//]{8&:ip䗚 Rɑ!!N kQQG"7=0U?8EvϺP@b1N^TWY{KJ[PR\vpګI뢑VQǒVQaaz@MU^|nKuh6rrrs̴mE1ҬEU3] `;J RƊMŹ[%Wt~D9 =S'af*M?7r#-[5ysoumڸsv,˩QK sv_YzՂB]',9U?DMi1LLMMMMMz뷛YY/UVUb(RiPV9iCE*&X]_ޝva`'}cůavcL 8ΨXbwCV6TrK#,TNI ozZ]< W><!` ;4ÎgbKE01Lڝk"] - qs>18qՍX(귊/͌&/!J^dnԹW}V{ .J>v Ot}p9PfN} д~[q^FH\ޏRWJe;~UHܕ*3~c=gvm+}Y-'{iۧ_t250;; p${*Q. {t{N n2 G`CZ=!LK"mari׀_~5|ݭ̀NCBh)T1iD`0 %֬3C_Wܴ2-eR: EOeNv]& 衭[|e'4T*bmn~c7:G$%֥u(umM5(u~Oџk几9q ;,hV\%h:}1{#/>YzN0;:zAg/0AINxs/,L;{Bo5>ٟx ..#G}ȸL@8iG\yaÝ9ZpaSUS$%qS蚺v h9 Б\~7<,Sk..vkU{&Ï{޸zBlO?0Vhq&Vis5NfXFEU|)și @.4?>fȼaw}V±`c r4fq6{P*@4-Ɍ.nl*>aηC;8ts3)TԵS >9hR.W08107pXi "$;UQwoLKBb[%[+RϔW,?B]-0`vnQui`qZR΍<V4!}?_0Ō7xfPBB;䜩.7W#-?I O}NwB9E!u7k6QZ)sxa"NBf EEEL>!l/`[MЄx1M#*zLҮ҄Ҙ> \ט{_aշIWSf~NUnjXKX/P P@X*,g$;`p! +m i @j\Hp *en ( eF5Hݝ5jLhv ,ZrncA5aX]3U .!HMF5ʹ/*=;{QQ*Rn^3Dp8i;n3a{PfaF?4$򵚨0~Mwԅ,rߒ{\(G :OαӂX\{d0 aޣkNJgegꋭVm&D -FŷM|#]wLN_ֵ[ дvu2qE>79~KJ!EjWe6a(@"@/mR{dN31)6#=v哞~ޅvB澷y4wEސ0c' IDAT_΍X8~HuϞ<Z@Pxf|H‘:F EU AayMR)UM^ Yu\){B+7]GZrum4=jR~MP֙BUxۍI{lf$稖H߸XB"$@|=&KͅąF;7&U: [TﻖE D5P4]`d^Zz p4!`0 \w7gHuM];Y "I&^=("1ReÜ0i諫@H5 bv#͔jiY%-iOvG(vs u~fQ~KрAMU@*`2Fz<6/%T@!*}T0J[D*V]K{_gUZA޹5ua9I!H(UD(hRj k+uQduE@pSYulNJbE˖[AD ᚓD3-ơd}oڊTޝТ7J􍘿x#"CdKc7s^ٗ =Z~Quz3=6yZLJī)9$ iSx6U91O )*Pȧ5 )e/3(m0_m )W*+t[6Q_ZaS`)zPJ %@ y҆]3̽?jZeA]{>>r֢"b eUh^y7k|>豇Drh`9,5K{.aQ-7ޱcnQMڛxڏ:Jw^|pdK<>ɽ¢uqznF* ,±-/k.* t:44h&=ϚUx7S?ݴ\YA&0p)' F靛^DrP{lם0%Q7<6vZ~MՋIFʊBUv['.;d,:E>`"yD]KB\f>0mRVxp3cO\@G"8cJwBm"PUЎ!<;(LG wcO+*SC fQӴ\2| Gm"߄wֶ zD$Pd,M_G }~`8&~FPO/QR?'އ@xBnbhp+A`*郼"@w?.MmA' h⟸:#Oށ|jedž ghch&n+&,zDJOG @eOro=>J6L oRlW3akkB Kۿlǁ4BTZ?B{ P=Y˳X5M)ezۂl_%:Eyus^);b @Xҵ_iLơjV啡z@OK[$EgO}ue^"W{yTK\gZrP)uW&| QzV'j;q6O'3G~:j=)ҮRh:J)C®k2n֒ :1GŅ]Hq/LسXDYvs2w/wRoS? х{sq2`3'G6Fg ZY9`G||P 1*iuJٺe]p<~}Je6G|XOR]Pߗ`#E)o_`[FٯzO]"uePkvWRЦ噧b`MzoYzQPlB =ZWF=}(MeEmaWjY|EЦ%xU许fjKq<kZbQ7j. 'jFV-ƨ (:0cr˞TB)ńT% m(}ׇQyHE 3_;znf-zedvPL4<S+ Y5H8 VX髹ͫ;@=ԼmKx'Azu8'wZ?e4OӰ;;"?˼ l {1 o\Uig^ʠPxl~nVHW})%*JԓƺՁ1, u1N>D[H|%1ܹw^\r#{Puܛ< S׏$=v)Cø@F {pBsP:S jS@%G~/h3J7;f x\vo&D|4hd1;p|M*X*ɤ2p8lCH=H9^l.u7ۓ+c"dpS0YMxxmC{2udK.8D5FRs+yBvCjdSP~͙`֮hGE1xK zQ=u=7J@9'np>P [eҸԑΓsxt*ӆ0VT7AB{ >%bk`27YnՕǥB^}~+0][$`ES#vwldfE\٠o4eku>n!4#r8Ѱ<.d7[2ik^ р).j|0oW]XOY$f&EGdG׈\f-a'^MN~*-#A?5w HeWZ yvz/puBj>Ø 9/䐝 &~j)_6@,1K= B <3ؽ?aZt#ZS h'ҍ`}}pA!r6;S 52||F4>ݕ%۴{Yp@H&}08Y {]Џ5*db.F!@U-_g_/ \|7_f4:[~ /В:}fSŧӴwסs^-]ys3mBv._m?Rt7!(@ZY[Vç)uLi#+:,iZ4}]fNbjE=en=Fɮ`p6K@eQkxpb-b.G7%DI__K__%pQa@"ԵukTRcҍqMn^y}m5niNѻ6qzlY#+7ݣB)t4ȋީtգZyK%{\*^?/(3_GPyn@i∆ٍTj<8?h19Mw7a}Y962OLQg, :Uo ꆶ~3>wL?qP f ]";KA+, Ťv-R,o ܰ+OA vLlic y7Jut,x}?8O:j!.*fKDg"͏?Ҩ#[#deJƭ(LMSf@ \x"4u7Ɍњ% UuҘ-`~$ɉ=Rg>T@AP$ұp 3<iXv:( g-^ J9* $ ]wo$أ[c_?ZІ\CGCC Z#\b%i]kG{@^A[ZfАVE.#1z OS |y=4I` Hb7y«;͛0{֬ٳgϚShS(k.òhms yM= #Om~:^ u)QQO]Y8pܭ4*4Ŭ1q9v#]tHl5>; fp*j[Ww%yS[xv7/ ywߛlћ]lNCzQ''eDӝNf QejhN+*mw`@C]=I%zsB~ʡ:y;풓Ѥi %W6sY>zg}SAAu;FH>c=RnZ\Ny7e]< nJW?%|!t*ҢCkϧV]X0Լрgs8fX~9IOoQB& kˋR^0X&!ί'$ýgv%&'98AI2XWM!l1MT)s]k4{z1Ծ"DI >!H-\.MB /<K !$ xO5i}BHn/`ZZ=!w\S?7)Ce 8E@Aj)VmVQkկZgڪֺX(׽_ںk]- p`$A=?B"HFjP<9<=sSTT&U7|yoW*?%ݓ w{x՞lK=};|~ mcaGuxۈ wsEo:~Mjqb$W8J'mP<)8!ՒWk<+iԈ*–d碼UtNZE0=(&3 Rj@hO6-L/V@,EC¤E%W[UpAdh3g1<%Ϫ\yGhP |~ΔŞPjX=O5)`cLGXR5Rm gNbB =BI5:8bHw!]fB; ^F'B*E$ 3@BPRq}z;~(֝NFh.;dgk'v^t)]Sv^7|Q}tMQpLWm^e՞jB_}pїp -%Df@H,=UH)ѿ `y !ԭ C+$/|R˒F>κ֧-BLv]*kS>+fywd~eHR# EǼW <۶սDu/Gvm'g*sӂIvKbͷUe޲ګ(B,Qi Ϣܻ[fҁ-[ ;a{bgx2tdyߖ I(('RfҨ'.ޓґOEKo^Htn6'p͟har~Li0pLI #+-$GMT Y΢z5gڔIZ<1᫣Z),*o~se +2J I;V_7y=b]]yzy~}c"(. qߖ'Fh sK>X;IF l[lU|)Jk#^CjSiCcF*"GuI#mN#/5W^10vjU;gގ4w_u^`>0Pe\I/&C;yTݶPW.wO0۽DYxcoWK06M_iZRT*+\eehU)"L@!$w`v1!Q:WjUź`ϐqG ĝ{%܅zc1}B!c,h|yq=&r{h~SN9>b]]7ǙrkĥU#— ii.MDnj+f6X[؁n~}}ؐ(]YC{Z<;JTҀwz:/$2H +v\wXn FJrn<=MTfLM ]1* 9s˴9&/` tMNĥb`^  =D{o=Oiώ@jT4`<㳽ԁ?oEm[3{ {.]Oש~K\ .!^}n==:4XJx(y_C-PFj'i{Wْ6 2LVbv)F a_@ADȷ.le741eP+:*AM +<S f .tKGǝ}"φ ٺj>!_DQewb~"#mw\\N9-ty -Z +*V;4P*v6AU螐xJ, ۞ga$> {\{__n-l fok i؃40+̀&wb6^XoN؇}1`0B/7oL_c4M^zښԅ;6_!MP^V?:Pnaߧ[e E9V/;˾zeF9߰IYVmnq s]&581)g}S7A4kcvUhM9]JX0|K]U[:"f}| ̝Ey|{ftb$Odz{I=`UKE+xs`zwk7x׎Q{W S.`N/T̏d?Gws8m4M_VUG( OibF9ChbQ5Zu?*3R4eX໢bscFjZѽXKI4zeuչB mo㏅_m•Èz0??ݒƃ=6^0LZ0I #)-ދ?IݠF`hd[PVs5z|}3=Xj+V^5Q7=vy)aڐu7e䍈iu؁Z?(CBjU"drqan-#^d#[Td=0)h2_75SvSUGm`x`07z"$"@ABQ(BQg /=sӵeߎE7wY׆ Y>nͰ(Gk03ooXy{x%ˠj*ޚȄbgD]-u촮`G*e*Ra!,K=X1yEo4Qn31-xIC_˖5,3(ݼ /U~_L7`KvgW:TgWtыx}?q^J IҽmG;4l5݅ P':&xFǽ+׋&@ȪJ9|*]v ͓2siw޹r׫eS̻[#vҊxUzP@%_.xhP^؍羊 porhZwH'hBIDATïl$W37lX^P(+E08sn@AB Bܠ6]Vx6 \AȂ- E_S0)F9ճobE۾c±-zCl bjZ}M+ߵQ0W'Ҵkh`g@BȘwZAv!3O,@Z )EqZ&}S& &`bZh v%r >wjwWQ[(q[NxfhynA Eq'2?u䟎"H(1 a"H(1j#ӄu6O(`]Em 9M?Kb]ŭ]AisMaYȑYWQ1 @۞ W3gBȺG#1 a"H(1 a"H(1 a"H(1K9ηD`PFNZ4. Q-wl|iܥ1>1ckm?̡V.ղ^l^2i=8w"HNeNa^urrҼ@hW_` GFFF7oӨA뿎Kܽ^u(# uegwџ<{MNj3x9..ë{k &߲vbOޑ5;Ҟf? Y@y2SHX˨9=ӳG~aw|E _oҧLٰ`~ͻ 5Oh5qu8o??όiONj{(^Du4Plj/_|}= ߭pa$ q_\p8H.@B[޷uqo՛J0D``Zֺ̬"E^.>РK^8ns۲i?ƈ ѦϦ'WO"A/mFz1Y\OSN `ӼR9-Q N&>yYhh UcW,N".04ueAi拃K,*X2]ď^W&A!ڍ.)A( 1 b~QoجWA c59Ac0PBuҺ.Ą1 a"H(1 a"H(1 a"H(1 a"H(1̙39zK3f3r6*j9C,',H a"H(1 a"x ,q-=\ƺF%m4꺅"xSY,ݩ6h_MסC.8!Y pqp @t9iS^MuE *#\RW?UO&zN8Z /xȃm `մGV5dvw.6WW[pĔ202 A?z4oм J]TzcN drl+kگ @I)ux&Qήg9p_I.IӲe|EZ:EcsA2}8PCDzhW<gWU>ɔUq*V]M[sA4}D7I'%aΜƸ dwNpjd˜Dș(DwizhGF7YM@Cӝ"k8 <+I1O/k|ZV;: z'?y:Iy>+ rz6 ]n(jcEդ,qBV-2ŕsӟWkN4>\m[؏F8-ih_e{QUpU(x΂Q#=5mi#ǏVlD.}ȢpQ:vOpB _*SlV'0ƚGY$%YM5l1b@!l[5pfed%d3+]̡Ʌ_)٩8TXXm?x/hE@B#D yS`ҮI1@,7Ȟ~.N^ƑmaPy$7BL(1 a"H(1 a"H(1 a"Hn62J!MOf~iYrI-~] cAolg?Ч8Yԛe}#w㷰fW[(ϮSf"t]¡QN0VԢ쬁S punz<cgJ  to6ޔԦ]*PflZa2g1퐏 qdU|آ%M|Ht<[hq*X ( %p_;@WW?vح .: z8?:ez+xֱ"2NȜGw7=&6j?W^nl9mE?~6wA 7h7MX,6uΎvm{בщMNx{`DW;%5(vF- vmӶ,I_p;^-^~A'9Jˡ 2xgrSK&Ai,G'l-c"nMPpl Jm="H7 ] cAE0F$MfR+$tGLj͚&}8m)34%TZ!I\Zvc뇵,ʆ1]\RzY48~x"۟`[9ս]U͙< v|eSkP-95)0>J*=?O٦{ߎ C{.,,H#_vn%[vnf18>tȡZy{_FʹMhf@H]k+.0.ljɍ; < Z_q.ѱl!&Ȗefᖊuv7H@yEqu}74#EDA$kQXbXѨcFc/MEaCT)(MAi .>,*KAѼ:瞹wyhhЉqihDs^c-ߔ!&!GT{S4P]WtkqO3 |]|D=Jg3P( ?\>oU9[7&\>14cD&Ɍ}csl \qic[7{ K5L,8ϳ2KYΎ _!dqh +tW:jaT /L21L21L21-A&p@uI˛qrMh(=fs WI-AY]M\GV̡3 6Wrdn# %y5,qi 7bw =fFTy]Ěiđ];Nɖ5)"38gtz3Q1Y(r֝o%W:ifQ"N:}K]_V]_<(RBރ?@w.G@^sjbfƍOkgh9BԟJN_%QctllO;1| yW;$uw+? !i?#R` t|Sgޗp}|'}7 !O3!{yEW !D / V`w8kBIRx ¬2؍A=G˽|MXYo?K{~ABq %^D;0O rR"!F~ަOU "^E N;'~_0s Ԥ@qQӢsllp_p@/J3Ќsڬlm`K%M09i^qw\6ykOޚyaknB iD!09[n*y%nzGD*\tӮ#\, W1 5gQ>;L-$5* "J&~7˘@|"VEot|QAQb' 'Q3[~ -JBHOvAWr% y٣c;-r3JML >IQeU;vkJA!S7Vϭ uY 3GM.,ӆ4*+h1ECÈ_Z m Y]dbxi|c3{ Eqbʜ 4i$=_*Ζ˔LzAƩN5wrGSo(ش>6/EaﻧC𭩶*'~;i+n(\J}ţGU_8+/jve߶>n']pr*?7J=p>䳐kEVJju<4kן7ױMh4[[իfEQv1c((Fy>Tn=xGvjrs/ij E^n' H~C!j=B 2b4 RoDi9ؑJ_1P bÎ]+ݹBˡѫ:YU(5wG&*XP> { cTy!X %؊#RŇ%j]}>r6W>˨aq3_~GӗWS1lټ֨d+}/i*ȏSay+-a%?O@mޝĔ).7AӐ}cn&m2-*3zW}["]O\wu- +8=gIw_T5ӭS}-]U_WRx9"n)?O_r6v+o>Z5H+ox;-~l?@R!q[*_N Uw -Jm0:.$;>,2ta:jk8a:q2tMdB(5 T sMSQh@W(җ DHیgAczڷ_~i!ӿ6Pmi[FzydS.=W-j.~*r1|1Xo&@*ˋ}/7"cu:â(~uճrGؙBUI?EQ*ueMT-xu6(@Vt }T}hBUU[@jkvf._nZv9RˤBi踯?koO'{v،L>esDm<(?E(WNU7?.:Ou5c>Q}/Oq(aً|UYy'?#K%g(ݴc/?@0i֡zP!g'ߜߛmԚKXvtezSޞyE"B5Aí2}z*Jy1|=zߖj+B -pHO kg\j6eHUz\Kg3!o`dȞ'Nbێ|%뿼niOkp#I2 S.(ȫ&& YW7#58P0I_ƓjוմGTP?} N?/u9;Ck=]@8vk+^dU@V#lt'J XKγj3q)ܮc':}X@X>x>U_ mL`+CT(ncH(樬rE nW鄣m)qܗtr6vf*z>]i3//zbjry9:/͖M'4F^iꏷхSWQ +f> `DV?%o46$⢼ZJ ᳧Ԗr<(ɼo+2ȪHf%IyDIU2Xʾ߁Ӈusq>(Θ\~X@^p3*R򊄛wr$w_k?6@;;IDATvжеôC;:WNh=Vs!TנD8Pje} Pɗm8фB| IFu/ 3 u8cņ/G+7FDPTTk?QqԺUJR+R mFUKZuETm(ewAز#\@?Jn n.vM6iI_.Lzm/ <}t?\ӳj2Y(ɺ_:!GO&Tu0C]" ai҂Bxe]/StHXq>+cgMڑGytVbgqό~͈ǰy4 qxgOo K{= ܎?Z kiv r{ 2ڱ^AF,ea/sQEQfVEKhlr4x|vo5gjvӷ k-c)#VM~^?x lM@KXe扠V]@Ց~6 ?kΠX k3V)/%z j/:^h=?zCAI]"ݬUatS>6(⯗{frlr ' o8~* S$0s;KaP,غژ髀Cl(ݎ@>Я_؈i쳲,ohf0hI_dNYHx sokTYLਉ/tA'7Tϰ3ېV2e\X^69`Ff !ҷ.ׅ mǕsLO|) !6p`ۑF-u>l%0f1lqgg ; 9dBsBB&NNu&~+J]BQin\;C!cӑ>qkk䬌"Nv%ҶW o̴UO8D Hu Y>Ƅzc%JB$fwzS:#M2m kmObdOs}BڱZ# "{;$GAqrB!ΘzM2or+o S=B3ti00 %Ŵ?c4hUϝ9!a6(Ex-؊kKBC?SZ+B,9lջ=+3`@czo7w^xtV~XB8?/f;u>ңgMǔiµz6-JQ[q{gZ75Pׇ]5ȣ%BGCƙ+İ_;?oPoqas(XƣxVlAn\'aZ]ߎmg.ŊICU=uuv46f7ج Q8)%Ň,5TT [jm?_K3,P>v 'dkCfOaCѳWj ZP]Pwȼ?M|k(JMRܖI!c|iW.bN< /:ƿ_+z2جHh=ڲ{#P?T8 }oSQ>?dCc2Q)@_ .V?QSt |VZ ZL8~cah@xo`㿜H. xrҁov>N/.РNu.zaz1PTç./ }}$ $5ty:| f=~FPGg[mjĐ󠽕Ӥ)'tr7Obj|~kzm"kjtĖ:&K 0Rk(/x!1AAжUKeb(1$G^?ˈA ;!sMkztĖjCW2ʟw5~}k0P.tT<|ĬV<UC;Vu"-z;cEi;XKO`ub)!D$Ԝ qFB^|XXk6aXp]zTS~'1؜\J*mj 6't,ю*nAVx6GՄ.$|n BBD'! j[H ]}6Sb %ceUJi2*iX5tutHV[5tut bqnA6Z53SnEjVGt#f-!c.QY{rLB@+R$:8~#6Jy)? A" ˾5bϤTfጰVܽcǾ_Qѡ)=C _zfzLXMv/dk)Z3[JCi%KBW6wv _H 1.yɑ gե]>6'*$Ā ֢ϖ9a2џ}z~/f¨dB&,M/C;L"ƕE'u_)R2NEa? mgFqw;vу4.yHXI2W)AQ.,30PR"Q&]Q`ϪJoyiL#%CPNG  IHDRD$gAMAܲ pHYs   IDATxy\T33,"((k*j)Y撚$mY^LzRK\ASEa9s~ G׃˗/̙y|<^a=,^B)jڡQ{& 0&L S(h 0&LP{jrسݢG_V{Zڞ^5^Q->r]c8},(jlϖ:(hc9߱L,D{(APЄ)4a MBAPЄ)4a l XVp,:6],e.]-r#;fw Drf` Tʼn5z fmAN7h͞K} HeDocumentSummaryInformation8|Current User.4= X76/.@If/h6 Z9=LZ4G?jV`kk9cܡC ^f.3V3G::%s~jʪ?"@1zs,o{<8bz̙I3Ì!}u__s~Xiyt|&9~wo8? '4 |p؛P,7v\vor=#!O)csoowN~Pm-}رCC&{%6c[R*k6c9/l,I04MڶM{f1qqksu8 cEИ۩5|fvDt\0n= qO:^ @z3֧MK,I->H=ȩ=73zPе#ϲ9~^ =aW(qj9oG;}Z)AQ1-kwX|l17~fPi:9tQ1Z'ۃ/Z)η=@@Ghڌ<"ӟW0&L S(h 0ŋ9CU }lE1vڣMMb&Z9&L S(h 0&L S(h 0&L S(h 0&L S*eەk ?Sg2vvt'VQwAuΤ59ky^gNl7A ?/UaXFA+A W kftT^YC QM0a}֙9.tzhZ`TǼÚ5lwtk`/T4Lo0?RxĪ~z /eCڇ dqo'% ZaF}Zа^3wWQ<3^ܥV0rU.h&,P"ajaEݶT䜺nuhQQ aJ,ʷkwJbnšJ%7>f&,>&xSQЊqȘQc m#ЖBkР~*߄0H: L S(h 0&L S(h 0&L S(h 0&L S(h 03X3Є)4a MBAPЄ)4a MBAO^?[{\yr^Y_/(psAhZK6_9da;HnwpV[|ݥBA+e^Ma i{g,Y9U`hdFF3~'ZSu]SK#y~~ڧ<~AR'TQJɢ k풬pWl;$<gLKcyLu9>)1t%(Z"K25wf Wʫ*ʯ?uرmZsʎno,rCAג$!@{6nؕ;wT\\_{윩#\v?](s3~VPЊN( ^50eؖ\߄1si_k n+Y#ǯܲ-mxҢ]}{a g 7tABAPЄ)4a MBAv-l-b?.=Pаglu>#2ݢTPMCPЄ)4a MBAPЄ)sh¹؋\t5ȐZ?Pu ,9@.ig> EC/3rښke/>, IZm {}q!:c pOPJ0g<xf,;QT3ctҫc _`& @W+Gv<ZM%'T:i6A"\]O9jaSҦy%gŚ?3:p{]I`sb.-ow9*38^ P4% HMd8o*7'8f蔒:mܿ(׷l'<[\u?l V||bh}8Rcjx|Z9OB!5Xצ?Fyʣ0* 5c ElKڟ} fTEcLhnYތ0:B+ i"'mֶU^ôt3~@W1_ijޮSޮSU4wீUaxkt"=nr颎] z&}䴁q[24$- 0N9S(h 0&L S(h 0&L S(h 0&L S{}vedC!?$ے쩿:#,!qϳtABAP T^SÞLeRv~ vë(h#ؾ~̵G܏۴w?T}s_ƕʻ;.Vt}3q2u^?&FĖ Lz{I%l*4Ul2`wVD"{vh܋qJ>o#/@uzY~ ^Z4[G;D@־P扏y7W|Y5=tyPz1]f,́c;j(hʬ./, LoKԄÇ8u!]~] D%;&xƬ,U'T)R$m?j{ X* hSਸtSt *zpLVp/iMpYضm }}2c`D*ݷᨎK" GG,^ga6m\g'WuVu_/Vw9gXW)(EAD_1!7$=i><_{:+BSzj4֐h5-ypaǻ[(9_QZNv?״Ԓ 6kR)ÌD7CWv=8MK Z(|tcc}i^µ{X r GUɅwyZX#C qyBr.\-Tc9CBEWha.ֈ 74uz®]fG+Ҏ?PT&VvQGmg*Xr+G]ڿ<Fm=̈+4r`9rXG ,~be䗣sQc?kEPvc6ǖ8[spϦ.3Չd[Չq6d$tX*"l:CgW-C%)7Tb`H'.6(>u BQ0X"-7R X*T5fgdO,IL ЀFss4m:;JTY|FuK5]/$ik0 mS}+Gw+% N"!b9a^=?҅p2\tFZ5Ɔ߂Apc۬ Qղ4!tR: Wn)Nb1jsɀ)GN.ec^@^_z_B 13J/غZDC. P ǥ|Ba~ڝ mddOՍ-k* =e9jdZ:jAM=š%24a69O7V:+ C3t*fT0ЩPC ~0;dixeK(gmraxV Joܖ'{CTв|});{lVM.F&¬)^`ŧ*xuaM9(JiIsbt.o=g @S<{q'~9W"ڹ̭_P"0g2ޝʚs:WXKƧ1.l@ 'qnٲF9hO}#\muZXd28mR֑dPϟ`='[ ; 0 s2˦OԖ#Mr~ M_lFnv|0-P̆\ӬNjy9KBOetӌ+sa i^ 4(/_hJIYYNmZӷwDuO@p1lLl4F.ѥ=ME 7?ywe=ַrtwͽWW=138=Mqu lk͑YBȿQok+XM1q/bMX\~C {ѕ{O(=49Tp`+wsAQ*:yDc;tйCz~?v{G]Fe ٨?Ʈ\5+W+`pޟ^:Mq[iܧcX4]7(+c7J9r\6֗(qϥ8Z"a5e| #Í2b}ctӾLUgx7Pڎx17!rSDQaFfX:a B@QR^IFSc;G;Fՠ(pشɛ!H]|:]랖zLTç ͦH},Xri\4dOk t4:|TGwց?}hvVLrL笜m~1gݼw~f`xơ:|m1Q:|m1Q:\>JގMU_Gdԗ]ɭ*Ռ{7C7zjF]G9yt1 ob,%ZU}|Vgxe)iƊ裨lX.Zn;e3),fG$6ؤӻ0k6uoIu%,89/Psx٬Ol U   C3t*ToQGO柘D+EH}-eQ֊k߰ߝkIG.jCM~ϩ{}AyMUX`opUo>UC5im|'?rX\>-:cVA֞D^O._մ$y 5金GI_](7/\ar)߲[k11?5yӍ"./֍~1tF?i+~FPБRtrA{uWR+KuPv7<~CX{N~sB?!Km̈́97s5{ ½k'ph(@AX})IlYn.@^S -./M;/w'[KjR/_2M1jKiG-2o&۾I7B M+y+:m2Lp 9t@vfVkcNOsGrUyzj rٴUӸ6#C/bUNjh+^Y=(}9Qk0>&7_C®^@Z}{_ uG.IDAT\ ԝ^qL|TݗIaQ/+])_M]r'{QA^f^O2HlVaX%!1_G{6!To' 5)W@M̈́#o}" gGAaC!g!9|BHw+U\eb`d L˒Qzm5{|`fc%sD E Rqؒ\,8o6R ,>!:v x+64NBҶϞZj^v񱞼6/\dV/6v˂eT#]o*7tyT2Šc"bTYY^{j @W@2_Ot|1ĕeb]e".f9q@&|ݥ׸ cZoh\hNX3҉ mD(b(Seqbmt3įn5КZZR1^SLPT^X(,E.ozk.I/lH 8:pƹ17:(U*7m:AXn: * s* 8m3 h3%Qvd\@ \*ZVKBݪUڪV^wKQ^^JQ@dd "! $@~dQ#1'̙0 onk9xsȜX;T8`8Și5K5oC4mἠKM e>wyS)m/A^|m6Ϥ ]X10fU*Ϳw+.6o臯6AWX1p"O#}W<[<% 0)J}8 mR9vDywSm bJ !r9!Dt~ 0"秬9l/dBbB,Y7&D|"^<Bo]fBx_!waubw~êBݝcޕX7!9nkA/! #kt™(Z6̵12 쫘v11;/57 yUZF5 =-J蹸4VH /7I$BkDZū=/c]:,'Vݎw|4h aE`ױuWjҜ_8'6߽bM]1P}s?$ Og_F:4i/Y9?"o444M(kdڷ8q[H(dGtV\W+)˽\}){{&M kH!tb41j{?U~wyoKzΖds˲G&1ʋ|\^b(vZ4B[4 fIY 9珮<ص)M~Ӣ. Y;-].Ƈ?K;]󗀽ywЍ/)*://)*&\w;2܇$~ S@]&q?=>6*4BGF =MT9hBٻ{M7*Tj 'e aH?rŒi~ ̘{aݰe(8n[DĩsG *R/°=:Z:X l/SkRᴳR iBB(­iR?{wʰجjB8i(|sPB-˖4o-hxh/VƁ%X߻ Yv&JھLOӾ/-z|xwׇT9d *Q>T|DId܇y:="rQ)3="9`Eq#-MeMŇ _˱"sgsAcPvne9(@.Պj f5B(Cc-h/E F(k'q<:8СLJvčAT(\.E1R C[?Y9CWMֹv^VnH`WV5n <@$'D^]WAr P@We?v]i۠ӻ6(GU2ڊu}?>#)fŴ:väf0exp>32F &d(R|/ɪ ,<޷ƭBuIEbM!nm< 4A룲 n9E*՘ ?b#[+̺dN`0o:]wc gfK,K^=$l.qr +LO-gY:vyDߘ% &zZ xU }#6 88 ~q޾Zi4GuepĢ!);}uzQnzW0{˓dmZ4[eye޾t9{3 3NKsOi4}i%>JA/hNYjD_}TSCOQE Т*ajU SOm.پ |ky= Z *PO8Θs$ļlʴA8ZU19}Blsmo[Kfƥ[8k%Dzv1FFd|}w|]zV*7SuFRU ?(H9/E:lWI Չ: -{Lz5nH;Ȼy:b31hpo]@Ɍ̈́o?2d(}(%uyN9{0*gZGeVԍ<]GiIWd$%擾>]{1+٪}kS |k`}ϰ+O:4`rqTiRYMQ⷏sN9,GƧIn~bmJme_]+k`BًeQuJ8݀W !Dh;㓁0)!nxʜj%wsDE[UlbSiٯ>VLBKg|F!Q lUJh Ь>3t /_F~tW^ ջ S߻+0ODv͇> z.[GQTk ;ݵK, !)&N鸙_/q?GMjλNEzI HQN1%aC⟆B5# 3$vVˉè ߻6w\׌P8(j[Am ibګK}G6/a[Nh%BX^RTQ%DNAYA쥵4gE1y5?qc7L l8Hed׳o$G D^ozPA6 P\9Pp[/<4rU6ZAut>jRC};t[\V*ڣqr y<&s1m {r.{w (SC:{GܳpGx~vtkPN1ճ@b.]Zb&vr\Q[MO[V:kp}`L]8C'j1}q&Bgy+Rhf}lQ`ߢ{kYYs?.T>3`ϜcA$|;p{^3~3A=)cPVS"D TSO+Z+2?1`0~F TˉdTdFQe;7=\Wm+GHeT_6Q3wv֪45Ƶ$9lU=*=OI~,fYz8wUrLBaSwj$)ReZbZQ5eܥEDbh@GgI*bA[URL,NT. NyAPjt&okvg`R+ӏ]͔q=<n0'$R' ^\f &bk%/R{so֧[ti{IqWr*ͻ)CSL4;}SLit34[ҼE SѩGs u/'s9ܺkG5]sJѩGO6|y5#KyxEF!>>IՊԥjK̸֣Ȅs,FcdDޱySOǫJsOpS%;U5N-=\ p)_qR+ )(vIr􍸌wЍ oFu r~R=NeٽH|a% 7+:!ѕV"ha>*}.~~,p 娻NIՓegV̑޿#!(G_+LmWq;1{ݼ"4N@Ն{gԕ_ ATQ!!8VVG"өcZRgEK:QhhuC¨#( $ywxA!o\zbMoV#Xq}Ϥ޸cȮxTXmB룢a3?|޸]Xz7`_UEsלׯrM4NpxrlIpAkJ҂p\12\ɦ꣍ҜXڮE@Z S}f<k߆+Ԛ̡m;$ -2 0љ,-O^ -V(!(GCH b޶{V+|XFч09/1Kb'iqY UՍ?/o%؏ T@MBBx'0BfG* qkPʁJ6_!J_ҟPXœGG;~>U_}%J*1t/WNkw+$GpXX C(V'zdªs裿>>)rRqh}fAwhA4W8q}N?Ι=+#cƌ쭶=R|m_vT∄1ǒnQ~}븈<һ[?'~߭娏.vG-t-枿/ҷsc}rLyb_R30fM<$ݛIUqrn|</`뗖lRzl}[qݼU(|,b\ɍhyۯ=P}68|})m)ʚao ~id dT&'k֗BuJIZ*`L"byuQ}7Qm~>Z} ߧJ^D0:ǵV䡝p >wK b0 WWX- Ŵ_N8u}0!%5}Nw?v(OESϯJ4EYB2 C_N8s}l#lesZ6jMlNQVk[GK5~iт(`yA@eM!&iU],>)@*@h6Kh}>b?(iXzoZxZPumI!BOlKG]~cBO_Ne8 T8tASxꣵWKd}˷\jVY6#AO^G-ͷF6l)6̥_ 9Fhϗ;PsjzekdK'oC y%> 4=NS}39YPpd*m8l4 :sLV;՝ C k!c>9e0dYu̘R.Ϯww>/^LJ:&R7BJr&Jj-l5 W,Nv[w*p/5w~ibf_ gZbϏL0Z I}0xݜ]&p(e:MZ$S' +;+:yY3_;@8&- q>By/W}!2EO40A&-ll1 "!{݌g*= 4{)C:nufG2pd#c&}gQ >bkvrLo?g@\ZRqr jKyX4 iMJE =EHuO =_ʧN(l>69lPʁUʫQ%҈P bE>/H)!oZR8O}4ì#w̖?]%BntWs%ZxzZuFƿ[/5*%WttW:>!qpԘ.Qw)@/rppT4g QVV3t$ʚ;+4ʚ;g4UdUd@t@ppp@ <4!d!d,gX<4dddd,gXg4`d`d4@@8p@ pp>___PPT9 h___PPT2001D<4X?-"2003 W L Truppel bCS 14: Intro. Data Structures & Algs. " Lecture 3O =CK%Intro to Data Structures & AlgorithmsWagner Truppel Lecturer, Dept. of Computer Science & Engineering UC Riverside wagner@cs.ucr.edu http://www.cs.ucr.edu/~wagner http://www.cs.ucr.edu/cs14zO  O`a~Today s TopicsoADT Counter review ADT Array ADT List Implementing the ADT List Array implementation Pointer implementation &C-C-m adt CounterADT //  filename uses Integer // other adt s used defines Counter // name of type defined operations get: Counter ---> int //  observer inc: Counter ---> Counter //  modifier new: ---> Counter //  constructor preconditions // none for this adt axioms //  contract get( new() ) = 0 // new starts at 0 get( inc(c) ) = get(c) + 1 // inc s by 1n%Z$Pat  ADT ArrayWhat s an array really like ? What do we need to represent one as an ADT? It s a linear collection of elements of some type, so we need a type. Call it T. We need to be able to refer to each element, so we need some kind of index& an integer will do just fine. We need to be able to retrieve and set the values stored in the array, so we need get and put functions And if we re going to search through the array to find some element, we need to know when to stop& we need an array lengthZQ3 Q*,  ADT Arrayadt Array uses Integer, Comparable defines Array<T: Comparable> // Comparable supports == operations new: Integer x T -/-> Array<T> get: Array<T> x Integer -/-> T put: Array<T> x Integer x T -/-> Array<T> length: Array<T> ---> Integer  -/-> indicates a function with preconditions failure of preconditions should generate exceptions(l>!   ADT Array preconditions new(l, t): l > 0 get(a, i): 0 <= i < length(a) put(a, i, t): 0 <= i < length(a) axioms length( new(l, t) ) = l length( put(a, i, t) ) = length(a) get(new(l,t), i) = t get(put(a, i, t), j) = t if i == j, = get(a, j) if i != j Z 6  ADT ArrayWith a complete ADT for arrays we can now implement arrays any way we like make sure that our implementations do satisfy the ADT Array interface make sure that our implementations do satisfy the array axioms&**ADT ListWhat s a list? What do we need to represent one as an ADT? It s a linear collection of elements of some type, so we need a type. Call it T. We need to be able to refer to each element, but it need not be an integer. We call it an iterator. (more later) We need to be able to retrieve and set the values stored in the list, so we need get and put functions And if we re going to search through the list to find some element, we need to know when to stop. The iterator will also take care of that.BZ%ZZ*ZB3 /+m, ADT List.The ADT List is similar to the ADT Array, but is more general It does not impose integer indices It defines more operations ADT List operations Create a list Destroy a list Is the list empty How many items? Insert an item at a given position Delete an item from the list Retrieve an item from the listr>Z?ZZZ>%ADT List: Array implementation$Array characteristics Very convenient - an almost built-in DS Easy and fast retrieval of elements But cannot be resized once defined or, if we want to resize them, we need to create a new array and copy all elements from the old to the new array This creates additional problems. Ex: could run out of memory in the process of duplicating the old array Slow insertion and deletion (more next) j( j     ADT List: Array implementation$$Let s use char as an example We can create a class ArrayBasedList, where the array holds chars After we re done, we can templatize it The class would have these (private) member variables: typedef char itemType; const int MAX_SIZE = 100; itemType items[MAX_SIZE]; int size;zZUZ %`U37 ;  ADT List: Array implementation$Operations (member functions of the class): Creation: in the constructor for the class, allocate the array and set size to 0. Note that every item gets  zeroed out . O(1) or O(n) depending on item type. Destruction: in the destructor of the class, de-allocate the array (using delete); may need to de-allocate items too; no need to set size to 0, but good practice anyway. O(1) or O(n) depending on item type. bool isEmpty() { return size == 0; } O(1) int getLength() { return size; } O(1),ZZ,r =",  ADT List: Array implementation$Operations (member functions of the class): 3 kinds of insertions: (need to test preconditions!) insertFirst(char c) O(n) insertLast(char c) O(1) insertAt(char c, int index) O(n) 3 kinds of deletions: (need to test preconditions!) deleteFirst() O(n) deleteLast() O(1) deleteAt(int index) O(n) 3 kinds of retrievals: (need to test preconditions!) char getFirst() O(1) char getLast() O(1) char get(int index) O(1),Z5ZRZ4Z>Z5ZBZ,            a  @  F   ADT List: Pointer implementation!!$wLinked-list characteristics Not built-in DS Not-so-fast retrieval of elements But can easily be resized once definedjZ[Z    ADT List: Pointer implementation! $Singly-linked listADT List: Node class/struct$Singly-linked list class Node { private: int stuff; // for now, let s make it an int Node * next; // why a pointer and // not the obj itself? public: Node(int data, Node * nn); // other member functions }; typedef Node * NodePtr; // pointer to a NodeZ Z Zt ZZ5 Z1Z  (H  50)#(    ADT List: Node class/struct$Doubly-linked list class Node { private: int stuff; // for now, let s make it an int Node * prev; Node * next; public: Node(int data, Node * nn, Node * pn); // other member functions }; typedef Node * NodePtr; // pointer to a NodeZ Z ZF ZZ@ Z1Z  (    @1)$   ADT List: Node class/struct$Singly-linked or doubly-linked, either way the header and the tail are pointers to the first and last Nodes - they re not Nodes themselves /   ADT List: Pointer implementation! $Let s stick to singly-linked lists for now We can create a class SinglyLinkedList to hold, say, integers. We can templatize it later. The class would have these (private) member variables: Node * head; Node * tail; // if desired or needed int size; // if desired or needed The class Node might also be internal to the SinglyLinkedList classZTZDZAlT PA sK ADT List: Pointer implementation!!$>Operations (member functions of the class): Creation: in the constructor for the class, allocate the head and tail pointers, set them to NULL, and set size to 0. O(1) Destruction: in the destructor of the class, must first de-allocate each Node (using delete); no need to set size to 0, but good practice anyway.O(n) bool isEmpty() { return head == NULL; } O(1) or bool isEmpty() { return size == 0; } O(1) int getLength() { return size; } O(1) getLength() would be O(n) if we didn t maintain explicit size information using the integer size,ZZ,n(&"CP? $   X ADT List: Pointer implementation!!$,Operations (member functions of the class): 3 kinds of insertions: (need to test preconditions!) insertFirst(int k) O(1) insertLast(int k) O(1) with tail, O(n), with no tail insertAt(int k, int index) O(n) 3 kinds of deletions: (need to test preconditions!) deleteFirst() O(1) deleteLast() O(n) for singly with or without tail, O(n) for doubly with no tail, O(1) for doubly with tail deleteAt(int index) O(n) 3 kinds of retrievals: (need to test preconditions!) char getFirst() O(1) char getLast() O(n) without tail, O(1) with tail char get(int index) O(n),Z5ZmZ4ZZ5Z_Z, "  ]         !a  &A  aF . #ADT List: Comparing Implementations$$$ #ADT List: Comparing Implementations$$$ #ADT List: Comparing Implementations$$$rOccasionally, it s useful to define a few more operation These are useful when you need to do lots of insertions/deletions in sequence, in which case you should use a doubly-linked listZ/PsxHH@Rg(HH(dh   ` www3ff` 3fff` ___>?" dF@,?n<d@uA @ " d`  n?" dd@   @@``PR   @ ` `P0p>> -"2003 W L Truppel bCS 14: Intro. Data Structures & Algs. " Lecture 3 j( = 2  N@q0?"! :    Nr0gֳgֳ ?"`  T Click to edit Master title style! !<  H s0gֳgֳ ?"  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  N@t0gֳgֳ ?"`p  Z*    Ns0gֳgֳ ?"`   n*2    N`r0gֳgֳ ?"`@  \*   N  6n޽h? ? www3ff $Blank PresentationM  -"2003 W L Truppel bCS 14: Intro. Data Structures & Algs. " Lecture 3 =5  ( |  B  N1?"442  Nt0?"! :    N p0gֳgֳ ?"` D T Click to edit Master title style! !  Ho0gֳgֳ ?"P  D W#Click to edit Master subtitle style$ $  N@n0gֳgֳ ?"`p D Z*    Nܐgֳgֳ ?"`@ D \*     Nߐgֳgֳ ?"`  D n*2  N  6n޽h? ?  www3ffT `<f(  < < 0ऐ "P   ה R*   < 0 "   ה T*  r < c $ ?"  ה$ < 0  " @ ה RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S < 6 "`P  ה R*   < 6 "`  ה T*  H < 0޽h ? ̙33> D( @ $  D D 0@, "P   ה ACS 14 Lecture 3  D 0 "   ה T*   D 6 "`P  ה ACS 14 Lecture 3  D 6 "`  ה T*  H D 0޽h ? ̙33  @ L(  P   c $`8 "P D   c $8 "P  D B  s *޽h ? 3ff   F(    c $+"`  D   S @,"` D B  s *޽h ? 33̙ffv   (    c $ +"P<$ D   N(gֳgֳ ?" &ADT Counter reviewB  s *޽h ? 33̙ffJ  m x( 00//   c $2"  D   c $@2"<$ D B  s *޽h ? 33̙ff  t ( 00//   c $`3"p`<$  D   Z3gֳgֳ ?"  D B  s *޽h ? 33̙ff   ( 00//   c $d"p`<$  D   Zcgֳgֳ ?"  D B  s *޽h ? 33̙ffl   (    C e`0<$ D   Z@fgֳgֳ ?"  D H  0޽h ? www3ff   >6L( 00// L L c $ e"  D  L c $e"@<$ D T L H bgֳgֳ ?"` 0P,$ VLooks a lot like the ADT Array, doesn t it?(,Z+B L s *޽h ? 33̙ff   jbP( 00// P P c $m"  D  P c $l"`<$ D  P H@lgֳgֳ ?"` ,$ vIts formal definition is rather complex so we ll skip it ! <Z<;B P s *޽h ? 33̙ff0    X^( 00// X X c $."   D  X C .<$ D B X s *޽h ? 33̙ff   &0`( 00// ` ` c $"   D  ` S   <$ D $ ` C Afig1.pdf 001739DAEarth B9B583FF: $ ` C A fig1b.pdf 001739DAEarth B9B583FF:@0B ` s *޽h ? 33̙ffb   @d( 00// d d c $ "   D  d S  <$ D $ d C Afig1.pdf 001739DAEarth B9B583FF: B d s *޽h ? 33̙ffb   Pl(  l l c $"   D  l S  p <$ D $ l C Afig1.pdf 001739DAEarth B9B583FF: B l s *޽h ? 33̙ff6   `pd( $ p p c $`"   D  p S  <$ D B p s *޽h ? 33̙ff$   p\R(  \ \ c $ "   D r \ S p D $ \ C Afig1.pdf 001369A1Earth B9B583FF:`P \ H@gֳgֳ ?  BDoubly-linked list$ \ C A fig5b.pdf 001369A1Earth B9B583FF:  LB \ s *޽h ? 33̙ff6    td( 00// t t c $"   D r t S `p D $  t C A fig2a.pdf 001739DAEarth B9B583FF:@ B t s *޽h ? 33̙ff6   xd( 00// x x c $p""   D r x S "p D $ x C A fig2b.pdf 001739DAEarth B9B583FF: 0@B x s *޽h ? 33̙ffb   |(  | | c $("   D r | S p(p D $ | C Afig1.pdf 001369A1Earth B9B583FF:7 $ | C A fig5b.pdf 001369A1Earth B9B583FF: iB | s *޽h ? 33̙ff6   d( 00//   c $&"   D r  S P'0 D $  C A fig1c.pdf 001739DAEarth B9B583FF:`p B  s *޽h ? 33̙ffb   0( V]   c $-"   D   S 20<$ D $  C A fig1c.pdf 001739DAEarth B9B583FF:`p B  s *޽h ? 33̙ffb   p(    c $"   D   S p0<$ D $  C A fig1c.pdf 001739DAEarth B9B583FF:`p B  s *޽h ? 33̙ff$   ]$U$1#( 00//   c $"   D -#r   #"2&hX   6۽?"   RO(n) @`  6׽?"@   RO(n) @`  6ٽ?" @  R O(n) @`  6 ڽ?"   winsertAtIndex()  @`  60f?"   O(1) with tail O(n) without<  @`  6e?"@    O(1) with tail O(n) without<  @`  6c?" @  RO(1) @`  6Pa?"   t insertLast()    @` | 6_?"   RO(1) @` z 6P^?"@   RO(1) @` x 6p\?" @   RO(n) @` v 6?"   u insertFirst()  @`  6/?"*  O(1) with size O(n) without<  @`  6j?"@ *  O(1) with size O(n) without<  @`  6j?"*@  RO(1) @`  6@i?"*  s getLength()    @`  6h?"1* RO(1) @`  6g?"@ 1* RO(1) @`  6g?"1@ * RO(1) @`  6@f?"1* q isEmpty()   @`  6e?"81 RO(n) @`  6d?"@ 81 RO(n) @`  6d?"8@ 1 [ Same as above @`  6@c?"81 Y Destruction   @`  6b?"8 RO(1) @`   6a?"@ 8 RO(1) @`   6a?"@ 8 p"O(1) if built-in types O(n) if not## @`   6@`?"8 VCreation   @`   6_?" RDoubly-L   @`   6ڐ?"@  RSingly-L   @`  6?"@  OArray @`  6@?" X  @`nB ? 0o ?"hB @ s *1 ?"hB A s *1 ?"88hB B s *1 ?"11hB C s *1 ?"**nB M 0o ?"  nB N 0o ?" hB O s *1 ?" hB P s *1 ?"@ @ hB Q s *1 ?" nB R 0o ?" hB w s *1 ?"  hB  s *1 ?"  hB  s *1 ?"  B  s *޽h ? 33̙ff      ,7( |   c $ ݽ"   D n ;  7#".",5L56;   6`ܽ?"B ;  RO(n) @`   6f?"@ B ;  RO(n) @`   6*?"B @ ;  RO(1) @`   6p?"B ;  t getAtIndex()    @`   6?"cB  iO(1) with tail O(n) without @`   6?"@ cB  iO(1) with tail O(n) without @`  6p?"c@ B  RO(1) @`  6?"cB  q getLast()   @`  6 ?"jc RO(1) @`  60!?"@ jc RO(1) @`  6!?"j@ c RO(1) @`  6#?"jc r getFirst()   @`  60$?"qj RO(n) @`  6$?"@ qj RO(n) @`  6%?"q@ j RO(n) @`  6?"qj wdeleteAtIndex()  @`  6?"q iO(1) with tail O(n) without @`  6?"@ q O(n) even with tail< @`  6?"@ q RO(1) @`  6?"q t deleteLast()    @`  6?" RO(1) @`  6?"@  RO(1) @`  6?"@  RO(n) @`  6?" u deleteFirst()  @`   6?" RDoubly-L   @` ! 6?"@  RSingly-L   @` " 6?"@  OArray @` # 6W?" X  @`nB $ 0o ?"hB % s *1 ?"hB & s *1 ?"hB ' s *1 ?"qqhB ( s *1 ?"jjnB ) 0o ?"; ; nB * 0o ?"; hB + s *1 ?"; hB , s *1 ?"@ @ ; hB - s *1 ?"; nB . 0o ?"; hB / s *1 ?"cchB 0 s *1 ?"B B B  s *޽h ? 33̙ff    K C -0(    c $0c"   D ?n p?  /#".",5L56  60?"F ?  RO(1) @`  6?"@ F ?  RO(n) @`  6P?"F @ ?  RO(1) @`  6p ?"F ?  X previous()   @`  6?"M F  RO(1) @`   6Љ?"@ M F  RO(1) @`   6?"M @ F  RO(1) @`   6?"M F  Tnext() @`   60?"T M  RO(1) @`   6?"@ T M  RO(1) @`  6?"T @ M  RO(n) @`  6Џ?"T M  u deleteAfter()  @`  6?"[T  RO(1) @`  6?"@ [T  RO(n) @`  6p?"[@ T  RO(n) @`  6?"[T  vdeleteBefore()  @`  6?"b[ RO(1) @`  6/?"@ b[ RO(1) @`  6 /?"b@ [ RO(n) @`  6@/?"b[ u insertAfter()  @`  6`/?"ib RO(1) @`  6 /?"@ ib RO(n) @`  6/?"i@ b RO(n) @`  6/?"ib vinsertBefore()  @`  6/?"pi RDoubly-L   @`  6/?"@ pi RSingly-L   @`  6`/?"p@ i OArray @`  6 /?"pi X  @`nB   0o ?"pphB ! s *1 ?"iihB " s *1 ?"bbhB # s *1 ?"[[hB $ s *1 ?"T T nB % 0o ?"? ? nB & 0o ?"p? hB ' s *1 ?"p? hB ( s *1 ?"@ p@ ? hB ) s *1 ?"p? nB * 0o ?"p? hB + s *1 ?"M M hB , s *1 ?"F F  - T?gֳgֳ ?P<$ D B  s *޽h ? 33̙ff tlPH(  HR H 3 <   4r H # < @  4  H H 0޽h ? ̙33dxp^RЀ3ÿ lHbP  @AL G@;b `B&V|t~  @ @RR`&d J@s!V" Oh+'0X6 px  'GeneraleneeneWagner Truppelo171Microsoft PowerPointrP@>q@@S@@S@`xG25PICT5* HH HH  nnnnnnnnnnnnnnnngggmqPظgggmqPnb,Jn]ngdn:,,/9]ngdnZ1";[ngdn]nq2! ;q2! ;nZ1n8 nT Qn HnT Qn YUnT Qn8 nqݯ4 wׯ2Үw2lw4ޮηqݯ4 wׯ2Үw2lw4ޮηnZ1jUd_KbnbUmX^[SmneMVmn j3?dnn]K_nnn^ inm[K[nj3?dnjROcn27Xn_ /j3?daUeNgYZnnYZnnkSPjnbUmYZnnYZnaUeNgn`KZnmYOfn qB Ђ'9F|2 u4x't,'0+-+'0+-t,e  qB Ђ'9F|2 u4x't,'0+-+'0+-t,e n Z1]Z8h k?gn]Dj5nn 2Ul4]D[TnW8[nn]D2NnnndS8hnnn2NC,ng  Hnq0>Hk }P2m-)j9u+tj'0+-m;r>'0+-tj ?šq0>Hk }P2m-)j9u+tj'0+-m;r>'0+-tj ?šnZ1]iJ:idm MXZa@.n l<Jj6Nnm n BQnknS6nn9MnQ, nBQnjA".nhI(nBQn2Znnnnnmnnnnnn2ZnU& >g,[nqyD5 4 L2KްaB\n0d=t)*-@D)*-tNP$qyD5 4 L2KްaB\n0d=t)*-@D)*-tNP$nZ1]7n`4nnn nnEFnjn BQn!hnK;nn `L*V nBQn(@Z/n0+ fnnkBQn2annnn ninTXnnnnn n2an`"EYnd?"mnqyL9*b ܔZ02Vd4ߍf;>q7tH-hOLH-t(&s#؛ A"qyL9*b ܔZ02Vd4ߍf;>q7tH-hOLH-t(&s#؛ A"nZ1]7n`4n!Mk nnaI*=fnn~ pjkgo g sjkgo g?9fnR..Ung,0mn97n e,Mnn]nn97n~LY0' /)LY0' /)@Gmna!&dn@Nnn _9n8 nnn~,1P-0'4/)ܼ11P-0'4/)ܼA%]nM>MPn "n-nngMZfUhnneMVmnnX^[SjUabUmgMXnn_WjPWncLancL_n~+ P{N0'; 9'}/f /]aT + P{N0'; 9'}/f /]aTCGnk"knX5"cnnnc Tn? gn \68h =n,(Xn* $n~E=jح0'2Hk}>/3fԷaﴔJ=jح0'2Hk}>/3fԷaﴔD1hnT cin=.]K8nnn@LeTZa@.n MX^6idmXin,Ej[O8h*gN@jn~$;C"V=0'EĐ)'}D//%f&!pXC*;C"V=0'EĐ)'}D//%f&!pXCE(ancD%n=j B? mnnmn8T>Nnm n nn^6nnn nnn,cnnb0n&Jn~ 70'Ufġ 45}D/)4$f).pg;70'Ufġ 45}D/)4$f).pg;F$ZnDLn7DnF7Nnn%gn,TEFnjn nn^6nnnnnn,hnnd0nlK, Xn ~EsH>?O0'N *b9}L/)4$f).p^ɾEsH>?O0'N *b9}L/)4$f).p^ɾG!#Wn^O2dn>ahhW"nnC"7TaI*N.Emnnnnnnnnnnn~zV?Vnnnnnnnnnnnnnnnn~XBCgnnnnnnnnnnnnn@~?LYDNnnnn"~ZF`nn%~ 0[HMlnn"~]L^nns~ ^NPknnnnnnnnn~u^O]nnnnnnnnnnnnnnnnn܁~ `RSlnnnnnnnnnnnnnnnnnnnnnnnnn~q}aT`nnnnnnnnnnnnnnnnnH~bVlnnnn"~wcYcnn%~#e\]mnn"~f^fnnF~.f_amnnnnn~hbjnnnnnnnnnnnn~9Miehnnnnnnnnnnnnnnnnnnnnnnnn~jglnnnnnnnnnnnnnnnnn4~arkiknnn$~ "lkmnn~mnn ~7MoqnnM~psnnnnnnnj~tqurnnnnnnnnnnz~6rwvnnnnnnnnnnnm~  syqnn nnnnnnnnn"~i{t{unn$~1u}|nn"~ āwӀsnn"~k ~xӂynn"~!:yӄnn"~ˁ!ҁz҇snn"~{"{҈{nn"~0"L|Ҋnn#~#}ьqnnn#~#~юznnn#~X$pёnnn#~$4ѓonn ~́%ՁЕunn4~%Зnnn~M&hИnnnnnnnnnnnnn~&3Кonnnnnnnnnnnnnnnnnnnn~'Ϝvnnnnnnnnnnnnnn4~'Ϟnnn(~Yˀ'sϟnn~ (CϢn~(Σsn~)Υn^~y)Φnnnnnnnnف~G *f Ψnnnnnnnnnnnnnnn nnnnnnnnn~  *=  Ωnn nnnnnnnnnnn nnnnnnnnnnnnnnnnف~ * ͫtnn nnnnnnnnnnnnnnnnnnnn7~+ͭnnn(~+ͮnn~W+tͯn~,,Qͱn~,1Ͳon~؄,߄̴xn~-̴n~-̶n~b-~̷n~?.b̸n~.D̹n~.˺pn~ԅ.܅˻znv~/˼nnnnnnnnnnnn~/˽nnnnnnnnnnnnnnnnnnnnn~| / ˾nnnnnnnnnnnnn nnnnnnnnnnnnn~_/}˿nnnnnnnnnnnnnnnn+~B0fnn(~'0Pnn~0=n~0on~0wn~͆0׆~n~1Ćn~1n~1n~1n~s1n~c1n~S1tn~F2kn~<2cn~32[n܁~ )22222222 2S ɺnnnnnnnnnnnnnnnnn#~ 2222222222222Lɽnnnnnnnnnnnnnnnnnnnnnnnnnnn~ 22222 2D nnnnnnnnnnnnnnnnnnn7~222?nn~ 2=ņn~ 2:Ɔn~27Ɇn~25Ɇn~2ˆn ՜.+,D՜.+,    E'On-screen Showcn-sgC.r Times New RomanArial WingdingsTekton Plus RegularSCProFontBlank Presentation&Intro to Data Structures & AlgorithmsTodays TopicsPowerPoint Presentation ADT Array ADT Array ADT Array ADT Array ADT List ADT ListADT List: Array implementationADT List: Array implementationADT List: Array implementationADT List: Array implementation!ADT List: Pointer implementation!ADT List: Pointer implementationADT List: Node class/structADT List: Node class/structADT List: Node class/struct!ADT List: Pointer implementation!ADT List: Pointer implementation!ADT List: Pointer implementation$ADT List: Comparing Implementations$ADT List: Comparing Implementations$ADT List: Comparing Implementations  Fonts UsedDesign Template Slide Titles 8@ _PID_HLINKS'AHmailto:Wagner@cs.ucr.eduhttp://www.cs.ucr.edu/~wagnerhttp://www.cs.ucr.edu/cs12&_#Wagner Truppel