debian/0000755000000000000000000000000012274671166007202 5ustar debian/hoogle.manpages0000644000000000000000000000004712036250246012161 0ustar debian/hoogle.1 debian/update-hoogle.8 debian/watch0000644000000000000000000000017412224036526010223 0ustar version=3 http://hackage.haskell.org/package/hoogle/distro-monitor .*-([0-9\.]+).(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) debian/hoogle.postrm0000644000000000000000000000163212036250246011713 0ustar #!/bin/sh ## ---------------------------------------------------------------------- ## debian/postrm : postremoval script for hoogle ## ---------------------------------------------------------------------- ## ---------------------------------------------------------------------- set -e ## ---------------------------------------------------------------------- if [ "$1" = "purge" ] then ## ------------------------------------------------------------------ ## remove /var/lib/hoogle [ -d /var/lib/hoogle/databases ] && rm -rf /var/lib/hoogle/databases fi ## ---------------------------------------------------------------------- # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# ## ---------------------------------------------------------------------- exit 0 ## ---------------------------------------------------------------------- debian/files_hoogle/0000755000000000000000000000000012236463715011636 5ustar debian/files_hoogle/keyword.txt0000644000000000000000000023047212202120663014054 0ustar Keywords - HaskellWiki
Personal tools

Keywords

From HaskellWiki

Jump to: navigation, search

This page lists all Haskell keywords, feel free to edit. Hoogle searches will return results from this page. Please respect the Anchor macros.

For additional information you might want to look at the Haskell 2010 report.

Contents

1  !

Whenever a data constructor is applied, each argument to the constructor is evaluated if and only if the corresponding type in the algebraic datatype declaration has a strictness flag, denoted by an exclamation point. For example:

data STList a 
         = STCons a !(STList a)  -- the second argument to STCons will be 
                                 -- evaluated before STCons is applied
         | STNil

to illustrate the difference between strict versus lazy constructor application, consider the following:

stList = STCons 1 undefined
 lzList = (:)    1 undefined
 stHead (STCons h _) = h -- this evaluates to undefined when applied to stList
 lzHead (h : _)      = h -- this evaluates to 1 when applied to lzList

! is also used in the "bang patterns" (GHC extension), to indicate strictness in patterns:

f !x !y = x + y

2 '

  • Character literal:
    'a'
  • Template Haskell: Name of a (value) variable or data constructor:
    'length
    ,
    'Left
  • (in types, GHC specific) Promoted data constructor:
    'True

3 ''

  • Template Haskell: Name of a type constructor or class:
    ''Int
    ,
    ''Either
    ,
    ''Show

4 -

This operator token is magic/irregular in the sense that

(- 1)

is parsed as the negative integer -1, rather than as an operator section, as it would be for any other operator:

(* 1) :: Num a => a -> a
(++ "foo") :: String -> String
It is syntactic sugar for the
negate
function in Prelude. See unary operator. If you want the section, you can use the
subtract
function or
(+(-1))
.

5 --

Starts a single-line comment, unless immediately followed by an operator character other than
-
:
main = print "hello world" -- this is a comment
--this is a comment as well
---this too
foobar --+ this_is_the_second_argument_of_the_dash_dash_plus_operator
The multi-line variant for comments is
{- comment -}
.

6 -<

Arrow notation

7 -<<

Arrow notation


8 ->

  • The function type constructor:
length :: [a] -> Int
  • In lambda functions:
\x -> x + 1
  • To denote alternatives in case statements:
case Just 3 of
    Nothing -> False
    Just x  -> True
  • On the kind level (GHC specific):
ghci> :kind (->)
(->) :: * -> * -> *
-- This examples assumes that each type 'c' can "contain" only one type
--  i.e. type 'c' uniquely determines type 'elt'
class Contains c elt | c -> elt where
   ...

9  ::

Read as "has type":

length :: [a] -> Int

"Length has type list-of-'a' to Int"

Or "has kind" (GHC specific):

Either :: * -> * -> *

10  ;

  • Statement separator in an explicit block (see layout)

11 <-

  • In do-notation, "draw from":
do x <- getChar
   putChar x
  • In list comprehension generators, "is drawn from":
[ (x,y) | x <- [1..10], y <- ['a'..'z'] ]
f x y | Just z <- g x = True
      | otherwise     = False

12 =

Used in definitions.

x = 4

13 =>

Used to indicate instance contexts, for example:

sort :: Ord a => [a] -> [a]

14 >

In a Bird's style Literate Haskell file, the > character is used to introduce a code line.

comment line
 
> main = print "hello world"

15  ?

ghci> :t ?foo ++ "bar"
?foo ++ "bar" :: (?foo::[Char]) => [Char]

16 #

  • On the kind level: The kind of unboxed types (GHC-specific)
ghci> :m +GHC.Prim
ghci> :set -XMagicHash
ghci> :kind Int#
Int# :: #

17 *

  • Is an ordinary operator name on the value level
  • On the kind level: The kind of boxed types (GHC-specific)
ghci> :kind Int
Int :: *

18 @

Patterns of the form var@pat are called as-patterns, and allow one to use var as a name for the value being matched by pat. For example:

case e of { xs@(x:rest) -> if x==0 then rest else xs }

is equivalent to:

let { xs = e } in
   case xs of { (x:rest) -> if x==0 then rest else xs }

19 [|, |]

  • Template Haskell
    • Expression quotation:
      [| print 1 |]
    • Declaration quotation:
      [d| main = print 1 |]
    • Type quotation:
      [t| Either Int () |]
    • Pattern quotation:
      [p| (x,y) |]
    • Quasiquotation:
      [nameOfQuasiQuoter| ... |]

20 \

The backslash "\" is used

  • in multiline strings
"foo\
  \bar"
  • in lambda functions
\x -> x + 1


21 _

Patterns of the form _ are wildcards and are useful when some part of a pattern is not referenced on the right-hand-side. It is as if an identifier not used elsewhere were put in its place. For example,

case e of { [x,_,_]  ->  if x==0 then True else False }

is equivalent to:

case e of { [x,y,z]  ->  if x==0 then True else False }



22 `

A function enclosed in back ticks "`" can be used as an infix operator.

2 `subtract` 10

is the same as

subtract 2 10

23 {, }

  • Explicit block (disable layout), possibly with ";" .
  • Record update notation
changePrice :: Thing -> Price -> Thing
changePrice x new = x { price = new }
  • Comments (see below)

24 {-, -}

Everything between "{-" followed by a space and "-}" is a block comment.

{-
hello
world
-}

25 |

The "pipe" is used in several places

  • Data type definitions, "or"
data Maybe a = Just a | Nothing
  • List comprehensions, "where"
squares = [a*a | a <- [1..]]
  • Guards, "when"
safeTail x | null x    = []
           | otherwise = tail x
class Contains c elt | c -> elt where
   ...

26 ~

  • Lazy pattern bindings. Matching the pattern ~pat against a value always

succeeds, and matching will only diverge when one of the variables bound in the pattern is used.

f1, f2 :: Maybe Int -> String
f1 x = case x of 
    Just n -> "Got it"
f2 x = case x of
    ~(Just n) -> "Got it"
 
(+++), (++++) :: (a -> b) -> (c -> d) -> (a, c) -> (b, d) 
(f +++ g) ~(x, y) = (f x, g y)
(f ++++ g) (x, y) = (f x, g y)

Then we have:

f1 Nothing
Exception: Non-exhaustive patterns in case
 
f2 Nothing
"Got it"
 
(const 1 +++ const 2) undefined
(1,2)
 
(const 1 ++++ const 2) undefined
Exception: Prelude.undefined

For more details see the Haskell Wikibook.

  • Equality constraints. Assert that two types in a context must be the same:
example :: F a ~ b => a -> b

Here the type "F a" must be the same as the type "b", which allows one to constrain polymorphism (especially where type families are involved), but to a lesser extent than functional dependencies. See Type Families.

27 as

Renaming module imports. Like
qualified
and
hiding
,
as
is not a reserved word but may be used as function or variable name.
import qualified Data.Map as M
 
main = print (M.empty :: M.Map Int ())

28 case, of

A case expression has the general form

case e of { p1 match1 ; ... ; pn matchn }

where each matchi is of the general form

| g1 -> e1
  ...
| gm -> em
    where decls

Each alternative consists of patterns pi and their matches, matchi. Each matchi in turn consists of a sequence of pairs of guards gij and bodies eij (expressions), followed by optional bindings (declsi) that scope over all of the guards and expressions of the alternative. An alternative of the form

pat -> exp where decls

is treated as shorthand for:

pat | True -> exp
    where decls

A case expression must have at least one alternative and each alternative must have at least one body. Each body must have the same type, and the type of the whole expression is that type.

A case expression is evaluated by pattern matching the expression e against the individual alternatives. The alternatives are tried sequentially, from top to bottom. If e matches the pattern in the alternative, the guards for that alternative are tried sequentially from top to bottom, in the environment of the case expression extended first by the bindings created during the matching of the pattern, and then by the declsi  in the where clause associated with that alternative. If one of the guards evaluates to True, the corresponding right-hand side is evaluated in the same environment as the guard. If all the guards evaluate to False, matching continues with the next alternative. If no match succeeds, the result is _|_.

29 class

A class declaration introduces a new type class and the overloaded operations that must be supported by any type that is an instance of that class.

class Num a  where
    (+)    :: a -> a -> a
    negate :: a -> a

30 data

The data declaration is how one introduces new algebraic data types into Haskell. For example:

data Set a = NilSet 
           | ConsSet a (Set a)

Another example, to create a datatype to hold an abstract syntax tree for an expression, one could use:

data Exp = Ebin   Operator Exp Exp 
          | Eunary Operator Exp 
          | Efun   FunctionIdentifier [Exp] 
          | Eid    SimpleIdentifier

where the types Operator, FunctionIdentifier and SimpleIdentifier are defined elsewhere.

See the page on types for more information, links and examples.

31 data family

Declares a datatype family (see type families). GHC language extension.

32 data instance

Declares a datatype family instance (see type families). GHC language extension.


33 default

Ambiguities in the class Num are most common, so Haskell provides a way to resolve them---with a default declaration:

default (Int)

Only one default declaration is permitted per module, and its effect is limited to that module. If no default declaration is given in a module then it assumed to be:

default (Integer, Double)

34 deriving

data and newtype declarations contain an optional deriving form. If the form is included, then derived instance declarations are automatically generated for the datatype in each of the named classes.

Derived instances provide convenient commonly-used operations for user-defined datatypes. For example, derived instances for datatypes in the class Eq define the operations == and /=, freeing the programmer from the need to define them.

data T = A
       | B
       | C
       deriving (Eq, Ord, Show)

In the case of newtypes, GHC extends this mechanism to Cunning Newtype Deriving.

35 deriving instance

Standalone deriving (GHC language extension).

{-# LANGUAGE StandaloneDeriving #-}
data A = A
 
deriving instance Show A

36 do

Syntactic sugar for use with monadic expressions. For example:

do { x ; result <- y ; foo result }

is shorthand for:

x >> 
 y >>= \result ->
 foo result

37 forall

This is a GHC/Hugs extension, and as such is not portable Haskell 98/2010. It is only a reserved word within types.

Type variables in a Haskell type expression are all assumed to be universally quantified; there is no explicit syntax for universal quantification, in standard Haskell 98/2010. For example, the type expression

a -> a
denotes the type
forall a. a ->a
.

For clarity, however, we often write quantification explicitly when discussing the types of Haskell programs. When we write an explicitly quantified type, the scope of the forall extends as far to the right as possible; for example,

forall a. a -> a

means

forall a. (a -> a)
GHC introduces a
forall
keyword, allowing explicit quantification, for example, to encode

existential types:

data Foo = forall a. MkFoo a (a -> Bool)
         | Nil
 
MkFoo :: forall a. a -> (a -> Bool) -> Foo
Nil   :: Foo
 
[MkFoo 3 even, MkFoo 'c' isUpper] :: [Foo]

38 foreign

A keyword for the Foreign Function Interface (commonly called the FFI) that introduces either a
foreign import
declaration, which makes a function from a non-Haskell library available in a Haskell program, or a
foreign export
declaration, which allows a function from a Haskell module to be called in non-Haskell contexts.

39 hiding

When importing modules, without introducing a name into scope, entities can be excluded by using the form

hiding (import1 , ... , importn )

which specifies that all entities exported by the named module should be imported except for those named in the list.

For example:

import Prelude hiding (lookup,filter,foldr,foldl,null,map)

40 if, then, else

A conditional expression has the form:

if e1 then e2 else e3

and returns the value of e2 if the value of e1 is True, e3 if e1 is False, and _|_ otherwise.

max a b = if a > b then a else b

41 import

Modules may reference other modules via explicit import declarations, each giving the name of a module to be imported and specifying its entities to be imported.

For example:

module Main where
    import A
    import B
    main = A.f >> B.f
 
  module A where
    f = ...
 
  module B where
    f = ...

See also as, hiding , qualified and the page Import

42 infix, infixl, infixr

A fixity declaration gives the fixity and binding precedence of one or more operators. The integer in a fixity declaration must be in the range 0 to 9. A fixity declaration may appear anywhere that a type signature appears and, like a type signature, declares a property of a particular operator.

There are three kinds of fixity, non-, left- and right-associativity (infix, infixl, and infixr, respectively), and ten precedence levels, 0 to 9 inclusive (level 0 binds least tightly, and level 9 binds most tightly).

module Bar where
    infixr 7 `op`
    op = ...

43 instance

An instance declaration declares that a type is an instance of a class and includes the definitions of the overloaded operations - called class methods - instantiated on the named type.

instance Num Int  where
    x + y       =  addInt x y
    negate x    =  negateInt x

44 let, in

Let expressions have the general form:

let { d1 ; ... ; dn } in e

They introduce a nested, lexically-scoped, mutually-recursive list of declarations (let is often called letrec in other languages). The scope of the declarations is the expression e and the right hand side of the declarations.

Within
do
-blocks or list comprehensions
let { d1 ; ... ; dn }
without
in
serves to indroduce local bindings.

45 mdo

The recursive
do
keyword enabled by -fglasgow-exts

46 module

Taken from: A Gentle Introduction to Haskell, Version 98

Technically speaking, a module is really just one big declaration which begins with the keyword module; here's an example for a module whose name is Tree:

module Tree ( Tree(Leaf,Branch), fringe ) where
 
data Tree a                = Leaf a | Branch (Tree a) (Tree a) 
 
fringe :: Tree a -> [a]
fringe (Leaf x)            = [x]
fringe (Branch left right) = fringe left ++ fringe right

47 newtype

The newtype declaration is how one introduces a renaming for an algebraic data type into Haskell. This is different from type below, as a newtype requires a new constructor as well. As an example, when writing a compiler one sometimes further qualifies Identifiers to assist in type safety checks:

newtype SimpleIdentifier = SimpleIdentifier Identifier
newtype FunctionIdentifier = FunctionIdentifier Identifier

Most often, one supplies smart constructors and destructors for these to ease working with them.

See the page on types for more information, links and examples.

For the differences between newtype and data, see Newtype.

48 proc

proc (arrow abstraction) is a kind of lambda, except that it constructs an arrow instead of a function.

Arrow notation

49 qualified

Used to import a module, but not introduce a name into scope. For example, Data.Map exports lookup, which would clash with the Prelude version of lookup, to fix this:

import qualified Data.Map
 
f x = lookup x -- use the Prelude version
g x = Data.Map.lookup x -- use the Data.Map version

Of course, Data.Map is a bit of a mouthful, so qualified also allows the use of as.

import qualified Data.Map as M
 
f x = lookup x -- use Prelude version
g x = M.lookup x -- use Data.Map version

50 rec

The rec keyword can be used when the -XDoRec flag is given; it allows recursive bindings in a do-block.

{-# LANGUAGE DoRec #-}
justOnes = do { rec { xs <- Just (1:xs) }
              ; return (map negate xs) }

51 type

The type declaration is how one introduces an alias for an algebraic data type into Haskell. As an example, when writing a compiler one often creates an alias for identifiers:

type Identifier = String

This allows you to use Identifer wherever you had used String and if something is of type Identifier it may be used wherever a String is expected.

See the page on types for more information, links and examples.

Some common type declarations in the Prelude include:

type FilePath = String
type String = [Char]
type Rational = Ratio Integer
type ReadS a = String -> [(a,String)]
type ShowS = String -> String

52 type family

Declares a type synonym family (see type families). GHC language extension.

53 type instance

Declares a type synonym family instance (see type families). GHC language extension.


54 where

Used to introduce a module, instance, class or GADT:

module Main where
 
class Num a where
    ...
 
instance Num Int  where
    ...
 
data Something a where
   ...

And to bind local variables:

f x = y
    where y = x * 2
 
g z | z > 2 = y
    where y = x * 2
debian/files_hoogle/hoogle.conf0000644000000000000000000000036412036250244013752 0ustar # Apache config for hoogle # Disable execution of hoogle from remote hosts order deny,allow deny from all allow from localhost 127.0.0.1 # allow from .your_domain.com # End hoogle config debian/files_hoogle/update-hoogle0000644000000000000000000000156612236463715014326 0ustar #!/bin/sh readlinks() { for i in $*; do readlink -f $i done } DATABASE_DIR=/var/lib/hoogle/databases HOOGLE=/usr/bin/hoogle # cleanup rm -rf $DATABASE_DIR/* # copy (fake) files mkdir -p $DATABASE_DIR/download/hackage-cabal cd $DATABASE_DIR/download && touch hackage-cabal.txt hackage-hoogle.txt haskell-platform.cabal base.txt ghc.txt cp /usr/share/hoogle/predownload/keyword.txt $DATABASE_DIR/download/ # new database $HOOGLE data keyword # convert echo -n "Converting databases." TXTFILES_SYM=`find /usr/lib/ghc-doc/hoogle/ -name "*.txt"` TXTFILES=`readlinks $TXTFILES_SYM` for i in $TXTFILES; do if [ -r "$i" ] then echo -n "." $HOOGLE convert $i $DATABASE_DIR/`basename $i`.hoo --addlocation >/dev/null 2>&1 fi done echo " done" # combine find $DATABASE_DIR -name \*.hoo -print0 | xargs -0 -- hoogle combine -o $DATABASE_DIR/default.hoo debian/files_hoogle/hoogle.png0000644000000000000000000001205012036250244013604 0ustar PNG  IHDR:72RbKGD pHYs  tIME hIDATx\yXSw~H K*bQzPWޢZjZ[;vmLڎviǺVQ놭׊#( [@@d @ $$spъ7I{Apw׽n 膛n&nᆛn n&n S(;X3m?+}-\la&P}wǹk?/Ǒ^pR]\</ÁhhL-aeJ/F]\\~.gmcM_%~FOMifB/!D"h Lg>bxx3>' ݝv<Ȇ GJ |p/'_2zVfKY1D ZPvX^h8\]`}zhUZF-"+?>>χ$'pyb|F<2Ö]yJͽSL6LiqSfxbٹeXQpLr?˽w-r_̜zyOcO_r {֊QbYzͤ DΖNedӕK7r1M_aB< qʾ=&tnP"H&`10hc[ym hi|1!ތyp˺=0itG&{8,KvKV 8& m~@)dd*E@9]b2P'E&ElF,F?95d]YlzmO#6# cpvtWWe$,-^ P)QKe=(I%4U@AD@>%Doزp9e!nm0L0M0L e/{V w17:՝8a\t|1,lL]&44 s~&o<鐅nd Ɠ:^;u ?=}O_ܨ3JMS6a%JbNJ̙- x$Pl%zaF"\|r)N`&xؽp7 >XU G:st4wt)VV 2xw1F=1tz) jKA9S)յ!lWxsvuy@. . n3kt1o|Bb1%oNG[}T*w,1ۆFU T/'ADxr)|>^*=/#mQL,]I ~#8ETTZI "(m-{(:QJ LЊG xpST񝏓FtֶxUOZւbʻS,U|G*t TZ0$_˺=0q 70[zm5m{n2s=7G:p̋a9@q(?TNYViqˈ}*6#em䜑18iJ:ǡ="`1(,B͞xԥjEٴQ qϏc^@! l.=dWb>8\}J$L&%74U}Y77ӣ{>ɺ^GۺLJ/WxṿTm?yfG'e,\lCp9 Rhpy\uR?Ni'gho3i*kMIL^w;lRQNaC}^=c5=ԛ]cN\?g1v.5~a b-bhP\Z<[K%EWi[c9"uFxz lrb>7]D)6 #t`p$kz!Nʌhf@!Q-@bXL!n3s֝cӶu:;x lV&<~! }oQMp_P =%,ttB}UMs<595h*jKDc]]hoc$ݶlqU7"prz85Gə<3>aӶJw׶|1^A^hF ˑ3"2PکTwV}1蚣bL`S]t S8$)-}(*z@!kz{*+.[W^X.vv7fe-|$L @?(H`$j_|WQcDQ`LJxsCNv08&'`Ӛj%CgS6_m`ml^dt;{޵/iV%xW1K)Q*mG:B CF A ju2ޡވHubvt&&,j{L}~y0imP41:m`6oӡpXBm~!>MEJ淋p9>k8cLC:#GҪ$c:N s"B IQ{!C\B@@c-!!f`?n!I/_eӕ&pl<-OKJҶ J#q0vXfng  0\rW.b%aYMy&,LS-ӎ;B@8JY 6mK9%D[Vi; E?O(r;lcbTt T=ysrc0HzQS ʲPKT*TF֡B= q&>&Reu"01S_²J6M݄fT&6ebQC02 ^v /M' V__m38G)Jcq8RLLL]"_  *lk| J|zkq|{I윿9| 3v-4|G7=J1/n7m<ެϣ>y1G!꾫#OC̼@^GKy J>/&bֆY#U˫4%#2zcT h)oArƶU J<\he]]J5 Xz m[ PsB{;~32@0"%Va["/=oɨvm](p} \>+Vڔ9)*Ǝv8I~x )[[i}k6?>m Txb+:ɡhLgqF ^rZ_yÈ .GwLl@Y <-H y_%̕wݹ:d c?LpuHZV rCdiR7F֙[QqbJ+.;c%&!轹hw#mJ 1! 74zJ8&̄Sl@ߖ}F2X p}!(и$MPgF$ W|4x\0GvQ{& s轵gj)+igJ uWZw帄oDPH w^,;+`Ǽ 6lJ>NmSt22:܊LpepL]&l !iu2hڙ qoIM025g>*tJXiv=Ct}ah7g~BɞfKBiH!NP@dW͠&`S1n@_ٯ>@gޚv*%y>RlX~WzQbt=SbYCdӚP}?8A9(6NÕޅZoRT#tU$%iVШ }j|g GޱcEHQgDi2lnՑ'cz{Rqckn _#޷gIENDB`debian/update-hoogle.80000644000000000000000000000124212036250250012006 0ustar .TH UPDATE-HOOGLE 8 "September 2012" "Debian GNU/Linux" .SH "NAME" .LP update-hoogle \- Update hoogle database .SH "SYNOPSIS" .LP update-hoogle .SH "DESCRIPTION" .LP This program creates hoogle database for Debian system. It collects haddock documents, then create the database for hoogle command. .PP This program is called by hoogle's postinst script automatically. But you can run this program manually too, if hoogle database broken. .SH "FILES" .TP .B /var/lib/hoogle/databases Here is hoogle database files. They are updated by update-hoogle command. .SH "AUTHOR" .LP Kiwamu Okabe .SH "SEE ALSO" .LP hoogle(1), haddock(1), deb-triggers(5) debian/jquery_1.7.2+dfsg.orig.tar.gz0000644000000000000000000043715512117153056014257 0ustar KP=kw6j 7HEʎ96[4v{uYX$:mw|d+yaf0yio~ҁGmo#@NWyѺdwdKȃ1UOZ2M?i@?Fcn{Nq쿳Hg}"p}-9 W N}_> *.e(ʛG?[qNۆ xOgNfdGv \yD6u۞Z?W|$Ds8ӡef-m6GLys +!OoH(gG~3ha;.WJjY˴l\o:8E>TfRw)!Į1}4.fgLӘdjQtl,kzEos+WcO򛼾kNQV`6@O̝c9J59E3xOܴ} bO8/?ty[PlOǦώhĶ3?7uo,O>fDI\c۪xwt>!ij0p&.q75GL^cj1HP#:AF02eYAf1@I=4L4'EeHp\sG>bO!&`-UkS%$nZwv- 5oQ Zޡs!>#o`bb펮 @83&g\E`.Q.FX3Z3y i^6 [Q# {sgi~N}⏘u"j?!5mG V Jћ;d#1cߜ)NF h3AC౎k07_!Ttmu}1 Eo!\ḷMc(*bg9hGReVQGqj!i!#Q})Nݟg23]'D?sFvػ՘ta2.?`dfnrV9W,Ũ݋C[6v(`ì#4q>K m-'6SCxS%9Иe0qRQ 22q $K`bHj̈vnF0Ř&/ *1s 158G1o&rlSOxx Vnd% I  <4 4Br_hxfDGfMJbi6GpoBr̈́FnY-Ԟ@;b+5 c11!m'.#R\+T`yF"Ej'>I߱t=v q\sԵ,o:SΰGRlCxNۣקDx|Տ0FZo~<=G`'\yq'IR_e`Y52:p(r]^wJ)?Іr/ Ac{ZW5q+HapP&ه3|LE nzK_S*|;5bC*Fx/nwFyw9"hʳ\z曾Ş+^ëgmQi#@\uU2r@mG[}S?g~aR@*RO d+zMEWY"Igmg1C2#Ɓy4j*F%Kj :6Ԋʝ"DwrHЙz}1dr%ʲes~u ץͳ#^)ߪTW=x,n:t7v;=1_96gv+ -.n=|W&w{h_o`IBmR/cIH5^?)M05K%RgF'5s2KFJ' Jl4y\SD: @ &> ažn^G&z>qV-Cq1S^X~n-sHoA.hb- f>U @1B\w7nx|0?W!u, aĩՖD8A(]GU,%B!wVLt9섫,rZqmr+t< ab0؎/%ьwYpRF s).u Iڀkz' #@Ny;`B3< ki ) jJBM5CIn.MS,#\@OK ʈ[,ĸd!*L[cuN 1k 2]T/c"^^+XmqDL,TK8DRA\.BV  .Tv t-!,E' tu8KK-LXN*DUE O-kZ灩=,U@{],_ʉB9kI*8)[UA3Tfg#MCmHMPLClv# ;-){!Œbb Q-!~QqikNdUqϸOTu=JPU!nHy} (gO8ycȌ%5Z%űy_en(Dg[ʚ늒9v_V&ɳ*VL*w?]85r7* )I$YiOI˜VF5Q/!iA#/g!=rRL[ ݩ0qWȉdD]&=S8;=9h@u{]X<!u&0mr~!v}8rK&.iM|㲘M=ܳ7{%`x#ܸ栽  ym.?Y(DHj:P-PHP_XheE3o,@e=P胾~ }Q\4kz0IaB]paKƷHx:C"b>sAF)pu+rL-A:  @"rpp@jaHmK>/\ q~2D4ccaA#A4oH rf,.tzO`ke#NOiŐHg1U!?EY <.x_^4!߻ĹC%^43WdjiWi/$^Ϣ9e<)1KH\,(cɿ *O[ʭbvw @uH4X (Ht1KoF%Jzi67OOa+R<qIRвtcbn}udHS |X:rv/ksqoi#EEej!GMJS8MDWr3yAm2rMd7MdFc)8Uja2mx{/ 59XjKDC~|/\ưId7t oYzxMSD-co>O;ۛVR6mRD{${ ESq]ՠCR{`F-1%:IƠ+D +] "+ݢӚń4t2n,RJ/Ә1:(Mb /ֈ΋bH*'5&~a;lL 6[Lݾ\O]߾_̴'UTzqYPdnE`F c1#xt1 W<ރJb+3K]ޣP-#S}[ bNbpWc ( '65U5#\hqeO|;G@\H*J-ES3 [1ls8OԞRwFp+ӽGf@gxn!IP~vnžYbݦpGAh%*VvU&.㕆x">X6kHnbh%|ph-Sv:{F숵H4.aMy :'߷_4G +:TA+8ǎtw/I5@"bBj^NF_p 5DV-8=BO@ts k0dt|E܁Dh~(VJ*)"f Dz4_㇏Q)\1J^"o* ݘ{hun< wYG;p՞}0+ 1vx"E7,@B}d>FB l-q/ABnL!z]%6I|i]\Uqz`;W:3 >t).>d $C6FFS|z}ʯ$* JBD_ :_BR _bLW8+\!jzT]|X#o W8ί\|sE—J+sB+:"^BRQ=~O OEK~Aqɯ MK z~g \"+1NĈKAMIN!W?ɿ/>ɿÿ?3JHx&?Un;"3+.&86/oLI7ExPҢζk tE7nc$F?*N{ Do_N_?ª 5F#׿_Zh"jWoThT/[*@?ۀ;霞;T]!+Wg ސo$7:G30Z\^ It"yJ :=?zz cB~}:w30̮w(n~CᮈQ9m/L\G=&wG_IQ8_:|[QVB_V]Ke9c:5^y7~7ߥnu~5blJB8gޘ!`1-2a$Xa)XV,Ь*j ! Q+?q_̽m™w{s3:sBRDEÅ(CsQvPQi6>u:l{7ګ/C!@TPdLT0rEBP:PPEDIٵXTڏP+ݛ7n\;ZaGL }rZ#rfGOW[)C+~O2p̆nqwsû#cF7rvBEy{Fc]b{00ެyH4 LBEj>X9/6l>gV  ޮ% |'|N0ɰX^T>):1W'2'fĠ"d̽S=euWSgf]vNh1q 7Ϯ\ϫ)S2ZH&V!^ݏ:ɹ}ϧZgmHWOPeϳtNO'!a0bΎUJҿw6OA(HJwNtpL}!&(? rKZBǠEwoGaB?#ߟ"\>4QvGvvB<|.2I37J&IJԲcS`@el68J߅hxQbzE IK ^0SѤ 礰bKXI6 B$6tF)b'%ι\6rxMDӘnkw->7Ȣ0>*lm<: S{i$ O˻LV|S?hyg*tfJ 8ry'i8λ]Kﰏ N;or&3fCO$Yv L?~+E4eMrfv|UX$e׿ } e+fS R3gS $yeu4.ƀ1xi,^;o yX8)NM{o)m0kFaVNB= L_1_^/n<*c)gGp wcFCXCb1!PBX^-~}6$/׶GR׍] n[v,Q^Q.4446&q)^h0b c.0/%AO9x&nv 8&b upS6Z`dMBn0}(3)=(Wiu#}RUcV۩IPO~l6 m v) ϫJtsy_J=dkJs/UX¡ .(" !Й qB} QP$黴qD]k/:qbŁ4A7 48Q{"Ԧ4Z8S˜zLl rX/mk8~TqpC%Թ(TeĄZUisX! \htJӤ1e0M`ŷV(S)WlY EMN4I`ə^E`UY嫓n)ԫA5/~b+'Rb+\_ioy]whK҂Ks\t`qwÕTp"ݰF+痩/ڊL[V/3ے9*'BaaI4mOWiN>֭v g0,zE k;mK? ߶ץT._z}ޚ y`|UO| *?:s⡉)<0GbB}n↯xs 'Q0=|ceyeggǜ7:Uώix /zsgv|+߭1ptt5y4ݨE=4|.vf4ӓTk: z>=GaM!CnWAGx>ǿQRaFkL+}xzgùw%[пO=hKK\E)qfGqkTNO ~6<EYb\x+< ^c-&P3M1qPI*3l6K-|7)]5^&̑͝eHb_H"ڿU"i82;8s >! =ӡXQ kKz0 !6Qa$_x͋Vp=2h{_"j\Ck?P,8N liInGpvD}vO2B:0pڮ4@k=7z= Ppt7>Zj6 }}Oܺ/7al*%Άhل6>G4Cs,ˡЦR>W ./{p o<ĨU࿅'M"3DReW`.X0sn=9軪KVJ5z t/AGcF߫hu$m,6Z=p^b9xoƞ9y7~xYyIY^Dhٖ*gQ{kH`4ǴӸ,f9.ץ f~~zћ[ \GgNKAZ*?-.eZبG9wuifzIfHVŶR0C֚xK F1=;v=MP_J#(yQgW L2CI@=mLЧ}HwPGF)0̲(\+\!ÀH5Y* W}"/#YA82VZ( jJmKix黮 IqwDDj%ls)~Nf{h\9o*l|XaJwy ]ÝmqfbYFOV}R3rt[R?1kDȀofARtG Ǯ\ =Yc?HzoMADw2z^oYbA˧|,\Jo8XÊP,SN00;`()AV,>x3((Tdv(|bzqiw~+Tk˫( E󇳣ID~DLf ]NNlr^ШLƿ+/Wot-XE-jӫu(/tH˲ph5fY|CP/ M@U/ ^WnOwÃR7}Wܞ9N͸Pga/')|EwOAxDya^r%g3Mw8MO(*MD_6P ;:Rk&jHyHT!4ifUa$%g+woݔ3Q;Yp{߷:IHT0qcy{xP/l04Ӑ46,J)ĉ^ }aB]r2mXPS /F%8.ǣPuoN;RsD׻O#>A>w+ <V{7r%t&N|}a۬lT;(oA")ߢ1vrsv/D)AKe/hKg~͑GS[Em)N4pŐ΅iKY˘A#Dh/NF1mQ| pdiuy{f8gP(|(\'5Pee/?I->>^YY;-MG">QXh*F{˯Hd4FPA"HFNІ(d2"̤7v0A"0X.5o]X:59HKTӔ"'X9bI58ҙnZq]HY |f;if;<5 W ל`LC䰎g50w^ŁAkv6́-nBЗ+MWW!bZY'q_Ŗ/tW#Usi[pjђcZʋl)&otž%ôsn8O*aY1Ku(*0bUK:90&0M"60.Oa4 $Aq hfEilqSA ]Z>gڸU :ˆCBGph3:~Eɍy)[_7BƻpŮ"B`)c[ralk%?%䓐cJIU(hYTޒN?(ʱQ=A1yI7P6gΩtG\nO8~rBkmI;}SMF'.X,t ǯiG)Źn-7-;`L\{J ҟ^Ž/e:؝)ZxjܑiV9fplQŪ]$OՖOcS XTJL0}'c+|<_;xV b"`G MR&L'A$²7񇵇-8QzYUࡱ VkxZ@"|Ow.\-Zye)>^yy^iU8=+>bHF~SQllKOS!_͡TY\6Q#P*+=zUA~Ktu@ѬbRi9NW>|sq>M8ߺyW|jJw9СVn6>`?',t, }į"bc&8lfxl(uoMTD.n Xi)jޭsӗhvG`{닠$bB}"GuQsoز*tu 4p]adx3Iaw%I1DbH=us #B1tl׌uй}z!A4Ƒs* (LDm- :4;_Z.8M01h?1dǯ2@>nHNil*cB.bf\ P wbgUfGm[BtSܛFv''1^< Ha<-1j:lЪaDDC[2GLMZ4lrBu9GéXnE{9 ~ŃCR P~|{H%&ID|d!qAcJ1 N'0kiJ>x9cό1, Z=y}xKd mQYl,מEN |;FδK_O 2 >*w \DXCH%,ö*jR^0Mbkk2{ -@-5i3{bs<9\sseb:b,%,禢 ҃P2RNcay-MXttu & Nfq#~paϣ犁v0Y 9a&N,X؜Z\c¤H(vֈ) ?8Ԋ=_;sktdz lԛ$*SQzNc @f9@?T醵"H$p2 - ;%ѐitz8**}9GR0|M# ;g+w;KP9 vF膞v G3.Keab}`ENG">jpj( 4U-ENq1S^p .Iy=F@:Her[М2gt9`֋qCnRO^9?`H Ӗ dd']ᖨ}pIC 8^jp&yC(%Dz%C341Lֈ/%8~A|4YNaD%Z>:)Yl{]] I/*$`h$(!7xl 5,Gu日ag#K>`Ft%ڬ$1E8ø^y&a.!,b -%GQ>W4; ^lm>|umۄxop?a~ȡ@@.ӁVWp e19<4zw,\#y#odҺgG(EJLr+< u@̵hn,&^ Bu2]3I /w6tL y"P/m .ܜ n/-b&dLw㡜U3Hǖq̗ 8:C0:@rX#$ct!5-f]:]T)֫ izp@Os7Bs2\Ș)a*M3 pE S )2Ãcv+M$L;EhPd tk0\ߺ}_|~9ؿy//[_FC=E!8@3ex%,w%A t ҭ.,~}L#$t`iUyYCm]"Cu -mDz'0S mlN"V?}ّG Se[)LxU#gA$ETMmc&bJ +B|Y C\\ӺeJBt p_r Dt@Vqxmsv[n1caB56j S]P-L: w ж9u5jA8 C4{WNsh3+D<*(LıdB:6 &nq„ *Jr12!Sp.,2P=16:|d6k áڙHdI }y_{dAs,Qk:MxF֖c褭Jd35sҬL4 Ou*Q/SY:x]ˆ5Fysy AQmAҙM;_t4AlAX\jCY(RP`pЖ$Nә$-',4 lNySѹsMfLp[)T/h{E$3\a|H,dY;|g}n7f@g5O7YkV]^1Vд2,d_$ض9@i_0|w0Z0@h {tR$>cXT^rVlR7 I@8S ^@v΄ڰB_D5b$0;NG1]ypUlzR%=iV_/0%$d(j,mwnٖswZ M~ 7LaIJ*\B3+c=2B@mLJ+rXHrqf8[^tB0Wপ:ݵ0\i!BМH>ЍU+'IH$"xM4BUa-cD)KF>DK4 d0CDMGV&$!))xjCPp1r P2C5VhV3ugfPqi؁iؙB¤sW5ImiW4⋍.4hC@$=v%͝Xw8ft t4ٓ XseDX2C{ qM,_HlADe-"$<_GRv:Y8=wKopYdo#c=I|b^=q4rQF Tf^Q R:M恠I;a1 jCޘFGJ؈1B.l7o[ 7yޖlIEp]l ҳf$D4H>I5f7(KV19C^@A}2pfUwqxp2߸\Wl eXc*hrf T#"{TРv.GL5o Hk1ss{v˻׬QPX q6P$B*؇BU2>r *(.fI3^V+ѪTVbY6/\9}!ۤMm>U6:k]sƧV ,㒱0Z.LRSZN$Z4N鸂&b#K0>0~*:B/xUp8 ,Y#\aW*PLy. $}{Tgmd*}+Fa]T.>*rL0׆sdž @"61'8;7 xPmEDf~:TKDӵnPl\5 4ty>U5_yǕkl1g0J/8up>L 91el%'ee4Qp k oaꊭ"ND"*_H6꽺e8;=»zH+’!3~ʎ˜òen0-y<]3Z.)MT &%"˜Ztp mkх uC}GĚ~A!tp|!*gB4DC燿̾Ue3fq lvu$yrJ3)X v/=u\:xfJ;S:Gc*ɇɂH]I ir\WCnEY> StMσVN4r ˛اMT(ibéx3lu6ܡ#u6ZL"b<)ORu(M~H߼ Lz2l9x>ϦImAg, azVPu]0?!ns-+]/E;v}++amV3ZsX/kIE&ZV}F`ꅘi0{ j^aDQ=@^9YpBoxLpM+~,gጎcӈV禀tXVc# 6jVE`Iغg`8F,iTƃ4tV}f | nH3DuǑc/i ꊳ8e!6lʛ)@Ϙ -uVEa"*3zLi\r2p9ݨ.Aq>b?S؜4L\u4vF 俈Yb~T,FA^t.[5p8g^qG$d*6蛁:9Ϸ̋[BY-u*L|hͨSc<޶Z7fgsN♡$T-JO;QY#> %pB!ݛx:@5"t<&2נf9= ٩)e9^qC+{ yRSB*lx2 錰ЄEf orcY#[rs &1]S`O>W|G: '00pĬ_O+zP%6FN5c?eL {D-BѡowoJmF͕["z3fEEa[O3RjdbV@xIۊ}cK),`'< Ei\T3;A^n*7 X JH ί.\F!p:bN87 q&;૭]5AFj X^5 f/w K$8Ġl8rs;3%6.e2e釓15)ָua*UzS'ۓ6G(VkkV rDA&}U6<դzVͨyUg\9Ǫ3,UhuiЮp&nP`&He%8ޏñu[93k$5M/FRb5hThW ~@`lA@娤_mY4cx ÿDp Ą%eo2]c^aJBa%TJј$2'G!m`,ٍ[+_pJUNL wYQ9"c)4ߠZ8DZYIrQ;轚aҚ=eF~CB^!gw.Ek>)VMZ =+y CBB3KYoh$'%4rAUvWp^j [4L4^9J31ˤ3>L cQt{EvzPk(Ġin?YʜH-gDm}4B+7tV Ӥlұ6֒/(PBCd‹~/B =ٰ$sn7i6G3_üp5-fGc Uʍ4Gӄl%&QZ!o:>Be.} ͱ*6oaa@))efEzEx]DtYGzjq}תc'PQ)f2=.'"eTkMמSdSPbG6YY(F!JzYG,S8+,5;"4ۀ .|>msb8WR4GmeE,u Ǜx+gl*QqH嵇x VRZ04M'&3B1Fm M$JXd$HC3}CIaQ8I;tqsdM)LΥ9n9;NO1MÿTs.? -!.Ԉ0M9#UZ΄#~6O5׳b$*ulE!sQ"Y.10*Ad6G|{r@eYZs^@4lI p0 Zń8QEmľ) k;y.Q7?q ZT/#UO:x{.7I! YecZe4, af ,A6qtzl!$_F#AڠV(TBp϶][A4}iMwh+5pGEZqt0gК[Y^W瘵 N"wH,KTO$+ý(@Ϳ?aYXl/kh"S/wwaK@"Z!N\g$q)/xzIw qD+݃FJ~4~gYn.O)׭՟c}]f +$w9 򿮬ܼUUzO6kRkK\ʝ LPgfQ:tfjS.\6!^l`3< G#!ܙ.3Ơpcj\/ }5ot7 '`Kܤ8*UƠ X:2LMDd3!2TgtwI 4.ԫ-\r8vq6pw6˙\4~ )^(v."FSRƁLһÛ0&j0(gI;:{`8&`OΟ4wˍO%t?|n˥({Jr)>Ǵ QfQz[ ]>]1ÓWҾJ!UM?{EnQhᩑ>]ꊲ}'dw"%9!{kuMRK3UM..f6!ۉݸ*_[vFbv _OcQblgzۈ*؜LM, ˼"n9.gC6  %Iq; 5?adA؄ѺÖKQecxڭվl ,4cqΥ&ڷpQX\ąׂ-W>hQ$ζ9k;;!$꣟KNyjw޾u{J)><_/7o\$5Թ, |E:[b:ut{lt5ZmIYfJd9¤@AO)&ȳfce`y5U뱷NR3 5.k8J^r'd\@fW@a|8 1F5a㬖ie"7wqASWw^-߼Znݼ~"O."LH`~+Oys/w93_),߸uu?g䐫`יwZsy". f昅Ct 5 |'?W桀y c)$25G ׃^6 B c.M0՛llufCjQ]:Z/փv@geꢡ}th Pmo6؄A{AM9i^WJO4o%r[W>sO1x\r\$~1 ÒYo݄iX"8Zuk-TT,$kQgoAPSmSܤX YE 67{鿲]#+%Uk"J{ϥ-SߕWOy͎N;`ljY2Z >_ >s.GzeI>{?6E2ss>>(:J/{\o?+W'ܹ6J8L6mU$ ɝSq'XyV-|K[\p5eluț{%BZ7|m}5q^+;AV/[vd~><:mxex^W!Mwo߹Ot%\OY@/7[C iP~A፻'@%8ybR2RyN75Й 5a8mK69ED[>GS99`˾w-ɯO > DJ҆1[F&!12SdLMf^ g3"YkKHZ8;,ͻpvgun$wSh_5q%,d0֞0d+~'E"6H)AmF p]S2eh6MF缀p8m^;c87&2F>vTWrh.]-^:Z7 TU3z{ns5,GI6*Z3;1t+nkxA QKW<-_t2xvmi 9xzXJT^[N/l*0f' t~g-]>7U]25pl Mt o[ԕbl}G(7n߸$%(Os}kliHs"fN("OIxFq%i|ӧ^' (uIh*im5Hζ>BRAo5Є=;hY1Ғiق?\hh]bC7f2Ws2:Ӣ !k0-L933y #"=$#HaEuG].\Hd^;v I3ȃ3n Q׻O>u48A݈UeP@xH4 ;}Вa<5LTëDl mnH j0d1>6΢doUŨ]eo t &)9ӱ|wa6_l SĩnǠC4OY̋洢KWB\y+8{;->p.w~t7lJPBprj![(b(;ɘMbhWIxd"Gʺl;>sPAiԆ2rmKޘ7^y|]i-c(pGBO+<-"*HYvd FWgaW}j9D]|-og7.KoX:U5u ^y6dwXRdU30Ht,"-sTʐOTZ Bj,Tmgú BSIJjhO~S=eG:/O#<ʟ/'@{j98B/ADGS-E''s%K* 8%(9ң׵RԌydwGۆ.6mA$g*%5ۋ_V/.G0y8nXta Kh6XNg̡#sz:Шdty4& ?eQЅ Rdnw JxfeDx7l1[}g1叅 A ΦiNJ4 c5/%\4! -@MQ$:<{\Z"ѕ26[0h//biQƂfNW`R./5V?}aFEP0DjCUɶ%TEvcIly,bu3FDN`Υ"*ͥpȠ#Ӹ(93NhhfDM<~>cfojJ8aKQ:S:k|ҹ!edVqlI?TҖ&peqN{TGdƹhhZ'P[+& Cܡn#hZ:s*0[U/XwƧJ7KMhU v a]?N`_BW?|b9k+W+#?ϻ xaeW|fUsL/}M@A)OI^%!ct0IOla~Jd Hߍ|um`?_aIH-qv xv@h" > } Ƒq DVÚ3D䘚X.&#;;& %l0JY %K] %ʼ}ΉîB^L%.*GB+ FN_1dPq@0 f}n%㣈ìbGͬdA/aXXEͣ56KIП`6 ئ >b~њ`_' {Vk a ߟ`Z<<k[jckt 241%4-cVӍ>1Pp )}A)fG/ C::Ph}v_2C}0)Ixvt|nY ²cۍ#N:;_v2Dv xy'=Hz7WnѢO#d;E4&X&ʬڅ$zp@$~: sc5=S Sm1LMN־GEbˍ<2N:cؑv8LÃ8 bК Ď;7${>YaM<*4g we3V7x@_&FgfZbқDWC(&}' ᧾?\O>9g֍իs[s_?}&߽]dѹ#CPE=u"ɩa+Lc,ش0CtT h~Lw? O;[)eqФ L#MG9Dx H|a)Zs^4k_YYl0K!ڧqtykAh|OYc.NOxiY M]&y#b^a1#Хۀg2 yֲHl9gz|-hݽK~B3u8'F廫>\;jKw-[_~ޤ]Žy]BcLj%B0Mm] p_*'뫝Eo\IqjvCk {efEycaH8z喻ܢHXvf[AEWnm4;6[[=i~jKhY×{2F#s/ZUՕ Vʿx+V*Vnm7_w.u6iyę=D .2śIR=խ\.uvpY*y-֞;s}]%wTbk=Aj73+Ac$!Ÿv-`nPgH]bp@gGb#hK9+C7s%$?;s.`CI2Kah gMeVF5KLSh S:;Cp9vX!Sr 騝8nڭfy?;lcm ͂GnwSwT0̟$Us4=.%:^4y@&(yXGZ^c$nxu^9%'B4 ָ-q5s,v̢^vMvDZi‚+ p/ D*l۷R#3M_u./BG4>qƧZ ]50q@#v (UN841_tfCZ3\$SeBxB[5фH YY )cb$\G fIu`Ik5R%Fպ ωrp^57LQ$?҉fDdzH쑪0|-6g5Q!T+ W/L+-~֬[yeZ˒h)xN*-G8FؑUg X}Y+T[Et<Hq8bʊv+wUufvP*̡X j$Pu .oh+pBx{QaXj:1X TLu*(-v.mW+֬3Pd(aFbaw?\zR,^Gck.hu7VՆa@~&?M9aJ3{D=w1ÇaY DV!2z:d͖NDjsdl.lynς  sQiaˇɴw$ 6/yv9gDt5KAɐhC jᔶL];͵$֛Tփl"= z+$T5]V$E[U]ձkˣt|ux :5" ޑI[ۚz@:z@ h^v CЬj,}ƢF:\S֭5DF_ Ƽ(DŋitW0oïQ<فs1u)5&;ߚ[!DA@mfBzn`wf|cD 卆hw[.&QR;ݶWK)ˆǖ9{Pn'3PO[Fe[M jαx֫/[?Xޛo^@yw%mp怞u" F0;̴ʙ-ƻ ?Jo6'`DKG#D?ЪiAfd]p~fC? "{.jctc<~j5*Ὃ\%;<6AttyLƠ/ z,7sInQ) *V2VTUpPXe/.Gf䟁mRS~.xNǟ}{ 7ghR k)_jU-j[qX9n#O܎7*P hAdHFwlA3U },Uِo(]T3Mۅ$UwhLA0i=V[pdYsznXr`x*sq%»U1LջVP L3':*ʔR,2\|do`6s%yyL  ƤF肶_P7׫UN4=> 9)*(AT)|M6!WBt0@b8*LifPg+xN+S52NhDee)%I¥UQ6ߊS, [ ۿH#WCj%4iD6 ȇ$ȷ,z׸Cͻ*uc[?2#WPmVum \D蚥A4$mÈsڭK/V*i"sKٗbW<k лxn.j++< A:[0$amJ *mƦ=P/;pKVc<:ea241h&_6!RGH|OLX.z$IU*k`Xy:-pwE&D2z9swU!x4XT" ᦯\0`5]a%ކ'PkA($fP[o%CU*h~}!e6NQfzl#~lz<5go>=Im(mq#2%M>ٔ_e@ @m8c:3OPy^j"e_KÍ0gDw2^ijż/ nAQŒfM6-s0D4XLŵ֚wrEScxvj]r?h>x9cƻ;q^NMAݑ^Jː+.,h˔ x`ql"!?|՝ LH j(ҬBkpյnK3f\EhDBuviqQ:Iz SDjDutg GJĈ MttmU[ZO %8z%, ·uo X0_P9$+ZuՉ-ev>ɣprD4C7<\V.NZh#ff<ʣƠp2m;~Ag̋G:<ݟrb(~jK ʖ!QctsC;~ޚ1(A֙;D.(LoBVJZ{V% &Y ە cNp^#smYK'eP@đ(H\;trycfu~O(˂:uaBbrv]YZ} ~6Gƚw7FnQգf-HG+LҺf:Q~{GRy*H 50?ɡWI$]pIrNMhSD"Lh`A5KƄ̤x?].f&0D$$uU= d! 03ЭvU[df]PUNkK$+T`c@HT'.Dv5*y' Bp4(ڼ$[X\lN4oojKk])Pȁ X rQI% gzĉs?տFI n@V&:uO,kfs: Dzm)_f$mP#Iز('v,scaM]7YZAa_9=v`!plupDe%Sn5(SɑcGоpZLͮTo'tԚA HdtF҇7Mb'W'4ci,KgRr6H8xeǶa06o^lsԄXQ99^NWG:`[Q+0~P>\yy5gr8r0(}fѿѺGam-o -|0oj#d 8ͦyUS#9I,pR{t!\sGi˝h-pN(p,+ЩrUzSiMGw>k%}~NC)b8\#5o)NcRaiR^ņpzСHXx;"CXVۈ'_ଡhsRyӷ[)$\WA< %D{" <ږ V6pi\L,m1c5c0 f J)APhXB Z%Tq?ׄIVP<@ ? ACZpA)U(/ϔh+a ( NmaAڙ8-_C㽗(>C4mzN@⩧9>wcbSViF)hP'N2Ay Z6(\[jK ͓8_`vF#FN?rtmD';r*PP4 4t.e'(,{OQ\,>8@Ĵ-ҳ,,"s!c$ !E0={ngHGĤ v9&:p%rڪ3e'hyu b NVh7_$ȸdFP6G7z %<j:6ª?[Vl<JE[%/ 'n}XjKE[9mXqXYO!+;Jx.otLA4{'N@,6 ;d3>NAv/hU#iIhոw'T93Kf0.I&9NBpGܙzR8 i1 T9fAfw'䨎- v,0a$u`A8MXM(9!R{ 8)<ս ekx^O7D.{27iKSt]J8B_yԱ.zn9^.eQ2AYlؗ5~Qبխm2M0-Z?Ǡ2y9}b/Ǡ.eRRԜ}=**+-t/N>D#]H࿣xUEp8+z[lUٷYPxwgK]F]ѕTϝ>1>/Bk1zn9ljL&*CSx*a#(j YϴΪ|_g]%S It("SϗdW qZU"UL*q.V"BG}0V2ID@!MblPW=;Vhxwb,5-<5pZpUQ?"M4[i }+80C]jpH*!Uxa̚, NUjt*O$p(tfVǖ{#8DG(E*Je$u}ѯjP#*JZy wV̶lA_uOhSicfqH]g` E|(m@k"LZifw2?wW{ I~ 3Lߴp>e{g( `vppڪv6VX:c2@s/eE|; 80O #BcS3>ö[01>?A#@|*xV5KeeRoCUEJJ6hlyص{N4=>ul!D ۆNm[$Yx|,v-/@&TQu9Zo};tw2g0mGT뿨_GuaxZxww`ީه}9A 9DOdOTOΐ]%Bn8%-ј^"d Vl! +e.Wy038]0v2A5^<~A(ĥi[ lքbDZU-1?噏2q®X v:sݪ%򞕗GsfbxHi~ֈ{ ]5Bh /x<=\⁖ntQj6U¬|DT\Mv5\\yƳL3^tl Yi הLTUoF !ҀstC,:1ښƋ3EN=j٩CP B~ <~'85 jDݠ~R{*=wi^`W~ 4y*Pd:+o ee6W)܎7hs4{pfȕiz.7v(S/6³kFt#@SJ Ty$:1@8Yޚп{x,! r(PM?ؙ$?uG[_Pg' Na~Nt:Җafȏ84#7s8ԂaX@+MpwlljJ=ql^SC߮4=^Y\T\x'筝kw` l}Q^ݢw>o]feT\EjmZn|'ݣ*HFX 1g"& @fM*|xci ؊0;E-Dl/<> r{(m\m]0u`Iay<.߾5Z`4;\۽A>pbZ0J Q΂:HPOS& =R2? YW\~Al9SAW{3 v{!Fjg^wÆ܂Өh `zfEF/ hfiiJYیhOGpBGC5oaLUFw}gN]2cC$fh!WژӶf pOӣԂ 4VBؓpF3e=ǰTUR kIj&dG{/[f:t'5h8cl\%;҄7Z=\IqBșp#L[aFJשZ]0Ld\#n&.icmFU`eh ;4ل&b.lɛPMLcXMqA_|`4zYVTH1X)u^V/.{kA].i,mlg>K8f %d uѲk6xҾ6NǹZg!*@sS+{kٶ44'M!i8rrI$գmr^i/am4OLւ1f! X H.U;JW'n,_ N$(j|0„W|g5^x::ei|lİ=!ϒ 'to}#_FcM-.,律_(ZWRS =G\)݀~aOeLhq5O\M}) Ϻ#7* \Ml6n O=y@EQst4YÚ+#EpgV@?;ۜpRAM2Ra6{)0f!į$:jT.j?y.:A1X46 -(}%,;o-SZtga 'ڍSpiQ-~@RF pA :*R@RdIϞنe^eO>^(o߅b7lcYu9[bjLѼ?s xLl&%cm+u"TU־x$z cˋn(! s+ @ /o_ޗa@rC'hH 4ec]JV. SnS tke`r]r.lÍOikkJv9 `-ݵ)x?L Rc`jSCsFfG 9LWs}OU]^-7ȮtZن(dMl{=4feSD5"@$9/EXH54hEj%v8Ί!@#p:6w>_[ M-#%ӂ/xv;~78cU8͊ss8MϹ pR,"Ru)Yz pd}#43#^m\X+ocMRVfp=s ^{i֚ N1 g9>HxzxaUfD3a03jW=P;Q]/"'ߓ=췓tOU y)86i'4iKH’jIH}ʩb&n?}C1/syDZCD]iN߹?68JCwz.y:  =%,<ĝYSBd`5!NKP Zî$iL_3V*V颤ՐTX5t|/{`HܐL D@{#(&Jrcd]YYw- ^fieM[Z[8&]z߶LoYJs-M4zvf'bw_PלoW_l^p레r9WTRqHyya-[hz~y RSիZZNLCvU휻p,.eUy씖`);p)*..ez)}wdа4Z]{C ;?"B7gK;ncSOPA&jPT굨 \RvV 5/jXy_H<`+Ճq[rbty/H;3WTwTu\aR١lM֥8Imu&@a@_v#g]{r}8.8FF4>sM^]_>=|ceyeg捕m|fL?;rG!Qn!A] ;M\U.v(a`Xf9ܫŻ1ޜ5/2JR_o;~b+ x[j١t|ov*bgͧrvm><{l?yx{a;~7~ܧzO uQtMmoQG'[/|M?7o?u;xm>F7/v|xEϟlQkO=~dnz_я`Ǐoh/x|= ~=U{ytEzxsI;xd-ZyۯI=~FkM|k~6_l`AxFc93n=ݒVAaG~pk1~}'x<}>p^]]tSoWV~A,> \jWW+7WouϢDM<؇qOqto8\ٵ,z8E1J}!x&c%~C!LC,-S;E8(: Xo@./`MZO²֣j`JB{phSʾT%5 {k_lz9$Z~kbo``omi__)Y =xy宲ɀ‘ί^Y)k6.4GUp\*A;&,"NIcdw$c081eg{ (5&lsԋFjZcMȔj&)q4BjFih݂00hEDAPfCըQL/3 G_ ԙؚ-?eڥѯ,l;sy t N, 4: L ͓0D`A]egmϨk*3"e`lRMaɝ0Pf(ɨTfQyɘˍtP/,8ľ$FQy#4xU)-mW>xE`x,杲5 stU1TT|xgmZhFo.aR3S8;cifyOb h{})K7Te|9a=}E@d=*qf|wg]Z]5A4.ҏism7k`MRDoiy^,wь) 7`g48n80qE7YG'X"8[+Fk*eTb7rqMm~V VqAkΠ6eo&FYmԃOkei,#@)s\[;G4Qf@zgDy+!f?\"AXFYb5&/sX;  FmzQQ >_PF[jrnхb畴_s8e™$!Y~AՐv?:DJ.ܾQYz%K _!BE\ bz4/È_r!{6 4/{ZuIŸQULLmv?׺u4!/ϛ/wz*cJ'SKٰ ߢw,m [50.*z;L^' 2kːqg* %q{"9`/Yhc?~C7D_1k/pOh |jgm/?QZ-[+7̑h祜,wdLP 6?R ^_<{j7%wߍD.zQi0 `D Pbo ZGh@nP6&6r9Zli< G'987lv5Qro (DT)%pqf :8"roUxQ "ˆg0/hx%KJŒY@H] j.lc4=.J"3tʸ܈Kº֯~9zqI4#56"xའ4 ҔU NeMZݳ/6?Oݾq?ŧJ3/.lXeE`5 #-l-hJ>F0s[[Rz׌/~bgV)[+zEq:ǧ @|t'poF3ΓaM89d(rпEd_Z.݅G4_&?_Q2sVh (1-CLS{S/L=NfPr/t{y潍/~^}2 _whm;l>yB>Ÿg>?7o+|?KVl/ ~Eߛ+?_OsrWo<; }vgrDTa-w =nm"}|9 aVchQq!{mHP 夭)SpMRz $hNo"?Ƞ܃Du1-<|5f㻵;U=׀}[᪻u»w讥{?h< f9bPt"X])`"+{)?6A^*LjIiir@8nE({^ 7d=MAx[v9 l7[`}'! Ρ9! eF;0ah830w6S&^27=o]Ǐt#i-bZ5>x𬸳0q@w4/ɫ^z1,[2ԉ%#&ucא'/1`.BJSW z\ӳ0s ,Yg=_2'zWԸgT2쿖WWԃdǟ4ߍs7?c}૭[/6ϿO(یJ;,_k5? =6 !aPm'n-XE0y=~gJQ?= SxOlJX7;`ȃLK0烢|@}iGc[DgVsddQIx2& JxO6*`][20J/2v9`͘L@T]#`rxHąuw53Nz| :ٷwz\NvPXQvĩAx燈ѩ]\:o8˲GEef*BO(ZF4ơ$u_xM#(*"CK즨:EM? ʻDZzEsicj@P4ᓮhQ8 :-RJtRRy:9̢E⪢Ą^l+B˲Wk\:>XG) !LڦDeslxZ"^rZF1ϘQFQC 15cu`+k[P c=ȣv6 $8CVDG^E%Jg558Q`tMrb-/jq ,k͕sn:9iQF9GB燣5h]czs؋(Ď1$tS1*$HZQyv:?~K蔻ڈ+KÖG/,T"}p[>pd#[=JXS,V",͆2 ChP3)<شUA&3., IVEA77³׻qS\Pne r#:gA\H*n/NL"NFq8lXtOG ěFh<6 M,DnQx-aαo"V67t "&H K$V@f6[vjVnED29L,rt03Z޳z?^z\Eh'dKrAeL :-2;%>fYƂچn)$;¼5dγP+\,f<`Ldh|0^M j-j'4sѭak3И3,D 02,:T)8--±])ߧ.y@y?Si!3wtD`E@ڥC\W v&l"qb{S574pSy%%@sNYĢ9b;ӃiVYVZb!DZx>14eaAn~B:$4 F'XaLJ%w|JaE;-@dgʦrVS3ȔL@S6'0R\zoZ^OC ui]25ߙ 0Wʥ wHEb2V vٛSIm1d#A@}ƽKF37.zN*ŎiAYΌЏae>W~Z^0ҋjtKR8\'܌h_cAI;Z=7jmHz,MWkkiLk4`}j K6Nc45F` Y4Ɂ[:Qi>%ҍeL@QU%LvUS=r%?G-xY@[b2tN8rjqhR+Ukj 5cϐLJ!qZYYPR>z=V8&3yf%^#%iL2t$FO-R& 3OzlQ*Pf"5&qNLvwOYUp L.%c jϊa14 uBĊhywqA͓Z1\3g|c'w P@,`c/,z1z֭5ic$n!G-&f SжUai4/k> ohut ~Xv2Oӆ /%}Sŋ E-@8P#*-Ks y12zVZEG'Qx4?8ds F=C9EI7*f] 5bTn?X[U71qHX^Sq"MއqҭOD-;B<Cvl˽I,bڿX'4ǜʹF(.4eQƅ@v̓By;M5dTB'nt0u\0cb\m3ee\}_EvQ]P'T%9vh6cHt(Y~Wxz% ߽jzm"(o Ξj Bx&DYzJ\i- B~BlZ*XFt- aB{H&*h2EɝQ*7(8e Jn|:q}56%4"xpZ>.(Q#sD@xqsH'>/LѳxkMq5v*m]P œi#jn!sr FLD35 rP1)`(HrPhĀwK Ӱ+eL/lU0iV{ ]H8Mm\#$hr[!!˜F\aËwa'EAL[0B8&8gY֘e9̫)=k:hݰL c6NtO3A343&;=CUKPRZԐ XT9drЎ;L*!_5W]hj4Vs`PS zPV^V飹 VݢQC:";0^wa#` |e*L0 STq)8HKQbıaUO NOnxt np7;[[Ͼz$1VG/g_ojr/Po 6^T[Ow[/lRkl>No<t>z|346ggw߾~7C_}|ílۣ޹b|NI7whݯ}km>uOmnh>CQOh[r/ǹʦt.x{}?MF|z tzKrI>2 ǪPePʄ(*g+ҙz-KdJsO7*Q]y ;FU. e}*\f'y;ӓ(crT$snbxyRRsey~ c}G}b3/[c?sC2DPP8a&ֈk*Se^9"kҌ44X,-Qժ\:\.0YKX``3p_=%:tNYF@ړ=BΕx K'"գm(=P_|f/,tPP_歡RgQp/Lחi~9ɅG|ec;K̠n Vix6|r2w]#p@O1KfӴV8rr~iT^`˻ o>P)PenF$lxrz_}NyeAt $ǖj Ʒ ʾI-dYC`Dd!fȋ'i PH @{L. ,LZQ|>:]6IIL䰱tk0iu?UF~掫v$1ȏ.ȊH-dIE^bueqbZĄq+YԎ%Dtɍ^D&JZ~ l,y")gwrK &dכ$+(Wh#H(ާdAsad-^x~$C?Q?B9qp'JQ~Et6.;'q$ "-'X˭^EJuX_n2f暦lIŬs03G03,`CNK 8p/%;4(.׋3Nj9./A]tfJK=-橕m'd.VV3e$덬W(ൃ) ,|\y j+ .q>luv&;[gN?{A02*bEk|%my F\edQ@%)KTFةetRpMQ9 NߣW·TB,UJGX'Y;*%+=KeX2Cc-l1.O3V[p06G:#YWf.PRҾsCnY8E/:+ݟ}Y_S7KgbtuA^r$M.rOsSRnu?b8zOgFG^~S 66aUYkU-)^^]w%/e{0cΏᩒθY2=頡&t6"~ݔX/;@ԂGBӢ*֭d"-n' ךw-2tjkSX#,X]J sBrpiɭ'OuӈpbqnڔluD7$F0or{5͠5 K_j$Hk!d+] b#wWZtnRV@K{e.ʞ+f{ᛇ|Cz!zIYhGȚ63L)h dD.BY88K:vԪcI&265.,G^w]rtI% +9찞̶'v2$$6lXOKO-j舷널0᫠.hU~Uȩ0Tyd (NCoÌ5Hק#]bzB#,|| UZ|+$׺5M#L"M5%__qˢlz=*+ېazK 2"vm:b F !*N K)iHLDP&JH(Y3`0X7yjpp,<IZ3rCE(&!ùc"Z%CsC;Mŧ0,vckf\zQ?Je٤H|U4[NSMm .otbEDbN]s^Apv@8,n0ehŦ l,!gWN|U5dL3 *$%%:׶8lbL n[ѻn .o#=uZܲBܧXTL%SQk?rd]r"V=]JSáo 'Y5 $/w= ^Oj\+-74E%>4OΒA :`gӞ04Z|%h܈h̳5/`p᝹RW{0yx/&e>p(fraVn*sӱm 4Kɜ!MWsN zgs'cZ1+mbFDӓ9y-)E $Kx /$e̦ٱ졿2ŒEutL=wY mD3`ȌLi'oaviV%zMZyJMN%N;º M;q\@Dc>ue| (0uT4L-dխ{՜{-lɤn<۪GqOT.Λ^ b\47ozwPCd54g@D0bgVf19d!Rm֌b( cY%^WN/j)EKHg L^А32t!M42 iJ&iĄ@ ]3.$Jȴ?m>zI6%wZP 8l>\R#c*޿26( `hƎvAaA&qyaO!tˡ8<~;Z pđ&}Aju}җ>RSX0 cَj}1}S[TQ48F Iů,gİ7li˂t<ͰȴjlxY Q$yB`T ޚ s`͙5+}*yJZw^̑OgTQ.|r8 Gh fbgN\!Eƶ-zN ^v13ԊgʑD)g_VTb KNDu%,dS `듁EW^ah<ÿ6P5Yyey%~Khs-& zD%y+>m;L!BVW!|JE)X&95$/E]/ady3ejX+I:Wg_ޑ,Jhk̍jekM?#id]9z*+Y%[?wO ěS>+ .Z-R+xjrG]ǾLr黋$EϪŜ ^Hr/AcР_ڒV1^, *O勎xvz)ZS[%loЍv>9qu*%69S8]Ry(<W7f2;c>EwM,b 7.#HIJήWM҉&2=';֪6rI&:Lyݿ1kIX\i!g@չt!P .d]1}lH)SW3 # 3ڲk3WnKwNIʢ=C *30a%vEYmBnveaL#%_4)*Wb/_D;\zkuT``Ywyhm.|8D˸_t(Q :)̄8ŝ yDo-ULDrS(|w{$mHvpmq33CPx7/yy_uPk19 oq m5=')"$vEUxtrcR]ځnd`U0׌6zU~I.Ţa"z((ƙZ{l/!L;Rke6wޤ$6,{yeX [k@ ޲s͇aπ_7^p5E6+P0WsVC1+BDD6p7"5gLC9@|*P}5`͜SLsZ&_l1T?WVPF!4,pITsְds04,8]~WB#& q+G)Q. Ұ|3h/Pg|?8&\UK_~"Ϗ(zQ-x&B< ;~rB>|X!8 (WrK$Q|;"RU!0uu X W*R癊pF, *s\.l%BqIC71 uΑ{NOao4zaCe6t֟YYkovWWw;^=+7F.Hiv4 iuNݐѢ|.RR0[j,l +s3mRJ,B5t,RVo5攛 ݈9ö@ Iуx@gǣ`WaJI;'yw9 U̬[Tpz41Mx027ޯ lLfThٮzK jRaIE VFZ-=tnꞩQq?p 0\Gzau6oV_/y #&z~Vh|8y*; >[sW eBn xEo5|i.oeb;h-X YQ&7;$l`0uM5!htX_'dՑ^u%QK]2T:ӎi4J4i9[LH >MӶضl_IK(g /W3~6\/^i_œ{ /ovKTƽb}J+4׌[ ެ1u`}x٭7oi-hu }pa UhGbmI߲9kp|P'^ak"l΃~Vo`&*[.LyGJ1uM 1c~`k9 ͹kNɻ3t::+2df6;7{y HA35~YT7Isq u0\%a]E!40/m !hQZv (Lh+шc)#v#FhGbM\X,1;OC҆]O.PXM\qgE7N״Nx+m`22XբB4jYҿt 6NACq)g/\Cr"d7Y>L҈ Ҙ4<MxN*044 $#; H۹[z.p4}W 'v8%d aaJd-8 ?;Iu}O*~5!cN e]ܥ\㞐$:%k\KQ:72 YDicY"b2562 y:4^*ΰV#P#mEC%\ǎjT1B$Bv`ж r DW6qZ;xxzꯖjo+^㚎y*a}bѡX rV M95[,\*l̙s/C8L8h ˌ%^ /[b,NH{&2Z]eլ_<:X h&t>[^^3h Kgm<5޸%,E"qzbfD %EB_@#FvXovvt?YQXv!#[؉XXo޾^؏ @C =҇gTO\W$ٗ ~d.b׈P0VXF|MTSHv޿q%y E#gǒ-ŗ$2ngm$WXds8ɓ RNջDAaTt*ʂ4"Y >%"NZ~|֒r-p ۄyWڐ *͙k$Eёq2:yInߕ.q$RΈI_iƜ7 D k:9 * V#* 2s:\=Т{3-MA[;}[!oֺ!Px_1dJMiiZt Uem nMMxPv#ZCpZ7o.nQ)M@&GGz+Ť*.}Z܊`!rq7A6g+ {S'Rϊls}c#cER]7G:CQbA ]@%\_vqLz{ 駩!&rd,Av}_80`Ƃwʿdg^庞ڽg6ƸEvfE,%;_=؄x?|*#|S4 AT!欷io{bDVc؂EԜFH*&S_]O>(W$qQ6W źEӮ'ҋ9=\W 6Hx2ͱ.):[Ƴƀb-`6B.b3H0qUmhAMUe06jE'L՛'ca];pؼana\Ex>Ҽú^0Cő/H r78YJ[ǠڹwPl|i ʑWsi6S4^+ȴ4BByO%(1j4+&@sDx-D@i1} ] {#\L(@ѭ7yy"1@W-K{/簉x+K4Ϛol "u鎂eLiQ׋3B#4oǜ`)5/`+6q5+/2a(c-z(&9\.K(3kqPZ`- 2|.&y)]n]Z.k|_fbbsЧ䅎]^/ɨl8)Ɇ|0n4WÄѩVgyce., d8FoqxĈX?ub+؏OaCiq|tjv^U)1VtdZ"=A6a=?:Llrb@A'η4qD!#1,#}&mC;p`5`j>`!;x%g:NCG5卼@%|ň8׭,A zK8fbՑ; *oGK;xM襮,߹>7297eU0+vقfڗ`3I?kS h&^{FY~Jme e6ݠjkKE3dFPS-a wqI}kkh$;jџ햒tj=IvV xyHMG ?|aR$ SrX.#LvCT0!DNo' 5egd OLvp&oX2d\}l%PmZS FNA~6 Di,NeQ{`DePP yK)* -]) .#Nr_ K%ᠣWGX}4-'x5LN_585&dcty;Ǵ:D9;L,P A"o ^H-rM%D(b)eܧZe(t ⑔;,CrdZ^jϓ* AW{ .ZT)^j|<*9)Ǩ5dԾAtrDS ViãKf3RHFUH?)F_KwkWOu5,5߽?L?? Ŋ:'1zZwGݵy'1JG_kxz5d+g/TtkZ*G1GTvhA.jЌZs?+Xd>LԮN ţRqRQM˓r^IA(/_f:](?aլ-k?0PڻU]_OGŘ5UzcfJx ._?}`e><+A[P_}O'嵅/Ş5m_ 6J,GhI Um״R LңH΋+`KvBk\P^.h]KLo. 0QOY:`",@Z+2D8WבsТg-l%c1VnsӸ2hT #09Uh%uKeO07bTPJ"·kޝNύ?hփOַŬxSL`JB 6  B|j%XT/G ZGG𽄙M.8xdjjx wxj+ ߐP|Nf,.yN_Q8 + ,{}d/gK]1!/˸]_z4~]M:Q_+xpK]ZAGI8~bcBׂ$R%-lGOv(DM1b0i s!O&>L p@+iuom~AQ1J;OH|`x)F$?y}1>l{9C1M/+/ ]'h0^!A7wi(}p8 UR+iNp 3WАJڄI/p'"ZUYp&d=w$fWe)G@G1Zs7W 8㲹:0wܼi嗘,u q',]#ރfȓ@ .g%R.ń(Ѣ% ť9_RHϬ#e[(q~,h+ d9)WSK!|޺Ns.vSmBQuWnx3L I1y8㎴j~qTo؇V2h;RCRGW*)D>y'revh;ð "!m\I,a_(IYut4W%g n͸:Q6m"øX?" ׭}~}cc7~|勗?~WLW=ŽRX1]섦S;c5Tˣ3sk+v,%$PGM[JYT!0_VPtOALM$w!WlTNCp/$RN,I,)A}Ha.}~,\ 3= }Ȝ.`kop|C5Pr&[Pa8e-Ѷ8?n;w #7U騬ghY3n' 4@M]i(␣LDbHyAfhPKL mvoml| Y}~ ߓYÄP&G'Q@9 ]J oQG/Z-}W(%/Y qJ(q5aq-A s2e@Y)踒հz1F;*+/pqB%br$>$]bET2J=#QSmН`K؊H^˼˜&u7\Gǿzf6?XbM${csiH8r" nZ=bیZ)z1G4Om5*MV7 Knx199=";a U vC?d ?7xXz6g$|a|6wA5oARf`<쯨 jfU8ɯc0ٽ\X"/f^tL4ww-GNv.o _C:NhPl$k2HܬVDԫOxLD]ٛS*r4+2.6MiŁ\ J[ֈ/@{E9 ?CWBc75k$T].ZcX@:gYtTpPh* աd\.JK5,]ɏDcK /2b̬LxWzibH#yTc+_MŶ?b.ǂ˥^*fv2{nQ7Fܑoggx A6GjC94jƥ!K/Xh lrdyBLCˢq}IpJm55z"D涚E*qd(aiJu 21Ή7 q22Hge<O-F>-Qn/AԽDooݿ'=Ns>ő뺈s (J`j-~ ?q ?޸Okx8Cww y T%赽J8eB݄M!;]Ⱥ?zaSu^vv)B]ӛK.);%(_Wɩ&%GiGJϥwzVwo|; ϔ2}it Ujc &%\AO 6YM=yG'0bp~,:e8 {@ ҃YENs$H~V/<KGwcNl90)S <э~XHA"%wݕ3%G \Ab1b `Mե吋 K3lFQW8 λuh;lRL1=wm.DEjPlW3lɏ`(p󣍌y[Y;Ac3gpU MP1?¾V2|Rqt~m<:*x#u\ha%p5z08t!{;Xݏ& ?T(|36!bVßXЧ>jk*gy`-`aq)9f <ҽye0X Z)EZQE ^B2 Rp|ixC\wqjt 覃܋qP@&U!ejo)ɏkߏ7lNܮ}΁O.5ʞ?3IМN0'<3yU*|qQzw&vlNLYR 3_ _2%)?I[YnW׌{dD("p6h ej~ƒʹH '5WU; ?OCkYSFL4*x-@܀ (,%}ڳf$"q H%x-Nei9 $|A_ 8*oGr !l.Tt9)D0|C.}jgDI& |Ƨ@gNL*eڛ S~ոfބ}9f`izDzBY=Bfu-:CN]62 H$i!b@ #4 vQI(ah(~m|3m0T+tW ŋΩ-{+!24!*n|{;*(z j0J=:\(}gt~h[60Q=([<(^uC^2ԡ %^pdl3*]X=Vyaӆˏ ?l A{(:DL)v]֖FXjKu#Dq3N?ZuNH!T>+k PMGe|dxҷ;x)~/yV1S~WS&Лlfc>"&=o]e mݻh0@Ww6/ܭܛ ޸#%uIY@}u߽Geb03IQH=/Đoo`d[L>=ŒMfY\"ˋW7gǞԦu쬊 ["":2~ֽY'M 0OH\#QE##&L|ݡ\yX$@\B| *-눩ÇSm߯THN0i'4fИ8u.*4tYt5 c:Ґ7Љ^R?'xaΝ;$$u 9ci4ftH1" PHa1UEގQ==t1bP42tRdNlZ9[C{2ǔd~4g|ʮPB/Q{FҥM360)Mtq YOس.M,[Y(?]d=NZdWQ*= w)Hخk98F5"!QVWihX%>EkPCd/EAn)>h-C/efu4؝TCɧO'4WX5J(@Wjd[*,wL 4Wlk3+2E^^b7IN _lQgWqoLJTC3/cٮ`ZCۦˆe''Vw Wp,ꅀJ !T~w{8X_Bl}o}! qĩ6"z`x`䔣oZ5m e8.{MMx\0{f9[&^4:  7 3EԻ:vE(eޣ9OBBޞWfұH"Hb`m omM4lV:>39)췞̛y3o!xΒmu]|r^A-kSF)f۳VҾگ2CEF 5˸Ȉ^~෶{)^Q L `ʊi>)ir'6?]@oq99 R˲~-%l׼K4=Вi x&" fs 7g/w A ZLp*eF*/AO^le0b, QܐXok ,dB]2WA䲂TR+k+5!N2ݦQJqB~d{l<'4!=. bWhل B|(#vvnhwA*O$AoB~Y=bC#j $/R5h,}T04n y0xkU^ibf5XSh42Fކ?6`x }yNW *u[ qcY{p2}dt+0j aByzo< [y%> Wq2|Ǎml<6|>ԹH6JUqQD5a2O!"zXV^y~,4L^&ZxQ;Y哃򞳩`yn)E|oآa|U J cuO<=}o;'"`"JT9$ JD1u,||ӎCm%a~O??0t5NiLq7& h;ln= %(.nU|48,sHz!;MG)&PK~3j7rF$Y99*ެţ֊>"0EϘ JC٢)aH40uY}f#1x#ր!#Ld5}6/o MV\dkӺ2ˡmlm{ 駅mkZO}4pG8( [+z0xuU8Nrg'^$"&ÀI~qdlE~;dr=z"*)oF@p+ 48p8\B;î&+t_m«{ ։S݀Ѯa{Ű&Ҽb=~MUsHLRe"<}QڧwDtڟ&I| (5/TQv2I7`.eu#0`$ J!Q0 Kx! 7Kr[ {j$jpٗT<+)+NO7 ypO`!ʏiiXzD-8)0w"+W%ԬҖ^"HLD R%.k٦re҂L[=ϗQk$ |$d1eu1˰<7Yd ʢ,[/B#P *bKm4^be#CP ε׉⏮(Lj$Ϸj,UM6w8-o0Hry 6~UͰbehiuxC5Uc1N$\6mkg5Â>'ʒ,ψNݡ E`U-, Ep*BKyL IpR :ؓJBlX$C6uFD.gr:\S%9ל}ӲOMIV+tdoY6DP zE Oؗe"PνRĻ !#ԛ0-C"Na4;BJ TWNb4:!V 6'>D* \jaGAfZG t{m~.b%Y2&NnTs_Ȥ6 ӣ)T'>=E)OrD=8I9)d+۰n ~Jm(Quyh1[kwMI ͖gBm&FKMog2cT{ͦ|o,=P3'.q ,2l#iAfxX/oQ86@[ - hPx]^ ߁e6":rD?v5^ n3v:QGÒ|f!&sډ(hQ5j(`Tm(~ T[icXyi,0UNu,B?Mߐ ^8}ꡀь3<Ӕ85QB)z"]!v.\( XbۯAK,첓/6}d^ vzoXOm*Cry("F(*Y>/@FȬm /6 Ohm3HLV"rD'yl\]`"$$NZ፶~9ES Fr)wwq-6ifK q' v4r%I2vx_qq di%V*e:ihPX9L!tpKUz吨[U$l !: \/_{w'?q$SLD#|!'Ic!/|6fy5%F$ Ĉp'h5”5nN4 cvDj/C2= UB5KL56Aѫͼ& %}.`gv9Ty}U f&Á8n7VPdf[m< g@dE!w=ɾ;Q,lxږJ+ 9crIQ=׆%W wO,TYmUUZ.0s框 m |hC0@&(dl](Ji i2gCyȳ|ժ.i^2:a}.!0*#Pg3; ]v] |kD ̭ؑPf>!a$ f}<կu&G 5>-T8=WJ _3Wˡ6BcRW{󋅴UhΑ0F7YMD4DqζH`Xy`$; zK'Pi]N?-Ԁ^lovJMM dL'T+%vcR'd6 % 5'|K@nanmKĖ~N9 š!#6n";(RNf Q!-0A:n UۆD7X-CSV PuN=0 RPmCd58B|vmF`UdC9pToTJ*( #tчnOˢ) MDHjgF-a~ThȚ[Mx&T|%IZ԰[(g$FG/K"lgȚR-Agr}%3ujhRC5֥AwR͍s>t^uuFs|\cxSYLg]n꜃7 7.dǎ3# RMsKcho.t5Dvs.Uf_ UBJO_Q&tTOa/R:ɓT؏֓Wѻ)2 ~W;B꙯Q>1^y m׆S-[؜\nֽ\8cӼ`~"ZNh+2z{E'xݻh.!$]K]qJz=T`m471 hR隈0Aaxaӥ2xi=n$p'F$=^Ŧcdoqؓcqc85 >bcE*Z'd'dh]D G"M3o'!Tztʱ1)y!IkdyeX L2PzNI0.B8$w6sK9UIdC0\*LQ&zB"zD6j=EGLm'4zQzKs#D|8TuXjE<{\6еJvlW'maƤ~漠h9%pi[-;^M8m_q*^!D tݖR_I޾j x|8Xx|0Ml۬ھQel!\H+;s>^Pj{y:V`(jyiTm#%IlcaMK°l\W )r;+\I_q=tszZ6koix]kD1#]Ɉ%_-We]m(s2Udd?-j"BS)c7<XMKlBvk>9H#3qq(QZ29µ8*)SW A;>\{!Z8̻V,Lv<OBn,O8~a4"y٫MރFHIX7M&z?Osy:^žsoYawIJs;,K履q~|<ؼ;l;Uf-^ "u כng3 dbw7||KVW;J ̈́}{O'J|\]:JlY! @ .mF/Kɼ/6 Xg6UdN"HA`FmUċAP H k#EFhWQ :۶Welo(Ɵl]ADO:A]>ETGQsȟnK"K񬚾x2?VD=" eQFE;+pQs׬oes~]P[dN{v˨mH!6^<U0(Rō$ dƬMc=m#=QYuۓʷُ_xYydcAMo߶ߗhk=gnxrk^}EtU&zƅ7RkC4N_eejS)RTެH } P-i-!iLB ]os9N7k 'c1wd *^:lNNeluCfD4 µDh^0WM0,MBjݛ1qWTS^lAҒ֚TD#u% nN-Qҏ2aHOGgjD-Cͤ|X;7F{r2)J5=F˸L,ㄫ$xϘzK?Dg;kIT0Q&"C.)`L2Y€eaA4#Hm*.8徒-FdװLga$Em %YTIK* ʭTe^ʲh&mE$07#|0#7k6$RbP;mpc^$Bޖ=t;$#0܎A(1NKH UV,|un'rRs51LˑmĽx,ʰJ^)xC7*F3걈ݬK(-c([BE#nhɺDR[AmFk?0IyӳK}28]X԰B8pڒl3 >~CWv1ƴbiDD~nɏSV XvzbL3a8}~wSgs?֟;ߟ޿}׿ [`,>9pB➎r8C'3z3ILe5~[LgR*g"'*[[5.US;U}Et$coǵgOlbK̏%&p=[ۯ9j&KlqC2m!%R^yxM(X7O.yXT/OOD1 r3[KjU޲FBFTu [ +MuF4@Z !ޓTJMD~EHXZ +'Df56'GP]1q=GdT Cm˞IgY5b$C !^ռf:&:XpX y$h FMB=s{5?ƓaY֡`%U/j|\)O͐jǸʆs'2Z0:`Wѭ%'<kdzx}0eXϕHv ;vAi!{J=ޢwZ)T-!Ak6?ͳ$'**Kr''5%uyk]Ϻ+¿ Ÿ(Fz7c? O%48{U&tb"O%pH 46^Ią7&|ʂΤ"'*"i%ułgxb;̒65{V \( ͠Nm7;(MwS4; 5E"䴨Hm?#ܢG$q<+;ܭs+rr4ʈ3уa fbx06B Gwe 2&c‰I!'Jae=ǒ-bt<2k{ÙxپXaQͱx56HbބbyI1V&NP/ww_zA1HW6o}q|[|41}/lΥ|yp!4|$0 .hj-CxD4c[;œ aiY*C'&CH6 X֤EZΎjkT0ORؑݾ$ gӠKv;sȝ#]@B,ۊfݱN4 dmpNOs A6ȒA!Za8 89qڂ!,E7".2p)4B?[e;-sn>"[ [X@ D+EP2[AeWJ+SaWm(Vg9\2׎y8:@v #:|,[= fb|ꌋ'?j W?@v|qhn/ivnF۟Gq-?> lݰ4(2,WW)d~یcPS`Eܒn*S HE]wD0;i5g'%ZQyIdxVH[{ ʪ`S# (u$R1|vFZ He.k2}>@h yOFTl)*k; 5. %-EnLP#<Ǩ€ˍbm1VoaYؐA7(j+HiFx0 Ԍ(&a銅B v`Ƴi~pX?l>H?ğ?0|BիB=ـ_o Y5_27xH(o l]O{{??ܻ9s].*a__A_zXrz?魡>T6 W/@#W\`鬋Ʊob2ʁ=Hhİ*Uwx8o '_Ɵ$B # MöO͞doc~M5wk|eA>Ѫdg`C Z4ȸu5ū(̏Sg$6,t/9&ߚjΎDh̭ `l?]a5bڕQ>JH2y %dvr ()to `*/+ʺ 5A;E=PM/U'*c܎3U b}&4G!yVL+pL>{-_>MR'HYii_Аi3#{~6A/ҥO[:(0Glv4|RWrUuh rgZNG jMHF9N;z) :nA/x,lQۅ<8,60FgywfLmYŲ=u CD%K*7v-QbĬOMDh\o-ekuojZsmmbƚ=^bx|u>:W1xRKr0rTnf祲t1aTq(29ק@؎$v0n U'Pk:O.|cqݏ+ c!{bVڲd,wF 5OrX,LUmآBI@H.Z%[$nJFx <hōBR-_^48A.[ `ٱ .:)&Fڢww;=?.Fn˭E6dBUbL'6MuCG@a;(~e ` R_v0>uxzݬ=}wTT-=JO%֐m_5/(#qgZRs$eO0H,fG!1tXG]j~|/4҆.#6LYA<ܝ~S{1Ȃ5 C`XSac+t& Ix,Ӥ]|̻Pw`iC4ІV;Юg&Ww=N u4xPx=%30'vU|9&dĔ,#J},tڷ*bQhI.㜏/H;ٗEώtyi$ɂ eF Me^IDLYsyf9*yO"ubLVq>l dzUZjRpĪ$5Ģouԣ?MWPkt{x5I3z<}%z-ؼp*pL=)<4b;:_Cٝ)"%q]({9`RrUio\Y1J aMYd{,>arlT'L:#@^Knf U%pʭrqIHalMVu?O׏5lU׏Wo.{w{kU+H?Aba`Bsu.J@~2[W; uwv{.vw ^-D)or'/#Ese]?*m'27fe5^bw]p;lnoGvo_ ˓H㪵:`#n *ʱRp8w{j9ЯMjITb\j0ZYw\(vEuaO) 3g?)aQs Ul"WiWٴi*ww;XΧNb-k5d-1in){Z4z Ł[lG;b41P BR`=A^w愆E\?uN)hΒbTC7 aMU /.9>DfB^]o-^7YZh]2K ~J'puFT*^k b"cuiJ5tӖeCD[dPUy2]L E"cL+H@BB|HPha9n=.Zֿmygk\/j7JIE3_{2 B`{>R?1ykFUNc lەN۰P#aCǯ+U6=)nd&FmgEebߛb:F"o#4s ZEӇ|IYlwvtp 9_47?l3`}5t9 +Ӹlɵd&vPPWk~AEjkhIzͣ6'Qw\}G{)0a']'2e7PkTauTA҈S=s\qש[vjTDܟ=\2Ӄ>)1^9ջ-^YPԐG NȲ4|[p"]?m`r"J)tU DN$Vl;DzM]X?߽ܯࢸ}&߬y36FT!IonǫF }+Vw{mnA]EVh1VJbgsLgh~1ӕ'yt#Ȭ.kmwH?ZOtkU@&__f yί+@)jj}Q(’eWNp{9 ay7gbFtF7ɶqR{q(b1 +*)/Zd>^y^*/K;Xݧ)1ȮHII?Г*4B&**UBԉ*~3*޹+>~%~@t@躱kn 3W@e;o'17^7𒱔j ?%ѝ'Y!;O=V+6@ O)&KBS3QuKEK|̖h-ĮR8o_U_T 9-C8[B[f ʳ| 0tv _T0CuO(fG=)7p9]HK,rb4s>c6U-DG oòƼakeG1J* W?e-'WRU>[x}1j+8Zw~G66U9]+*Ms!'R p@WKnR9vzӦ[h[pVt{ a*r+`m7䗰qX64LJ07j1ǻNDIB;jAS"i/ς:;OR]O|WSt`iB9\Bc#XJtį މD$0˅SѲڰay|KΉyՊ˂E Ug˽ɛ`"eE]($Qrfw_#k7{Ԝ>g9}&5Ki5?9E]+{YX=m,4iU{lbh,rRź;kU^HI?29 =vG{f$(LxX-%vp5Koɷ@ɢ2\qgN^R2q[˾-?5y"68:#@C:VuAhV0q 8hHgȫ~@=p@&Q]eӈ oQ[Va(i K[B(9Aivoy0WMx4=K5)i㶐 DP#^[-gF <7_F T"e"*Jl>< " %Vo7J 6i(B0Ne;h=wg5#aQ\^;*hfNd&L388c𽃭W|AF+z|)+J,Sv<@@hۼ1guJ|n0zAUረC> ćw>LJi8 >L_3xAx uECy@|[l. \ƽ{K>D5QCB`0E0ŭcOF%oԊ"`ٶġ1/yYZ!/cr)ܤٴO3#G0:@YFWMS<`B P=N/;zf8 QLmK^fND} ĻYqt)4H"p(81'grBu_ mj 176Lהf;8l瘖i >̹ ۛ_4HXc-s[9 ++9 6Y l%gLlP3QtiTS(3Y`3o ocxrkᘒ?F;D{tO#3GaDb@hGtC̳fkK*1œ,]΄Lhhy5hZ2u I GLKCs`zF,4J) 8C1D'Ɯ h'X|8d]~.ӭ u%K!hvpn ؼdK]l?f3+i_\݀kx\^btjQr]p-ws}h= [qV H$*fUޕ59rbIgSZ,ڏ|hIn6o?Y8ij_G_w47$Zۭr{͒w>փ=JR yzYqV*n%nA,DC>l>]gNb̞ؗɽ5[qЋ澒4{W 2IY8('ł1c%,~ɟVF56_ 0|biavl)j+j ytJ=- 't!fg $iOHkƥ;Fara4Z0ٲ!#4嘘L؛C}}#5m0ڗ%l_aw'<>v@Kn4aC2=}nG$T_EM9 ou<o)`ju!Ƣ; ݭ+ݰ N|4J{ORXh,ٱF2+O#Nx_O{Wy߅$PRTq@|+cS L;+WzM9[N85c*ҽ Lѽ돺@?͎󒌨KbYR~--XF.^S+;:Db c6b76.ָg S띘g2EAbӆ-n "+֝m>P%#S8d#pd]ە:~qP[[Yl0w)?6% >xqs+'I+͕(\#Efq| y\e8'q>}_j05Xjct6jnYv)(.NGuBdkQt3]v^~~zl>kmL-5L壽ħ=ʀ`}:V[ G9, q^ih~{_]cQ.SLeYyyoE u u7lF[C]P"<\,l//ꃛ^\]F@B-^yEҢqy*uom 2p8`א@2qPΊc/(ZE5 6R"E H}t\8.g@ao}Qh#@UJsZEuUr}%վHѹ5WYqu As ӪܹZsTg]_gNܮ$$"LVdc+!nsFR-:CkJԍIۮ#*]Vؖɳ .lK:b?d @hUŦ XQ!z'Q vI-2fr`QTCɻYX[lA;o|X-$y^gWp DJAY%)`k3Hh`JB^^e:lןmalCE! _N [B ZpOѫ¼cz vqeKBti(4EZ˞~WO iS4dCl0-hٻ"d?7i[?PFH %i%v)'E{^gs*-㸸'גb]W"OC zcK )J|<ؼ;M9=7uM/'ƨ`(9:; B@"Qʔv.01-yGj4W (w~RBnwU!9m 'vUM1g@ݟ3 յZs\XB;~-ggTOOqSI{P: y!y?ӮWx vW>VcG( |oDˎ|MvCE$tzSY=L*~3}Վ ;j8vWQ+!x4!R>h$uEW(JӘV ytZ4|g;YG>TU쨉!j ʜKFve+x;A Lf~3h C}NAjuu^J~~#;4E{U,> 3 "p T#T6aYjZurݢ,qP'\*nfDIFDM8a+k "iϨ*_UkwWo??oOf0hk'@%>X/zFocNwpkp0~~yk/۟=t@ݏ΀;bQEq? -Y>˞ dc*nwU!cuT,/G6ʌrdJ|bDҗT|:η>~^?VFUeM"#ҧo;?2LЄUKq%bW ח_>}'5z+0Ynz3gd{w5~y3zݻ^Til^ ض6&qIl#,Ԅ.ֺ{=_{t.b)f"VCop:T[ۥ 4?U^3P 8 F~';l|AɾbZ^ 0k\|^i5GD:`5B!] 9BLM**,̊}싧^| @9ѳO_"?e58Ȁ^zMB5okD7B| H*^/{,EЧ=i8;hZXHT%Hu̜A)jƹ@JO/~CWMx^FEC.^27a{!;-{‹C{tR-,4غ=# Eu'2 1o-ʡ:ڮ䏪" hBtomIo/9 FƩ3|H *xd{;k f?:|T'(πrA@ qY-zVl4 q cH8, LhA4;yn70ǠҿT;"ـ> |/ 5%#Tm|S1|蓫l(NB^*˂ ,0tn^8KӨʨgpjP {H"J$RlҚqlw;|8|]:bvp7.@S EC"JZ݃YsgȴTf/CwZRxR9Yvzf-Vy.mGk[P gȐTx'gD ;]4h>xz;w}+ŵmR/]#vE|8) 2dYfiA$k6wMOZy%. \SfKq^`{ي#B:/b+v U`jۋjETD< 2;Q 1:Ne܊t ;^^U@B__ehg?PbDXGBEx\Jiv\ѐR)۫dhl;ir?jI*V)GƳ8/}2v^7U4$ClZ )#2&QH?Hb] OIػ + lq4thB]s[6W&=wsruSF񎄍6zwP ,sSm)N EŘp9>29!&ai>hY|7&& 9CGWMƧv;q% kd dv8z v)G dllf?S(2!LN@Cb[&w֧|Š짔 O>=!QhO!Ud-BHơp^Gc))w@QJ~DESOSJW%0d6&2ST]pm1zI Qفd^i |jӛo [S0b4z}B8'8Eڒ% .bID_}%r 1򄅔Dj0L𹃍!`G9 RYk&rź lOekfLvM)Q:uU\hȝ#آP,CkXȈ_@8 \窑p+%(n@jrM~9..gJo8?; R:CkRr#\qN&͔SD+=^ iP-*` Ób =;赁ПFlF {eWx-,m<:nhFPO + ffy6*)-/æ!/%>n3.lNfaFo!zMx+J551>FSJV"E\),+]Uֈ[:grF΍x6UxY<~~bG6J ڔ-"Pv*CKGE'LU#ʖjDomO5BɇKs̴ WCl!'d6L;=}+%EQ@OP/µwz )ƈ:ܦ[_?[p7ǵ;XuyVTM}][QgQA£ĝߊ t/-YCrh/;?V$E6! >[81]̟򷹐 JݹR{Yc)Ys͡*5+C9g*g^;Vrh#3(^r#hE'bz QWyQ{\L$p5I˶fekz 땑By'L\sخ%q-DH0._4q_$e:]Jn"ASHq)\Nr~"[ 1%6jopΚW| e5x8%A;[<'tqh)!h64^mu b 2KEAMNӔnj qb1a{jElg۩R>U@ 0\*VM dYˉE+ϣT܌ |T:Kqk#\fQ:$V<(+VE]LŐ:;0uI#!]!-Q0˯H?:,P;61CHO )F(T9L*}_Ņ&R쁻35$0 {,KǎkK9 ӱJI-Z.[=\@S~U CjfԦ -7pp ¬u0MWܣDC(~%<z@^Ρ/})91qKv^;\\!KJ hY7{gh>6bIqJ&KeII> ;8^zVfk}T'<ݸh4z//)dhvZoq$պJtF *(n(d##hN LVƸ' 5x8X*C/lTgQ FÃڃ.X#dn_kKZ,QZb] MB2EUbv$@yXxsr~M-gLrK1s#V_spEt\D^KݎOrT@/`b;A7GxkܒA{ԓ8bS䗒 $.`b&ɐgBxȔh[aJg4 3ѐPH|xIS yAF%]>]N̺QcLHEl d7rsy$Ё|նa`;!Cܟiv]xT<0lV/i)O`*!Pwbu:Na~R$l" o(O8XA1 tf]}eX9e;+ !'ZTl[^nZHa1Ffw"T$*(M'B[#;: &-XXsx%/>3*K}['f9@k7WgOxa MoV۽~F+Hh$Ǡ0,c{0W)$XP9mU{=1V譼, 5 НYUv[0fUP/!BV w2KVINmQKx0(d3!jb>SڜոV='"p$(tdyn!J:^^M <.t.Y!kQ“{BJTr,rӖvE[G!k2Jm/:ԡD'BzAiCJ]uC4`r#{&. =qV&1CHߐ4WqX$5()QLc3/G4;E%u=xyIȤq#Ii~CءYlMu%8߽{Vs\ 0ы7)|Vǰ+yw~ukb>RZَkPL}"-,ц#烿fӫB v7د~Ro :NoDKy$paΐu^Kf}>RʖG^?id0HZƯR'Pm4Lӡ,$eT0`+;-ݖ$mI6) /_+ l:=[ّ^[9f]QI^w>/p1O0 o?DmΩ)p 4&\҉Y5֥;Ny(j>`ˋ Ըu@B቙jV3i閃sinaw)_s")[v}EGsX bXZw$p2&ĸ8G씔^/ `87,N@F]=1>F0ahOa}o鹘5~eV!Y@ qyosRȿP \nxpBcuw霦wv,p;֪-ExRU(:e/ڭnO2ggE䚧-1K.`cJɫOJjWb,Ym[7RR^8nu7,fq5jVQtQ0rZM,2JZ/Բ.2Uy¬ԝMB)6m7Wd>GSMςw61S7dV9xE]$:7au1-2Y;Gj[ߕ]HVo(_=K/4Uo3:S/@ǟhT1\Xe j40] (=Lh\zg~>A]CjGȗ[)ӴLKU0K1zSUnAū71]H> aZ %,Zv8񊦞ꈼFp5YTdEB1Xh̘b^ٯYɧoUL6qBʚ&+I/zJ  Cs3?;,O삕@K6k66>TC0Lwl'p}"hr6KŰ`k'>r!`$7~L0bC*F'G'մ! +Nb='Z9&v4\O)`fCb7x|)$=f{J zViPau+Z-n~GI!3r,¼\Y uQއ4$\mjͶ ڬI{ |?C&0` ?_&=xm.N>Xg(^"nYF ctfkFNFG0Q5#œ}qҭ1,-Ŕq%cjRdK+iZ]]%;ϴ<J2ڠ"@SƁ+yJ6 ~>%4Ag, ϕTod]/4 (jq|?4U35oRD 1ڿZ~N1t-:(-39XVpϊ`kp{3iB 'GNX FMoJc4m9p!@fxǾa^ &[P}VgI M=63xQ; ɼѯHD=c8H . Ox'+>M Zgg x·=aRGl>CČZjt00|'La qo ?*ymBvnt}hKt39W @4S}"JʹTȱIK:5Lvv1pcAtY rvwZ#;|MjK?Z2-*⣐#Ȕ>%\SY,*gzaExQ`ȬcԗeL~DD=oCng(W2wѓІ{8`@Lp }ھ;yo|ty}lPdt72秈cGPTamfnF߱WZ H5e`I9|45M5R`h?;]xzwv]x3WpPݭ..u׻vj=/ߔ4]p xiEa KQu.iTߪ&lvK45\ås_dL1ϏFS*x࠷Vpճz5ZEyo- iㄭty ϼ҄h^Wߊ;JbpnM" 4=irE1iu^7<Ɂm?hB/k  +-V)b$0D#2F_gbF|EA,={H58}CِGLaa1TK:JQ.Yel1 7 Q/m˷gkPJ.]:| _)Agz/ >sž->K~o(냃lsVN8x-lMDK%%w+L5Q>>zN_[O)Fu:D/4o{;Y1+BTRaH=+C^jC׆/߱ۖʴ,/h`t/4P.dMd>tdCJm!TK{745e sQ:~me=S%>t`'WO>k)fu,^HVI[I9>sHw{93RK'op[礭r"qT1_~wbYAS<&6bIvλY%mF4tV% ${Ɨy-؆C׊^[p5o`mKfă|\L-*+(VĠ+jFdOY1!J`nn(,O3]$5lK W_ɜ&aJ \ FN`ĊY5 bHZԃC}3`Sv4TOp@Y# XE 8LOӓB85&5.q@$/Dpɘ}q|i Z,MrT0CFXX9"?x&OI!nHƀP ,6sLn==@@((=:q@$IG^`Y2-V Dd@?񛁪aX<.Gch&)tI7!yϷ ~ORRqg,.YMWלޭgËKdA_QWb[9v!lmD> P^ǫ5̤ɹ,7?j<Ͽq5Deni5_6!l1wlкeIE UA k,0N|m+ЄóxO@oQ& Kl :bNΔĎ"d?xtbvCæFr}Y,,ќ5p(rY!I-MT_>m~Yuet c=ZXܺ(i5jOHz:buwd|ݦnkaޤ] rz8O3#rhD?ړ'?T{Th|EX|HfZ Y0(LBk*6[4(V=l$y\72b%N' ɎǏlߝfeW̥f. bȏvQQ^CqӸ!yf.̈́SBO&5tޖq^Ǐ y]P؏ƌ5̭Uw+%E2Jl(xB"%϶=SݧH36"HEё_!ȝZ\{LG/xI_1f `}Du{8[7TC@X w퐅V7ؗ 2-9zB!+?Fʺr-DT( "عxgmdWivToshrJ".G;gM*ë$,4I0/FEݹŤG=<ކ_!a@DvQ܄ّ@_|le`&彃Axho{m.[(A C`LE2+Y-~) 必WSXauSrzԧgs>erPPvdZ:g *ѣO>Ȥ9H[+21~.7jiƁzM%$Eٮ.m3hi c),wRaؕD](>ک)R2z>18yWA3ʴcWWK-ڍYYpB)^] {\+ aW„'ExhkՌ]v/?C*鑭bVE| TW/x @Ȩ&A'Wܼص̗[Չ)V'P-%r\0F*9& =ƙ]d؅<޶җd`n)sZ-:G/K݊JAOP$3 |M!gtD0:ZLlX eqU_LܰQ*m$v U$_rjUC:h\ ?U$<#Ek=!.[\?eAH<(^Nk3kqVH$)2DFQI UN 6Cgɍ9 }ǟl#]Rۗ(u 4$MY^BG͗) NAԸ%u2U#En Bp&[֑o %*jI^ }|s%QQer2FeEPA@54kdF)W|J4|fkCӥpB`{g}-{} D o 2TJn=^\=fI/QT`tМPyu@cp2YC:ב4d맃ۜ-FyMF9D[>jT$ :T_3g26 -3,?){E:P * McY}1!Ƚ+7&uZp> {l8H~ ⼚qkK#0c@ГZȝC`B %UƪՅML`rJ%Y~7EDW 1aM!Pgku`JN13e$]UwI( 4#ֳ57y,/GtsT?HaDMܣYVKCpư&gTL9 8^.^7]]7|(&{kӇY=Eb*Gk [EBy$-AWw4W6_ sP3% x,mt9^33n]ˆaC]"ؕ[:* hjJRʽLGYH~G(KNxloxő`!)#"e"@s `&3X11^2/JFC0H&jj2ÛPb4k;bTJ + (j6*FKS4zx0  * T 4CSuzrräӋN/ȃނ f;?iC@ T AAx[~ b0^2F}# A bWh;wƃ3ϡ ')>J%Ti\UXaV &\qF#>I'N+rA<˞LczR szS6> %J mZZܤUnͪFU{@cW~Gb<1@YdR4NLw uv+j"L?eM.ٳr 2;Lc5&v/u9u?Z@eb␋&{6ۗ2Q] JQ(Pj;,:Ej9 Zc&[%Z,ѥqV_@gj j̹FR0zzY3K7^;zN4% cElnǦAt=Gszcp< nҵŊhskmKY%{|}V b‰ΦKK@k(fԿ~]A  ΀B7ѐ"1CƔx?t;@.m1T +jr4LZqV "7v/(.pJd K8gcZ?lZ-곋 a Jꓟ3EdiYGHl#*ydGiׁ&z_76/ۚV8َ6q"Ǜů^PћjX# +'6XƼJ3hF><4`'Vmۆ y--Qd9rܘk>;eK70FGT':y-b͢]$BdF>aX(5[ ,ׅ#2~jeOHYb4 )t,8 ,8l$N0㾺N3Yޢ&eݘ яz sżt®fD^(.vF*V A6 |g(O l`]uେ ǀhc9H"ojcŞ/[ɨ -2cRI`68nG,J$I.5缞V0{q,`0 d=)6#^(je y^bc{4C6vh=5m+23J"'u )Ɓ#Yp-z-h(M*fDڲq֝!̂&)frTHN|ZK{Ѹ@5~{jiu}{zl$dEvm3_&EzGߟ?1+ca0>$`ND֯t!q|KE*Vk8ɴz8d$27 ۍxR2IlaDX*Qod7C6jsSqAYNitɗl K2R`oEN&ȁY˴mL' e 5B"$D6} E$aC^E6Xn{N~^ |\U EXQD65ts:dY?Bq_:D1lJ6Y.1fj XWB^"絚ZvakCzG8ȯq Kt\: @Ěh702|WǸ%78lcqD3H8 T"@6|Tu95:57:RJEntqo;jc9 _3 Ηm=^; ^e'4RTRk8Plx5d%bcF3s8Nrlً25?;o:oFIqp .fL$=K=i$o(q&YmhXdc8|$ l {JxxE7k㺵qvTPx/+'}Ъ2RZ1f1SACĢb7? 8X>+G%$5`r©qs12(`! bϜK=6_CEAkNA:=R)m6s:K5uhW"A2#_U[kI+y>]/ |u1|w;|!0· CaʦDT;7 жJW42''q7.". tBY|̻ F.-1kOy`IAeI1G(/!)Dli;B$IZ<|ZZ OaUht:lN֖=k0{Qq(ۯݵAؾ|-y٤*aԶc],;L$W)u^0$M< V$</:١s7Կ]>$ `eFbb4z4&1}dž0YmvT{+s' >E!Ų8o %P93w~=|ͯEfc֎ XFup^ITEM_?p4@h/Cqu7?N?<ޟ{?Sdc  OH+͔G`ͪe9g0*vx-i#%f^"&ԼG# 87qW*XK5dwyIt^" Ԣ$,aI^a1D 3 T%ԑ\b8=YP[ pƼ*ft'M|I>}YU@|Jw=ZsW<˜חPHgu>{+xRw\) !jA$.`+?F]'_o[Jz̗|gM K훌kq*A- (U>]~ϖJɎܹ17$І21O$}4#Wȼ?=bMʬP`pfSv"L͏c5U`zU, 7icb!fU\ӵ\~ez:.=V! /OTi0}EbkT\ iuuEcrӊq 'ئ  j1p!ٮhcDT^c}x zaXT<*}/% rZ>|l8SپIPv}SZ}UUN 1BU G1O\&oifq3/C3tUJL 8 \9^Lf'É9ى<vajt7M};m0 ]-'Ĺ E"]F(!@CGЭ̒j}q$R4IDC+Qۮ s"M @c]0txU=ڀPx)d܆73Ywd6mV69Kbsc5bJ6E4hk׵̞kZ9iFhHiXX&To(-RDPkI \: .5clpVMؾɕ<ѧiE ^eL$zEm1NpT @.{Y${! rL,_sq zT ~x[F 7x 爨xKdUÆ[atQo7'hHLq۲(7a<_m;Y>ySj%xy5z;5]MlJ>9M{+ ܝEFw6Ih>Sn2 >7PQW ޑ&.OzXqnJ!l’"O>^9}EJGbR$!oҰd8<[@xIqT̴:+ۻz!fuorUXҸ 3## 'n"c!LS)Q*htlcKYWջ2o(7cSMdi>,^wwXMԡ/I!bXPDћzEEUoU"g '݀Kd2Ld7tk_! ߓU$EZޠ.rnDVz'!#7aŽd1w3 aW3Gz2H6͐O=,)KaW'1sbB=\ |]TvQ;Lbضl1]#`b5)@dBn0=.$^qM#~pl8ZL-ʝ=9|6[lp3a`BϤֈ3n,n4X-0]ӜwsցW8'ӌGYͻ8G + Ẽ栤])G xs0rHב؍euN#QՈ48ӝ^֡Ж ПrfzN#@+ ĮA ٫tBdscAZXio9U4X* \R Q5FZ#(^!r`Dx{qO`OFnUo7z37tb\,칮"T.rR^uuŨ-)hQq In%72.U{4c6Ÿ{H=OLՇMd2OO=+y9+knqYr3X ίǙ gXnn{ رr>P+rך4Ɋn&_$Hvw(ΦY6&&+ %*<SzF8 ˜Ƨ o$;8\Y U\V(OJ'M hE/*ɐagŔXb^!~1n%|ՄȘ6F$16O&xe36b7Ћ9 vVZ)"$ƱtP_b,n(2.-1~dK'TVzDdӨӾ҄PL۽^B?by[91Kbt+^@!e_c4=_r-{-ypO? \òFHxsD~R;$Be}Z#JhSgfNo?;w{ݽ|_qpGSfY1}!!{V>˳\8\&j6Y.<@Uk0^DhRk"" )F#J|d#Q f$l`, qW-vFLm%ˠn'OBYwLMӂO V)H{cD.3pB87b ÂPGYm9$ ˆ!56,"rr`꭫L#w}-8ބj_l`ܙKiLs^&b'bFg0Tk?R=tjtG U fQzm R?:p ?H8!|_Yxl`r|՜m9rdyScĜꡭlQ r=  d:jp~Z%AE~Ie8T9CFDsU|ʉ]sq$;" JlomXߛ4>#\k+hv=uͽax+R@BB @Z>X=j#r]+fR\Y9lJP?X~Hho!C/uH!5:lmdeGBl?P̒9Y;@0m/o}ψР(ܾwb~5@`L QpRFcEjPQ?v4Wq-̲!^Vz7*^^̢o zETWԨRXH֨Y]!oJeBݖIOEf}hn(^4*ڒ^*$}#V_o ߓ(d208O 3;ᦗ Z>V`EtS Ԓ=ָ嗮i>Ā:tJ뙾S(gzoD×eUSBBרS y^+D<B6Zo$QC*wszBqx44/ .?{h'j^R`a E;?94Fß{:;݂oj31Iu>Ni)'\MSW݊,~} B/6G1RNun*J2nţLW[(p!8HmPӾWZu ªcPk1ۊ sqIT/W;r_|O'|L9r5H͔##LYdąQH@$!XQC FN04?b ̬cC1X'vXtCԯۦŬt(D@K:yYP3 d{֡6;e[!Q i~ Y-} XMq&ip"i>OoyCbw,F G!iPmlmgM|u%Ikv="wˊ3R6f/sQ#Po, Ұa`# M ӿEq"j cojko3TQD׬f3ǣ>EkS_v9A+P33fYDcoK BOL1ϡc;U/St0.,ZR+cxAMU?pRj^՜nt[WX曬؅Ӿ1bOXDvE[G 1BM%GGlQR03Qdx&z \cc]w._wpy޶-F^jm6A񺰉w틳ǧU0˵685G 4o8̈́A[i>!ӊ)# /+3`r %?M %_{|QOP>vMѰ!rMZhV] i^X I/-ʇ- Ѥ4o(_n97Hcp@1>ڌjtE)E|w| Œ2xKn{=yaޡ+9O?sC#IljyyT [~rG:AdsmnJS})1S҄1.]F036шjLV0[^2*K* A***#br*gktŷ@2F'<8<޹p^AН5I6Am7!HwnäO?hamt(XIo=9Ef#ɹ cǵ#'#=ZV&h A- Tq'{S!)e&QZ\3bl&7Ԃ2(F^?VMbVq΄KK pHL*ggl=BA:zm^`xʻپ ?Hwlzt1nAU_=s&wc;(UDz{0Yы^+hhKԿ4idn&a>3o8xℭLQMXrshE^hh4f`Y$ߌh@ZHO*9rjC ! 0p7_/E!Y˦fKVж :&S\Gqs/9QSN dZL1I<(%Y &hBDz=%Ci~EY^틙eME1;fd"nR(~Cd6F|Rrϐ2fa-*uDIi GYKz(1`^T} n#|Q>j _z&{"$i"f!QI# 7eS/`\8YLd{FcAfi9\[dvծͫ 𨚘#b4d6RN"%(6r1W\s qh?-VѹJuBǨq_IV-f`&=+qNnM]Z=Hۀ2x4$ӅIўV:;+|;.l@d@T>} ;>[tQA)>'.@;ћpj?O ~4,[uBIEBiQ"BX^OO}=-*ϑDxM`Z G$^v|'+1\|Ϧ fdc(y[ITJ'w) ֜fDM)%6|4͈%*=.yQ~x8D.ò< KT!`m.˓c)]hCg`.O u-v.@rt2] \j]_e=?ȯ^IA&t[%KtN09Q)]AϤ4skuwWrKjt0eyvrI.fjy~I6nwo|no>_+Y~"P g©}Fnw~wq>B8% =;IRtU9I<Ӝ?8yn`!Gk&$rj%ȝ;*ܯ@{?\oHimA].'](ƯLVp?y*4|OfI[:1rkvAQ߹nl|.v }\a]$mx3\񖘐%dSLФ;Bkdl6lU^G({L mb;59AM EH!^ pD@q{!{ET}eHܳȿb32OFmI]LK $Q|+ A-Ƣ_Y!D23Lۑo?x/ @9*x8mU IZm2sD0 G{PTtUhTUi8S>#?cD;g` 9aزzNGTU#ȏ Ygb+IXYel*/R'<֥EZ?pkP&됡E6;N_/ޠCl\tQnUhH 61(ǰf_X;-\ Gɀ8Zu Q+$e!«QMvLGwNВ ؓXaxWzut#H@,n$FǪ*~y˄MW<\S:J5Ѷ]0io_=.e]pMk~h|› A):7BSq#$D٩^ `6FQ틯j;{0^mMoX ֿ}1svPRr,O&kɼR-3\1qFz7@]>#Q ܬb$%aƀfa-8ƒ(Uy8"_= E1hQDf99V}S'bt/ONx~ne=}Et29z|:ڲbmpviR\`npGjbO?%^H><;1{..k@uv.@R|~g *]^P][ivZh. `1>R;WȒcU̲t ы8^lEx1Eo -q5 ,PXٰ/vz:P";kyzx zap N C5.VcBxvPFWF9,cPJ-|z=7P,IO5ad3 kxrͯJUgxz5d#֕3!gzxhm5P7E,t.%oy}Ύ^"Ō@)x.͖ġE`I<'iJI)RL;m4Wau Mۡ˲ ?+'#Lvq7Y=<[`Ju99AK$7Wȅ<? ;`Ji(ksΆ]aBp*hTZstt̬S;იz8H,s@e u,i5;9,tQ32|alv&IK>QNH,'+nT`xWkK\[_cb5Kb7N1-?ۼ2а)<| VBկV;  k%YCm_[l&)7H'E®ݧ O @hZ<ɮMiґ0hcaQAmyiVMN V8o$#$9G07/M"!a3aS_Yrʱ+_acH?4%{`1N5Q~49]3j܋qgM#g& v5<"ދ%GReR-'Ḙ Q{8؏,^0{v٩JUM[y gqrω^3+7j1C|BMJRgh6FZ1L^[}K*^݅҅?5UcDt vRqUW5RŇQr6KLꜺLx|)ڼhi>As±_D+Є߾kBN x=}*wMUK0Fe֥*Ɍny.=Dٱ^j窸(@0֣|P ~c`sY[b]j,,רu 8 TO ǻ;w:Evr-M}ȫcӲHu,݄ި꜌W!AxixCca Na ^ҲJ _W*:!foT4-> m/*Xޣ6'Mʢih7\ڋWH|U0 .gVF6iKܨNPBQ!JD3w!]X`j<(8,ijmFjur!?Irj\lV%'kn\YEeЌbv]itoXt+U(OŪz :L]9B$sbn2 yۉ0=<7+Q$^r&XTgPiV5ېP2'Qi!\ڀ-&E‘0cT$Jd@t6wS*SB#/Ê9{7 {C?kST+N3+hxo5CVJu^v# :U4Bh4Pܸ61ï5bl=fmLSxbUQzoR [ K b c.dWr SaLlTc̄nG΍~3 r1 Ŭ;U{"4gEˬF \P42;Fv,SM[upVsqy3wn@@@f;>Aޙ`9Զ\$I3C8EO"YbbX;U֟{`U[GފG2 JBv{K ͦ*4\2 O+bE^t [ wRrNףjUN#%̒3254x{}3a[[(?dzV+ Ini8YWn0!c o-"i w|m@X-/=|/SSIZ˾ѷz γtES6KvM+[qjn0 ))p9V45 3e~{m78zoP1yJJ O䅙aL3+A"p'K(Es[yS#_Q&yoT eTaWKF/2U%\0J@#kC,_:\C6;mq. ) NY(K78)qwkDSs[Ch0^D˿U4PtT?řU̜:[cUZE/sdPU#1f}eEbwjnЎxR+uQ\xa:c&y(F][LqZmj;Ȳ?hMC43S%Mei䏻Tpe@q8wc:G~@CQ\o3Ab%hEVRĔ E". '.USiE:q=AqhlzHoDS+,=furs 43uE5q:Og,fFIxbYti_0 ՇJյ_rv#c,/a㽏|.:{k$ wY%n C΁{Q'z|aӗϣ$bTD=4>,N[i!Ås3 KwOK_O9''wNN?/5OGyCPIE?WE/N1exDVNN$ I~2g{us+lsYxyfO/8$!Ɋtb9hDp@|[gjJAc~ TOH" Snq:"zuǫKj kr6:cU-=3 U$F&7B~)avy`.J!|]h|laUjĴ:aB@:nYTTMdGPl0猰̜`xsEiFuLJ Rحou  Ω8uRi%\S[0WvpÆX$|-õzxp:ΒC.ʬ2޲r]QO}xpUnvʁLw_i *ɲ+)qmTbV̺.m⑁Jɠ,6#u ~/PCG,cH2MM(a BOH]^ց><~Y$.Q4*.d  ) z25My.?x="=ܹKWtN]~0lRY0.8!󲣦?QOg> L:D]3ujl#0/qp:+4\sj /~g>%_ɚW<<x XLCh5\W, ˅7<4mdϲS/s:Vyܧ\}IAч2rP}ߥыsF[/SwNVdCĮʚ>TA2]S7dž02l35u^@G|ޱaWNʸ#l԰ /̾'wXA=!Ѻ# =YZ|?^hi6:bwg=Z w'W' }N}|ʞtoP]1"l Z\+opPzѦڭG[_=ZPN#i.l9 BGx$~!˼Âl0RKNwwڏ2~~! yp#!w_?^L??[G?c<VZ8ĉyO`>q _ w7PɑtȀxIOaXLT[9K<9/T𢳢iw4jBO:MYO6.i_ij5k&(B=SnTЂ{ٴ*7s(Jd+.tM#CM9HG(vܢz} WJkJ2a0V;*CFcT=*xM,ƫ+Qe ?5e*mp%Dhp ~, ʹl0HZKkQ3Xy؍MUl Lm7 xoՠq!fϗ,Yڔ`.M9Z_(Z#Km7GP4O U"y0s3 ݻy2f_✋{8z\/̞)J-@'[Kׂ=(hx c=ѽ^ij_*p9~6DnK [G$ļ8lI{wuu )H6&8 El|k1YO%DxtJtt0 ?7^zAʚ0~^Ź͵Nzq^ud .]KlbNS ץ SwٮNkqU[냟? QB]:>o9QVF[vʔQ@indMQi2j1 ޣEoIxѮ%0CSzcw+'ӓI~Sxa9cF8N5suU y%FBؖ!%K`.>)&`ΰ}C{9xY垭U 6MÊO~<)) C8jWw4,Aol0??{wy|%Kqo6kZ-h?ZE1 N\l`b]kJC^9YQ o҃@?gCpQD-ڌﶠHi?;we0 w%_v;Ze+~Ź}3xg||X6>t:&2Cf7b4f-Z8Fy'8="̌ Md'W+ƫBHJ l,Lbeb/Ix#Ӛ6$܏=85'Ur(>oQlF'$1$0we6؏xat'tm0mx#aW]]I'B>%C)5U ?~蝨'[!WdOŒZ$\.|:ɓn^>Jn^bU.-࿺X[@mcV 1 ne4%QMytZ݃4nҊ%XidS "[!iaFya1-]/k-cy4Ԅ{^As_W1~JKE[3"~ڗqQvj۷ҙU{fry2XI~+!@k m.H8n l(2fo$(xۄ%t$q+NPs#$q|$~[.Il gEDH@,lM"<"fy$Ƽh4 YOF'Q]Zݰ?47/X.aɹ}JEAn{p\>ܫԔ-&칽 ۽w;0)獬20 Av'I2(G4vZ}g ȃH]8jba;VO|fϲU*@7>ȭ5o&&C^y8$NMiToOl#MK#sO/o܊(mFPӛVE>i ^#Φ0<54, Avq([;c1u,Έ%' ?0fJ 噳b7/P!}5j;B9м Ɩ`yW%>n0ա) / ;zi$0 =?ʄΩUne@<#>qF!&[UBJJ+DDT]>^Ԭ̝; I/lvq Z7]@~l ?}DaA]29K[ ]F(bޝQ^h^. gK) lf}v}3GXJ#y,lDs_,-GF-޽C2+ytd0-sl2/՜YztaЖSXh!_[hpZ3j t%EyĵU71n$" {s4匴T*QF pk cT@4}loxj8Z5_(r MEq`lMhmM&~aXK.ñ<1}iB+\`;љ'30ͣr,+c8iC~x2~rA(=1)5+N%)[i0t(reӤ~ ʐ-e-b&)^8讀y~ĞvAc Fu 0vd65C0G31M̹l2z$8PVͱ)ґ6sY: R6yLKh"I{i処~ޕSIYm:&9Y!5"Uc"JI81Wʧ0'[c` ~;sHqiMeX&(!0ĄԴy֥b"҂m,LK~KCLP9QyW[qdTЇ/lAW3j)Q6aFȮU'ܻ-xBV%`$7NmAQy^o6dF"$L.!A(#iʆJB$omv0PPLGZɵn$yٖn32O٫Q8Іɺ fl-X^b&}D<̮玾m࣭ v`ƫuC]HHDIVж!U\4RNxs? _y}©opc>œ܄z\DѨdbqBK_-J,E0gRRJ05ZCh~%ը\ty&~*G'ZBv`@ Y"uD lQP܄Q._$/Cbu&_m.YB̛ȥiY"gD8riq{a6A؅Ȳa1 4|yŰne,ZҜt:2Aa\y62^s`jt-:2]A(|*ux l%A65 z`dL1ycm{|vfDZ'ϭmBSu20J¡c#wmcgubbBd/<t* _7fxp2^b|jqq?z0m{-÷U}w=o^N[gLY<*RdQ$Js8M .hڇ7aӛW;sͅ㑉_3j(6r{-^ƈlR>82zi2*Fv7tPsp~=|9Q9jM#%2W.f"pm -IfHhs 9h.N(at,rQT؊, Z@D>Myu[Gt6ci}k<ȡMh,sK%o! 1{&!ɔH9R[#fͤuϾQJ0 Qe)BFcfvP7exCbWұ"A֞9C8 {E$/*DCes]Y ''_7żӚWV [J97z]oq:XblS=CavHflXNx8,$\[ *d\eo-`<G8QpLO~KSR/B-J~++.0 N<;_tWp%0gx1Ur.{;*Jo8iz7eY`/"8Qwyu (U\AֆF 8<5_C\e6#LňT|J0Ȝi|6X鉎s]^hڍw7NElZ6Apf] gVw* `>Jb,N]lM?EUd_ՈK][:5JFakɅG ܛ2}21_2-u+7W§!['ݮ֗6bavM\m 06'qjB6\&Nwɥ++\0:gO bU!݊ ve24|^^0- joSf:vP~c;$aEkc^\>%~ 1m9"o>mkwrGmVŇOSLv,3+XyӼ߽@4dB V7P/)<gj6ꃛ^\}2'Ys3nĎvI&#.ȹ&ԽY@E&kL|10אyd:Oäǝm2p},2QpMG- )H`vP#*(xF:9#~]6^Ǥ/X ҕ P`Xf$ NsQ2Xð yso^dUe\l2[>vE?ƒɇ3A޾uץ-#h-Ϲ4Yi@,UUrpׄq#bF05_NPw9﷕?,1?Մyףv,Ĺ &tǍ%.%FkmLq%kg=U*>٩̬E6'f%L0 :O"x&IJnMȊE([O[ƺT:LPL'3{9׺4Xڶ< U S">̝ 5HKe ?ʭ;ʳ,Wr)]a3ND?5WgWҝ76>3u޻;8/.V"E:e0)H]?ke|z{VY\!D[1(>1bc#D[1]u6NƭI>lܚU++}fVP ?p?h{/~eRiiF±JOpG/v:1wy7)[uMfMK *bCdA>fɟGJeS$~aV57$ѠqDϥDc>v6Ӌi귣{E]H/Ř%B1qNt!_c_C>u`$ e+"1Tja,@<vG}v=ӣ{4{MjNbikS+ EmG{,l׻Nu{<9iTcz{=i"gvz[ϩ-Z`h5f}`t|RS؈I>P3:@: L|5n8f/#WƄvo'fo%KJts;Q8(e [M`HN5Η~W 8%ҝ3ЃMr0S?,j-Xɛ?  (yϛ^r=FIY~p?j=ŠCVY_BG&)$!!LHŚ3ʦ|Th31Gj ˁUcJ2Y#ZVKdnii Q#h4\ySC:YZc!>MzCJ:;64#R5jD~&hhw×]|GC: "´BPF 8o:`Yz|x{=a~$fp|a $rgh;&0Mhwwp%dkqbv{Li'َJn@lt{szO>m޶}W}E} U_w ;n.;?bZVpWALMLgcx*z٘BQj?ZplDk}mz-x=ghN<{w6~%-$8$V7_%$Ȋ) ؊Vﭭ-_hޓEa8qhP|Q#ea,ilC:+w7!abPI>^I<:&+bC9[˸0Jf1~y2RX.nZ2\,HՍb3W|sq3!//Ov½B\\1+^sFx/'(K%@9m1gDҩ ص3.\k^Wt損-g9y Kn7DshHpS2œװJpfɓ$A\NБO>]?t%KWt*Nf '^"ܩyOb 2)LWyO X)y&VqA5hp"+`'Jk6n]v,4x n*N!Q 16,$=yR]gX Zwv1;yaMDEʅ"ږ̃R L!sJ~в³v=}8r!-,.6N'b^Ѐ{Dnk|%yB q/\/R=Œb[WXHxT-a2"X,0Kjgv%!4G1зԠnR^jNIڞغ&VN @'&p'x0̸.YL IbzTً#{ A4ubZVhAjB@q\;]" :qq,JZԡjX Zb!;0f*)OBr"Ǹ+4~,-s,ApLy"f§HrAlg o2ɦ䚁i~_}DIc "8`,]mR V-)Dtm9Zݮ|9yVbM~ԉ* _a"/8dY]p".ABGȓ(Nbg4p;a B+/{tkߚ[,yEE|,8Mo7_Q wg M2GMY,;6E$F 'tm]_!cwWA)@B cfpo!'X_G*Cv j,ؐ6, }.WZ^uVQZX61h]yx(b;x0@~@~5 h##BͰ]|3!pv%)oc: uœl{>W4+0z%j o_ŌqSat12XC`s!Δ$cE4͚*b1 I-xcv(Z5wMs [5=ˀ6LjةPɌ+fg٬JDm6Ao< ڜѻ$#ox4V @4P6L g52 :;C酑%ix;u$ try] jFފÊ HI@,R){4TmX_=7ʧq{2] , vXR!T^wD\1"DPDfQ$-4qqx&!'{so1o*!Bec 8('2+1y۬+e loʧ8qI\]Pa9;cv H <n37GL6\9%4bIFa\rpK@ԓtG~[ڞ ) j| W1KqPm"1BBlFC}MheK). Qc8+^(?-vyn$Ad84gX͢ir53& =NE2<7 @n(1#]h!t;BGчHkmfYE5T(A,ҳ(^Sw[$}f9kJhdgF\dȚT79xy@"mdx#{GS VDz{n$vӄI!.J]wdz#U%?!6á|;gijx>u֩' /*g 'ڍagLEAAX&iRtVTGh>hְD/*`oI>$y_FDw kI@F1"&8":!: ,V̙/.YZFqJ08m6tSUg]rZRi`i$jIsQFZ1D;6L\)~fCV`3Va];} ]ضxaP:ƴx%sJEv)̙fxpa,Ċ=;sI"$UUTF3Kޓ8ƜG\:<|I>#fԍrșQcZgS/ *0s˜;m@YAڏ>3ْ bqprL0CX'bJ}@MC)p0c];(gљ}^91yU]1g5cn7 `M4۰ yK@IRpʧN8fxt80v ָŭρ)f6DۗQ-fW$C62KU%ʗ1 ~'$Du{0_X*j$ݭ6n1@;S;06DT:@@n?N4/Iu{(fiI(Re;[m\չ(Q+RU_iE^F,|_ qfrQA%%5zKCoQ2oFU,ge|ν ’2]ΘDE ';J;GنYy#v܌+4sRt)w&۳0VE%Ց*qyD$ҿ}h6;O/v<\}Pִ z}HOԻ\b4q$й.QC߂z "[hwʆE N]2ɒk;mNfXnt$H4.+ԎPn=S^ VfCڠ\5Feޮt]5=+kxa}Q'.D669<&Az//0К UKfoc@AfELoո%">$PFe˙ҩsdy /l@ĮOC0"rpِ suF۟gCIlT0vN}SNQ) SȻ)-1l2%eUeF+3S_=Y5@Oz/ֶ7jcXks1܄;d-"6=0\[^,Y%&ԣtDXG쟰^ [dgr ,;IyD,2ӖTgcV+٪Ih҆@3J\*ie:xlgcT\2ʀS ӀX)A݊5XP"P,e6i|,e3 @5VCW*W9@-h|kʚ5-Q+v4 XcB"I,kwBR1Ed1Qs` *`@Hv(>+` hzU&DNٿUzQ،ea@٘A2 `u'Dž5r6/6d=* bäW;Bk~j'SIQ{U7s̹犍D!&4R2RuM] A>=&`۫-xŮyOȞ?3f|'x0]HkKW/z C^oFu-2z/vI@AKc ZzJƞޚޥ줈n"ڏ^l$?ԠitO[3J8<;맽A8I:Zɲ$2 ~P-ZL8w4=>x+mmo:mA9|EmwO卼{c瓭*F=$# R=ٟSV/ vOѳ- b7=˱'kLD#Z3cݷ(YJ?%Ͽ¥Go&>"+|Jq+לpB!m{)VM\Njav魌2AY- %E$|"ulT*}k<}E'0J4X4 F_:qWZ5qC|,d-DCWYczu5ؤaObÚ+^K b~KXghrc*2AGE)sƴmZ xd<o$Y 6;ޤH2ND2Dfč͟b$"R~O>s iSeAj9qRp"i fc7h쯀5*&rfqKl|9ЃF//w5Ejf͂ue\x>ryPlxlmVmu#8!ju/ TA\78.t<|J%};HCzniqkXh6ZǴtoo爯 iզO 6vaʜ e@R\蓞a]ؔpE՜sjf,vtFTSAw.I˭i9ik2mеə xu ty<6 pH~]j~vXaVШV(v qp%!inp^GAYY 1FB󛹰vO!RGkay[yWJzKGT/U#|xIRC.yv:jӓ 1r9u2?cRVeCUq`7! X]Fj]BP,=@1GW-Ew8hxLBrĹ0%,Pp:iN@*"LH Ly2*ڀK!XNH*d2`$TT‘³D,;ěg͉ Sb94Mɫ^k@z/#B(r;K Ѣ"| S>R(DԲDtp]S nq,d k`:~3*Ù/"y5 { gᤤZl#vI>YE&]D9 ăZ(7` k褽<>as\S/ [Cʊ!Tᡷm2a8S9:wL랬a0=8DdZzZ[In-D֖lXI_58["תSH6$f[ve+*bl6Frj;oҳң2&F{/!rKZ'Ii=ADfɷJGȺ)1]s [n M-VdMtCѴ=6CO/M{ PCZff P/fEABa9wtK㏴6VG4r<jInʦ\s vȩ>#ƵZj`@4DMCma<-YY,iwI u*]9C۹扲ci{dꔅo'L6|쭰DBXR)reL.<UusZOl`)Y Oͳ Mr$5z,WzϲٔɍO~SE^g>|E.M~s5rzË`Q7+ʈ9X 4wr[3g'Hߟ8@^` Vޡ v\31/TuIނ5bY!(``iS k(-h':XuV^DΨy*~D%ezdƈm,؏d9$')\>D$mpvK'nl?cզ*'vU\v{'UUT۶Y ZԆAKמ]?2Ztg! h0eJCK9MpJold 8z{i؉ncrzJ4J AM+-}޺e)`?$Tob޿[SU?z[;/zOW~SxpXu9NW4ukG^rCvol~QIF#Ȱ]جvج+Qť2J(^E#=> Mݵ0&2N&FgvaX~v63 ŝ^g=d /!s020%i2fwd`뭐l#l6z8&Γ!=2~A_/Oes|N ~<^涇ҿ~B~1ڍFlI4:#x@չ*֏&n0nD,f^>{مOcvwyLr^pL.'A[b4AM`Hq xѳD&b.$z2c#𻺺^ţt L+mI SskVSPYt4Dx**&sjGZB!\+SDcFF{~$.˲ nn_d v5hqh Gm;P@e.8Uhe2:+& U6EM!9Tm]K@'?'we3I*޷E}]罐S;ۧF{ш==|ċƸB] h$"8\eެ?zvWS)BԺdơn".yʡOvx=lkv1Pp^W+HHL;PTK('#6 p-n cy_iw=s%$.: ?%)b3,tӎfN0.!+sK/ 5@;!XĥEc_h4[_/j~@[Jߥ+QXY2-<^\FP/qkB=H+2;?HaBDl8ޚ Th3E:)9iK|/0H ?.`!.Zs?z rz_ i~"Y6ysވkwX S" ]H&A\PE%B1IA;@FFod64Gqe#@D'43dr9{#(uw“kDRC,׆]9"'{0eh [MА7uruU'@~clTo=Rg D iB SBs #,>#3(MуB: uVf[jonA%]Lύ3er{^RhG0F Csy9}l6SNd650\O6xK;6)d_ăޓݿ7l:%y5~)-\ ՈY4 8T~Gyeh5ƫPzz0b̜tH#u` Br FkVH6 V| y.>`*`]k'/h%̑#a " Hۖrޡh0Ҫhl .4 &2?h%fgCd$i.&'4 L:){̂C"z)c0oNl8# y qh#j8HL=4Xd6C!8R%cEԂ;:.#< Xz> Z9OKڌӺ 3Z7L~)TFX@ӹK$nbKF "y<_eMwG1-[NB4đeF@rLV m"?Mtl/wgOZ̙ସ ;=%3ipq"a'}_wo!>_wFH7V]lqSt͂7 [9`v)@#*^54lh|IuԱLL TABxoLza/ Ex!q,bh3ؑ#ԭKٙ9aQYR&ŧ]mN1͉L@**z>yC&ΰv#z/zfm*BHB<1׆d†9HMh7ٙ5nХ-86}4A+,"i{TD.|`^1R1Z>|x#pf2&i_AeAUJU P·1n4|Vق8)OHM lYI(` |#31#8w N+vQ`5ȘeZ01$WUќy|-snNiZQDV.;9.'h0ms;dхk𔹳iaA͇2"qC+ A'U %8ب2lOat7ڢnF/D˲V ڱ#}UT9C)֟ⲼA)Pˡ)Z=ŽԨ0Cx1ZI"lR3wIb_IZt0@6zTeV)(Q =:K߀.e8v|||||||||||||||||||||||||Orj debian/hoogle.dirs0000644000000000000000000000014512036250245011325 0ustar usr/share/hoogle/predownload usr/share/hoogle/tool usr/sbin usr/bin var/www var/lib/hoogle/databases debian/rules0000755000000000000000000000112412036250247010245 0ustar #!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/hlibrary.mk DEB_SETUP_GHC_CONFIGURE_ARGS := --datasubdir=/usr/share/hoogle HOOGLE_RESDIR := debian/hoogle/usr/share/hoogle/resources FILES_HOOGLE := debian/files_hoogle binary-fixup/hoogle:: sed -i -e "s/res\//hoogle\/res\//g" $(HOOGLE_RESDIR)/template.html sed -i -e "s/action=\"\.\"/action=\"\.\/hoogle\"/g" $(HOOGLE_RESDIR)/template.html install $(FILES_HOOGLE)/update-hoogle debian/hoogle/usr/sbin/ clean:: cd $(FILES_HOOGLE)/ && rm -f haddock-collect haddock-collect.hi haddock-collect.o debian/hoogle.links0000644000000000000000000000013412036250246011503 0ustar usr/bin/hoogle usr/lib/cgi-bin/hoogle var/lib/hoogle/databases usr/share/hoogle/databases debian/hoogle.10000644000000000000000000000327312036250245010531 0ustar .de EX .ne 5 .if n .sp 1 .if t .sp .5 .nf .in +.5i .. .de EE .fi .in -.5i .if n .sp 1 .if t .sp .5 .. .TH HOOGLE 1 "October 5, 2012" .SH NAME hoogle \- A Haskell API search engine. .SH SYNOPSIS .B hoogle .RI EXPRESSION|COMMAND .RI [OPTIONS] .SH DESCRIPTION Hoogle is a Haskell API search engine which allows you to search Haskell libraries by either function name, or by approximate type signature. .EE Example searches with EXPRESSION: .EX map (a -> b) -> [a] -> [b] Ord a => [a] -> [a] Data.Map.insert .EE The Hoogle manual (http://www.haskell.org/haskellwiki/Hoogle) contains more details, including further details on search queries, how to install Hoogle as a command line application and how to integrate Hoogle with Firefox/Emacs/Vim etc. .PP This program also has some command for special usage. .SS "Command reference:" .TP \fBdata\fR Generate Hoogle databases .TP \fBserver\fR Start a Hoogle server .TP \fBcombine\fR Combine multiple databases into one .TP \fBconvert\fR Convert an input file to a database .TP \fBtest\fR Run tests .TP \fBdump\fR Dump sections of a database to stdout .TP \fBrank\fR Generate ranking information .TP \fBlog\fR Analyse log files .SS "Option reference:" .TP \fB\-\fR?, \fB\-\-help\fR Show help message .TP \fB\-V,\-\-version\fR Print out version information .TP \fB\-v\fR, \fB\-\-verbose\fR Display verbose information .TP \fB\-q\fR, \fB\-\-quiet\fR Quiet verbosity .SH AUTHOR The text for this page was constructed from the Hoogle search engine's web page and written by Erik de Castro Lopo and Kiwamu Okabe , for the Debian GNU/Linux system (but may be used by others). .SH "SEE ALSO" .LP haddock(1), update-hoogle(8) debian/copyright0000644000000000000000000000652712117153056011134 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: hoogle Upstream-Contact: Neil Mitchell Source: http://hackage.haskell.org/package/hoogle Files: * Copyright: 2004-2012 Neil Mitchell License: hoogle license Files: datadir/resources/jquery-cookie.js Copyright: 2006 Klaus Hartl License: MIT Files: datadir/resources/jquery.js debian/jquery_1.7.2+dfsg.orig.tar.gz Copyright: 2011 John Resig 2011 The Dojo Foundation License: MIT Note: This file is in minimized form. The source tarball is included in the debian tarball. It has manually been verified that the minimized file can actually be generated from the sources in the tarball. Files: debian/* Copyright: 2012 Kiwamu Okabe 2012-2013 Joachim Breitner License: hoogle license License: hoogle license All rights reserved. . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . * Neither the name of Neil Mitchell nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. debian/hoogle.triggers0000644000000000000000000000004112036250246012206 0ustar interest /usr/lib/ghc-doc/hoogle debian/source/0000755000000000000000000000000012117153056010467 5ustar debian/source/format0000644000000000000000000000001412036250250011667 0ustar 3.0 (quilt) debian/source/include-binaries0000644000000000000000000000010412117153056013622 0ustar debian/files_hoogle/hoogle.png debian/jquery_1.7.2+dfsg.orig.tar.gz debian/patches/0000755000000000000000000000000012233666454010630 5ustar debian/patches/ad-hoc-extend-depend-4-2-10.patch0000644000000000000000000000150712036250247016235 0ustar Index: haskell-hoogle-4.2.10/hoogle.cabal =================================================================== --- haskell-hoogle-4.2.10.orig/hoogle.cabal 2012-03-04 20:36:33.000000000 +0900 +++ haskell-hoogle-4.2.10/hoogle.cabal 2012-09-09 18:08:41.668315804 +0900 @@ -42,7 +42,7 @@ safe, binary, parsec >= 2.1, - transformers == 0.2.*, + transformers >= 0.2 && < 0.4, uniplate == 1.6.*, haskell-src-exts >= 1.9 && < 1.12 @@ -114,9 +114,9 @@ blaze-builder >= 0.2 && < 0.4, http-types == 0.6.*, case-insensitive >= 0.2 && < 0.5, - conduit == 0.2.*, - wai == 1.1.*, - warp == 1.1.*, + conduit >= 0.2 && < 0.5, + wai >= 1.1 && < 1.3, + warp >= 1.1 && < 1.3, Cabal >= 1.8 && < 1.15 other-modules: debian/patches/cgi-return-res-files.patch0000644000000000000000000000370312036250247015610 0ustar Index: haskell-hoogle-4.2.10/src/Web/Server.hs =================================================================== --- haskell-hoogle-4.2.10.orig/src/Web/Server.hs 2012-09-13 10:00:53.975656209 +0900 +++ haskell-hoogle-4.2.10/src/Web/Server.hs 2012-10-05 01:07:30.000000000 +0900 @@ -1,6 +1,6 @@ {-# LANGUAGE RecordWildCards, ScopedTypeVariables, PatternGuards #-} -module Web.Server(server) where +module Web.Server(server, serveFile) where import General.Base import General.Web Index: haskell-hoogle-4.2.10/src/Web/All.hs =================================================================== --- haskell-hoogle-4.2.10.orig/src/Web/All.hs 2012-10-05 01:07:30.000000000 +0900 +++ haskell-hoogle-4.2.10/src/Web/All.hs 2012-10-05 01:23:02.354839824 +0900 @@ -2,11 +2,13 @@ module Web.All(action) where import CmdLine.All +import General.System import General.Base import General.Web import Web.Server import Web.Response import Web.Page +import Network.Wai import Paths_hoogle @@ -15,4 +17,21 @@ action q = do f <- readFile' =<< getDataFileName ("resources" "template" <.> "html") let t = loadTemplates f - cgiResponse =<< response responseArgs{templates=t} q + d <- getDataDir + p <- getEnvVar "PATH_INFO" + let p' = fromMaybe "" p + cgiResponse =<< go t d p' + where + go t d p | "/res/" `isPrefixOf` p = + serveFile True $ d "resources" takeFileName p + go t d p | "/file/usr/share/doc/" `isPrefixOf` p = + let p' = if "/" `isSuffixOf` p then p ++ "index.html" else p + in rewriteRootLinks =<< serveFile False (fromJust (stripPrefix "/file" p')) + go t _ _ = rewriteRootLinks =<< response responseArgs{templates=t} q + +rewriteRootLinks :: Response -> IO Response +rewriteRootLinks = responseRewrite $ foldl1 (.) $ map f p + where + p = [("href=\"/", "href=\"/cgi-bin/hoogle/file/") + ,("href='file:/", "href='/cgi-bin/hoogle/file/")] + f (f,t) = lbsReplace (fromString f) (fromString t) debian/patches/fix-extract-tarball.patch0000644000000000000000000000155112233666454015530 0ustar Description: Ask if a tarball exists before trying to extract its contents When a contents of the tarball are already present in the filesystem, hoogle will not download it again. In this case, the tarball must not be extracted because it does not exists. Bug: https://github.com/ndmitchell/hoogle/pull/35 Author: Raúl Benencia --- a/src/Recipe/Download.hs +++ b/src/Recipe/Download.hs @@ -47,8 +47,8 @@ , (inputs <.> "txt", inputs <.> "tar.gz", "http://old.hackage.haskell.org/packages/archive/00-hoogle.tar.gz") ] withDownloader opt downloader items - extractTarball cabals - extractTarball inputs + doesFileExist (cabals <.> "tar.gz") >>= \b -> when b $ extractTarball cabals + doesFileExist (inputs <.> "tar.gz") >>= \b -> when b $ extractTarball inputs check :: String -> IO (Maybe FilePath) debian/patches/no-log.patch0000644000000000000000000000110112036250247013023 0ustar Index: haskell-hoogle-4.2.11/src/Web/Response.hs =================================================================== --- haskell-hoogle-4.2.11.orig/src/Web/Response.hs 2012-04-06 03:03:44.000000000 +0900 +++ haskell-hoogle-4.2.11/src/Web/Response.hs 2012-09-09 02:20:41.369592400 +0900 @@ -35,7 +35,7 @@ response :: ResponseArgs -> CmdLine -> IO Response response ResponseArgs{..} q = do - logMessage q + -- logMessage q let response x ys = responseOK (headerContentType (fromString x) : ys) . fromString dbs <- unsafeInterleaveIO $ case queryParsed q of debian/patches/cgi-use-template-file-always.patch0000644000000000000000000000135612036250247017224 0ustar Index: haskell-hoogle-4.2.11/src/Web/All.hs =================================================================== --- haskell-hoogle-4.2.11.orig/src/Web/All.hs 2012-09-09 02:23:35.650456618 +0900 +++ haskell-hoogle-4.2.11/src/Web/All.hs 2012-09-09 03:12:11.116913638 +0900 @@ -2,11 +2,17 @@ module Web.All(action) where import CmdLine.All +import General.Base import General.Web import Web.Server import Web.Response +import Web.Page +import Paths_hoogle action :: CmdLine -> IO () action q@Server{} = server q -action q = cgiResponse =<< response responseArgs q +action q = do + f <- readFile' =<< getDataFileName ("resources" "template" <.> "html") + let t = loadTemplates f + cgiResponse =<< response responseArgs{templates=t} q debian/patches/add-local-loction-database.patch0000644000000000000000000000437512233666454016711 0ustar --- a/src/Recipe/Haddock.hs +++ b/src/Recipe/Haddock.hs @@ -1,7 +1,7 @@ {-# LANGUAGE PatternGuards #-} module Recipe.Haddock( - haddockToHTML, haddockHacks + haddockToHTML, haddockHacks, haddockPackageUrl ) where import General.Base --- a/src/CmdLine/Type.hs +++ b/src/CmdLine/Type.hs @@ -35,7 +35,7 @@ | Data {redownload :: Bool, local :: [String], datadir :: FilePath, threads :: Int, actions :: [String]} | Server {port :: Int, local_ :: Bool, databases :: [FilePath], resources :: FilePath, dynamic :: Bool, template :: [FilePath]} | Combine {srcfiles :: [FilePath], outfile :: String} - | Convert {srcfile :: String, outfile :: String, doc :: Maybe String, merge :: [String], haddock :: Bool} + | Convert {srcfile :: String, outfile :: String, doc :: Maybe String, merge :: [String], haddock :: Bool, addlocation :: Bool} | Log {logfiles :: [FilePath]} | Test {testFiles :: [String], example :: Bool} | Dump {database :: String, section :: [String]} @@ -97,6 +97,7 @@ ,doc = def &= typDir &= help "Path to the root of local or Hackage documentation for the package (implies --haddock)" ,merge = def &= typ "DATABASE" &= help "Merge other databases" ,haddock = def &= help "Apply haddock-specific hacks" + ,addlocation = def &= help "Add location infomation to database" } &= help "Convert an input file to a database" data_ = Data --- a/src/Console/All.hs +++ b/src/Console/All.hs @@ -40,12 +40,15 @@ action (Log files) = logFiles files -action (Convert from to doc merge haddock) = do +action (Convert from to doc merge haddock addloc) = do when (any isUpper $ takeBaseName to) $ putStrLn $ "Warning: Hoogle databases should be all lower case, " ++ takeBaseName to putStrLn $ "Converting " ++ from src <- readFileUtf8 from - convert merge (takeBaseName from) to $ unlines $ addLocalDoc doc (lines src) + convert merge (takeBaseName from) to $ unlines . fixURLs $ addLocalDoc doc (lines src) where + fixURLs :: [String] -> [String] + fixURLs lns = if not addloc then lns else haddockPackageUrl ("file://" ++ from) lns + addLocalDoc :: Maybe FilePath -> [String] -> [String] addLocalDoc doc = if haddock then haddockHacks $ addDoc doc debian/patches/series0000644000000000000000000000007312233666454012045 0ustar add-local-loction-database.patch fix-extract-tarball.patch debian/compat0000644000000000000000000000000212147620565010374 0ustar 9 debian/control0000644000000000000000000001067212233666454010612 0ustar Source: haskell-hoogle Priority: extra Section: haskell Maintainer: Debian Haskell Group Uploaders: Kiwamu Okabe Build-Depends: debhelper (>= 9) , haskell-devscripts (>= 0.8.13) , cdbs , ghc , ghc-prof , libghc-zlib-dev , libghc-aeson-dev (>= 0.6.1) , libghc-aeson-prof , libghc-blaze-builder-dev (>= 0.2) , libghc-blaze-builder-prof , libghc-case-insensitive-dev (>= 0.2) , libghc-case-insensitive-prof , libghc-cmdargs-dev (>= 0.7) , libghc-cmdargs-prof , libghc-conduit-dev (>= 0.2) , libghc-conduit-prof , libghc-src-exts-dev (>= 1.14) , libghc-src-exts-dev (<< 1.15) , libghc-src-exts-prof , libghc-http-types-dev (>= 0.7) , libghc-http-types-prof , libghc-parsec3-dev (>= 3) | libghc-parsec2-dev (>= 2.1) , libghc-parsec3-dev (>= 3) | libghc-parsec2-dev (<< 3) , libghc-parsec3-prof | libghc-parsec2-prof , libghc-random-dev , libghc-random-prof , libghc-safe-dev , libghc-safe-prof , libghc-tagsoup-dev (>= 0.11) , libghc-tagsoup-prof , libghc-transformers-dev (>= 0.2) , libghc-transformers-prof , libghc-uniplate-dev (>= 1.6) , libghc-uniplate-prof , libghc-wai-dev (>= 1.1) , libghc-wai-prof , libghc-warp-dev (>= 1.1) , libghc-warp-prof Build-Depends-Indep: ghc-doc , libghc-blaze-builder-doc , libghc-case-insensitive-doc , libghc-cmdargs-doc , libghc-conduit-doc , libghc-src-exts-doc , libghc-http-types-doc , libghc-parsec3-doc | libghc-parsec2-doc , libghc-random-doc , libghc-safe-doc , libghc-tagsoup-doc , libghc-transformers-doc , libghc-uniplate-doc , libghc-wai-doc , libghc-warp-doc Standards-Version: 3.9.4 Homepage: http://www.haskell.org/hoogle/ Vcs-Darcs: http://darcs.debian.org/pkg-haskell/haskell-hoogle Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/haskell-hoogle Package: libghc-hoogle-dev Architecture: any Depends: ${shlibs:Depends} , ${haskell:Depends} , ${misc:Depends} Recommends: ${haskell:Recommends} Suggests: ${haskell:Suggests} Provides: ${haskell:Provides} Description: Haskell API Search Hoogle is a Haskell API search engine, which allows you to search many standard Haskell libraries by either function name, or by approximate type signature. . This package contains the normal library files. Package: libghc-hoogle-prof Architecture: any Depends: ${haskell:Depends} , ${misc:Depends} Recommends: ${haskell:Recommends} Suggests: ${haskell:Suggests} Provides: ${haskell:Provides} Description: Haskell API Search; profiling libraries Hoogle is a Haskell API search engine, which allows you to search many standard Haskell libraries by either function name, or by approximate type signature. . This package contains the libraries compiled with profiling enabled. Package: libghc-hoogle-doc Architecture: all Section: doc Depends: ${haskell:Depends} , ${misc:Depends} Recommends: ${haskell:Recommends} Suggests: ${haskell:Suggests} Description: Haskell API Search; documentation Hoogle is a Haskell API search engine, which allows you to search many standard Haskell libraries by either function name, or by approximate type signature. . This package contains the documentation files. Package: hoogle Architecture: any Section: misc Depends: ${shlibs:Depends}, ${haskell:Depends}, ${misc:Depends}, ghc-doc Recommends: apache2 Description: Haskell API Search for Debian system Hoogle is a Haskell API search engine, which allows you to search many standard Haskell libraries by either function name, or by approximate type signature. . This package contains hoogle command and cgi settings. If you have a webserver installed, you can access the hoogle web interface at http://localhost/cgi-bin/hoogle. debian/hoogle.install0000644000000000000000000000041612036250246012034 0ustar debian/tmp-inst-*/usr/bin/* /usr/bin/ debian/tmp-inst-*/usr/share/hoogle/* /usr/share/hoogle/ debian/files_hoogle/hoogle.conf /etc/apache2/conf.d/ debian/files_hoogle/keyword.txt /usr/share/hoogle/predownload/ debian/files_hoogle/hoogle.png /usr/share/hoogle/resources/ debian/hoogle.postinst0000644000000000000000000000172112036250246012251 0ustar #!/bin/sh ## ---------------------------------------------------------------------- ## debian/postinst : postinstall script for hoogle ## ---------------------------------------------------------------------- ## ---------------------------------------------------------------------- set -e ## ---------------------------------------------------------------------- # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# ## ---------------------------------------------------------------------- case "$1" in triggered|configure) [ -d /var/lib/hoogle/databases ] && update-hoogle ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 0 ;; esac ## ---------------------------------------------------------------------- exit 0 ## ---------------------------------------------------------------------- debian/changelog0000644000000000000000000000520012274671166011051 0ustar haskell-hoogle (4.2.23-3build2) trusty; urgency=medium * Rebuild for new GHC ABIs. -- Colin Watson Thu, 06 Feb 2014 11:31:02 +0000 haskell-hoogle (4.2.23-3build1) trusty; urgency=medium * Rebuild for new GHC ABIs. -- Colin Watson Sun, 22 Dec 2013 14:30:40 +0000 haskell-hoogle (4.2.23-3) unstable; urgency=low * Brown paper bag bug in update-hoogle -- Joachim Breitner Wed, 06 Nov 2013 17:01:39 +0100 haskell-hoogle (4.2.23-2) unstable; urgency=low * Ignore dead links and dont fail postinst if no hoogle databases were found (Closes: 711596) -- Joachim Breitner Wed, 06 Nov 2013 09:51:23 +0100 haskell-hoogle (4.2.23-1) unstable; urgency=low [ Joachim Breitner ] * Adjust watch file to new hackage layout [ Raúl Benencia ] * New upstream release * Remove obsolete DM-Upload-Allowed control field * Add fix-extract-tarball.patch * Depend on haskell-src-exts 1.14 -- Raúl Benencia Mon, 28 Oct 2013 16:36:14 -0300 haskell-hoogle (4.2.16-3) unstable; urgency=low * Update debian/files_hoogle/keyword.txt from http://www.haskell.org/haskellwiki/Keywords; the new version is ASCII-only so works even in the C locale (closes: #711596). -- Colin Watson Fri, 21 Jun 2013 23:45:31 +0100 haskell-hoogle (4.2.16-2) unstable; urgency=low * Enable compat level 9 -- Joachim Breitner Fri, 24 May 2013 12:50:56 +0200 haskell-hoogle (4.2.16-1) experimental; urgency=low * New upstream release -- Joachim Breitner Wed, 10 Apr 2013 12:37:01 +0200 haskell-hoogle (4.2.15-2) experimental; urgency=low * Resurrect add-local-loction-database.patch -- Joachim Breitner Sun, 17 Feb 2013 17:34:13 +0100 haskell-hoogle (4.2.15-1) experimental; urgency=low * New upstream release -- Joachim Breitner Fri, 08 Feb 2013 20:50:25 +0100 haskell-hoogle (4.2.14-1) experimental; urgency=low [ Kiwamu Okabe ] * Collect txt files from /usr/lib/ghc-doc/hoogle/ dir. * ITP (Closes: #687272 #533175) [ Joachim Breitner ] * Depend on haskell-devscripts 0.8.13 to ensure this packages is built against experimental * Bump standards version, no change * Ship debian/jquery_1.7.2+dfsg.orig.tar.gz to satisfy DFSG #1 with regard to the embedded jquery copy. -- Joachim Breitner Sun, 06 Jan 2013 11:32:57 +0100 haskell-hoogle (4.2.10-1) unstable; urgency=low * Debianization generated by cabal-debian -- Kiwamu Okabe Sat, 08 Sep 2012 18:15:44 +0900