ACRS)Uj[Uxc`d``e`f@\ B (" |  ,  < `qa aPfb` tL l nQ0 xx{pTǿ{wu6K&iҀ[ג.)1A)`RBQ" JL-UDI_HCah&u))(29g'Й={^EqJ2SPJM٧S%劂. Wk›­0"呪H]9;r4r*r.IDQ=uSՙjD]6jWmW;SzYP-mӊ@ ZJkkG?h紏+ sQDLЗSzO?wgz6Fq4VƳFq03Fg̡f,1<ڬ77)T~Kcf*b~=d<ߤ_1+PD ,$ld~,=Dl!UTWj+ہh6lGlyXtln1Xzcm:2cx:f1h2Qyee"|'Pj]"I)Xr-Mf ,v[HL nҬߓRUuM+_ EWd>i< FX:s"X:?=DQA&DLgt!P?`B0E ?ykG\9 2$ |?J9,݀@5T t]G51R :<~z9j9rYz3~Hlk3'I T:hsK>#[aDvK[bYi(qn{y& (d#~MmR3/SrxY2` 1Q.H$㐨d$H *$$jY|UNj߉]jw؉xF.<:MVh얄l䧒 &4` {$!{ WI Y` $)#Gg5V "u,]Qx?Aǁ`{G璐$^āNAIB /IB#H$d䗒$S "&s=++|Q/\?5NJR\UIȐ$tN^d.5A^9W̧&H$d1Aސd!5A2ϟLcQ?+ oՑ1O9$U,ANHB=WHBF-I $dur'Aޑd)$o%!3O y}!]ZxKTQ17䲍d(7(feaVԲ,]+5_pS3BHICR((_a>Y̅(͇y᜹1};f}ifw*XUa,ϱuĶ?aeGkCZy1r{Ӻ$MO 1.ۇo9" Ѣ|+:g~qkJ5n-)L?>ޥXeX8ٖ_msU7,M;9urLn Vu9}_KrRm% ^z㽽Sۣ>OOcHgG w9W4\3+wKulsSK!,u:#uzJҩwF+x] b}~&P(gh2 )!H`d/1 \cc*,fNwCGO哭cWk#N~Uz%$>x?8 (zNq"Ig+_i3|%72iLxJV[F=+o.3/} 3N=f, [}7J7UʮZNvm.l'VYxXK6ry+,$QU!,+ g!#$C!sth)Q~;G) O.̜7Z]Vzx:kM~hV.T!F:짵a Iaix0&јbꆭg 4kmI-Câ1Ѿ ,\s}!؆ː|^"~'\Www>ܐAj iXս:W@Nla3 %N}3Q!jH`15MI 9٥D~ b s .\59PPl4 ۨSLI0%SLI0%)G b s .\54 b s .\5u8*-Na\|&SHif7Hٔ(3-jff?5_k`Nz#94ȺCMd-u TwoKZ'[ح1TfS zi\# R(M_"[0K{M6}سj#͎)cJ7t>;$3֓?HIh?DORoE'_]l^LT΅Uk9޷9;8Q熌>vƷw>?BIM@zȉ^!1YIM8Nxz|~* ~vV "% ()2*+++..B/// 0n00 1X11123568:CDFRFFGGGJzJJJTSjTTT]*^~^^_<`V`cxehi`ssstRuuuxzn~NȇPBVʔ,zܖ$Jxҩ,>rp :JLJjj*(X6L\    Nv@ Lt>J r!<"###$%d&.''()V* ++++++++++++,,,,, , ,,,,,,,,,, ,",$,&,(,*,,,.,0,2,4,6,8,:,<,>,@,B,D,F,H,J,L,N,P,R,T,V,X,Z,\,^,`,b,d,f,h,j,l,n,p,r,t,Y'{ECC4AE43-70D4-4633-A10D-7793915E854D} Continue; EUUU>5  ; There are many online mapping applications available, such as Yahoo! Maps,; MapQuest, and Google Earth. (Except for the tool palette, the map images; and interface in this example are based on and credited to Yahoo! Maps.); We have gleaned some of the features of these online applications to; demonstrate how you might provide similar functionality in your Authorware; applications, in this case without the use of U32s or ActiveX controls.; This Authorware 7.02 code illustrates the following features:; 1. Image panning by dragging images within a defined area.; 2. Image panning by dragging a "viewfinder" in a navigation window.; 3. Simulated zooming of images captured at various zoom levels via a zoom; control that includes zoom-in/out (+/-) buttons and a draggable slider.; 4. Tool palette that is movable within the presentation coordinates.; 5. Placement of icons that can be "grabbed" from the tool palette and dragged; to the image. Once on the image, icons move with the image as panned; by the user. The icon position is adjusted as the user zooms in/out.; To modify this code, you need to study it carefully; especially the calc; icons and the Position properties of the display icons.; This model was developed by, and is the property of, GanTek Multimedia.; You are granted a non-exclusive right to use it any application as-is; or modified. GanTek Multimedia makes no warrany, either expressed or implied,; that it will function properly or achieve any particular program objective.; By using this code you assume any risk of doing so.; Comments can be emailed to Steve Gannon: steve@gantekmultimedia.com; However, since this code is provided without charge, a reply cannot be; guaranteed. Contact Steve if you would like to inquire about having GanTek; Multimedia modify the code to meet additional requirements.5 V?? ; When you launch the program, a map will appear. This first image displays; the widest view of the base images.; In the upper right corner of the screen you will see a viewfinder window; with a thumbnail of the full base image. Depress your mouse button over; the viewfinder and move it around the viewfinder window. A portion of; the map that the viewfinder is over will pan across the screen. You can; also pan the map by dragging the map itself. The viewfinder will reposition; in sync with your movement of the map.; In the lower left corner of the map you will see a zoom control. Click; the + button to zoom in. Click the - button to zoom back out. Alternately; you can zoom in/out by dragging the slider up/down.; In the upper left corner you will see a tool bar. Icons for four sample; "tools" are included on the tool bar. You can create your own and there; is room to add many more. The tool bar is movable; depress and hold your; mouse pointer anywhere on the tool bar and then drag it around the screen.; You can drag a tool on the map at any zoom level. The program includes; 10 icons of each of the four types of icons shown. As you drag the map or; viewfinder, the icons placed on the map will move in sync. As you zoom in,; icons will get farther apart, often going out of view off the screen. As; you zoom out, icons will get closer together. Icons can be repositioned; on the map by dragging them to a new location.; The code is well documented. Take time to read the comments in all the; calc icons, including ornament calcs, so you understand how things work.; Once you understand the code, you should be able to modify it to meet; your needs. GanTek Multimedia can enhance and customize this model on a; contract basis to meet your needs.5 }}( yIconListLinear list to hold binary flags indicating if an icon has been used in Icon warehouse \z ###    "+ # 7= #; You can add/remove tools on the tool bar by adding/removing decision; and display icons in the map called "Icon warehouse". Depending on the; dimensions of the tool bar you ultimately use as well as the dimensions; of the icons ("tools") that you use, you may have to edit the Location; propery of the display icons as well as the hot spot interactions on; the "Icon interaction" interaction icon. You'll also need to add/remove; respones on the "Icon interaction" to match the number of decision icons; you ultimately use in the "icon warehouse". Create one icon, get it's; properties all set up, and then duplicate it for the number of possible; icons of that type you want the user to have available to drag from the; tool bar.; It's very important to maintain the numbering/naming convention of all; icon warehouse decision and display icons because the code builds icon; titles for referencing on the fly.; Here we go! We're going to create list variables on the fly for each; decision icon in the icon warehouse. You MUST run this code at least; once in authoring mode AFTER setting up your icon warehouses.. 2 1 3 !y!  IconList# !\z!& 56& Linear list to hold binary flags indicating if an icon has been used in Icon warehouse #- .m&3815635 I11 ; The actual accessible icons are never really fixed on the tool bar.; They're activated when the respective region of the tool bar is; clicked. However, it's imperative that you embed a dummy copy of; each icon as part of the toolbar itself so it looks like the icon; is there.HK@,;;$.\Images\Toolpal.gif.\Images\Toolpal.gif"#$%a25 [l== b  ; The zoom controls (the vertical track with notches in the lower left; corner of the screen) are layered above the base images and any dragged; tools. However, the toolbar itself can be situated above the zoom controls.; Keep user from moving zoom controls.b 0BB(.\Images\Zoom_panel.png.\Images\Zoom_panel.pngLK$v 25 kTT b  ; The viewfinder window is positioned above the base images. Any; icons dragged from the tool bar will be layered beneath the; viewfinder. The tool bar itself, however, will overlay the viewfinder; if it is dragged over the view finder.; Keep user from moving viewfinder window.b 0LL ,C:\Imprimis\Images\Window.pngC:\Imprimis\Images\Window.png Kx\250250."Z10d1000d10025 #Qb b  ; Allow user to move view finder. However, it is set to a region; encompassing only the viewfinder window. It cannot be moved; outside these boundaries.b 1bb 8C:\Imprimis\Images\Movable_MagGlass.pngC:\Imprimis\Images\Movable_MagGlass.png& K<<(*-LN5   yZoom #Thumbnail # # y    "( #  .4? # QW]; Begin by displaying the first view (we'll use Zoom 1 in this case,; the farthest out). These base images (maps in this example) are; stored in the "Base image warehouse" near the bottom of the flowline.!y! ; Initialize image number to the first image you want to show.1Zoom #; Display initial thumbnail. Thumbnails of the base images appear; beneath the viewfinder window. These display icons are also stored; in the "Base image warehouse" near the bottom of the flowline.#Thumbnail #!y! #152::$.\Images\Slider.png.\Images\Slider.png_K%%  @iM]=MffiE5 % b  ; This is the slider on the zoom panel in the lower left corner; of the screen. It is made movable here. However, it is movable; only along a defined path. Open up this display icon's properties; to see the path.b 1)23gt55 v"ss b  ; The images used in this example are based on NAVTEC data; and Yahoo! Maps, thus the copyright notice. You can replace; with a copyright notice for whatever source provides your; base images or just delete it if your application does not; require a copyright notice.; Make this copyright notice nonmovableb 0K ) %5 v"BB ; All the interactions occur within this map icon. Return.5 7=H ; This interaction contains hot spot interactions set to "cursor in area"; so that a hand pointer appears whenever the mouse pointer is over; various objects.  5 :4xx0\            y &06<B HN  &`fl &~   &; This calc checks to see if the icon just accessed on the tool bar is; completely contained within the boundary of the tool bar. If so, then; the user did not place it on the image so we need to erase it.*     + *           + *     + *           + !y!   - * - * - *- *""U  U  @""U  U  @""U  U  @""U  U  @""U  U  @%%U U  U  @%%U U  U  @%%U U  U  @%%U U  U  @%%U U  U  @ Return5 ibb ; This interaction deals exclusively with the "tools" or "icons" on; the tool palette. For every tool type you add in the "Icon warehouse"; map icon near the bottom of the flowline, you need to add a matching; hot spot interaction here. Read the calcs attached to, and within, the; attached hot spot interactions to learn more. 41h22$ -    10   22$ -    29   5 'N8""   ; PaletteUsed is a variable that contains a binary value, either 1 for; TRUE, or 0 for FALSE. We need to distinguish if an icon was just; moved off the palette or if a previously placed icon was just; repositioned on the base image.1 41h22$ -  #  35   22$ -    29   5 u$5""   ; PaletteUsed is a variable that contains a binary value, either 1 for; TRUE, or 0 for FALSE. We need to distinguish if an icon was just; moved off the palette or if a previously placed icon was just; repositioned on the base image.1 41h22$    10   22$  K  75   5 $5""   ; PaletteUsed is a variable that contains a binary value, either 1 for; TRUE, or 0 for FALSE. We need to distinguish if an icon was just; moved off the palette or if a previously placed icon was just; repositioned on the base image.1 41h22$  #  35   22$  K  75   5 $5""   ; PaletteUsed is a variable that contains a binary value, either 1 for; TRUE, or 0 for FALSE. We need to distinguish if an icon was just; moved off the palette or if a previously placed icon was just; repositioned on the base image.1 Return25 RIcon 1y IconList.2y$y Ny.2y-y$yzyV V V W W W    S ".  4:IOW] a #  eqw  {   O   !'-3  9  ?E ; This ornament calc is triggered every time the user does something with; one of the interactions attached. The code below checks to see if an; icon was just moved. We need to determine if the icon was moved from; the palette to the base image, or if the icon was already on the base; image and moved to a new location on the image. This code is only; triggered in the latter case so we can update the new location for the icon.* !1y!Icon &  0   0 + ; Temporarily store the icon name that was moved   ; Next we need to identify the list the tool coordinates are stored in  IconList#!$y!&6&!2y!.& 1 !Ny!  ; Now get the index the coordinates should be stored in !z!!$y!& !2y!.& 1& !-y! ; If the index is not greater than the number of items in ; the list, we know the coordinates for this tool were ; previously recorded so update that coordinate pair * !y!  + 56516V V  56526W W  ; The line below is redundant but a failsafe just in case. ; It confirms that the last icon to be moved was moved from ; one spot on the base image to another, not from the palette. 0 - * ; Reset the temp variable in case we use it elsewhere. - * H.h>>,l    l  5 t ; This gets triggered when the user clicks the + button on the zoom control.; The code in this map will zoom in by one image level. Lh55(  1 5  ; This gets triggered when the user clicks the - button on the zoom control.; The code in this map will zoom out by one image level.%%] ]  ]   %%] ]  ]    +h==,] ] ]   Th66$]  ]   ? ""]  ]    ? jj @U Icon 1y  U    !1y!Icon &   B 5 SjX      ; This is basically a dummy condition but it's necessary.; It triggers the calc attached to the interaction icon; so that it gets processed whenever a tool is moved.; Clear tool name*   + - *; Make a note that a tool was moved but not from the palette.066$ ]  ]     E""U  U  @5 afX X %yX X %y X X %yyX X %yl l l Zoom   y#Thumbnail # # yl l Zoom   y$Thumbnail $ $ y    (.2  8  >  DPVZ `  dpv  0  1 ;  <  #   #   #Y##   x)/ w 5;A # SY_ cit # U; Find out if we're zooming in or out. We need to know this so; that when the selected view is displayed, the icons placed on; the prior base image can be reajusted accordingly.* !%y!X  + ; Zooming in (more magnified) 1, * !%y!X   + ; Zooming in (more magnified) 2, ; Zoom slider wasn't moved so do nothing with icons 0- *; Get difference between prior zoom level and the new one just selected.; Be sure to apply the ABS (absolute value) and Round functions. !y!!%y!X ; Get image number to display based on where slider is located.!%y!X $ 1& 1$l & l ; Display next image and thumbnail.Zoom #!y! #Thumbnail #!y! #; Erase prior image numbers, whatever they may be,; as long as they are not the current image number. 2 1 3 l  *   + Zoom # !y!  $Thumbnail # !y! $ - *- .%%  015 1`illi:lliM 7  7 iE%%   h5 F)   L  yIconList Ny y! !!  !!      ###   u "+ #  1=C  G#!##  SY s ]#/##  i S o{     +      ) ; Repeat for each icon type. 2 1 3 !y!  ; Get the name of the next list variable containing icon coordinates IconList# ; Assign this list to a temporary list  !Ny! ; Repeat for each coordinate pair in the temporary list . 2 1 3 !y!  ; Repeat for the number of tick marks on slider track user moved . 2 !2 3   ; Multiply the coordinate pair by the zoom factor. In this example, ; you can zoom in 5 times. Further, the 5 base images were grabbed ; at approximately 400% for each zoom rather than 200%, thus we also ; multiply by 2. However, the image captures in this example are ; very rough so as you zoom in & out, the icons you place on the base ; image will not perfectly match their original comparative placement. ; For a real application, it's critical that you know the exact ; magnification of each base image and replace (or remove) the '*2*' ; in the lines below accordingly.  56516!2 56516  56526!2 56526 - .  565162 56516  565262 56526 - .- .5 --   033$ / y !y!   h5 A99Icon  warehouseIconList    $ #* #  5;D #  J 1Icon ## warehouseIconList#; Establish a new counter0AA,Nyy !y!!Ny!n  +hU15 H'+`Icon . NyyV V  W W      $ #* #, #  2>DH  L^djv   |  ; Increment this counter1; Identify the icon we're about to moveIcon ##.#; Copy the contents of the respective icon coordinate's list !y!!Ny!; Reposition coordinates of current icon based on where; it was originally before base image was just moved.V  56516W  56526%%   " " " "  105 GX    wz*06!wz!  &  %%  5 Tjj2 yIcon  warehouseIconListNyy  y   y y ###   6 "( #. #  9?H #  N#$##  Z`d 4 ; The icons were temporarily hidden from view when; the next base image was displayed. This code brings; all the icons back on top of the base image after; they were repositioned.. 2 1 3 !y!  Icon ## warehouse IconList# . 2 1 3 !y!!Ny! !y!1&  !y! & - .- . 3h5 t.G G ^t yIconList Ny y!   !!   !!       ###   } "+ #  1=C  G#!##  SY { ]#/##  i W o{       + #/    5AYeq   ; Repeat for each icon type. 2 1 3 !y!  ; Get the name of the next list variable containing icon coordinates IconList# ; Assign this list to a temporary list  !Ny! ; Repeat for each coordinate pair in the temporary list . 2 1 3 !y!  ; Repeat for the number of tick marks on slider track user moved . 2 !2 3   ; Divide the coordinate pair by the zoom factor. In this example, ; you can zoom in 5 times. Further, the 5 base images were grabbed ; at approximately 400% for each zoom rather than 200%, thus we ; divide by the previous image number times 2. However, the image ; captures in this example are very rough so as you zoom in & out, ; the icons you place on the base image will not perfectly match ; their original comparative placement. For a real application, it's ; critical that you know the exact magnification of each base image ; and that magnification be the same for each zoom level. In other ; words, don't use one image magnified at 50% and another at 65% ; Replace the '*2' in the lines below accordingly.  56516 56516!12  56526 56526!12 - .  56516 5651612  56526 5652612 - .- .5 --   033$ / y !y!   h5 A99Icon  warehouseIconList    $ #* #  5;D #  J 1Icon ## warehouseIconList#; Establish a new counter0AA,Nyy !y!!Ny!n  +hU15 H'+`Icon . NyyV V  W W      $ #* #, #  2>DH  L^djv   |  ; Increment this counter1; Identify the icon we're about to moveIcon ##.#; Copy the contents of the respective icon coordinate's list !y!!Ny!; Reposition coordinates of current icon based on where; it was originally before base image was just moved.V  56516W  56526%%   " " " "  105 GX    wz*06!wz!  &  %%  5 Tjj2 yIcon  warehouseIconListNyy  y   y y ###   6 "( #. #  9?H #  N#$##  Z`d 4 ; The icons were temporarily hidden from view when; the next base image was displayed. This code brings; all the icons back on top of the base image after; they were repositioned.. 2 1 3 !y!  Icon ## warehouse IconList# . 2 1 3 !y!!Ny! !y!1&  !y! & - .- .5 Mee2 yIcon  warehouseIconListNyy  y   y y ###   7 "( #. #  9?H #  N#$##  Z`d 5  ; This temporarily hides any icons placed on the base image; as the user drags the viewfinder around. Later, when; dragging stops, the icons' layer will be brought back up.. 2 1 3 !y!  Icon ## warehouse IconList# . 2 1 3 !y!!Ny! !y!1&  !y! & - .- .%%Y Y  Y %%Z Z  Z  5 Oo0X    wz*06; This assigns this motion icon to the current base image.; The motion icon moves it around to match the dragging; of the viewfinder by the user.!wz!  &  'x0d100   0d100   05 Jee2 yIcon  warehouseIconListNyy  y   y y ###   7 "( #. #  9?H #  N#$##  Z`d 5  ; This temporarily hides any icons placed on the base image; as the user drags the viewfinder around. Later, when; dragging stops, the icons' layer will be brought back up.. 2 1 3 !y!  Icon ## warehouse IconList# . 2 1 3 !y!!Ny! !y!1&  !y! & - .- .==,Y Y Y ==,Z Z Z   /!Z10d100 "0d100 "205 *5 --   033$ / y !y!   h5 A99Icon  warehouseIconList    $ #* #  5;D #  J 1Icon ## warehouseIconList#; Establish a new counter0AA,Nyy !y!!Ny!n  +hU15 H'+`Icon . NyyV V  W W      $ #* #, #  2>DH  L^djv   |  ; Increment this counter1; Identify the icon we're about to moveIcon ##.#; Copy the contents of the respective icon coordinate's list !y!!Ny!; Reposition coordinates of current icon based on where; it was originally before base image was just moved.V  56516W  56526%%   " " " "  105 GX    wz*06; Assign this motion icon to the next icon and; reposition the icon based on the movement of the; base image.!wz!  &  %%  5 T2 yIcon  warehouseIconListNyy  y   y y ###   6 "( #. #  9?H #  N#$##  Z`d 4 ; This code relayers the icons so that they're visible; again after the base image was dragged and released.. 2 1 3 !y!  Icon ## warehouse IconList# . 2 1 3 !y!!Ny! !y!1&  !y! & - .- .5 --   033$ / y !y!   h5 A99Icon  warehouseIconList    $ #* #  5;D #  J 1Icon ## warehouseIconList#; Establish a new counter0AA,Nyy !y!!Ny!n  +hU15 H'+`Icon . NyyV V  W W      $ #* #, #  2>DH  L^djv   |  ; Increment this counter1; Identify the icon we're about to moveIcon ##.#; Copy the contents of the respective icon coordinate's list !y!!Ny!; Reposition coordinates of current icon based on where; it was originally before base image was just moved.V  56516W  56526%%   " " " "  105 GX    wz*06!wz!  &  %%  5  [2 yIcon  warehouseIconListNyy  y   y y ###   6 "( #. #  9?H #  N#$##  Z`d 4 ; This code relayers the icons so that they're visible; again after the base image was dragged and released.. 2 1 3 !y!  Icon ## warehouse IconList# . 2 1 3 !y!!Ny! !y!1&  !y! & - .- .5 m:   cy  y NyV V  V W W  W y  y $*:@F J (V\lrx~        ; If the tool just moved overlaps the tool bar, erase it.* !cy!  &   + !y!   0, ; Record icon's coordinates in relation to base image !y!!Ny! & 5V V  & W W  6 ; Drop the icon down beneath the tool bar !y!1&    ; Make a note that a tool was just dragged from the tool palette 1- *; Assign tool name to a temporary variable and clear primary tool; name variable.  5 |~0EE IconList 8y Icon 8y. Nyy  y  ! #  %+7= #A #IOS  # cio; In the "Initialize some variables" calc icon near the top of the; flowline, we programmatically created some list variables on the; fly, based on the number of tool types we created in the "Icon; warehouse" near the bottom of the flowline.; These list variables contain sublists, where each sublist contains; a horizontal and vertical pixel value representing the distance the; icon is away from the center of the current base image. For example,; if IconList1 equals [[30,50],[-210, -95]], this would mean that the; first icon type (the icon in the upper left corner of the tool bar); has been used twice (note there are two sublists). The first icon was; positioned by the user 30 pixels left and 50 pixels up from the center; of the current base image, and the second icon was placed 210 pixels; right and 95 pixels down from the center of the base image, respectively.; Determine which list of icons we're working with and the name of the; next icon to display of this type. Notice how the tool name is actually; a display icon name that is assembled based on this icon's title. That's; why it's very important that you not change the icon naming conventions; used in this program IconList#!8y!1&   Icon #!8y!1& #.#!y!!Ny! 1!y!  5 EE IconList 8y Icon 8y. Nyy  y  ! #  %+7= #A #IOS  # cio; In the "Initialize some variables" calc icon near the top of the; flowline, we programmatically created some list variables on the; fly, based on the number of tool types we created in the "Icon; warehouse" near the bottom of the flowline.; These list variables contain sublists, where each sublist contains; a horizontal and vertical pixel value representing the distance the; icon is away from the center of the current base image. For example,; if IconList1 equals [[30,50],[-210, -95]], this would mean that the; first icon type (the icon in the upper left corner of the tool bar); has been used twice (note there are two sublists). The first icon was; positioned by the user 30 pixels left and 50 pixels up from the center; of the current base image, and the second icon was placed 210 pixels; right and 95 pixels down from the center of the base image, respectively.; Determine which list of icons we're working with and the name of the; next icon to display of this type. Notice how the tool name is actually; a display icon name that is assembled based on this icon's title. That's; why it's very important that you not change the icon naming conventions; used in this program IconList#!8y!1&   Icon #!8y!1& #.#!y!!Ny! 1!y!  5 >g8EE IconList 8y Icon 8y. Nyy  y  ! #  %+7= #A #IOS  # cio; In the "Initialize some variables" calc icon near the top of the; flowline, we programmatically created some list variables on the; fly, based on the number of tool types we created in the "Icon; warehouse" near the bottom of the flowline.; These list variables contain sublists, where each sublist contains; a horizontal and vertical pixel value representing the distance the; icon is away from the center of the current base image. For example,; if IconList1 equals [[30,50],[-210, -95]], this would mean that the; first icon type (the icon in the upper left corner of the tool bar); has been used twice (note there are two sublists). The first icon was; positioned by the user 30 pixels left and 50 pixels up from the center; of the current base image, and the second icon was placed 210 pixels; right and 95 pixels down from the center of the base image, respectively.; Determine which list of icons we're working with and the name of the; next icon to display of this type. Notice how the tool name is actually; a display icon name that is assembled based on this icon's title. That's; why it's very important that you not change the icon naming conventions; used in this program IconList#!8y!1&   Icon #!8y!1& #.#!y!!Ny! 1!y!  5 XppEE IconList 8y Icon 8y. Nyy  y  ! #  %+7= #A #IOS  # cio; In the "Initialize some variables" calc icon near the top of the; flowline, we programmatically created some list variables on the; fly, based on the number of tool types we created in the "Icon; warehouse" near the bottom of the flowline.; These list variables contain sublists, where each sublist contains; a horizontal and vertical pixel value representing the distance the; icon is away from the center of the current base image. For example,; if IconList1 equals [[30,50],[-210, -95]], this would mean that the; first icon type (the icon in the upper left corner of the tool bar); has been used twice (note there are two sublists). The first icon was; positioned by the user 30 pixels left and 50 pixels up from the center; of the current base image, and the second icon was placed 210 pixels; right and 95 pixels down from the center of the base image, respectively.; Determine which list of icons we're working with and the name of the; next icon to display of this type. Notice how the tool name is actually; a display icon name that is assembled based on this icon's title. That's; why it's very important that you not change the icon naming conventions; used in this program IconList#!8y!1&   Icon #!8y!1& #.#!y!!Ny! 1!y!  5 {jII;l Zoom   y#Thumbnail # # yZoom   y$Thumbnail $ $ y  7 $   *06 # HNT X^i # {   #    # ; If we still have at least one more image to zoom in on*  l  + ; Increment the image number to display 1 ; Display next image and thumbnail. Zoom # !y!  #Thumbnail # !y! # ; Erase prior image number and thumbnail. This needs to occur AFTER the ; next image has been displayed. Otherwise you'd see a momentary flash. Zoom #1 !y!  $Thumbnail #1 !y! $- *e%%  015 1@illi:MlliE05 {FF ; This moves the slider on the nav panel one tick mark. -h5 0 yIconList Ny y     ###   H "+ #  1=C  G#!##  SY F ]iu {    ; Repeat for each icon type. 2 1 3 !y!  ; Get the name of the next list variable containing icon coordinates IconList# ; Assign this list to a temporary list  !Ny! ; Repeat for each coordinate pair in the temporary list . 2 1 3 !y!  ; Multiply the coordinate pair by the zoom factor. In this example, ; you can zoom in 5 times. Further, the 5 base images were grabbed ; at approximately 400% for each zoom rather than 200%, thus we also ; multiply by 2. However, the image captures in this example are ; very rough so as you zoom in & out, the icons you place on the base ; image will not perfectly match their original comparative placement. ; For a real application, it's critical that you know the exact ; magnification of each base image and replace (or remove) the '*2*' ; in the lines below accordingly.  565162 56516  565262 56526 - .- .5     ; This will keep track of how many times we go through; the decision icon that follows which in turn is based; on the number of icons that have been placed on the; base image.033$ / y !y!   h5 %OIcon  warehouseIconList    $ #* #  5;D #  J ; Increment the counter1; Build the name of the icon warehouse and icon list we're; about to work with.Icon ## warehouseIconList#; Establish a new counter0AA,Nyy !y!!Ny!n  .hU15 H'+`Icon . NyyV V  W W      $ #* #, #  2>DH  L^djv   |  ; Increment this counter1; Identify the icon we're about to moveIcon ##.#; Copy the contents of the respective icon coordinate's list !y!!Ny!; Reposition coordinates of current icon based on where; it was originally before base image was just moved.V  56516W  56526%%   " " " "  105 GX    wz*06; Assign this motion icon to the next icon on the base image.; This function is a great addition to Authorware. Otherwise; a whole bunch of motion icons, one for each icon you want; available to the user, would be needed.!wz!  &  ; The motion icon is set to a time of 0 seconds and Concurrent; so movement of the icons occurs very, very quickly.%%  5 Tjj2 yIcon  warehouseIconListNyy  y   y y ###   6 "( #. #  9?H #  N#$##  Z`d 4 ; The icons were temporarily hidden from view when; the next base image was displayed. This code brings; all the icons back on top of the base image after; they were repositioned.. 2 1 3 !y!  Icon ## warehouse IconList# . 2 1 3 !y!!Ny! !y!1&  !y! & - .- .5 w ((:Zoom   y#Thumbnail # # yZoom   y$Thumbnail $ $ y  7    $*0 # BHN RXc # u{   #    # ; If we still have at least one more image to zoom in on* 0 + ; Decrement the image number to display 1 ; Display next image and thumbnail Zoom # !y!  #Thumbnail # !y! # ; Erase prior image number. This needs to occur AFTER the ; next image has been displayed. Otherwise you'll see a flash. Zoom #1 !y!  $Thumbnail #1 !y! $- *%%  015 1@illi:MlliE5 7FF ; This moves the slider on the nav panel one tick mark. h5 9 yIconList Ny y       ###   L "+ #  1=C  G#!##  SY J ]i       ; Repeat for each icon type. 2 1 3 !y!  ; Get the name of the next list variable containing icon coordinates IconList# ; Assign this list to a temporary list  !Ny! ; Repeat for each coordinate pair in the temporary list . 2 1 3 !y!  ; Divide the coordinate pair by the zoom factor. In this example, ; you can zoom in 5 times. Further, the 5 base images were grabbed ; at approximately 400% for each zoom rather than 200%, thus we ; divide by the previous image number times 2. However, the image ; captures in this example are very rough so as you zoom in & out, ; the icons you place on the base image will not perfectly match ; their original comparative placement. For a real application, it's ; critical that you know the exact magnification of each base image ; and that magnification be the same for each zoom level. In other ; words, don't use one image magnified at 50% and another at 65% ; Replace the '*2' in the lines below accordingly.  56516 5651612  56526 5652612 - .- .5    ; This will keep track of how many times we go through; the decision icon that follows which in turn is based; on the number of icons that have been placed on the; base image.033$ / y !y!   OVh5 Icon  warehouseIconList    $ #* #  5;D #  J ; Increment the counter1; Build the name of the icon warehouse and icon list we're; about to work with.Icon ## warehouseIconList#; Establish a new counter0AA,Nyy !y!!Ny!n  S=hU15 H'+`Icon . NyyV V  W W      $ #* #, #  2>DH  L^djv   |  ; Increment this counter1; Identify the icon we're about to moveIcon ##.#; Copy the contents of the respective icon coordinate's list !y!!Ny!; Reposition coordinates of current icon based on where; it was originally before base image was just moved.V  56516W  56526%%   " " " "  105 GX    wz*06; Assign this motion icon to the next icon on the base image.; This function is a great addition to Authorware. Otherwise; a whole bunch of motion icons, one for each icon you want; available to the user, would be needed.!wz!  &  ; The motion icon is set to a time of 0 seconds and Concurrent; so movement of the icons occurs very, very quickly.%%  5 T2 / yIcon  warehouseIconListNyy  y   y y ###   6 "( #. #  9?H #  N#$##  Z`d 4 . 2 1 3 !y!  Icon ## warehouse IconList# . 2 1 3 !y!!Ny! !y!1&  !y! & - .- . h5 v): ; The base images ("road maps" in this example) and corresponding; thumbnail images are held in this map icon.05 s!! ; Attached to this decision icon are display icons holding the various; zoom stages of the base image. The decision icon is set to a calculated; path of 0. We use this structure so we can call up these display icons; at will programmatically rather than placing them over and over again; on the main flowline. This way, only one copy of each is required.; The base images should be significantly larger than your presentation; window dimensions. For example, these display icons all contain imported; graphics that are 1040x590 but the presentation window is just 640x480.; You need to make these base images movable within an area. The area should; be defined by dragging the upper left corner of the graphic to the upper; left corner of the presentation window and then setting the end point by; dragging the lower right corner to the lower right corner of the; presentation window. The area should have a Base of 0 and an End of 100.; View the properties of one of the attached icons to learn more. '2f%%Y Y  Y %%Z Z  Z 0d1000d100'x      8KN<<$.\Images\Image_05.gif.\Images\Image_05.gif5 :&.. b  b 1 %%Y Y  Y %%Z Z  Z 0d1000d100'x      <<$.\Images\Image_01.gif.\Images\Image_01.gif8KN5 T&.. b  b 1%%Y Y  Y %%Z Z  Z 0d1000d100'x      <<$.\Images\Image_02.gif.\Images\Image_02.gif8KN5 n&.. b  b 1%%Y Y  Y %%Z Z  Z 0d1000d100'x      <<$.\Images\Image_03.gif.\Images\Image_03.gif8KN5 &.. b  b 1%%Y Y  Y %%Z Z  Z 0d1000d100'x      <<$.\Images\Image_04.gif.\Images\Image_04.gif8KN5 3&.. b  b 1 L05 N$_ ; Attached to this decision icon are display icons holding the various; thumbnail stages of the base image. The decision icon is set to a calculated; path of 0. We use this structure so we can call up these display icons; at will programmatically rather than placing them over and over again; on the main flowline. This way, only one copy of each is required.; If you wish to use the viewfinder window shown in your own application,; the thumbnail images should be 103 pixels wide by 72 pixels tall.; Position the thumbnail directly beneath the viewfinder window when; you import the thumbnail image. Thumbnail image display icons should; not be movable (i.e., Movable:=0). See the calc attached to each.5 t.. b  b 01DD(.\Images\Thumbnail_00.gif.\Images\Thumbnail_00.gifKgH5 t.. b  b 01DD(.\Images\Thumbnail_01.gif.\Images\Thumbnail_01.gifKgH5 t.. b  b 01DD(.\Images\Thumbnail_02.gif.\Images\Thumbnail_02.gifKgH5 t.. b  b 01DD(.\Images\Thumbnail_03.gif.\Images\Thumbnail_03.gifKgH5 t.. b  b 01DD(.\Images\Thumbnail_04.gif.\Images\Thumbnail_04.gifKgH }Mhk5 m<< ; This map icon contains all the icons that you want to make available; on the tool palette. In this example, there are four types of icons; and 10 copies of each type, allowing the user to drag up to 40; icons to the map. You may need fewer or many more types and icons; within each type.L 68?ACJKMPWY`ikrvx5 -T%ff ; Begin by creating a single icon and position it exactly on the; tool bar where you want it to appear. In fact, you should embed; each icon on the tool bar too. Again, create a separate warehouse; for each additional icon type and a separate icon for each possible; icon you want. So let's say you need 16 types of icons. Create 16; decision icons with a calculated path set to 0. Next, create one; icon of each type and attach it to the respective decision icon.; Be sure it's set to Don't Erase. When you have got each icon all; set up the way you want it (see below) then copy it and paste it; to the right of the first icon, repeating for as many icons of; that type that you want available to the user. There are 4 types; with 10 of each type in this example. You may need 16 (or more); types and 20 (or more) per type.; Check out the positioning properties of the display icons in this; example. Notice that the icons ("tools") are set to be positioned; and movable on screen relative to the tool bar's position. You'll; need to make small adjustments to the numbers in the "Initial"; field in the properties dialog depending on where you place the tool; on the tool palette and the size of the tool.; Finally, notice the Layer is set to 3 so that it initially gets; displayed above the tool bar.0322$    1922$  '  39      #K322$ -    1922$ -  '  39      #K322$ -    1922$ -  '  39      #K322$ -    1922$ -  '  39      #K322$ -    1922$ -  '  39      #K322$ -    1922$ -  '  39      #K322$ -    1922$ -  '  39      #K322$ -    1922$ -  '  39      #K322$ -    1922$ -  '  39      #K322$ -    1922$ -  '  39      #K022$ -  ,  4422$ -  '  39      3)#K22$ -  ,  4422$ -  '  39      3)#K22$ -  ,  4422$ -  '  39      3)#K22$ -  ,  4422$ -  '  39      3)#K22$ -  ,  4422$ -  '  39      3)#K22$ -  ,  4422$ -  '  39      3)#K22$ -  ,  4422$ -  '  39      3)#K22$ -  ,  4422$ -  '  39      3)#K22$ -  ,  4422$ -  '  39      3)#K22$ -  ,  4422$ -  '  39      3)#K0322$ -    1822$ -  U  85      QK322$ -    1822$ -  U  85      QK322$ -    1822$ -  U  85      QK322$ -    1822$ -  U  85      QK322$ -    1822$ -  U  85      QK322$ -    1822$ -  U  85      QK322$ -    1822$ -  U  85      QK322$ -    1822$ -  U  85      QK322$ -    1822$ -  U  85      QK322$ -    1822$ -  U  85      QK022$ -  ,  4422$ -  U  85      3)QK>IV_q~22$ -  ,  4422$ -  U  85      3)QK22$ -  ,  4422$ -  U  85      3)QK22$ -  ,  4422$ -  U  85      3)QK22$ -  ,  4422$ -  U  85      3)QK22$ -  ,  4422$ -  U  85      3)QK22$ -  ,  4422$ -  U  85      3)QK22$ -  ,  4422$ -  U  85      3)QK22$ -  ,  4422$ -  U  85      3)QK22$ -  ,  4422$ -  U  85      3)QKx10bDM8x2y.6WG80H1KJxO`.b,0Ɗ 2Ui5l+S8Z-|i''+L6qbv^T"0f3L"7#g?9{se Gdl jx'7o%xcd``ce`aBF(`cDLLpy~T|=AL`38P̈́f% @)/`Ph7Vxcaa``KauF" loX ve+p cdcm)50xUQN0rr'P*EJ)ʹVk)ĕ̌;˞6KUXTd 1XWc2X*5]9jce= k<H t"6 ͞vٔ*Eװo3`(*I<ةqث4Whp@50#CvF}K{&G8IGp´gJ$}mgC$}q>hc2tGܬFs|@/~?;lF^6ˏJHdXZIOco:d.{Ic-b\һdr,s,6 ־iZ1mc,&Sit f(ybd ,1LL j=B;k[Cfټ0MކZNw3{GtftC Bs W.MӼr]>E.~[u8v6gcq60/x77px}+DQF,,,f(ДCJL5AIQyJOlUwzݹ7M)I"c+X6pqn<=딌y8!Eeg;h*Y7|};e_C{Cvn!txoq`_=w5ff*_ZХ2\w,1>qGjrZo 7%Guo\?xcfb`B&6 5$# \E#xcb`B;F&60&Y$@1'`:LW2zFFF:F?CWA #e`(31/\!(?71pA2]TxUn1ʽPqD BlMH< HPlȱW7KďEc&M/^R)JZ{||̙1 pHP u=L{Z MXK=h≆-Utc8+#RHM! 03d8 _!5 Jxa*c,8:,0ÔHc(Va4ϓťŵ>o# +E!(1 !c̍^(*:DY~Фz3SH)xy$ pq~ ^u~ro8o=BIse{o\Q4|׺ܷ%[}[z)!>bMo=8wC16I,{":/81>cy'GSR]Hyxg%JJxs¿:/]Ŝ2n+M\m*܃.pkGQ[]S`ookv$žvV ša+}܊vQg<w-Ʊ\TБ)}?gecUsYtMe Q:Ymm㦦8R11kYĮ7Iw&~hĖgsX~BmSpqǘaz%vtJoE Pzz 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;~݆? 7Yx͖y \G'@< Ekb~`yyf aƥ6 ѷ{x/y9SsxLq1GCЁy5 %" ̚0kfA._PY0 +gL, >thd]#c|puxsx?;%:<#vliu41nA5~nk̘FD>zY+uܲu2ױKj~CWO-fmu7KsP&d֞Zs@Pdn7[ T[N Jҵ~TPVFI,a*V$T#!4–0<]`&vJt9ܩw򂣲?u"̟ v~Q]2Aέ" Sa*,Vق&˝նġW=& >>DPY;쮻=j)ҌQNRڳo(-$9ve0ͼA}&mK9`4[2 P@CkiLy+#z:"؝CDM/%g!# LQ\u-P̵&ߨ3,ɈP\22Q#܅iaC)X'#lB]9YM:h,NiX,wM֡yݛ;o,58T'fk=\:7SO|NM1!_/%O{H(q߻qb#69hʞR(#*fSZ-~LI<چF}U B{lIPx$%{d$R`[f̶iK-\̞ =i%ĈhU;0Z1 uҸ?FȹݬqMJJd^Wo81|wF <5B_'RU2"1j1OڞQ+E~$X!V:YPu>aywjD,SR5] f\2U@ץe\bnh9)b^Um(u,JnQJƼڵ_c>Wn/!޺ r8a4!jcx&:W;FMZĨx\=J6'EkPeH56TOf:̣Ejn2A5\N: eehHCxrR6ړы F5&뛌%d;TYmLժ5&[cL}aĦtj悁#)ö)fj:fI.5e!Kb"\L@9)xu )}ҽk9/ŇSGiVi>]evN=Kc9i7R%42/06:m8+ivF rn{Gޯo19~W6qֲ˴mliY˱ɚK;OjL`4c%EQKf=}.^:9A^ ~e^m:Y/=ƫ|]\u8W~g38n5o-EjeFA'fι}[ /},q,h*  -:Nc}**ZzH)y1nvXlᓍ$z 'Gh<yԛ}}#aY΍[}-H.ͭԲLc{.ms>>${ r~}cI|J%ӏôG?඾ɗb8I_iMOrp|3 ΩuU|D2Iw%eLQ` Fv]&ʸx I=f@Yg?g:Qb"4`iB2K*D&8fiL_vL_ܼ넄B#r%_ RHMɧodD =+"{ipBDD !N؃?rWOUĹqZ/ A#BgNqU!ζoK~@BlsC "!H<" nP,!s`dHd<7Z,2@2 xqP&B/W xy4XcPee_$X"ƒ b"kٳf![!dkRb)Iʔly=yz~ysuss>s@聫@FFVa=R4y ?+{@x8"Ou*J?QsquW?߸uvy;8ٌg$%Y`f t\tǮE(DsCte])Bo=qB@^>t*h;6Ehk#}n^\la-n#8 ,W`4,xQ^AʌGFB: SB4d9PX݉{5;VRǰ ;HΆBR߲ELFma4wc 0ZU;AgLM.*&YpJ0+ J5'peKqud~vR$XZs|J3O+כ[%gXte2&-)/v_AEf~>/W%e͒Z QGnj!ۑK2Ȉ[bɫJ9k*Clȳ <@bo5x#' yŽ@ZRÞ5&at8O45 YCц߸^@|IpGv8=$ sgA>h ԪىFעE0h"UrEWVrjDb#vE=g9@+vP 7^_/?͵v.FD\% }'JRC%ҕAZ-%ҳ:YI =!΂9M9,F?xɹ Vkx'L-.Y/!$^ߓo+/0eT.>9+r>D]+|53VtHqg]+#%\零[Kb~pGG晆!ʺ4[!j"C" MO/}`߃1%P==Q %%sBf~M1 BD%EE>zavG$тB<3zµ^FG+-ZU0dhEid`r yW)#sk@ۻ7Y y1s?Vσ3-06kd7ΚdgdψѐGzْA_fS5( _p+jue5 j-4=ts/Uֆ޲)q"zUzごapIAرe}uJg/ܯfJNT/wvݶF1)EgV^}fooxMFeăڠ{TC\kmv>+ܡ1%I_o[͘UwD+ywY!NUN7fdΑIII788WVܝҝGf,^M)< eIҿ|SjVͬe |,a?])<8RDՄ]0KOG&&kL3O콟 (~ڎ_[=~yl)'OPvɊD]Xh'J‹ UU\ZڔRm;*XW)I2˵/ j:a!+lߩɏog_!69NWmnYvu~< K=Q9>9f-UQ R s7^21ЯϟmnNW#0I8aDž k: N;R9^%֚L}Çr] xu/~.mjRbҪmoϿbKNS #Ik7/8kI8(n.. %Nn=5}T:gJE2ma֨;?K5g+ޥYx[>?΋C\ۆWYU)^. *\!Cfs /:BO 'U!0#Ŀ jA(*}t'iqe12F8'O|!)된o-hhirBh}(2ReC P”qgEŸ2Mg'Iy™@;^FB(kr} k3Gui0-Î'%l:(;iߓ !4D9s*˯{KDGs]GS 8$C 8PBSyy5_ަ <>\UK{=V-om;tE\FeS.|f+fMEw+l ]Vzԣc{Z >g_<@Dd$6lN-i].Yd,WvdAx~@,ےSyXZg%t9Q E\CiAKF?Ώ>캩Bw #n2PwxG6XCew]U3r(H/ʱWsF q.6t/ A+0 I0ļg$ngG89ki(cZ-( )@)BX M! <) ثJxc`tgc000d`f``L2EvY B L)LQyyzL \@-*A@e':&nF,b`G2A!AqCC$#xV;D },Cg-ٷȮ e߇N!IdO0CA<|8u:(}f̆J1[2[Qu0kT@n>T=utP(@_C_7O/W 2C,,rďu|}o&3N\,J R7WՇ@X6B-D H i亚{{5>O:l8 ,U'6"F-5 T|h R͡!P@CE zWDБʬ7#7XU.igUQ4汤lD\탸l8Q ˬ~*݄˞{֜ЯZfcAFE|4lB^K) aւE`7JR]N俰&D,;-ܕ^va74[ `@ț)8-Wpͥܗ I OMO8vά&fwoΫP} 0#;l8$>x,Sǀ>.:O]e>_;Xo%R,-3aY 8wpQ~7nk씄㖒½Lњm(e)eC&J6\ghTuX{K*s$NPSA`vdχ#y+sr(&:**;zaOoB1H2&AxwqaPzKjh&MY˳(:֥eD+7ԑqTЍ^h6?"vak}@A顬U%1U%a\'| 41vLq߻!1.r2QY z}ʸ+?OrƠIp!>]Ҵ5Ii eT6B҈UeVXbg|~w'JW/8L~WmŒ|q8l& j݂+] gbƥ6: ]6~}aDݘ{ ,׹qI pCY---h0zywU5yuowA7c{#ҵHPfD0VGL[/&TjueCSBsE nbm &D=6<93BqA{,Ǡcq* Ǡ(FQTTـ7=iΥЯtEP  NWa3̅&=o{FmZl^[VҠ`(p H@m'3F6 ;y?J9nwXP.YCqCn3 3ydr9eZ޼n^>OzZ̑a/V?^z7~4+$4sItI*/V784/)G=먀HKQZQVV΢{%NӨq.Eyek\nf3Խk\; ۊ$gtI%yBo(fZ4ۏ2;87~)$`_.5}vWrjA+MxV wuƷY3s :<{z+;o0 Rb|נؠ% XߣʲlGBu|u:jo/,-[p!6~dzkJ{ ӜZ|q|=fܶ&YYȩ8񾀘@0er*vd@'m2ZIxPFzñWbq*tQ3l|U-uXМ g_!ۖEϰ)N A'cܕ!'bΒe#3u`~DNN2%IßK=jR 7`j;eYm49x^t3?hŗuaʫ ُ/&x7x[[ $G+rVFmWj}p.SFVo\_?+i. Z   ~ f.>7h~xoJU&ӊqw{hJY9#/>8wy;OC)_Bvٽ}9TN'U_MqM>gve bv;q}Z6萬|j7cpA~:K iEUʦ9 r>JtpczIzw 8Rv&В+?uy0W]Go;ȍpv`dV-C2ww46"7HӦE$Z3lz3ղ|F&k?l=c(5@.; xUR<[z¡Y sJOGVV[(%11Ҭ5׏djTG/B&1v+kzˇ;K;cϏySJTHRJTWU)KIH}M특Rx8:P^FGGw_)q"4EI矖:#܊h.&4U]\\¤NN4 =khU<]/kl @3xQ~ - $7P gFq0c\l1:c,|l{溻pg |:8鴓YbkMglsh1.|`LgV!ޫ"J<"ZuN@O#WN`jt|G/C^`a^W㑑N5Iv@QsF;!bt^DLCXVU<M`kPwHrɪG3,rX8CHR@ S7R^\<|SQEtڇڟN:l-V8^r g2:]P2.^Y0HӮ=v⟘$W(-RVXKsYI fw|W26eIxI  4 HS@R;(|TהS%]_8DS8"JrѾ6ĂPBbQ Ќo$=- xcj{f'."=<<}8 5 QW HDҹ'"}oS|r&w0e Ri6uGto j.1m^Rl++$tqQ3[y~ R3mllSYpjYpNF;6οRvsjɹVI 5t"艥,w} ]|Zq ט3'BqK;9xO?!_I=`̞ї7Ο?gO_ȷw7/]+x 4_ cKaQY !ؗ Zd˚=kv3kaa?y{yy{_66pU 7X/t`d`70/kzzb޾@쇖&z>*Z/vSᙎιp,,^ҿ/ad\j3ײYEV oo0hoZ3aȨB䀍\7Q "(9ASS8 tdC\x ЉȦ0=2enFDo^^+p'K]hx+M~F2KF{Ū[_\vn77OlLdGu(p-q7f ξmkwF  -790e1-=U^:߮ZE|ʜ}a^ =x2%@%?Ul`W Lʫ?:9oh )rf ^OIԽIMD]hW1\Y$'E"`݂Pb~lRe1:[oK9GdN|/ie5|^',Gʀ/)F<mWԳbE tq\J6v{?]`<^GxE)0X(gX٢#2Ȧ4zc,bҕQg/ eRм&Qhn0;Y\jwF&:&A^޲U<Ǿ, Or =I@~Ʀ>Ic+gL.dL&I^{ڜ &b@ Mն3*YI NCߕ7/e/e&`3/S߅H(]m2\򀢞\l ϊ5͝߾m R5c;oe8sRk}}gC庥Hd5H N'MڋgEo/h iyzny(9h}|TX昲fɢgCã0%I%@;crD^ʥ"0C2d983z!JmEAKG1x>A_N!C1.DOeC+؊,O_ϾugD^3ŵ5zsavRa⯙_kk)CfsC< P@/9^q$|;$=tMơJDፂ_T/lُwH447J>.|ZY੩1`jН={.axt'q1#ŒqiB\:q!E2aCrF5Iy;;!ԥF-菴4JwEȑϤG`g%:nU7UWVwd$'^Hq9)[-g΃CC"I'VNߍ]{ܖ/Ίb"E)ū20;Ii{ Cg!!gLߛF}15EѤ/x-I);!AGqcOļV w~ߢD n9q^@}GQ+>sY9\ o}[;osA f} k RĽ/2kj `2lEiŖ<nZNܜ`dQ;E#cT]BVhUKƎq>_j:: o9!{1ȊH3mww7"7f̊LtcZ K4Ho8$aane:ldꙖ8IнNRBj|0Bش|i=K6GN T,a,4Vp'5RȀFHHy?,zB(+O"I(q98lftR\zt&;|{OՆ4Z. n}, !uK  .ʬr2{;&sg BǠr[*F|=Fj - ]u9c%sU y޵+!K-9+k6i6|I}7ֈ3_#%ǥKG}:xlѝ=D(eٴO O&JJKޓo=^~d際:ﯧ#.D7>+=\n-$LzYYQ'~Ʃs|-ۄp^ dPdr^gSJB-gSx}tV;~~BIJdQ}{% oTD`Ie}%Ș>J= ,`"Ag>ߔ;ߨD]W U8>.~Qyc4XW6=%> /tFݕ=BtDzz k/D!ۘH8 ZD]q! Nbxa -ֻu=0* itw?5n_@KA:A= ~4AptO04Lڦ{~S[6zO K!|G.cԽ% KK2%x[uX^u},8M奶\mtۥ+KK"}`SKٛ49LƓ#)* _q=/瞋1Yq)¾mKN+Sr[H8ItN~X8ݻci7y2CS/jhy>+4q) zd=88r*ݫ(᤺aPX+-Zs:hNG6ʖvd"6&Gr;ę375/W5 =Oߛ4H VEwݲ/ ~\ZSGw\S2x+͜=#!6ln@F΂ HHm@Tg2i/r}c##l6\j3CyJ'܏4cE"|(CZL`>xDq$2"t?əsqay7Ԥ߁ŏosA#R1? *,ιl`v>Y-s-|z]̖ `!Ƨk)):_>y ldvӞ&ޏ' .vŗ4u|H*?NG <ڋᇩk%Cu8A[KNlʥ:;$e+0ړF0\a|2u یf7j($<ƪ6MD.{#ߑ@sw?wmy?=nQ96Waarre?]QEiL^0ԗ].&鍴oy!FAȿ9 K2 Ȝr] +=qW* Dќ7ubQ IlI.SZDgK7tzaV^'&&\{LgNsҰl{겶 r.~:1]5uMP8BG8ZGTg-- Y;1d?3_99)(Y;#_11PBOܗ踖>ޤ.lM@ D= ! I#/q>k}L{ <;1nsvpL:I)(%:+묽b4o0ZSd37atjV?F\tb\Y>I2>ožےAt"W%8`t+k[r:YjSOTZ"Ef#^Riƅ!$/#"+,bW.-c{ [|LF~CV JGljD-4!Pa+n]G?"L8ELb`T)7FOq tkSAcoJfg9x03Ꜻ2.A&X}r 0ejb*5K.bQ揌K`ۙ]H^R޼52$s\w YăBn>iއDH܆uSIRωC`p QCN3K_t]׷);P@C"d&rh rY)e ll Ѱ`p =$FZ;F}FN'-n  e\҆C"iw#~i,P)JDsfj|.;uhEu>B]gyqQѩ\|NOJN#H:y̑- ⽔LË0WEuѐ 024Lʈ̓IO⑓#9ֹo =LOPFu4Iyy >e;I|J756ق7c}1"^ sgh4TYp) x6AᎽ5' uF;3&~ +Q'c3O TS (`hGSD&]Tkx#"v|b#AsUFhPho$ dk@h0G++t a(V{* w|ќ&. sy8ez1?qtm>E3OsfCFE2{p$ù/XhiQr N% T֑FQze gx K כf(}p(\7p?{ ~xW7_}{e|F a1 jH-ʄ$Ȩ"B #]Ysa10de214@H"* HeoyaCuQ u.oRS^Ԥx޿( Po3__oQUaw5? [HP'YY|;`<8pP/X ur1N=բJB;.i >bdfR?SM sF-uԐO`{r1Ȫ y5:/,EB"ֳhkNI({atHBW+kU-`c :I$kZS\JkKzj`waG#Q9[0R^XXI/lgf>nRJ33f &%.r"׫4f> 32:ykyOylpv<{1jx GSEs " b6F=́8Avh˛׌_-~N86Jy@+&i& " bE<WgT=da6 ɴQKlQV+U.+Z-z^cr~YWjSh]T}[JsiCQ B>6؍Ȝ&rܯژHUv6z&%Qr&>vw%lTZM=ok{r@4j+2n mgö7hbyLՂYaeI(;,0*+WSαĐ$դz;۰37'Tq7 ofaaȤ)|~棌-{H%Tdqr.]da񩊩Ȭ2Av6ֿN4}U9ۚZ[KߚWrK"0V0R?x/opŶLx$V𞴢OaP _ S޳s9uI=]_fN X[dAR;[#ZOFmNOIV,DgQY:QA;a/+,zO MIt|G)Xn[⊔jBy8342կ[jˤm~O;Mc Icn؇{`u}=pL&@>޵S\Kg܁:d`ᾮ73Pvpr'Gɟ%IzQl0vSʦpI'v[)Ea$RBWhs!%[VL̵o22W\G]GIJV(TYWuخ|jm ^ ?av^)q_H4pr^hND$,r]}_^ĠRpSD1`N]QV@`QވQ~3>P$J9\dmF4w!3XM6dd^(ZꦈQB{ C"FB# q"7X"bŽz84>mCϮ7iEԉݩÀG 5Xnf~9Spa4qk;Dcd7֩ i>rxc`tgc000d`g```ad5kk2F.U*5wB@u@u36uoȅL @YDXsY`r#V݌Z {g0b Re bջ$$*420Ps q QMLO-F&f+*x%Q3Zxc`tgc000d`f```t ,F V$ogMNU.I,Lh91D@e':&Ļ{mh\F6uqyI x$w\?S^ę;,#ŕE35G WiY6pT8*,L-45,+ZQY׺Yԭ# s}" >keϟT?|Q|Dz"MJwm [jhaWl]ow{AgK c~W/96G:ț>#osdY@}5R*Wɕ*z(#&'lkSIUJRG*WUn\KJJg30&&#-\R\T*U7NֵNݾn}DU Rs_V-U?o*foȼ#U#*gw]-gL~ S'.˥ǾX\v(E@GA4oU=R9*RR*Y*{{J[É|?+scQO<؜t7c{SrRx3'X0QJTXR|n4V%O{-\RI}T N >CFk"@]Vw*1-V? )Rrz uJN'j no@_܅]+?'4H|j^AG#gua<)_iqm67xA$0Ao3n~Hޝ*oރ &=uyy.r. o״K*“^@?ֿ-yIs9AS8_&. 'RƂ)aU=د)G4#Yf%x I#n6Cw>o*ds[jLu&.QE0zrAKLzSOOFR,dz6 Lvh֢9QO#5l![mBρ_ }xwxݞ0wگ!w4#Ωu+:W~ݰSy$B ~[ʺ$l7u٦d~^7(p}vrLP/ ۟\*J5׹l"$* Ы!PtM߆{I ޚG[Dۥ(%DSKɌ. g# QV>!ɑ>- 1t|8Jn޶k05E構q%X7]X;{T'ǻK520JŚq>t~(}=*?V<~aD}@Q]6ZM,es?>.];*x2~1PSP{eJϧsm 3Q VǶp5XaE$pҰMTf]Ėc`5F~NE]y>-&:x#K`EUr?G؀]Lfc_ @(.x[Vd yqჟi,rž*`R'E٨ Oè$kMÍl:h7CRf:J^]:v!v:zI~'h51LuY$rx)cDP^:Ⳮ/G68'9hL{=5D,o0ѥWm1~;po؄m>xj-W{oͰƉsd"b3):\ 0H . @1. +^UQ./zyOTMvt;v8dy[A …tmP W`ňEkf"bQw掔 OQ)qZy!w$O^W,G,q́d{əHJ0Y'vۅm35E8PDV0Ϟf%\ȬNQC.x(XH Bze/ӑ"e! @s e t _d#%D LCۧ S%P x9aLh DIE4 " ՍJ1d&1nkV"CUCɘ'A,֛rV}tL ^"A2Q pppWo[U^O5Xb n.hzjopeJ~HtM2.Jj/v^$5Hw]q++fߑ+@[Vh U/:l&#*D` Av! TL5uW'n`?ﲤG>w79R5CfEK3QɝͶ[Y?cozJ0|b_['Ev/I>5T~gt&G}}3g~Z7JP`: 3ُyNa[2sZB 7Q[:~싙^A-"q"vp(Q.XY9R̮?+Jp|me|4U+QZ_gM<dpc@Wge[ 0C6#*si7 iD,W k ېe&ru.+8QN? ELs*Iз"Ytjx=0zP?F73@EHUMk  '|0#"ޙHН&lAb.)¼H4+֌?"l< /AsǁpUZ 66qP2pd34" L̮O 3 YV~V0 F5/`_ɿd$?ӼS_Ir=!xmk.S^g,t47$B# om:k( F[d\eH94/o阧0rkZ'6d7Ï-$Xk*}9!!*H BH|FZ loD$jRL"T'0 زh ϐ1ϙ63{R ~Eh2Հ=ԍo*W dK<`,v` CE*+D=yI P 刏?^_yqybq z%S`L6ƧANj>CVe}eS%6龍':|REKK6ۓ&m'>hj]WdCym/NMi_p*&WXVrZ*۩[(pu8k*4}b:c㭓YD)þ+¡i+~g麵:5{fP[ERXA^g i3гlc`wW;3#/l5[7o>hq?!~sƪ]'7O=~},<犃d:Քr{)|<;~脔"L@^byB PPBVhu@A}Ėxk";E::y^1)2l<!|4,.w=ZKw_aAA8;tbu>YSIg6="7?2&H=bl5 Y_UںM1jL9n_| o" Q_5xTFx$ ~gᷛTLSd9cb @קG$L{, 﫽'S<&M:J3G9yvs؀h*BgPYqɺNmh1odW{{J& lq:on?]N=VvELD_%.k?:,gPA^SGA›3IVcK2P$x~v43ޏ!ۏ>,CM3|̻/V'^ύ ڮ5ܜ!X,9t&PtӴ Rrξ{:–w`Ui?ýjKF5=鿾tg~Fl HXȇuf{q&# v@PpA""/;nPz𫪉-?JGҬQE E{Yht|v=PӘ }bL$5g3D #MCR_XCZ{8)4dkDS6i|Ǣe,D+Z C~'\` kVpX=,~VC&ێG޻1Po도[W}DkuKt g0 E ;CE~ j6K?9LU8 k?ٷEzy%pxI5XmǶw[w:f9ty/o#NE؅$Zuu63m:@VHwꟐA1Kmogn A8<ً@Ř*kG/Z8θenm3`D?i|/Hһ7*ǻ]QiAՔiku=TH| |q`+򂕸Bق7gԖPB9Nї6\є؉~D|Dln5JbRxl@bBHb#D!끕sĉlrH.ZS߯6:at'`ۊ˧6=anMoEUp3ZTm0}8sX;AHf4`!:.4#LL1H/iB̮)!] ~{1UaΎ&ŝj7ఞ4|!,`A߿a3}?7rC)%lGA5 [Q Psg] 9LxhHvApM_֣dkJ |>}qz4ዳ8tRw(Q nMW^A] u-uTLuk˔ }*-c6k?4/lυ}C].mfζ:LV.=%莵vilss)4aݾэgۺ e%hOV &H]78pm _LXz`4ki;B`F;b)WY ý W6Dz/եI,_J>-M,ycv[?;wK8_;aMv,NQ'hE@Q[4 Xფ,j@GM@_/UDެ6pB1ĖhK&di%ֻ S8[i@}& q40!oLspn<ׂ >@[x%8QB~[JAi3l'2{9pϭSyVn=$"k[CAO6ټ{O;sa|BՑZg_uȬu&}Yo  9ל;nU!Ջ>:K.tm1=LY8~2L<8*[J1zj >zTeM`u+$/&0NGQ( B3+a粲-qTwA>HЧ\V[b'6]b|%U <`+LX40qP֪6cT qjʮAK! 뚱c~.?kC?ir[]ߪȍQl"?wӬn7},}%!t,<UL'ٷe]EY)ΫAK{7 ͏db`kKĝ%!܏tjїKF~/0,pYv"v令kHv?.]i  \}ǘ'lb-Y}ۀSNs@ (yŹ -? 'o.@?g?/Y1bb^[KOfKT[h^[@ɥͬt`K\8'Y3@]xcsQ9X˰(؍6R ăj+m~n vaDĖ婛4uI[s?a ?S}Xr:~{_EY)L{eXuAI&v{ ٦ go_|%~uyf1Y>seܸފ3qPol #{տ/mj~^49)ۂPq LpJE W~֠˷_~m(6Dw@RWxq~bfv~uqwH8m楧syg򷟻pgGtBfo<|gj^wtP̓:~ sI?b7ƛw/ }ͅR#Mm1|>Ih:ekkMpk{8#7pjdc߯;-yQuໍ ZVziʙ=@ “=5cݦ7[-ݿs`adQv7f T} :C7+7v'*fpj=9xNjUt89ԾJr3'Mj38Ch,nlyq*K!9 X;IOWTST!Q"QBzdxj\B@KR۫e4/]SzRaA sOyøIO,iV17T>Y":+$'^w>EÒ$H\-L/,ZJate4=c@V3,'_?<~a-8N3h.qR2ՐXXƬ('0o:I-4'Ffylya"Q2h$)x¸lUƻ{ڍ}Hg-}7R :Ki-!l˿0&қ}7 I .cҸt)d4J yAX79~JZr7+<jN.=L5gJ1ӳ D^r=!qxݬL^vpJM۲Pr@Sտ|:uorE@Ȕ'DM,oY#;a[ܱN]3ۨSWUF(Xύ~gc/%𬥮qޢU%7ZҡW#ݔCu P O&05= '@hEQ,]n0[Wk|/4Je(q6J-[B wPQEV#ϩE:87]f z,άЁnp9k+UCԀd/7^P <ŭ\(,0 H$ 4CZaJ* Tl3 JoX2@y1{_ϖXZy,,VԳ#=ߞHOy3603<[ĎnHp` yev,>Dk(aj219Ńy[$#J[z\+C΍7:Bʵ!X{+W ! P`S೾ӧr]yaB| a=m<ԉ'>*&AV/I-} f"={I\6 ]VgRW 8vy4U'8\-Yڤ'O-#2 eZU t$ %;n 8'^-Lo DrQt^8՝wr9s^D 1Fv*6URlj~u,鯂.ԤOJ@C 0g [[_̕_1ʂ.Ɋߒ"J4 ~X-j]<;ob[PlJ ,)![~U'៸N)#@) lW3HHu)Y*TTUSCBhRchPc5+:8/T?d X M-;yh*C6qxvdr Sg4OmVF3| ?VZxU6AY 'ހ}D4XX ax6'b[H`4;A!Kwt𷾯4B-Kt;u*sC͆X߾ﴔ?_77̍x*G+:"ldda(WmBȫy'W3P\milmq1 :Gvsk_ fFl?|kva=(@m^h [ ҨT=-tliszꏱ…Ӓ>O>@ !qb#gm5U8e!/߄EǾǀ7_gFW-B'թ`## 7{Q\,zJAIB(_R@>U`m+:cYo=(I|#{L`pLŜ99s ^d f)g풫}ŋ4_Ry^i3?DvwOآkeX F{|u[^Fy\I`I>y/P[uWAV|ZBAܙX ]|T y<>p'^8n! xX.XåW}\25N2L,XĿ6ƊG:;Tl;qt R^j[&^_F%ʰf֟@ezn@%?%?<_ɐT]N1ɥԟ74*^O'&B$b]PU_!/$h|;8"{!1x2QFݽ;WQ:kٯt m|(_?Ob(ɖ:c{enZPr3j߸;Zlr l'hT,7Rk-|wS9*piS-6>1kJ%O oms|j}z~49ۙdSt ȂxV3pޞPH`{CP3bu)g~Bo,˂mG Afd!-@e:XfZ{; 6>`6|Rv%9T^DGRf 9ڤr=bM0?q!r)Ѕ1hȘTPN~I״!ECR⠲O=_}ɽ3`X՝w1 Y#f3hZh6ۦo !: 73H0(M |`` &KeVBF.il[("Uu@۔DvilR ªFƵi/R1|B㴿IE R1SˆGVm3bq oqEyZ`laĎf&Vz(# usm-I\II$JeN|+F|W&l 3 ?H.~5fmkQ@Muo]a9S ft/FF\ Qi pIV['\2#t7A:\69괭 [r+v,/}`8^ZmgWσ Ǘv,7cJ蚖C8D<<|%8߂7l)rGgscAO!}vCh!#gI 8lsMҾĬK+,s> ӵ cIh%zrk ,lNPPh>nĊL3ژah|1FwA4mѽ|J51FUZ͍ 友5Wt!~9[^x|X;,Ukt4HgSdf*|k F$6H1`XS;De7s^u=CߙnxLAvxB!ANqM-i4TdkZda~8?i=#;q?bX $פu:ui~fX6\V;YZq,IY/Σ٩ֺdi:B,2R=^Ux,hJXXVaAV.Y0 K,4‰z-e#ڲArVa "wSCI `^Q oyx9zu`Vb/=eۛTAeNg/߹䄺1O.sjl.53حr+f xaOk$'/[`2C!u|?WM{t?{ٵ|+f7iH#Bl80|fݍ.ԉ&.d\3Ͼzs\ELjonu)SoV?uL_ޏ1$<\wkЊ,Q-0[ԗ#⚠X8Kެl)sn 7YE& xв؂ӎ *mX36n#դ 4x}K>N= L6x3x)r t|}_׆7kAKC `M '#u3 {Hh#71BbpLAA 9br<[ƼSk~ wJLJ}4okL,lX.XO|Ԇ CVXtאaӰ=wdz=lk!Ȯdr+m@ =g`ҷQWn7x{IN%fKPB|%<^fO ]?hZZۿjz;(*SԏFl^f9˱e|~lIk iCǹi>ݰxQ@b|MK|V_$@ C&;ѷBrwc nN`AY` 28d꒦Q!QZϗG<醺ym5yP`^Tgi~cXpmz:iLFIa{刺+Ap^;jDmZ1mއLu,tǎ՗]YHƟ )`KL 960?ë}7ޒzf\xv:8\w22.udK@WjF^?eOl =r6v˲ya H^Ʊ~fd6:/e{l;cRuhr۰8/J@3_܋L>Wp"JG:V_F.!n6xBQJ́6n|r7x8הՓuo "edВF؋ C!zkoc{nY;O0Tc^ù@ mnġנ~3!Rp~ñt 2)N$K6=9T$Sȉ?MtK'κ`HCqVa~~ Vp{KգWde};I5zYQZ9c;E+/ǜF3sKu.&&9mζQg3K@ڨ$~t'? :Yy*O-=8=e6r]~:@z1Ueu},JY5\@:Up>t󢘟SmK]Qo(s!R0w-9?\aiG.ԟCצɧi~\SMR I6BN`y)yGKZH}"{b!Ȱ\[n:ƓAg]/-ɃO( ׌E&P4L!_'e|:"IjAuejx&e)M0G bMu 4y`THA}qXlDOU3֞LZrk ~WP=cڳj{&2:Bp r5_MfyLqFπgL.y>̺ $0k3#_3g0ȸ1}!@EBW1M2u|O)g+qRv4Ծ9aZzK.ӎ r~@vL9..XWkO<=-%PƠ .G"GuMrOE^e=S w~"l/3?euZ5 v_OɧGdFTL'֐ mMGcLp86f3sM0Gh\itfn1GBG*TsTȷ(FR._~y;n-;fcg'>fWɮU ?T5k${_+#ӝ=qPuփHj!#Z+5pVPOMd#-`#H̔'UqJeflG4 d{poM`:?EgtȐGG]wűA츱!%t]=98329rv_pe-UF,1tcϼݚfNT'AT󼒩.~RXw*A-)\捼 p10)O=W՛ULNӌVAF%',LED7cFhnEPWKa9_d6Mnyk_ zu MvT]ď.zoZ WBH39&Z3c?Q/i{#>5_+qW?&+Nۻ?_pUX҂N eɛN^B &W·09eshVy]߆q &:V0?R#7DawԷ\䢗o?ˌ8APJDR1ݯqnޞylcd-֪.sk`)7(%}<-Z} ؊<{*dAs&^Oh]|gQ`-,1Mٍ{%5f];ssgZ_Sې^+דw` $SG(X +HAMpqNV瑕V!{rnϴ]8gm}}l.t`?%OT;p(:8ۏZ轢GWCJkX=2d/a:W{8' ꏁsɷ#hS-<$^p섁qK+_.Cn~Sřx:]$gNA6)wxApxHl'k&cdM&yáCWBe{z 6t밎~'kAGB7۷9yw( 3DbғYU1F1\ƒQ_>g<ˡPE~qiX㊳-Z%2{K.ff3uL/>/r8ks h=IJb.0"yo8վUxj[x }+4 AvōOue[ޓ5?s8 'JDKRFySK6+Wa(-wLLkN-tfjH\rʔkڒGཔ)+WDJ K{0ܕRvIm>ZGmDS]3gv˟Su~{RƚoՌU&KOW&L$Mkf'XC2d/qX[b/ +mhn7ʒj>'ע4$C/y(.a)}DM3{Ñ@=O,wt > R}\MBZv뗥Qa%")F_,yPRg;"dxZ7WQ@In^W&|X}>%1жEǽ=`+qo&7c>ڬ7Ѩ_CǗkpડa7DoFL|=&%Syނ΂w^!D65鴋/ fŹ i#@uh TN#BuՒmgDؗa=k'*H]*-[(7х)eCtp@1T>xGkINɱpXyR`c}~fO7omE5uC[L'ra,}?p| wמՃ6U vau"yA͐ ϴZy6݂A8-F֧ bm#<Ã5zض'T-1tEܢcxZ*6<{q4D(JwyUCK HQu'|O;5:?e׈vԤFz}}^r(^gƛ{;=pw+y/P\tKM6Ynp"ˏl2r*4Q)9O>Ǣs >EQ|x8dxˇY}O1]__7tB!.[4=4ϊoPw Q UBO\'Ǵez i?F.,<ܨ$,w26fX<03~6bIS'=;JaWŪ ^`ZFvBǡ{ G;m?>yVF$VKpB򕆕%UK )0@:dU#C/)-ďKxf7`NcL.q9[^E \L!<[j_lFiM.Űu:ΐ"g,kđk[3la('Zp7 ޿\yaMU!9]**lAy6a'nun;crz Y1Af)5n!KJHic,x!R$KjD>KȶD` Nߥ>7 0Aд kZ-*aL`&&F}*e]P=',gOB^>UHMQ22ߌ&}Xɞ)xr$A$ W8$)I7"RqZB3Utr;yOҾ- <drzOahGS<|nJy|T-|᷒YMI 5VozDxX0WF*&#Aj\~@. 9V}7i9&!(5A?8\dj %;jyLɤ2ˁ#G'ֶ"eЈ)v/{(m߽gKKJDP0k퐐aALF~)@oߑAFX!AYpWq0⁊e LI@,DlŲq=DpE !X R _8k s" J5Rk= Db߰p"tU9+Q]DCmD6knr5k!Тl eD)ކ,)ި1ZV1F=I5Ecu&˗mNݐTZp1cm_ c吏r-65?Z4_lFQRQ?EjA⮶S wSxlV~:#pI[Z+cdӂ-DWZh$q:iؠmcz o|玛uj& 2\8<O-gk-4~C$Ɛ~4q z}yKõGn8 ȵfSOg(~GǮwT.xbjM",uA^EgNf ~Fg)`>8kG.NŎRU0=UkιRo7QؕrŪxהKYj-?&ʂ*voK&eS5pf=ї$;?_?J7T!Qmi|dA6;?gDuڣ%f{L QQi侼#L؅$,Q~@&j-`"e})S-^>u<ѡTPz'Dn$oVUA"U}!QzͥLDmym-DD8&2aB4Ȱ.C͌Ri_$V[4kvI}XlZ]Z#Tĵ 8ҩeAa֠o|mc'3%)ƅu}&Ģ6)`Zz0R;G,JPV;ɏ#pQrnz6܎>\EK#,;i;E:9ШXQV!GH ~'qBF4JԷwqJdg w8: g]PZJ l91 D !B>WD`jxnnr<MrX.Qf[6H?f)$JחH0lU$'EGNHp9YݵU7 FE վSQs#gL_:{g&>W\1srxU}iW&7' '^Rz{ H5]Yd&ņ컼pL適 jC?Zxh'Y-| >|AC~.f'Ϟr&y8l^{oپ+W;[Qs6$&ZuWuӯhhiYUôarYin|ױ;Ieԧ S87UP<Ȫ΁+A0R=uzDҙYLOW>v-jTtZKuhtDK^kfgOjpN ]y|V5j}3E,{rƢstSF.mY4|,&:|"iOQ법޻VPtxٴwGh5ܬg5vC7t9Ӫ *:t)?'j*&#רJ?-ٳ&mT=Ij%_Mۙ h9ߒzFdgѡQ;br2B$y{a gs ww{[(H4 @!6g^8tgXڛ*bPi?i)&8d=hCi?%U@TW% VX-r1zW t[|᳧(0v:~ƾ̓3rcm~Z!T0B#5TIMNgXb#!B;ﳣZP. xgƧ#ƹE*pdm`FEWF0Dׅ.s&Gkc ˝f -K,^|B&36R\-6 Ŷz* ~Zy g}Xv`QOq)̌hKݢY{·4[o}]mv{$KEʍaa\WK~QB*$ggW_v` Q rATK#n١DŇ˳0-{AH;| 6CJC+qW#a}O? k9Kw9/|1ф-Jِh=xAtM.*5E]Uc\e笷 ?4,ImUnMF UErQfQa; b{?<3JP h#%10Dž[Uo#A F_'g7y:"5L&zF ݙ#h]<DOh&SEN#|)p7Flw3r?<He*y"<)?Ϩ1T{`e]DxxKeAg  5+m]"t]? ;!)b(yE&q1Jq#Pv$l[bEt٭a';$m/