ACRS=%'xI @ D<ڎ[{Y4.H!jzF&f\\g*;p np/0*o<0!) ARAjI=Nv8i#9JN3B 2E9T\ZDôn 4Jnv^:@tE:F'$?1~O&?8J (բNlME%' qXbD⺸%fĬXD:@er%Mv./Icgyl~6\*rY#C\VB#igv$i8=UK XCVYeUVYeߕkxc`?-AVixBH!s O0i-A؇`zD^ Q{@޲"5DB 6 M8Du? $ Rt"wDГ!t8DF/ֆЏ#Bт?Y?zBTynCAt(T(`Q@Mo xV=oP=uZ7_[P hH+)H ) ,R:!P  "PT U|q}!Kyr{/ \5`6Vl/<.2Ժ֧sfEF"ބAgK9gם *(qÿq X9H)n-BQmD^ƼotBh*5 N(d"g{BSCx&5g hTAsb8OSǘ^3 F +R{VV4xښ@xl6|!֌@@s( JFɹ]ޝg@{Z@\rfwFS~L[s5*S<ƹ;)-HeoNrv;OS_3g멞*.g.w)kSF==%<:2KO,>?"?Kb\?mi0tBwS.CmiISa>KG'!? mFn-Y$~>6D$:97,`+MwT#Vj:4.qg̲{ϗ-38Mќjb}ݪ}h=֐)F6s:UI|#ދV]{pᙧܽz OIxVn6c?c-z(bo Qĵə2kTIʎldIN^rf8|3dVB%THj>:-KK#AL ox bK<霓eJL[!~L[FdT, Y(ay"Bhp&0׺ĊAcMBl0\a<3$#]wC VLA5q R˦D+z=!SDUsC5kiKƉ(CYsӺs9sCRi3e09Lw?[V%q<&Zc.zTey[^f"Lw)3l%ƵHv6 Y7zӉHck?S^饱Eaw&P'rTx̾"?~ZF$iHPi[}`+?w!}d@f4S>pN$[΢ƯnM*t<CQ2Dv7I(:dddZ*PxDzfDM-9KjQ##2s>hl_Δ`dtPo!X5АU?˩3#.F>]>A(yj Q 7z%gc P ?@N?g}rܞY+o &cTYuv1v?ܖPHө\\j( /)V6|ޞx^3#%80\cA_ԱSn~w'\ӵzӐC՛~^~ tߨriv5cƴd|yɼ\kH_$*E/ J, O3˵m˨s)p#;xz|~!N$\$$&45~6v7h999r: ;(;&=>@ADJFIL@OOQ0WFWHXX YYYZ\^``pbbddddddddddddddddddddddddddddddeeeee e eeeeeeeeee e"e$e&e(e*e,e.e0e2e4e6e8e:ee@eBeDeFeHeJeLeNePeReTeVeXeZe\e^e`ebedefehejeleneperetevexeze|e~eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefffff f ffffffffff f"f$f&f(f*f,f.f0f2f4f6f8f:ff@fBfDfFfHfJfLfNfPfRfTfVfXfZf\fY'{D03514B4-9054-4E8F-B4A0-2CC96DEF3123} Continue; J 3 ?>5 B4G G  ; This program demonstrates some of the more common properties; and methods in the Windows Media Player (WMP) ActiveX control.; ***** IMPORTANT NOTE 1 *****; This code does not include a sample movie file. Before; running the program, be sure to have a movie file available; and set the path to it in the calc that follows this one.; The movie file must be in a format supported by WMP. For; example, a movie with the .WMV extension will work, but a; QuickTime .MOV file will not.; ***** IMPORTANT NOTE 2 *****; The sprite icon is preset for a movie 480 pixels wide by; 360 pixels tall. You may need to adjust the sprite display; size to accommodate your movie.; ***** IMPORTANT NOTE 3 *****; This program is designed to work with Windows Media Player 10.; While most of the properties/methods demonstrated in this; program should work with WMP 9, we have only tested it with; WMP 10. Windows Media Player 10 can be downloaded from:; http://www.microsoft.com/windows/windowsmedia/mp10/default.aspx; There is much more power and flexibility within the WMP; control than is shown in this demonstration. The purpose of; this program is to offer those interested some introductory; Authorware code for implementing the control.; Why not use the movie icon? That's definitely an option.; In Authorware 7.02, the movie icon uses the WMP control; behind the scenes to control playback of your movie. One; big drawback, however, is that your movie will not stream.; This means that in a web-packaged AW piece, the movie must; first completely download to the end-user's machine before; it will play. Working with the ActiveX control directly; enables your movie to stream. Another reason to use the; control directly is to access the numerous properties and; methods available in the control.; You are free to utilize this code in your own applications.; However, GanTek Multimedia makes no assurances that this; code will meet your needs or even work! Therefore, by using; this code, you agree to do so at your own risk.; Feel free to contact Steve Gannon at GanTek Multimedia; with any comments or questions. Email correspondence is; preferred, rather than telephone. Since this is 'freeware',; GanTek Multimedia cannot promise a response to inquiries; about this program and does not 'officially' support it.; Email: steve@gantekmultimedia.com; ***** This version adds an erase and exit feature so you; ***** can see how to remove the movie when you're finished; ***** with it.5 !T9t t your_movie_filename_here.wmv  # ; Set the path to your movie below running the demo!9t #your_movie_filename_here.wmve DmC$oo H00:00  $ 0& 00:00& %% %%:: ::%%99 9922$>> >516> \>>(not available)bits/second   " .$>516 (not available)& bits/second& >22$>> >526> X>>(not available)seconds   " *$>526 (not available)& seconds& >22$>> >536> X>>(not available)bytes   " ($>536 (not available)& bytes& >@@,>>+y !+y!>546>22$>> >556> T>>(not available)fps   " &$>556 (not available)& fps& >@@,>>+y !+y!>566>@@,>>+y !+y!>576>5 s"< "     ; Initialize the movie position (seconds) to a nonsensical value1; Check the 'No Controls' radio button by default "1K-JActiveXOPL: UUUU" R*kJ9SOy?  2  none  RB OpenStateChange integer NewState -- PlayStateChange integer NewState -- AudioLanguageChange integer LangID -- StatusChange -- ScriptCommand string scType,string Param -- NewStream -- Disconnect integer Result -- Buffering integer Start -- Error -- Warning integer WarningType,integer Param,string Description -- EndOfStream integer Result -- PositionChange float oldPosition,float newPosition -- MarkerHit integer MarkerNum -- DurationUnitChange integer NewDurationUnit -- CdromMediaChange integer CdromNum -- PlaylistChange string Playlist,string change -- CurrentPlaylistChange string change -- CurrentPlaylistItemAvailable string bstrItemName -- MediaChange string Item -- CurrentMediaItemAvailable string bstrItemName -- CurrentItemChange string pdispMedia -- MediaCollectionChange -- MediaCollectionAttributeStringAdded string bstrAttribName,string bstrAttribVal -- MediaCollectionAttributeStringRemoved string bstrAttribName,string bstrAttribVal -- MediaCollectionAttributeStringChanged string bstrAttribName,string bstrOldAttribVal,string bstrNewAttribVal -- PlaylistCollectionChange -- PlaylistCollectionPlaylistAdded string bstrPlaylistName -- PlaylistCollectionPlaylistRemoved string bstrPlaylistName -- PlaylistCollectionPlaylistSetAsDeleted string bstrPlaylistName,integer varfIsDeleted -- ModeChange string ModeName,integer NewValue -- MediaError string pMediaObject -- OpenPlaylistSwitch string pItem -- DomainChange string strDomain -- SwitchedToPlayerApplication -- SwitchedToControl -- PlayerDockedStateChange -- PlayerReconnect -- Click integer nButton,integer nShiftState,integer fX,integer fY -- DoubleClick integer nButton,integer nShiftState,integer fX,integer fY -- KeyDown integer nKeyCode,integer nShiftState -- KeyPress integer nKeyAscii -- KeyUp integer nKeyCode,integer nShiftState -- MouseDown integer nButton,integer nShiftState,integer fX,integer fY -- MouseMove integer nButton,integer nShiftState,integer fX,integer fY -- MouseUp integer nButton,integer nShiftState,integer fX,integer fY -- DeviceConnect string pDevice -- DeviceDisconnect string pDevice -- DeviceStatusChange string pDevice,string NewStatus -- DeviceSyncStateChange string pDevice,string NewState -- DeviceSyncError string pDevice,string pMedia -- CreatePartnershipComplete string pDevice,integer hrResult -- Kh5 :-??,8  8 *-5 9GG.8 8 URL99y8 8 CallStringsettings.volumey 8 8 CallStringcurrentMedia.durationStringy(. 2DJP[k  o ; Pass the movie path to the sprite!y! 8& "URL"& 9; Get initial volume setting!y! 8& "CallString"& settings.volume; Get total time of movie (in seconds) !y! 8& "CallString"& currentMedia.durationString h55(77  73 7%%   5 -6d78 8 CallStringplayStatey $/9 ; Check the current play state of the movie7!y! 8& "CallString"& playState; Play state will be one of the following; ---------------------------------------; 0=Undefined; 1=Stopped; 2=Paused; 3=Playing; 4=ScanForward; 5=ScanReverse; 6=Buffering; 7=Waiting; 8=MediaEnded; 9=Transitioning; 10=Ready; 11=Reconnecting; 12=Last5 .+ ( 8 8 CallStringcurrentMedia.durationy>8 8 CallStringcontrols.currentItem.getItemInfo('Bitrate')y>8 8 CallStringcontrols.currentItem.getItemInfo('Duration')y>8 8 CallStringcontrols.currentItem.getItemInfo('FileSize')y>8 8 CallStringcontrols.currentItem.getItemInfo('FileType')y>8 8 CallStringcontrols.currentItem.getItemInfo('FrameRate')y>8 8 CallStringcontrols.currentItem.getItemInfo('MediaType')y>8 8 CallStringcontrols.currentItem.imageSourceWidthy x 8 8 CallStringcontrols.currentItem.imageSourceHeighty>>>(not available)>>>z>>>(not available)>>>z>>>(not available)>>>z>>>(not available)>>>(not available)>>>z>>>(not available) $/E  I[agr  %R Vhnt  #)4b fx~ # # [ b .:@JP o QWv gsy          %; Get length of movie (total time, in seconds) !y! 8& "CallString"& currentMedia.duration; Determine attributes of current movie>516!y! 8& "CallString"& controls.currentItem.getItemInfo('Bitrate') ; Bit Rate>526!y! 8& "CallString"& controls.currentItem.getItemInfo('Duration') ; Duration>536!y! 8& "CallString"& controls.currentItem.getItemInfo('FileSize') ; File Size>546!y! 8& "CallString"& controls.currentItem.getItemInfo('FileType') ; File Type>556!y! 8& "CallString"& controls.currentItem.getItemInfo('FrameRate') ; Frame Rate>566!y! 8& "CallString"& controls.currentItem.getItemInfo('MediaType') ; Media Type>576!y! 8& "CallString"& controls.currentItem.imageSourceWidth# x #!y! 8& "CallString"& controls.currentItem.imageSourceHeight ; Width and Height; Now verify data exists and reformat if necessary$>516& >516(not available)& >516!z!>516$>526& >526(not available)& >526!z!>526$>536& >536(not available)& >536!z!>536$>546& >546(not available)$>556& >556(not available)& >556!z!>556$>566& >566(not available)0%%     %% kK @]MMssiE')-.30d100K %%  @VMcMNNiE(-1 0%% 0d100 1@U88icM88iE5 m~8 8 uiModeminiy8 8 uiModenoney%*:@FMR; Display the Mini set of WMP controls for a brief moment.; We found this to be necessary for some media formats to playback smoothly.!y! 8& "uiMode"& mini; Since we're going to use our own AW-built controls,; now immediately hide WMPs own controls again.!y! 8& "uiMode"& none272203  01 Return.N Click5 /,=YY 8:Movie was clicked...  :Movie was clicked...N  DoubleClick5 /,=dd <:Movie was double-clicked...  :Movie was double-clicked... Return5 C5 :"8 8 CallStringcontrols.currentPosition('0')y8 8 CallStringcontrols.playy  $/M]cit; Make a note that the movie is not paused0; Rewind the movie back to the beginning time (0 seconds)!y! 8& "CallString"& controls.currentPosition('0'); Play the movie again!y! 8& "CallString"& controls.play-5 p8 8 CallStringcontrols.playy  $/=; Make a note that the movie is not paused0; Begin playing the movie!y! 8& "CallString"& controls.play  55(  1 -5 Ap8 8 CallStringcontrols.pausey  $/>; Make a note that the movie is about to be paused1; Pause the movie!y! 8& "CallString"& controls.pause  55(  0 -5 ::8 8 CallStringsettings.mute('')y  $/? #E #H; Make a note that the movie audio is about to be turned off1; Mute the movie audio!y! 8& "CallString"& settings.mute('##')55(  0 -5 jj(8 8 CallStringsettings.mute('')yX X 8 8 CallStringsettings.volume()y  $/? #E #H LX jpv # #; Make a note that the movie audio is about to be turned on0; Turn on the movie audio!y! 8& "CallString"& settings.mute('##'); Update volume in case user fiddled with volume slider while mutedX !y! 8& "CallString"& settings.volume(##)55(  1 -5 [8 8 CallStringcontrols.playy8 8 FullScreeny  $/=MSYd; Make a note that the movie is about to be resumed0; Resume playing the movie!y! 8& "CallString"& controls.play; Set movie to full screen!y! 8& "FullScreen"& -5 NHk  B| ! "8 8 uiModefully8 8 Enabledy:WMP's own set of full controls now displayed. (NOTE: In this version of the demo, some of WMP's own controls do not work in sync with the AW-built controls.)      $*07<LRX` dj ; Update radio buttons 1 !0 "0; Display the Full set of WMP controls!y! 8& "uiMode"& full; Activate the WMP controls!y! 8& "Enabled"& ; Update message to you:WMP's own set of full controls now displayed. (NOTE: In this version of the demo, some of WMP's own controls do not work in sync with the AW-built controls.) !"-5 ''C ! "8 8 uiModeminiy8 8 Enabledy:WMP's own set of limited controls now displayed. (NOTE: In this version of the demo, some of WMP's own controls do not work in sync with the AW-built controls.)      $*07<LRX` dj ; Update radio buttons 0 !1 "0; Display the Mini set of WMP controls!y! 8& "uiMode"& mini; Activate the WMP controls!y! 8& "Enabled"& ; Update message to you:WMP's own set of limited controls now displayed. (NOTE: In this version of the demo, some of WMP's own controls do not work in sync with the AW-built controls.) "-5 ">># ! "8 8 uiModenoney8 8 Enabledy:WMP's own controls now removed...      $*07<LRX` dj ; Update radio buttons 0 !0 "1; Hide WMP's own controls!y! 8& "uiMode"& none; Deactivate the WMP controls!y! 8& "Enabled"&  ; NOTE: False is the default; Update message to you:WMP's own controls now removed...  !-5 `:8 8 CallStringstatusy $/6 :!y! 8& "CallString"& status-5 :You are using Windows Media Player version 8 8 CallStringversionInfoy  DJP[g # :You are using Windows Media Player version #!y! 8& "CallString"& versionInfo-5 [Tj08 8 Enabledy  8 8 CallStringenableContextMenu(-1)y:The Context Menu is the pop-up menu that appears when the user right-clicks on the movie. Try it! (NOTE: This example is not currently coded to work in sync with the Context Menu actions.)8 8 CallStringenableContextMenu(0)y:The Context Menu is now disabled.&6< NTZe{  !NTZez ~ ; The Context Menu is the pop-up menu that appears when; the user right-clicks on the movie.; In order for the Context Menu to function, the WMP controls; have to be enabled first, even if you elect not to display them!y! 8& "Enabled"& ; If you checked this box then...*   1 + ; Now enable the Context Menu. To see the effect, you have to ; of course right click on the movie. !y! 8& "CallString"& enableContextMenu(-1) ; Update message to you :The Context Menu is the pop-up menu that appears when the user right-clicks on the movie. Try it! (NOTE: This example is not currently coded to work in sync with the Context Menu actions.), ; Disable the Context Menu. !y! 8& "CallString"& enableContextMenu(0) ; Update message to you :The Context Menu is now disabled.- *- - +-333333?0.15\] ] 7     ] 0   0   7 1 *7 QK5 w55(] ]   ] 1  ^"h55(] ]   ] 1  zhcc@>>8y   1!8y!1& >5762203  0 >%%   5 Tm~ P8 8 CallStringclosey)/; Close the movie now that it's off the screen (except 1 pixel)!y! 8& "CallString"& close5 ad8 8 y8 8 y.4:; Unload the sprite!y! 8; Even though the erase icon that this calc is attached to; is supposed to erase the sprite, a few display drivers may; fail to erase the movie with the erase icon alone so erase; it with the EraseIcon() function to be certain the movie goes away.!y! 8 D #$%"! &%%  00%%      5 5nFp8 8 CallStringcontrols.currentPositiony $/H ; Get current position of movie (time, in seconds)!y! 8& "CallString"& controls.currentPosition@^yyiMyyiE5 <V8 8 CallStringcontrols.currentPosition('0')y  $*5S W ; If the movie reaches the end, automatically rewind it; but don't replay it automatically (set Pause state to 1)* 0 + !y! 8& "CallString"& controls.currentPosition('0') 1- *55(U U   U 0 @5 Yct``X X 8 8 CallStringsettings.volume()y    06<GX #^ #`; Change volume but only if not muted.* 0 + X  !y! 8& "CallString"& settings.volume(##)- *>55(U U   U 0 @5 NN&8 8 CallStringcontrols.currentPosition('X ')y8 8 CallStringcontrols.currentPositiony)D #J #M Qcioz ; Set current position!y! 8& "CallString"& controls.currentPosition('#X #');Movie_Pos:=PathPosition@"Progress slider"!y! 8& "CallString"& controls.currentPosition>$Kxcaa``! 0G(&300 #3Q&ek_ NW &)TWwX;!)aGâu{ KW=9kVuo]zIq̂ ۖi2vpdSӢ.X}`|o ՠx]Sr@l;$Bop,%TJNT6Gl/ΖeI%T-i-sְMb:񧹱a@ *C][C0g?/4q'u8%mY}0zhpT 30Pw,+f-Ypl}!qxP#/ ;nI`koVbbY<#돲.^,"ӓ"qwD.sn6v^)=w*uKmy^T 2uyxcd`b(fdl`LrIs Xt,c F"ff``ca xcd`bPb &Yҋ RB|XD xcabH//H a`a<6 xccHb`d```b VbgDҒĢTs= ҔĂL c#e$!Auؔ10SPxcad/H a``e`p*Mq d`Cb30x- 0.J.")[p˄!9)S=,PI1Cu<ɓ3 _fZyW 3xMR@$H%R ( *r FL`t̫E2j) 2چϛ}ka5tEPԬM!a%TܿҵRe%︾}Mq*?/F͊qO @_v}8_λFw^ϙ?b_98MF >}B x-K P["]d?फ़gh1gsF:\<%K?WDԇS h{<?hَ-] xcfb`B&V 0 J)xcdH``d`a g[70I(#2u008e&033e&秤2 .Zf& c$d<`LŜ*9uFn0P8!,Vt"z9xE?K@şV V6 XX`vg'uCZ{ .NI64pJ#JBM}1npL;JϔLbK!sN.*%%7,& ck{J}&CetH&$oSi6'H2%Hjt:8`@ 0X0 Σ DX0 dt`S@ i ,M X0,`A 0tp`7A L!vbˀny 0 ~Ltp`X0B B%%O+=2z<(vV6hFiD>>>WjK-rpI؁H;LVh&hl6K{{Jss455Icc444H>9^NX>oe 7A0f$ 2ٲ\yEeUu}7 .pu,K4,,;pA˯J+W1CV]m5\ku]o nQƛ >b6b䖣=flӸ[ovNve&sw89'qQG3?ēN>N?̳>ο‹.]zW\yՔvuӮ֛nnλ=ȣm=ēO=̳x‹/ʫƛoλlY~'~/o~_~~}'lދC1/3$_e""IŲc^Ӓ;ku<)uϬ2Nmt6jdW}؝0Š0}a.W(k^Gbz&UQyW^Tӧ4_u]KQ|[> I6 (3рbY[k0/DfuE }rm #n-GQ,]Ζd^JjOg.ճh(W7*5` IZew(aMjRO^#e-IkYGReڸ@+ͤ3D4ֹ-ͤg=ͮ]ivΛN3墔fwfդG%gkTO0xu|Eߞ$x)@ڴ8E:K(:hR KPwhx ۽ܥ~337o{Ȩ2e KJDfeka~dm%qAggtS%0JX0" :8`G -:8`$4QM0̳}YB :8`Eā,8l&6 F D<X0@`A8`ā,)ʆF͂ D,`s,Ă, \ X01L>F̀hB2,`A 1  NI>ʊ&O+=2z<(hٵZN-JKeДkz56MC]SIP5, Ao/"im &YCڤUIrteɼF%F3}t_o%tUu&; XwXpAu /b7-RK/3x_aŕVbk묻 p7>e6b䖣zֱvwqnO{xzmGL<򨣏9vRqǟpI'riqYgsy_pE_r+\{ݔpM7rmq]ws}?C~:ɧ~瞟Bŗ^~^ͷ~ޟ3?O?Y_~7~}?/?; S"C9mofopN"aMM^xߙHw1I[V,e6Ul$]~9 ~&DaU~*$c[&HEsI~-y j#$?ݡtzTdqUɒW=3Q_o /^P{'qO6Dܓ05)?&IDIUEtd j<^I 4*l$l_6>:Y/~ilǙpQk#k2K*VXgJ㺊^+G@Gfï:}\xS⼼ ֻ E*ĶPU [*+Bo*lU(sTh)BW8ϔŬrB;x×xxE[lسF!D!` cW^Qc.+#Q]c?E]7wK@}|rs3ߔ}NdDP<\}IȔ>2GKZ|_[(hd$3##]&K6āA6,8`A8tp`% D5A  Y2-ː_tp`y D&:8`D3p`E H, )@ 0<L ,X0 P@Vtp`$tp`I0X0@|t; 3a1 [ X|,L>.F>`)tp`?)Ɇ0-Zt#CnnnnnnnZjZvm-i)!a"0:Z K[:;;CZ[[EAkV y¯syf ҋȱċɲUR'r Hu/1QTORb{4/GKm1'= ?++j'ksC+vPW*X|ߞ_^\MwL ڜB?1Iq^z8.'YPb#Y=:/\<$^DKz$1?}6ϣVQJe,SzMIe59~Y65xS{η{}~Gj_][]JڑvPƹ% @xw|EKT$VRla:+X],{wwĮxDw}u}Kn/wʾ쉌j.GJc/\%=zS*mڢŅ^tttHǬ9M a(, tС (E 0X0 X0/0Ua|@ X0dNr`X0 L 8`@ 0(JC]ehB!LN.tp`&,?)DNltݭLtp`X0,S NI!JDnGM=ztuu;uttkt4rW4"C%}Ԃ>.:.9MMR)*---$ R]]-]sB:e ﱾa}oOZ e oҙl"_Y5ϼ ` ."_l%\ae]n+ʫZƚkκ뭿mR3 ?YH:&\3ȒK5JHMe-ee|H8?QY{(Kc-cKm.'[.W.I&]R˓.5t߉NJYj Z%xw|E%XIņ=`hbAv0Fl{kTDarvŵw%k쫨]ˡ${{77of#d|(ilDDWJ_ R^w-H[[6M&̬t͜&A  X0@#:8`Ytp`IdQ0|P >| htp`,`0Q'z9`@],4``,>t.`@B N]Ltp`&,?_Dw+B:8`,`2 0PSU1DӣJ= źuU5 Zr-R˦%ru$VՖZMb"0:Z 3%NViii&ihhjvc}#O>c$ce%L,^*]R:r|\U -ȢCjj[|%jXze[~ +*nZkzoFdӦ61y-z6nؖqaǝve&Ǟ{M{~pAraO:֣&}̱?O:SO;3:s; /K/]qUW_smu0i7|Kǭ~ǝw}Ͻ?zx#>x'zg{//ʫƛoλO>/o~_~??DT*2q ~dofи=kIm*Hߴeǝӏtu{ҏ0dU~N';ϧ4r^Sz9zc"VG,ЊKǚΛӡ޻SNϯc^X{TX}O*riT' TI(~2pdP$'sQXfS幖ɬ0TtGN/FEW"YVwXG̞4*qɘ3{;_sfV0_l~W1\EFEUx%U* gXi԰Fxw|E^Khb {^(Ă({؈:֨5^]qމb*}r{{o;;791#eBhil\D:rqTeZ[$A%?+/3:$"q`@D h$C pDX0@gtp`&h`@tUmM_tp`>4:8`,3Q'z8`@],4``,>WC]ah"\ 蜺 /Lp :8`?.+Nl|]  ?::8`,] wIWnՒ[Mntuu9uttitZ^-MKЩ4uJj_-Ż%Mb"]0:Z TeNimmijj9Lko9':m|ϓF2Nyɛ;qx~+ʪ R= ,CkjYtŗhXrYvr˯J+jk:뮷hM69yͷrVcf츖nvi]&&=k}oYb-OI^}M[>>.,WmfX3)zU2*?J,9tφ9,yWhyBֳqyJ_B??/ϯí1bBؽ9I(~yVP*YTJV^ )y)Zer% Q/*xQzؑ_tvEͿZ e8PtLLd$/V&9OW&QJ+hIter%J2x6=g^ EZtuxexEޛJР`gZEJMSCq'kpw4@)ܥHp(+ wP`yoG93ODF.GV_D;#ſfV$³'qЋBOOꑾ$0JX0@# :8`Ztp`IhacC薣IN0X0tp`,#> &D/ QZ ,2:X0)| htp`l ,P+p`tp`X0  (X0hgr]Dw+$C:8`,`2 0Pn)EY1DQcGFvbN:*MWSii:tL]WjK-tpqȁH/Lw:ڠ?I>^ioo6iiizԮ.c}'F5}X/7fdɪթt&[3nA7 .4yE]l%\je,+ʭ*f誫ƚkκ뭿 7jx#Fn[rV[>n6n;]vmvI{>t!q#>˯ǟ~_Dwq/57oHN^ZU6G${>7)CY:D)g?ͤٯ(&QL5Ĵ QϯD3rrXz&B˩ =ӱ%_S1_<ܾ< ^{DА'5rBŲ$%?wO&!IV25Zuk*4{uEOURe3J2O{K*𯱑kl"{GNrX1 eP.&rSW榤rSJ)ܔsS2O~S:^#jNE/qQxw|ETତbÞuW4 X{/^Qc ++Qc_E]o7\.77ODF5q#ї2V-=2+՚r#mmq7LF2335cdPX0fCɂ $#,`88`bј 0K, %+CX0@tBqp`AX0@1Q%z9`@T]HX0  A8X0(t  PzY0 P*p`88` BX0 pd#%6 VC88`!,`2 R|E$b"5zGM=ztuu;uttktrWT"C%|TNwttVh&hϔ7-!"MMM tZ2X0ѓOſK$RUͿ .".6~%\je]nʫfkκ뭿mɰM7k|#jmFn;jGi;nwy]w}{Ͼ|ȡ~đG:q1w N#Ӧ?Od|g}^RW^}7|w}>dz>gW_wcO?oל7 S"C_Lk0#z~3 I4a-F$״ugCrZ'C(9gkyvzR{A:jA R} :(9AYs*1ż~Uз^E'j_"z u j}6t){BIPzz 4xaGFR{f}5chuqа&N<ɷ=y<=37osPӷߋfٲmg{v>=: {s?^}99~S7w\v\lmܰuک>3•WHvGEZcO YŌM 3O<}wގrίOS=r>fC8y p܋_.|צN3={ƫ7o%}} >>zl[䜨ys矉^`K-?bk;~݆? 7YxW[lTULv`hi=0B+ĊmVZr^˅tZ )1@1Cb hc1~(/!1|$$J]qLjͽ{sYwusKܸ7Ҳe˩JgfL*)Hhll TNIABf' q3Os<ɭ9f@UO6̜S{=r/ 9YTUTd*QsPD\v&/Vӈ߳vV.1 7C|c|GOWݓoX!yP zs"99:kjqs:`b( Ld`0-ފ 2?hIAC`ibX$)~sPY]iz2a[`saڃ=Z0wq{O Faghf522Bf'N(ڍBWW홇턉꜋`^SgԚI2 wxP+)SR3{3d*{VDzƌw~gЇXa'YeUʺ*OlHߍv%v\/:Z~K/\Sϳ?E>I+Z.¬BjrN$:ts>_̿ |6Zg:p;q$H1yMΣNBb2ő2~4Έ۹ K@:.r#JŢÉjs*fvdZDG b~OK`~W+ڸ]RT4mZλA?zd^%Sq:P "dn;"έ]nRExޒx,^^$8|ݙ5/wZ_ "_vRx}mkjD,'rUbp1' ؆E|=oL1_2\,KWUwHJvZKe,-;HL)Gb EI5s֬3<;V3V~2?z(M.oRWkD,s}ä]'rU_K#)&z^{k'bhM:- ljdjh mNJK8tN]&C?5W&̈ "eGQΈ#WsrhfF-^Dym/e=d˕}-Ww_i 歵uh6]/m}'z).\:x0(~;q44{%!"nj5@Aw@r*WBkJSn3ަ1!4-ը %ڢR|=W Mv0wA<>S"> 9_hȾh18Rh5h>jB}nJnpWрԧau'viWD*MN6[=U~ :$3uvI|30aUyYJ%\;8=4lM ^ؒk<]?p^"Fob(,ЗIgsWr1MN7xc`tgc000de``hap6l~F;CGG.Sc?P!1A^FO jf)Puc2dX xc`tgc000de``haVFA>F&;êUt!\" mBL=@ a1 ZKzzr Fxc`tgc000d`b``8*BLʌ0z4$Q.$&ebee(`dh3z=`]?#$?c>#/T/X%H7/XGǜ̼EOxc`@BFz;L-@Rj$@ @@}@3%@\f\f &@Ar @r @Bvt @,>6u @!,bu @Nhu @'(u@ku@cv@mOw@,w@w@w @lix@rdy4@, z4@ ~4@ ]4@ ܇4@m q4@P ސ4@X .4@x !@ "@}  (@!4@"4@fǩ#4@g-$4@%@W-Wky+,?/z}*L[\(+@xxg+9 @@ HP P ԃPf =PPP cPTC1 @+!8CePsG lokPQ P PaQ emry cnPPPtWEiAeusD gohPP P UPa.eprQ dnbPPtRSiLePsN lovPQ P oP