(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP")
(FILECREATED " 7-Nov-88 14:24:24" {QV}<NOTECARDS>1.3M>MAPS>NEWMAP.;3 103514 

      changes to%:  (FNS DRAW.MAP SK.MAP.INPUTFN COMPUTE.NEW.WORLD.REGION FetchCachedBitMap 
                         SELECTMAPFILE SK.ADD.MAP.TYPE SK.MAP.CHANGEFN SK.MAP.REGIONFN 
                         SK.MAP.GLOBALREGIONFN SK.MAP.TRANSFORMFN SK.MAP.TRANSLATEFN 
                         SK.MAP.TRANSLATEPTSFN SetCachedBitMap GETMAPFILES2 MAP.CHANGE.WORLDREGION 
                         UNSCALE.REGION.FROM.SKETCHW SK.MAP.DRAWFN PLOTSEGMENT DRAWBORDER 
                         SK.MAP.EXPANDFN MAP.SET.SCALES WORLDREGION SK.MAP.INSIDEFN SK.MAP.MOVEFN 
                         UNSCALE.POSITION.FROM.SKETCHW CacheSpecsFromMapSketchElement)
                    (VARS NEWMAPCOMS)
                    (PROPS (NEWMAP MAKEFILE-ENVIRONMENT))
                    (FILES QUADFUNS)

      previous date%: " 7-Jan-88 15:49:16" {QV}<NOTECARDS>1.3L>MAPS>NEWMAP.;2)


(* "
Copyright (c) 1984, 1985, 1986, 1987, 1988 by Xerox Corporation.  All rights reserved.
")

(PRETTYCOMPRINT NEWMAPCOMS)

(RPAQQ NEWMAPCOMS
       ((DECLARE%: DONTCOPY (PROPS (NEWMAP MAKEFILE-ENVIRONMENT)
                                   (NEWMAP FILETYPE)))
        (FNS COMPUTE.NEW.WORLD.REGION FetchCachedBitMap SELECTMAPFILE SK.ADD.MAP.TYPE SK.MAP.CHANGEFN
             SK.MAP.REGIONFN SK.MAP.GLOBALREGIONFN SK.MAP.TRANSFORMFN SK.MAP.TRANSLATEFN 
             SK.MAP.TRANSLATEPTSFN SetCachedBitMap GETMAPFILES2 MAP.CHANGE.WORLDREGION 
             UNSCALE.REGION.FROM.SKETCHW)
        (FNS SK.MAP.DRAWFN DRAW.MAP PLOTSEGMENT DRAWBORDER)
        (FNS SK.MAP.EXPANDFN SK.MAP.INPUTFN MAP.SET.SCALES WORLDREGION SK.MAP.INSIDEFN SK.MAP.MOVEFN
             UNSCALE.POSITION.FROM.SKETCHW)
        (FNS CacheSpecsFromMapSketchElement)
        (MACROS BIN16 BIN20 MAPSCALE ReadSigned16)
        (RECORDS MAP LOCALMAP)
        (BITMAPS WORLDBITMAP)
        (GLOBALVARS DEFAULT.MAP.FILE MAPFILESDIRECTORIES)
        (FNS MAP.SetUpDirectories)
        (INITVARS (DEFAULT.MAP.FILE 'MENU)
               (World5File 'WORLD5.MAPDATA)
               (GlobalWorldFile 'WORLD0.MAPDATA)
               (MAPFILESDIRECTORIES (MAP.SetUpDirectories)))
        (FILES QUADFUNS PROPORTION)
        (P (SK.ADD.MAP.TYPE))))
(DECLARE%: DONTCOPY 

(PUTPROPS NEWMAP MAKEFILE-ENVIRONMENT (:PACKAGE "INTERLISP" :READTABLE "INTERLISP"))

(PUTPROPS NEWMAP FILETYPE :TCOMPL)
)
(DEFINEQ

(COMPUTE.NEW.WORLD.REGION
  [LAMBDA (MAPELT INPUTSKETCHREGION)                         (* Feuerman "27-Feb-84 10:31")

         (* INPUTSKETCHREGION is the region of the sketch window {in sketch window 
         coordinates} that the user swept out to indicate what new region of the world 
         compared to the old world region they're interested in)

    (PROG ((LATSCALE (fetch (MAP LATITUDESCALE) of MAPELT))
           (LONSCALE (fetch (MAP LONGITUDESCALE) of MAPELT))
           (OLDWORLDREGION (fetch (MAP WORLDREGION) of MAPELT))
           (MAPSKETCHREGION (fetch (MAP MAPSKETCHREGION) of MAPELT))
           LEFT BOTTOM WIDTH HEIGHT)
          [SETQ LEFT (PLUS (fetch (REGION LEFT) of OLDWORLDREGION)
                           (FIX (FTIMES LONSCALE (DIFFERENCE (fetch (REGION LEFT) of 
                                                                                    INPUTSKETCHREGION
                                                                    )
                                                        (fetch (REGION LEFT) of 
                                                                                      MAPSKETCHREGION
                                                               ]
          [SETQ BOTTOM (PLUS (fetch (REGION BOTTOM) of OLDWORLDREGION)
                             (FIX (FTIMES LATSCALE (DIFFERENCE (fetch (REGION BOTTOM)
                                                                  of INPUTSKETCHREGION)
                                                          (fetch (REGION BOTTOM) of 
                                                                                      MAPSKETCHREGION
                                                                 ]
          [SETQ WIDTH (FIX (FTIMES LONSCALE (fetch (REGION WIDTH) of INPUTSKETCHREGION]
          [SETQ HEIGHT (FIX (FTIMES LATSCALE (fetch (REGION HEIGHT) of INPUTSKETCHREGION]
          (RETURN (CREATEREGION LEFT BOTTOM WIDTH HEIGHT])

(FetchCachedBitMap
  [LAMBDA (MapResolution XSCALE YSCALE CLIPW CLIPE CLIPS CLIPN)
                                                             (* fgh%: "28-Sep-85 23:17")
    (AND (NOT MapResolution)
         (SETQ MapResolution 'HIGH))
    (GETPROP 'MAPS.CACHEDBITMAPS (MKATOM (LIST MapResolution (FIX XSCALE)
                                               (FIX YSCALE)
                                               CLIPW CLIPE CLIPS CLIPN])

(SELECTMAPFILE
  [LAMBDA NIL                                                (* rht%: "23-Apr-85 12:14")

         (* DEFAULT.MAP.FILE instructs which map file to use.
         In the special case where its value is the litatom MENU, which mapfile is used is 
         prompted for from the user.)

    (COND
       ((EQ DEFAULT.MAP.FILE 'MENU)
        (MENU (create MENU
                     ITEMS ← '((Yes World5File)
                               (No GlobalWorldFile))
                     TITLE ← "Do you want High Resolution File?"
                     CENTERFLG ← T)))
       (T DEFAULT.MAP.FILE])

(SK.ADD.MAP.TYPE
  [LAMBDA NIL                                                (* rrb " 4-Jun-86 15:56")
                                                             (* sets up the box sketch element 
                                                             types.)

         (* put the datatype for the element on the property list of MAP and use the name 
         MAP in the instances.)

    (COND
       ((NOT (SKETCH.ELEMENT.TYPEP 'MAP))
        (CREATE.SKETCH.ELEMENT.TYPE 'MAP 'Map "Adds a map by accepting a region to put it in."
               (FUNCTION SK.MAP.DRAWFN)
               (FUNCTION SK.MAP.EXPANDFN)
               'OBSOLETE
               (FUNCTION SK.MAP.CHANGEFN)
               (FUNCTION SK.MAP.INPUTFN)
               (FUNCTION SK.MAP.INSIDEFN)
               (FUNCTION SK.MAP.REGIONFN)
               (FUNCTION SK.MAP.TRANSLATEFN)
               NIL NIL (FUNCTION SK.MAP.TRANSFORMFN)
               (FUNCTION SK.MAP.TRANSLATEPTSFN)
               (FUNCTION SK.MAP.GLOBALREGIONFN])

(SK.MAP.CHANGEFN
  [LAMBDA (SCRNELT W)                                        (* Feuerman "27-Feb-84 10:51")
    (PROG [(FIELD (SK.MENU.AND.RETURN.FIELD (fetch (SCREENELT GTYPE) of SCRNELT]
          (RETURN (COND
                     ((EQUAL FIELD 'WORLDREGION)
                      (MAP.CHANGE.WORLDREGION SCRNELT W))
                     (FIELD (SK.DEFAULT.CHANGEFN SCRNELT W FIELD))
                     (T NIL])

(SK.MAP.REGIONFN
  [LAMBDA (MAPSCRELT)                                        (* fgh%: "28-Sep-85 21:28")

         (* * Return the region occupied by a map)

    (fetch (LOCALMAP MAPLOCALREGION) of (fetch (SCREENELT LOCALPART) of MAPSCRELT])

(SK.MAP.GLOBALREGIONFN
  [LAMBDA (MAPGELT)                                          (* rrb " 4-Jun-86 16:07")

         (* * Return the global region occupied by a map)

    (fetch (MAP MAPSKETCHREGION) of (fetch (GLOBALPART INDIVIDUALGLOBALPART) of
                                                                                         MAPGELT])

(SK.MAP.TRANSFORMFN
  [LAMBDA (GELT TRANSFORMFN TRANSFORMDATA SCALEFACTOR)       (* fgh%: "28-Sep-85 22:24")

         (* * returns a copy of global map with control points transformed by transformfn.)

    (LET ((INDVPART (fetch (GLOBALPART INDIVIDUALGLOBALPART) of GELT)))
         (MAP.SET.SCALES (create GLOBALPART
                                    INDIVIDUALGLOBALPART ←
                                    (create MAP
                                           WORLDREGION ← (fetch (MAP WORLDREGION) of INDVPART
                                                                )
                                           MAPSKETCHREGION ← (SK.TRANSFORM.REGION (fetch
                                                                                   (MAP 
                                                                                      MAPSKETCHREGION
                                                                                        )
                                                                                     of INDVPART)
                                                                    TRANSFORMFN TRANSFORMDATA)
                                           LATITUDESCALE ← NIL
                                           LONGITUDESCALE ← NIL
                                           MAPBORDER ← (fetch (MAP MAPBORDER) of INDVPART)
                                           MAPRESOLUTION ← (fetch (MAP MAPRESOLUTION)
                                                              of INDVPART)))
                SCALEFACTOR])

(SK.MAP.TRANSLATEFN
  [LAMBDA (SKELT DELTAPOS)                                   (* fgh%: "28-Sep-85 21:50")

         (* * returns a element which has the map translated by DELTAPOS)

    (PROG ((GMAPELT (fetch (GLOBALPART INDIVIDUALGLOBALPART) of SKELT)))
          (RETURN (create GLOBALPART
                         COMMONGLOBALPART ← (APPEND (fetch (GLOBALPART COMMONGLOBALPART)
                                                       of SKELT))
                         INDIVIDUALGLOBALPART ← (create MAP using GMAPELT MAPSKETCHREGION ←
                                                                      (REL.MOVE.REGION
                                                                       (fetch (MAP 
                                                                                      MAPSKETCHREGION
                                                                                       ) of
                                                                                         GMAPELT)
                                                                       (fetch (POSITION XCOORD)
                                                                          of DELTAPOS)
                                                                       (fetch (POSITION YCOORD)
                                                                          of DELTAPOS])

(SK.MAP.TRANSLATEPTSFN
  [LAMBDA (MAPELT SELPTS GDELTA WINDOW)                      (* rrb " 9-Oct-86 17:42")

         (* returns a closed wire element which has the knots that are members of SELPTS 
         translated by the global amount GDELTA.)

    (PROG ((GMAPELT (fetch (SCREENELT INDIVIDUALGLOBALPART) of MAPELT))
           OLDGLOBALREGION LLX LLY URX URY)
          (SETQ OLDGLOBALREGION (fetch (MAP MAPSKETCHREGION) of GMAPELT))
          [COND
             [(MEMBER (fetch (LOCALMAP MAPLL) of (fetch (SCREENELT LOCALPART)
                                                            of MAPELT))
                     SELPTS)                                 (* lower left point is moving.)
              (SETQ LLX (PLUS (fetch (REGION LEFT) of OLDGLOBALREGION)
                              (fetch (POSITION XCOORD) of GDELTA)))
              (SETQ LLY (PLUS (fetch (REGION BOTTOM) of OLDGLOBALREGION)
                              (fetch (POSITION YCOORD) of GDELTA]
             (T (SETQ LLX (fetch (REGION LEFT) of OLDGLOBALREGION))
                (SETQ LLY (fetch (REGION BOTTOM) of OLDGLOBALREGION]
          [COND
             [(MEMBER (fetch (LOCALMAP MAPUR) of (fetch (SCREENELT LOCALPART)
                                                            of MAPELT))
                     SELPTS)                                 (* upper right point)
              (SETQ URX (PLUS (fetch (REGION PRIGHT) of OLDGLOBALREGION)
                              (fetch (POSITION XCOORD) of GDELTA)))
              (SETQ URY (PLUS (fetch (REGION PTOP) of OLDGLOBALREGION)
                              (fetch (POSITION YCOORD) of GDELTA]
             (T (SETQ URX (fetch (REGION PRIGHT) of OLDGLOBALREGION))
                (SETQ URY (fetch (REGION PTOP) of OLDGLOBALREGION]
          (RETURN (MAP.SET.SCALES (create GLOBALPART
                                             INDIVIDUALGLOBALPART ←
                                             (create MAP
                                                    WORLDREGION ← (fetch (MAP WORLDREGION)
                                                                     of GMAPELT)
                                                    MAPSKETCHREGION ← (CREATEREGION
                                                                       (MIN LLX URX)
                                                                       (MIN LLY URY)
                                                                       (ABS (DIFFERENCE LLX URX))
                                                                       (ABS (DIFFERENCE LLY URY)))
                                                    LATITUDESCALE ← NIL
                                                    LONGITUDESCALE ← NIL
                                                    MAPBORDER ← (fetch (MAP MAPBORDER)
                                                                   of GMAPELT)
                                                    MAPRESOLUTION ← (fetch (MAP MAPRESOLUTION)
                                                                       of GMAPELT)))
                         (VIEWER.SCALE WINDOW])

(SetCachedBitMap
  [LAMBDA (savedBM MapResolution XSCALE YSCALE CLIPW CLIPE CLIPS CLIPN)
                                                             (* fgh%: "28-Sep-85 23:16")
    (AND (NOT MapResolution)
         (SETQ MapResolution 'HIGH))
    (PUTPROP 'MAPS.CACHEDBITMAPS (MKATOM (LIST MapResolution (FIX XSCALE)
                                               (FIX YSCALE)
                                               CLIPW CLIPE CLIPS CLIPN))
           savedBM])

(GETMAPFILES2
  [LAMBDA NIL                                                (* Feuerman " 8-Mar-85 17:23")

         (* * Sorry to do this to you, Frank and Randy, but I had to zap out this function 
         definition for your own good. The variables World5File and GlobalWorldFile are 
         now being INITVARed in the NEWMAPCOMS, so if you are intent on using {PHYLUM}..
         as the map directory, initialize it before LOADing NEWMAP.
         Otherwise, the variables will point to files on the local DSK.
         --KEF)

    NIL])

(MAP.CHANGE.WORLDREGION
  [LAMBDA (SCRNELT W)                                        (* rrb " 9-Oct-86 17:42")
    (PROG ((INDVELT (fetch (SCREENELT INDIVIDUALGLOBALPART) of SCRNELT)))
          (replace (MAP WORLDREGION) of INDVELT with (COMPUTE.NEW.WORLD.REGION
                                                                  INDVELT
                                                                  (GETSKETCHWREGION W)))
          (MAP.SET.SCALES (fetch (SCREENELT GLOBALPART) of SCRNELT)
                 (VIEWER.SCALE W))
          (RETURN (fetch (SCREENELT GLOBALPART) of SCRNELT])

(UNSCALE.REGION.FROM.SKETCHW
  [LAMBDA (REGION VIEWER)                                    (* rrb " 9-Oct-86 17:36")
                                                             (* scales a region from a viewer into 
                                                             the global sketch coordinates.)
    (UNSCALE.REGION REGION (VIEWER.SCALE VIEWER])
)
(DEFINEQ

(SK.MAP.DRAWFN
  [LAMBDA (MAPELT WIN REG)                                   (* fgh%: "28-Sep-85 22:49")
                                                             (* the drawing function for a sketch 
                                                             element that is a piece of the world.)
    (PROG ((GMAP (fetch (SCREENELT INDIVIDUALGLOBALPART) of MAPELT))
           (LMAP (fetch (SCREENELT LOCALPART) of MAPELT))
           WREGION LOCALREG SAVECLIPPINGREGION REGION1 REGION2 LOCALREGION1 LOCALREGION2 XOFFSET 
           YOFFSET XSCALE YSCALE CLIPW CLIPE CLIPS CLIPN MapResolution)
          (SETQ WREGION (fetch (MAP WORLDREGION) of GMAP))
          (SETQ LOCALREG (fetch (LOCALMAP MAPLOCALREGION) of LMAP))
          (RESETVAR CAR/CDRERR NIL (SETQ MapResolution (fetch (MAP MAPRESOLUTION) of GMAP)))
          (COND
             ((EQ (DSPOPERATION NIL WIN)
                  'ERASE)                                    (* if erasing, don't worry about 
                                                             clobbering other stuff, just clear the 
                                                             region.)
              (DSPFILL LOCALREG WHITESHADE 'REPLACE WIN)
              (RETURN)))
          (DRAWBORDER LOCALREG WIN (fetch (MAP MAPBORDER) of GMAP))
                                                             (* Temporarily set the clipping region 
                                                             so that we don't draw outside of the 
                                                             border)
          (RESETLST
              (RESETSAVE NIL (LIST 'DSPCLIPPINGREGION (DSPCLIPPINGREGION (INTERSECTREGIONS
                                                                          LOCALREG
                                                                          (DSPCLIPPINGREGION NIL WIN)
                                                                          )
                                                             WIN)
                                   WIN))
              [COND
                 [(MINUSP (fetch (REGION LEFT) of WREGION))
                  (SETQ REGION1 (CREATEREGION 0 (fetch BOTTOM of WREGION)
                                       (IPLUS (fetch WIDTH of WREGION)
                                              (fetch LEFT of WREGION))
                                       (fetch HEIGHT of WREGION)))
                  (SETQ REGION2 (CREATEREGION (IPLUS (CONSTANT (EXPT 2 20))
                                                     (fetch LEFT of WREGION))
                                       (fetch BOTTOM of WREGION)
                                       (ABS (fetch LEFT of WREGION))
                                       (fetch HEIGHT of WREGION)))
                  (SETQ LOCALREGION2 (CREATEREGION (fetch LEFT of LOCALREG)
                                            (fetch BOTTOM of LOCALREG)
                                            [FIX (FTIMES (fetch WIDTH of LOCALREG)
                                                        (FQUOTIENT (fetch WIDTH of REGION2)
                                                               (fetch WIDTH of WREGION]
                                            (fetch HEIGHT of LOCALREG)))
                  (SETQ LOCALREGION1 (CREATEREGION (IPLUS (fetch LEFT of LOCALREG)
                                                          (fetch WIDTH of LOCALREGION2)
                                                          1)
                                            (fetch BOTTOM of LOCALREG)
                                            [FIX (FTIMES (fetch WIDTH of LOCALREG)
                                                        (FQUOTIENT (fetch WIDTH of REGION1)
                                                               (fetch WIDTH of WREGION]
                                            (fetch HEIGHT of LOCALREG)))
                  (DRAW.MAP (OR (DISPLAYSTREAMP WIN)
                                    (WINDOWPROP WIN 'DSP))
                         [SETQ XOFFSET (FIX (FDIFFERENCE (FQUOTIENT (fetch (REGION LEFT)
                                                                       of REGION1)
                                                                (fetch (LOCALMAP MAPLOCALLONSCALE
                                                                                  ) of LMAP))
                                                   (fetch (REGION LEFT) of LOCALREGION1]
                         [SETQ YOFFSET (FIX (FDIFFERENCE (FQUOTIENT (fetch (REGION BOTTOM)
                                                                       of REGION1)
                                                                (fetch (LOCALMAP MAPLOCALLATSCALE
                                                                                  ) of LMAP))
                                                   (fetch (REGION BOTTOM) of LOCALREGION1]
                         (SETQ XSCALE (fetch (LOCALMAP MAPLOCALLONSCALE) of LMAP))
                         (SETQ YSCALE (fetch (LOCALMAP MAPLOCALLATSCALE) of LMAP))
                         (SETQ CLIPW (fetch (REGION LEFT) of REGION1))
                         (SETQ CLIPE (fetch (REGION RIGHT) of REGION1))
                         (SETQ CLIPS (fetch (REGION BOTTOM) of REGION1))
                         (SETQ CLIPN (fetch (REGION TOP) of REGION1))
                         LOCALREGION1 MapResolution)
                  (replace (LOCALMAP MAPLOCALCACHESPECS) of LMAP
                     with (LIST (LIST MapResolution XSCALE YSCALE CLIPW CLIPE CLIPS CLIPN)))
                  (DRAW.MAP (OR (DISPLAYSTREAMP WIN)
                                    (WINDOWPROP WIN 'DSP))
                         [SETQ XOFFSET (FIX (FDIFFERENCE (FQUOTIENT (fetch (REGION LEFT)
                                                                       of REGION2)
                                                                (fetch (LOCALMAP MAPLOCALLONSCALE
                                                                                  ) of LMAP))
                                                   (fetch (REGION LEFT) of LOCALREGION2]
                         [SETQ YOFFSET (FIX (FDIFFERENCE (FQUOTIENT (fetch (REGION BOTTOM)
                                                                       of REGION2)
                                                                (fetch (LOCALMAP MAPLOCALLATSCALE
                                                                                  ) of LMAP))
                                                   (fetch (REGION BOTTOM) of LOCALREGION2]
                         (SETQ XSCALE (fetch (LOCALMAP MAPLOCALLONSCALE) of LMAP))
                         (SETQ YSCALE (fetch (LOCALMAP MAPLOCALLATSCALE) of LMAP))
                         (SETQ CLIPW (fetch (REGION LEFT) of REGION2))
                         (SETQ CLIPE (fetch (REGION RIGHT) of REGION2))
                         (SETQ CLIPS (fetch (REGION BOTTOM) of REGION2))
                         (SETQ CLIPN (fetch (REGION TOP) of REGION2))
                         LOCALREGION2 MapResolution)
                  (replace (LOCALMAP MAPLOCALCACHESPECS) of LMAP
                     with (CONS (LIST MapResolution XSCALE YSCALE CLIPW CLIPE CLIPS CLIPN)
                                    (fetch (LOCALMAP MAPLOCALCACHESPECS) of LMAP]
                 (T (DRAW.MAP (OR (DISPLAYSTREAMP WIN)
                                      (WINDOWPROP WIN 'DSP))
                           [SETQ XOFFSET (FIX (FDIFFERENCE (FQUOTIENT (fetch (REGION LEFT)
                                                                         of WREGION)
                                                                  (fetch (LOCALMAP 
                                                                                    MAPLOCALLONSCALE)
                                                                     of LMAP))
                                                     (fetch (REGION LEFT) of LOCALREG]
                           [SETQ YOFFSET (FIX (FDIFFERENCE (FQUOTIENT (fetch (REGION BOTTOM)
                                                                         of WREGION)
                                                                  (fetch (LOCALMAP 
                                                                                    MAPLOCALLATSCALE)
                                                                     of LMAP))
                                                     (fetch (REGION BOTTOM) of LOCALREG]
                           (SETQ XSCALE (fetch (LOCALMAP MAPLOCALLONSCALE) of LMAP))
                           (SETQ YSCALE (fetch (LOCALMAP MAPLOCALLATSCALE) of LMAP))
                           (SETQ CLIPW (fetch (REGION LEFT) of WREGION))
                           (SETQ CLIPE (fetch (REGION RIGHT) of WREGION))
                           (SETQ CLIPS (fetch (REGION BOTTOM) of WREGION))
                           (SETQ CLIPN (fetch (REGION TOP) of WREGION))
                           LOCALREG MapResolution)
                    (replace (LOCALMAP MAPLOCALCACHESPECS) of LMAP
                       with (LIST (LIST MapResolution XSCALE YSCALE CLIPW CLIPE CLIPS CLIPN])])

(DRAW.MAP
  [LAMBDA (DSP XOFFSET YOFFSET XSCALE YSCALE CLIPW CLIPE CLIPS CLIPN LOCALREGION MapResolution)
                                                      (* ; "Edited  7-Nov-88 14:24 by Randy.Gobbel")

    (* ;; "draws a piece of the world into WINDOW.  YSCALE and XSCALE define the scale.  CLIPx defines the region of the world of interest.")

    (PROG (FILENAME FUDGEFACTOR W savedBM MAPFILE BASENAME)

     (* ;; "Check to see if we've previously cached the map selection.  If so, use the cached bm.  (NOTE: this uses the var MAPELT, inherited from SK.MAP.DRAWFN)")

     (* ;; "MAPFILE has now been made a GLOBALVAR.  This was done because in order to do the input of a new map element, we needed to know which map file was being used to adjust the proportional GETREGION accordingly.  Therefore, MAPFILE is being SET in SK.MAP.INPUTFN.")

     (* ;; "FGH 9/27/85 Got ridd of GLOBAL MAPFILE.  Replaced by added argument MapReolution, from which the right map file can be computed.")

          (COND
             ((SETQ savedBM (FetchCachedBitMap MapResolution XSCALE YSCALE CLIPW CLIPE CLIPS 
                                   CLIPN))
              (BITBLT savedBM 0 0 DSP (fetch LEFT of LOCALREGION)
                     (fetch BOTTOM of LOCALREGION)
                     (BITMAPWIDTH savedBM)
                     (BITMAPHEIGHT savedBM)
                     'INPUT
                     'PAINT)
              (RETURN NIL)))
          (SETQ BASENAME (PACK* (COND
                                   ((EQ MapResolution 'HIGH)
                                    'WORLD5)
                                   (T 'WORLD0))
                                '.MAPDATA))
          [SETQ MAPFILE (OR (FINDFILE BASENAME NIL MAPFILESDIRECTORIES)
                            (BREAK1 (FINDFILE BASENAME NIL MAPFILESDIRECTORIES)
                                   T DRAW.MAP NIL NIL '("Cannot find the map data file." 
                                "You probably need to reset MAPFILESDIRECTORIES!!
Type '↑' to abort."]
          (SETQ FILENAME (FILENAMEFIELD MAPFILE 'NAME))
          (SETQ FUDGEFACTOR (COND
                               ((OR (EQUAL FILENAME 'WORLD0)
                                    (EQUAL FILENAME 'WORLD5))
                                1.0)
                               (T 16.0)))

     (* ;; "FUDGEFACTOR is used when using 20 bit data base format.  It is determined by the difference between the 16 bit and 20 bit data bases.")

          (RESETLST
              (RESETSAVE (CURSOR WAITINGCURSOR))
              (SETQ savedBM (BITMAPCREATE (fetch WIDTH of LOCALREGION)
                                   (fetch HEIGHT of LOCALREGION)))
              (DRAW.MAP.FROM.TREE [COND
                                     [(EQUAL FILENAME 'WORLD0)
                                                             (* ; 
                                                     "use the low resolution data base and quad tree")
                                      (COND
                                         ((AND (BOUNDP 'QUADTREE.LOWRES)
                                               QUADTREE.LOWRES))
                                         (T (SETQ QUADTREE.LOWRES (GET.QUAD.TREE MAPFILE]
                                     (T (COND
                                           ((AND (BOUNDP 'QUADTREE.HIGHRES)
                                                 QUADTREE.HIGHRES))
                                           (T (SETQ QUADTREE.HIGHRES (GET.QUAD.TREE MAPFILE]
                     MAPFILE
                     (DSPCREATE savedBM)
                     (IPLUS XOFFSET (fetch LEFT of LOCALREGION))
                     (IPLUS YOFFSET (fetch BOTTOM of LOCALREGION))
                     (FQUOTIENT XSCALE FUDGEFACTOR)
                     (FQUOTIENT YSCALE FUDGEFACTOR)
                     CLIPW CLIPE CLIPS CLIPN)
              (BITBLT savedBM 0 0 DSP (fetch LEFT of LOCALREGION)
                     (fetch BOTTOM of LOCALREGION)
                     (BITMAPWIDTH savedBM)
                     (BITMAPHEIGHT savedBM)
                     'INPUT
                     'PAINT)
              (SetCachedBitMap savedBM MapResolution XSCALE YSCALE CLIPW CLIPE CLIPS CLIPN))
          (RETURN NIL])

(PLOTSEGMENT
  [LAMBDA (WINDOW DATASTREAM NPTS XMIN XFACTOR YMIN YFACTOR COLOR)
                                                             (* Feuerman " 2-Mar-85 15:02")
    (PROG ((CURRENTLAT (BIN20 DATASTREAM))
           (CURRENTLON (BIN20 DATASTREAM))
           CURRENTWINDOWLAT CURRENTWINDOWLON)
          (MOVETO (MAPSCALE CURRENTLON XMIN XFACTOR WINDOW)
                 (MAPSCALE CURRENTLAT YMIN YFACTOR WINDOW)
                 WINDOW)
          (AND (ZEROP COLOR)
               (SETQ COLOR 15))

         (* * FRPTQ = Fast RePeaT. repeat these steps NPTS times;
         i.e., once for each point in the segment record)

          (FRPTQ NPTS (SETQ CURRENTWINDOWLAT (MAPSCALE (SETQ CURRENTLAT (IPLUS CURRENTLAT
                                                                               (ReadSigned16 
                                                                                      DATASTREAM)))
                                                    YMIN YFACTOR WINDOW))
                                                             (* Get the new point by adding offsets 
                                                             to the last point)
                 (SETQ CURRENTWINDOWLON (MAPSCALE (SETQ CURRENTLON (IPLUS CURRENTLON (ReadSigned16
                                                                                      DATASTREAM)))
                                               XMIN XFACTOR WINDOW))
                                                             (* Draw to the next point, checking 
                                                             for possible wraps)
                 (COND
                    ((IGREATERP CURRENTLON (CONSTANT (EXPT 2 20)))
                     [SETQ CURRENTLON (IDIFFERENCE CURRENTLON (CONSTANT (EXPT 2 20]
                     (MOVETO (MAPSCALE CURRENTLON XMIN XFACTOR WINDOW)
                            CURRENTWINDOWLAT WINDOW))
                    (T (COND
                          ((ILESSP CURRENTLON 0)
                           (SETQ CURRENTLON (IDIFFERENCE (CONSTANT (EXPT 2 20))
                                                   CURRENTLON))
                           (MOVETO (MAPSCALE CURRENTLON XMIN XFACTOR WINDOW)
                                  CURRENTWINDOWLAT WINDOW))
                          ((OR (NEQ CURRENTWINDOWLON (DSPXPOSITION NIL WINDOW))
                               (NEQ CURRENTWINDOWLAT (DSPYPOSITION NIL WINDOW)))
                                                             (* check first to see if segment is 
                                                             actually going anywhere)
                           (COND
                              ((OR (INSIDEP (DSPCLIPPINGREGION NIL WINDOW)
                                          CURRENTWINDOWLON CURRENTWINDOWLAT)
                                   (INSIDEP (DSPCLIPPINGREGION NIL WINDOW)
                                          (DSPXPOSITION NIL WINDOW)
                                          (DSPYPOSITION NIL WINDOW)))

         (* if either of the points are inside the clipping region, draw the line, 
         otherwise just move to the new point. This saves the time of drawing lines that 
         lie completely outside of the clipping region)

                               (DRAWTO CURRENTWINDOWLON CURRENTWINDOWLAT NIL 'PAINT WINDOW COLOR))
                              (T (MOVETO CURRENTWINDOWLON CURRENTWINDOWLAT WINDOW])

(DRAWBORDER
  [LAMBDA (REGION WIN SIZE OPERATION)                        (* rrb "23-Jan-84 12:07")
                                                             (* draws a box around region)
    (DRAWAREABOX (fetch (REGION LEFT) of REGION)
           (fetch (REGION BOTTOM) of REGION)
           (fetch (REGION WIDTH) of REGION)
           (fetch (REGION HEIGHT) of REGION)
           SIZE OPERATION WIN])
)
(DEFINEQ

(SK.MAP.EXPANDFN
  [LAMBDA (GMAP SCALE)                                       (* rrb " 9-Oct-86 17:39")

         (* returns a local record which has the region field of the global element GELT 
         translated into window coordinats.)
                                                             (* for now only allow to select the 
                                                             left-bottom or right-top corner.)
    (PROG ((MAP (fetch (GLOBALPART INDIVIDUALGLOBALPART) of GMAP))
           LREG)
          (SETQ LREG (SK.SCALE.REGION (fetch (MAP MAPSKETCHREGION) of MAP)
                            SCALE))
          (RETURN (create SCREENELT
                         LOCALPART ← (create LOCALMAP
                                            MAPLL ← (create POSITION
                                                           XCOORD ← (fetch (REGION LEFT)
                                                                       of LREG)
                                                           YCOORD ← (fetch (REGION BOTTOM)
                                                                       of LREG))
                                            MAPUR ← (create POSITION
                                                           XCOORD ← (fetch (REGION RIGHT)
                                                                       of LREG)
                                                           YCOORD ← (fetch (REGION TOP)
                                                                       of LREG))
                                            MAPLOCALREGION ← LREG
                                            MAPLOCALLONSCALE ← (FTIMES (fetch (MAP LONGITUDESCALE
                                                                                       ) of
                                                                                         MAP)
                                                                      SCALE)
                                            MAPLOCALLATSCALE ← (FTIMES (fetch (MAP LATITUDESCALE)
                                                                          of MAP)
                                                                      SCALE)
                                            MAPLOCALCACHESPECS ← NIL)
                         GLOBALPART ← GMAP])

(SK.MAP.INPUTFN
  [LAMBDA (W WORLDREGION LOCALREGION)                 (* ; "Edited  7-Nov-88 14:18 by Randy.Gobbel")

    (* ;; "creates a map element for a sketch window.  First, get the region of the world we're interested in.  Then select which map file to draw from.  We need this now, so we'll know how to proportion the region in the sketch window.")

    (PROG ([WORLDREGION (COND
                               ((REGIONP WORLDREGION))
                               (T (WORLDREGION]
           GLOBALREGION BASENAME MESS1 MESS2 (MAPFILE NIL))
          (SETQ BASENAME (SELECTMAPFILE))
          [SETQ MAPFILE (OR (FINDFILE BASENAME NIL MAPFILESDIRECTORIES)
                            (BREAK1 (FINDFILE BASENAME NIL MAPFILESDIRECTORIES)
                                   T SK.MAP.INPUTFN NIL NIL '("Cannot find the map data file." 
                                "You probably need to reset MAPFILESDIRECTORIES!!
Type '↑' to abort."]
          (SETQ GLOBALREGION (UNSCALE.REGION.FROM.SKETCHW
                              (OR LOCALREGION (GETPROPORTIONEDREGION
                                               (FTIMES [COND
                                                          ((EQ (FILENAMEFIELD MAPFILE 'NAME)
                                                               'WORLD5)
                                                           1.5)
                                                          (T (CONSTANT (FQUOTIENT 3256 1630]
                                                      (FQUOTIENT (fetch (REGION WIDTH)
                                                                    of WORLDREGION)
                                                             (fetch (REGION HEIGHT) of 
                                                                                          WORLDREGION
                                                                    )))
                                               W))
                              W))
          (RETURN (MAP.SET.SCALES [create GLOBALPART
                                             INDIVIDUALGLOBALPART ←
                                             (create MAP
                                                    WORLDREGION ← WORLDREGION
                                                    MAPSKETCHREGION ← GLOBALREGION
                                                    MAPBORDER ← 1
                                                    MAPRESOLUTION ← (COND
                                                                       ((EQ (FILENAMEFIELD
                                                                             MAPFILE
                                                                             'NAME)
                                                                            'WORLD0)
                                                                        'LOW)
                                                                       (T 'HIGH]
                         (VIEWER.SCALE W])

(MAP.SET.SCALES
  [LAMBDA (GMAPELT SCALE)                                    (* rrb "23-Jan-84 17:29")
                                                             (* updates the dependent fields after 
                                                             a change in the region of a box 
                                                             element.)
    (PROG ((INDVMAPELT (fetch (GLOBALPART INDIVIDUALGLOBALPART) of GMAPELT))
           WORLDREGION GREG WIDTH HEIGHT)
          (SETQ GREG (fetch (MAP MAPSKETCHREGION) of INDVMAPELT))
          (SETQ WORLDREGION (fetch (MAP WORLDREGION) of INDVMAPELT))
                                                             (* update the scale factors for the 
                                                             map to global region transformation.)
          [replace (MAP LONGITUDESCALE) of INDVMAPELT with (FQUOTIENT
                                                                        (fetch (REGION WIDTH)
                                                                           of WORLDREGION)
                                                                        (SETQ WIDTH
                                                                         (fetch (REGION WIDTH)
                                                                            of GREG]
          [replace (MAP LATITUDESCALE) of INDVMAPELT with (FQUOTIENT
                                                                       (fetch (REGION HEIGHT)
                                                                          of WORLDREGION)
                                                                       (SETQ HEIGHT
                                                                        (fetch (REGION HEIGHT)
                                                                           of GREG]
          (replace (GLOBALPART MINSCALE) of GMAPELT with (IMIN (QUOTIENT SCALE 
                                                                         DEFAULT.VISIBLE.SCALE.FACTOR
                                                                                  )
                                                                           (FQUOTIENT (IMIN WIDTH 
                                                                                            HEIGHT)
                                                                                  2000.0)))
          (replace (GLOBALPART MAXSCALE) of GMAPELT with (MAX (FQUOTIENT (MAX WIDTH 
                                                                                          HEIGHT)
                                                                                 3.0)
                                                                          (ITIMES SCALE 
                                                                         MINIMUM.VISIBLE.SCALE.FACTOR
                                                                                 )))
          (RETURN GMAPELT])

(WORLDREGION
  [LAMBDA (GLOBALREGION)                                     (* Feuerman "18-Mar-85 10:17")
    (PROG (REGION)
          (COND
             ((AND (BOUNDP 'WORLDWINDOW)
                   WORLDWINDOW)
              (OPENW WORLDWINDOW))
             (T (SETQ WORLDWINDOW (CREATEW (CREATEREGION 50 50 (WIDTHIFWINDOW 640)
                                                  (HEIGHTIFWINDOW 320 T))
                                         "Sweep out the region of the world to display"))
                (BITBLT WORLDBITMAP NIL NIL WORLDWINDOW)))
          (SETQ REGION (GETREGION))
          (CLOSEW WORLDWINDOW)
          (RETURN (CREATEREGION (ITIMES [IDIFFERENCE (fetch LEFT of REGION)
                                               (fetch LEFT of (WINDOWPROP WORLDWINDOW
                                                                             'REGION]
                                       1630)
                         (ITIMES [IDIFFERENCE (fetch BOTTOM of REGION)
                                        (fetch BOTTOM of (WINDOWPROP WORLDWINDOW 'REGION]
                                3256)
                         (ITIMES (fetch WIDTH of REGION)
                                1630)
                         (ITIMES (fetch HEIGHT of REGION)
                                3256])

(SK.MAP.INSIDEFN
  [LAMBDA (GMAP WREG)                                        (* rrb "23-Jan-84 13:00")
                                                             (* determines if the global BOX GMAP 
                                                             is inside of WREG.)
    (REGIONSINTERSECTP (fetch (MAP MAPSKETCHREGION) of (fetch (GLOBALPART 
                                                                                 INDIVIDUALGLOBALPART
                                                                                 ) of GMAP))
           WREG])

(SK.MAP.MOVEFN
  [LAMBDA (MAPELT SELPOS NEWPOS WINDOW)                      (* rrb " 9-Oct-86 17:43")
                                                             (* returns a curve element which has 
                                                             the box corner SELPOS moved to NEWPOS.)

         (* moves the global region which indicates where the map is displayed but does 
         not affect the part of the world seen. The part of the world seen can be changed 
         by zooming the map.)

    (PROG ((GMAPELT (fetch (SCREENELT INDIVIDUALGLOBALPART) of MAPELT))
           (GNEWPOS (UNSCALE.POSITION.FROM.SKETCHW NEWPOS WINDOW))
           OLDGLOBALREGION NEWX NEWY OLDLEFT OLDBOTTOM)
          (SETQ OLDGLOBALREGION (fetch (MAP MAPSKETCHREGION) of GMAPELT))
          (SETQ NEWX (fetch (POSITION XCOORD) of GNEWPOS))
          (SETQ NEWY (fetch (POSITION YCOORD) of GNEWPOS))
          (SETQ OLDLEFT (fetch (REGION LEFT) of OLDGLOBALREGION))
          (SETQ OLDBOTTOM (fetch (REGION BOTTOM) of OLDGLOBALREGION))
          [replace (MAP MAPSKETCHREGION) of GMAPELT
             with (COND
                         [(EQ SELPOS (fetch (LOCALMAP MAPLL) of (fetch (SCREENELT 
                                                                                          LOCALPART)
                                                                           of MAPELT)))
                                                             (* lower left point is moving.)
                          (CREATEREGION NEWX NEWY (IPLUS (DIFFERENCE OLDLEFT NEWX)
                                                         (fetch (REGION WIDTH) of 
                                                                                      OLDGLOBALREGION
                                                                ))
                                 (IPLUS (DIFFERENCE OLDBOTTOM NEWY)
                                        (fetch (REGION HEIGHT) of OLDGLOBALREGION]
                         (T                                  (* upper left corner is moving.)
                            (CREATEREGION OLDLEFT OLDBOTTOM (DIFFERENCE NEWX OLDLEFT)
                                   (DIFFERENCE NEWY OLDBOTTOM]
                                                             (* update the scale at which the curve 
                                                             is visible.)
          (RETURN (MAP.SET.SCALES (fetch (SCREENELT GLOBALPART) of MAPELT)
                         (VIEWER.SCALE WINDOW])

(UNSCALE.POSITION.FROM.SKETCHW
  [LAMBDA (POS VIEWER)                                       (* transforms a position from viewer 
                                                             coordinates into sketch coordinates.)
    (create POSITION
           XCOORD ← (TIMES (fetch (POSITION XCOORD) of POS)
                           (VIEWER.SCALE VIEWER))
           YCOORD ← (TIMES (fetch (POSITION YCOORD) of POS)
                           (VIEWER.SCALE VIEWER])
)
(DEFINEQ

(CacheSpecsFromMapSketchElement
  [LAMBDA (MapSketchElement SketchViewer)                    (* fgh%: "25-Aug-86 20:14")
    (fetch (LOCALMAP MAPLOCALCACHESPECS) of (fetch (SCREENELT LOCALPART)
                                                       of (SK.LOCAL.ELT.FROM.GLOBALPART 
                                                                     MapSketchElement SketchViewer])
)
(DECLARE%: EVAL@COMPILE 

(PUTPROPS BIN16 MACRO ((OFD)
                               (LOGOR (LLSH (BIN OFD)
                                            8)
                                      (BIN OFD))))

(PUTPROPS BIN20 MACRO ((DATASTREAM)
                               (LRSH (LOGOR (LLSH (BIN DATASTREAM)
                                                  24)
                                            (LLSH (BIN DATASTREAM)
                                                  16)
                                            (LLSH (BIN DATASTREAM)
                                                  8)
                                            (BIN DATASTREAM))
                                     12)))

(PUTPROPS MAPSCALE MACRO ((VALUE OFFSET SCALE SKWINDOW)
                                                             (* converts from a file value to a map 
                                                             coordinate.)
                                  (IDIFFERENCE (FIX (FQUOTIENT VALUE SCALE))
                                         OFFSET)))

(PUTPROPS ReadSigned16 MACRO [(S)
                                      (PROG ((us (BIN16 S)))
                                            (RETURN (COND
                                                       ((IGREATERP us 32767)
                                                             (* Make negative number)
                                                        (IDIFFERENCE us 65536))
                                                       (T us])
)
(DECLARE%: EVAL@COMPILE

(TYPERECORD MAP (WORLDREGION MAPSKETCHREGION LATITUDESCALE LONGITUDESCALE MAPBORDER MAPRESOLUTION
                           )

         (* WORLDREGION is the part of the world in adjusted latitude longitude 
         coordinates. MAPSKETCHREGION is the region on the sketch.
         LATITUDESCALE and LONGITUDESCALE are the scale factors and are computed from the 
         WORLDREGION width and height compared to the MAPSKETCHREGION width and height.
         MAPBORDER is a number that gives the size of the border.
         MAPRESOLUTION is the maps resolution. For now values are hi or low.)

                    MAPBORDER ← 1)

(RECORD LOCALMAP ((MAPLL MAPUR)
                      MAPLOCALREGION MAPLOCALLONSCALE MAPLOCALLATSCALE MAPLOCALCACHESPECS))
)

(RPAQQ WORLDBITMAP #*(640 320)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOO@@@@@@@@@GN@@@@@@@OOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@@@@@OOH@ONAOOH@@@@@@@@AON@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GO@@@@@@@@@@GOO@AN@@@@@@@@@GOOOH@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AIH@F@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CMH@@@@@@@@@@OHH@@@@@@@@@@@@@@@GOOO@OL@@@@@@@@@@@@@@@@@@@@@@@OKNAOOGOO@@@@@@@@@@@@GAL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LBOOOOON@@@@OLG@@@@@@@@@@@@@@@@CO@@@N@@@@@@@@@@@COOON@@@@@@@COMHGOOON@@@@@@@@@@@@CL@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HA@AOMOOH@@@AOOL@@@@@@@@@@@@@@@@@@@@@G@@@@@@@@@GOOOH@@F@@@@@@@@@N@@@@@@@@@@@@@@@@@@AO@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ANAL@@OL@@@@ON@@F@@@@@@@@@@@@@@@@@@@@CH@@@@@@@@@D@@@OOOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@DOL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOOH@@B@@GL@@@A@@COH@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@C@@@OL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@COO@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CON@G@FGNC@AKN@@@A@OL@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@OLAIOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@COOL@COMOOLONOH@@CNAOH@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@A@BAHN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GOL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@COOOOH@N@B@OOH@H@@@F@@@O@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@ND@G@@@@@@@@@@@@@@@@@@@ON@@@@@@@@@@@@@@HGOOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CL@L@@F@G@@@GL@GN@@@N@@CL@@@@@@@@@@@@@@@@@@@@@GN@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@COO@F@@@@@@@@@@@CIOH@GHGN@@@@@@@@@@ALF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ALCOCOAIHGMONGOOOOOOOH@@@F@AOH@@@@@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL@OOH@@@@@@@@@AOLN@@@@@@A@@@@@@@@@@FCIO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OLOL@LHGIC@B@ALO@OOH@@@@CON@GL@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CN@G@@@@@@@@@@@ON@@@@@@@@@F@@@@@@@@@@D@@OCON@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOLHCLACLONGLH@O@@F@@@@@@@@@D@@@@@@@@@@@@@@@@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@OH@@@@@@@@@@C@@@@@@@@@@GH@@@@@@@@@@COO@@GL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL@CNOOO@@@@OLGL@AOL@@@@@@@@@CL@@@@@@@@@@@@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HA@@@@@@@@@@@@D@@@@@@@@@CIN@@@@@@@@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CNCN@C@@@@@FFAONCON@@@@@@@@@@@@D@@@@@@@@@@@@@@@OH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@F@@@@@F@@@COON@@@@@@@@CMOOOO@AOO@@@@@COH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@AO@@@CO@IIB@AIOOOOOH@@@@@@@@B@@@@@@@@@@@@@@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DAH@@@@AKAH@A@@@@@@@@@@@GN@@@AOOH@N@@@@AOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@GOLONDFGLCI@BBCHAGOL@@@@@@@@B@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LB@@@@@B@LNOMN@@@@@@@@@@@@@@@@@@@@AH@@@GOOON@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@AN@C@AHHCH@EGLLAH@OOOL@@@@@@@B@@@@@@@@@@@@@CM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@B@@@@@D@KMOCC@@@@@@@@@@@@@@@@@@@@B@H@@D@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@CH@@@@@D@F@MD@HAH@H@@F@@@@@@@AB@@@@@@@@@@@@AO@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@ALB@@@@CLADGN@L@@@@@@@@@@@@@@@@@@@@A@OOON@@@@OH@@@@@@@@@@@GO@@@@@@@@@L@@@@@@@@@@@@@CCLN@@@@@B@AOBB@F@L@@@@AO@@@@@@CM@@@@@@@@@@@@NA@@@@@@@@@@@@@@@@@GNMOH@@@@@@@@@COL@@@B@@K@C@@@@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@OOOL@@@@@@@@OH@@@@@@@AOCOH@@@@@@@@@@H@L@COL@@@CH@@DALA@@@@@@@@L@@@@@@GL@@@@@@@@@@@MA@@@@@@@@@@@@@@@AOH@BGN@@@@@@@@@@@AO@@A@@I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@F@@@@@@@@@@@CN@@@GOOCL@@@@AHN@@@@OO@@@@GL@H@F@OO@@F@@@C@@@@@@HF@@@@@@@@@@AOO@@@@@@@@@@@@@@@F@@@@AOL@@@@@@B@@@@NO@CH@J@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GOOLOEOON@@@@@@@@D@@@@@@@LCO@CMNGAFGN@D@@@C@ALCG@N@@OOOIH@@@L@@@@@IN@@@@@@@@@@@@L@@@@@@@@@@@@@@OL@@@@@@GOH@@@@EHC@AIHOHD@IN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CGB@@AN@@@@@@OL@@@@@@@@@@ODB@@@KHAOOL@CLLOALLLAF@HGH@G@@@N@@@@@FA@@@@@@@@@@@O@@@@@@@@@@@@@@ANH@@@@@@@@F@AOHFCMGNO@@GJ@FH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL@@@AL@@@@A@@@@@@@@@@@@@L@@@@@@@@AKOMOO@@FNH@IHHAH@DL@@H@@@@@AN@@@@@@@@@CO@@@@@@@@@@@@@@@GO@@@@@@@@@AN@LFGL@H@D@@@D@DH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CL@@@AL@@@@@@@@@@@@@@@@@@@@@CLOKH@L@DK@@AKHB@@OC@@GL@@@@B@@@@@@@@@OL@@@@@@@@@@@@@@@@AH@@@@@@@@@@AHGHH@@@@@@@@@@MH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@C@@@@@@@@@@@@@@@@@@@@@@C@G@@COHF@@@N@AHAGAH@@CL@@@B@@@@@@@@A@@@@@@@@@@@@@@@@@@B@@@@@@@@L@@@HGOH@@@@@@@@@CF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OL@@@L@@@@@@@@@@@@@@@@@AOH@@@@@@@@@@@@@@@AH@HC@@@@B@@@D@@@@@@@@B@@@@@@@@@@@@@@@@@@F@@@@@@@@GOLOGN@@@@@@@@@@@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@B@AOC@@@@@@@@@@@@@@@@CNGN@@@@@@@@@@@@@CON@@@L@@F@AH@@B@@@@@@@AL@@@@N@DOH@@@@@@@@@H@@@CN@@@AHCCH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CI@@AHNAN@@@@@@@@@@@@@@@@FGON@@@@@@@@@@@@@AN@@@@F@@EHF@@@B@@@@@@ON@@@@@MOK@H@@@@@@@@A@@@@LA@@@@HNF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CFL@N@G@@@@@@@@@@@@@@@@@@@EG@@@@@@@@@@@@@@CAH@GOH@@BDH@@@AH@@@@O@@@@@@AOH@@F@@@@@@@@B@@@ALC@@@@IAO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GL@GAH@COCH@@@@@@@@@@@@@@@@OL@@@@@@@@@@@@@@O@G@DF@@@AO@@@@@D@@@@F@@@@@@AN@@@F@@@@@@@@L@@@AAL@@@@GN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@O@@@@LL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OC@LHCIO@@@D@@@@@F@@@@D@@@@@@@C@@GH@@@@@@@G@@@@OF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@GN@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@GKCN@@@LCHC@@@@@B@@@@D@@@@@@@GOOH@@@@@@@CH@@@C@H@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@H@CL@@@@@@@@@@@@@@@@@@@@@@CH@@@@@@@C@@L@@@@@CHON@@@@@AH@@AH@@@@@@@@@@@@@@@@@@D@@@@D@H@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N@@@@AOL@@@@@@D@@@@@@@@@@@@@@@@@@@@@CLGN@@@@@@@L@@@OCKON@FG@@@@@@@H@@B@@@@@@@@@@@@@@@G@@CH@@@@D@H@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GNAD@@@CN@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@AOL@@@@@@@CH@@@HCB@AHAO@@@@@@@D@@A@@@@@@@@@@@@@@@F@@C@@@@@H@D@@@OHM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AHBFD@@@D@@@@@@@@A@@@@@@CH@@@@@@@@@@@@@ANGH@@@@@@@B@@@@@AC@@D@@@@@@@@@B@@B@@@@@@@@@@@@@@@@@@A@@@@@D@H@CLLDG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@CKH@LCH@@@@@@@@@L@@@@@OAO@@@@@@@@@@@@@OL@@@@@@@@L@@@@@@B@@CL@@@@@@@@AOHD@@@@@@@@@@@@@@@@@@A@@@@@C@GOLCEL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@DEOCL@@@@@@@@@GJB@@@ALA@ON@@@@@@@@@@@@@@@@@@@@@H@@@@@@A@@@D@F@@@@@@@@DL@@@@@@@@@@@@@@@@@@AH@@@@A@@CHEJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CNA@@AHJD@D@@@@@@@@@CAM@@@BEN@@AO@@@@@@@@@@@@@F@@@@@@H@@@@@@A@@@D@I@@@@@@@@C@@@@@@@@@@@@@@@@@@@ALAL@@G@BLGH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GOONCOL@BAN@@@@@@@@@@@@@@AO@@FF@@@@AH@@@@@@@@@@@AOL@@@@@H@@@@@@F@@@D@LH@@@@@@@@@@@@@@@@@@@@@@@@@@@@HBB@@H@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@C@@@LBH@@@@@@@@@@@@@@A@O@EH@@@@@GA@@@@@@@@@@CH@@@@@@O@@@@@@F@@@CG@D@@@@@@@@@@@@@@@@@@@@@@@@AC@@GLA@@IHFD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@C@E@@@@@@@@@@@@@@@@@BCKH@@@@@@KH@@@@@@@@@@@@@B@@@A@@@@@@A@@@@H@B@@@@@@@@@@@@@@@@@@@@@@@@CD@@@AI@AK@GD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@L@CH@@@@@@@@@@@@@@@@FEOH@@@@@@GN@@@@@@@@@@@@@G@@@AJ@@@@@AH@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@EI@@@NHHABAIH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@AH@A@@@@@@@@@@@@@@@@AKHN@@@@@@@AO@@@@@@@@@@@@@F@@@@MN@@@@@H@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@AL@@@HLLN@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@B@@FH@@@@@@@@@@@@@@@BD@@@@@@@@@AEH@@@@@@@@@@@@F@@@@@AH@@CHH@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@L@@@HOM@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@AL@@@@@@@B@@E@@@@@@@@@@@@@@@COH@@@@@@@@@@GH@@@@@@@@@@@@@@@@@@@G@@CIH@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@N@@@GOO@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@BF@@@@@@@B@@D@@@@@@@@@@@@@@CO@@@@@@@@@@@@CN@@@@@@@@@@@@@@@@@@@@ON@F@@@@@@@CH@@@@@@@@@@@@@@@@@@@@@@OF@@@GOFAOF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@GL@@@@@@@B@AN@@@@@@@@@@@@@@G@@@@@@@@@@@@@@IH@@@@@@@@@@@@@@@@@@@@BAH@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@AHK@@@FGONAH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M@@@@@@@@@@@@NNC@@@@@B@B@@@@@@@@@@@@@@FD@@@@@@@@@@@@@CMH@@@@@@@@@@@@@@@@@@@@B@H@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@OAH@@OL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AB@@@@@@@@@@@@OCG@@@@@A@B@@@@@@@@@@@@@CN@@@@@@@@@@@@@@AI@@@@@@@@@@@@@AN@@@@@@B@H@@@@@@@@AL@@@@@@@@@@@@@@@@@@@@LAAHCH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BD@@@@@@@@@@@@@@LH@@@@AAN@@@@@N@@@@@@@G@@@@@@@@@@@@@@@@LL@@@@@@@@@@@@OJ@@@@@@CHH@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@F@KDCH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GH@@@@@@@@@@@@@@LH@@@@AA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FC@@@@@@@@@@@@GE@@@@@@ADH@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@DAAHD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GL@@@@@@@@@@@@@@@M@@@@@AJ@@@@@@@@@@AL@@@@@@@@@@@@@@@@@@@BA@@@@@@@@@@@@BOH@@@@@@ML@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@LOGIH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@ADH@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@AIL@@@@@@F@@@@@@@@@GN@@@@@@@@@@@@@@@@@@@@G@CF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ABH@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AO@@@@@@@@@@@@LL@@@@@@C@@@@@@@@@IL@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AFL@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KL@@@@@@@@@@@NL@@@@@@@@@@@@COOOBD@@@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ABD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GGH@@@@@@@@@@@@@@@@@@@@@@@@DCO@BJL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BEN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOL@@@@@@@@@@@@@@@H@@@@@@@AOOO@DAF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GN@@@@@@@@@@@@@@CF@@@@@@@CHA@@L@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CN@@@@@@@@@@@@@@LAL@@@@@@NAN@AH@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CH@@@@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BF@@@@@@@@@@@@@CAHF@@@@@AL@L@@ONO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@COH@@@AHD@@AL@@@@@OKH@@@@@@@@@@@@@@@@@@@@@@@@@A@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@OOIN@@@@@C@@E@D@CG@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@GDDB@@@AF@B@@GH@@@@COO@@@@@@@@@@@@@@@@@@@@@@@@@@C@GH@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@A@FGO@@@@@@@COL@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@G@@@@@AHNHB@@@AH@A@AM@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@D@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@COGL@@@@@@FOO@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@EN@@@@A@NGL@@@B@CO@C@L@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@F@AL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@LLIB@@@@@COCH@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@DJ@@@@C@CLF@@@B@N@@B@H@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@E@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@M@IO@@@@BNML@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@GLFB@@@@D@B@AH@@B@L@@A@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@DO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@FAM@OL@@GAF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAHDCAL@@@L@@@@D@@A@B@@AO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@HAH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@JAEAFL@@HAH@@@@@@@@@@@@@@@@@@@@@@@@@@G@@LN@B@HB@@@H@@@@CH@A@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AKH@CHG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@I@BCI@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@HG@AHHAH@A@@@@@@H@@H@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FD@@GNH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@I@AOH@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@LF@@DGHF@@HAON@@L@@L@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@CIH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@F@OL@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@C@B@@GALB@@GN@ALKH@@B@E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@F@@@CO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@D@M@@@LGB@OOOH@GD@@@C@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL@@C@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@OL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HAH@E@@@CGKAFCO@@@@@@@AHN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CF@@N@@@@BD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HBH@E@@@AFI@HC@@@@@@@@B@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LKOI@@@@@BD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@FD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HC@@G@@@@N@HDA@@@@@@@@F@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@CHFAAH@@@@BD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@OH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@C@@@@@BADDOJC@@@@@@@@B@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@HA@D@@@@DL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AHB@@@@OLAHK@OAH@@@@@@@B@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@AI@BLB@@@@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HL@@@AND@@K@B@H@@@@@@@CHA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JNABB@@@O@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O@COOOCL@@O@@@NC@GH@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EN@FA@@@LA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@J@L@@@B@@@C@AHANMI@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@BA@@A@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@@C@@@@L@H@@JAH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@BA@GO@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@A@@@@OL@@O@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@DF@H@IN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@N@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@EHCCNNH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@B@GOMH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL@@@@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@G@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@AKOJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N@@@@@@OH@@G@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@AML@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@G@AHL@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@A@A@CL@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@J@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HL@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@ANA@@KNGOL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EO@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@AI@@@AHD@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DI@@@@@@@@@@JI@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@F@@@@H@@@@@@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FI@@@@@@@@@AOOK@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@LD@@@@@LH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CLH@@@@@@@CNL@DHH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@LL@@@@@HD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LH@@@@@@ALCN@@DD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@D@@@@@@@@@@@@@@@FH@@@@@DB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OD@@@@@@N@@@@@DD@@@@@@@@@@@@@@@@@@@@@@@@@@@@LD@AH@@@@@@@@@@@@@@@GL@@@@@BCH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AMC@@@@@AH@@@@@FD@@@@@@@@@@@@@@@@@@@@@@@@@@@@OD@N@@@@@@@@@@@@@@@@BF@@@@@B@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HI@@@@@A@@@@@@BB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@AA@@@@@AHGGH@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FDL@@@@A@@@@@@BBO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@AA@@@@@@J@ID@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AND@@@@A@@@@@@ABO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@HH@@@@@N@CGH@DD@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JF@@@@A@@@@@@AJA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@HH@@@@@E@E@GOOJ@@@@@@@@@@@@@@@@@@@@@@@HL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JA@@@@A@@@@@@@LF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@DD@@@@@B@IH@@@A@@@@@@@@@@@@@@@@@@@@@@CAD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M@H@@@B@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@BC@@@@@CO@F@@@AH@@@@@@@@@@@@@@@@@@@@@BAD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CLD@@@B@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@FA@@@@@@@@CH@@@D@@@@@@@@@@@@@@@@@@@@@LBH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LB@@@B@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@B@H@@@@@@@@L@@@GH@@@@@@@@B@@@@@@@@@BO@BH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HA@@@B@@@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@AHH@@@@@@@@D@@@CHH@@@@@@HE@@@@@@@@@G@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@H@@B@@@@@COAL@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@HH@@@@@@@@D@@@B@H@@@@@AOI@@@@@@@FAL@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CF@@@@@@@@@@@@@@@@@@@@@@@H@@C@@@@HGFOK@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@LH@@@@@@@@H@@@AIH@@@@@BDAH@@@@@AIF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FD@@@@@@@@@@@@@@@@@@@@@@D@@A@@@OF@D@LNC@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@DL@@@@@@@C@@@@@GD@@@@@B@@H@@@@@BAL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@L@@AH@A@F@@@CCB@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@HF@@@@@@@B@@@@@@D@@@@@F@@F@@@@@LAN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@@H@@@H@A@D@@@ALOH@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@DA@@@@@@@B@@@@@@H@@@@AH@@B@@@@@HFF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E@@@@@@@@@@@@@@@@@@@@@@D@@@D@A@D@@@CKCGN@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@DA@@@@@@@N@@@@@@D@@@@B@@@C@@@@@HDD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@C@@@F@C@D@@@@@A@F@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@F@H@@@@@@H@@@@@@D@@@@F@@@@H@@@@HCH@@@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@AONAH@@@GLOKOGH@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@A@D@@@@@G@@@@@@@D@@@@H@@@@H@@@@D@@@@@AB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@@@AH@@@CLEFAGH@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@AHD@@@@@D@@@@@@@D@@@C@@@@@H@@@@B@@@@@CB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@A@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@HB@@@@GH@@@@@@@B@@@B@@@@@HL@@@AH@@@@BB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CH@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@HA@@@@H@@@@@@@@B@@@L@@@@ACD@@@@H@@@@FD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GAH@C@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@DB@@@AH@@@@@@@@B@@C@@@@@@NB@@@@D@@@@BD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NF@AOO@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@BA@@@N@@@@@@@@@A@@B@@@@@@@B@@@@B@@@@BH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@AH@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@AI@@C@@@@@@@@@@@H@B@@@@@@@B@@@@B@@@@CL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@H@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@G@@@@@@@@@@@@I@@N@@@@@@@@@@@H@B@@@@@@@B@@@@B@@@@AGL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@CL@@@@@@@@@@@G@O@@@@@@@@@@@@H@B@@@@@@@AC@@@B@@@@AKL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OH@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@CL@@@@@@@@@@@AO@@@B@@@@@@@@@H@B@@@@@@@ACL@@B@@@@AEL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@A@@@@@@@@@@@@A@@@@CH@@@@@@@@D@B@@@@@@@ABB@@B@@@@ALCH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@H@@@@FH@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@AH@@N@@@@@@@@@@F@D@@@@@@@ADA@@B@@@@@GCH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@H@@@ANL@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@AHAOB@@@@@@@@@@B@D@@@@@@@ADA@@F@@@@DCGH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@I@@@AGGC@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@EN@D@@@@@@@@@@B@D@@@@@@@AD@LCH@@@@LGO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HH@@CHFAOAOH@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@B@@D@@@@@@@@@@A@N@@@@@@@AH@CB@@@@@HAG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LH@@B@F@ANEH@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@A@K@@@@@@@AL@BL@@@@C@CNL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GFCLF@F@@@CH@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@ACC@@@@@@@AF@BH@@@@F@AAL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KOJD@F@@@@D@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@NDH@@@@@@AB@A@@@@@D@AND@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ANGEH@@@@@@O@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@DDL@@@@@@AJ@@@@@@@@@CLB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ALDH@@@@@@@L@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@DD@@@@@@@E@@@@@@@@@GLJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FD@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@F@@@@F@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@BD@@@@@@@GH@@@@@@L@BEL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@A@@@GIH@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@CH@@@@@@@BF@@@@@AB@@GL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@AC@@@@@@@@@@@@@@@@@@@@@L@CL@H@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@F@BA@@@@@AAH@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@LN@@@@@@@@@@@@@@@@@@@@B@N@@H@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@ENB@H@@@@NAH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@AH@@@GO@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@CAA@H@@@A@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@G@@@DAH@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@II@H@@@C@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@F@H@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@DFHH@@@D@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@BBHL@@CH@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@CAND@AB@@B@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@DHGD@BN@@A@@CAL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@FHAL@B@@@AINOAL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@BHAH@B@@@CCONAL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@B@H@@@@@@@AO@@@A@@@@@@@@@@@@@@@@@@@@@@@@@D@D@B@@@DF@@AHL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@B@@@@@@@@@@@@CJ@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@AA@@@B@@@@@@@@@@@@@@@@@@@@@@@@@B@L@C@@@DFC@@HGOF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@@D@@@@@@@@@@@@CEL@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@AA@@@D@@@@@@@@@@@@@@@@@@@@@@@@AI@F@@H@@LEOHADFAC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@D@@@@@@@@@@@@CAKH@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@AB@@@H@@@@@@@@@@@@@@@@@@@@@@@@@M@BL@H@A@DF@ALCA@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@AA@F@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@AN@@BH@@@@@@@@@@@@@@@@@@@@@@@@@A@AL@H@@HLL@@@AO@HO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@BH@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@AF@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@H@NLO@A@KJ@@GMNK@@L@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@CGN@@@@@@@@@@@@@@@@@@@@L@@@@@@@B@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@F@HHAOI@MB@FODFF@@CH@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@F@@@@@@@C@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@B@H@@@N@EN@G@LGH@@@F@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@B@@@@@@@C@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@A@H@@@@@EG@@@@@G@@@AH@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@A@@@@@@@C@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@LH@@@@@FG@@@@@@N@@@H@CL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@AO@@@@@@@@@@@@@@@@@@A@@@@@@@BH@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@CH@@@@@GC@@@@@HA@@@LGM@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@H@@@@@@C@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OLD@@@@@@@@@AHA@@@CKN@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@H@@@@@@AL@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LGOH@@@@@@@@AHA@@@CH@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@D@@@@@@AH@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@G@@@@@@@C@@AH@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@D@@@@@@@D@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OLGL@@@@N@C@@BB@GLL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@D@@@@@@@L@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@COKOOMKO@@@@CN@HDD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@B@@@@@@@F@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EOKNAN@@@@@AMHBG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@D@@@@@@@@A@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O@OH@@@@@@B@CCH@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@B@@@@@@@@AH@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O@N@@@@@@@@@@OL@@@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@B@@@@@@@@AH@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@AL@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@A@@@@@@@@AH@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@J@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@B@@@@@@@@@L@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MN@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@B@@@@@@@@AH@B@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CINH@E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@F@@@@@@@@AH@B@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@AH@DH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@H@@@@@@@@AH@A@@@M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@AH@DH@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@L@A@@@HH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAH@A@@DH@@@@@@@@@@@@@@@@@@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@D@A@@A@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ANI@@C@@DG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@A@@C@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@GH@B@@DA@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@B@@LAH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@A@@DA@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@F@C@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@N@D@H@@@@@@@@A@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@H@D@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AJ@@@@@C@H@H@@@@@@@@AH@@@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@GH@D@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BL@@@@@@LH@L@@@@@@@@@@@@@C@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@H@@D@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@C@@D@@@@@@@@@@@@@DH@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@H@@D@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@D@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@C@@@D@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@D@@@B@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@H@@@B@D@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@L@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@L@@@D@D@@@F@@@@@@@@@@@@@@@@@@@@@@@@@AOH@@@@@@@@@@@@B@@@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@D@@@L@L@@F@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@C@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@D@@A@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN@@@@@@@@@@@@@@A@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@D@@A@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@AL@@@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@D@@@H@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@CO@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@D@@@HA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@D@@@HA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@CL@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@L@@@HA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@CH@@@DN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@F@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@GOL@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@OH@C@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@G@@@AHB@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@D@@@@LF@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@GML@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@GOH@@@@DL@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@D@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOLB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BAL@@@@@@CG@@@@@B@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@GJL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AO@@@@@@@BO@@@@@D@@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@CE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OL@@@@H@@@@@@@@@BH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LD@@@@H@@@@@@@@@AL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@H@@@@@@@@@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@H@@@@@@@@@@OB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CHA@O@@@@@@@@@@@EO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OGK@@@@@@@@@@@@HA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HD@@@@@@@@@@@AHF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@CO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AHL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AHH@@@@@@@@@@ME@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@BB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AGD@@@@@@@@@@KO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@GL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@D@@@@@@@@@AHL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GH@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@L@@@@@@@@@BC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GH@@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IH@@@@@@@@@FB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@AHD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FAL@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@K@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AJ@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CMH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CL@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CH@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@AH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL@B@@@GN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@B@@@OF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL@O@@@EH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NGO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GMLH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CNHF@@@@@@@@@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@AL@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@COOL@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AKOG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CODI@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AMH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOL@@@@@@@@@@@@@@@@@@@@CL@@COH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F@CL@@@@@@@@@@@@@@A@LICLCN@D@GH@FAGHOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@AN@@@@@@@@@@@COONOCFL@@AOH@@GOINHFH@@@OON@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@COKH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GNL@@AOOO@C@@@@@CL@@@@@@@@@@@@@@@@@@@A@@@@@@CL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DMD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GOHA@@@@@@@OM@@@@OL@@@@@@@@@@@@@@@@@@@@@@@@@@@@CB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CFN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@AH@@@@@@@@@@@@H@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MOOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BGH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BN@F@@@@@@@@@@@@AL@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GHF@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OONAOL@@@@@@@@@@@@AAOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ANDEL@B@@@@@@@@@@@@@@@@@@@@@@@@@@@GOOOOOOOLGO@@@@A@@@@@@@@@@@@@AG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BDBEH@A@@@@@@@@@@@@@@@@@@@@@@@@@@GH@@@@@@@CH@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NOOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GOOCD@AH@@@@@@@@@@@@@@@@@@@@@@LGHH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OL@AD@@L@@@@@@@@@@@@@@@@@@@@@OCDO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OON@@@@@@@@G@@AB@A@@@@@@@@@@@@@@@@@@@@@@FAL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AKLCN@@@@@@CLOONB@@L@@@@@@@@@@@@@@@@@@@@AN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN@@@@@@@@COCLAOOOOOOLCLAOL@@C@@@@@@@@@@@@@@@@@@@ON@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IKOH@L@@@AOML@@@@@@@@@ON@@@@N@@@@@@@@@@@@@@@@@AO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GHFCLADGH@@L@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GH@@@@@@@@@@@@@@@@@@@@@@@@@GO@@@H@@C@@JG@GOK@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@@@@@@COH@O@A@@@@OOIOOH@F@@@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@COOL@@@@ON@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@AL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@OM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOH@@@@@@@@@@@@@@CN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HC@@@@@@@@@@@@@@@OOL@CA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GOOO@@@@@@@@@@@@OL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HGO@@@@@@@@@@@@@@D@CHCO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO@@@@@@@@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@@COHGL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ON@@@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOL@@@@@@@@@@@@AO@COH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOOOOOOL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C@@@@@@@@@@@@@@@ALL@GL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@AHF@@CL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@GH@@@COL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@COOH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@@@@@@@OL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N@@@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOO@@@@@@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OL@@@@@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@COOOOL@@@@@OOL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@COOON@@CO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AOOL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
)
(DECLARE%: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS DEFAULT.MAP.FILE MAPFILESDIRECTORIES)
)
(DEFINEQ

(MAP.SetUpDirectories
  (LAMBDA NIL                                                (* fgh%: "27-Sep-85 18:12")
          
          (* * Set up the maps directories globalvars)

    (LET (ThisDirectory StrPtr MapsBaseDirectory ReturnValue)
          
          (* * Get the directory for the file now being loaded)

         (SETQ ThisDirectory (PACK* '{ (FILENAMEFIELD (FULLNAME (INPUT))
                                              'HOST)
                                    '}
                                    '<
                                    (FILENAMEFIELD (FULLNAME (INPUT))
                                           'DIRECTORY)
                                    '>))
          
          (* * Find the directory path up to the first subdirectory called Maps)

         (COND
            ((SETQ StrPtr (STRPOS "MAPS>" (U-CASE ThisDirectory)
                                 NIL NIL NIL T))
             (SETQ MapsBaseDirectory (SUBATOM ThisDirectory 1 (SUB1 StrPtr)))))
          
          (* * Create the directory search list based on the MapsBaseDirectory)

         (SETQ ReturnValue (COND
                              (MapsBaseDirectory (LIST (PACK* MapsBaseDirectory "NEW>")
                                                       MapsBaseDirectory ThisDirectory))
                              (T (LIST ThisDirectory))))
         (INTERSECTION ReturnValue ReturnValue))))
)

(RPAQ? DEFAULT.MAP.FILE 'MENU)

(RPAQ? World5File 'WORLD5.MAPDATA)

(RPAQ? GlobalWorldFile 'WORLD0.MAPDATA)

(RPAQ? MAPFILESDIRECTORIES (MAP.SetUpDirectories))

(FILESLOAD QUADFUNS PROPORTION)

(SK.ADD.MAP.TYPE)
(PUTPROPS NEWMAP COPYRIGHT ("Xerox Corporation" 1984 1985 1986 1987 1988))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (2476 16072 (COMPUTE.NEW.WORLD.REGION 2486 . 4542) (FetchCachedBitMap 4544 . 4992) (
SELECTMAPFILE 4994 . 5605) (SK.ADD.MAP.TYPE 5607 . 6620) (SK.MAP.CHANGEFN 6622 . 7055) (
SK.MAP.REGIONFN 7057 . 7319) (SK.MAP.GLOBALREGIONFN 7321 . 7689) (SK.MAP.TRANSFORMFN 7691 . 9306) (
SK.MAP.TRANSLATEFN 9308 . 10735) (SK.MAP.TRANSLATEPTSFN 10737 . 14040) (SetCachedBitMap 14042 . 14517)
 (GETMAPFILES2 14519 . 15066) (MAP.CHANGE.WORLDREGION 15068 . 15706) (UNSCALE.REGION.FROM.SKETCHW 
15708 . 16070)) (16073 34032 (SK.MAP.DRAWFN 16083 . 25843) (DRAW.MAP 25845 . 30146) (PLOTSEGMENT 30148
 . 33588) (DRAWBORDER 33590 . 34030)) (34033 47667 (SK.MAP.EXPANDFN 34043 . 36461) (SK.MAP.INPUTFN 
36463 . 39508) (MAP.SET.SCALES 39510 . 42601) (WORLDREGION 42603 . 43959) (SK.MAP.INSIDEFN 43961 . 
44552) (SK.MAP.MOVEFN 44554 . 47170) (UNSCALE.POSITION.FROM.SKETCHW 47172 . 47665)) (47668 48083 (
CacheSpecsFromMapSketchElement 47678 . 48081)) (101770 103183 (MAP.SetUpDirectories 101780 . 103181)))
))
STOP