Memchan2.3/0000755000175000017500000000000011500516253012165 5ustar sergeisergeiMemchan2.3/tools/0000755000175000017500000000000012335042043013323 5ustar sergeisergeiMemchan2.3/tools/rules/0000755000175000017500000000000011500516253014457 5ustar sergeisergeiMemchan2.3/tools/rules/xmlrules.tcl0000644000175000017500000001132707347320137017052 0ustar sergeisergei# -*- tcl -*- # # $Id: xmlrules.tcl,v 1.1 2001/09/11 05:25:51 andreas_kupries Exp $ # # [expand] utilities for generating XML. # # Copyright (C) 2001 Joe English . # Freely redistributable. # ###################################################################### # xmlEscape text -- # Replaces XML markup characters in $text with the # appropriate entity references. # variable textMap { & & < < > > } variable attvalMap { & & < < > > {"} " } ; # " proc xmlEscape {text} { variable textMap string map $textMap $text } # startTag gi ?attname attval ... ? -- # Return start-tag for element $gi with specified attributes. # proc startTag {gi args} { variable attvalMap if {[llength $args] == 1} { set args [lindex $args 0] } set tag "<$gi" foreach {name value} $args { append tag " $name='[string map $attvalMap $value]'" } return [append tag ">"] } # endTag gi -- # Return end-tag for element $gi. # proc endTag {gi} { return "" } # emptyElement gi ?attribute value ... ? # Return empty-element tag. # proc emptyElement {gi args} { variable attvalMap if {[llength $args] == 1} { set args [lindex $args 0] } set tag "<$gi" foreach {name value} $args { append tag " $name='[string map $attvalMap $value]'" } return [append tag "/>"] } # xmlComment text -- # Return XML comment declaration containing $text. # NB: if $text includes the sequence "--", it will be mangled. # proc xmlComment {text} { return "" } # wrap content gi -- # Returns $content wrapped inside <$gi> ... tags. # proc wrap {content gi} { return "<$gi>$content" } # wrap? content gi -- # Same as [wrap], but returns an empty string if $content is empty. # proc wrap? {content gi} { if {![string length [string trim $content]]} { return "" } return "<$gi>$content" } # wrapLines? content gi ? gi... ? # Same as [wrap?], but separates entries with newlines # and supports multiple nesting levels. # proc wrapLines? {content args} { if {![string length $content]} { return "" } foreach gi $args { set content [join [list <$gi> $content ] "\n"] } return $content } # sequence args -- # Handy combinator. # proc sequence {args} { join $args "\n" } ###################################################################### # XML context management. # variable elementStack [list] # start gi ?attribute value ... ? -- # Return start-tag for element $gi # As a side-effect, pushes $gi onto the element stack. # proc start {gi args} { variable elementStack lappend elementStack $gi return [startTag $gi $args] } # xmlContext {gi1 ... giN} -- # Pops elements off the element stack until one of # the specified element types is found. # # Returns: sequence of end-tags for each element popped. # proc xmlContext {gis} { variable elementStack set endTags [list] while { [llength $elementStack] && [lsearch $gis [set current [lindex $elementStack end]]] < 0 } { lappend endTags "" set elementStack [lreplace $elementStack end end] } return [join $endTags \n] } # end ? gi ? -- # Generate markup to close element $gi, including end-tags # for any elements above it on the element stack. # # If element name is omitted, closes the current element. # proc end {{gi {}}} { variable elementStack if {![string length $gi]} { set gi [lindex $elementStack end] } set prefix [xmlContext $gi] set elementStack [lreplace $elementStack end end] return [join [list $prefix ] "\n"] } ###################################################################### # Utilities for multi-pass processing. # # Not really XML-related, but I find them handy. # variable PassProcs variable Buffers # pass $passNo procName procArgs { body } -- # Specifies procedure definition for pass $n. # proc pass {pass proc args body} { variable PassProcs lappend PassProcs($pass) $proc $args $body } proc setPassProcs {pass} { variable PassProcs foreach {proc args body} $PassProcs($pass) { proc $proc $args $body } } # holdBuffers buffer ? buffer ...? -- # Declare a list of hold buffers, # to collect data in one pass and output it later. # proc holdBuffers {args} { variable Buffers foreach arg $args { set Buffers($arg) [list] } } # hold buffer text -- # Append text to named buffer # proc hold {buffer entry} { variable Buffers lappend Buffers($buffer) $entry return } # held buffer -- # Returns current contents of named buffer and empty the buffer. # proc held {buffer} { variable Buffers set content [join $Buffers($buffer) "\n"] set Buffers($buffer) [list] return $content } #*EOF* Memchan2.3/tools/rules/site0000644000175000017500000000555307346056475015400 0ustar sergeisergei# -*- tcl -*- # site wide definitions _____________________________ # the general layout of the website. Change this to # adjust the layout. also imposes the interfaces between # site policy and templates source [file join [here] formatting] ; # Make general formatting available. # Rules for the creation of the website from the .exp files. # # General layout __________________________ # Header | [page_begin tag] # - Navigation - | # Interlude | [page_content] # - Content - | # Footer | [page_end] proc sitepage {tag text url} { global pages if {[info exists pages(t,$tag)]} { error "Page $tag already defined" } set pages(t,$tag) . lappend pages(tags) $tag url $tag $text $url return } proc manpage {tag text url} { global pages if {[info exists pages(t,$tag)]} { error "Page $tag already defined" } set pages(t,$tag) . lappend pages(mp) $tag url $tag $text $url return } proc page_begin {tag} { global pages if {![info exists pages(t,$tag)]} { error "Unknown page $tag" } set title [$tag text] set pages(_) $tag set data [header $title] append data "[table][trtop]" append data "[td]

[sfproject]


[td][nbsp][td]

[pagetitle]

" append data [page_navigation_begin] } proc page_content {} { global pages unset pages(_) page_navigation_end } proc page_end {} { set last_update [readFile [file join [state] sn.time]] set data "
" append data "Last updated @ $last_update" append data "" append data "[table][trtop][td][news][td][stats]" append data "" append data "[trailer]" return $data } proc page_navigation_begin {} { set data "[trtop][td][table][trtop][table][trtop]" append data "[td]

[sf/img]

[mem/logo/100]

[tcl/sf/img]" append data "[td][nbsp][td][sect Crossreferences]" return $data } proc page_navigation_end {} { return "[td][nbsp][td]" } proc nav_link {link} { return $link
} proc site_xref {} { global pages set data "" foreach tag $pages(tags) { if {0 == [string compare $tag $pages(_)]} { append data [nav_link "[$tag text]"] } else { append data [nav_link [$tag]] } } return $data } proc mp_xref {} { global pages set data "


[sect Manpages]" foreach tag $pages(mp) { if {0 == [string compare $tag $pages(_)]} { append data [nav_link "[$tag text]"] } else { append data [nav_link [$tag]] } } return $data } Memchan2.3/tools/rules/references0000644000175000017500000000520510057726032016531 0ustar sergeisergei# -*- tcl -*- # Helper rules for the creation of the memchan website from the .exp files. proc releases/url {} {return http://sourceforge.net/project/showfiles.php?group_id=[sfgroup]} img sf/logo "SourceForge Logo" http://sourceforge.net/sflogo.php?group_id=34191 img tcl/logo "Tcl Logo" http://tcl.sourceforge.net/images/logo125.gif img mem/logo/520 "Memchan Logo" art/logo520.jpg img mem/logo/100 "Memchan Logo" art/logo100.gif img mem/logo/64 "Memchan Logo" art/logo64.gif img mem/logo/100a "Animated Memchan Logo" art/logo100a.gif img mem/logo/64a "Animated Memchan Logo" art/logo64a.gif url sf/img [sf/logo] http://sourceforge.net url tcl/sf/img [tcl/logo] http://sourceforge.net/projects/tcl url tcl/sf/txt Tcl http://sourceforge.net/projects/tcl url tcl/sf/txt/home "Tcl Homepage" http://sourceforge.net/projects/tcl url trf/txt Trf http://www.purl.org/net/akupries/soft/trf url trf/txt/home "Trf Homepage" http://www.purl.org/net/akupries/soft/trf url mem/sf/txt "Memchan SF Project" http://sourceforge.net/projects/memchan url mem/txt Memchan http://www.purl.org/net/akupries/soft/memchan url mem/txt/old "Old Memchan page" http://www.purl.org/net/akupries/soft/memchan url mem/txt/old/2 "old Memchan homepage" http://www.purl.org/net/akupries/soft/memchan url copyright "©" disclaimer.html if {0} { url mem/images "Logos" images.html url mem/home "Homepage" index.html url mem/anim "Animations" animations.html url mem/releases "Releases" [releases/url] url mem/doc "Documentation" documentation.html url mem/clog "ChangeLog" changelog.html } url tcl/foundry "Tcl Foundry" http://sourceforge.net/foundry/tcl-foundry/ url me "Andreas Kupries" http://www.purl.org/net/akupries/ ## Future ## Try to make this automatic ... url andreas_kupries/home "Andreas Kupries" http://www.purl.org/net/akupries/ url stevel/home "Steve Landers" http://www.digital-smarties.com/ url pat/home "Pat Thoyts" http://sourceforge.net/users/patthoyts url jo "John Ousterhout" http://www.scriptics.com/people/john.ousterhout url jcw "Jean-Claude Wippler" http://www.equi4.com/jcw/ url tclwiki "Tcl'ers Wiki" http://www.purl.org/tcl/wiki/ url lvirden "Larry W. Virden" http://www.purl.org/net/lvirden/ url jan "Jan Nijtmans" http://www.purl.org/net/nijtmans/ url tcl/io/fevent "Interaction of I/O system and notifier in the Tcl core" \ http://sourceforge.net/docman/display_doc.php?docid=6710&group_id=10894 Memchan2.3/tools/rules/memchan0000644000175000017500000000407207352050772016026 0ustar sergeisergei# -*- tcl -*- # configures the site policy with some variant information, like colors. # Rules for the creation of the memchan website from the .exp files. proc here {} [list return [file dirname [info script]]] source [file join [here] site] ; # load policy, defines template interface too. source [file join [here] references] ; # load references used by the site. source [file join [here] manpages] ; # load list of known manpages. proc sfproject {} {return Memchan} proc sfgroup {} {return 34191} proc bgcolor {} {return lightsteelblue} proc hlcolor {} {return lightyellow} proc author {} {return "\"Andreas Kupries,,,\""} proc border {} {return border=0} # Declare the pages of this site upfront ... sitepage mem/home "Homepage" index.html sitepage mem/releases "Releases" [releases/url] sitepage mem/images "Logos" images.html sitepage mem/anim "Animations" animations.html sitepage mem/doc "Documentation" documentation.html sitepage mem/clog "ChangeLog" changelog.html sitepage mem/copyright "© Disclaimer" disclaimer.html sitepage mem/event/gen "Event generation" mem_event.html # memchan specific commands proc mem/latest-release {} { set nfile [file join [state] latest.release] foreach {version date} [split [read [set fh [open $nfile r]]][close $fh] \n] break ; # lassign set releasepage [wget [releases/url]] regexp {release_id=([0-9]+)} $releasepage -> release_id return "[link "version $version" [releases/url]&release_id=$release_id] as of $date" } url mc/doc/nroff/gz "Archive" doc/memchan.nroff.tar.gz url mc/doc/nroff/bz "Archive" doc/memchan.nroff.tar.bz2 url mc/doc/nroff/zip "Archive" doc/memchan.nroff.tar.zip url mc/doc/html/gz "Archive" doc/memchan.html.tar.gz url mc/doc/html/bz "Archive" doc/memchan.html.tar.bz2 url mc/doc/html/zip "Archive" doc/memchan.html.tar.zip url mc/doc/tmml/gz "Archive" doc/memchan.tmml.tar.gz url mc/doc/tmml/bz "Archive" doc/memchan.tmml.tar.bz2 url mc/doc/tmml/zip "Archive" doc/memchan.tmml.tar.zip Memchan2.3/tools/rules/manpage.tmml0000644000175000017500000001045707347565336017015 0ustar sergeisergei# -*- tcl -*- # # $Id: manpage.tmml,v 1.2 2001/09/12 04:55:58 andreas_kupries Exp $ # # [expand] definitions to convert a tcl based manpage definition # into TMML. # # Copyright (C) 2001 Joe English . # Freely redistributable. # # See also # # BUGS: # + XML markup characters in [expand] macro arguments # are not properly escaped. (Plain text outside of # [...] is handled correctly however.) # # + Text must be preceded by [para] or one of the # list item macros, or else the output will be invalid. # ###################################################################### proc here {} [list return [file dirname [info script]]] source [file join [here] manpage.api] source [file join [here] xmlrules.tcl] ###################################################################### # Utilities. # proc NOP {args} { } ;# do nothing proc NYI {{message {}}} { return -code error [append $message " Not Yet Implemented"] } set this [file tail [info script]] proc provenance {} { return "Generated from [expand::expfile] by EXPAND with $::this" } ###################################################################### # Expand hooks. # proc init_hook {} { setpasses 2 } proc raw_text_hook {text} { xmlEscape $text } proc begin_hook {} { setPassProcs [expand::exppass] } ###################################################################### # Conversion specification. # # Two-pass processing. The first pass collects text for the # SYNOPSIS, SEE ALSO, and KEYWORDS sections, and the second pass # produces output. # holdBuffers synopsis see_also keywords proc nl {} { emptyElement br } proc arg {text} { wrap $text m } proc cmd {text} { wrap $text cmd } proc emph {text} { wrap $text emph } proc strong {text} { wrap $text emph } proc opt {text} { wrap $text o } pass 1 manpage_begin {args} NOP pass 2 manpage_begin {command section version module shortdesc description} { sequence \ [xmlComment [provenance]] \ [start manpage \ id [file root [file tail [expand::expfile]]] \ cat cmd \ title $command \ version $version \ package $module] \ [start namesection] \ [wrap $command name] \ [wrap $description desc] \ [end namesection] \ ; } pass 1 description {} NOP pass 2 description {} { sequence \ [xmlContext manpage] \ [wrapLines? [held synopsis] syntax synopsis] \ [start section] \ [wrap "DESCRIPTION" title] \ ; } pass 1 section {name} NOP pass 2 section {name} { sequence \ [xmlContext manpage] \ [start section] \ [wrap [string toupper $name] title] \ ; } pass 1 para {} NOP pass 2 para {} { sequence [xmlContext section] [start p] } array set listTypes { bullet ul enum ol definitions dl } pass 1 list_begin {what} NOP pass 1 list_end {} NOP pass 2 list_begin {what} { sequence \ [xmlContext {section dd li}] \ [start $::listTypes($what)] \ ; } pass 2 list_end {} { sequence \ [xmlContext {ul ol dl}] \ [end] \ ; } pass 1 bullet {} NOP pass 1 enum {} NOP pass 2 bullet {} { sequence [xmlContext {ul ol}] [start li] } pass 2 enum {} { sequence [xmlContext {ul ol}] [start li] } pass 1 lst_item {text} NOP pass 2 lst_item {text} { sequence \ [xmlContext dl] \ [start dle] \ [wrap $text dt] \ [start dd] \ ; } pass 1 call {cmd args} { hold synopsis [formatCall $cmd $args] } pass 2 call {cmd args} { sequence \ [xmlContext dl] \ [start dle] \ [wrap [formatCall $cmd $args] dt] \ [start dd] \ ; } proc formatCall {cmd arglist} { return "$cmd [join $arglist { }]" ;# OR: wrap "..." command } pass 1 require {pkg {version {}}} { hold synopsis [formatRequire $pkg $version] } pass 2 require {pkg {version {}}} NOP proc formatRequire {pkg version} { return "package require [wrap $pkg package] [wrap? $version l]" } pass 1 see_also {args} { holdWrapped see_also $args ref } pass 1 keywords {args} { holdWrapped keywords $args keyword } pass 2 see_also {args} NOP pass 2 keywords {args} NOP # holdWrapped -- # Common factor of [see_also] and [keywords]. # proc holdWrapped {buffer arglist gi} { foreach arg $arglist { hold $buffer [wrap $arg $gi] } return } pass 1 manpage_end {} NOP pass 2 manpage_end {} { sequence \ [xmlContext manpage] \ [wrapLines? [held see_also] seealso] \ [wrapLines? [held keywords] keywords] \ [end manpage] \ ; } #*EOF* Memchan2.3/tools/rules/manpage.nroff0000644000175000017500000001246407347565336017156 0ustar sergeisergei# -*- tcl -*- # rules/manpage-nroff # # (c) 2001 Andreas Kupries # # [expand] definitions to convert a tcl based manpage definition into # a manpage based upon *roff markup. Additional definition files allow # the conversion into HTML and XML. # ################################################################ proc here {} [list return [file dirname [info script]]] source [file join [here] manpage.api] ; # api, defines all required commands with errors. # Called before the first pass proc init_hook {} {setpasses 2} # Called before the first output. proc begin_hook {} { # Reset the syn flag global state set state(syn) 0 return } # Called after the last output. proc end_hook {} {} ################################################################ ## Backend for *roff markup proc manpage_begin {command section version module shortdesc description} { cpush mp set hdr "" append hdr "[nr_comment {}]\n" append hdr "[nr_comment {Copyright (c) 2000 Andreas Kupries}]\n" append hdr "[nr_comment {All right reserved}]\n" append hdr "[nr_comment {}]\n" append hdr "[nr_comment "CVS: \$Id\$ $command.$section"]\n" append hdr "[nr_comment {}]\n" append hdr ".so man.macros\n" append hdr ".TH \"[string trimleft $command :]\" $section $version $module \"$shortdesc\"\n" append hdr ".BS\n" append hdr "[nr_comment {Note: do not modify the .SH NAME line immediately below!}]\n" append hdr ".SH NAME\n" append hdr "$command \\- $description" return $hdr } proc manpage_end {} { # Strip empty lines out of the generated nroff source. They mess # up the nroff formatting. regsub -all "\[\t \]*\n(\[\t \]*\n)*\[\t \]*" [cpop mp] "\n" data return $data } proc section {name} {return ".SH \"$name\""} proc para {} {nr_p} global state array set state {syn 0 call {}} proc require {pkg {version {}}} { if {$version != {}} { return "[x_synopsis]package require [nr_bld]$pkg $version[nr_rst]\n[nl]" } else { return "[x_synopsis]package require [nr_bld]$pkg[nr_rst]\n[nl]" } } proc call {cmd args} { global state if {[exppass] == 1} { append state(call) "$cmd [join $args " "][nr_rst]\n[nl]\n" } return "[lst_item "$cmd [join $args " "][nr_rst]"]" } proc description {} { global state if {$state(call) == {}} { return .BE\n[section DESCRIPTION] } else { return [x_synopsis]$state(call).BE\n[section DESCRIPTION] } } proc x_synopsis {} { global state if {!$state(syn)} { set state(syn) 1 return [section SYNOPSIS]\n } else { return "" } } ################################################################ global list_state array set list_state {level -1} proc list_begin {what} { global list_state switch -exact -- $what { enum - bullet - definitions {} default {return -code error "Unknown list type $what"} } incr list_state(level) set list_state(l,$list_state(level)) $what set list_state(l,$list_state(level),id) 0 if {$list_state(level) > 0} { return [nr_in] } else { return {} } } proc list_end {} { global list_state catch {unset list_state(l,$list_state(level))} catch {unset list_state(l,$list_state(level),id)} incr list_state(level) -1 if {$list_state(level) >= 0} { return [nr_out] } else { return {} } } proc bullet {} { global list_state switch -exact -- $list_state(l,$list_state(level)) { bullet {return ".TP\n*"} default {return -code error "Illegal use of bullet in non-bullet list"} } } proc enum {} { global list_state switch -exact -- $list_state(l,$list_state(level)) { enum {return ".IP \[[incr list_state(l,$list_state(level),id)]\]\n"} default {return -code error "Illegal use of bullet in non-bullet list"} } } proc lst_item {text} { global list_state switch -exact -- $list_state(l,$list_state(level)) { definitions {return ".TP\n$text"} default {return -code error "Illegal use of bullet in non-bullet list"} } } ################################################################ proc see_also {args} {return "[section {SEE ALSO}]\n[join $args ", "]"} proc keywords {args} {return "[section KEYWORDS]\n[join $args ", "]"} proc nl {} {nr_vspace} proc arg {text} {return [nr_ul]$text[nr_rst]} proc cmd {text} {return [nr_bld]$text[nr_rst]} proc emph {text} {return [nr_ul]$text[nr_rst]} proc strong {text} {return [nr_bld]$text[nr_rst]} proc opt {text} {return ?$text?} ################################################################ # nroff specific commands proc nr_bld {} {return \\fB} proc nr_ul {} {return \\fI} proc nr_rst {} {return \\fR} proc nr_p {} {return .PP} proc nr_comment {text} {return "'\\\" $text"} proc nr_enum {num} {return ".IP \[$num\]"} proc nr_vspace {} {return .sp} proc nr_blt {text} {return ".TP\n$text"} proc nr_bltn {n text} {return ".TP $n\n$text"} proc nr_in {} {return .RS} proc nr_out {} {return .RE} ################################################################ proc setx {v string} { upvar $v _ set _ $string return } proc appendx {v string} { upvar $v _ append _ $string return } ################################################################ Memchan2.3/tools/rules/manpage.list0000644000175000017500000000256407347565336017017 0ustar sergeisergei# -*- tcl -*- # rules/manpage.api # # (c) 2001 Andreas Kupries # Defines the procedures a manpage rules file has to support for good # manpages. The procedures here return errors. ################################################################ proc manpage_begin {command section version module shortdesc description} { puts [list manpage mem/mp/$command $command mp.$command.html] setoutput nul return } ################################################################ proc manpage_end {} {} proc require {pkg {version {}}} {} proc description {} {} proc section {name} {} proc para {} {} proc call {cmd args} {} proc list_begin {what} {} proc list_end {} {} proc lst_item {text} {} proc see_also {args} {} proc keywords {args} {} proc nl {} {} proc bullet {} {} proc enum {} {} proc arg {text} {} proc cmd {text} {} proc emph {text} {} proc strong {text} {} proc setx {v string} {} proc appendx {v string} {} proc opt {text} {} ################################################################ Memchan2.3/tools/rules/manpage.html.site0000644000175000017500000001164310427602752017734 0ustar sergeisergei# -*- tcl -*- # rules/manpage-html # # (c) 2001 Andreas Kupries # # [expand] definitions to convert a tcl based manpage definition into # a manpage based upon HTML markup. Additional definition files allow # the conversion into nroff and XML. # # This conversion is for standalone manpages ... # ################################################################ proc here {} [list return [file dirname [info script]]] source [file join [here] manpage.api] ; # api, defines all required commands with errors. source [file join [here] memchan] ; # site pages policy and memchan configuration proc state {} [list return [file join [file dirname [state]] .. htdocs state]] # Called before the first pass proc init_hook {} {setpasses 2} # Called before the first output. proc begin_hook {} { # Reset the syn flag global state set state(syn) 0 set state(req) 0 return } # Called after the last output. proc end_hook {} {} ################################################################ ## Backend for *roff markup proc manpage_begin {command section version} { global __command ; set __command $command global __section ; set __section $section global __version ; set __version $version set hdr "" append hdr "[ht_comment {}]\n" append hdr "[ht_comment "CVS: \$Id\$ $command.$section"]\n" append hdr "[ht_comment {}]\n" append hdr "\n" append hdr [page_begin mem/mp/$command][nav_link [mem/sf/txt]]
[site_xref]
[mp_xref] append hdr [page_content] return $hdr } ##proc moddesc {module} {} proc moddesc {shortdesc} { global __command global __section global __version return "

$shortdesc $__version -- [string trimleft $__command :]($__section)

\n" } proc titledesc {description} { global __command set hdr "" append hdr "[section NAME]\n" append hdr "[para] $__command - $description" return $hdr } proc copyright {args} {} proc comment {args} {} proc manpage_end {} {return [page_end]} proc section {name} {return "

$name

"} proc para {} {return

} global state array set state {req 0 syn 0 call {}} proc require {pkg {version {}}} { global state set state(req) 1 set result "[x_synopsis]package require $pkg" if {$version != {}} { append result " $version" } append result "
\n" return $result } proc call {cmd args} { global state if {[exppass] == 1} { set oldcolor [bgcolor] proc bgcolor {} {return lightyellow} append state(call) "[trtop][td]$cmd [join $args " "]\n" proc bgcolor {} [list return $oldcolor] } return "[lst_item "$cmd [join $args " "]"]" } proc description {} { global state set result "" if {$state(call) != {}} { append result [x_synopsis] if {$state(req)} {append result
} append result [btable][tr][td][table]$state(call)\n } append result [section DESCRIPTION] return $result } proc x_synopsis {} { global state if {!$state(syn)} { global oldcolor set state(syn) 1 return [section SYNOPSIS]\n } else { return "" } } ################################################################ global list_state array set list_state {level -1} proc list_begin {what} { global list_state switch -exact -- $what { enum {set result

    } bullet {set result
      } definitions {set result
      } default {return -code error "Unknown list type $what"} } incr list_state(level) set list_state(l,$list_state(level)) $what return $result } proc list_end {} { global list_state set what $list_state(l,$list_state(level)) catch {unset list_state(l,$list_state(level))} incr list_state(level) -1 switch -exact -- $what { enum {set result
} bullet {set result } definitions {set result } } return $result } proc lst_item {text} {return
$text
} proc bullet {} {return
  • } proc enum {} {return
  • } ################################################################ proc see_also {args} {return "[section {SEE ALSO}]\n[join $args ", "]"} proc keywords {args} {return "[section KEYWORDS]\n[join $args ", "]"} proc nl {} {return
    } proc arg {text} {return $text} proc cmd {text} {return $text} proc emph {text} {return $text} proc strong {text} {return $text} proc opt {text} {return ?$text?} ################################################################ # HTML specific commands proc ht_comment {text} {return ""} ################################################################ proc setx {v string} { upvar $v _ set _ $string return } proc appendx {v string} { upvar $v _ append _ $string return } ################################################################ Memchan2.3/tools/rules/manpage.html0000644000175000017500000001076507347565336017012 0ustar sergeisergei# -*- tcl -*- # rules/manpage-html # # (c) 2001 Andreas Kupries # # [expand] definitions to convert a tcl based manpage definition into # a manpage based upon HTML markup. Additional definition files allow # the conversion into nroff and XML. # # This conversion is for standalone manpages ... # ################################################################ proc here {} [list return [file dirname [info script]]] source [file join [here] manpage.api] ; # api, defines all required commands with errors. source [file join [here] formatting] ; # HTML basic formatting proc bgcolor {} {return ""} proc border {} {return 0} # Called before the first pass proc init_hook {} {setpasses 2} # Called before the first output. proc begin_hook {} { # Reset the syn flag global state set state(syn) 0 set state(req) 0 return } # Called after the last output. proc end_hook {} {} ################################################################ ## Backend for *roff markup proc manpage_begin {command section version module shortdesc description} { set hdr "" append hdr "$command - $shortdesc " append hdr "[ht_comment {}]\n" append hdr "[ht_comment {Copyright (c) 2000 Andreas Kupries}]\n" append hdr "[ht_comment {All right reserved}]\n" append hdr "[ht_comment {}]\n" append hdr "[ht_comment "CVS: \$Id\$ $command.$section"]\n" append hdr "[ht_comment {}]\n" append hdr "

    [string trimleft $command :]($section) $version $module \"$shortdesc\"

    \n" append hdr "[section NAME]\n" append hdr "[para] $command - $description" return $hdr } proc manpage_end {} {return } proc section {name} {return "

    $name

    "} proc para {} {return

    } global state array set state {req 0 syn 0 call {}} proc require {pkg {version {}}} { global state set state(req) 1 set result "[x_synopsis]package require $pkg" if {$version != {}} { append result " $version" } append result "
    " return $result } proc call {cmd args} { global state if {[exppass] == 1} { append state(call) "[trtop][td]$cmd [join $args " "]\n" } return "[lst_item "$cmd [join $args " "]"]\n" } proc description {} { global state set result "" if {$state(call) != {}} { append result [x_synopsis] if {$state(req)} {append result
    } proc bgcolor {} {return lightyellow} append result [btable][tr][td][table]$state(call)\n proc bgcolor {} {return ""} } append result [section DESCRIPTION] return $result } proc x_synopsis {} { global state if {!$state(syn)} { set state(syn) 1 return [section SYNOPSIS]\n } else { return "" } } ################################################################ global list_state array set list_state {level -1} proc list_begin {what} { global list_state switch -exact -- $what { enum {set result

      } bullet {set result
        } definitions {set result
        } default {return -code error "Unknown list type $what"} } incr list_state(level) set list_state(l,$list_state(level)) $what return $result } proc list_end {} { global list_state set what $list_state(l,$list_state(level)) catch {unset list_state(l,$list_state(level))} incr list_state(level) -1 switch -exact -- $what { enum {set result
    } bullet {set result } definitions {set result } } return $result } proc lst_item {text} {return
    $text
    } proc bullet {} {return
  • } proc enum {} {return
  • } ################################################################ proc see_also {args} {return "[section {SEE ALSO}]\n[join $args ", "]"} proc keywords {args} {return "[section KEYWORDS]\n[join $args ", "]"} proc nl {} {return
    } proc arg {text} {return $text} proc cmd {text} {return $text} proc emph {text} {return $text} proc strong {text} {return $text} proc opt {text} {return ?$text?} ################################################################ # HTML specific commands proc ht_comment {text} {return ""} ################################################################ proc setx {v string} { upvar $v _ set _ $string return } proc appendx {v string} { upvar $v _ append _ $string return } ################################################################ Memchan2.3/tools/rules/manpage.api.spec0000644000175000017500000000702007347565336017536 0ustar sergeisergeiSpecification of the API a manpage/tcl has to conform to so that rule files are able to process it properly. ====================================================================== The available commands are listed in the file 'manpage.api' too. The definitions in that file return errors. They should be loaded before the actual definitions so that usage of an unimplemented command causes a proper error message. ---------------------------------------------------------------------- The main commands are "manpage_begin", "manpage_end" and "description". All three are required. The first two are the first and last commands in a manpage. Neither text nor other commands may precede "manpage_begin" nor follow "manpage_end". The command "description" separates header and body of the manpage and may not be omitted. The only allowed text between "manpage_begin" and "description" is the command "require". Other commands or normal text are not permitted. "require" is used to list the packages the described command(s) depend(s) on for its operation. This list can be empty. After "description" text all other commands are allowed. The text can be separated into highlevel blocks using named "section"s. Each block can be further divided into paragraphs via "para". The commands "see_also" and "keywords" define whole sections named "SEE ALSO" and "KEYWORDS". They can occur everywhere in the manpage but making them the last section is the usual thing to do. They can be omitted. There are four commands available to mark words, "arg", "cmd", "emph" and "strong". The first two are used to mark words as command arguments and as command names. The other two are visual markup to emphasize words. Another set of four commands is available to construct (nested) lists. These are "list_begin", "list_end", "lst_item" and "call". The first two of these begin and end a list respectively. The argument to the first command is either 'bullet' or 'enum' denoting the type of the list (unordered vs. ordered). The third command starts list items. Each item has some text directly associated with the bullet but the major bulk of the item is the text following the item until the next list command. The last list command, "call" is special. It is used to describe the syntax of a command and its arguments. It should not only cause the appropriate markup of a list item at its place but also add the syntax to the table of contents (synopsis) if supported by the output format in question. nroff and HTML for example do. A logical format like TMML doesn't. I currently use the ?...? notation in my example to mark optional arguments. This should better be done through a command. This command is "opt". _Not_ "optarg" as it may span several arguments. ====================================================================== [list_begin "bullet"] -- Starts a bulleted (unordered) list. [bullet] -- Starts a new item in a bulleted list. [list_begin "enum"] -- Starts a numbered list. [enum] -- Starts a new item in a numbered (ordered) list. Successive list items are numbered [1], [2], ... etc. [list_begin "definitions"] -- Starts a definition list. [lst_item _text_] -- Starts a new entry in a definition list. _text_ is the list item header. [list_begin commands] -- Starts a command list, for describing the syntax of a command and its arguments. [call _cmd_ ? _arg_ _arg_ ... ? ] -- Starts an entry in a command list. In addition, adds the command syntax summary "_cmd_ _args_..." to the SYNOPSIS section. Memchan2.3/tools/rules/manpage.api0000644000175000017500000000264707347565336016617 0ustar sergeisergei# -*- tcl -*- # rules/manpage.api # # (c) 2001 Andreas Kupries # Defines the procedures a manpage rules file has to support for good # manpages. The procedures here return errors. proc __ {command} {return "return -code error \"Unimplemented command $command\""} ################################################################ proc manpage_begin {command section version module shortdesc description} [__ manpage] proc manpage_end {} [__ manpage_end] proc require {pkg {version {}}} [__ require] proc description {} [__ description] proc section {name} [__ section] proc para {} [__ para] proc list_begin {what} [__ list_begin] proc list_end {} [__ list_end] proc lst_item {{text {}}} [__ lst_item] proc call {cmd args} [__ call] proc bullet {} [__ bullet] proc enum {} [__ enum] proc see_also {args} [__ see_also] proc keywords {args} [__ keywords] proc nl {} [__ nl] proc arg {text} [__ arg] proc cmd {text} [__ cmd] proc opt {text} [__ opt] proc emph {text} [__ emph] proc strong {text} [__ strong] ################################################################ rename __ {} Memchan2.3/tools/rules/formatting0000644000175000017500000000650607347565336016607 0ustar sergeisergei# -*- tcl -*- # Helper rules for the creation of the memchan website from the .exp files. # General formatting instructions ... proc state {} [list return [file join [pwd] state]] proc use_bg {} { set c [bgcolor] #puts stderr "using $c" if {$c == {}} {return ""} return bgcolor=$c } proc nbsp {} {return " "} proc p {} {return

    } proc ptop {} {return "

    "} proc td {} {return ""} proc trtop {} {return ""} proc tr {} {return ""} proc sect {s} {return "$s


    "} proc link {text url} {return "$text"} proc table {} {return ""} proc btable {} {return "
    "} proc stable {} {return "
    "} proc tcl_cmd {cmd} {return "\[$cmd]"} proc wget {url} {exec /usr/bin/wget -q -O - $url 2>/dev/null} proc url {tag text url} { set body { switch -exact -- $what { link {return {%text%}} text {return {%text%}} url {return {%url%}} } } proc $tag {{what link}} [string map [list %text% $text %url% $url] $body] } proc img {tag alt img} { proc $tag {} [list return "\"$alt\""] } proc header {title} { proc pagetitle {} [list return $title] return "[sfproject] @ SourceForge : $title" } proc trailer {} { return "
    [table][tr]
    [copyright][me]
    Last update at [clock format [clock seconds]]
    " } proc protect {text} {return [string map [list & "&" < "<" > ">"] $text]} proc get_changelog {} { set cl [exec [file join [here] .. changelog_to_list] [file join [pwd] .. memchan ChangeLog]] proc get_changelog {} [list return $cl] return $cl } proc changelog {} { set cl [get_changelog] set html "
      " foreach chunk $cl { foreach {date person items} $chunk break ; # lassign append html "

    • [protect $date]

      [protect $person] ...


      [p][changelog_items $items][p]\n" } return $html
    } proc changelog_items {items} { set dlopen 0 set onlykey 0 set html "" foreach item $items { set key [set com {}] foreach {key com} $item break if {$key != {}} { if {!$dlopen} { if {$onlykey} { append html [p] set onlykey 0 } append html
    \n } set dlopen 1 append html
    [protect $key]
    if {$com != {}} { append html
    [protect $com]
    \n } } else { if {$com != {}} { if {$dlopen} {append html
    [p]\n} set dlopen 0 append html [protect $com] set onlykey 1 } } } if {$dlopen} {append html \n} return $html } proc news {} { set nfile [file join [state] news] set data [read [set fh [open $nfile r]]][close $fh] return [string trim $data]\n } proc stats {} { set nfile [file join [state] statistics] set data [read [set fh [open $nfile r]]][close $fh] set data [string trim $data] regsub -all {BGCOLOR="[^"]*"} $data "[use_bg]" data regsub -all {bgcolor="[^"]*"} $data "[use_bg]" data return [string trim $data]\n } Memchan2.3/tools/watch_cvs0000755000175000017500000000133507613073116015244 0ustar sergeisergei#!/bin/sh # Watch the CVS repository for changes in memchan, retrieve the # changed files and invoke the handler script which propagate the # changes to other parts of the system. cd `dirname $0`/.. CVSROOT CVSROOT=:pserver:anonymous@cvs1:/cvsroot/memchan if [ 0 -lt `cvs -d $CVSROOT diff memchan 2>/dev/null | wc -l` ] then out=$HOME/logs/memchan mkdir -p `dirname $out` cvs -d $CVSROOT co memchan >$out 2>&1 mkdir -p memchan/htdocs/state # Use a new htdocs_setup script immediately. # Without this copying it would take effect # only after with the change after the current # one. cp ./memchan/tools/htdocs_setup ./tools/htdocs_setup (sleep 60 ; ./tools/htdocs_setup ) & fi exit Memchan2.3/tools/svfiles0000644000175000017500000000642407530626062014741 0ustar sergeisergeisvfile DESCRIPTION { { version @mFullVersion@} { version 2.2a4} { date {@mDate@}} { date {AUG-20-2002}} } svfile LSM { {Version: @mFullVersion@} {Version: 2.2a4} {Entered-date: @mDate@} {Entered-date: AUG-20-2002} } svfile ANNOUNCE { {I hereby announce @mName@ @mFullVersion@.} {I hereby announce memchan 2.2a4.} { @mDate@} { AUG-20-2002} } svfile ANNOUNCE.MAIL { {Subject: @mName@ @mFullVersion@} {Subject: memchan 2.2a4} } svfile README { { (Version @mFullVersion@ / @mDate@)} { (Version 2.2a4 / AUG-20-2002)} {Memchan @mFullVersion@ is developed for} {Memchan 2.2a4 is developed for} } svfile win/README { { (Version @mFullVersion@ / @mDate@)} { (Version 2.2a4 / AUG-20-2002)} { Memchan @mFullVersion@ Source Distribution} { Memchan 2.2a4 Source Distribution} } svfile mac/README { { (Version @mFullVersion@ / @mDate@)} { (Version 2.2a4 / AUG-20-2002)} } svfile unix/configure.in { MEMCHAN_VERSION=@mFullVersion@ MEMCHAN_VERSION=2.2a4 MEMCHAN_MAJOR_VERSION=@mMajor@ MEMCHAN_MAJOR_VERSION=2 MEMCHAN_MINOR_VERSION=@mMinor@ MEMCHAN_MINOR_VERSION=2 } svfile unix/Makefile.in { {# This file is a Makefile for MEMCHAN @mFullVersion@.} {# This file is a Makefile for MEMCHAN 2.2a4.} {# Distribution as of @mDate@} {# Distribution as of AUG-20-2002} {VERSION = @mFullVersion@} {VERSION = 2.2a4} } svfile configure.in { {# Configure script for package '@mName@', as distributed at @mDate@.} {# Configure script for package 'memchan', as distributed at AUG-20-2002.} MAJOR_VERSION=@mMajor@ MAJOR_VERSION=2 MINOR_VERSION=@mMinor@ MINOR_VERSION=2 } svfile pkgIndex.tcl { {bin Memchan@mShortDosVersion@} {bin Memchan22} {dir libMemchan@mVersion@} {dir libMemchan2.2} {ifneeded Memchan @mVersion@} {ifneeded Memchan 2.2} } svfile win/mc.rc { {VALUE "OriginalFilename", "Memchan@mShortDosVersion@.dll\0"} {VALUE "OriginalFilename", "Memchan22.dll\0"} {VALUE "FileVersion", "@mVersion@"} {VALUE "FileVersion", "2.2"} {VALUE "ProductName", "Memchan @mVersion@ for Windows\0"} {VALUE "ProductName", "Memchan 2.2 for Windows\0"} {VALUE "ProductVersion", "@mVersion@"} {VALUE "ProductVersion", "2.2"} } svfile win/Makefile.gnu { {Memchan @mFullVersion@ (as of @mDate@)} {Memchan 2.2a4 (as of AUG-20-2002)} {VERSION = @mFullVersion@} {VERSION = 2.2a4} {MEMCHAN_DLL_FILE= memchan@mShortDosVersion@.dll} {MEMCHAN_DLL_FILE= memchan22.dll} } svfile win/makefile.vc { {makefile for memchan @mFullVersion@ (as of @mDate@)} {makefile for memchan 2.2a4 (as of AUG-20-2002)} {MC = memchan@mShortDosVersion@} {MC = memchan22} {DMEMCHAN_VERSION=\"@mFullVersion@\"} {DMEMCHAN_VERSION=\"2.2a4\"} } svfile win/makefile.vc5 { {makefile for Memchan @mFullVersion@ (@mDate@)} {makefile for Memchan 2.2a4 (AUG-20-2002)} {MC = memchan@mShortDosVersion@} {MC = memchan22} {DMEMCHAN_VERSION=\"@mFullVersion@\"} {DMEMCHAN_VERSION=\"2.2a4\"} } svfile win/pkgIndex.tcl { {ifneeded Memchan @mVersion@} {ifneeded Memchan 2.2} {dir memchan@mShortDosVersion@} {dir memchan22} } Memchan2.3/tools/structure0000755000175000017500000000013307343621402015313 0ustar sergeisergei /home/groups/m/me/memchan/ htdocs art raw state tools memchan - cvs watch copy Memchan2.3/tools/setversion0000755000175000017500000000462107530626062015467 0ustar sergeisergei#!/bin/sh # -*- tcl -*- \ exec tclsh "$0" ${1+"$@"} # Insert version and other information into a number of files. global trouble set trouble 0 # ============================================================ # Generate the substitution map. proc mapdef {k v} { global map set map(@${k}@) $v return } proc map {} { global map set res [list] foreach k [lsort [array names map]] { lappend res $k $map($k) } return $res } # ============================================================ proc svfile {fname patternlist} { global trouble subst out if {![file exists $fname]} { puts stderr "File $fname: Does not exist" set trouble 1 return } puts "Updating file $fname ..." set fh [open $fname r] set contents [read $fh] close $fh puts $out "svfile [list $fname] \{" foreach {pattern current} $patternlist { set newvalue [string map $subst $pattern] puts $out " [list $pattern]" puts $out " [list $newvalue]" set contents [string map [list $current $newvalue] $contents] } puts $out "\}" if {[catch { set fh [open ${fname}.new w] puts -nonewline $fh $contents close $fh }]} { file delete -force ${fname}.new puts stderr "Unable to write new contents of $fname" set trouble 1 return } file rename -force ${fname}.new $fname return } proc extension {name data} { global pname set pname $name } # ============================================================ set v [lindex $argv 0] if {$v == {}} { puts stderr "Usage: $argv0 major.minor(\[abp.\]patchlevel)?" exit -1 } regexp {([0-9]+)\.([0-9+])(([abp.])([0-9]+))?} $v \ -> major minor __ detail patchlevel source DESCRIPTION mapdef mDate [string toupper \ [clock format \ [clock seconds] -format "%b-%d-%Y"]] mapdef mFullVersion $v mapdef mMajor $major mapdef mMinor $minor mapdef mShortDosVersion $major$minor mapdef mVersion ${major}.$minor mapdef mName $pname # ============================================================ set flistfile [file join [file dirname [info script]] svfiles] set newflist ${flistfile}.new set out [open ${flistfile}.new w] set subst [map] source $flistfile close $out ## set trouble 1 ; # enforce that new file does not overwrite old if {!$trouble} { file rename -force ${flistfile}.new ${flistfile} } Memchan2.3/tools/nroff_regen0000755000175000017500000000104307614311654015554 0ustar sergeisergei#!/bin/sh # Assume call with pwd = 'doc'. # Phase I ... List known manpages ... rm -f ../tools/rules/manpages touch ../tools/rules/manpages tclsh="$1" for i in `ls *.man` do echo $i '-->' manpages $tclsh ../tools/mpexpand.tcl list $i - | \ awk "{ print \$2 }" | \ sed -e 's|^\(.*\)$|manpage mem/mp/\1 \1 mp.\1.html|' | cat >> ../tools/rules/manpages done # Phase II .. Generate true output ... for i in `ls *.man` do echo $i '-->' `basename $i .man`.n $tclsh ../tools/mpexpand.tcl nroff $i - > `basename $i .man`.n done Memchan2.3/tools/mpexpand.tcl0000755000175000017500000000654607614311654015674 0ustar sergeisergei#!/bin/sh # -*- tcl -*- \ exec tclsh "$0" ${1+"$@"} lappend auto_path [file dirname [file dirname [info script]]] if 0 { puts auto_path=\n\t[join $auto_path \n\t] catch {puts tcl_pkgPath=\n\t[join $tcl_pkgPath \n\t]} catch {puts tcl_libPath=\n\t[join $tcl_libPath \n\t]} puts [package require doctools] exit } package require doctools # --------------------------------------------------------------------- # 1. Handle command line options, input and output # 2. Initialize a doctools object. # 3. Run the input through the object. # 4. Write output. # --------------------------------------------------------------------- proc usage {{exitstate 1}} { global argv0 puts "Usage: $argv0\ ?-h|--help|-help|-??\ ?-help-fmt|--help-fmt?\ ?-module module?\ ?-deprecated?\ ?-copyright text?\ format in|- ?out|-?" exit $exitstate } # --------------------------------------------------------------------- proc fmthelp {} { # Tcllib FR #527029: short reference of formatting commands. global argv0 puts "$argv0 [doctools::help]" exit 0 } # --------------------------------------------------------------------- # 1. Handle command line options, input and output proc cmdline {} { global argv0 argv format in out extmodule deprecated copyright set copyright "" set extmodule "" set deprecated 0 while {[string match -* [set opt [lindex $argv 0]]]} { switch -exact -- $opt { -module { set extmodule [lindex $argv 1] set argv [lrange $argv 2 end] continue } -copyright { set copyright [lindex $argv 1] set argv [lrange $argv 2 end] continue } -deprecated { set deprecated 1 set argv [lrange $argv 1 end] } -help - -h - --help - -? { # Tcllib FR #527029 usage 0 } -help-fmt - --help-fmt { # Tcllib FR #527029 fmthelp } default { # Unknown option usage } } } if {[llength $argv] < 3} { usage } foreach {format in out} $argv break if {$format == {} || $in == {}} { usage } if {$out == {}} {set out -} return $format } # --------------------------------------------------------------------- # 3. Read input. Also providing the namespace with file information. proc get_input {} { global in if {[string equal $in -]} { return [read stdin] } else { set if [open $in r] set text [read $if] close $if return $text } } # --------------------------------------------------------------------- # 4. Write output. proc write_out {text} { global out if {[string equal $out -]} { puts -nonewline stdout $text } else { set of [open $out w] puts -nonewline $of $text close $of } } # --------------------------------------------------------------------- # Get it all together proc main {} { global format deprecated extmodule in copyright #if {[catch {} cmdline ::doctools::new dt -format $format -deprecated $deprecated -file $in if {$extmodule != {}} { dt configure -module $extmodule } if {$copyright != {}} { dt configure -copyright $copyright } write_out [dt format [get_input]] set warnings [dt warnings] if {[llength $warnings] > 0} { puts stderr [join $warnings \n] } #{} msg]} {} #puts stderr "Execution error: $msg" #{} return } # --------------------------------------------------------------------- main exit Memchan2.3/tools/mkinstalldirs0000744000175000017500000000121106343347136016137 0ustar sergeisergei#!/bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Last modified: 1994-03-25 # Public domain errstatus=0 for file in ${1+"$@"} ; do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d in ${1+"$@"} ; do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" 1>&2 mkdir "$pathcomp" || errstatus=$? fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here Memchan2.3/tools/manpage_regen0000755000175000017500000000156407613073116016057 0ustar sergeisergei#!/bin/sh # Assume call with pwd = 'doc'. # Phase I ... List known manpages ... rm ../tools/rules/manpages touch ../tools/rules/manpages for i in `ls *.man` do echo $i '-->' manpages ../tools/mpexpand list $i - | \ awk "{ print \$2 }" | \ sed -e 's|^\(.*\)$|manpage mem/mp/\1 \1 mp.\1.html|' | cat >> ../tools/rules/manpages done # Phase II .. Generate true output ... for i in `ls *.man` do echo $i '-->' `basename $i .man`.n ../tools/mpexpand nroff $i `basename $i .man`.n echo $i '-->' `basename $i .man`.html ../tools/mpexpand html $i `basename $i .man`.html echo $i '-->' `basename $i .man`.tmml ../tools/mpexpand tmml $i `basename $i .man`.tmml ## We need a true formatting engine for this one. echo $i '-->' `basename $i .man`.html ../tools/expand -rules ../tools/rules/manpage.html.site $i > ../htdocs/mp.`basename $i .man`.html done Memchan2.3/tools/manpage_clean0000755000175000017500000000025207346056475016046 0ustar sergeisergei#!/bin/sh # Assume call with pwd = 'doc'. # Remove all files generated by 'manpage_regen' rm ../tools/rules/manpages rm *.n rm *.html rm ../htdocs/mp.*.html Memchan2.3/tools/install-sh0000744000175000017500000000421206343347314015337 0ustar sergeisergei#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5; it is not part of GNU. # # $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ # # This script is compatible with the BSD install script, but was written # from scratch. # # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" instcmd="$mvprog" chmodcmd="" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; *) if [ x"$src" = x ] then src=$1 else dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` fi # Make a temp file name in the proper directory. dstdir=`dirname $dst` dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp # and set any options; do chmod last to preserve setuid bits if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi # Now rename the file to the real destination. $doit $rmcmd $dst $doit $mvcmd $dsttmp $dst exit 0 Memchan2.3/tools/htdocs_setup0000755000175000017500000000232107532555303015766 0ustar sergeisergei#!/bin/sh # # Called in response to changes in the cvs repository of memchan # Assumes that the changed files were already retrieved. Uses them to # regenerate the whole website. # pwd = /home/groups/m/me/memchan/ # Remove old temporary information. rm -rf doc mkdir doc cp -r memchan/doc/* doc/ cp -r memchan/htdocs/* htdocs/ # Regenerate the external representatons of all manpages, and the site # itself. At last generate bundles of the documentation for download. out=$HOME/logs/crontab mkdir -p `dirname $out` rm $out ; touch $out cd doc ; ../tools/manpage_regen >>$out ; cd .. cd htdocs ; ../tools/htdocs_refresh ; cd .. tar cf - doc/*.n | gzip -9 > memchan.nroff.tar.gz tar cf - doc/*.n | bzip2 > memchan.nroff.tar.bz2 zip memchan.nroff.tar.zip doc/*.n > /dev/null tar cf - doc/*.html | gzip -9 > memchan.html.tar.gz tar cf - doc/*.html | bzip2 > memchan.html.tar.bz2 zip memchan.html.tar.zip doc/*.html > /dev/null tar cf - doc/*.tmml | gzip -9 > memchan.tmml.tar.gz tar cf - doc/*.tmml | bzip2 > memchan.tmml.tar.bz2 zip memchan.tmml.tar.zip doc/*.tmml > /dev/null mkdir -p htdocs/doc mv memchan.* htdocs/doc/ (sleep 5 ; cp -r memchan/tools/* tools/) & exit Memchan2.3/tools/htdocs_regen0000755000175000017500000000035307343621402015723 0ustar sergeisergei#!/bin/sh # Assume call with pwd = 'htdocs'. for i in `ls raw/*.exp` do echo $i '-->' `basename $i .exp`.html ../tools/expand -rules ../tools/rules/memchan $i > `basename $i .exp`.html done rm index.php ln -s index.html index.php Memchan2.3/tools/htdocs_refresh0000755000175000017500000000026007346060254016263 0ustar sergeisergei#!/bin/sh cd `dirname $0`/../htdocs out=$HOME/logs/crontab mkdir -p `dirname $out` ../tools/htdocs_get_sf_stats >> $out 2>&1 ../tools/htdocs_regen >> $out 2>&1 exit Memchan2.3/tools/htdocs_get_sf_stats0000755000175000017500000000163707343621402017316 0ustar sergeisergei#!/bin/sh # -*-tcl-*- # the next line restarts using tclsh \ exec tclsh "${0}" "${@}" #################################### set memchan 34191 set mode full set no_table 0 set limit 10 set flat 1 set shows 0 set stat_url http://sourceforge.net/export/projhtml.php?group_id=$memchan&mode=$mode&no_table=$no_table set news_url http://sourceforge.net/export/projnews.php?group_id=$memchan&limit=$limit&flat=$flat&show_summaries=$shows set now [clock format [clock seconds]] foreach {urlvar destination} { stat_url state/statistics news_url state/news } { puts "Retrieving [set $urlvar] --> $destination" exec /usr/bin/wget -q -O $destination [set $urlvar] >/dev/null } puts "Remembering time --> state/sn.time" puts [set fh [open state/sn.time w]] $now; close $fh ### Future ### Edit the delivered HTML to fit them better into our site. ### Done inside of the page generation templates ! exit Memchan2.3/tools/genStubs.tcl0000644000175000017500000005155107164211211015627 0ustar sergeisergei# genStubs.tcl -- # # This script generates a set of stub files for a given # interface. # # # Copyright (c) 1998-1999 by Scriptics Corporation. # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # RCS: @(#) $Id: genStubs.tcl,v 1.1 2000/09/26 21:18:01 aku Exp $ namespace eval genStubs { # libraryName -- # # The name of the entire library. This value is used to compute # the USE_*_STUB_PROCS macro and the name of the init file. variable libraryName "UNKNOWN" # interfaces -- # # An array indexed by interface name that is used to maintain # the set of valid interfaces. The value is empty. array set interfaces {} # curName -- # # The name of the interface currently being defined. variable curName "UNKNOWN" # hooks -- # # An array indexed by interface name that contains the set of # subinterfaces that should be defined for a given interface. array set hooks {} # stubs -- # # This three dimensional array is indexed first by interface name, # second by platform name, and third by a numeric offset or the # constant "lastNum". The lastNum entry contains the largest # numeric offset used for a given interface/platform combo. Each # numeric offset contains the C function specification that # should be used for the given entry in the stub table. The spec # consists of a list in the form returned by parseDecl. array set stubs {} # outDir -- # # The directory where the generated files should be placed. variable outDir . } # genStubs::library -- # # This function is used in the declarations file to set the name # of the library that the interfaces are associated with (e.g. "tcl"). # This value will be used to define the inline conditional macro. # # Arguments: # name The library name. # # Results: # None. proc genStubs::library {name} { variable libraryName $name } # genStubs::interface -- # # This function is used in the declarations file to set the name # of the interface currently being defined. # # Arguments: # name The name of the interface. # # Results: # None. proc genStubs::interface {name} { variable curName $name variable interfaces set interfaces($name) {} return } # genStubs::hooks -- # # This function defines the subinterface hooks for the current # interface. # # Arguments: # names The ordered list of interfaces that are reachable through the # hook vector. # # Results: # None. proc genStubs::hooks {names} { variable curName variable hooks set hooks($curName) $names return } # genStubs::declare -- # # This function is used in the declarations file to declare a new # interface entry. # # Arguments: # index The index number of the interface. # platform The platform the interface belongs to. Should be one # of generic, win, unix, or mac. # decl The C function declaration, or {} for an undefined # entry. # # Results: # None. proc genStubs::declare {args} { variable stubs variable curName if {[llength $args] != 3} { puts stderr "wrong # args: declare $args" } lassign $args index platformList decl # Check for duplicate declarations, then add the declaration and # bump the lastNum counter if necessary. foreach platform $platformList { if {[info exists stubs($curName,$platform,$index)]} { puts stderr "Duplicate entry: declare $args" } } regsub -all "\[ \t\n\]+" [string trim $decl] " " decl set decl [parseDecl $decl] foreach platform $platformList { if {$decl != ""} { set stubs($curName,$platform,$index) $decl if {![info exists stubs($curName,$platform,lastNum)] \ || ($index > $stubs($curName,$platform,lastNum))} { set stubs($curName,$platform,lastNum) $index } } } return } # genStubs::rewriteFile -- # # This function replaces the machine generated portion of the # specified file with new contents. It looks for the !BEGIN! and # !END! comments to determine where to place the new text. # # Arguments: # file The name of the file to modify. # text The new text to place in the file. # # Results: # None. proc genStubs::rewriteFile {file text} { if {![file exist $file]} { puts stderr "Cannot find file: $file" return } set in [open ${file} r] set out [open ${file}.new w] # Always write out the file with LF termination fconfigure $out -translation lf while {![eof $in]} { set line [gets $in] if {[regexp {!BEGIN!} $line]} { break } puts $out $line } puts $out "/* !BEGIN!: Do not edit below this line. */" puts $out $text while {![eof $in]} { set line [gets $in] if {[regexp {!END!} $line]} { break } } puts $out "/* !END!: Do not edit above this line. */" puts -nonewline $out [read $in] close $in close $out file rename -force ${file}.new ${file} return } # genStubs::addPlatformGuard -- # # Wrap a string inside a platform #ifdef. # # Arguments: # plat Platform to test. # # Results: # Returns the original text inside an appropriate #ifdef. proc genStubs::addPlatformGuard {plat text} { switch $plat { win { return "#ifdef __WIN32__\n${text}#endif /* __WIN32__ */\n" } unix { return "#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */\n${text}#endif /* UNIX */\n" } mac { return "#ifdef MAC_TCL\n${text}#endif /* MAC_TCL */\n" } } return "$text" } # genStubs::emitSlots -- # # Generate the stub table slots for the given interface. If there # are no generic slots, then one table is generated for each # platform, otherwise one table is generated for all platforms. # # Arguments: # name The name of the interface being emitted. # textVar The variable to use for output. # # Results: # None. proc genStubs::emitSlots {name textVar} { variable stubs upvar $textVar text forAllStubs $name makeSlot 1 text {" void *reserved$i;\n"} return } # genStubs::parseDecl -- # # Parse a C function declaration into its component parts. # # Arguments: # decl The function declaration. # # Results: # Returns a list of the form {returnType name args}. The args # element consists of a list of type/name pairs, or a single # element "void". If the function declaration is malformed # then an error is displayed and the return value is {}. proc genStubs::parseDecl {decl} { if {![regexp {^(.*)\((.*)\)$} $decl all prefix args]} { puts stderr "Malformed declaration: $decl" return } set prefix [string trim $prefix] if {![regexp {^(.+[ ][*]*)([^ *]+)$} $prefix all rtype fname]} { puts stderr "Bad return type: $decl" return } set rtype [string trim $rtype] foreach arg [split $args ,] { lappend argList [string trim $arg] } if {![string compare [lindex $argList end] "..."]} { if {[llength $argList] != 2} { puts stderr "Only one argument is allowed in varargs form: $decl" } set arg [parseArg [lindex $argList 0]] if {$arg == "" || ([llength $arg] != 2)} { puts stderr "Bad argument: '[lindex $argList 0]' in '$decl'" return } set args [list TCL_VARARGS $arg] } else { set args {} foreach arg $argList { set argInfo [parseArg $arg] if {![string compare $argInfo "void"]} { lappend args "void" break } elseif {[llength $argInfo] == 2 || [llength $argInfo] == 3} { lappend args $argInfo } else { puts stderr "Bad argument: '$arg' in '$decl'" return } } } return [list $rtype $fname $args] } # genStubs::parseArg -- # # This function parses a function argument into a type and name. # # Arguments: # arg The argument to parse. # # Results: # Returns a list of type and name with an optional third array # indicator. If the argument is malformed, returns "". proc genStubs::parseArg {arg} { if {![regexp {^(.+[ ][*]*)([^][ *]+)(\[\])?$} $arg all type name array]} { if {$arg == "void"} { return $arg } else { return } } set result [list [string trim $type] $name] if {$array != ""} { lappend result $array } return $result } # genStubs::makeDecl -- # # Generate the prototype for a function. # # Arguments: # name The interface name. # decl The function declaration. # index The slot index for this function. # # Results: # Returns the formatted declaration string. proc genStubs::makeDecl {name decl index} { lassign $decl rtype fname args append text "/* $index */\n" set line "EXTERN $rtype" set count [expr {2 - ([string length $line] / 8)}] append line [string range "\t\t\t" 0 $count] set pad [expr {24 - [string length $line]}] if {$pad <= 0} { append line " " set pad 0 } append line "$fname _ANSI_ARGS_(" set arg1 [lindex $args 0] switch -exact $arg1 { void { append line "(void)" } TCL_VARARGS { set arg [lindex $args 1] append line "TCL_VARARGS([lindex $arg 0],[lindex $arg 1])" } default { set sep "(" foreach arg $args { append line $sep set next {} append next [lindex $arg 0] " " [lindex $arg 1] \ [lindex $arg 2] if {[string length $line] + [string length $next] \ + $pad > 76} { append text $line \n set line "\t\t\t\t" set pad 28 } append line $next set sep ", " } append line ")" } } append text $line append text ");\n" return $text } # genStubs::makeMacro -- # # Generate the inline macro for a function. # # Arguments: # name The interface name. # decl The function declaration. # index The slot index for this function. # # Results: # Returns the formatted macro definition. proc genStubs::makeMacro {name decl index} { lassign $decl rtype fname args set lfname [string tolower [string index $fname 0]] append lfname [string range $fname 1 end] set text "#ifndef $fname\n#define $fname" set arg1 [lindex $args 0] set argList "" switch -exact $arg1 { void { set argList "()" } TCL_VARARGS { } default { set sep "(" foreach arg $args { append argList $sep [lindex $arg 1] set sep ", " } append argList ")" } } append text " \\\n\t(${name}StubsPtr->$lfname)" append text " /* $index */\n#endif\n" return $text } # genStubs::makeStub -- # # Emits a stub function definition. # # Arguments: # name The interface name. # decl The function declaration. # index The slot index for this function. # # Results: # Returns the formatted stub function definition. proc genStubs::makeStub {name decl index} { lassign $decl rtype fname args set lfname [string tolower [string index $fname 0]] append lfname [string range $fname 1 end] append text "/* Slot $index */\n" $rtype "\n" $fname set arg1 [lindex $args 0] if {![string compare $arg1 "TCL_VARARGS"]} { lassign [lindex $args 1] type argName append text " TCL_VARARGS_DEF($type,$argName)\n\{\n" append text " " $type " var;\n va_list argList;\n" if {[string compare $rtype "void"]} { append text " " $rtype " resultValue;\n" } append text "\n var = (" $type ") TCL_VARARGS_START(" \ $type "," $argName ",argList);\n\n " if {[string compare $rtype "void"]} { append text "resultValue = " } append text "(" $name "StubsPtr->" $lfname "VA)(var, argList);\n" append text " va_end(argList);\n" if {[string compare $rtype "void"]} { append text "return resultValue;\n" } append text "\}\n\n" return $text } if {![string compare $arg1 "void"]} { set argList "()" set argDecls "" } else { set argList "" set sep "(" foreach arg $args { append argList $sep [lindex $arg 1] append argDecls " " [lindex $arg 0] " " \ [lindex $arg 1] [lindex $arg 2] ";\n" set sep ", " } append argList ")" } append text $argList "\n" $argDecls "{\n " if {[string compare $rtype "void"]} { append text "return " } append text "(" $name "StubsPtr->" $lfname ")" $argList ";\n}\n\n" return $text } # genStubs::makeSlot -- # # Generate the stub table entry for a function. # # Arguments: # name The interface name. # decl The function declaration. # index The slot index for this function. # # Results: # Returns the formatted table entry. proc genStubs::makeSlot {name decl index} { lassign $decl rtype fname args set lfname [string tolower [string index $fname 0]] append lfname [string range $fname 1 end] set text " " append text $rtype " (*" $lfname ") _ANSI_ARGS_(" set arg1 [lindex $args 0] switch -exact $arg1 { void { append text "(void)" } TCL_VARARGS { set arg [lindex $args 1] append text "TCL_VARARGS([lindex $arg 0],[lindex $arg 1])" } default { set sep "(" foreach arg $args { append text $sep [lindex $arg 0] " " [lindex $arg 1] \ [lindex $arg 2] set sep ", " } append text ")" } } append text "); /* $index */\n" return $text } # genStubs::makeInit -- # # Generate the prototype for a function. # # Arguments: # name The interface name. # decl The function declaration. # index The slot index for this function. # # Results: # Returns the formatted declaration string. proc genStubs::makeInit {name decl index} { append text " " [lindex $decl 1] ", /* " $index " */\n" return $text } # genStubs::forAllStubs -- # # This function iterates over all of the platforms and invokes # a callback for each slot. The result of the callback is then # placed inside appropriate platform guards. # # Arguments: # name The interface name. # slotProc The proc to invoke to handle the slot. It will # have the interface name, the declaration, and # the index appended. # onAll If 1, emit the skip string even if there are # definitions for one or more platforms. # textVar The variable to use for output. # skipString The string to emit if a slot is skipped. This # string will be subst'ed in the loop so "$i" can # be used to substitute the index value. # # Results: # None. proc genStubs::forAllStubs {name slotProc onAll textVar \ {skipString {"/* Slot $i is reserved */\n"}}} { variable stubs upvar $textVar text set plats [array names stubs $name,*,lastNum] if {[info exists stubs($name,generic,lastNum)]} { # Emit integrated stubs block set lastNum -1 foreach plat [array names stubs $name,*,lastNum] { if {$stubs($plat) > $lastNum} { set lastNum $stubs($plat) } } for {set i 0} {$i <= $lastNum} {incr i} { set slots [array names stubs $name,*,$i] set emit 0 if {[info exists stubs($name,generic,$i)]} { if {[llength $slots] > 1} { puts stderr "platform entry duplicates generic entry: $i" } append text [$slotProc $name $stubs($name,generic,$i) $i] set emit 1 } elseif {[llength $slots] > 0} { foreach plat {unix win mac} { if {[info exists stubs($name,$plat,$i)]} { append text [addPlatformGuard $plat \ [$slotProc $name $stubs($name,$plat,$i) $i]] set emit 1 } elseif {$onAll} { append text [eval {addPlatformGuard $plat} $skipString] set emit 1 } } } if {$emit == 0} { eval {append text} $skipString } } } else { # Emit separate stubs blocks per platform foreach plat {unix win mac} { if {[info exists stubs($name,$plat,lastNum)]} { set lastNum $stubs($name,$plat,lastNum) set temp {} for {set i 0} {$i <= $lastNum} {incr i} { if {![info exists stubs($name,$plat,$i)]} { eval {append temp} $skipString } else { append temp [$slotProc $name $stubs($name,$plat,$i) $i] } } append text [addPlatformGuard $plat $temp] } } } } # genStubs::emitDeclarations -- # # This function emits the function declarations for this interface. # # Arguments: # name The interface name. # textVar The variable to use for output. # # Results: # None. proc genStubs::emitDeclarations {name textVar} { variable stubs upvar $textVar text append text "\n/*\n * Exported function declarations:\n */\n\n" forAllStubs $name makeDecl 0 text return } # genStubs::emitMacros -- # # This function emits the inline macros for an interface. # # Arguments: # name The name of the interface being emitted. # textVar The variable to use for output. # # Results: # None. proc genStubs::emitMacros {name textVar} { variable stubs variable libraryName upvar $textVar text set upName [string toupper $libraryName] append text "\n#if defined(USE_${upName}_STUBS) && !defined(USE_${upName}_STUB_PROCS)\n" append text "\n/*\n * Inline function declarations:\n */\n\n" forAllStubs $name makeMacro 0 text append text "\n#endif /* defined(USE_${upName}_STUBS) && !defined(USE_${upName}_STUB_PROCS) */\n" return } # genStubs::emitHeader -- # # This function emits the body of the Decls.h file for # the specified interface. # # Arguments: # name The name of the interface being emitted. # # Results: # None. proc genStubs::emitHeader {name} { variable outDir variable hooks set capName [string toupper [string index $name 0]] append capName [string range $name 1 end] emitDeclarations $name text if {[info exists hooks($name)]} { append text "\ntypedef struct ${capName}StubHooks {\n" foreach hook $hooks($name) { set capHook [string toupper [string index $hook 0]] append capHook [string range $hook 1 end] append text " struct ${capHook}Stubs *${hook}Stubs;\n" } append text "} ${capName}StubHooks;\n" } append text "\ntypedef struct ${capName}Stubs {\n" append text " int magic;\n" append text " struct ${capName}StubHooks *hooks;\n\n" emitSlots $name text append text "} ${capName}Stubs;\n" append text "\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n" append text "extern ${capName}Stubs *${name}StubsPtr;\n" append text "#ifdef __cplusplus\n}\n#endif\n" emitMacros $name text rewriteFile [file join $outDir ${name}Decls.h] $text return } # genStubs::emitStubs -- # # This function emits the body of the Stubs.c file for # the specified interface. # # Arguments: # name The name of the interface being emitted. # # Results: # None. proc genStubs::emitStubs {name} { variable outDir append text "\n/*\n * Exported stub functions:\n */\n\n" forAllStubs $name makeStub 0 text rewriteFile [file join $outDir ${name}Stubs.c] $text return } # genStubs::emitInit -- # # Generate the table initializers for an interface. # # Arguments: # name The name of the interface to initialize. # textVar The variable to use for output. # # Results: # Returns the formatted output. proc genStubs::emitInit {name textVar} { variable stubs variable hooks upvar $textVar text set capName [string toupper [string index $name 0]] append capName [string range $name 1 end] if {[info exists hooks($name)]} { append text "\nstatic ${capName}StubHooks ${name}StubHooks = \{\n" set sep " " foreach sub $hooks($name) { append text $sep "&${sub}Stubs" set sep ",\n " } append text "\n\};\n" } append text "\n${capName}Stubs ${name}Stubs = \{\n" append text " TCL_STUB_MAGIC,\n" if {[info exists hooks($name)]} { append text " &${name}StubHooks,\n" } else { append text " NULL,\n" } forAllStubs $name makeInit 1 text {" NULL, /* $i */\n"} append text "\};\n" return } # genStubs::emitInits -- # # This function emits the body of the StubInit.c file for # the specified interface. # # Arguments: # name The name of the interface being emitted. # # Results: # None. proc genStubs::emitInits {} { variable hooks variable outDir variable libraryName variable interfaces # Assuming that dependencies only go one level deep, we need to emit # all of the leaves first to avoid needing forward declarations. set leaves {} set roots {} foreach name [lsort [array names interfaces]] { if {[info exists hooks($name)]} { lappend roots $name } else { lappend leaves $name } } foreach name $leaves { emitInit $name text } foreach name $roots { emitInit $name text } rewriteFile [file join $outDir ${libraryName}StubInit.c] $text } # genStubs::init -- # # This is the main entry point. # # Arguments: # None. # # Results: # None. proc genStubs::init {} { global argv argv0 variable outDir variable interfaces if {[llength $argv] < 2} { puts stderr "usage: $argv0 outDir declFile ?declFile...?" exit 1 } set outDir [lindex $argv 0] foreach file [lrange $argv 1 end] { source $file } foreach name [lsort [array names interfaces]] { puts "Emitting $name" emitHeader $name } emitInits } # lassign -- # # This function emulates the TclX lassign command. # # Arguments: # valueList A list containing the values to be assigned. # args The list of variables to be assigned. # # Results: # Returns any values that were not assigned to variables. proc lassign {valueList args} { if {[llength $args] == 0} { error "wrong # args: lassign list varname ?varname..?" } uplevel [list foreach $args $valueList {break}] return [lrange $valueList [llength $args] end] } genStubs::init Memchan2.3/tools/expand0000755000175000017500000007274307343621402014552 0ustar sergeisergei#!/bin/sh # -*-tcl-*- # the next line restarts using tclsh\ exec tclsh "$0" "$@" #------------------------------------------------------------------------- # TITLE: # expand.tcl # # VERSION: # 2.0 # # AUTHOR: # Will Duquette # # DESCRIPTION: # Usage: tclsh expand.tcl [options] files.... # # Reads files, writing input to output. Most text # is output unchanged. Certain text is evaluated as Tcl code; # the result of the Tcl code, if any, is output. If the Tcl # code results in an error, the error result is output. # # Before reading any input, expand.tcl reads any exprules.tcl # file in the current directory, or alternatively a tcl file # specified by the "-rules" command line option. This allows the # caller to define special formatting macros for general use # and override them as needed. The rules file can also read # arguments from the command line, after options are removed but # before the files are processed. # # On an error in a macro, expand can "ignore" the macro, # "output" the macro unchanged, "fail" (the default), halting # processing, depending on the value of the "-error" option. # # Output is written to stdout, by default; the "-out" option # sends it to a file, instead. If the specified file is "nul", # then no output is written at all. The rules can also control # the output via the setoutput command. # # Any text in brackets, e.g., "[" and "]" is treated as a Tcl # command, and evaluated. The bracket characters can be changed # using ::expand::setbrackets. # # Normally Expand reads the output files only once; a rules file # can choose multiple passes using the ::expand::setpasses command. The # ::expand::exppass command returns the number of the current pass, # starting at 1. # # LICENSE: # Copyright (C) 2000 by William H. Duquette. See license.txt, # distributed with this file, for license information. # # CHANGE LOG: # # 06/27/98: Released V1.0 on web. # 06/27/98: Changed exp_extract to handle multi-character bracket # tokens. Added exp_stripBrackets to remove multi-character # bracket tokens. # 06/27/98: Added function setbrackets to allow the user to choose the # bracket tokens. # 06/27/98: Added brand new command line option parser. The new parser # can be used by the rules file's begin_hook. # # 06/28/98: Version 1.1 released. # # 06/29/98: Added init_hook. # 06/29/98: Added setoutput command. # 06/29/98: Added setpasses/exppass and multi-pass processing. # 06/29/98: Fixed potential bug in exp_getCmd: using "info complete" # with changed left and right brackets. # 06/30/98: Added -testmode flag: causes error output to go to # stdout instead of stderr to aid testing. # 07/01/98: Added a tclsh80 starter at the top of the file. # 07/01/98: exp_error calls "exit 1" instead of "exit 0" again. # 07/02/98: Added expandText and include commands. # 07/03/98: Renamed exp_write to expwrite, and made it public, # for use with setoutput. # 07/07/98: Released Expand V1.2 # # 10/10/99: Added raw_text_hook. # 01/15/00: Rewrote popArg, in an attempt to prevent an odd bug # that manifests only on certain platforms. # 01/15/00: Released Expand V1.3 # # 02/03/00: Found a bug in expandText; it isn't safe to extract # the command name from an arbitrary Tcl script using # lindex, as many valid scripts aren't valid lists. I # now use scan instead of lindex. # # 04/17/00: Version 2 rewrite begins. The code is cleaned up and # placed in the ::expand:: namespace. # # 05/07/00: Version 2 rewrite ends (for now). #------------------------------------------------------------------------- # Namespace: all of the expand code exists in the ::expand:: namespace, # leaving the global namespace for the user's rules. namespace eval ::expand:: { # Exported Commands namespace export {[a-z]*} # Expand Variables # Macro bracketing sequences. variable leftBracket "\[" variable rightBracket "\]" # What to output when an error is detected: # "nothing", "macro", "error", "fail" variable errorOutputMode fail # Number of passes to make over the input variable numberOfPasses 1 # The current output channel variable outputChannel "" # A command can push its context onto a stack, causing any text # that follows it to be saved separately. Later on, a paired command # can pop the stack, acquiring the saved text and including it in its own # output. variable level 0 variable context variable contextName variable contextData set context($level) "" set contextName($level) ":0" # Status variables variable currentFileName "" variable currentPass 0 } #------------------------------------------------------------------------- # User settings: These commands allow the users to set, and in some # cases retrieve, various expansion parameters. # lb # # Return the left bracket sequence. proc ::expand::lb {} { variable leftBracket return $leftBracket } # rb # # Return the right bracket sequence. proc ::expand::rb {} { variable rightBracket return $rightBracket } # setbrackets lb rb # # Set the bracket sequences proc ::expand::setbrackets {lb rb} { variable leftBracket variable rightBracket if {$lb == "" || $rb == ""} { error "Empty string specified as left or right bracket." } set leftBracket $lb set rightBracket $rb return } # setErrorOutputMode mode # # Set the error output mode proc ::expand::setErrorOutputMode {mode} { variable errorOutputMode if {![oneOf {fail nothing macro error} $mode]} { error "Invalid error output mode '$mode'" } set errorOutputMode $mode } # Return the current file name proc ::expand::expfile {} { variable currentFileName return $currentFileName } # Return the number of the current pass. proc ::expand::exppass {} { variable currentPass return $currentPass } # Set the number of passes proc ::expand::setpasses {passes} { variable numberOfPasses set numberOfPasses $passes if {$numberOfPasses < 1} { error "setpasses: must be >= 1" } } #------------------------------------------------------------------------- # User hooks: a rule set can redefine these hooks to do anything desired. # The init_hook doesn't contribute to the output, but the other hooks do. # Since the hooks do nothing by default, and are to be redefined by the # user, they are defined in the global name space. # Initialization Hook: called when the rule set is loaded. proc init_hook {} {} # Begin Hook: Called at the beginning of each pass. proc begin_hook {} {} # End Hook: Called at the end of each pass. proc end_hook {} {} # Begin File Hook: Called before each file is processed. proc begin_file_hook {fileName} {} # End File Hook: Called after each file is processed. proc end_file_hook {fileName} {} # Raw Text Hook: All plain (non-macro) text is passed through this # function. proc raw_text_hook {text} {return $text} #------------------------------------------------------------------------- # Context: Every expansion takes place in its own context; however, # a macro can push a new context, causing the text it returns and all # subsequent text to be saved separately. Later, a matching macro can # pop the context, acquiring all text saved since the first command, # and use that in its own output. # cpush name # # pushes an empty context onto the stack. All output text will be added # to this context until it is popped. proc ::expand::cpush {name} { variable level variable context variable contextName incr level set context($level) {} set contextName($level) $name } # cis name # # Returns true if the current context has the given name. proc ::expand::cis {name} { variable level variable contextName return [expr [string compare $name $contextName($level)] == 0] } # cname # # Returns the current context name. proc ::expand::cname {} { variable level variable contextName return $contextName($level) } # csave name value # # Save or retrieve value in the current context proc ::expand::csave {name value} { variable contextData variable level set contextData($level-$name) $value } # cget name # # Get the value of a context variable proc ::expand::cget {name} { variable contextData variable level if {![info exists contextData($level-$name)]} { error "*** Error, context var $name doesn't exist in this context" } return $contextData($level-$name) } # cvar name # # Get a context variable's real name, e.g., for appending or lappending proc ::expand::cvar {name} { variable contextData variable level if {![info exists contextData($level-$name)]} { error "*** Error, context var $name doesn't exist in this context" } return ::expand::contextData($level-$name) } # cpop # # Pops a context level off of the stack, returning the accumulated text. proc ::expand::cpop {name} { variable level variable context variable contextName variable contextData if {$level == 0} { error "*** Error, context mismatch: got unexpected '$name'" } if {"$contextName($level)" != "$name"} { error \ "*** Error, context mismatch: expected $contextName($level), got $name" } set result $context($level) set context($level) "" set contextName($level) "" foreach name [array names contextData $level-*] { unset contextData($name) } incr level -1 return $result } # ContextAppend text # # This private command appends text to the current context. It is for # use only by the Expand code; macros should return their text. proc ::expand::ContextAppend {text} { variable context variable level append context($level) $text } #------------------------------------------------------------------------- # Macro-expansion: The following code is the heart of the program. # Given a text string, and the current variable settings, this code # returns an expanded string, with all macros replaced. # # If a fatal error is detected during expansion, expandText throws # an error for its caller to handle. An error detected while # expanding a particular macro is only fatal if the errorOutputMode # is "fail"; otherwise, the result of the expansion attempt is # output according to the mode. # # All non-macro text is passed through the raw_text_hook. # Expands a string using the current macro definitions and Expand # variable settings. proc ::expand::expandText {inputString} { variable errorOutputMode global errorInfo cpush expandText while {[string length $inputString] > 0} { set plainText [ExtractToToken inputString [lb] exclude] # FIRST, If there was plain text, append it to the output, and # continue. if {$plainText != ""} { ContextAppend [raw_text_hook $plainText] if {[string length $inputString] == 0} { break } } # NEXT, A macro is the next thing; process it. if {[catch "GetMacro inputString" macro]} { error "*** Error reading macro from input: $macro" } # Expand the macro, and output the result, or # handle an error. if {![catch "uplevel #0 [list $macro]" result]} { ContextAppend $result continue } switch $errorOutputMode { nothing { } macro { ContextAppend "[lb]$macro[rb]" } error { ContextAppend "[lb]$macro[rb]\n" ContextAppend "*** Error in preceding macro: $result\n$errorInfo" } fail { error "*** Error in macro:\n[lb]$macro[rb]\n$result" } } } return [cpop expandText] } # ExtractToToken string token mode # # Extract text from a string, up to or including a particular # token. Remove the extracted text from the string. # mode determines whether the found token is removed; # it should be "include" or "exclude". The string is # modified in place, and the extracted text is returned. proc ::expand::ExtractToToken {string token mode} { upvar $string theString # First, determine the offset switch $mode { include { set offset [expr [string length $token] - 1] } exclude { set offset -1 } default { error "::expand::ExtractToToken: unknown mode $mode" } } # Next, find the first occurrence of the token. set tokenPos [string first $token $theString] # Next, return the entire string if it wasn't found, or just # the part upto or including the character. if {$tokenPos == -1} { set theText $theString set theString "" } else { set newEnd [expr $tokenPos + $offset] set newBegin [expr $newEnd + 1] set theText [string range $theString 0 $newEnd] set theString [string range $theString $newBegin end] } return $theText } # Get the next complete command, removing it from the string. proc ::expand::GetMacro {string} { upvar $string theString # FIRST, it's an error if the string doesn't begin with a # character. if {[string first [lb] $theString] != 0} { error "::expand::GetMacro: assertion failure, next text isn't a command! '$theString'" } # NEXT, extract a full macro set macro [ExtractToToken theString [lb] include] while {[string length $theString] > 0} { append macro [ExtractToToken theString [rb] include] # Verify that the command really ends with the [rb] characters, # whatever they are. If not, break because of unexpected # end of file. if {![IsBracketed $macro]} { break; } set strippedMacro [StripBrackets $macro] if {[info complete "puts \[$strippedMacro\]"]} { return $strippedMacro } } if {[string length $macro] > 40} { set macro "[string range $macro 0 39]...\n" } error "*** Error, unexpected EOF in macro:\n$macro" } # Strip left and right bracket tokens from the ends of a macro, # provided that it's properly bracketed. proc ::expand::StripBrackets {macro} { set llen [string length [lb]] set rlen [string length [rb]] set tlen [string length $macro] return [string range $macro $llen [expr $tlen - $rlen - 1]] } # Return 1 if the macro is properly bracketed, and 0 otherwise. proc ::expand::IsBracketed {macro} { set llen [string length [lb]] set rlen [string length [rb]] set tlen [string length $macro] set leftEnd [string range $macro 0 [expr $llen - 1]] set rightEnd [string range $macro [expr $tlen - $rlen] end] if {$leftEnd != [lb]} { return 0 } elseif {$rightEnd != [rb]} { return 0 } else { return 1 } } #------------------------------------------------------------------------- # File handling: these routines, some public and some private, handle # processing of files. # expand fileList outputFile # # This is the basic algorithm of the Expand tool. Given a list of files # to expand, it executes the following sequence. Return values of all # handlers, except for the initHandlers, is written to the current output # file. # # - For each pass, # - Set ::expand::currentPass. # - Call the begin_hook. # - For each file in the file list, # - Set ::expand::currentFileName # - Call the begin_file_hook. # - read file and expand its contents # - Call the end_file_hook. # - Call the end_hook. # - Close the current output file. proc ::expand::expand {fileList outputFile} { variable currentPass variable numberOfPasses variable currentFileName for {set currentPass 1} {$currentPass <= $numberOfPasses} \ {incr currentPass} { # First, if this is any pass but the last, set output to nul; # otherwise, set output to the requested output file. if {$currentPass < $numberOfPasses} { setoutput nul } else { setoutput $outputFile } # Next, execute the beginning hook set currentFileName "" expwrite [begin_hook] # Next, expand each of the files on the command line. foreach file $fileList { if {[catch "ExpandFile [list $file]" result]} { puts stderr $result exit 1 } expwrite $result } # Next, execute the end hook expwrite [end_hook] } # Next, close the output file. setoutput nul } # ExpandFile # # Helper routine for ::expand::expand. It expands a single file, # calling the begin and end file handlers and returning the expanded # result. proc ::expand::ExpandFile {fileName} { variable currentFileName # Set the current file set currentFileName $fileName # Call the begin_file_hook set output [begin_file_hook $fileName] # Expand the file set contents [readFile $fileName] if {[catch [list expandText $contents] result]} { error "*** Error expanding $fileName:\n$result" } append output $result # Call the endFileHandlers append output [end_file_hook $fileName] return $output } # include file # # Reads a file into memory, and expands its contents. proc ::expand::include {fileName} { # Get the file's contents, and prepare to output it. set contents [readFile $fileName] if {[catch [list expandText $contents] result]} { error "*** Error including $fileName:\n$result" } return $result } # readFile file # # Reads a file into memory, returning its contents. proc ::expand::readFile {fileName} { # Open the file. if {[catch "open $fileName" fin]} { error "Could not read file '$fileName': $fin" } # Read the contents and close the file. set contents [read $fin] close $fin return $contents } #------------------------------------------------------------------------- # Output Management # Set the output file proc ::expand::setoutput {fileName} { variable outputChannel # Close any existing file if {$outputChannel != "" && $outputChannel != "stdout"} { close $outputChannel } # Pick stdout, no output at all, or a real file if {$fileName == ""} { set outputChannel stdout } elseif {$fileName == "nul"} { set outputChannel "" } else { if {[catch "open $fileName w" outputChannel]} { error "Could not open output file $fileName" } } return } # Output a bunch of text to the output file. proc ::expand::expwrite {text} { variable outputChannel if {$outputChannel != ""} { puts -nonewline $outputChannel $text } } #------------------------------------------------------------------------- # getoptions: command line option parsing # # The getoptions function parses a list as a command line, removing # options and their values. Any remaining tokens and options remain # in the list and can be parsed by another call to getoptions or in # any other way the caller prefers. # # getoptions is called as follows: # # getoptions arglist [-strict] [{optionDef... }] # # "arglist" is the name of a list variable, typically argv. It is # passed by name, and modified in place. If the "-strict" option # is specified, unrecognized options are flagged as errors. # The call may include any number of option definitions, including # none. The call "getoptions argv -strict", for example, will ensure # that no options remain in the list contained in "argv". # # Option definitions may take the following forms. In each, NAME is # the option name, which must begin with a "-" character, and VAR is # the name of a variable in the caller's scope to receive the option's value. # # {NAME VAR flag} # If the option appears on the command line, the variable # is set to 1, otherwise to 0. # # {NAME VAR enum VAL1 VAL2....} # If the option appears on the command line, the next argument # must be one of the enumerated values, VAL1, VAL2, etc. The # variable is set to the value, or VAL1 if the option does not # appear on the command line. If the option's value is not one of # the valid choices, an error message will be displayed and the # program will halt. None of the enumerated values may begin with # a "-" character. # # {NAME VAR string DEFVALUE} # The named variable is set to the value following the option on # the command line. If the option doesn't appear, the variable is # set to the DEFVALUE. The option's value may not begin with # "-" character, as if it does, the most likely explanation is # that the option's real value is missing and the next argument is # another option name. # Utility routine: pops an arg off of the front of an arglist. proc ::expand::popArg {arglist} { upvar $arglist args if {[llength $args] == 0} { set arg "" } elseif {[llength $args] == 1} { set arg $args set args "" } else { set arg [lindex $args 0] set args [lrange $args 1 end] } return $arg } proc ::expand::getoptions {arglist strictOrDefs {defsOrNil ""}} { # First, the arglist is called by name. upvar $arglist args # Next, strictOrDefs is either the "-strict" option or the # definition list. if {$strictOrDefs == "-strict"} { set strictFlag 1 set defList $defsOrNil } else { set strictFlag 0 set defList $strictOrDefs } # Next, get names of the options set optNames {} set optTypes {flag enum string} set optLens {3 5 4} foreach def $defList { if {[llength $def] < 3} { error "Error in option definition: $def" } lappend optNames [lindex $def 0] set varName [lindex $def 1] set optType [lindex $def 2] set i [lsearch -exact $optTypes $optType] if {$i == -1} { error "Unknown option type: $optType" } if {[llength $def] < [lindex $optLens $i]} { error "Error in option definition: $def" } upvar $varName theVar switch $optType { flag {set theVar 0} enum - string {set theVar [lindex $def 3]} } } # Next, process the options on the command line. set errorCount 0 set newList {} for {set arg [popArg args]} {$arg != ""} {set arg [popArg args]} { # First, does it look like an option? If not, add it to the # output list. if {[string index $arg 0] != "-"} { lappend newList $arg continue } # Next, Is the argument unknown? Flag an error or just skip it. set i [lsearch -exact $optNames $arg] if {$i == -1} { if {$strictFlag} { puts stderr "*** Unknown option: $arg" incr errorCount } else { lappend newList $arg } continue } # Next, process the argument set def [lindex $defList $i] set varName [lindex $def 1] set optType [lindex $def 2] upvar $varName theVar switch $optType { flag { set theVar 1 } enum { set vals [lreplace $def 0 2] set theVar [popArg args] if {$theVar == "" || [string index $theVar 0] == "-"} { puts stderr "*** Missing option value: $arg" incr errorCount continue } if {[lsearch -exact $vals $theVar] == -1} { puts stderr "*** Invalid option value: $arg $theVar" incr errorCount } } string { set theVar [popArg args] if {$theVar == "" || [string index $theVar 0] == "-"} { puts stderr "*** Missing option value: $arg" incr errorCount } } } } # Next, if there are any errors, halt. if {$errorCount > 0} { exit 1 } # Next, return the new argument list. set args $newList return } #------------------------------------------------------------------------- # Importing macros into the global namespace # GlobalizeMacros args # # args is a list of glob patterns matching the macros to be imported. # The prefix ::expand:: is added automatically. proc ::expand::GlobalizeMacros {args} { set globList {} foreach arg $args { lappend globList ::expand::$arg } namespace eval :: "namespace import -force $globList" } #------------------------------------------------------------------------- # Standard Rule Set: # # These are the rules that are always available. proc ::expand::standardRuleSet {} { GlobalizeMacros cget cis cname cpop cpush csave cvar expandText expfile GlobalizeMacros exppass expwrite getoptions include lb popArg rb GlobalizeMacros readFile setErrorOutputMode setbrackets setoutput GlobalizeMacros setpasses textToID } #------------------------------------------------------------------------- # Rule Set: Web Rules # # These macros are for creating HTML pages. They are only defined when # webRuleSet is called. proc ::expand::webRuleSet {} { GlobalizeMacros dot tag link mailto today } # Output a big black dot. proc ::expand::dot {} { return "•" } # Format an html tag. name is the tag name, args is a list of # of attribute names and values proc ::expand::tag {name args} { set result "<$name" foreach {attr val} $args { append result " $attr=\"$val\"" } append result ">" } # Format a link. If text is given, use it as the displayed text; # otherwise use the url. proc ::expand::link {url {text ""}} { if {$text == ""} { set text $url } return "[tag a href $url]$text[tag /a]" } # Format an email URL proc ::expand::mailto {address {name ""}} { if {$name == ""} { set name $address } return "[tag a href mailto:$address]$name[tag /a]" } # Return today's date. Use dd MONTH yyyy unless some other format is # proposed. proc ::expand::today {{format ""}} { set secs [clock seconds] if {$format == ""} { set format "%d %B %Y" } return [string trimleft [clock format $secs -format $format] "0"] } #------------------------------------------------------------------------- # Miscellaneous utility commands # oneOf list value # # Checks to see if a value is in a list. proc ::expand::oneOf {list value} { return [expr {[lsearch -exact $list $value] != -1}] } # Converts a generic string to an ID string. Leading and trailing # whitespace and internal punctuation is removed, internal whitespace # is converted to "_", and the text is converted to lower case. proc ::expand::textToID {text} { # First, trim any white space and convert to lower case set text [string trim [string tolower $text]] # Next, substitute "_" for internal whitespace, and delete any # non-alphanumeric characters (other than "_", of course) regsub -all {[ ]+} $text "_" text regsub -all {[^a-z0-9_]} $text "" text return $text } #------------------------------------------------------------------------- # Main-line code: This is the implementation of the Expand tool # itself. It is executed only if this is the top-level script. proc ::expand::ShowHelp { } { puts {tclsh expand.tcl [options] files... -help Displays this text. -rules file Specify the name of the rules file (exprules.tcl is the default) -out file Specify the name of the output file, or "nul" for no output. Output is to stdout, by default. -errout mode nothing, macro, error, or fail (fail is the default) -web Enable the optional web rule set. files... Names of files to process.} } if {"[info script]" == "$argv0"} { # First, parse the command line ::expand::getoptions argv { {-help ::expand::helpFlag flag} {-errout ::expand::errorOutputMode enum fail nothing macro error} {-rules ::expand::rulesFile string "exprules.tcl"} {-web ::expand::webFlag flag} {-out ::expand::outputFile string ""} } # Next, if they asked for help or if there are no arguments left, # show help and stop. if {$::expand::helpFlag || [llength $argv] == 0} { ::expand::ShowHelp exit 0 } # Next, load the standard macros ::expand::standardRuleSet # Next, load optional rule sets. if {$::expand::webFlag} { ::expand::webRuleSet } # Next, load the rules file. (Should only do it if file exists; # should die if there are any errors) if {[file exists $::expand::rulesFile]} { if {[catch "source $::expand::rulesFile" result]} { puts "*** Error in rules file $::expand::rulesFile: $result" exit 1 } } elseif {$::expand::rulesFile != "exprules.tcl"} { puts "*** Rules file $rulesFile not found." exit 1 } # Next, call the init_hook. if {[catch init_hook result]} { puts "*** Error executing init_hook: $result" exit 1 } # Next, make sure the command line contains no additional options ::expand::getoptions argv -strict # Next, process the files ::expand::expand $argv $::expand::outputFile } Memchan2.3/tools/crontab.sourceforge0000755000175000017500000000041407343621402017227 0ustar sergeisergei# # (c) 2001, Andreas Kupries # # Hourly cron job to regenerate the dynamic parts of the # memchan website. # 28 * * * * /home/groups/m/me/memchan/tools/htdocs_refresh 17 6 * * * /home/groups/m/me/memchan/tools/watch_cvs Memchan2.3/tools/check_manifest0000644000175000017500000000113506343347136016226 0ustar sergeisergei#!/usr/local/bin/tclsh # -*- tcl -*- # check the manifest against the current contents of the directory set manifest [lindex $argv 0] rename file ori_file proc file {name} { global files set files($name) 1 if {! [ori_file exists $name]} { puts stdout "missing: $name" } } # read manifest and check existence of all listed files source $manifest # now backwards: find all files and check # for files not listed in the manifest set list [exec find . -print] regsub -all "\n" $list { } list foreach f $list { if {[catch {set files($f)}]} { puts stdout "new: $f" } } Memchan2.3/tools/changelog_to_list0000755000175000017500000000600107347565336016760 0ustar sergeisergei#!/bin/sh # -*-tcl-*- # the next line restarts using tclsh \ exec tclsh "${0}" "${@}" #################################### # Parse a ChangeLog files into a tcl structure. proc main {} { global argv set in [lindex $argv 0] set out [cl:parse [read [set fh [open $in r]]][close $fh]] #puts [join $out \n] -- Test code #exit puts $out } proc cl:parse {data} { set state unknown set chunk(date) {} set chunk(person) {} set chunk(items) {} set idata {} foreach line [split $data \n] { if {[cl:parse:chunk_intro $line date person]} { cl:parse:close_last_item cl:parse:close_last_chunk cl:parse:init_chunk $date $person continue } if {[cl:parse:item_line $line data]} { cl:parse:close_last_item cl:parse:init_item $data continue } if {[cl:parse:item_followup $line data]} { cl:parse:add2item $data continue } # ignore all other lines. } cl:parse:close_last_item cl:parse:close_last_chunk return $result } proc cl:parse:chunk_intro {line datevar personvar} { if {![regexp "^\[^\t \]" $line]} { return 0 } upvar $datevar d $personvar p if {[regexp -indices -- {^([0-9]+-[0-9-]+)} $line -> di]} { foreach {da de} $di break ; # lassign regsub -all "\[ \t\]+" [string trim [string range $line $da $de]] { } d regsub -all "\[ \t\]+" [string trim [string range $line [incr de] end]] { } p #puts stderr "$line +--> ($d | $p)" return 1 } regsub -all "\[\t \]+" $line { } line set line [split $line] set d [join [lrange $line 0 4]] set p [join [lrange $line 5 end]] #puts stderr "$line |--> ($d | $p)" return 1 } proc cl:parse:close_last_chunk {} { upvar result r chunk c if {$c(date) != {}} { lappend r [list $c(date) $c(person) $c(items)] set c(date) {} set c(person) {} set c(items) {} } return } proc cl:parse:init_chunk {date person} { upvar chunk c set c(date) $date set c(person) $person set c(items) {} return } proc cl:parse:item_line {line itemvar} { if {![regexp "^\[\t \]+\\*" $line]} { return 0 } upvar $itemvar i set line [string trimleft [string trimright $line] "\t *"] set i $line return 1 } if {0} { return 1 } proc cl:parse:close_last_item {} { upvar chunk c idata i if {$i != {}} { set ke [string first : $i] if {$ke < 0} { set ke -1 ; # No key at all, pure comment } set k [string trim [string range $i 0 [incr ke -1]]] set co [string trim [string range $i [incr ke 2] end]] lappend c(items) [list $k $co] set i {} } return } proc cl:parse:init_item {comment} { upvar idata i set i $comment return } proc cl:parse:item_followup {line commentvar} { upvar $commentvar c set line [string trim $line] if {$line == {}} { return 0 } set c $line return 1 } proc cl:parse:add2item {comment} { upvar idata i append i " $comment" } ########################################################## main exit 0 Memchan2.3/tea.tests/0000755000175000017500000000000011500516253014077 5ustar sergeisergeiMemchan2.3/tea.tests/memchan_bb.test0000644000175000017500000000413006770712503017062 0ustar sergeisergei# -*- tcl -*- # Commands covered: memchan # # This file contains a collection of tests for one or more of the commands # the Memchan extension. Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1999 Andreas Kupries (a.kupries@westend.com) # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # $Id: memchan_bb.test,v 1.1 1999/09/18 13:36:03 aku Exp $ test memchan-basic-1.0 {Create memory channels} { set chan [memchan] close $chan regsub -all {[0-9]} $chan {} chan set chan } {mem} test memchan-basic-1.1 {Check tell on memory channels} { set chan [memchan] set res [tell $chan] close $chan set res } {0} test memchan-basic-1.2 {Check seek on memory channels} { set chan [memchan] set res [seek $chan 0] close $chan set res } {} test memchan-basic-1.3 {Check fconfigure/get on memory channels} { set chan [memchan] set conf [fconfigure $chan] set res [list] lappend res [lrange $conf [set x [lsearch -exact $conf -length]] [incr x]] lappend res [lrange $conf [set x [lsearch -exact $conf -allocated]] [incr x]] close $chan set res } {{-length 0} {-allocated 0}} test memchan-basic-1.4 {Check fconfigure/get -length} { set chan [memchan] set res [fconfigure $chan -length] close $chan set res } {0} test memchan-basic-1.5 {check -initial-size} { set chan [memchan -init 1024] set res [fconfigure $chan -allocated] close $chan set res } {1024} test memchan-rw-1.0 {Write, length and tell} { set chan [memchan] puts -nonewline $chan {hello world} set res [list [fconfigure $chan -length] [tell $chan]] close $chan set res } {11 11} test memchan-rw-1.1 {Write, seek and read} { set chan [memchan] puts -nonewline $chan {hello world!} set res [list [fconfigure $chan -length] [tell $chan]] seek $chan 0 lappend res [read $chan] close $chan set res } {12 12 {hello world!}} ::tcltest::cleanupTests Memchan2.3/tea.tests/fifo_bb.test0000644000175000017500000000371006770712503016400 0ustar sergeisergei# -*- tcl -*- # Commands covered: fifo # # This file contains a collection of tests for one or more of the commands # the Memchan extension. Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1999 Andreas Kupries (a.kupries@westend.com) # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # $Id: fifo_bb.test,v 1.1 1999/09/18 13:36:03 aku Exp $ test fifo-basic-1.0 {Create memory fifo channels} { set chan [fifo] close $chan regsub -all {[0-9]} $chan {} chan set chan } {fifo} # Neither tell nor seek possible for fifos test fifo-basic-1.1 {Check tell on memory fifo channels} { set chan [fifo] set res [tell $chan] close $chan set res } {-1} test fifo-basic-1.2 {Check seek on memory fifo channels} { set chan [fifo] set res [catch {[seek $chan 0]} msg] close $chan list $res [regexp -nocase -- invalid $msg] } {1 1} test fifo-basic-1.3 {Check fconfigure/get on memory fifo channels} { set chan [fifo] set conf [fconfigure $chan] set res [list] lappend res [lrange $conf [set pos [lsearch -exact $conf -length]] [incr pos]] lappend res [lrange $conf [set pos [lsearch -exact $conf -allocated]] [incr pos]] close $chan set res } {{-length 0} {-allocated 0}} test fifo-basic-1.4 {Check fconfigure/get -length} { set chan [fifo] set res [fconfigure $chan -length] close $chan set res } {0} test fifo-rw-1.0 {Write and length} { set chan [fifo] puts -nonewline $chan {hello world} set res [list [fconfigure $chan -length]] close $chan set res } {11} test fifo-rw-1.1 {Write and read} { set chan [fifo] puts -nonewline $chan {hello world!} set res [list [fconfigure $chan -length]] lappend res [read $chan] close $chan set res } {12 {hello world!}} ::tcltest::cleanupTests Memchan2.3/tea.tests/all.tcl0000755000175000017500000000327607531474470015403 0ustar sergeisergei# all.tcl -- # # This file contains a top-level script to run all of the Tcl # tests. Execute it by invoking "source all.test" when running tcltest # in this directory. # # Copyright (c) 1998-2000 by Scriptics Corporation. # All rights reserved. # # RCS: @(#) $Id: all.tcl,v 1.1 2002/08/23 18:04:40 andreas_kupries Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest namespace import ::tcltest::* } set ::tcltest::testSingleFile false set ::tcltest::testsDirectory [file dir [info script]] # We need to ensure that the testsDirectory is absolute ::tcltest::normalizePath ::tcltest::testsDirectory set chan $::tcltest::outputChannel puts $chan "Tests running in interp: [info nameofexecutable]" puts $chan "Tests running with pwd: [pwd]" puts $chan "Tests running in working dir: $::tcltest::testsDirectory" if {[llength $::tcltest::skip] > 0} { puts $chan "Skipping tests that match: $::tcltest::skip" } if {[llength $::tcltest::match] > 0} { puts $chan "Only running tests that match: $::tcltest::match" } if {[llength $::tcltest::skipFiles] > 0} { puts $chan "Skipping test files that match: $::tcltest::skipFiles" } if {[llength $::tcltest::matchFiles] > 0} { puts $chan "Only sourcing test files that match: $::tcltest::matchFiles" } set timeCmd {clock format [clock seconds]} puts $chan "Tests began at [eval $timeCmd]" # source each of the specified tests foreach file [lsort [::tcltest::getMatchingFiles]] { set tail [file tail $file] puts $chan $tail if {[catch {source $file} msg]} { puts $chan $msg } } # cleanup puts $chan "\nTests ended at [eval $timeCmd]" ::tcltest::cleanupTests 1 return Memchan2.3/isaac/0000755000175000017500000000000011500516253013245 5ustar sergeisergeiMemchan2.3/isaac/standard.h0000644000175000017500000000354510053507264015231 0ustar sergeisergei/* ------------------------------------------------------------------------------ Standard definitions and types, Bob Jenkins Modified by Pat Thoyts for MSVC++ compatability. ------------------------------------------------------------------------------ */ #ifndef STANDARD # define STANDARD # ifndef STDIO # include # define STDIO # endif # ifndef STDDEF # include # define STDDEF # endif #if (_MSC_VER >= 1000) typedef unsigned __int64 ub8; typedef signed __int64 sb8; typedef unsigned __int32 ub4; typedef signed __int32 sb4; typedef unsigned __int16 ub2; typedef signed __int16 sb2; typedef unsigned __int8 ub1; typedef signed __int8 sb1; #else typedef unsigned long long ub8; typedef signed long long sb8; typedef unsigned long int ub4; typedef signed long int sb4; typedef unsigned short int ub2; typedef signed short int sb2; typedef unsigned char ub1; typedef signed char sb1; #endif #define UB8MAXVAL 0xffffffffffffffffLL #define UB8BITS 64 #define SB8MAXVAL 0x7fffffffffffffffLL #define UB4MAXVAL 0xffffffff #define UB4BITS 32 #define SB4MAXVAL 0x7fffffff #define UB2MAXVAL 0xffff #define UB2BITS 16 #define SB2MAXVAL 0x7fff #define UB1MAXVAL 0xff #define UB1BITS 8 #define SB1MAXVAL 0x7f typedef int word; /* fastest type available */ #define bis(target,mask) ((target) |= (mask)) #define bic(target,mask) ((target) &= ~(mask)) #define bit(target,mask) ((target) & (mask)) #ifndef min # define min(a,b) (((a)<(b)) ? (a) : (b)) #endif /* min */ #ifndef max # define max(a,b) (((a)<(b)) ? (b) : (a)) #endif /* max */ #ifndef align # define align(a) (((ub4)a+(sizeof(void *)-1))&(~(sizeof(void *)-1))) #endif /* align */ #ifndef abs # define abs(a) (((a)>0) ? (a) : -(a)) #endif #define TRUE 1 #define FALSE 0 #define SUCCESS 0 /* 1 on VAX */ #endif /* STANDARD */ Memchan2.3/isaac/randport.c0000644000175000017500000000671010053507264015252 0ustar sergeisergei/* ------------------------------------------------------------------------------ rand.c: By Bob Jenkins. My random number generator, ISAAC. Public Domain MODIFIED: 960327: Creation (addition of randinit, really) 970719: use context, not global variables, for internal state 980324: make a portable version 010626: Note this is public domain ------------------------------------------------------------------------------ */ #ifndef STANDARD #include "standard.h" #endif #ifndef RAND #include "rand.h" #endif #define ind(mm,x) ((mm)[(x>>2)&(RANDSIZ-1)]) #define rngstep(mix,a,b,mm,m,m2,r,x) \ { \ x = *m; \ a = ((a^(mix)) + *(m2++)) & 0xffffffff; \ *(m++) = y = (ind(mm,x) + a + b) & 0xffffffff; \ *(r++) = b = (ind(mm,y>>RANDSIZL) + x) & 0xffffffff; \ } void isaac(ctx) randctx *ctx; { register ub4 a,b,x,y,*m,*mm,*m2,*r,*mend; mm=ctx->randmem; r=ctx->randrsl; a = ctx->randa; b = (ctx->randb + (++ctx->randc)) & 0xffffffff; for (m = mm, mend = m2 = m+(RANDSIZ/2); m>6 , a, b, mm, m, m2, r, x); rngstep( a<<2 , a, b, mm, m, m2, r, x); rngstep( a>>16, a, b, mm, m, m2, r, x); } for (m2 = mm; m2>6 , a, b, mm, m, m2, r, x); rngstep( a<<2 , a, b, mm, m, m2, r, x); rngstep( a>>16, a, b, mm, m, m2, r, x); } ctx->randb = b; ctx->randa = a; } #define mix(a,b,c,d,e,f,g,h) \ { \ a^=b<<11; d+=a; b+=c; \ b^=c>>2; e+=b; c+=d; \ c^=d<<8; f+=c; d+=e; \ d^=e>>16; g+=d; e+=f; \ e^=f<<10; h+=e; f+=g; \ f^=g>>4; a+=f; g+=h; \ g^=h<<8; b+=g; h+=a; \ h^=a>>9; c+=h; a+=b; \ } /* if (flag==TRUE), then use the contents of randrsl[] to initialize mm[]. */ void randinit(ctx, flag) randctx *ctx; word flag; { word i; ub4 a,b,c,d,e,f,g,h; ub4 *m,*r; ctx->randa = ctx->randb = ctx->randc = 0; m=ctx->randmem; r=ctx->randrsl; a=b=c=d=e=f=g=h=0x9e3779b9; /* the golden ratio */ for (i=0; i<4; ++i) /* scramble it */ { mix(a,b,c,d,e,f,g,h); } if (flag) { /* initialize using the contents of r[] as the seed */ for (i=0; irandcnt=RANDSIZ; /* prepare to use the first set of results */ } #ifdef NEVER int main() { ub4 i,j; randctx ctx; ctx.randa=ctx.randb=ctx.randc=(ub4)0; for (i=0; i<256; ++i) ctx.randrsl[i]=(ub4)0; randinit(&ctx, TRUE); for (i=0; i<2; ++i) { isaac(&ctx); for (j=0; j<256; ++j) { printf("%.8lx",ctx.randrsl[j]); if ((j&7)==7) printf("\n"); } } } #endif Memchan2.3/isaac/rand.h0000644000175000017500000000310110053507264014341 0ustar sergeisergei/* ------------------------------------------------------------------------------ rand.h: definitions for a random number generator By Bob Jenkins, 1996, Public Domain MODIFIED: 960327: Creation (addition of randinit, really) 970719: use context, not global variables, for internal state 980324: renamed seed to flag 980605: recommend RANDSIZL=4 for noncryptography. 010626: note this is public domain ------------------------------------------------------------------------------ */ #ifndef STANDARD #include "standard.h" #endif #ifndef RAND #define RAND #define RANDSIZL (8) /* I recommend 8 for crypto, 4 for simulations */ #define RANDSIZ (1<randcnt-- ? \ (isaac(r), (r)->randcnt=RANDSIZ-1, (r)->randrsl[(r)->randcnt]) : \ (r)->randrsl[(r)->randcnt]) #endif /* RAND */ Memchan2.3/win/0000755000175000017500000000000011500516253012762 5ustar sergeisergeiMemchan2.3/win/mc.rc0000644000175000017500000000203310144247204013705 0ustar sergeisergei// SCCS: @(#) memchan.rc 1.0 96/04/12 18:08:09 // // Version // #include VS_VERSION_INFO VERSIONINFO FILEVERSION COMMAVERSION PRODUCTVERSION COMMAVERSION FILEFLAGSMASK 0x3fL #ifdef DEBUG FILEFLAGS VS_FF_DEBUG #else FILEFLAGS 0x0L #endif FILEOS VOS__WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "Memchan " DOTVERSION " for Windows\0" VALUE "OriginalFilename", "Memchan" VERSION ".dll\0" VALUE "CompanyName", "Andreas Kupries\0" VALUE "FileVersion", DOTVERSION "\0" VALUE "LegalCopyright", "Copyright \251 1998 Andreas Kupries, et al.\0" VALUE "ProductName", "Memchan " DOTVERSION " for Windows\0" VALUE "ProductVersion", DOTVERSION "\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END // // Icon // memchan ICON DISCARDABLE "mc.ico" Memchan2.3/win/mc.ico0000644000175000017500000000256606676011245014077 0ustar sergeisergei è6( 0F( @€€€€€€€€€€€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿ™—yvwfffgvw™™™•a—ffffgf™™™™™™™–fffqVfav ™™™•y—ff™™™—f`™™™™™vffi™™™‰vw™™™™™vf¹™“˜™¶fd™wwfg™™™˜™–a™)•vfa™™™˜™–gwR™!™™ve™™•wI–fe!‘ffg™™„†H–i‘" ‘wf™˜t„Evfv"!™ ™vfi™T„WfW"™™ –ævfD„ffq ™™ •™vfffffw™™ ™—ægffF ™™™ ™—yvxa† ‘!™™™ ™™™fx†q)™™™ ™™™™ŸD†E")™™™ ™™™™™TWDy— ™™™ ™™™™™TGD ™™™ ™™™™™tDDGa™™™ ™™™™™„DDEp!™™™ ™™™˜™†DE@a`™™™™™™™˜™˜DE™™ ‰™™™™™Ÿ™™„DI& ‰™™™™™˜‰™˜dD#‘` ™™™™™™ù™™ˆˆ™g ™™™™‰ˆ™™™‰™'‘f™™™™ù˜÷™™™™qf™™™™™™w™™™™™‘#™™™™™™™™™™™™™ ™™™™™™™Á€€€€€€€€€€€€øÿ( À€€€€€€€€€€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿ™wffwy™—™ve‘vA™—•f9™—g™‘Wf™——a—f™wWa•vWFw!‘vgggr™—ffG™™™XGA™™™™EA™™™™dFr™™™ytA™™y—Å"™™x™‡‘2™™y‰™™"™™™™™( @€ÿÿÿ?ŸÁmÿ°=Wñîý'Î|ý?¾³}}_cÿ}XÛ>ù_NòŸO?jß|7ZXsª¿ËŸÀs»£ñû»·nÍ{¶þÿ{¸þþû¿þû¿ïþû¿ïþû¿ïÿ}¿ïÿ}¿oÿ}wÿ½{ÿÝ=ýå¾óùŸ+~ÏÜÿÿþßÿøøåMemchan2.3/tests/0000755000175000017500000000000011500516253013327 5ustar sergeisergeiMemchan2.3/tests/zero.test0000644000175000017500000000403310060101207015174 0ustar sergeisergei# -*- tcl -*- # Commands covered: zero # # This file contains a collection of tests for one or more of the commands # the Memchan extension. Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1999 Andreas Kupries (a.kupries@westend.com) # Copyright (C) 2004 Pat Thoyts # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # $Id: zero.test,v 1.2 2004/06/04 14:09:11 patthoyts Exp $ test zero-1.0 {Create zero devices} { set chan [zero] close $chan regsub -all {[0-9]} $chan {} chan set chan } {zero} test zero-1.1 {Check tell on zero devices} { set chan [zero] set res [tell $chan] close $chan set res } {-1} test zero-1.2 {Check seek on zero devices} { set chan [zero] catch {seek $chan 0} res close $chan regsub -all $chan $res XXX res set res } {error during seek on "XXX": invalid argument} test zero-1.3 {Write, length and tell} { set chan [zero] puts -nonewline $chan {hello world} set res [tell $chan] close $chan set res } {-1} test zero-1.4 {Write and read} { set chan [zero] puts -nonewline $chan {hello world!} set res [tell $chan] lappend res [string length [read $chan 16]] close $chan set res } {-1 16} test zero-1.5 {presence of -delay option} { list [catch { set chan [zero] set res [lsearch -exact [fconfigure $chan] -delay] close $chan set res [expr {$res != -1}] } msg] $msg } {0 1} test zero-1.6 {read -delay option} { list [catch { set chan [zero] set res [fconfigure $chan -delay] close $chan set res } msg] $msg } {0 5} test zero-1.7 {change -delay option} { list [catch { set chan [zero] set res [fconfigure $chan -delay 1000] lappend res [fconfigure $chan -delay] close $chan set res } msg] $msg } {0 {1000 1000}} Memchan2.3/tests/random.test0000644000175000017500000000407610060101207015504 0ustar sergeisergei# -*- tcl -*- # Commands covered: random # # Copyright (C) 2004 Pat Thoyts # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # $Id: random.test,v 1.2 2004/06/04 14:09:11 patthoyts Exp $ test random-1.0 {Create random devices} { list [catch { set chan [random] close $chan regsub -all {[0-9]} $chan {} chan set chan } msg] $msg } {0 random} test random-1.1 {Check tell on random devices} { list [catch { set chan [random] set res [tell $chan] close $chan set res } msg] $msg } {0 -1} test random-1.2 {Write, length, tell} { list [catch { set chan [random] catch {seek $chan 0} res close $chan regsub -all $chan $res XXX res set res } msg] $msg } {0 {error during seek on "XXX": invalid argument}} test random-1.3 {Write, length and tell} { list [catch { set chan [random] puts -nonewline $chan \x00\x01\x02\x03 set res [tell $chan] close $chan set res } msg] $msg } {0 -1} test random-1.4 {Write and read} { list [catch { set chan [random] puts -nonewline $chan \x00\x01\x02\x03 set res [tell $chan] lappend res [string length [read $chan 64]] close $chan set res } msg] $msg } {0 {-1 64}} test random-1.5 {presence of -delay option} { list [catch { set chan [random] set res [lsearch -exact [fconfigure $chan] -delay] close $chan set res [expr {$res != -1}] } msg] $msg } {0 1} test random-1.6 {read -delay option} { list [catch { set chan [random] set res [fconfigure $chan -delay] close $chan set res } msg] $msg } {0 5} test random-1.7 {change -delay option} { list [catch { set chan [random] set res [fconfigure $chan -delay 1000] lappend res [fconfigure $chan -delay] close $chan set res } msg] $msg } {0 {1000 1000}} Memchan2.3/tests/null.test0000644000175000017500000000373510060101207015177 0ustar sergeisergei# -*- tcl -*- # Commands covered: null # # This file contains a collection of tests for one or more of the commands # the Memchan extension. Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1999 Andreas Kupries (a.kupries@westend.com) # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # $Id: null.test,v 1.2 2004/06/04 14:09:11 patthoyts Exp $ test null-basic-1.0 {Create null devices} { set chan [null] close $chan regsub -all {[0-9]} $chan {} chan set chan } {null} test null-basic-1.1 {Check tell on null devices} { set chan [null] set res [tell $chan] close $chan set res } {-1} test null-basic-1.2 {Check seek on null devices} { set chan [null] catch {seek $chan 0} res close $chan regsub -all $chan $res XXX res set res } {error during seek on "XXX": invalid argument} test null-rw-1.0 {Write, length and tell} { set chan [null] puts -nonewline $chan {hello world} set res [tell $chan] close $chan set res } {-1} test null-rw-1.1 {Write and read} { set chan [null] puts -nonewline $chan {hello world!} set res [tell $chan] lappend res [read $chan] close $chan set res } {-1 {}} test null-1.5 {presence of -delay option} { list [catch { set chan [null] set res [lsearch -exact [fconfigure $chan] -delay] close $chan set res [expr {$res != -1}] } msg] $msg } {0 1} test null-1.6 {read -delay option} { list [catch { set chan [null] set res [fconfigure $chan -delay] close $chan set res } msg] $msg } {0 5} test null-1.7 {change -delay option} { list [catch { set chan [null] set res [fconfigure $chan -delay 1000] lappend res [fconfigure $chan -delay] close $chan set res } msg] $msg } {0 {1000 1000}} Memchan2.3/tests/memchan.test0000644000175000017500000000520610144262764015653 0ustar sergeisergei# -*- tcl -*- # Commands covered: None, introductory text # # This file contains a collection of tests for one or more of the commands # the piTcl extension. Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1998 Andreas Kupries (a.kupries@westend.com) # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # $Id: memchan.test,v 1.8 2004/11/10 00:51:00 patthoyts Exp $ if {[string compare test [info procs test]] == 1} then {source defs} test memchan-basics-1.0 {Create memory channels} { set m [memchan] close $m regsub -all {[0-9]} $m {} m set m } {mem} test memchan-basics-1.1 {Check tell on memory channels} { set m [memchan] set res [tell $m] close $m set res } {0} test memchan-basics-1.2 {Check seek on memory channels} { set m [memchan] set res [seek $m 0] close $m set res } {} test memchan-basics-1.3 {Check fconfigure/get on memory channels} { set m [memchan] set resf [fconfigure $m] set res [list] lappend res [lrange $resf [set x [lsearch -exact $resf -length]] [incr x]] lappend res [lrange $resf [set x [lsearch -exact $resf -allocated]] [incr x]] close $m set res } {{-length 0} {-allocated 0}} test memchan-basics-1.4 {Check fconfigure/get -length} { set m [memchan] set res [fconfigure $m -length] close $m set res } {0} test memchan-basics-1.5 {check -initial-size} { set m [memchan -init 1024] set res [fconfigure $m -allocated] close $m set res } {1024} test memchan-readwrite-1.0 {Write, length and tell} { set m [memchan] puts -nonewline $m {hello world} set res [list [fconfigure $m -length] [tell $m]] close $m set res } {11 11} test memchan-readwrite-1.1 {Write, seek and read} { set m [memchan] puts -nonewline $m {hello world!} set res [list [fconfigure $m -length] [tell $m]] seek $m 0 lappend res [read $m] close $m set res } {12 12 {hello world!}} proc Read {chan} { if {[eof $chan]} { fileevent $chan readable {} lappend ::res eof set ::wait 1 } lappend ::res [read $chan 2] } test memchan-2.1 {check fileevent - memchan bug #1060620} { set m [memchan] set ::res {} set ::wait 0 puts -nonewline $m data seek $m 0 fileevent $m readable [list Read $m] set id [after 400 {set ::wait 2}] vwait ::wait catch {after cancel $id} close $m list $::wait $res } {1 {da ta {} eof {}}} catch {rename Read {}} catch {unset m} catch {unset res} Memchan2.3/tests/fifo.test0000644000175000017500000000364306770712506015175 0ustar sergeisergei# -*- tcl -*- # Commands covered: None, introductory text # # This file contains a collection of tests for one or more of the commands # the piTcl extension. Sourcing this file into Tcl runs the tests and # generates output for errors. No output means no errors were found. # # Copyright (c) 1998 Andreas Kupries (a.kupries@westend.com) # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # $Id: fifo.test,v 1.4 1999/09/18 13:36:06 aku Exp $ if {[string compare test [info procs test]] == 1} then {source defs} test fifo-basics-1.0 {Create memory fifo channels} { set m [fifo] close $m regsub -all {[0-9]} $m {} m set m } {fifo} if {0} { # Neither tell nor seek possible test fifo-basics-1.1 {Check tell on memory fifo channels} { set m [fifo] set res [tell $m] close $m set res } {0} test fifo-basics-1.2 {Check seek on memory fifo channels} { set m [fifo] set res [seek $m 0] close $m set res } {} } test fifo-basics-1.3 {Check fconfigure/get on memory fifo channels} { set m [fifo] set conf [fconfigure $m] set res [list] lappend res [lrange $conf [set x [lsearch -exact $conf -length]] [incr x]] lappend res [lrange $conf [set x [lsearch -exact $conf -allocated]] [incr x]] close $m set res } {{-length 0} {-allocated 0}} test fifo-basics-1.4 {Check fconfigure/get -length} { set m [fifo] set res [fconfigure $m -length] close $m set res } {0} test fifo-readwrite-1.0 {Write and length} { set m [fifo] puts -nonewline $m {hello world} set res [list [fconfigure $m -length]] close $m set res } {11} test fifo-readwrite-1.1 {Write and read} { set m [fifo] puts -nonewline $m {hello world!} set res [list [fconfigure $m -length]] lappend res [read $m] close $m set res } {12 {hello world!}} catch {unset m} catch {unset res} Memchan2.3/tests/defs0000644000175000017500000000726006716071007014206 0ustar sergeisergei# -*- tcl -*- # This file contains support code for the MEMCHAN test suite. It is # normally sourced by the individual files in the test suite before # they run their tests. This improved approach to testing was designed # and initially implemented by Mary Ann May-Pumphrey of Sun Microsystems. # # Copyright (c) 1990-1994 The Regents of the University of California. # Copyright (c) 1994 Sun Microsystems, Inc. # # Modified 1995 Andreas Kupries (a.kupries@westend.com) # Modified 1997 Andreas Kupries (a.kupries@westend.com) # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # CVS: $Id: defs,v 1.1 1999/05/11 18:08:07 aku Exp $ if {![info exists VERBOSE]} { set VERBOSE 0 } if {![info exists TESTS]} { set TESTS {} } if ![info exists DLP] { set DLP 0 } # If tests are being run as root, issue a warning message and set a # variable to prevent some tests from running at all. set user {} catch {set user [exec whoami]} if {$user == "root"} { puts stdout "Warning: you're executing as root. I'll have to" puts stdout "skip some of the tests, since they'll fail as root." } # Some of the tests don't work on some system configurations due to # differences in word length, file system configuration, etc. In order # to prevent false alarms, these tests are generally only run in the # master development directory for Tcl. The presence of a file # "doAllTests" in this directory is used to indicate that the non-portable # tests should be run. set doNonPortableTests [file exists doAllTests] proc print_verbose {test_name test_description contents_of_test code answer} { puts stdout "\n" puts stdout "==== $test_name $test_description" puts stdout "==== Contents of test case:" puts stdout "$contents_of_test" if {$code != 0} { if {$code == 1} { puts stdout "==== Test generated error:" puts stdout $answer } elseif {$code == 2} { puts stdout "==== Test generated return exception; result was:" puts stdout $answer } elseif {$code == 3} { puts stdout "==== Test generated break exception" } elseif {$code == 4} { puts stdout "==== Test generated continue exception" } else { puts stdout "==== Test generated exception $code; message was:" puts stdout $answer } } else { puts stdout "==== Result was:" puts stdout "$answer" } } proc test {test_name test_description contents_of_test passing_results} { #error "REREAD failure" global VERBOSE global TESTS global DLP if {[string compare $TESTS ""] != 0} then { set ok 0 foreach test $TESTS { if [string match $test $test_name] then { set ok 1 break } } if !$ok then return } if {$DLP} { dlp session log "$test_name $test_description" } set code [catch {uplevel $contents_of_test} answer] # # memory active $test_name # if {$code != 0} { print_verbose $test_name $test_description $contents_of_test \ $code $answer if {$DLP} { dlp session log " ERROR\n" } } elseif {[string compare $answer $passing_results] == 0} then { if $VERBOSE then { print_verbose $test_name $test_description $contents_of_test \ $code $answer puts stdout "++++ $test_name PASSED" } if {$DLP} { dlp session log "\n" } } else { print_verbose $test_name $test_description $contents_of_test $code \ $answer puts stdout "---- Result should have been:" puts stdout "$passing_results" puts stdout "---- $test_name FAILED" if {$DLP} { dlp session log " FAILED\n" } } } proc dotests {file args} { global TESTS set savedTests $TESTS set TESTS $args source $file set TESTS $savedTests } Memchan2.3/tests/all0000644000175000017500000000044006716071007014026 0ustar sergeisergei# -*- tcl -*- # This file contains a top-level script to run all of the Tcl # tests. Execute it by invoking "source all" when running tclTest # in this directory. # # CVS: $Id: all,v 1.1 1999/05/11 18:08:07 aku Exp $ foreach i [lsort [glob *.test]] { puts stdout $i source $i } Memchan2.3/mac/0000755000175000017500000000000011500516253012725 5ustar sergeisergeiMemchan2.3/mac/README0000644000175000017500000000067407530626062013624 0ustar sergeisergei Memory Channels in Tcl (Version 2.2a4 / AUG-20-2002) Andreas Kupries (a.kupries@westend.com) This is the README file for the Macintosh version of the Memchan extension I don't have a Mac, nor do I have access one. Because of this I am unable to provide a Mac port of this extension. I will most happily integrate any required changes, makefiles, et cetera into the distribution, if they are send to me (a.kupries@westend.com). Memchan2.3/generic/0000755000175000017500000000000011500516253013601 5ustar sergeisergeiMemchan2.3/generic/zero.c0000644000175000017500000003612010144255647014740 0ustar sergeisergei/* * zero.c -- * * Implementation of a zero device. * * This is the same as the null channel for writes, but reading * returns a never-ending stream of zeros (null returns 0 bytes). * * Copyright (C) 2000 Andreas Kupries (a.kupries@westend.com) * Copyright (C) 2004 Pat Thoyts * All rights reserved. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: zero.c,v 1.4 2004/11/10 00:07:03 patthoyts Exp $ */ #include "memchanInt.h" /* * Forward declarations of internal procedures. */ static int Close _ANSI_ARGS_((ClientData instanceData, Tcl_Interp *interp)); static int Input _ANSI_ARGS_((ClientData instanceData, char *buf, int toRead, int *errorCodePtr)); static int Output _ANSI_ARGS_((ClientData instanceData, CONST84 char *buf, int toWrite, int *errorCodePtr)); static void WatchChannel _ANSI_ARGS_((ClientData instanceData, int mask)); static void ChannelReady _ANSI_ARGS_((ClientData instanceData)); static int GetFile _ANSI_ARGS_((ClientData instanceData, int direction, ClientData* handlePtr)); static int BlockMode _ANSI_ARGS_((ClientData instanceData, int mode)); static int GetOption _ANSI_ARGS_((ClientData instanceData, Tcl_Interp* interp, CONST84 char *optionName, Tcl_DString *dsPtr)); static int SetOption _ANSI_ARGS_((ClientData instanceData, Tcl_Interp* interp, CONST char *optionName, CONST char *newValue)); /* * This structure describes the channel type structure for null channels: * Null channels are not seekable. They have no options. */ static Tcl_ChannelType channelType = { "zero", /* Type name. */ (Tcl_ChannelTypeVersion)BlockMode, /* Set blocking behaviour. */ Close, /* Close channel, clean instance data */ Input, /* Handle read request */ Output, /* Handle write request */ NULL, /* Move location of access point. NULL'able */ SetOption, /* Set options. NULL'able */ GetOption, /* Get options. NULL'able */ WatchChannel, /* Initialize notifier */ #if GT81 GetFile, /* Get OS handle from the channel. */ NULL /* Close2Proc, not available, no partial close * possible */ #else GetFile /* Get OS handle from the channel. */ #endif }; /* * This structure describes the per-instance state of a in-memory null channel. */ typedef struct ChannelInstance { Tcl_Channel chan; /* Backreference to generic channel information */ Tcl_TimerToken timer; /* Timer used to link the channel into the * notifier. */ int delay; /* fileevent notification interval (in ms) */ } ChannelInstance; /* *---------------------------------------------------------------------- * * BlockMode -- * * Helper procedure to set blocking and nonblocking modes on a * memory channel. Invoked by generic IO level code. * * Results: * 0 if successful, errno when failed. * * Side effects: * Sets the device into blocking or non-blocking mode. * *---------------------------------------------------------------------- */ static int BlockMode (instanceData, mode) ClientData instanceData; int mode; { return 0; } /* *------------------------------------------------------* * * Close -- * * ------------------------------------------------* * This procedure is called from the generic IO * level to perform channel-type-specific cleanup * when an in-memory null channel is closed. * ------------------------------------------------* * * Sideeffects: * Closes the device of the channel. * * Result: * 0 if successful, errno if failed. * *------------------------------------------------------* */ /* ARGSUSED */ static int Close (instanceData, interp) ClientData instanceData; /* The instance information of the channel * to close */ Tcl_Interp* interp; /* unused */ { ChannelInstance* chan; chan = (ChannelInstance*) instanceData; if (chan->timer != (Tcl_TimerToken) NULL) { Tcl_DeleteTimerHandler (chan->timer); } Tcl_Free ((char*) chan); return 0; } /* *------------------------------------------------------* * * Input -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to read input from an in-memory null channel. * ------------------------------------------------* * * Sideeffects: * Reads input from the input device of the * channel. * * Result: * The number of bytes read is returned or * -1 on error. An output argument contains * a POSIX error code if an error occurs, or * zero. * *------------------------------------------------------* */ static int Input(instanceData, buf, toRead, errorCodePtr) ClientData instanceData; /* The channel to read from */ char* buf; /* Buffer to fill */ int toRead; /* Requested number of bytes */ int* errorCodePtr; /* Location of error flag */ { memset(buf, 0, toRead); return toRead; } /* *------------------------------------------------------* * * Output -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to write output to a file channel. * ------------------------------------------------* * * Sideeffects: * Writes output on the output device of * the channel. * * Result: * The number of bytes written is returned * or -1 on error. An output argument * contains a POSIX error code if an error * occurred, or zero. * *------------------------------------------------------* */ static int Output (instanceData, buf, toWrite, errorCodePtr) ClientData instanceData; /* The channel to write to */ CONST84 char* buf; /* Data to be stored. */ int toWrite; /* Number of bytes to write. */ int* errorCodePtr; /* Location of error flag. */ { /* * Everything which is written to this channel disappears. */ return toWrite; } /* *------------------------------------------------------* * * WatchChannel -- * * ------------------------------------------------* * Initialize the notifier to watch Tcl_Files from * this channel. * ------------------------------------------------* * * Sideeffects: * Sets up the notifier so that a future * event on the channel will be seen by Tcl. * * Result: * None. * *------------------------------------------------------* */ /* ARGSUSED */ static void WatchChannel (instanceData, mask) ClientData instanceData; /* Channel to watch */ int mask; /* Events of interest */ { /* * zero channels are not based on files. * They are always writable, and always readable. * We could call Tcl_NotifyChannel immediately, but this * would starve other sources, so a timer is set up instead. */ ChannelInstance* chan = (ChannelInstance*) instanceData; if (mask) { if (chan->timer == (Tcl_TimerToken) NULL) { chan->timer = Tcl_CreateTimerHandler(chan->delay, ChannelReady, instanceData); } } else { Tcl_DeleteTimerHandler (chan->timer); chan->timer = (Tcl_TimerToken) NULL; } } /* *------------------------------------------------------* * * ChannelReady -- * * ------------------------------------------------* * Called by the notifier (-> timer) to check whether * the channel is readable or writable. * ------------------------------------------------* * * Sideeffects: * As of 'Tcl_NotifyChannel'. * * Result: * None. * *------------------------------------------------------* */ static void ChannelReady (instanceData) ClientData instanceData; /* Channel to query */ { /* * In-memory null channels are always writable (fileevent * writable) and they are readable if they are not empty. */ ChannelInstance* chan = (ChannelInstance*) instanceData; int mask = TCL_READABLE | TCL_WRITABLE; /* * Timer fired, our token is useless now. */ chan->timer = (Tcl_TimerToken) NULL; /* Tell Tcl about the possible events. * This will regenerate the timer too, via 'WatchChannel'. */ Tcl_NotifyChannel (chan->chan, mask); } /* *------------------------------------------------------* * * GetFile -- * * ------------------------------------------------* * Called from Tcl_GetChannelHandle to retrieve * OS handles from inside a in-memory null channel. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * The appropriate OS handle or NULL if not * present. * *------------------------------------------------------* */ static int GetFile (instanceData, direction, handlePtr) ClientData instanceData; /* Channel to query */ int direction; /* Direction of interest */ ClientData* handlePtr; /* Space to the handle into */ { /* * In-memory null channels are not based on files. */ /* *handlePtr = (ClientData) NULL; */ return TCL_ERROR; } /* *------------------------------------------------------* * * SetOption -- * * ------------------------------------------------* * Set a channel option * ------------------------------------------------* * * Sideeffects: * Channel parameters may be modified. * * Result: * A standard Tcl result. The new value of the * specified option is returned as the interpeter * result * *------------------------------------------------------* */ static int SetOption (instanceData, interp, optionName, newValue) ClientData instanceData; /* Channel to query */ Tcl_Interp *interp; /* Interpreter to leave error messages in */ CONST char *optionName; /* Name of requested option */ CONST char *newValue; /* The new value */ { ChannelInstance *chan = (ChannelInstance*) instanceData; CONST char *options = "delay"; int result = TCL_OK; if (!strcmp("-delay", optionName)) { int delay = DELAY; result = Tcl_GetInt(interp, (CONST84 char *)newValue, &delay); if (result == TCL_OK) { chan->delay = delay; Tcl_SetObjResult(interp, Tcl_NewIntObj(delay)); } } else { result = Tcl_BadChannelOption(interp, (CONST84 char *)optionName, (CONST84 char *)options); } return result; } /* *------------------------------------------------------* * * GetOption -- * * ------------------------------------------------* * Computes an option value for a zero * channel, or a list of all options and their values. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * A standard Tcl result. The value of the * specified option or a list of all options * and their values is returned in the * supplied DString. * *------------------------------------------------------* */ static int GetOption (instanceData, interp, optionName, dsPtr) ClientData instanceData; /* Channel to query */ Tcl_Interp* interp; /* Interpreter to leave error messages in */ CONST84 char* optionName; /* Name of reuqested option */ Tcl_DString* dsPtr; /* String to place the result into */ { ChannelInstance *chan = (ChannelInstance*) instanceData; char buffer [50]; /* Known options: * -delay: Number of milliseconds between readable fileevents. */ if ((optionName != (char*) NULL) && (0 != strcmp (optionName, "-delay"))) { Tcl_SetErrno (EINVAL); return Tcl_BadChannelOption (interp, optionName, "delay"); } if (optionName == (char*) NULL) { /* * optionName == NULL * => a list of options and their values was requested, * so append the optionName before the retrieved value. */ Tcl_DStringAppendElement (dsPtr, "-delay"); LTOA (chan->delay, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } else if (0 == strcmp (optionName, "-delay")) { LTOA (chan->delay, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } return TCL_OK; } /* *------------------------------------------------------ * * Memchan_CreateZeroChannel - * * Mint a new zero channel. * * Result: * Returns the new channel. * *------------------------------------------------------ */ Tcl_Channel Memchan_CreateZeroChannel(interp) Tcl_Interp *interp; /* current interpreter */ { Tcl_Channel chan; Tcl_Obj *channelHandle; ChannelInstance *instance; instance = (ChannelInstance*) Tcl_Alloc (sizeof (ChannelInstance)); channelHandle = MemchanGenHandle ("zero"); chan = Tcl_CreateChannel (&channelType, Tcl_GetStringFromObj (channelHandle, NULL), (ClientData) instance, TCL_READABLE | TCL_WRITABLE); instance->chan = chan; instance->timer = (Tcl_TimerToken) NULL; instance->delay = DELAY; Tcl_RegisterChannel (interp, chan); Tcl_SetChannelOption (interp, chan, "-buffering", "none"); Tcl_SetChannelOption (interp, chan, "-blocking", "0"); Tcl_SetChannelOption (interp, chan, "-encoding", "binary"); return chan; } /* *------------------------------------------------------* * * MemchanZeroCmd -- * * ------------------------------------------------* * This procedure realizes the 'zero' command. * See the manpages for details on what it does. * ------------------------------------------------* * * Sideeffects: * See the user documentation. * * Result: * A standard Tcl result. * *------------------------------------------------------* */ /* ARGSUSED */ int MemchanZeroCmd (notUsed, interp, objc, objv) ClientData notUsed; /* Not used. */ Tcl_Interp* interp; /* Current interpreter. */ int objc; /* Number of arguments. */ Tcl_Obj*CONST objv[]; /* Argument objects. */ { Tcl_Channel chan; if (objc != 1) { Tcl_AppendResult (interp, "wrong # args: should be \"zero\"", (char*) NULL); return TCL_ERROR; } chan = Memchan_CreateZeroChannel(interp); Tcl_AppendResult(interp, Tcl_GetChannelName(chan), (char *)NULL); return TCL_OK; } Memchan2.3/generic/random.c0000644000175000017500000003743210144255645015246 0ustar sergeisergei/* * random.c -- * * Implementation of a random Tcl file channel * * The PRNG in use here is the ISAAC PRNG. See * http://www.burtleburtle.net/bob/rand/isaacafa.html * for details. This generator _is_ suitable for cryptographic use * * Copyright (C) 2004 Pat Thoyts * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: random.c,v 1.5 2004/11/10 00:07:01 patthoyts Exp $ */ #include "memchanInt.h" #include "../isaac/rand.h" #include /* * Forward declarations of internal procedures. */ static int Close _ANSI_ARGS_((ClientData instanceData, Tcl_Interp *interp)); static int Input _ANSI_ARGS_((ClientData instanceData, char *buf, int toRead, int *errorCodePtr)); static int Output _ANSI_ARGS_((ClientData instanceData, CONST84 char *buf, int toWrite, int *errorCodePtr)); static void WatchChannel _ANSI_ARGS_((ClientData instanceData, int mask)); static void ChannelReady _ANSI_ARGS_((ClientData instanceData)); static int GetFile _ANSI_ARGS_((ClientData instanceData, int direction, ClientData* handlePtr)); static int BlockMode _ANSI_ARGS_((ClientData instanceData, int mode)); static int GetOption _ANSI_ARGS_((ClientData instanceData, Tcl_Interp* interp, CONST84 char *optionName, Tcl_DString *dsPtr)); static int SetOption _ANSI_ARGS_((ClientData instanceData, Tcl_Interp* interp, CONST char *optionName, CONST char *newValue)); /* * This structure describes the channel type structure for random channels: * random channels are not seekable. They have no options. */ static Tcl_ChannelType channelType = { "random", /* Type name. */ (Tcl_ChannelTypeVersion)BlockMode, /* Set blocking behaviour. */ Close, /* Close channel, clean instance data */ Input, /* Handle read request */ Output, /* Handle write request */ NULL, /* Move location of access point. NULL'able */ SetOption, /* Set options. NULL'able */ GetOption, /* Get options. NULL'able */ WatchChannel, /* Initialize notifier */ #if GT81 GetFile, /* Get OS handle from the channel. */ NULL /* Close2Proc, not available, no partial close * possible */ #else GetFile /* Get OS handle from the channel. */ #endif }; /* * This structure describes the per-instance state of a in-memory random channel. */ typedef struct ChannelInstance { Tcl_Channel chan; /* Backreference to generic channel information */ Tcl_TimerToken timer; /* Timer used to link the channel into the * notifier. */ struct randctx state; /* PRNG state */ int delay; /* fileevent notification interval (in ms) */ } ChannelInstance; /* *---------------------------------------------------------------------- * * BlockMode -- * * Helper procedure to set blocking and nonblocking modes on a * memory channel. Invoked by generic IO level code. * * Results: * 0 if successful, errno when failed. * * Side effects: * Sets the device into blocking or non-blocking mode. * *---------------------------------------------------------------------- */ static int BlockMode (instanceData, mode) ClientData instanceData; int mode; { return 0; } /* *------------------------------------------------------* * * Close -- * * ------------------------------------------------* * This procedure is called from the generic IO * level to perform channel-type-specific cleanup * when an in-memory random channel is closed. * ------------------------------------------------* * * Sideeffects: * Closes the device of the channel. * * Result: * 0 if successful, errno if failed. * *------------------------------------------------------* */ /* ARGSUSED */ static int Close (instanceData, interp) ClientData instanceData; /* The instance information of the channel to * close */ Tcl_Interp* interp; /* unused */ { ChannelInstance* chan; chan = (ChannelInstance*) instanceData; if (chan->timer != (Tcl_TimerToken) NULL) { Tcl_DeleteTimerHandler (chan->timer); } Tcl_Free ((char*) chan); return 0; } /* *------------------------------------------------------* * * Input -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to read input from an in-memory random channel. * ------------------------------------------------* * * Sideeffects: * Reads input from the input device of the * channel. * * Result: * The number of bytes read is returned or * -1 on error. An output argument contains * a POSIX error code if an error occurs, or * zero. * *------------------------------------------------------* */ static int Input (instanceData, buf, toRead, errorCodePtr) ClientData instanceData; /* The channel to read from */ char* buf; /* Buffer to fill */ int toRead; /* Requested number of bytes */ int* errorCodePtr; /* Location of error flag */ { ChannelInstance *chan = (ChannelInstance *)instanceData; size_t n = 0, i = sizeof(unsigned long); unsigned long rnd; for (n = 0; toRead - n > i; n += i) { rnd = rand(&chan->state); memcpy(&buf[n], (char *)&rnd, i); } if (toRead - n > 0) { rnd = rand(&chan->state); memcpy(&buf[n], (char *)&rnd, toRead-n); n += (toRead-n); } return n; } /* *------------------------------------------------------* * * Output -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to write output to a file channel. * ------------------------------------------------* * * Sideeffects: * Writes output on the output device of * the channel. * * Result: * The number of bytes written is returned * or -1 on error. An output argument * contains a POSIX error code if an error * occurred, or zero. * *------------------------------------------------------* */ static int Output (instanceData, buf, toWrite, errorCodePtr) ClientData instanceData; /* The channel to write to */ CONST84 char* buf; /* Data to be stored. */ int toWrite; /* Number of bytes to write. */ int* errorCodePtr; /* Location of error flag. */ { ChannelInstance *chan = (ChannelInstance *)instanceData; ub4 rnd, n = 0; ub4 *s = (ub4 *)buf; ub4 *p = chan->state.randrsl; while (n < RANDSIZ && n < (ub4)(toWrite/4)) { p[n] ^= s[n]; n++; } /* mix the state */ rnd = rand(&chan->state); /* * If we filled the state with data, there is no advantage to * adding in additional data. So lets save time. */ return toWrite; } /* *------------------------------------------------------* * * WatchChannel -- * * ------------------------------------------------* * Initialize the notifier to watch Tcl_Files from * this channel. * ------------------------------------------------* * * Sideeffects: * Sets up the notifier so that a future * event on the channel will be seen by Tcl. * * Result: * None. * *------------------------------------------------------* */ /* ARGSUSED */ static void WatchChannel (instanceData, mask) ClientData instanceData; /* Channel to watch */ int mask; /* Events of interest */ { /* * random channels are not based on files. * They are always writable, and always readable. * We could call Tcl_NotifyChannel immediately, but this * would starve other sources, so a timer is set up instead. */ ChannelInstance* chan = (ChannelInstance*) instanceData; if (mask) { if (chan->timer == (Tcl_TimerToken) NULL) { chan->timer = Tcl_CreateTimerHandler(chan->delay, ChannelReady, instanceData); } } else { Tcl_DeleteTimerHandler (chan->timer); chan->timer = (Tcl_TimerToken) NULL; } } /* *------------------------------------------------------* * * ChannelReady -- * * ------------------------------------------------* * Called by the notifier (-> timer) to check whether * the channel is readable or writable. * ------------------------------------------------* * * Sideeffects: * As of 'Tcl_NotifyChannel'. * * Result: * None. * *------------------------------------------------------* */ static void ChannelReady (instanceData) ClientData instanceData; /* Channel to query */ { /* * In-memory random channels are always writable (fileevent * writable) and they are also always readable. */ ChannelInstance* chan = (ChannelInstance*) instanceData; int mask = TCL_READABLE | TCL_WRITABLE; /* * Timer fired, our token is useless now. */ chan->timer = (Tcl_TimerToken) NULL; /* Tell Tcl about the possible events. * This will regenerate the timer too, via 'WatchChannel'. */ Tcl_NotifyChannel (chan->chan, mask); } /* *------------------------------------------------------* * * GetFile -- * * ------------------------------------------------* * Called from Tcl_GetChannelHandle to retrieve * OS handles from inside a in-memory random channel. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * The appropriate OS handle or NULL if not * present. * *------------------------------------------------------* */ static int GetFile (instanceData, direction, handlePtr) ClientData instanceData; /* Channel to query */ int direction; /* Direction of interest */ ClientData* handlePtr; /* Space to the handle into */ { /* * In-memory random channels are not based on files. */ /* *handlePtr = (ClientData) NULL; */ return TCL_ERROR; } /* *------------------------------------------------------* * * SetOption -- * * ------------------------------------------------* * Set a channel option * ------------------------------------------------* * * Sideeffects: * Channel parameters may be modified. * * Result: * A standard Tcl result. The new value of the * specified option is returned as the interpeter * result * *------------------------------------------------------* */ static int SetOption (instanceData, interp, optionName, newValue) ClientData instanceData; /* Channel to query */ Tcl_Interp *interp; /* Interpreter to leave error messages in */ CONST char *optionName; /* Name of requested option */ CONST char *newValue; /* The new value */ { ChannelInstance *chan = (ChannelInstance*) instanceData; CONST char *options = "delay"; int result = TCL_OK; if (!strcmp("-delay", optionName)) { int delay = DELAY; result = Tcl_GetInt(interp, (CONST84 char *)newValue, &delay); if (result == TCL_OK) { chan->delay = delay; Tcl_SetObjResult(interp, Tcl_NewIntObj(delay)); } } else { result = Tcl_BadChannelOption(interp, (CONST84 char *)optionName, (CONST84 char *)options); } return result; } /* *------------------------------------------------------* * * GetOption -- * * ------------------------------------------------* * Computes an option value for a zero * channel, or a list of all options and their values. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * A standard Tcl result. The value of the * specified option or a list of all options * and their values is returned in the * supplied DString. * *------------------------------------------------------* */ static int GetOption (instanceData, interp, optionName, dsPtr) ClientData instanceData; /* Channel to query */ Tcl_Interp* interp; /* Interpreter to leave error messages in */ CONST84 char* optionName; /* Name of reuqested option */ Tcl_DString* dsPtr; /* String to place the result into */ { ChannelInstance *chan = (ChannelInstance*) instanceData; char buffer [50]; /* Known options: * -delay: Number of milliseconds between readable fileevents. */ if ((optionName != (char*) NULL) && (0 != strcmp (optionName, "-delay"))) { Tcl_SetErrno (EINVAL); return Tcl_BadChannelOption (interp, optionName, "delay"); } if (optionName == (char*) NULL) { /* * optionName == NULL * => a list of options and their values was requested, * so append the optionName before the retrieved value. */ Tcl_DStringAppendElement (dsPtr, "-delay"); LTOA (chan->delay, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } else if (0 == strcmp (optionName, "-delay")) { LTOA (chan->delay, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } return TCL_OK; } /* *------------------------------------------------------ * * Memchan_CreateRandomChannel - * * Mint a new 'random' channel. * * Result: * Returns the new channel. * *------------------------------------------------------ */ Tcl_Channel Memchan_CreateRandomChannel(interp) Tcl_Interp *interp; /* current interpreter */ { Tcl_Channel chan; Tcl_Obj *channelHandle; ChannelInstance *instance; unsigned long seed; instance = (ChannelInstance*) Tcl_Alloc (sizeof (ChannelInstance)); channelHandle = MemchanGenHandle ("random"); chan = Tcl_CreateChannel (&channelType, Tcl_GetStringFromObj (channelHandle, NULL), (ClientData) instance, TCL_READABLE | TCL_WRITABLE); instance->chan = chan; instance->timer = (Tcl_TimerToken) NULL; instance->delay = DELAY; /* * Basic initialization of the PRNG state */ seed = time(NULL) + ((long)Tcl_GetCurrentThread() << 12); memcpy(&instance->state.randrsl, &seed, sizeof(seed)); randinit(&instance->state); Tcl_RegisterChannel (interp, chan); Tcl_SetChannelOption (interp, chan, "-buffering", "none"); Tcl_SetChannelOption (interp, chan, "-blocking", "0"); return chan; } /* *------------------------------------------------------* * * MemchanRandomCmd -- * * ------------------------------------------------* * This procedure realizes the 'random' command. * See the manpages for details on what it does. * ------------------------------------------------* * * Sideeffects: * See the user documentation. * * Result: * A standard Tcl result. * *------------------------------------------------------* */ /* ARGSUSED */ int MemchanRandomCmd (notUsed, interp, objc, objv) ClientData notUsed; /* Not used. */ Tcl_Interp* interp; /* Current interpreter. */ int objc; /* Number of arguments. */ Tcl_Obj*CONST objv[]; /* Argument objects. */ { Tcl_Channel chan; if (objc != 1) { Tcl_AppendResult (interp, "wrong # args: should be \"fifo\"", (char*) NULL); return TCL_ERROR; } chan = Memchan_CreateRandomChannel(interp); Tcl_AppendResult(interp, Tcl_GetChannelName(chan), (char *)NULL); return TCL_OK; } Memchan2.3/generic/null.c0000644000175000017500000003534010144255645014734 0ustar sergeisergei/* * null.c -- * * Implementation of a null device. * * Copyright (C) 2000 Andreas Kupries (a.kupries@westend.com) * All rights reserved. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: null.c,v 1.8 2004/11/10 00:07:01 patthoyts Exp $ */ #include "memchanInt.h" /* * Forward declarations of internal procedures. */ static int Close _ANSI_ARGS_((ClientData instanceData, Tcl_Interp *interp)); static int Input _ANSI_ARGS_((ClientData instanceData, char *buf, int toRead, int *errorCodePtr)); static int Output _ANSI_ARGS_((ClientData instanceData, CONST84 char *buf, int toWrite, int *errorCodePtr)); static void WatchChannel _ANSI_ARGS_((ClientData instanceData, int mask)); static void ChannelReady _ANSI_ARGS_((ClientData instanceData)); static int GetFile _ANSI_ARGS_((ClientData instanceData, int direction, ClientData* handlePtr)); static int BlockMode _ANSI_ARGS_((ClientData instanceData, int mode)); static int GetOption _ANSI_ARGS_((ClientData instanceData, Tcl_Interp* interp, CONST84 char *optionName, Tcl_DString *dsPtr)); static int SetOption _ANSI_ARGS_((ClientData instanceData, Tcl_Interp* interp, CONST char *optionName, CONST char *newValue)); /* * This structure describes the channel type structure for null channels: * Null channels are not seekable. They have no options. */ static Tcl_ChannelType channelType = { "null", /* Type name. */ (Tcl_ChannelTypeVersion)BlockMode, /* Set blocking behaviour. */ Close, /* Close channel, clean instance data */ Input, /* Handle read request */ Output, /* Handle write request */ NULL, /* Move location of access point. NULL'able */ SetOption, /* Set options. NULL'able */ GetOption, /* Get options. NULL'able */ WatchChannel, /* Initialize notifier */ #if GT81 GetFile, /* Get OS handle from the channel. */ NULL /* Close2Proc, not available, no partial close * possible */ #else GetFile /* Get OS handle from the channel. */ #endif }; /* * This structure describes the per-instance state of a in-memory null channel. */ typedef struct ChannelInstance { Tcl_Channel chan; /* Backreference to generic channel information */ Tcl_TimerToken timer; /* Timer used to link the channel into the * notifier. */ int delay; /* fileevent notification interval (in ms) */ } ChannelInstance; /* *---------------------------------------------------------------------- * * BlockMode -- * * Helper procedure to set blocking and nonblocking modes on a * memory channel. Invoked by generic IO level code. * * Results: * 0 if successful, errno when failed. * * Side effects: * Sets the device into blocking or non-blocking mode. * *---------------------------------------------------------------------- */ static int BlockMode (instanceData, mode) ClientData instanceData; int mode; { return 0; } /* *------------------------------------------------------* * * Close -- * * ------------------------------------------------* * This procedure is called from the generic IO * level to perform channel-type-specific cleanup * when an in-memory null channel is closed. * ------------------------------------------------* * * Sideeffects: * Closes the device of the channel. * * Result: * 0 if successful, errno if failed. * *------------------------------------------------------* */ /* ARGSUSED */ static int Close (instanceData, interp) ClientData instanceData; /* The instance information of the channel to * close */ Tcl_Interp* interp; /* unused */ { ChannelInstance* chan; chan = (ChannelInstance*) instanceData; if (chan->timer != (Tcl_TimerToken) NULL) { Tcl_DeleteTimerHandler (chan->timer); } Tcl_Free ((char*) chan); return 0; } /* *------------------------------------------------------* * * Input -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to read input from an in-memory null channel. * ------------------------------------------------* * * Sideeffects: * Reads input from the input device of the * channel. * * Result: * The number of bytes read is returned or * -1 on error. An output argument contains * a POSIX error code if an error occurs, or * zero. * *------------------------------------------------------* */ static int Input (instanceData, buf, toRead, errorCodePtr) ClientData instanceData; /* The channel to read from */ char* buf; /* Buffer to fill */ int toRead; /* Requested number of bytes */ int* errorCodePtr; /* Location of error flag */ { /* * Nothing can be read from this channel. */ return 0; } /* *------------------------------------------------------* * * Output -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to write output to a file channel. * ------------------------------------------------* * * Sideeffects: * Writes output on the output device of * the channel. * * Result: * The number of bytes written is returned * or -1 on error. An output argument * contains a POSIX error code if an error * occurred, or zero. * *------------------------------------------------------* */ static int Output (instanceData, buf, toWrite, errorCodePtr) ClientData instanceData; /* The channel to write to */ CONST84 char* buf; /* Data to be stored. */ int toWrite; /* Number of bytes to write. */ int* errorCodePtr; /* Location of error flag. */ { /* * Everything which is written to this channel disappears. */ return toWrite; } /* *------------------------------------------------------* * * WatchChannel -- * * ------------------------------------------------* * Initialize the notifier to watch Tcl_Files from * this channel. * ------------------------------------------------* * * Sideeffects: * Sets up the notifier so that a future * event on the channel will be seen by Tcl. * * Result: * None. * *------------------------------------------------------* */ /* ARGSUSED */ static void WatchChannel (instanceData, mask) ClientData instanceData; /* Channel to watch */ int mask; /* Events of interest */ { /* * null channels are not based on files. * They are always writable, and always readable. * We could call Tcl_NotifyChannel immediately, but this * would starve other sources, so a timer is set up instead. */ ChannelInstance* chan = (ChannelInstance*) instanceData; if (mask) { if (chan->timer == (Tcl_TimerToken) NULL) { chan->timer = Tcl_CreateTimerHandler(chan->delay, ChannelReady, instanceData); } } else { Tcl_DeleteTimerHandler (chan->timer); chan->timer = (Tcl_TimerToken) NULL; } } /* *------------------------------------------------------* * * ChannelReady -- * * ------------------------------------------------* * Called by the notifier (-> timer) to check whether * the channel is readable or writable. * ------------------------------------------------* * * Sideeffects: * As of 'Tcl_NotifyChannel'. * * Result: * None. * *------------------------------------------------------* */ static void ChannelReady (instanceData) ClientData instanceData; /* Channel to query */ { /* * In-memory null channels are always writable (fileevent * writable) and they are readable if they are not empty. */ ChannelInstance* chan = (ChannelInstance*) instanceData; int mask = TCL_READABLE | TCL_WRITABLE; /* * Timer fired, our token is useless now. */ chan->timer = (Tcl_TimerToken) NULL; /* Tell Tcl about the possible events. * This will regenerate the timer too, via 'WatchChannel'. */ Tcl_NotifyChannel (chan->chan, mask); } /* *------------------------------------------------------* * * GetFile -- * * ------------------------------------------------* * Called from Tcl_GetChannelHandle to retrieve * OS handles from inside a in-memory null channel. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * The appropriate OS handle or NULL if not * present. * *------------------------------------------------------* */ static int GetFile (instanceData, direction, handlePtr) ClientData instanceData; /* Channel to query */ int direction; /* Direction of interest */ ClientData* handlePtr; /* Space to the handle into */ { /* * In-memory null channels are not based on files. */ /* *handlePtr = (ClientData) NULL; */ return TCL_ERROR; } /* *------------------------------------------------------* * * SetOption -- * * ------------------------------------------------* * Set a channel option * ------------------------------------------------* * * Sideeffects: * Channel parameters may be modified. * * Result: * A standard Tcl result. The new value of the * specified option is returned as the interpeter * result * *------------------------------------------------------* */ static int SetOption (instanceData, interp, optionName, newValue) ClientData instanceData; /* Channel to query */ Tcl_Interp *interp; /* Interpreter to leave error messages in */ CONST char *optionName; /* Name of requested option */ CONST char *newValue; /* The new value */ { ChannelInstance *chan = (ChannelInstance*) instanceData; CONST char *options = "delay"; int result = TCL_OK; if (!strcmp("-delay", optionName)) { int delay = DELAY; result = Tcl_GetInt(interp, (CONST84 char *)newValue, &delay); if (result == TCL_OK) { chan->delay = delay; Tcl_SetObjResult(interp, Tcl_NewIntObj(delay)); } } else { result = Tcl_BadChannelOption(interp, (CONST84 char *)optionName, (CONST84 char *)options); } return result; } /* *------------------------------------------------------* * * GetOption -- * * ------------------------------------------------* * Computes an option value for a null * channel, or a list of all options and their values. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * A standard Tcl result. The value of the * specified option or a list of all options * and their values is returned in the * supplied DString. * *------------------------------------------------------* */ static int GetOption (instanceData, interp, optionName, dsPtr) ClientData instanceData; /* Channel to query */ Tcl_Interp* interp; /* Interpreter to leave error messages in */ CONST84 char* optionName; /* Name of reuqested option */ Tcl_DString* dsPtr; /* String to place the result into */ { ChannelInstance *chan = (ChannelInstance*) instanceData; char buffer [50]; /* Known options: * -delay: Number of milliseconds between readable fileevents. */ if ((optionName != (char*) NULL) && (0 != strcmp (optionName, "-delay"))) { Tcl_SetErrno (EINVAL); return Tcl_BadChannelOption (interp, optionName, "delay"); } if (optionName == (char*) NULL) { /* * optionName == NULL * => a list of options and their values was requested, * so append the optionName before the retrieved value. */ Tcl_DStringAppendElement (dsPtr, "-delay"); LTOA (chan->delay, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } else if (0 == strcmp (optionName, "-delay")) { LTOA (chan->delay, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } return TCL_OK; } /* *------------------------------------------------------ * * Memchan_CreateNullChannel - * * Mint a new null channel. * * Result: * Returns the new channel. * *------------------------------------------------------ */ Tcl_Channel Memchan_CreateNullChannel(interp) Tcl_Interp *interp; /* current interpreter */ { Tcl_Channel chan; Tcl_Obj *channelHandle; ChannelInstance *instance; instance = (ChannelInstance*) Tcl_Alloc (sizeof (ChannelInstance)); channelHandle = MemchanGenHandle ("null"); chan = Tcl_CreateChannel (&channelType, Tcl_GetStringFromObj (channelHandle, NULL), (ClientData) instance, TCL_READABLE | TCL_WRITABLE); instance->chan = chan; instance->timer = (Tcl_TimerToken) NULL; instance->delay = DELAY; Tcl_RegisterChannel (interp, chan); Tcl_SetChannelOption (interp, chan, "-buffering", "none"); Tcl_SetChannelOption (interp, chan, "-blocking", "0"); return chan; } /* *------------------------------------------------------* * * MemchanNullCmd -- * * ------------------------------------------------* * This procedure realizes the 'null' command. * See the manpages for details on what it does. * ------------------------------------------------* * * Sideeffects: * See the user documentation. * * Result: * A standard Tcl result. * *------------------------------------------------------* */ /* ARGSUSED */ int MemchanNullCmd (notUsed, interp, objc, objv) ClientData notUsed; /* Not used. */ Tcl_Interp* interp; /* Current interpreter. */ int objc; /* Number of arguments. */ Tcl_Obj*CONST objv[]; /* Argument objects. */ { Tcl_Channel chan; if (objc != 1) { Tcl_AppendResult (interp, "wrong # args: should be \"null\"", (char*) NULL); return TCL_ERROR; } chan = Memchan_CreateNullChannel(interp); Tcl_AppendResult(interp, Tcl_GetChannelName(chan), (char *)NULL); return TCL_OK; } Memchan2.3/generic/memchanStubLib.c0000644000175000017500000000363010251627517016654 0ustar sergeisergei/* * memchanStubLib.c -- * * Stub object that will be statically linked into extensions that wish * to access the Memchan API. * * Copyright (c) 1998 Paul Duffin. * Copyright (c) 1998-1999 by Scriptics Corporation. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * $Id: memchanStubLib.c,v 1.2 2005/06/08 17:47:59 andreas_kupries Exp $ */ #ifndef USE_TCL_STUBS #define USE_TCL_STUBS #endif #include "memchan.h" #include "buf.h" #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLEXPORT extern BufStubs *bufStubsPtr; MemchanStubs *memchanStubsPtr; /* *---------------------------------------------------------------------- * * Memchan_InitStubs -- * * Loads the Memchan extension and initializes the stubs table. * * Results: * The actual version of Memchan in use. NULL if an error occurred. * * Side effects: * Sets the stub table pointers. * *---------------------------------------------------------------------- */ CONST char * Memchan_InitStubs(interp, version, exact) Tcl_Interp *interp; CONST char *version; int exact; { CONST char *result; /* HACK: de-CONST 'version' if compiled against 8.3. * The API has no CONST despite not modifying the argument * And a debug build with high warning-level on windows * will abort the compilation. */ #if ((TCL_MAJOR_VERSION < 8) || ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 4))) #define UNCONST (char*) #else #define UNCONST #endif /* NOTE: Memchan actuall provide the Buf stubs. The Memchan stubs * table is hooked into this. */ result = Tcl_PkgRequireEx(interp, "Memchan", UNCONST version, exact, (ClientData *) &bufStubsPtr); if (!result || !bufStubsPtr) { return (char *) NULL; } memchanStubsPtr = bufStubsPtr->hooks->memchanStubs; return result; } #undef UNCONST Memchan2.3/generic/memchanStubInit.c0000644000175000017500000000123010144247204017033 0ustar sergeisergei/* memchanStubsInit.c - Copyright (C) 2004 Pat Thoyts * * The contents of this file are automatically generated by * genStubs.tcl from the memchan.decls file. * */ #include "memchan.h" /* !BEGIN!: Do not edit below this line. */ MemchanStubs memchanStubs = { TCL_STUB_MAGIC, NULL, Memchan_Init, /* 0 */ Memchan_SafeInit, /* 1 */ Memchan_CreateMemoryChannel, /* 2 */ Memchan_CreateFifoChannel, /* 3 */ Memchan_CreateFifo2Channel, /* 4 */ Memchan_CreateZeroChannel, /* 5 */ Memchan_CreateNullChannel, /* 6 */ Memchan_CreateRandomChannel, /* 7 */ }; /* !END!: Do not edit above this line. */ Memchan2.3/generic/memchanInt.h0000644000175000017500000001367211500515232016042 0ustar sergeisergei#ifndef MEMCHAN_H /* * memchanInt.h -- * * Internal definitions. * * Copyright (C) 1996-1999 Andreas Kupries (a.kupries@westend.com) * All rights reserved. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: memchanInt.h,v 1.25 2010/12/09 18:18:02 andreas_kupries Exp $ */ #include #include /* strncmp */ #define USE_NON_CONST #include #ifdef HAVE_STDINT_H #include #endif #ifdef HAVE_INTTYPES_H #include #endif #ifdef STDC_HEADERS #include #endif /* * Make sure that both EAGAIN and EWOULDBLOCK are defined. This does not * compile on systems where neither is defined. We want both defined so * that we can test safely for both. In the code we still have to test for * both because there may be systems on which both are defined and have * different values. * * Taken from tcl/generic/tclIO.h * Might be better if the 'tclPort' headers were public. */ #if ((!defined(EWOULDBLOCK)) && (defined(EAGAIN))) # define EWOULDBLOCK EAGAIN #endif #if ((!defined(EAGAIN)) && (defined(EWOULDBLOCK))) # define EAGAIN EWOULDBLOCK #endif #if ((!defined(EAGAIN)) && (!defined(EWOULDBLOCK))) error one of EWOULDBLOCK or EAGAIN must be defined #endif #ifdef __cplusplus extern "C" { #endif /* * Number of bytes used to extend a storage area found to small. */ #define INCREMENT (512) /* * Number of milliseconds to wait between polls of channel state, * e.g. generation of readable/writable events. * * Relevant for only Tcl 8.0 and beyond. */ #define DELAY (5) /* Detect Tcl 8.1 and beyond => Stubs, panic <-> Tcl_Panic */ #define GT81 ((TCL_MAJOR_VERSION > 8) || \ ((TCL_MAJOR_VERSION == 8) && \ (TCL_MINOR_VERSION >= 1))) /* Detect Tcl 8.4 and beyond => API CONSTification */ #define GT84 ((TCL_MAJOR_VERSION > 8) || \ ((TCL_MAJOR_VERSION == 8) && \ (TCL_MINOR_VERSION >= 4))) /* There are currently two cases to consider * * 1. An API function called with a const string, which was non-const * in the relevant argument before 8.4 and is now const in that * argument. This meanst that before 8.4 the actual parameter * required a cast to unconst the value and doesn't require the * cast for 8.4 and beyond. * * This is solved by the macro MC_UNCONSTB84 * = MemChan unCONST Before 8.4 * * 2. The result of an API function was non-const before 8.4 and is * now const, and is assinged to a non-const string pointer. */ #if GT84 #define MC_UNCONSTB84 #else #define MC_UNCONSTB84 (char*) #endif /* GT84 */ #ifndef CONST84 #define CONST84 #endif /* * Pre-8.3 the Tcl_ChannelTypeVersion was not defined. */ #if ((TCL_MAJOR_VERSION >= 8) && (TCL_MINOR_VERSION < 3)) typedef Tcl_DriverBlockModeProc* Tcl_ChannelTypeVersion; #endif #if ! (GT81) /* Enable use of procedure internal to tcl. Necessary only * for versions of tcl below 8.1. */ EXTERN void panic _ANSI_ARGS_ (TCL_VARARGS(char*, format)); #undef Tcl_Panic #define Tcl_Panic panic #endif #undef HAVE_LTOA /* Forcing 'sprintf'. HP ltoa function signature may diverge */ #ifdef HAVE_LTOA #define LTOA(x,str) ltoa (x, str, 10) #else #define LTOA(x,str) sprintf (str, "%lu", (unsigned long) (x)) #endif /* * Macros used to cast between pointers and integers (e.g. when storing an int * in ClientData), on 64-bit architectures they avoid gcc warning about "cast * to/from pointer from/to integer of different size". * * Copied from tclInt.h. */ #if !defined(INT2PTR) && !defined(PTR2INT) # if defined(HAVE_INTPTR_T) || defined(intptr_t) # define INT2PTR(p) ((void *)(intptr_t)(p)) # define PTR2INT(p) ((int)(intptr_t)(p)) # else # define INT2PTR(p) ((void *)(p)) # define PTR2INT(p) ((int)(p)) # endif #endif #if !defined(UINT2PTR) && !defined(PTR2UINT) # if defined(HAVE_UINTPTR_T) || defined(uintptr_t) # define UINT2PTR(p) ((void *)(uintptr_t)(p)) # define PTR2UINT(p) ((unsigned int)(uintptr_t)(p)) # else # define UINT2PTR(p) ((void *)(p)) # define PTR2UINT(p) ((unsigned int)(p)) # endif #endif /* Internal command visible to other parts of the package. */ extern int MemchanCmd _ANSI_ARGS_ ((ClientData notUsed, Tcl_Interp* interp, int objc, Tcl_Obj*CONST objv[])); extern int MemchanFifoCmd _ANSI_ARGS_ ((ClientData notUsed, Tcl_Interp* interp, int objc, Tcl_Obj*CONST objv[])); extern int MemchanFifo2Cmd _ANSI_ARGS_ ((ClientData notUsed, Tcl_Interp* interp, int objc, Tcl_Obj*CONST objv[])); extern int MemchanNullCmd _ANSI_ARGS_ ((ClientData notUsed, Tcl_Interp* interp, int objc, Tcl_Obj*CONST objv[])); extern int MemchanRandomCmd _ANSI_ARGS_ ((ClientData notUsed, Tcl_Interp* interp, int objc, Tcl_Obj*CONST objv[])); extern int MemchanZeroCmd _ANSI_ARGS_ ((ClientData notUsed, Tcl_Interp* interp, int objc, Tcl_Obj*CONST objv[])); /* Generator procedure for handles. Handles mutex issues for a thread * enabled version of tcl. */ extern Tcl_Obj* MemchanGenHandle _ANSI_ARGS_ ((CONST char* prefix)); #ifdef __cplusplus } #endif /* C++ */ /* * Exported functionality. */ #include "memchan.h" #endif /* MEMCHAN_H */ Memchan2.3/generic/memchan.h0000644000175000017500000000165310144247204015367 0ustar sergeisergei/* memchan.h - Copyright (C) 2004 Pat Thoyts * * Public API to Memchan * * $Id: memchan.h,v 1.1 2004/11/09 23:11:00 patthoyts Exp $ * */ #ifndef _MEMCHAN_H_INCLUDE #define _MEMCHAN_H_INCLUDE #include /* * Windows needs to know which symbols to export. Unix does not. * BUILD_Memchan should be undefined for Unix. */ #undef TCL_STORAGE_CLASS #ifdef BUILD_Memchan #define TCL_STORAGE_CLASS DLLEXPORT #else #ifdef USE_MEMCHAN_STUBS #define TCL_STORAGE_CLASS #else #define TCL_STORAGE_CLASS DLLIMPORT #endif /* USE_MEMCHAN_STUBS */ #endif /* BUILD_Memchan */ #ifdef __cplusplus extern "C" { #endif #include "memchanDecls.h" #ifdef USE_MEMCHAN_STUBS EXTERN CONST char * Memchan_InitStubs(Tcl_Interp *interp, CONST char *version, int exact); #endif #ifdef __cplusplus } #endif /* C++ */ #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT #endif /* _MEMCHAN_H_INCLUDE */ Memchan2.3/generic/memchanDecls.h0000644000175000017500000000635710144247204016350 0ustar sergeisergei/* memchanDecls.h - Copyright (C) 2004 Pat Thoyts * * The contents of this file are automatically generated by * genStubs.tcl from the memchan.decls file. * */ #ifndef _memchanDecls_h_INCLUDE #define _memchanDecls_h_INCLUDE /* !BEGIN!: Do not edit below this line. */ /* * Exported function declarations: */ /* 0 */ EXTERN int Memchan_Init _ANSI_ARGS_((Tcl_Interp * interp)); /* 1 */ EXTERN int Memchan_SafeInit _ANSI_ARGS_((Tcl_Interp * interp)); /* 2 */ EXTERN Tcl_Channel Memchan_CreateMemoryChannel _ANSI_ARGS_(( Tcl_Interp * interp, int initialSize)); /* 3 */ EXTERN Tcl_Channel Memchan_CreateFifoChannel _ANSI_ARGS_(( Tcl_Interp * interp)); /* 4 */ EXTERN void Memchan_CreateFifo2Channel _ANSI_ARGS_(( Tcl_Interp * interp, Tcl_Channel * aPtr, Tcl_Channel * bPtr)); /* 5 */ EXTERN Tcl_Channel Memchan_CreateZeroChannel _ANSI_ARGS_(( Tcl_Interp * interp)); /* 6 */ EXTERN Tcl_Channel Memchan_CreateNullChannel _ANSI_ARGS_(( Tcl_Interp * interp)); /* 7 */ EXTERN Tcl_Channel Memchan_CreateRandomChannel _ANSI_ARGS_(( Tcl_Interp * interp)); typedef struct MemchanStubs { int magic; struct MemchanStubHooks *hooks; int (*memchan_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 0 */ int (*memchan_SafeInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 1 */ Tcl_Channel (*memchan_CreateMemoryChannel) _ANSI_ARGS_((Tcl_Interp * interp, int initialSize)); /* 2 */ Tcl_Channel (*memchan_CreateFifoChannel) _ANSI_ARGS_((Tcl_Interp * interp)); /* 3 */ void (*memchan_CreateFifo2Channel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel * aPtr, Tcl_Channel * bPtr)); /* 4 */ Tcl_Channel (*memchan_CreateZeroChannel) _ANSI_ARGS_((Tcl_Interp * interp)); /* 5 */ Tcl_Channel (*memchan_CreateNullChannel) _ANSI_ARGS_((Tcl_Interp * interp)); /* 6 */ Tcl_Channel (*memchan_CreateRandomChannel) _ANSI_ARGS_((Tcl_Interp * interp)); /* 7 */ } MemchanStubs; #ifdef __cplusplus extern "C" { #endif extern MemchanStubs *memchanStubsPtr; #ifdef __cplusplus } #endif #if defined(USE_MEMCHAN_STUBS) && !defined(USE_MEMCHAN_STUB_PROCS) /* * Inline function declarations: */ #ifndef Memchan_Init #define Memchan_Init \ (memchanStubsPtr->memchan_Init) /* 0 */ #endif #ifndef Memchan_SafeInit #define Memchan_SafeInit \ (memchanStubsPtr->memchan_SafeInit) /* 1 */ #endif #ifndef Memchan_CreateMemoryChannel #define Memchan_CreateMemoryChannel \ (memchanStubsPtr->memchan_CreateMemoryChannel) /* 2 */ #endif #ifndef Memchan_CreateFifoChannel #define Memchan_CreateFifoChannel \ (memchanStubsPtr->memchan_CreateFifoChannel) /* 3 */ #endif #ifndef Memchan_CreateFifo2Channel #define Memchan_CreateFifo2Channel \ (memchanStubsPtr->memchan_CreateFifo2Channel) /* 4 */ #endif #ifndef Memchan_CreateZeroChannel #define Memchan_CreateZeroChannel \ (memchanStubsPtr->memchan_CreateZeroChannel) /* 5 */ #endif #ifndef Memchan_CreateNullChannel #define Memchan_CreateNullChannel \ (memchanStubsPtr->memchan_CreateNullChannel) /* 6 */ #endif #ifndef Memchan_CreateRandomChannel #define Memchan_CreateRandomChannel \ (memchanStubsPtr->memchan_CreateRandomChannel) /* 7 */ #endif #endif /* defined(USE_MEMCHAN_STUBS) && !defined(USE_MEMCHAN_STUB_PROCS) */ /* !END!: Do not edit above this line. */ #endif /* _memchanDecls_h_INCLUDE */ Memchan2.3/generic/memchan.decls0000644000175000017500000000256510144247204016235 0ustar sergeisergei# memchan.decls -- Copyright (C) 2004 Pat Thoyts # # This file contains the declarations for all supported public # functions that are exported by the Memcgan library via its stubs table. # # This file is used to generate the memchanDecls.h and memchanStubInit.c # # DO NOT RE-NUMBER THE FUNCTIONS. # To preserve backwards compatability, new functions MUST BE appended with a # new unique number. # # $Id: memchan.decls,v 1.1 2004/11/09 23:11:00 patthoyts Exp $ library memchan interface memchan #hooks {} declare 0 generic { int Memchan_Init (Tcl_Interp *interp) } declare 1 generic { int Memchan_SafeInit (Tcl_Interp *interp) } declare 2 generic { Tcl_Channel Memchan_CreateMemoryChannel(Tcl_Interp *interp, int initialSize) } declare 3 generic { Tcl_Channel Memchan_CreateFifoChannel(Tcl_Interp *interp) } declare 4 generic { void Memchan_CreateFifo2Channel(Tcl_Interp *interp, \ Tcl_Channel *aPtr, Tcl_Channel *bPtr) } declare 5 generic { Tcl_Channel Memchan_CreateZeroChannel(Tcl_Interp *interp) } declare 6 generic { Tcl_Channel Memchan_CreateNullChannel(Tcl_Interp *interp) } declare 7 generic { Tcl_Channel Memchan_CreateRandomChannel(Tcl_Interp *interp) } # ------------------------------------------------------------------------- # Local variables: # mode: tcl # End: Memchan2.3/generic/memchan.c0000644000175000017500000004412211500515232015354 0ustar sergeisergei/* * memchan.c -- * * Implementation of a memory channel. * * Copyright (C) 1996-1999 Andreas Kupries (a.kupries@westend.com) * All rights reserved. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: memchan.c,v 1.25 2010/12/08 18:01:52 andreas_kupries Exp $ */ #include /* SEEK_ constants */ #include "memchanInt.h" /* * Forward declarations of internal procedures. */ static int Close _ANSI_ARGS_((ClientData instanceData, Tcl_Interp *interp)); static int Input _ANSI_ARGS_((ClientData instanceData, char *buf, int toRead, int *errorCodePtr)); static int Output _ANSI_ARGS_((ClientData instanceData, CONST84 char *buf, int toWrite, int *errorCodePtr)); static int Seek _ANSI_ARGS_((ClientData instanceData, long offset, int mode, int *errorCodePtr)); static void WatchChannel _ANSI_ARGS_((ClientData instanceData, int mask)); static int GetOption _ANSI_ARGS_((ClientData instanceData, Tcl_Interp* interp, CONST84 char *optionName, Tcl_DString *dsPtr)); static void ChannelReady _ANSI_ARGS_((ClientData instanceData)); static int GetFile _ANSI_ARGS_((ClientData instanceData, int direction, ClientData* handlePtr)); static int BlockMode _ANSI_ARGS_((ClientData instanceData, int mode)); /* * This structure describes the channel type structure for in-memory channels: */ static Tcl_ChannelType channelType = { "memory", /* Type name. */ (Tcl_ChannelTypeVersion)BlockMode, /* Set blocking behaviour. */ Close, /* Close channel, clean instance data */ Input, /* Handle read request */ Output, /* Handle write request */ Seek, /* Move location of access point. NULL'able */ NULL, /* Set options. NULL'able */ GetOption, /* Get options. NULL'able */ WatchChannel, /* Initialize notifier */ #if GT81 GetFile, /* Get OS handle from the channel. */ NULL /* Close2Proc, not available, no partial close * possible */ #else GetFile /* Get OS handle from the channel. */ #endif }; /* * This structure describes the per-instance state of a in-memory channel. */ typedef struct ChannelInstance { unsigned long rwLoc; /* current location to read from (or write to). */ unsigned long allocated; /* number of allocated bytes */ unsigned long used; /* number of bytes stored in the channel. */ VOID* data; /* memory plane used to store the channel * contents */ Tcl_Channel chan; /* Backreference to generic channel information */ Tcl_TimerToken timer; /* Timer used to link the channel into the * notifier */ int interest; /* Interest in events as signaled by the user of * the channel */ } ChannelInstance; /* *---------------------------------------------------------------------- * * BlockMode -- * * Helper procedure to set blocking and nonblocking modes on a * memory channel. Invoked by generic IO level code. * * Results: * 0 if successful, errno when failed. * * Side effects: * Sets the device into blocking or non-blocking mode. * *---------------------------------------------------------------------- */ static int BlockMode (instanceData, mode) ClientData instanceData; int mode; { return 0; } /* *------------------------------------------------------* * * Close -- * * ------------------------------------------------* * This procedure is called from the generic IO * level to perform channel-type-specific cleanup * when an in-memory channel is closed. * ------------------------------------------------* * * Sideeffects: * Closes the device of the channel. * * Result: * 0 if successful, errno if failed. * *------------------------------------------------------* */ /* ARGSUSED */ static int Close (instanceData, interp) ClientData instanceData; /* The instance information of the channel to * close */ Tcl_Interp* interp; /* unused */ { ChannelInstance* chan; chan = (ChannelInstance*) instanceData; if (chan->data != (char*) NULL) { Tcl_Free ((char*) chan->data); } if (chan->timer != (Tcl_TimerToken) NULL) { Tcl_DeleteTimerHandler (chan->timer); } chan->timer = (Tcl_TimerToken) NULL; Tcl_Free ((char*) chan); return 0; } /* *------------------------------------------------------* * * Input -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to read input from an in-memory channel. * ------------------------------------------------* * * Sideeffects: * Reads input from the input device of the * channel. * * Result: * The number of bytes read is returned or * -1 on error. An output argument contains * a POSIX error code if an error occurs, or * zero. * *------------------------------------------------------* */ static int Input (instanceData, buf, toRead, errorCodePtr) ClientData instanceData; /* The channel to read from */ char* buf; /* Buffer to fill */ int toRead; /* Requested number of bytes */ int* errorCodePtr; /* Location of error flag */ { ChannelInstance* chan; if (toRead == 0) return 0; chan = (ChannelInstance*) instanceData; if ((chan->used - chan->rwLoc) <= 0) { /* Signal EOF to higher layer */ return 0; } if ((chan->rwLoc + toRead) > chan->used) { /* * Reading behind the last byte is not possible, * truncate the request. */ toRead = chan->used - chan->rwLoc; } if (toRead > 0) { memcpy ((VOID*) buf, (VOID*) ((char*) chan->data + chan->rwLoc), toRead); chan->rwLoc += toRead; } *errorCodePtr = 0; return toRead; } /* *------------------------------------------------------* * * Output -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to write output to a file channel. * ------------------------------------------------* * * Sideeffects: * Writes output on the output device of * the channel. * * Result: * The number of bytes written is returned * or -1 on error. An output argument * contains a POSIX error code if an error * occurred, or zero. * *------------------------------------------------------* */ static int Output (instanceData, buf, toWrite, errorCodePtr) ClientData instanceData; /* The channel to write to */ CONST84 char* buf; /* Data to be stored. */ int toWrite; /* Number of bytes to write. */ int* errorCodePtr; /* Location of error flag. */ { ChannelInstance* chan; if (toWrite == 0) return 0; chan = (ChannelInstance*) instanceData; if ((chan->rwLoc + toWrite) > chan->allocated) { /* * We are writing beyond the end of the allocated area, * it is necessary to extend it. Try to use a fixed * increment first and adjust if that is not enough. */ chan->allocated += INCREMENT; if ((chan->rwLoc + toWrite) > chan->allocated) { chan->allocated = chan->rwLoc + toWrite; } chan->data = Tcl_Realloc (chan->data, chan->allocated); } memcpy ((VOID*) ((char*) chan->data + chan->rwLoc), (VOID*) buf, toWrite); chan->rwLoc += toWrite; if (chan->rwLoc > chan->used) { chan->used = chan->rwLoc; } return toWrite; } /* *------------------------------------------------------* * * Seek -- * * ------------------------------------------------* * This procedure is called by the generic IO level * to move the access point in a in-memory channel. * ------------------------------------------------* * * Sideeffects: * Moves the location at which the channel * will be accessed in future operations. * * Result: * -1 if failed, the new position if * successful. An output argument contains * the POSIX error code if an error * occurred, or zero. * *------------------------------------------------------* */ static int Seek (instanceData, offset, mode, errorCodePtr) ClientData instanceData; /* The channel to manipulate */ long offset; /* Size of movement. */ int mode; /* How to move */ int* errorCodePtr; /* Location of error flag. */ { ChannelInstance* chan; long int newLocation; chan = (ChannelInstance*) instanceData; *errorCodePtr = 0; switch (mode) { case SEEK_SET: newLocation = offset; break; case SEEK_CUR: newLocation = chan->rwLoc + offset; break; case SEEK_END: /* SF Memchan Bug 556819 */ newLocation = chan->used + offset; break; default: Tcl_Panic ("illegal seek-mode specified"); return -1; } if ((newLocation < 0) || (newLocation > (long int) chan->used)) { *errorCodePtr = EINVAL; /* EBADRQC ?? */ return -1; } chan->rwLoc = newLocation; return newLocation; } /* *------------------------------------------------------* * * GetOption -- * * ------------------------------------------------* * Computes an option value for a in-memory channel, * or a list of all options and their values. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * A standard Tcl result. The value of the * specified option or a list of all options * and their values is returned in the * supplied DString. * *------------------------------------------------------* */ static int GetOption (instanceData, interp, optionName, dsPtr) ClientData instanceData; /* Channel to query */ Tcl_Interp* interp; /* Interpreter to leave error messages in */ CONST84 char* optionName; /* Name of reuqested option */ Tcl_DString* dsPtr; /* String to place the result into */ { /* * In-memory channels provide two channel type specific, * read-only, fconfigure options, "length", that obtains * the current number of bytes of data stored in the channel, * and "allocated", that obtains the current number of bytes * really allocated by the system for its buffers. */ ChannelInstance* chan; char buffer [50]; /* sufficient even for 64-bit quantities */ chan = (ChannelInstance*) instanceData; /* Known options: * -length: Number of bytes currently used by the buffers. * -allocated: Number of bytes currently allocated by the buffers. */ if ((optionName != (char*) NULL) && (0 != strcmp (optionName, "-length")) && (0 != strcmp (optionName, "-allocated"))) { Tcl_SetErrno (EINVAL); return Tcl_BadChannelOption (interp, optionName, "length allocated"); } if (optionName == (char*) NULL) { /* optionName == NULL * => a list of options and their values was requested, */ Tcl_DStringAppendElement (dsPtr, "-length"); LTOA (chan->used, buffer); Tcl_DStringAppendElement (dsPtr, buffer); Tcl_DStringAppendElement (dsPtr, "-allocated"); LTOA (chan->allocated, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } else if (0 == strcmp (optionName, "-length")) { LTOA (chan->used, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } else if (0 == strcmp (optionName, "-allocated")) { LTOA (chan->allocated, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } return TCL_OK; } /* *------------------------------------------------------* * * WatchChannel -- * * ------------------------------------------------* * Initialize the notifier to watch Tcl_Files from * this channel. * ------------------------------------------------* * * Sideeffects: * Sets up the notifier so that a future * event on the channel will be seen by Tcl. * * Result: * None. * *------------------------------------------------------* */ /* ARGSUSED */ static void WatchChannel (instanceData, mask) ClientData instanceData; /* Channel to watch */ int mask; /* Events of interest */ { /* * In-memory channels are not based on files. * They are always writable, and almost always readable. * We could call Tcl_NotifyChannel immediately, but this * would starve other sources, so a timer is set up instead. */ ChannelInstance* chan = (ChannelInstance*) instanceData; if (mask) { if (chan->timer == (Tcl_TimerToken) NULL) { chan->timer = Tcl_CreateTimerHandler (DELAY, ChannelReady, instanceData); } } else { if (chan->timer != (Tcl_TimerToken) NULL) { Tcl_DeleteTimerHandler (chan->timer); } chan->timer = (Tcl_TimerToken) NULL; } chan->interest = mask; } /* *------------------------------------------------------* * * ChannelReady -- * * ------------------------------------------------* * Called by the notifier (-> timer) to check whether * the channel is readable or writable. * ------------------------------------------------* * * Sideeffects: * As of 'Tcl_NotifyChannel'. * * Result: * None. * *------------------------------------------------------* */ static void ChannelReady (instanceData) ClientData instanceData; /* Channel to query */ { /* * In-memory channels are always writable (fileevent * writable) and they are readable if the current access * point is before the last byte contained in the channel. */ ChannelInstance* chan = (ChannelInstance*) instanceData; int mask = TCL_READABLE | TCL_WRITABLE; /* * Timer fired, our token is useless now. */ chan->timer = (Tcl_TimerToken) NULL; if (!chan->interest) { return; } if (chan->rwLoc > chan->used) mask &= ~TCL_READABLE; /* Tell Tcl about the possible events. * This will regenerate the timer too, via 'WatchChannel'. */ mask &= chan->interest; if (mask) { Tcl_NotifyChannel (chan->chan, mask); } else { chan->timer = Tcl_CreateTimerHandler (DELAY, ChannelReady, instanceData); } } /* *------------------------------------------------------* * * GetFile -- * * ------------------------------------------------* * Called from Tcl_GetChannelHandle to retrieve * OS handles from inside a in-memory channel. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * The appropriate OS handle or NULL if not * present. * *------------------------------------------------------* */ static int GetFile (instanceData, direction, handlePtr) ClientData instanceData; /* Channel to query */ int direction; /* Direction of interest */ ClientData* handlePtr; /* Space to the handle into */ { /* * In-memory channels are not based on files. */ /* *handlePtr = (ClientData) NULL; */ return TCL_ERROR; } /* * ---------------------------------------------------------------------- * * Memchan_CreateMemoryChannel - * * Creates a new 'memchan' channel. * * Results: * Returns the newly minted channel * * Side effects: * A new 'memchan' channel is registered in the current interpreter. * * ---------------------------------------------------------------------- */ Tcl_Channel Memchan_CreateMemoryChannel(interp, initialSize) Tcl_Interp *interp; /* current interpreter */ int initialSize; /* buffer size to pre-allocate */ { Tcl_Obj* channelHandle; Tcl_Channel chan; ChannelInstance* instance; instance = (ChannelInstance*) Tcl_Alloc (sizeof (ChannelInstance)); instance->rwLoc = 0; instance->used = 0; instance->allocated = initialSize; if (initialSize > 0) { instance->data = (VOID*) Tcl_Alloc (initialSize); } else { instance->data = (VOID*) NULL; } channelHandle = MemchanGenHandle ("mem"); chan = Tcl_CreateChannel (&channelType, Tcl_GetStringFromObj (channelHandle, NULL), (ClientData) instance, TCL_READABLE | TCL_WRITABLE); instance->chan = chan; instance->timer = (Tcl_TimerToken) NULL; instance->interest = 0; Tcl_RegisterChannel (interp, chan); Tcl_SetChannelOption (interp, chan, "-buffering", "none"); Tcl_SetChannelOption (interp, chan, "-blocking", "0"); return chan; } /* *------------------------------------------------------* * * MemchanCmd -- * * ------------------------------------------------* * This procedure realizes the 'memchan' command. * See the manpages for details on what it does. * ------------------------------------------------* * * Sideeffects: * See the user documentation. * * Result: * A standard Tcl result. * *------------------------------------------------------* */ /* ARGSUSED */ int MemchanCmd (notUsed, interp, objc, objv) ClientData notUsed; /* Not used. */ Tcl_Interp* interp; /* Current interpreter. */ int objc; /* Number of arguments. */ Tcl_Obj*CONST objv[]; /* Argument objects. */ { Tcl_Channel chan; int initialSize = 0; if ((objc != 1) && (objc != 3)) { goto argerr; } else if (objc == 3) { int len; char* buf = Tcl_GetStringFromObj (objv [1], &len); if (0 != strncmp (buf, "-initial-size", len)) { goto argerr; } else if (TCL_OK != Tcl_GetIntFromObj (interp, objv [2], &initialSize)) { goto argerr; } } chan = Memchan_CreateMemoryChannel(interp, initialSize); Tcl_AppendResult(interp, Tcl_GetChannelName(chan), (char *)NULL); return TCL_OK; argerr: Tcl_AppendResult (interp, "wrong # args: should be \"memchan ?-initial-size number?\"", (char*) NULL); return TCL_ERROR; } Memchan2.3/generic/init.c0000644000175000017500000000726010251627517014725 0ustar sergeisergei/* -*- c -*- * init.c -- * * Implements the C level procedures handling the initialization of * this package * * * Copyright (c) 1996-1999 Andreas Kupries (a.kupries@westend.com) * Copyright (c) 2000-2005 Andreas Kupries (akupries@shaw.ca) * All rights reserved. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: init.c,v 1.11 2005/06/08 17:47:59 andreas_kupries Exp $ */ /*#include */ #include "memchanInt.h" #include "buf.h" extern BufStubs bufStubs; char * Buf_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, CONST char *version, int exact)); #ifndef PACKAGE_VERSION #define PACKAGE_VERSION MEMCHAN_VERSION #endif #ifndef PACKAGE_NAME #define PACKAGE_NAME "Memchan" #endif /* *------------------------------------------------------* * * Memchan_Init -- * * ------------------------------------------------* * Standard procedure required by 'load'. * Initializes this extension. * ------------------------------------------------* * * Sideeffects: * As of 'Tcl_CreateCommand'. * * Result: * A standard Tcl error code. * *------------------------------------------------------* */ int Memchan_Init (interp) Tcl_Interp* interp; { #if GT81 if (Tcl_InitStubs (interp, "8.1", 0) == NULL) { return TCL_ERROR; } #endif Tcl_CreateObjCommand (interp, "memchan", &MemchanCmd, (ClientData) NULL, (Tcl_CmdDeleteProc*) NULL); Tcl_CreateObjCommand (interp, "fifo", &MemchanFifoCmd, (ClientData) NULL, (Tcl_CmdDeleteProc*) NULL); Tcl_CreateObjCommand (interp, "fifo2", &MemchanFifo2Cmd, (ClientData) NULL, (Tcl_CmdDeleteProc*) NULL); Tcl_CreateObjCommand (interp, "null", &MemchanNullCmd, (ClientData) NULL, (Tcl_CmdDeleteProc*) NULL); Tcl_CreateObjCommand (interp, "random", &MemchanRandomCmd, (ClientData) NULL, (Tcl_CmdDeleteProc*) NULL); Tcl_CreateObjCommand (interp, "zero", &MemchanZeroCmd, (ClientData) NULL, (Tcl_CmdDeleteProc*) NULL); #if GT81 /* register extension and its interfaces as now available package */ Tcl_PkgProvideEx (interp, PACKAGE_NAME, PACKAGE_VERSION, (ClientData) &bufStubs); #ifndef __WIN32__ Buf_InitStubs (interp, PACKAGE_VERSION, 0); #endif #else /* register memory channels as available package */ Tcl_PkgProvide (interp, PACKAGE_NAME, PACKAGE_VERSION); #endif Buf_Init (interp); return TCL_OK; } /* *------------------------------------------------------* * * Memchan_SafeInit -- * * ------------------------------------------------* * Standard procedure required by 'load'. * Initializes this extension for a safe interpreter. * ------------------------------------------------* * * Sideeffects: * As of 'Memchan_Init' * * Result: * A standard Tcl error code. * *------------------------------------------------------* */ int Memchan_SafeInit (interp) Tcl_Interp* interp; { return Memchan_Init (interp); } Memchan2.3/generic/fifo.c0000644000175000017500000003671110144247204014700 0ustar sergeisergei/* * fifo.c -- * * Implementation of a memory channel having fifo behaviour. * * Copyright (C) 1996-1999 Andreas Kupries (a.kupries@westend.com) * All rights reserved. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: fifo.c,v 1.14 2004/11/09 23:11:00 patthoyts Exp $ */ #include "memchanInt.h" #include "buf.h" /* * Forward declarations of internal procedures. */ static int Close _ANSI_ARGS_((ClientData instanceData, Tcl_Interp *interp)); static int Input _ANSI_ARGS_((ClientData instanceData, char *buf, int toRead, int *errorCodePtr)); static int Output _ANSI_ARGS_((ClientData instanceData, CONST84 char *buf, int toWrite, int *errorCodePtr)); static void WatchChannel _ANSI_ARGS_((ClientData instanceData, int mask)); static int GetOption _ANSI_ARGS_((ClientData instanceData, Tcl_Interp* interp, CONST84 char *optionName, Tcl_DString *dsPtr)); static void ChannelReady _ANSI_ARGS_((ClientData instanceData)); static int GetFile _ANSI_ARGS_((ClientData instanceData, int direction, ClientData* handlePtr)); static int BlockMode _ANSI_ARGS_((ClientData instanceData, int mode)); /* * This structure describes the channel type structure for in-memory channels: * Fifo are not seekable. They have no writable options, but a readable. */ static Tcl_ChannelType channelType = { "memory/fifo", /* Type name. */ (Tcl_ChannelTypeVersion)BlockMode, /* Set blocking behaviour. */ Close, /* Close channel, clean instance data */ Input, /* Handle read request */ Output, /* Handle write request */ NULL, /* Move location of access point. NULL'able */ NULL, /* Set options. NULL'able */ GetOption, /* Get options. NULL'able */ WatchChannel, /* Initialize notifier */ #if GT81 GetFile, /* Get OS handle from the channel. */ NULL /* Close2Proc, not available, no partial close * possible */ #else GetFile /* Get OS handle from the channel. */ #endif }; /* * This structure describes the per-instance state of a in-memory fifo channel. */ typedef struct ChannelInstance { Tcl_Channel chan; /* Backreference to generic channel information */ long int length; /* Total number of bytes in the channel */ Buf_BufferQueue queue; /* Queue of buffers holding the information in this * channel. */ Tcl_TimerToken timer; /* Timer used to link the channel into the * notifier. */ int interest; /* Interest in events as signaled by the user of * the channel */ #if 0 #if (GT81) && defined (TCL_THREADS) Tcl_Mutex lock; /* Semaphor to handle thread-spanning access to this * fifo. */ #endif #endif /* 0 */ } ChannelInstance; /* Macro to check a fifo channel for emptiness. */ #define FIFO_EMPTY(c) (c->length == 0) /* *---------------------------------------------------------------------- * * BlockMode -- * * Helper procedure to set blocking and nonblocking modes on a * memory channel. Invoked by generic IO level code. * * Results: * 0 if successful, errno when failed. * * Side effects: * Sets the device into blocking or non-blocking mode. * *---------------------------------------------------------------------- */ static int BlockMode (instanceData, mode) ClientData instanceData; int mode; { return 0; } /* *------------------------------------------------------* * * Close -- * * ------------------------------------------------* * This procedure is called from the generic IO * level to perform channel-type-specific cleanup * when an in-memory fifo channel is closed. * ------------------------------------------------* * * Sideeffects: * Closes the device of the channel. * * Result: * 0 if successful, errno if failed. * *------------------------------------------------------* */ /* ARGSUSED */ static int Close (instanceData, interp) ClientData instanceData; /* The instance information of the channel to * close */ Tcl_Interp* interp; /* unused */ { ChannelInstance* chan; chan = (ChannelInstance*) instanceData; /* Release the allocated memory. We can be sure that this is done * only after the last user closed the channel, i.e. there will be * no thread-spanning access ! */ if (chan->timer != (Tcl_TimerToken) NULL) { Tcl_DeleteTimerHandler (chan->timer); } chan->timer = (Tcl_TimerToken) NULL; Buf_FreeQueue (chan->queue); Tcl_Free ((char*) chan); return 0; } /* *------------------------------------------------------* * * Input -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to read input from an in-memory fifo channel. * ------------------------------------------------* * * Sideeffects: * Reads input from the input device of the * channel. * * Result: * The number of bytes read is returned or * -1 on error. An output argument contains * a POSIX error code if an error occurs, or * zero. * *------------------------------------------------------* */ static int Input (instanceData, buf, toRead, errorCodePtr) ClientData instanceData; /* The channel to read from */ char* buf; /* Buffer to fill */ int toRead; /* Requested number of bytes */ int* errorCodePtr; /* Location of error flag */ { ChannelInstance* chan; if (toRead == 0) { return 0; } chan = (ChannelInstance*) instanceData; if (chan->length == 0) { /* Signal EOF to higher layer */ return 0; } toRead = Buf_QueueRead (chan->queue, buf, toRead); chan->length -= toRead; *errorCodePtr = 0; return toRead; } /* *------------------------------------------------------* * * Output -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to write output to a file channel. * ------------------------------------------------* * * Sideeffects: * Writes output on the output device of * the channel. * * Result: * The number of bytes written is returned * or -1 on error. An output argument * contains a POSIX error code if an error * occurred, or zero. * *------------------------------------------------------* */ static int Output (instanceData, buf, toWrite, errorCodePtr) ClientData instanceData; /* The channel to write to */ CONST84 char* buf; /* Data to be stored. */ int toWrite; /* Number of bytes to write. */ int* errorCodePtr; /* Location of error flag. */ { ChannelInstance* chan; if (toWrite == 0) { return 0; } chan = (ChannelInstance*) instanceData; toWrite = Buf_QueueWrite (chan->queue, buf, toWrite); chan->length += toWrite; return toWrite; } /* *------------------------------------------------------* * * GetOption -- * * ------------------------------------------------* * Computes an option value for a in-memory fifo * channel, or a list of all options and their values. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * A standard Tcl result. The value of the * specified option or a list of all options * and their values is returned in the * supplied DString. * *------------------------------------------------------* */ static int GetOption (instanceData, interp, optionName, dsPtr) ClientData instanceData; /* Channel to query */ Tcl_Interp* interp; /* Interpreter to leave error messages in */ CONST84 char* optionName; /* Name of reuqested option */ Tcl_DString* dsPtr; /* String to place the result into */ { /* * In-memory fifo channels provide two channel type specific, * read-only, fconfigure options, "length", that obtains * the current number of bytes of data stored in the channel, * and "allocated", that obtains the current number of bytes * really allocated by the system for its buffers. */ ChannelInstance* chan; char buffer [50]; /* sufficient even for 64-bit quantities */ chan = (ChannelInstance*) instanceData; /* Known options: * -length: Number of bytes currently used by the buffers. * -allocated: Number of bytes currently allocated by the buffers. */ if ((optionName != (char*) NULL) && (0 != strcmp (optionName, "-length")) && (0 != strcmp (optionName, "-allocated"))) { Tcl_SetErrno (EINVAL); return Tcl_BadChannelOption (interp, optionName, "length allocated"); } if (optionName == (char*) NULL) { /* * optionName == NULL * => a list of options and their values was requested, * so append the optionName before the retrieved value. */ Tcl_DStringAppendElement (dsPtr, "-length"); LTOA (chan->length, buffer); Tcl_DStringAppendElement (dsPtr, buffer); Tcl_DStringAppendElement (dsPtr, "-allocated"); LTOA (chan->length, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } else if (0 == strcmp (optionName, "-length")) { LTOA (chan->length, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } else if (0 == strcmp (optionName, "-allocated")) { LTOA (chan->length, buffer); Tcl_DStringAppendElement (dsPtr, buffer); } return TCL_OK; } /* *------------------------------------------------------* * * WatchChannel -- * * ------------------------------------------------* * Initialize the notifier to watch Tcl_Files from * this channel. * ------------------------------------------------* * * Sideeffects: * Sets up the notifier so that a future * event on the channel will be seen by Tcl. * * Result: * None. * *------------------------------------------------------* */ /* ARGSUSED */ static void WatchChannel (instanceData, mask) ClientData instanceData; /* Channel to watch */ int mask; /* Events of interest */ { /* * In-memory fifo channels are not based on files. * They are always writable, and almost always readable. * We could call Tcl_NotifyChannel immediately, but this * would starve other sources, so a timer is set up instead. */ ChannelInstance* chan = (ChannelInstance*) instanceData; if (mask) { if (chan->timer == (Tcl_TimerToken) NULL) { chan->timer = Tcl_CreateTimerHandler (DELAY, ChannelReady, instanceData); } } else { if (chan->timer != (Tcl_TimerToken) NULL) { Tcl_DeleteTimerHandler (chan->timer); } chan->timer = (Tcl_TimerToken) NULL; } chan->interest = mask; } /* *------------------------------------------------------* * * ChannelReady -- * * ------------------------------------------------* * Called by the notifier (-> timer) to check whether * the channel is readable or writable. * ------------------------------------------------* * * Sideeffects: * As of 'Tcl_NotifyChannel'. * * Result: * None. * *------------------------------------------------------* */ static void ChannelReady (instanceData) ClientData instanceData; /* Channel to query */ { /* * In-memory fifo channels are always writable (fileevent * writable) and they are readable if they are not empty. */ ChannelInstance* chan = (ChannelInstance*) instanceData; int mask = TCL_READABLE | TCL_WRITABLE; /* * Timer fired, our token is useless now. */ chan->timer = (Tcl_TimerToken) NULL; if (!chan->interest) { return; } if (! FIFO_EMPTY (chan)) { mask &= ~TCL_READABLE; } /* Tell Tcl about the possible events. * This will regenerate the timer too, via 'WatchChannel'. */ mask &= chan->interest; if (mask) { Tcl_NotifyChannel (chan->chan, mask); } else { chan->timer = Tcl_CreateTimerHandler (DELAY, ChannelReady, instanceData); } } /* *------------------------------------------------------* * * GetFile -- * * ------------------------------------------------* * Called from Tcl_GetChannelHandle to retrieve * OS handles from inside a in-memory fifo channel. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * The appropriate OS handle or NULL if not * present. * *------------------------------------------------------* */ static int GetFile (instanceData, direction, handlePtr) ClientData instanceData; /* Channel to query */ int direction; /* Direction of interest */ ClientData* handlePtr; /* Space to the handle into */ { /* * In-memory fifo channels are not based on files. */ /* *handlePtr = (ClientData) NULL; */ return TCL_ERROR; } /* * ---------------------------------------------------------------------- * * Memchan_CreateFifoChannel - * * Create a memchan 'fifo' channel. * * Results: * Returns the newly minted channel * * Side effects: * A fifo channel is registered in the current interp. * * ---------------------------------------------------------------------- */ Tcl_Channel Memchan_CreateFifoChannel(interp) Tcl_Interp *interp; /* the current interp */ { Tcl_Obj* channelHandle; Tcl_Channel chan; ChannelInstance* instance; instance = (ChannelInstance*) Tcl_Alloc (sizeof (ChannelInstance)); instance->length = 0; instance->queue = Buf_NewQueue (); channelHandle = MemchanGenHandle ("fifo"); chan = Tcl_CreateChannel (&channelType, Tcl_GetStringFromObj (channelHandle, NULL), (ClientData) instance, TCL_READABLE | TCL_WRITABLE); instance->chan = chan; instance->timer = (Tcl_TimerToken) NULL; instance->interest = 0; Tcl_RegisterChannel (interp, chan); Tcl_SetChannelOption (interp, chan, "-buffering", "none"); Tcl_SetChannelOption (interp, chan, "-blocking", "0"); return chan; } /* *------------------------------------------------------* * * MemchanFifoCmd -- * * ------------------------------------------------* * This procedure realizes the 'fifo' command. * See the manpages for details on what it does. * ------------------------------------------------* * * Sideeffects: * See the user documentation. * * Result: * A standard Tcl result. * *------------------------------------------------------* */ /* ARGSUSED */ int MemchanFifoCmd (notUsed, interp, objc, objv) ClientData notUsed; /* Not used. */ Tcl_Interp* interp; /* Current interpreter. */ int objc; /* Number of arguments. */ Tcl_Obj*CONST objv[]; /* Argument objects. */ { Tcl_Channel chan; if (objc != 1) { Tcl_AppendResult (interp, "wrong # args: should be \"fifo\"", (char*) NULL); return TCL_ERROR; } chan = Memchan_CreateFifoChannel(interp); Tcl_AppendResult(interp, Tcl_GetChannelName(chan), (char *)NULL); return TCL_OK; } Memchan2.3/generic/fifo2.c0000644000175000017500000006755010144255645014777 0ustar sergeisergei/* * fifo2.c -- * * Implementation of a bi-directional in-memory fifo. * * Copyright (C) 2000 Andreas Kupries (a.kupries@westend.com) * All rights reserved. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: fifo2.c,v 1.8 2004/11/10 00:07:01 patthoyts Exp $ */ #include "memchanInt.h" #include "buf.h" #if ((TCL_THREADS) && (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION == 2)) #error "The fifo2 is not supported with threaded tcl 8.2." /* * Tcl 8.2 supports Tcl_Mutexes but doesn't include the Tcl_MutexFinalize * command. This means that we will leak a mutex on every close of a fifo2 * channel pair in this version of tcl -- ONLY THREADED TCL. * * If you _really_ want to build memchan on threaded tcl 8.2 then comment * out the #error line above and you can get these two stub functions * which avoids the issue while permitting the remainder of memchan * to be built. */ void Memchan_CreateFifo2Channel(interp, aPtr, bPtr) Tcl_Interp *interp; /* the current interp */ Tcl_Channel *aPtr; /* pointer to channel A */ Tcl_Channel *bPtr; /* pointer to channel B */ { Tcl_SetResult(interp, "fifo2 is not supported in threaded tcl 8.2", TCL_STATIC); return; } int MemchanFifo2Cmd (notUsed, interp, objc, objv) ClientData notUsed; /* Not used. */ Tcl_Interp* interp; /* Current interpreter. */ int objc; /* Number of arguments. */ Tcl_Obj*CONST objv[]; /* Argument objects. */ { Tcl_SetResult(interp, "fifo2 is not supported in threaded tcl 8.2", TCL_STATIC); return TCL_ERROR; } #else /* * Forward declarations of internal procedures. */ static int Close _ANSI_ARGS_((ClientData instanceData, Tcl_Interp *interp)); static int Input _ANSI_ARGS_((ClientData instanceData, char *buf, int toRead, int *errorCodePtr)); static int Output _ANSI_ARGS_((ClientData instanceData, CONST84 char *buf, int toWrite, int *errorCodePtr)); static void WatchChannel _ANSI_ARGS_((ClientData instanceData, int mask)); static int GetOption _ANSI_ARGS_((ClientData instanceData, Tcl_Interp* interp, CONST84 char *optionName, Tcl_DString *dsPtr)); static void ChannelReady _ANSI_ARGS_((ClientData instanceData)); static int GetFile _ANSI_ARGS_((ClientData instanceData, int direction, ClientData* handlePtr)); static int BlockMode _ANSI_ARGS_((ClientData instanceData, int mode)); /* * This structure describes the channel type structure for in-memory channels: * Fifo are not seekable. They have no writable options, but a readable. */ static Tcl_ChannelType channelType = { "memory/fifo2", /* Type name. */ (Tcl_ChannelTypeVersion)BlockMode, /* Set blocking behaviour. */ Close, /* Close channel, clean instance data */ Input, /* Handle read request */ Output, /* Handle write request */ NULL, /* Move location of access point. NULL'able */ NULL, /* Set options. NULL'able */ GetOption, /* Get options. NULL'able */ WatchChannel, /* Initialize notifier */ #if GT81 GetFile, /* Get OS handle from the channel. */ NULL /* Close2Proc, not available, no partial close * possible */ #else GetFile /* Get OS handle from the channel. */ #endif }; /* * General structure and behaviour of a bi-directional fifo with 2 * channels as its access-ports: * * ---------- -------- -------- ---------- * |Channel |<---|Fifo |--------------->|Fifo |--->|Channel | * | |--->|Inst. | ---------- |Inst. |<---| | * | | | |-->| Queue> |<--| | | | * ---------- | I | ---------- | II | ---------- * | | ---------- | | * | |-->| |Mutx|<----| | * -------- ------ -------- * * Communication between the two instances: I would have liked to use * the event queues of the core (and the Tcl_ThreadQueueEvent, * Tcl_ThreadAlert combo), but I cannot. To use them I have to know * the id of the thread a channel resides in. This information is * neither available nor are channels able to track their * location. The alternative is to directly access both structures and * to use mutexes for protection. Another alternative would be to use * an additional set of queues for signaling. * * * ----------------------------------------------------------------- * NOTE -- TIP #10 was accepted for Tcl 8.4. This means that the above * information is available for this version of Tcl, and beyond. Now * use it. * ----------------------------------------------------------------- * * * Whenever one of the channels has to do something it uses the mutex * to enforce exclusion of the other side. This enables it to * manipulate both sides without fear of inconsistency. * * To enable the true generation of fileevents both instances keep * track of the state of queues (empty, not empty flagging) and notify * each other. Wether the notification will then cause the execution * of fileevents then depends on the interest set by the user of the * channels. Timers are set to check the flags periodically. * * Rules (View of Instance I). * * Write to Queue>. If the queue was empty before send a * 'readable' event. * * If receiving a 'readable' event check the size of the queue * . If not empty and there is interest propagate the event * via Tcl_NotifyChannel. * * [xx] * If a channel closes it marks its own instance structure as dead and * notifies the other side. It does not remove its instance * structure. This is done only after the other side closes * too. Because of the global mutex the channel cannot find a dead * structure on the other side it doesn't know about before. A channel * already knowing that the other side is dead will do no * notifications but proceed immediately to the stage of destroying * all structures associated to the fifos. */ typedef struct ChannelLock { #if (GT81) Tcl_Mutex lock; /* Global lock for both structures */ #else long dummy; #endif } ChannelLock; /* * This structure describes the per-instance state of an in-memory * fifo channel. Two such structures make up one bi-directional fifo. */ typedef struct ChannelInstance { Tcl_Channel chan; /* Backreference to generic channel * information */ struct ChannelInstance* otherPtr; /* Reference to the other side of the * bi-directional fifo. */ int dead; /* 0 - Channel is active. * 1 - Channel is dead and event in * flight to the other side. * 2 - Channel is dead two times, * an event from the other side * was here earlier. */ int eof; /* 0 - Other side is active * 1 - Other side is dead. */ Tcl_TimerToken timer; /* Timer used to link the channel into * the notifier. */ int interest; /* Interest in events as signaled by the * user of the channel */ Buf_BufferQueue wQueue; /* Queue of buffers. Holds the information * written to the other side. Thread safe * by itself. "Queue >" in the diagram * above. */ Buf_BufferQueue rQueue; /* Queue of buffers. Holds the information * written by the other side. Thread safe * by itself. "Queue <" in the diagram * above. */ ChannelLock* lock; /* Global lock used by both sides to * exclude the other. */ } ChannelInstance; /* Definitions for DEADness and event types. */ #define FIFO_ALIVE (0) /* Channel is not dead */ #define FIFO_DEAD (1) /* Channel is dead */ /* Macros to simplify the code below (no #ifdef's for the locking * functionality) */ #if (GT81) #define MLOCK(chan) Tcl_MutexLock (&((chan)->lock->lock)) #define MUNLK(chan) Tcl_MutexUnlock (&((chan)->lock->lock)) #if (TCL_MAJOR_VERSION >= 8) && (TCL_MINOR_VERSION == 2) # define MFIN(chan) #else # define MFIN(chan) Tcl_MutexFinalize (&((chan)->lock->lock)) #endif #else #define MLOCK(chan) #define MUNLK(chan) #define MFIN(chan) #endif /* *---------------------------------------------------------------------- * * BlockMode -- * * Helper procedure to set blocking and nonblocking modes on a * memory channel. Invoked by generic IO level code. * * Results: * 0 if successful, errno when failed. * * Side effects: * Sets the device into blocking or non-blocking mode. * *---------------------------------------------------------------------- */ static int BlockMode (instanceData, mode) ClientData instanceData; int mode; { return 0; } /* *------------------------------------------------------* * * Close -- * * ------------------------------------------------* * This procedure is called from the generic IO * level to perform channel-type-specific cleanup * when an in-memory fifo channel is closed. * ------------------------------------------------* * * Sideeffects: * Closes the device of the channel. * * Result: * 0 if successful, errno if failed. * *------------------------------------------------------* */ /* ARGSUSED */ static int Close (instanceData, interp) ClientData instanceData; /* The instance information * of the channel to close */ Tcl_Interp* interp; /* unused */ { /* See [xx] fro a description of what is happening here. */ ChannelInstance* chan = (ChannelInstance*) instanceData; /* * Get the lock and look at the state of both sides. If the other * side is not dead just mark us as dead and return after releasing * the lock. If the other side was dead we are responsible for * cleaning up both sides. As we know the other side cannot anything * anymore we can release the lock earlier without fear. This is * even necessary to allow is to remove it altogether. * * A timer polling the instance has to be removed immediately. */ MLOCK (chan); if (chan->timer != (Tcl_TimerToken) NULL) { Tcl_DeleteTimerHandler (chan->timer); chan->timer = (Tcl_TimerToken) NULL; } if (!chan->eof) { /* * Other side still living, mark us as dead on both sides, then * return without doing anything. It is responsibility of the * surviving side to clean up after us. */ chan->dead = FIFO_DEAD; chan->otherPtr->eof = 1; MUNLK (chan); return 0; } /* * The other side is alread dead. Proceed to remove all the * associated structures on both sides. Begin with the lock and the * queues. * * Unlocking the mutex is no problem, as the other is dead, i.e. not * doing anything anymore. */ MUNLK (chan); MFIN (chan); chan->otherPtr->lock = (ChannelLock*) NULL; Tcl_Free ((char*) chan->lock); chan->lock = (ChannelLock*) NULL; chan->otherPtr->rQueue = (Buf_BufferQueue) NULL; chan->otherPtr->wQueue = (Buf_BufferQueue) NULL; Buf_FreeQueue (chan->rQueue); Buf_FreeQueue (chan->wQueue); chan->rQueue = (Buf_BufferQueue) NULL; chan->wQueue = (Buf_BufferQueue) NULL; chan->otherPtr->otherPtr = (ChannelInstance*) NULL; Tcl_Free ((char*) chan->otherPtr); chan->otherPtr = (ChannelInstance*) NULL; Tcl_Free ((char*) chan); return 0; } /* *------------------------------------------------------* * * Input -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to read input from an in-memory fifo channel. * ------------------------------------------------* * * Sideeffects: * Reads input from the input device of the * channel. * * Result: * The number of bytes read is returned or * -1 on error. An output argument contains * a POSIX error code if an error occurs, or * zero. * *------------------------------------------------------* */ static int Input (instanceData, buf, toRead, errorCodePtr) ClientData instanceData; /* The channel to read from */ char* buf; /* Buffer to fill */ int toRead; /* Requested number of bytes */ int* errorCodePtr; /* Location of error flag */ { ChannelInstance* chan = (ChannelInstance*) instanceData; int result = 0; MLOCK (chan); if (chan->dead) { /* single exception to 'goto done'. Required because the * mutex has to be unlocked before signaling the error. */ MUNLK (chan); Tcl_Panic ("Trying to read from a dead channel"); return 0; } if (toRead == 0) { result = 0; goto done; } /* The queue is thread-safe, no problem in simply * accessing it for the read. */ toRead = Buf_QueueRead (chan->rQueue, buf, toRead); *errorCodePtr = 0; if (toRead == 0) { /* No data available. If no eof came from the other side it * is only temporarily, so we signal this to the caller via * EWOULDBLOCK. */ if (!chan->eof) { *errorCodePtr = EWOULDBLOCK; result = -1; goto done; } } result = toRead; done: MUNLK (chan); return result; } /* *------------------------------------------------------* * * Output -- * * ------------------------------------------------* * This procedure is invoked from the generic IO * level to write output to a file channel. * ------------------------------------------------* * * Sideeffects: * Writes output on the output device of * the channel. * * Result: * The number of bytes written is returned * or -1 on error. An output argument * contains a POSIX error code if an error * occurred, or zero. * *------------------------------------------------------* */ static int Output (instanceData, buf, toWrite, errorCodePtr) ClientData instanceData; /* The channel to write to */ CONST84 char* buf; /* Data to be stored. */ int toWrite; /* Number of bytes to write. */ int* errorCodePtr; /* Location of error flag. */ { ChannelInstance* chan = (ChannelInstance*) instanceData; int result; MLOCK (chan); if (chan->dead) { /* Single exception to 'goto done'. Required because the * mutex has to be unlocked before signaling the error. */ MUNLK (chan); Tcl_Panic ("Trying to write to a dead channel"); return 0; } if (toWrite == 0) { result = 0; goto done; } /* The queue is thread-safe, no problem in simply * accessing it for the write. */ /* * If the other side is dead there is no point in actually writing * to it anymore. But pretend that we did it anyway. */ if (!chan->eof) { toWrite = Buf_QueueWrite (chan->wQueue, buf, toWrite); } result = toWrite; done: MUNLK (chan); return result; } /* *------------------------------------------------------* * * GetOption -- * * ------------------------------------------------* * Computes an option value for a in-memory fifo * channel, or a list of all options and their values. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * A standard Tcl result. The value of the * specified option or a list of all options * and their values is returned in the * supplied DString. * *------------------------------------------------------* */ static int GetOption (instanceData, interp, optionName, dsPtr) ClientData instanceData; /* Channel to query */ Tcl_Interp* interp; /* Interpreter to leave error messages in */ CONST84 char* optionName; /* Name of reuqested option */ Tcl_DString* dsPtr; /* String to place the result into */ { /* * In-memory fifo channels provide two channel type specific, * read-only, fconfigure options. * * "rlength" obtains the number of bytes currently stored * and waiting to be read by us. * "wlength" obtains the number of bytes currently stored * and waiting to be read by the other side. */ ChannelInstance* chan = (ChannelInstance*) instanceData; char buffer [50]; /* sufficient even for 64-bit quantities */ MLOCK (chan); if (chan->dead) { /* Single exception to 'goto done'. Required because the * mutex has to be unlocked before signaling the error. */ MUNLK (chan); Tcl_Panic ("Trying to get options from a dead channel"); return TCL_ERROR; } /* Known options: * -rlength: Number of bytes waiting for consumation by us. * -wlength: Number of bytes waiting for consumation by the other side. */ if ((optionName != (char*) NULL) && (0 != strcmp (optionName, "-rlength")) && (0 != strcmp (optionName, "-wlength"))) { Tcl_SetErrno (EINVAL); MUNLK (chan); return Tcl_BadChannelOption (interp, optionName, "rlength wlength"); } if (optionName == (char*) NULL) { /* * optionName == NULL * => a list of options and their values was requested, * so append the optionName before the retrieved value. */ Tcl_DStringAppendElement (dsPtr, "-rlength"); LTOA (Buf_QueueSize (chan->rQueue), buffer); Tcl_DStringAppendElement (dsPtr, buffer); Tcl_DStringAppendElement (dsPtr, "-wlength"); LTOA (Buf_QueueSize (chan->wQueue), buffer); Tcl_DStringAppendElement (dsPtr, buffer); } else if (0 == strcmp (optionName, "-rlength")) { LTOA (Buf_QueueSize (chan->rQueue), buffer); Tcl_DStringAppendElement (dsPtr, buffer); } else if (0 == strcmp (optionName, "-wlength")) { Tcl_DStringAppendElement (dsPtr, "-wlength"); LTOA (Buf_QueueSize (chan->wQueue), buffer); Tcl_DStringAppendElement (dsPtr, buffer); } MUNLK (chan); return TCL_OK; } /* *------------------------------------------------------* * * WatchChannel -- * * ------------------------------------------------* * Initialize the notifier to watch Tcl_Files from * this channel. * ------------------------------------------------* * * Sideeffects: * Sets up the notifier so that a future * event on the channel will be seen by Tcl. * * Result: * None. * *------------------------------------------------------* */ /* ARGSUSED */ static void WatchChannel (instanceData, mask) ClientData instanceData; /* Channel to watch */ int mask; /* Events of interest */ { /* * In-memory fifo channels are not based on files. * They are almost always writable, and almost always readable. * We could call Tcl_NotifyChannel immediately, but this * would starve other sources, so a timer is set up instead. */ ChannelInstance* chan = (ChannelInstance*) instanceData; MLOCK (chan); if (chan->dead) { MUNLK (chan); Tcl_Panic ("Trying to watch a dead channel"); return; } /* Check the interest of the caller against the state of the * channel. There is no need to start a timer if no events * are possible. */ if (chan->eof) { /* The other side is dead. This means that our side will * never be writable. And if our read queue is empty we * are unreadable too. There is no point in trying to * generate events nevertheless. */ mask &= ~TCL_WRITABLE; /**if (Buf_QueueSize (chan->rQueue) == 0) { mask &= ~TCL_READABLE; }**/ } if (mask) { if (chan->timer == (Tcl_TimerToken) NULL) { chan->timer = Tcl_CreateTimerHandler (DELAY, ChannelReady, instanceData); } } else { if (chan->timer != (Tcl_TimerToken) NULL) { Tcl_DeleteTimerHandler (chan->timer); chan->timer = (Tcl_TimerToken) NULL; } } chan->interest = mask; MUNLK (chan); } /* *------------------------------------------------------* * * ChannelReady -- * * ------------------------------------------------* * Called by the notifier (-> timer) to check whether * the channel is readable or writable. * ------------------------------------------------* * * Sideeffects: * As of 'Tcl_NotifyChannel'. * * Result: * None. * *------------------------------------------------------* */ static void ChannelReady (instanceData) ClientData instanceData; /* Channel to query */ { /* * In-memory fifo channels are almost always writable (fileevent * writable) and they are readable if they are not empty. */ ChannelInstance* chan = (ChannelInstance*) instanceData; int events; MLOCK (chan); /* * Compute two interest masks from the current state: The first * tells us, wether wee have to generate some events, the second, * wether we should recreate the timer. The second is required only * if there were no events this time. */ chan->timer = (Tcl_TimerToken) NULL; events = 0; if ((Buf_QueueSize (chan->rQueue) > 0) || chan->eof) { events |= TCL_READABLE; } if (!chan->eof) { events |= TCL_WRITABLE; } events &= chan->interest; if (events) { /* * We have to release the lock before notifying the channel of new * events for two reasons: * * 1. We must not lock out the other side for the indefinite time * required to handle the events. * * 2. The handler is allowed to close the channel and not all * platforms allow us to lock a mutex twice. So not releasing * it here may cause us to lock ourselves out. */ MUNLK (chan); Tcl_NotifyChannel (chan->chan, events); return; } /* Check this more exactly, I think we can scrap that and assert * (future == 0) */ /* * There were no events this time. Check wether we can generate * events in the future. If yes, we recreate the timer by ourselves. */ events = TCL_READABLE | TCL_WRITABLE; if (chan->eof) { /* The other side is dead. This means that our side will * never be writable. And if our read queue is empty we * are unreadable too. There is no point in trying to * generate events nevertheless. */ events &= ~TCL_WRITABLE; if (Buf_QueueSize (chan->rQueue) == 0) { events &= ~TCL_READABLE; } } if (events) { chan->timer = Tcl_CreateTimerHandler (DELAY, ChannelReady, instanceData); } MUNLK (chan); } /* *------------------------------------------------------* * * GetFile -- * * ------------------------------------------------* * Called from Tcl_GetChannelHandle to retrieve * OS handles from inside a in-memory fifo channel. * ------------------------------------------------* * * Sideeffects: * None. * * Result: * The appropriate OS handle or NULL if not * present. * *------------------------------------------------------* */ static int GetFile (instanceData, direction, handlePtr) ClientData instanceData; /* Channel to query */ int direction; /* Direction of interest */ ClientData* handlePtr; /* Space to the handle into */ { /* * In-memory fifo channels are not based on files. */ /* *handlePtr = (ClientData) NULL; */ return TCL_ERROR; } /* * ---------------------------------------------------------------------- * * Memchan_CreateFifo2Channel - * * Create pair of memchan 'fifo2' channels. * * Results: * Sets pointers to the new channel instances. * * Side effects: * Two linked channels are registered in the current interp. * * ---------------------------------------------------------------------- */ void Memchan_CreateFifo2Channel(interp, aPtr, bPtr) Tcl_Interp *interp; /* the current interp */ Tcl_Channel *aPtr; /* pointer to channel A */ Tcl_Channel *bPtr; /* pointer to channel B */ { Tcl_Obj* channel [2]; Tcl_Channel chanA; Tcl_Channel chanB; ChannelInstance* instanceA; ChannelInstance* instanceB; instanceA = (ChannelInstance*) Tcl_Alloc (sizeof (ChannelInstance)); instanceA->rQueue = Buf_NewQueue (); instanceA->wQueue = Buf_NewQueue (); instanceA->timer = (Tcl_TimerToken) NULL; instanceA->dead = FIFO_ALIVE; instanceA->eof = 0; instanceA->interest = 0; instanceA->lock = (ChannelLock*) Tcl_Alloc (sizeof (ChannelLock)); instanceB = (ChannelInstance*) Tcl_Alloc (sizeof (ChannelInstance)); instanceB->rQueue = instanceA->wQueue; instanceB->wQueue = instanceA->rQueue; instanceB->timer = (Tcl_TimerToken) NULL; instanceB->dead = FIFO_ALIVE; instanceB->eof = 0; instanceB->interest = 0; instanceB->lock = instanceA->lock; /* bug #996078 - Tcl_Mutex expects the mutex to be NULL */ memset((ChannelLock *)instanceA->lock, 0, sizeof (ChannelLock)); instanceA->otherPtr = instanceB; instanceB->otherPtr = instanceA; channel [0] = MemchanGenHandle ("fifo"); channel [1] = MemchanGenHandle ("fifo"); chanA = Tcl_CreateChannel (&channelType, Tcl_GetStringFromObj (channel [0], NULL), (ClientData) instanceA, TCL_READABLE | TCL_WRITABLE); instanceA->chan = chanA; chanB = Tcl_CreateChannel (&channelType, Tcl_GetStringFromObj (channel [1], NULL), (ClientData) instanceB, TCL_READABLE | TCL_WRITABLE); instanceB->chan = chanB; Tcl_RegisterChannel (interp, chanA); Tcl_SetChannelOption (interp, chanA, "-buffering", "none"); Tcl_SetChannelOption (interp, chanA, "-blocking", "0"); Tcl_RegisterChannel (interp, chanB); Tcl_SetChannelOption (interp, chanB, "-buffering", "none"); Tcl_SetChannelOption (interp, chanB, "-blocking", "0"); *aPtr = chanA; *bPtr = chanB; } /* *------------------------------------------------------* * * MemchanFifo2Cmd -- * * ------------------------------------------------* * This procedure realizes the 'fifo2' command. * See the manpages for details on what it does. * ------------------------------------------------* * * Sideeffects: * See the user documentation. * * Result: * A standard Tcl result. * *------------------------------------------------------* */ /* ARGSUSED */ int MemchanFifo2Cmd (notUsed, interp, objc, objv) ClientData notUsed; /* Not used. */ Tcl_Interp* interp; /* Current interpreter. */ int objc; /* Number of arguments. */ Tcl_Obj*CONST objv[]; /* Argument objects. */ { Tcl_Obj *channel[2]; Tcl_Channel chanA; Tcl_Channel chanB; if (objc != 1) { Tcl_AppendResult (interp, "wrong # args: should be \"fifo2\"", (char*) NULL); return TCL_ERROR; } /* * We create two instances, connect them together and * return a list containing both names. */ Memchan_CreateFifo2Channel(interp, &chanA, &chanB); channel[0] = Tcl_NewStringObj(Tcl_GetChannelName(chanA), -1); channel[1] = Tcl_NewStringObj(Tcl_GetChannelName(chanB), -1); Tcl_SetObjResult (interp, Tcl_NewListObj(2, channel)); return TCL_OK; } #endif /* !threaded tcl 8.2 */ Memchan2.3/generic/counter.c0000644000175000017500000000457007164206242015437 0ustar sergeisergei/* * counter.c -- * * Implementation of a mutex protected counter. * Used to generate channel handles. * * Copyright (C) 1996-1999 Andreas Kupries (a.kupries@westend.com) * All rights reserved. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: counter.c,v 1.6 2000/09/26 20:52:50 aku Exp $ */ #include "memchanInt.h" Tcl_Obj* MemchanGenHandle (prefix) CONST char* prefix; { /* 3 alternatives for implementation: * a) Tcl before 8.x * b) 8.0.x (objects, non-threaded) * c) 8.1.x (objects, possibly threaded) */ /* * count number of generated (memory) channels, * used for id generation. Ids are never reclaimed * and there is no dealing with wrap around. On the * other hand, "unsigned long" should be big enough * except for absolute longrunners (generate a 100 ids * per second => overflow will occur in 1 1/3 years). */ #if GT81 TCL_DECLARE_MUTEX (memchanCounterMutex) static unsigned long memCounter = 0; char channelName [50]; Tcl_Obj* res = Tcl_NewStringObj ((char*) prefix, -1); Tcl_MutexLock (&memchanCounterMutex); { LTOA (memCounter, channelName); memCounter ++; } Tcl_MutexUnlock (&memchanCounterMutex); Tcl_AppendStringsToObj (res, channelName, (char*) NULL); return res; #else /* TCL_MAJOR_VERSION == 8 */ static unsigned long memCounter = 0; char channelName [50]; Tcl_Obj* res = Tcl_NewStringObj ((char*) prefix, -1); LTOA (memCounter, channelName); memCounter ++; Tcl_AppendStringsToObj (res, channelName, (char*) NULL); return res; #endif } Memchan2.3/generic/chantest.c0000644000175000017500000000503610144247204015562 0ustar sergeisergei/* Chantest.c - Copyright (C) 2004 Pat Thoyts * * Sample extention to check that the stubs library is working correctly. * This also serves to illustrate the use of the stubs library. * * $Id: chantest.c,v 1.1 2004/11/09 23:11:00 patthoyts Exp $ */ #include #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLEXPORT int TestObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); EXTERN int Chantest_Init(Tcl_Interp *interp) { int r = TCL_OK; const char *tcl = NULL; const char *memchan = NULL; #ifdef USE_TCL_STUBS tcl = Tcl_InitStubs(interp, "8.4", 0); #endif #ifdef USE_MEMCHAN_STUBS memchan = Memchan_InitStubs(interp, "2.2", 0); #endif if (tcl == NULL || memchan == NULL) { Tcl_SetResult(interp, "error loading memchan via stubs", TCL_STATIC); r = TCL_ERROR; } else { Tcl_CreateObjCommand(interp, "chantest", TestObjCmd, (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL); r = Tcl_PkgProvide(interp, "Chantest", "0.1"); } return r; } int TestObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { Tcl_Channel chan = NULL, chan2 = NULL; Tcl_Obj *resObj = NULL; char *type = ""; int r = TCL_OK; if (objc != 2) { Tcl_WrongNumArgs(interp, 1, objv, "type"); return TCL_ERROR; } type = Tcl_GetString(objv[1]); if (strcmp("memchan", type) == 0) { chan = Memchan_CreateMemoryChannel(interp, 0); } else if (strcmp("fifo", type) == 0) { chan = Memchan_CreateFifoChannel(interp); } else if (strcmp("fifo2", type) == 0) { Memchan_CreateFifo2Channel(interp, &chan, &chan2); } else if (strcmp("null", type) == 0) { chan = Memchan_CreateNullChannel(interp); } else if (strcmp("zero", type) == 0) { chan = Memchan_CreateZeroChannel(interp); } else if (strcmp("random", type) == 0) { chan = Memchan_CreateRandomChannel(interp); } if (chan2 != NULL) { Tcl_Obj *name[2]; name[0] = Tcl_NewStringObj(Tcl_GetChannelName(chan), -1); name[1] = Tcl_NewStringObj(Tcl_GetChannelName(chan2), -1); resObj = Tcl_NewListObj(2, name); r = TCL_OK; } else if (chan != NULL) { resObj = Tcl_NewStringObj(Tcl_GetChannelName(chan), -1); r = TCL_OK; } else { resObj = Tcl_NewStringObj("error", -1); r = TCL_ERROR; } Tcl_SetObjResult(interp, resObj); return r; } Memchan2.3/generic/bufStubLib.c0000644000175000017500000000377507461442666016043 0ustar sergeisergei/* * bufStubLib.c -- * * Stub object that will be statically linked into extensions that wish * to access Buf. */ /* * We need to ensure that we use the stub macros so that this file contains * no references to any of the stub functions. This will make it possible * to build an extension that references Buf_InitStubs but doesn't end up * including the rest of the stub functions. */ #ifndef USE_TCL_STUBS #define USE_TCL_STUBS #endif #undef USE_TCL_STUB_PROCS #ifndef USE_BUF_STUBS #define USE_BUF_STUBS #endif #undef USE_BUF_STUB_PROCS #include "buf.h" #include "bufIntDecls.h" /* * Ensure that Buf_InitStubs is built as an exported symbol. The other stub * functions should be built as non-exported symbols. */ #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLEXPORT BufStubs *bufStubsPtr; BufIntStubs *bufIntStubsPtr; /* *---------------------------------------------------------------------- * * Buf_InitStubs -- * * Checks that the correct version of Buf is loaded and that it * supports stubs. It then initialises the stub table pointers. * * Results: * The actual version of Buf that satisfies the request, or * NULL to indicate that an error occurred. * * Side effects: * Sets the stub table pointers. * *---------------------------------------------------------------------- */ #ifdef Buf_InitStubs #undef Buf_InitStubs #endif char * Buf_InitStubs(interp, version, exact) Tcl_Interp *interp; CONST char *version; int exact; { CONST char *actualVersion; /* ** NOTE ** the speciality: * The interface 'Buf' is provided by the package 'Memchan'. */ actualVersion = Tcl_PkgRequireEx(interp, "Memchan", MC_UNCONSTB84 version, exact, (ClientData *) &bufStubsPtr); if (!actualVersion) { return NULL; } if (!bufStubsPtr) { Tcl_SetResult(interp, "This implementation of Buf does not support stubs", TCL_STATIC); return NULL; } bufIntStubsPtr = bufStubsPtr->hooks->bufIntStubs; return (char*) actualVersion; } Memchan2.3/generic/bufStubInit.c0000644000175000017500000000431710144247204016210 0ustar sergeisergei/* * bufStubInit.c -- * * This file contains the initializers for the Buf stub vectors. * */ #include "buf.h" #include "memchanDecls.h" #include "bufIntDecls.h" extern MemchanStubs memchanStubs; /* * WARNING: The contents of this file is automatically generated by the * tools/genStubs.tcl script. Any modifications to the function declarations * below should be made in the generic/buf.decls script. */ /* !BEGIN!: Do not edit below this line. */ BufIntStubs bufIntStubs = { TCL_STUB_MAGIC, NULL, }; static BufStubHooks bufStubHooks = { &bufIntStubs, &memchanStubs }; BufStubs bufStubs = { TCL_STUB_MAGIC, &bufStubHooks, Buf_IsInitialized, /* 0 */ Buf_Init, /* 1 */ NULL, /* 2 */ NULL, /* 3 */ NULL, /* 4 */ NULL, /* 5 */ NULL, /* 6 */ NULL, /* 7 */ NULL, /* 8 */ NULL, /* 9 */ Buf_RegisterType, /* 10 */ NULL, /* 11 */ NULL, /* 12 */ NULL, /* 13 */ NULL, /* 14 */ NULL, /* 15 */ NULL, /* 16 */ NULL, /* 17 */ NULL, /* 18 */ NULL, /* 19 */ Buf_IncrRefcount, /* 20 */ Buf_DecrRefcount, /* 21 */ Buf_IsShared, /* 22 */ Buf_GetType, /* 23 */ Buf_GetTypeName, /* 24 */ Buf_Size, /* 25 */ Buf_GetClientData, /* 26 */ NULL, /* 27 */ NULL, /* 28 */ NULL, /* 29 */ Buf_Create, /* 30 */ Buf_Dup, /* 31 */ Buf_CreateFixedBuffer, /* 32 */ Buf_CreateExtendableBuffer, /* 33 */ Buf_CreateRange, /* 34 */ NULL, /* 35 */ NULL, /* 36 */ NULL, /* 37 */ NULL, /* 38 */ NULL, /* 39 */ Buf_Read, /* 40 */ Buf_Write, /* 41 */ NULL, /* 42 */ NULL, /* 43 */ NULL, /* 44 */ NULL, /* 45 */ NULL, /* 46 */ NULL, /* 47 */ NULL, /* 48 */ NULL, /* 49 */ Buf_PositionPtr, /* 50 */ Buf_Tell, /* 51 */ Buf_FreePosition, /* 52 */ Buf_MovePosition, /* 53 */ Buf_DupPosition, /* 54 */ Buf_PositionOffset, /* 55 */ Buf_PositionFromOffset, /* 56 */ NULL, /* 57 */ NULL, /* 58 */ NULL, /* 59 */ Buf_NewQueue, /* 60 */ Buf_FreeQueue, /* 61 */ Buf_QueueRead, /* 62 */ Buf_QueueWrite, /* 63 */ Buf_QueueAppend, /* 64 */ Buf_QueueSize, /* 65 */ }; /* !END!: Do not edit above this line. */ Memchan2.3/generic/bufRange.c0000644000175000017500000001523011157517624015512 0ustar sergeisergei/* * bufRange.c -- * * Implementations of a range into a buffer. * * Copyright (c) 2000-2009 by Andreas Kupries * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * RCS: @(#) $Id: bufRange.c,v 1.3 2009/03/16 18:51:00 andreas_kupries Exp $ */ #include "memchanInt.h" #include "buf.h" /* * Forward declarations of all internal procedures. */ static int ReadProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData, VOID* outbuf, int size)); static Buf_Buffer DupProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static void FreeProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static int SizeProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static int TellProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static char* DataProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); /* Internal structure used to hold the buffer information. */ typedef struct RangeBuffer_ { Buf_Buffer buf; /* The buffer token containing this structure. */ int size; /* The size of the range. */ Buf_BufferPosition loc; /* The logical position into the underlying buffer */ } RangeBuffer; /* Declaration of the buffer type. */ static Buf_BufferType range = { "extendable-buffer", /* Buffer of varying size */ ReadProc, /* Reading from a buffer */ NULL, /* Writing to a range not allowed */ DupProc, /* Duplicating a buffer */ FreeProc, /* Freeing all allocated resources of a buffer */ SizeProc, /* Number of bytes currently in the buffer. */ TellProc, /* Return current location */ DataProc /* Return start of data */ }; /* *------------------------------------------------------* * * FreeProc -- * * Deallocates the resources of the buffer. * * Sideeffects: * See above. * * Result: * None. * *------------------------------------------------------* */ void FreeProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { RangeBuffer* iBuf = (RangeBuffer*) clientData; Buf_IncrRefcount (iBuf->buf); Buf_FreePosition (iBuf->loc); Tcl_Free ((char*) iBuf); } /* *------------------------------------------------------* * * SizeProc -- * * Returns the number of bytes currently stored in * the buffer. * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ int SizeProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { RangeBuffer* iBuf = (RangeBuffer*) clientData; return iBuf->size; } /* *------------------------------------------------------* * * TellProc -- * * Returns the offset of the current read location * relative to the start of the data. * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ int TellProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { RangeBuffer* iBuf = (RangeBuffer*) clientData; return Buf_PositionOffset (iBuf->loc); } /* *------------------------------------------------------* * * DataProc -- * * Returns the start of the data area. * (Here: Start of the data area in the underlying buffer) * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ char* DataProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { RangeBuffer* iBuf = (RangeBuffer*) clientData; return Buf_GetType (iBuf->buf)->dataProc (iBuf->buf, Buf_GetClientData (iBuf->buf)); } /* *------------------------------------------------------* * * DupProc -- * * Duplicates a buffer and its contents. * * Sideeffects: * Allocates memory. * * Result: * A new buffer token. * *------------------------------------------------------* */ Buf_Buffer DupProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { RangeBuffer* iBuf = (RangeBuffer*) clientData; RangeBuffer* newBuf = (RangeBuffer*) Tcl_Alloc (sizeof(RangeBuffer)); Buf_Buffer new = Buf_Create (&range, (ClientData) newBuf); newBuf->buf = iBuf->buf; newBuf->size = iBuf->size; newBuf->loc = Buf_DupPosition (iBuf->loc); Buf_IncrRefcount (newBuf->buf); return new; } /* *------------------------------------------------------* * * ReadProc -- * * Reads at most size bytes from the current location * in the buffer and stores it into outbuf. * * Sideeffects: * Moves the read pointer behind the bytes * just read from the buffer. * * Result: * The number of bytes actually read from * the buffer. * *------------------------------------------------------* */ int ReadProc (buf, clientData, outbuf, size) Buf_Buffer buf; ClientData clientData; VOID* outbuf; int size; { RangeBuffer* iBuf = (RangeBuffer*) clientData; if ((iBuf->size <= 0) || (size <= 0)) { return 0; } if (iBuf->size < size) { size = iBuf->size; } memcpy (outbuf, Buf_PositionPtr (iBuf->loc), size); Buf_MovePosition (iBuf->loc, size); iBuf->size -= size; return size; } /* * ------------------------------------------------------------ */ Buf_Buffer Buf_CreateRange (buf, size) Buf_Buffer buf; int size; { /* Check for a range as underlying buffer and use its original * as our base. The location is computed relative to the range * in that case. */ RangeBuffer* newBuf; Buf_Buffer new; Buf_BufferPosition loc; if (Buf_Size (buf) < size) { /* Not enough data in the buffer for the range */ return (Buf_Buffer) NULL; } newBuf = (RangeBuffer*) Tcl_Alloc (sizeof(RangeBuffer)); new = Buf_Create (&range, (ClientData) newBuf); loc = Buf_Tell (buf); if (Buf_GetType (buf) == &range) { /* The offset we can retrieve from 'loc' is calculated relative to * the start of the data area of 'buf', but as 'buf' is a range * this is actually already relative to the start of the data area * of the underlying buffer itself (See DataProc, TellProc in this * file). * * So construct a location using this offset and the underlying * buffer to get the location we need here. */ Buf_Buffer data = ((RangeBuffer*) Buf_GetClientData (buf))->buf; Buf_BufferPosition dloc = Buf_PositionFromOffset (data, Buf_PositionOffset (loc)); Buf_FreePosition (loc); loc = dloc; buf = data; } newBuf->buf = buf; newBuf->size = size; newBuf->loc = loc; Buf_IncrRefcount (buf); return (Buf_Buffer) new; } Memchan2.3/generic/bufQueue.c0000644000175000017500000001504707461721134015544 0ustar sergeisergei/* * bufQueue.c -- * * Implementation of a queue out of buffers. * * Copyright (c) 2000 by Andreas Kupries * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * RCS: @(#) $Id: bufQueue.c,v 1.2 2002/04/25 06:29:48 andreas_kupries Exp $ */ #include "buf.h" /* * Internal structures used to hold the buffers in the queue. */ /* * Structure of a node in the queue. */ typedef struct QNode_ { Buf_Buffer buf; /* The buffer managed by the node */ struct QNode_* nextPtr; /* Reference to the next node/buffer */ } QNode; /* * Structure of the whole queue. */ typedef struct Queue_ { QNode* firstNode; /* Head of the queue */ QNode* lastNode; /* Last node/buffer in the queue */ int size; /* Number of bytes stored in the queue */ #if GT81 Tcl_Mutex lock; /* mutex to serialize access to the * queue when more than one thread * is trying to access it. */ #endif } Queue; /* * Declaration of size to use for new buffers when * extending the queue */ #define BUF_SIZE (1024) /* *------------------------------------------------------* * * Buf_NewQueue -- * * Creates a new, empty queue. * * Sideeffects: * Allocates and initializes memory. * * Result: * A queue token. * *------------------------------------------------------* */ Buf_BufferQueue Buf_NewQueue () { Queue* q = (Queue*) Tcl_Alloc (sizeof (Queue)); q->firstNode = (QNode*) NULL; q->lastNode = (QNode*) NULL; q->size = 0; #if GT81 q->lock = (Tcl_Mutex) NULL; #endif return (Buf_BufferQueue) q; } /* *------------------------------------------------------* * * Buf_FreeQueue -- * * Deletes the specified queue. * * Sideeffects: * Deallocates the memory which was * allocated in Buf_NewQueue. * * Result: * None. * *------------------------------------------------------* */ void Buf_FreeQueue (queue) Buf_BufferQueue queue; { Queue* q = (Queue*) queue; QNode* n = q->firstNode; QNode* tmp; #if GT81 Tcl_MutexLock (&q->lock); #endif while (n != (QNode*) NULL) { Buf_DecrRefcount (n->buf); tmp = n->nextPtr; Tcl_Free ((char*) n); n = tmp; } #if GT81 Tcl_MutexUnlock (&q->lock); Tcl_MutexFinalize (&q->lock); #endif Tcl_Free((char*) q); return; } /* *------------------------------------------------------* * * Buf_QueueRead -- * * Reads information from the queue. The read data * is deleted from the queue. * * Sideeffects: * May deallocate memory. Moves the access * pointer in the queue buffers. * * Result: * Returns the number of bytes actually read. * *------------------------------------------------------* */ int Buf_QueueRead (queue, outbuf, size) Buf_BufferQueue queue; char* outbuf; int size; { Queue* q = (Queue*) queue; QNode* n; int got, read; #if GT81 Tcl_MutexLock (&q->lock); #endif n = q->firstNode; if ((size <= 0) || (n == (QNode*) NULL)) { #if GT81 Tcl_MutexUnlock (&q->lock); #endif return 0; } read = 0; while ((size > 0) && (n != (QNode*) NULL)) { got = Buf_Read (n->buf, outbuf, size); if (got > 0) { read += got; outbuf += got; size -= got; } if (size > 0) { Buf_DecrRefcount (n->buf); q->firstNode = n->nextPtr; Tcl_Free ((char*) n); n = q->firstNode; } } if (n == (QNode*) NULL) { q->lastNode = (QNode*) NULL; } q->size -= read; #if GT81 Tcl_MutexUnlock (&q->lock); #endif return read; } /* *------------------------------------------------------* * * Buf_QueueWrite -- * * Writes information to the queue. The written data * is appended at the end of the queue. * * Sideeffects: * May allocate memory. Moves the access * pointer in the queue buffers. * * Result: * Returns the number of bytes actually written. * *------------------------------------------------------* */ int Buf_QueueWrite (queue, inbuf, size) Buf_BufferQueue queue; CONST char* inbuf; int size; { Queue* q = (Queue*) queue; QNode* n; int done, written; if ((size <= 0)) { return 0; } #if GT81 Tcl_MutexLock (&q->lock); #endif n = q->firstNode; written = 0; while (size > 0) { if (n == (QNode*) NULL) { n = (QNode*) Tcl_Alloc (sizeof (QNode)); n->nextPtr = (QNode*) NULL; n->buf = Buf_CreateFixedBuffer (BUF_SIZE); if (q->lastNode == (QNode*) NULL) { q->firstNode = n; } else { q->lastNode->nextPtr = n; } q->lastNode = n; } done = Buf_Write (n->buf, inbuf, size); if (done > 0) { written += done; inbuf += done; size -= done; } if (size > 0) { n = (QNode*) NULL; } } q->size += written; #if GT81 Tcl_MutexUnlock (&q->lock); #endif return written; } /* *------------------------------------------------------* * * BufQueue_Append -- * * Appends a range containing the information * not yet read from the specified buffer to the queue. * * Sideeffects: * Creates a range buffer, allocates memory. * * Result: * None. * *------------------------------------------------------* */ void Buf_QueueAppend (queue, buf) Buf_BufferQueue queue; Buf_Buffer buf; { /* Not the buffer is appended, but a range containing * the rest of the data to read from it. * * Allows external usage of the buffer without affecting * the queue. Writing (s.a.) is no problem, as ranges * always return that nothing was written and thus force * the system to append a new fixed-size buffer behind them. */ Queue* q = (Queue*) queue; QNode* n; #if GT81 Tcl_MutexLock (&q->lock); #endif buf = Buf_CreateRange (buf, Buf_Size (buf)); n = (QNode*) Tcl_Alloc (sizeof (QNode)); n->nextPtr = (QNode*) NULL; n->buf = buf; if (q->lastNode == (QNode*) NULL) { q->firstNode = n; } else { q->lastNode->nextPtr = n; } q->lastNode = n; q->size += Buf_Size (buf); #if GT81 Tcl_MutexUnlock (&q->lock); #endif return; } /* *------------------------------------------------------* * * BufQueue_Size -- * * Returns the current number of bytes stored in the queue. * * Sideeffects: * None. * * Result: * None. * *------------------------------------------------------* */ int Buf_QueueSize (queue) Buf_BufferQueue queue; { Queue* q = (Queue*) queue; int size; #if GT81 Tcl_MutexLock (&q->lock); #endif size = q->size; #if GT81 Tcl_MutexUnlock (&q->lock); #endif return size; } Memchan2.3/generic/bufIntDecls.h0000644000175000017500000000326607376351227016201 0ustar sergeisergei/* * bufIntDecls.h -- * * This file contains the declarations for all unsupported * functions that are exported by the Buf library. These * interfaces are not guaranteed to remain the same between * versions. Use at your own risk. * */ #ifndef _BUFINTDECLS #define _BUFINTDECLS /* * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/bufInt.decls script. */ /* !BEGIN!: Do not edit below this line. */ /* * Exported function declarations: */ typedef struct BufIntStubs { int magic; struct BufIntStubHooks *hooks; } BufIntStubs; #ifdef __cplusplus extern "C" { #endif extern BufIntStubs *bufIntStubsPtr; #ifdef __cplusplus } #endif #if defined(USE_BUF_STUBS) && !defined(USE_BUF_STUB_PROCS) /* * Inline function declarations: */ #endif /* defined(USE_BUF_STUBS) && !defined(USE_BUF_STUB_PROCS) */ /* !END!: Do not edit above this line. */ /* Detect Tcl 8.4 and beyond => API CONSTification */ #define GT84 ((TCL_MAJOR_VERSION > 8) || \ ((TCL_MAJOR_VERSION == 8) && \ (TCL_MINOR_VERSION >= 4))) /* There are currently two cases to consider * * 1. An API function called with a const string, which was non-const * in the relevant argument before 8.4 and is now const in that * argument. This meanst that before 8.4 the actual parameter * required a cast to unconst the value and doesn't require the * cast for 8.4 and beyond. * * This is solved by the macro MC_UNCONSTB84 * = MemChan unCONST Before 8.4 * * 2. ... Not yet. */ #if GT84 #define MC_UNCONSTB84 #else #define MC_UNCONSTB84 (char*) #endif #endif /* _BUFINTDECLS */ Memchan2.3/generic/bufInt.decls0000644000175000017500000000103507164211175016051 0ustar sergeisergei# bufInt.decls -- # # This file contains the declarations for all unsupported # functions that are exported by the Buf library. This file # is used to generate the bufIntDecls.h file # library buf # Define the unsupported generic interfaces. interface bufInt # Declare each of the functions in the unsupported internal Buf # interface. These interfaces are allowed to change between versions. # Use at your own risk. Note that the position of functions should not # be changed between versions to avoid gratuitous incompatibilities. Memchan2.3/generic/buf.h0000644000175000017500000001033507531474470014545 0ustar sergeisergei#ifndef BUF_H /* * buf.h -- * * Definitions for buffer objects. * * Copyright (C) 2000 Andreas Kupries (a.kupries@westend.com) * All rights reserved. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL I BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS * SOFTWARE AND ITS DOCUMENTATION, EVEN IF I HAVE BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * I SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND * I HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, * ENHANCEMENTS, OR MODIFICATIONS. * * CVS: $Id: buf.h,v 1.3 2002/08/23 18:04:40 andreas_kupries Exp $ */ #include #include /* * Windows needs to know which symbols to export. Unix does not. * BUILD_Memchan should be undefined for Unix. */ #ifdef BUILD_Memchan #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLEXPORT #endif /* BUILD_Memchan */ #ifdef __cplusplus extern "C" { #endif /* * The definitions in this header and the accompanying code define a * generic buffer object. * * The code here is partially based upon the buffer structures used by * the tcl core and uponconcepts laid out in the STREAMS paper at * http://cm.bell-labs.com/cm/cs/who/dmr/st.html * * I hope that it can and will be used in a future reorganization of * the core I/O system. */ /* Basis: * Refcounted buffers. The structures actually holding * information. Buffers are typed to allow differentation * between simple data and special control blocks. * * To the outside they are opaque tokens. * All access to them have to go through the public API. */ typedef struct Buf_Buffer_* Buf_Buffer; /* * Definition of the type for variables referencing a position * in a buffer. Opaque token. */ typedef struct Buf_BufferPosition_* Buf_BufferPosition; /* * Another opaque structure: Queues of buffers. * The queues defined here are thread-safe ! */ typedef struct Buf_BufferQueue_* Buf_BufferQueue; /* The structure for a buffer type. * Before that the interfaces of the procedures used by buffer types. */ typedef int (Buf_ReadProc) _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData, VOID* outbuf, int size)); typedef int (Buf_WriteProc) _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData, CONST VOID* inbuf, int size)); typedef Buf_Buffer (Buf_DuplicateProc) _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); typedef void (Buf_FreeProc) _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); typedef int (Buf_SizeProc) _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); typedef int (Buf_TellProc) _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); typedef char* (Buf_DataProc) _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); typedef struct Buf_BufferType_ { char* typeName; /* The name of the buffer type. * Statically allocated. * Not touched by the system */ Buf_ReadProc* readProc; /* Procedure called to read data * from a buffer of this type. */ Buf_WriteProc* writeProc; /* Procedure called to write data * into a buffer of this type. */ Buf_DuplicateProc* dupProc; /* Procedure called to duplicate * a buffer of this type. */ Buf_FreeProc* freeProc; /* Procedure called to free * a buffer of this type. */ Buf_SizeProc* sizeProc; /* Procedure called to ask for the * size of a buffer of this type. */ Buf_TellProc* tellProc; /* Procedure called to ask for the * offset of the read location. */ Buf_DataProc* dataProc; /* Procedure called to ask for a * pointer to the data area of a * buffer. */ } Buf_BufferType; #include "bufDecls.h" #ifdef __cplusplus } #endif /* C++ */ #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT #endif /* BUF_H */ Memchan2.3/generic/bufFix.c0000644000175000017500000001622411157517624015210 0ustar sergeisergei/* * bufFix.c -- * * Implementations of a fixed size buffer. * * Copyright (c) 2000-2009 by Andreas Kupries * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * RCS: @(#) $Id: bufFix.c,v 1.3 2009/03/16 18:51:00 andreas_kupries Exp $ */ #include "memchanInt.h" #include "buf.h" /* * Forward declarations of all internal procedures. */ static int ReadProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData, VOID* outbuf, int size)); static int WriteProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData, CONST VOID* inbuf, int size)); static Buf_Buffer DupProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static void FreeProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static int SizeProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static int TellProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static char* DataProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); /* Internal structure used to hold the buffer information. */ typedef struct FixedBuffer_ { Buf_Buffer buf; /* The buffer token containing this structure. */ int size; /* Size of the area for data, maximal amount of * bytes storable in the buffer. */ char* readLoc; /* The location till which data was read from the * buffer. */ char* writeLoc; /* The location at which new data can be appended to * the buffer. */ char* limit; /* A pointer behind the last character in the buffer. */ char data [1]; /* Each structure is allocated big enough to hold the * required information. This element is the mark to * the offset in the structure from which it will * contain data. */ } FixedBuffer; /* Declaration of the buffer type. */ static Buf_BufferType fix = { "fixed-buffer", /* Buffer of a fixed size */ ReadProc, /* Reading from a buffer */ WriteProc, /* Writing to a buffer */ DupProc, /* Duplicating a buffer */ FreeProc, /* Freeing all allocated resources of a buffer */ SizeProc, /* Number of bytes currently in the buffer. */ TellProc, /* Return current location */ DataProc /* Return start of data */ }; /* *------------------------------------------------------* * * FreeProc -- * * Deallocates the resources of the buffer. * * Sideeffects: * See above. * * Result: * None. * *------------------------------------------------------* */ void FreeProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { FixedBuffer* iBuf = (FixedBuffer*) clientData; Tcl_Free ((char*) iBuf); } /* *------------------------------------------------------* * * SizeProc -- * * Returns the number of bytes currently stored in * the buffer. * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ int SizeProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { FixedBuffer* iBuf = (FixedBuffer*) clientData; return (iBuf->writeLoc - iBuf->readLoc); } /* *------------------------------------------------------* * * TellProc -- * * Returns the offset of the current read location * relative to the start of the data. * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ int TellProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { FixedBuffer* iBuf = (FixedBuffer*) clientData; return iBuf->readLoc - iBuf->data; } /* *------------------------------------------------------* * * DataProc -- * * Returns the start of the data area. * (Here: Start of the data area in the underlying buffer) * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ char* DataProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { FixedBuffer* iBuf = (FixedBuffer*) clientData; return iBuf->data; } /* *------------------------------------------------------* * * DupProc -- * * Duplicates a buffer and its contents. * * Sideeffects: * Allocates memory. * * Result: * A new buffer token. * *------------------------------------------------------* */ Buf_Buffer DupProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { FixedBuffer* iBuf = (FixedBuffer*) clientData; FixedBuffer* newBuf = (FixedBuffer*) Tcl_Alloc (sizeof(FixedBuffer) + iBuf->size); Buf_Buffer new = Buf_Create (&fix, (ClientData) newBuf); newBuf->buf = new; newBuf->size = iBuf->size; newBuf->readLoc = newBuf->data + (iBuf->readLoc - iBuf->data); newBuf->writeLoc = newBuf->data + (iBuf->writeLoc - iBuf->data); newBuf->limit = newBuf->data + newBuf->size; if ((iBuf->writeLoc - iBuf->readLoc) > 0) { /* Copy just that part of container which was not read already */ memcpy (newBuf->readLoc, iBuf->readLoc, iBuf->writeLoc - iBuf->readLoc); } return new; } /* *------------------------------------------------------* * * ReadProc -- * * Reads at most size bytes from the current location * in the buffer and stores it into outbuf. * * Sideeffects: * Moves the read pointer behind the bytes * just read from the buffer. * * Result: * The number of bytes actually read from * the buffer. * *------------------------------------------------------* */ int ReadProc (buf, clientData, outbuf, size) Buf_Buffer buf; ClientData clientData; VOID* outbuf; int size; { FixedBuffer* iBuf = (FixedBuffer*) clientData; int bSize = iBuf->writeLoc - iBuf->readLoc; if ((bSize <= 0) || (size <= 0)) { return 0; } if (bSize < size) { size = bSize; } memcpy (outbuf, iBuf->readLoc, size); iBuf->readLoc += size; return size; } /* *------------------------------------------------------* * * WriteProc -- * * Writes at most size bytes from inbuf and appends * it the buffer * * Sideeffects: * Moves the write pointer behind the bytes * just written into the buffer. * * Result: * The number of bytes actually written * into the buffer. * *------------------------------------------------------* */ int WriteProc (buf, clientData, inbuf, size) Buf_Buffer buf; ClientData clientData; CONST void* inbuf; int size; { FixedBuffer* iBuf = (FixedBuffer*) clientData; int bSize = iBuf->limit - iBuf->writeLoc; if ((bSize <= 0) || (size <= 0)) { return 0; } if (bSize < size) { size = bSize; } memcpy (iBuf->writeLoc, inbuf, size); iBuf->writeLoc += size; return size; } /* * ------------------------------------------------------------ */ Buf_Buffer Buf_CreateFixedBuffer (size) int size; { FixedBuffer* newBuf = (FixedBuffer*) Tcl_Alloc (sizeof(FixedBuffer) + size); Buf_Buffer new = Buf_Create (&fix, (ClientData) newBuf); newBuf->buf = new; newBuf->size = size; newBuf->readLoc = newBuf->data; newBuf->writeLoc = newBuf->data; newBuf->limit = newBuf->data + size; return new; } Memchan2.3/generic/bufExt.c0000644000175000017500000001700311157517623015215 0ustar sergeisergei/* * bufExt.c -- * * Implementations of an extendable buffer. * * Copyright (c) 2000-2009 by Andreas Kupries * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * RCS: @(#) $Id: bufExt.c,v 1.3 2009/03/16 18:50:59 andreas_kupries Exp $ */ #include "memchanInt.h" #include "buf.h" /* * Forward declarations of all internal procedures. */ static int ReadProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData, VOID* outbuf, int size)); static int WriteProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData, CONST VOID* inbuf, int size)); static Buf_Buffer DupProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static void FreeProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static int SizeProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static int TellProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); static char* DataProc _ANSI_ARGS_ ((Buf_Buffer buf, ClientData clientData)); /* Internal structure used to hold the buffer information. */ typedef struct ExtBuffer_ { Buf_Buffer buf; /* The buffer token containing this structure. */ int size; /* Size of the area for data, maximal amount of * bytes storable in the buffer. */ char* readLoc; /* The location till which data was read from the * buffer. */ char* writeLoc; /* The location at which new data can be appended to * the buffer. */ char* limit; /* A pointer behind the last character in the buffer. */ char* data; /* Pointer to start of the actual container */ } ExtBuffer; /* Declaration of the buffer type. */ static Buf_BufferType ext = { "extendable-buffer", /* Buffer of varying size */ ReadProc, /* Reading from a buffer */ WriteProc, /* Writing to a buffer */ DupProc, /* Duplicating a buffer */ FreeProc, /* Freeing all allocated resources of a buffer */ SizeProc, /* Number of bytes currently in the buffer. */ TellProc, /* Return current location */ DataProc /* Return start of data */ }; /* *------------------------------------------------------* * * FreeProc -- * * Deallocates the resources of the buffer. * * Sideeffects: * See above. * * Result: * None. * *------------------------------------------------------* */ void FreeProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { ExtBuffer* iBuf = (ExtBuffer*) clientData; Tcl_Free (iBuf->data); Tcl_Free ((char*) iBuf); } /* *------------------------------------------------------* * * SizeProc -- * * Returns the number of bytes currently stored in * the buffer. * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ int SizeProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { ExtBuffer* iBuf = (ExtBuffer*) clientData; return (iBuf->writeLoc - iBuf->readLoc); } /* *------------------------------------------------------* * * TellProc -- * * Returns the offset of the current read location * relative to the start of the data. * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ int TellProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { ExtBuffer* iBuf = (ExtBuffer*) clientData; return iBuf->readLoc - iBuf->data; } /* *------------------------------------------------------* * * DataProc -- * * Returns the start of the data area. * (Here: Start of the data area in the underlying buffer) * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ char* DataProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { ExtBuffer* iBuf = (ExtBuffer*) clientData; return iBuf->data; } /* *------------------------------------------------------* * * DupProc -- * * Duplicates a buffer and its contents. * * Sideeffects: * Allocates memory. * * Result: * A new buffer token. * *------------------------------------------------------* */ Buf_Buffer DupProc (buf, clientData) Buf_Buffer buf; ClientData clientData; { ExtBuffer* iBuf = (ExtBuffer*) clientData; ExtBuffer* newBuf = (ExtBuffer*) Tcl_Alloc (sizeof(ExtBuffer) + (iBuf->limit - iBuf->data)); Buf_Buffer new = Buf_Create (&ext, (ClientData) newBuf); newBuf->buf = new; newBuf->data = Tcl_Alloc (iBuf->size); newBuf->size = iBuf->size; newBuf->readLoc = newBuf->data + (iBuf->readLoc - iBuf->data); newBuf->writeLoc = newBuf->data + (iBuf->writeLoc - iBuf->data); newBuf->limit = newBuf->data + newBuf->size; if ((iBuf->writeLoc - iBuf->readLoc) > 0) { /* Copy just that part of container which was not read already */ memcpy (newBuf->readLoc, iBuf->readLoc, iBuf->writeLoc - iBuf->readLoc); } return new; } /* *------------------------------------------------------* * * ReadProc -- * * Reads at most size bytes from the current location * in the buffer and stores it into outbuf. * * Sideeffects: * Moves the read pointer behind the bytes * just read from the buffer. * * Result: * The number of bytes actually read from * the buffer. * *------------------------------------------------------* */ int ReadProc (buf, clientData, outbuf, size) Buf_Buffer buf; ClientData clientData; VOID* outbuf; int size; { ExtBuffer* iBuf = (ExtBuffer*) clientData; int bSize = iBuf->writeLoc - iBuf->readLoc; if ((bSize <= 0) || (size <= 0)) { return 0; } if (bSize < size) { size = bSize; } memcpy (outbuf, iBuf->readLoc, size); iBuf->readLoc += size; return size; } /* *------------------------------------------------------* * * WriteProc -- * * Writes at most size bytes from inbuf and appends * it the buffer * * Sideeffects: * Moves the write pointer behind the bytes * just written into the buffer. * * Result: * The number of bytes actually written * into the buffer. * *------------------------------------------------------* */ int WriteProc (buf, clientData, inbuf, size) Buf_Buffer buf; ClientData clientData; CONST void* inbuf; int size; { ExtBuffer* iBuf = (ExtBuffer*) clientData; int bSize = iBuf->limit - iBuf->writeLoc; if (size <= 0) { return 0; } if (bSize < size) { /* Not enough memory to copy the whole input to the buffer. * So extend it now. */ char* ndata = (char*) Tcl_Alloc (iBuf->size + size); memcpy (ndata, iBuf->data, iBuf->size); iBuf->size += size; iBuf->readLoc = ndata + (iBuf->readLoc - iBuf->data); iBuf->writeLoc = ndata + (iBuf->writeLoc - iBuf->data); iBuf->limit = ndata + iBuf->size; iBuf->data = ndata; } memcpy (iBuf->writeLoc, inbuf, size); iBuf->writeLoc += size; return size; } /* * ------------------------------------------------------------ */ Buf_Buffer Buf_CreateExtendableBuffer (size) int size; { ExtBuffer* newBuf = (ExtBuffer*) Tcl_Alloc (sizeof(ExtBuffer)); Buf_Buffer new = Buf_Create (&ext, (ClientData) newBuf); newBuf->buf = new; newBuf->size = size; newBuf->data = Tcl_Alloc (size); newBuf->readLoc = newBuf->data; newBuf->writeLoc = newBuf->data; newBuf->limit = newBuf->data + size; return new; } Memchan2.3/generic/bufDecls.h0000644000175000017500000002670010144247203015505 0ustar sergeisergei/* * bufDecls.h -- * * Declarations of functions in the platform independent public Buf API. * * Copyright (c) 1999 by Andreas Kupries * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * RCS: @(#) $Id: bufDecls.h,v 1.3 2004/11/09 23:10:59 patthoyts Exp $ */ #ifndef _BUFDECLS #define _BUFDECLS #ifdef BUILD_Memchan #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLEXPORT #endif /* * WARNING: This file is automatically generated by the tools/genStubs.tcl * script. Any modifications to the function declarations below should be made * in the generic/buf.decls script. */ /* !BEGIN!: Do not edit below this line. */ /* * Exported function declarations: */ /* 0 */ EXTERN int Buf_IsInitialized _ANSI_ARGS_((Tcl_Interp * interp)); /* 1 */ EXTERN int Buf_Init _ANSI_ARGS_((Tcl_Interp * interp)); /* Slot 2 is reserved */ /* Slot 3 is reserved */ /* Slot 4 is reserved */ /* Slot 5 is reserved */ /* Slot 6 is reserved */ /* Slot 7 is reserved */ /* Slot 8 is reserved */ /* Slot 9 is reserved */ /* 10 */ EXTERN void Buf_RegisterType _ANSI_ARGS_(( Buf_BufferType* bufType)); /* Slot 11 is reserved */ /* Slot 12 is reserved */ /* Slot 13 is reserved */ /* Slot 14 is reserved */ /* Slot 15 is reserved */ /* Slot 16 is reserved */ /* Slot 17 is reserved */ /* Slot 18 is reserved */ /* Slot 19 is reserved */ /* 20 */ EXTERN void Buf_IncrRefcount _ANSI_ARGS_((Buf_Buffer buf)); /* 21 */ EXTERN void Buf_DecrRefcount _ANSI_ARGS_((Buf_Buffer buf)); /* 22 */ EXTERN int Buf_IsShared _ANSI_ARGS_((Buf_Buffer buf)); /* 23 */ EXTERN Buf_BufferType* Buf_GetType _ANSI_ARGS_((Buf_Buffer buf)); /* 24 */ EXTERN CONST char* Buf_GetTypeName _ANSI_ARGS_((Buf_Buffer buf)); /* 25 */ EXTERN int Buf_Size _ANSI_ARGS_((Buf_Buffer buf)); /* 26 */ EXTERN ClientData Buf_GetClientData _ANSI_ARGS_((Buf_Buffer buf)); /* Slot 27 is reserved */ /* Slot 28 is reserved */ /* Slot 29 is reserved */ /* 30 */ EXTERN Buf_Buffer Buf_Create _ANSI_ARGS_((Buf_BufferType* bufType, ClientData clientData)); /* 31 */ EXTERN Buf_Buffer Buf_Dup _ANSI_ARGS_((Buf_Buffer buf)); /* 32 */ EXTERN Buf_Buffer Buf_CreateFixedBuffer _ANSI_ARGS_((int size)); /* 33 */ EXTERN Buf_Buffer Buf_CreateExtendableBuffer _ANSI_ARGS_((int size)); /* 34 */ EXTERN Buf_Buffer Buf_CreateRange _ANSI_ARGS_((Buf_Buffer buf, int size)); /* Slot 35 is reserved */ /* Slot 36 is reserved */ /* Slot 37 is reserved */ /* Slot 38 is reserved */ /* Slot 39 is reserved */ /* 40 */ EXTERN int Buf_Read _ANSI_ARGS_((Buf_Buffer buf, void* outbuf, int size)); /* 41 */ EXTERN int Buf_Write _ANSI_ARGS_((Buf_Buffer buf, CONST void* inbuf, int size)); /* Slot 42 is reserved */ /* Slot 43 is reserved */ /* Slot 44 is reserved */ /* Slot 45 is reserved */ /* Slot 46 is reserved */ /* Slot 47 is reserved */ /* Slot 48 is reserved */ /* Slot 49 is reserved */ /* 50 */ EXTERN char* Buf_PositionPtr _ANSI_ARGS_((Buf_BufferPosition loc)); /* 51 */ EXTERN Buf_BufferPosition Buf_Tell _ANSI_ARGS_((Buf_Buffer buf)); /* 52 */ EXTERN void Buf_FreePosition _ANSI_ARGS_((Buf_BufferPosition loc)); /* 53 */ EXTERN void Buf_MovePosition _ANSI_ARGS_((Buf_BufferPosition loc, int offset)); /* 54 */ EXTERN Buf_BufferPosition Buf_DupPosition _ANSI_ARGS_(( Buf_BufferPosition loc)); /* 55 */ EXTERN int Buf_PositionOffset _ANSI_ARGS_(( Buf_BufferPosition loc)); /* 56 */ EXTERN Buf_BufferPosition Buf_PositionFromOffset _ANSI_ARGS_((Buf_Buffer buf, int offset)); /* Slot 57 is reserved */ /* Slot 58 is reserved */ /* Slot 59 is reserved */ /* 60 */ EXTERN Buf_BufferQueue Buf_NewQueue _ANSI_ARGS_((void)); /* 61 */ EXTERN void Buf_FreeQueue _ANSI_ARGS_((Buf_BufferQueue queue)); /* 62 */ EXTERN int Buf_QueueRead _ANSI_ARGS_((Buf_BufferQueue queue, char* outbuf, int size)); /* 63 */ EXTERN int Buf_QueueWrite _ANSI_ARGS_((Buf_BufferQueue queue, CONST char* inbuf, int size)); /* 64 */ EXTERN void Buf_QueueAppend _ANSI_ARGS_((Buf_BufferQueue queue, Buf_Buffer buf)); /* 65 */ EXTERN int Buf_QueueSize _ANSI_ARGS_((Buf_BufferQueue queue)); typedef struct BufStubHooks { struct BufIntStubs *bufIntStubs; struct MemchanStubs *memchanStubs; } BufStubHooks; typedef struct BufStubs { int magic; struct BufStubHooks *hooks; int (*buf_IsInitialized) _ANSI_ARGS_((Tcl_Interp * interp)); /* 0 */ int (*buf_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 1 */ void *reserved2; void *reserved3; void *reserved4; void *reserved5; void *reserved6; void *reserved7; void *reserved8; void *reserved9; void (*buf_RegisterType) _ANSI_ARGS_((Buf_BufferType* bufType)); /* 10 */ void *reserved11; void *reserved12; void *reserved13; void *reserved14; void *reserved15; void *reserved16; void *reserved17; void *reserved18; void *reserved19; void (*buf_IncrRefcount) _ANSI_ARGS_((Buf_Buffer buf)); /* 20 */ void (*buf_DecrRefcount) _ANSI_ARGS_((Buf_Buffer buf)); /* 21 */ int (*buf_IsShared) _ANSI_ARGS_((Buf_Buffer buf)); /* 22 */ Buf_BufferType* (*buf_GetType) _ANSI_ARGS_((Buf_Buffer buf)); /* 23 */ CONST char* (*buf_GetTypeName) _ANSI_ARGS_((Buf_Buffer buf)); /* 24 */ int (*buf_Size) _ANSI_ARGS_((Buf_Buffer buf)); /* 25 */ ClientData (*buf_GetClientData) _ANSI_ARGS_((Buf_Buffer buf)); /* 26 */ void *reserved27; void *reserved28; void *reserved29; Buf_Buffer (*buf_Create) _ANSI_ARGS_((Buf_BufferType* bufType, ClientData clientData)); /* 30 */ Buf_Buffer (*buf_Dup) _ANSI_ARGS_((Buf_Buffer buf)); /* 31 */ Buf_Buffer (*buf_CreateFixedBuffer) _ANSI_ARGS_((int size)); /* 32 */ Buf_Buffer (*buf_CreateExtendableBuffer) _ANSI_ARGS_((int size)); /* 33 */ Buf_Buffer (*buf_CreateRange) _ANSI_ARGS_((Buf_Buffer buf, int size)); /* 34 */ void *reserved35; void *reserved36; void *reserved37; void *reserved38; void *reserved39; int (*buf_Read) _ANSI_ARGS_((Buf_Buffer buf, void* outbuf, int size)); /* 40 */ int (*buf_Write) _ANSI_ARGS_((Buf_Buffer buf, CONST void* inbuf, int size)); /* 41 */ void *reserved42; void *reserved43; void *reserved44; void *reserved45; void *reserved46; void *reserved47; void *reserved48; void *reserved49; char* (*buf_PositionPtr) _ANSI_ARGS_((Buf_BufferPosition loc)); /* 50 */ Buf_BufferPosition (*buf_Tell) _ANSI_ARGS_((Buf_Buffer buf)); /* 51 */ void (*buf_FreePosition) _ANSI_ARGS_((Buf_BufferPosition loc)); /* 52 */ void (*buf_MovePosition) _ANSI_ARGS_((Buf_BufferPosition loc, int offset)); /* 53 */ Buf_BufferPosition (*buf_DupPosition) _ANSI_ARGS_((Buf_BufferPosition loc)); /* 54 */ int (*buf_PositionOffset) _ANSI_ARGS_((Buf_BufferPosition loc)); /* 55 */ Buf_BufferPosition (*buf_PositionFromOffset) _ANSI_ARGS_((Buf_Buffer buf, int offset)); /* 56 */ void *reserved57; void *reserved58; void *reserved59; Buf_BufferQueue (*buf_NewQueue) _ANSI_ARGS_((void)); /* 60 */ void (*buf_FreeQueue) _ANSI_ARGS_((Buf_BufferQueue queue)); /* 61 */ int (*buf_QueueRead) _ANSI_ARGS_((Buf_BufferQueue queue, char* outbuf, int size)); /* 62 */ int (*buf_QueueWrite) _ANSI_ARGS_((Buf_BufferQueue queue, CONST char* inbuf, int size)); /* 63 */ void (*buf_QueueAppend) _ANSI_ARGS_((Buf_BufferQueue queue, Buf_Buffer buf)); /* 64 */ int (*buf_QueueSize) _ANSI_ARGS_((Buf_BufferQueue queue)); /* 65 */ } BufStubs; #ifdef __cplusplus extern "C" { #endif extern BufStubs *bufStubsPtr; #ifdef __cplusplus } #endif #if defined(USE_BUF_STUBS) && !defined(USE_BUF_STUB_PROCS) /* * Inline function declarations: */ #ifndef Buf_IsInitialized #define Buf_IsInitialized \ (bufStubsPtr->buf_IsInitialized) /* 0 */ #endif #ifndef Buf_Init #define Buf_Init \ (bufStubsPtr->buf_Init) /* 1 */ #endif /* Slot 2 is reserved */ /* Slot 3 is reserved */ /* Slot 4 is reserved */ /* Slot 5 is reserved */ /* Slot 6 is reserved */ /* Slot 7 is reserved */ /* Slot 8 is reserved */ /* Slot 9 is reserved */ #ifndef Buf_RegisterType #define Buf_RegisterType \ (bufStubsPtr->buf_RegisterType) /* 10 */ #endif /* Slot 11 is reserved */ /* Slot 12 is reserved */ /* Slot 13 is reserved */ /* Slot 14 is reserved */ /* Slot 15 is reserved */ /* Slot 16 is reserved */ /* Slot 17 is reserved */ /* Slot 18 is reserved */ /* Slot 19 is reserved */ #ifndef Buf_IncrRefcount #define Buf_IncrRefcount \ (bufStubsPtr->buf_IncrRefcount) /* 20 */ #endif #ifndef Buf_DecrRefcount #define Buf_DecrRefcount \ (bufStubsPtr->buf_DecrRefcount) /* 21 */ #endif #ifndef Buf_IsShared #define Buf_IsShared \ (bufStubsPtr->buf_IsShared) /* 22 */ #endif #ifndef Buf_GetType #define Buf_GetType \ (bufStubsPtr->buf_GetType) /* 23 */ #endif #ifndef Buf_GetTypeName #define Buf_GetTypeName \ (bufStubsPtr->buf_GetTypeName) /* 24 */ #endif #ifndef Buf_Size #define Buf_Size \ (bufStubsPtr->buf_Size) /* 25 */ #endif #ifndef Buf_GetClientData #define Buf_GetClientData \ (bufStubsPtr->buf_GetClientData) /* 26 */ #endif /* Slot 27 is reserved */ /* Slot 28 is reserved */ /* Slot 29 is reserved */ #ifndef Buf_Create #define Buf_Create \ (bufStubsPtr->buf_Create) /* 30 */ #endif #ifndef Buf_Dup #define Buf_Dup \ (bufStubsPtr->buf_Dup) /* 31 */ #endif #ifndef Buf_CreateFixedBuffer #define Buf_CreateFixedBuffer \ (bufStubsPtr->buf_CreateFixedBuffer) /* 32 */ #endif #ifndef Buf_CreateExtendableBuffer #define Buf_CreateExtendableBuffer \ (bufStubsPtr->buf_CreateExtendableBuffer) /* 33 */ #endif #ifndef Buf_CreateRange #define Buf_CreateRange \ (bufStubsPtr->buf_CreateRange) /* 34 */ #endif /* Slot 35 is reserved */ /* Slot 36 is reserved */ /* Slot 37 is reserved */ /* Slot 38 is reserved */ /* Slot 39 is reserved */ #ifndef Buf_Read #define Buf_Read \ (bufStubsPtr->buf_Read) /* 40 */ #endif #ifndef Buf_Write #define Buf_Write \ (bufStubsPtr->buf_Write) /* 41 */ #endif /* Slot 42 is reserved */ /* Slot 43 is reserved */ /* Slot 44 is reserved */ /* Slot 45 is reserved */ /* Slot 46 is reserved */ /* Slot 47 is reserved */ /* Slot 48 is reserved */ /* Slot 49 is reserved */ #ifndef Buf_PositionPtr #define Buf_PositionPtr \ (bufStubsPtr->buf_PositionPtr) /* 50 */ #endif #ifndef Buf_Tell #define Buf_Tell \ (bufStubsPtr->buf_Tell) /* 51 */ #endif #ifndef Buf_FreePosition #define Buf_FreePosition \ (bufStubsPtr->buf_FreePosition) /* 52 */ #endif #ifndef Buf_MovePosition #define Buf_MovePosition \ (bufStubsPtr->buf_MovePosition) /* 53 */ #endif #ifndef Buf_DupPosition #define Buf_DupPosition \ (bufStubsPtr->buf_DupPosition) /* 54 */ #endif #ifndef Buf_PositionOffset #define Buf_PositionOffset \ (bufStubsPtr->buf_PositionOffset) /* 55 */ #endif #ifndef Buf_PositionFromOffset #define Buf_PositionFromOffset \ (bufStubsPtr->buf_PositionFromOffset) /* 56 */ #endif /* Slot 57 is reserved */ /* Slot 58 is reserved */ /* Slot 59 is reserved */ #ifndef Buf_NewQueue #define Buf_NewQueue \ (bufStubsPtr->buf_NewQueue) /* 60 */ #endif #ifndef Buf_FreeQueue #define Buf_FreeQueue \ (bufStubsPtr->buf_FreeQueue) /* 61 */ #endif #ifndef Buf_QueueRead #define Buf_QueueRead \ (bufStubsPtr->buf_QueueRead) /* 62 */ #endif #ifndef Buf_QueueWrite #define Buf_QueueWrite \ (bufStubsPtr->buf_QueueWrite) /* 63 */ #endif #ifndef Buf_QueueAppend #define Buf_QueueAppend \ (bufStubsPtr->buf_QueueAppend) /* 64 */ #endif #ifndef Buf_QueueSize #define Buf_QueueSize \ (bufStubsPtr->buf_QueueSize) /* 65 */ #endif #endif /* defined(USE_BUF_STUBS) && !defined(USE_BUF_STUB_PROCS) */ /* !END!: Do not edit above this line. */ #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT #endif /* _BUFDECLS */ Memchan2.3/generic/buf.decls0000644000175000017500000001256710144247202015402 0ustar sergeisergei# buf.decls -- -*- tcl -*- # # This file contains the declarations for all supported public # functions that are exported by the Buf library inside of # memchan via its stub table. # # This file is used to generate the bufDecls.h file. # library buf # Define the buf interface with several sub interfaces: # bufPlat - platform specific public # bufInt - generic private # bufPlatInt - platform specific private interface buf hooks {bufInt memchan} # Declare each of the functions in the public Buf interface. Note that # every index should never be reused for a different function in order # to preserve backwards compatibility. # -------------------------------------------------- # Initialization of buf ... Already done ?, Do it. declare 0 generic { int Buf_IsInitialized (Tcl_Interp *interp) } declare 1 generic { int Buf_Init (Tcl_Interp *interp) } # -------------------------------------------------- # Management of buffer types. declare 10 generic { void Buf_RegisterType (Buf_BufferType* bufType) } # -------------------------------------------------- # Refcount management, general accessors declare 20 generic { void Buf_IncrRefcount (Buf_Buffer buf) } declare 21 generic { void Buf_DecrRefcount (Buf_Buffer buf) } declare 22 generic { int Buf_IsShared (Buf_Buffer buf) } declare 23 generic { Buf_BufferType* Buf_GetType (Buf_Buffer buf) } declare 24 generic { CONST char* Buf_GetTypeName (Buf_Buffer buf) } declare 25 generic { int Buf_Size (Buf_Buffer buf) } declare 26 generic { ClientData Buf_GetClientData (Buf_Buffer buf) } # -------------------------------------------------- # Creation of buffers (generic, for the predefined types). # Generic creation of a new buffer from clientdata for a # specific type and the type reference itself. declare 30 generic { Buf_Buffer Buf_Create (Buf_BufferType* bufType, ClientData clientData) } # Create an independent duplicate of the incoming buffer. # (May defer the actual duplication of the content until # the first write access to any of the copies!) declare 31 generic { Buf_Buffer Buf_Dup (Buf_Buffer buf) } # -------------------------------------------------- # Create a buffer of fixed size, containing at most # size bytes. declare 32 generic { Buf_Buffer Buf_CreateFixedBuffer (int size) } # Create an extendable buffer with an initial size of # size bytes. declare 33 generic { Buf_Buffer Buf_CreateExtendableBuffer (int size) } # Create a buffer which is a fixed range in another # buffer. It contains 'size' bytes and starts at the # current read position of the underlying buffer. # The range references the underlying buffer and # consequently increments its refcount. # # Creating a range from a range is possible, but is # also automatically reduced to a range over a non- # range. # # The range is not allowed to exceed the current size # of the underlying buffer. declare 34 generic { Buf_Buffer Buf_CreateRange (Buf_Buffer buf, int size) } # -------------------------------------------------- # Reading and writing data from/to a buffer, positions # Read at most size bytes from the buffer into the array outbuf. # Returns the number of read bytes. declare 40 generic { int Buf_Read (Buf_Buffer buf, void* outbuf, int size) } # Take at most size bytes from the array inbuf and append it to the # buffer. Returns the number of written bytes. Behaviour when writing # to a range depends on the way the range was created. A duplicate of # a range or a range with duplicates lying aroung will now enforce # actual separation of content. A normal range (without duplicates) # will simply write into the underlying buffer. Creating separate # ranges over the same area of a buffer creates dependent # copies. Writing into one will affect all others. declare 41 generic { int Buf_Write (Buf_Buffer buf, CONST void* inbuf, int size) } # -------------------------------------------------- # Buffer locations. # Convert a location in the buffer into a pointer to the data at that # location. declare 50 generic { char* Buf_PositionPtr (Buf_BufferPosition loc) } # Ask a buffer for the current location to read from. declare 51 generic { Buf_BufferPosition Buf_Tell (Buf_Buffer buf) } declare 52 generic { void Buf_FreePosition (Buf_BufferPosition loc) } declare 53 generic { void Buf_MovePosition (Buf_BufferPosition loc, int offset) } declare 54 generic { Buf_BufferPosition Buf_DupPosition (Buf_BufferPosition loc) } declare 55 generic { int Buf_PositionOffset (Buf_BufferPosition loc) } declare 56 generic { Buf_BufferPosition Buf_PositionFromOffset (Buf_Buffer buf, int offset) } # -------------------------------------------------- # Queues made out of buffers (Used fixed size buffers naturally). # Read / Write are like on buffers, but extended. declare 60 generic { Buf_BufferQueue Buf_NewQueue (void) } declare 61 generic { void Buf_FreeQueue (Buf_BufferQueue queue) } declare 62 generic { int Buf_QueueRead (Buf_BufferQueue queue, char* outbuf, int size) } declare 63 generic { int Buf_QueueWrite (Buf_BufferQueue queue, CONST char* inbuf, int size) } declare 64 generic { void Buf_QueueAppend (Buf_BufferQueue queue, Buf_Buffer buf) } declare 65 generic { int Buf_QueueSize (Buf_BufferQueue queue) } # -------------------------------------------------- # Place for more # -------------------------------------------------- Memchan2.3/generic/buf.c0000644000175000017500000003072011500515232014517 0ustar sergeisergei/* * buf.c -- * * Implementations of functions in the platform independent public Buf API. * * Copyright (c) 2000 by Andreas Kupries * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * RCS: @(#) $Id: buf.c,v 1.2 2010/12/08 18:17:36 andreas_kupries Exp $ */ #include "buf.h" #include "memchanInt.h" /* * Codestring used to associate the * initialization flag with an interpreter. */ #define ASSOC "memchan:buf" /* Internal declaration of buffers. */ typedef struct Buffer_ { Buf_BufferType* type; /* Reference to the type of the buffer */ ClientData clientData; /* The information pertinent to the used type. */ int refCount; /* Number of references hold by other parts * of the application to this buffer. Initialized * to 0 by the creator procedures implemented here. */ } Buffer; /* Internal declaration of a buffer position. */ typedef struct BufferPosition_ { Buf_Buffer buf; /* The buffer this position belongs to */ int offset; /* The offset into the data area */ } BufferPosition; /* *------------------------------------------------------* * * Buf_IsInitialized -- * * Check wether the buffer system is initialized for * the specified interpreter * * Sideeffects: * None. * * Result: * A boolean value. 0 indicates no * initialization, 1 the opposite. * *------------------------------------------------------* */ int Buf_IsInitialized (interp) Tcl_Interp* interp; { Tcl_InterpDeleteProc* proc = (Tcl_InterpDeleteProc*) NULL; return PTR2INT (Tcl_GetAssocData (interp, ASSOC, &proc)); } /* *------------------------------------------------------* * * Buf_Init -- * * Initializes the buffer system in the specified * interpreter. * * Sideeffects: * Associates data with the specified * interpreter to remember the initialization * * Result: * A standard TCL error code. * *------------------------------------------------------* */ int Buf_Init (interp) Tcl_Interp* interp; { /* There is nothing to initialize here. But we have an operation * querying the state of initialization, so we have to remember * at least this. */ if (Buf_IsInitialized (interp)) { /* catch multiple initialization of an interpreter */ return TCL_OK; } Tcl_SetAssocData (interp, ASSOC, (Tcl_InterpDeleteProc*) NULL, INT2PTR (1)); return TCL_OK; } /* *------------------------------------------------------* * * Buf_RegisterType -- * * Registers a new buffer type. * * Sideeffects: * None. * * Result: * None. * *------------------------------------------------------* */ void Buf_RegisterType (bufType) Buf_BufferType* bufType; { /* There are currently no operations in the interface which require * an internal list of registered buffer types, etc. So this function * can and will be a no-op for now. */ } /* *------------------------------------------------------* * * Buf_IncrRefcount -- * * Tells the specified buffer that a new reference * to it is hold by someone else. * * Sideeffects: * See above. * * Result: * None. * *------------------------------------------------------* */ void Buf_IncrRefcount (buf) Buf_Buffer buf; { ((Buffer*) buf)->refCount ++; } /* *------------------------------------------------------* * * Buf_DecrRefcount -- * * Tells the specified buffer that a reference to it * is no longer in existence. * * Sideeffects: * Deletes the buffer if the last reference * to it is released. * * Result: * None. * *------------------------------------------------------* */ void Buf_DecrRefcount (buf) Buf_Buffer buf; { Buffer* iBuf = (Buffer*) buf; iBuf->refCount --; if (iBuf->refCount <= 0) { /* No references are hold by anyone else anymore. * So remove the buffer, we won't need it again. */ iBuf->type->freeProc (buf, iBuf->clientData); Tcl_Free ((char*) iBuf); } } /* *------------------------------------------------------* * * Buf_IsShared -- * * Checks wether the buffer is shared among * different parts of the application. * * Sideeffects: * None. * * Result: * A boolean value. 1 indicates a shared * buffer, 0 the opposite. * *------------------------------------------------------* */ int Buf_IsShared (buf) Buf_Buffer buf; { return (((Buffer*) buf)->refCount > 1); } /* *------------------------------------------------------* * * Buf_GetType -- * * Retrieves the type structure of a buffer. * * Sideeffects: * None. * * Result: * A reference to the type of the buffer. * *------------------------------------------------------* */ Buf_BufferType* Buf_GetType (buf) Buf_Buffer buf; { return ((Buffer*) buf)->type; } /* *------------------------------------------------------* * * Buf_GetTypeName -- * * Retrieves the name of the type of a buffer. * * Sideeffects: * None. * * Result: * A reference to the string containing the * name of the type of the buffer. * *------------------------------------------------------* */ CONST char* Buf_GetTypeName (buf) Buf_Buffer buf; { return ((Buffer*) buf)->type->typeName; } /* *------------------------------------------------------* * * Buf_Size -- * * Returns the number of bytes currently stored in * the buffer. * * Sideeffects: * None. * * Result: * See above. * *------------------------------------------------------* */ int Buf_Size (buf) Buf_Buffer buf; { Buffer* iBuf = (Buffer*) buf; return iBuf->type->sizeProc (buf, iBuf->clientData); } /* *------------------------------------------------------* * * Buf_GetClientData -- * * Retrieves the type specific client information * of a buffer. * * Sideeffects: * None. * * Result: * The client information of the buffer. * *------------------------------------------------------* */ ClientData Buf_GetClientData (buf) Buf_Buffer buf; { return ((Buffer*) buf)->clientData; } /* *------------------------------------------------------* * * Buf_Create -- * * Create a new buffer (refcount 0) from its type * and the asssociated type specific information * * Sideeffects: * Allocates memory. * * Result: * A new buffer token. * *------------------------------------------------------* */ Buf_Buffer Buf_Create (bufType, clientData) Buf_BufferType* bufType; ClientData clientData; { Buffer* iBuf = (Buffer*) Tcl_Alloc (sizeof (Buffer)); iBuf->type = bufType; iBuf->clientData = clientData; iBuf->refCount = 0; return (Buf_Buffer) iBuf; } /* *------------------------------------------------------* * * Buf_Dup -- * * Duplicates a buffer and its contents. * * Sideeffects: * As of the used buffer driver. * * Result: * A new buffer token. * *------------------------------------------------------* */ Buf_Buffer Buf_Dup (buf) Buf_Buffer buf; { Buffer* iBuf = (Buffer*) buf; return iBuf->type->dupProc (buf, iBuf->clientData); } /* *------------------------------------------------------* * * Buf_Read -- * * Reads at most size bytes from the current location * in the buffer and stores it into outbuf. * * Sideeffects: * Moves the read pointer behind the bytes * just read from the buffer. * * Result: * The number of bytes actually read from * the buffer. * *------------------------------------------------------* */ int Buf_Read (buf, outbuf, size) Buf_Buffer buf; VOID* outbuf; int size; { Buffer* iBuf = (Buffer*) buf; return iBuf->type->readProc (buf, iBuf->clientData, outbuf, size); } /* *------------------------------------------------------* * * Buf_Write -- * * Writes at most size bytes from inbuf and appends * it the buffer * * Sideeffects: * Moves the write pointer behind the bytes * just written into the buffer. * * Result: * The number of bytes actually written * into the buffer. * *------------------------------------------------------* */ int Buf_Write (buf, inbuf, size) Buf_Buffer buf; CONST VOID* inbuf; int size; { Buffer* iBuf = (Buffer*) buf; if (iBuf->type->writeProc == NULL) { return 0; } else { return iBuf->type->writeProc (buf, iBuf->clientData, inbuf, size); } } /* *------------------------------------------------------* * * Buf_PositionPtr -- * * Converts the logical location in the buffer into * a reference to the data area. * * Sideeffects: * None. * * Result: * A character pointer * *------------------------------------------------------* */ char* Buf_PositionPtr (loc) Buf_BufferPosition loc; { BufferPosition* bPos = (BufferPosition*) loc; Buffer* iBuf = (Buffer*) bPos->buf; char* data = iBuf->type->dataProc (bPos->buf, iBuf->clientData); return data + bPos->offset; } /* *------------------------------------------------------* * * Buf_PositionOffset -- * * Converts the logical location in the buffer into * an offset relative to the start of the data area * of the underlying buffer. * * Sideeffects: * None. * * Result: * An integer value. * *------------------------------------------------------* */ int Buf_PositionOffset (loc) Buf_BufferPosition loc; { BufferPosition* bPos = (BufferPosition*) loc; return bPos->offset; } /* *------------------------------------------------------* * * Buf_Tell -- * * Creates a logical position in the buffer pointing * to the current location of the read pointer. * * Sideeffects: * Allocates memory, adds a reference to * the buffer. * * Result: * A buffer position. * *------------------------------------------------------* */ Buf_BufferPosition Buf_Tell (buf) Buf_Buffer buf; { Buffer* iBuf = (Buffer*) buf; BufferPosition* bPos = (BufferPosition*) Tcl_Alloc (sizeof (BufferPosition)); bPos->buf = buf; bPos->offset = iBuf->type->tellProc (buf, iBuf->clientData); /* * The position holds a reference to the buffer, remember that. */ Buf_IncrRefcount (buf); return (Buf_BufferPosition) bPos; } /* *------------------------------------------------------* * * Buf_FreePosition -- * * Deletes a logical position in a buffer. * * Sideeffects: * Deallocates memory, removes a reference to * the buffer, may free the referenced buffer. * * Result: * None. * *------------------------------------------------------* */ void Buf_FreePosition (loc) Buf_BufferPosition loc; { BufferPosition* bPos = (BufferPosition*) loc; Buf_DecrRefcount (bPos->buf); Tcl_Free ((char*) bPos); } /* *------------------------------------------------------* * * Buf_MovePosition -- * * Move a logical position in a buffer. * * Sideeffects: * See above. * * Result: * None. * *------------------------------------------------------* */ void Buf_MovePosition (loc, offset) Buf_BufferPosition loc; int offset; { BufferPosition* bPos = (BufferPosition*) loc; if ((bPos->offset + offset) < 0) { Tcl_Panic ("Moved buffer location out of range"); } bPos->offset += offset; } /* *------------------------------------------------------* * * Buf_DupPosition -- * * Duplicates a logical position in a buffer. * * Sideeffects: * Allocates memory, adds another reference * to the underlying buffer. * * Result: * A token for the new buffer position. * *------------------------------------------------------* */ Buf_BufferPosition Buf_DupPosition (loc) Buf_BufferPosition loc; { BufferPosition* bPos = (BufferPosition*) loc; BufferPosition* newPos = (BufferPosition*) Tcl_Alloc (sizeof (BufferPosition)); newPos->buf = bPos->buf; newPos->offset = bPos->offset; Buf_IncrRefcount (bPos->buf); return (Buf_BufferPosition) newPos; } /* *------------------------------------------------------* * * Buf_PositionFromOffset -- * * Creates a logical position from an offset into * the data area and a buffer. * * Sideeffects: * Allocates memory, adds another reference * to the buffer. * * Result: * A token for the new buffer position. * *------------------------------------------------------* */ Buf_BufferPosition Buf_PositionFromOffset (buf, offset) Buf_Buffer buf; int offset; { BufferPosition* newPos = (BufferPosition*) Tcl_Alloc (sizeof (BufferPosition)); newPos->buf = buf; newPos->offset = offset; Buf_IncrRefcount (buf); return (Buf_BufferPosition) newPos; } Memchan2.3/doc/0000755000175000017500000000000011500516253012732 5ustar sergeisergeiMemchan2.3/doc/art/0000755000175000017500000000000011500516253013520 5ustar sergeisergeiMemchan2.3/doc/art/logo64.gif0000644000175000017500000000752507343621402015335 0ustar sergeisergeiGIF89a+@÷â !%!!#!!%$$&"")%%*&&-""-)).((*''1))1))5..2..5--;00511311:22=55>55:99>66A66E11C99B::F>>F<>J;;K==Q<`š 9âÇ>|øðáÇHÎhÒE*&XÅ|õÚµkX4nÞ¼•;×êÓ&LˆâF ’#E|øðáÇ>|ø(rDI“.`öèŠÆL˜¯]˜YãÆí\ºV¢>mZ„ÈP =] 9Rć>|øðáÃG‘#G i¨X4fÂ+ ·rçÎéj%jÓ¦E‰ù£É‘#>|øðá£<”4A‚¤ ]̦E;&¬˜3lÞ¸yóÆíX0X¤H‘ú„ÉÐ0]9âÇc`B $gX1³6-š²bÊœEÆÍZ4fÓ”ùÊKW.R‹þíÓÉHDPDˆjˆ ¢©6lÑ¢EcvÌY4€Ñ˜)SÆ [´aŠÛõ “=]A2N*Œ‘á@`CTŠqãÆÛ¶hÌ¢1cmš5nÞ¸Y‹fÍÚ´bÁHa ´'Ì2”5Ê2åÏQ¶¨Ë7nÖ¢1;VlX1gÖ¬qóæ¶mܸqã†-Ú0]qn ©Q‡h¸€@c!ˬ1+&Ì—®\½‚‹f›·råÊ•óvN;wê¸}r“¥£ØøA$‡‚ [†Yƒ­˜.V¤>mú´«X4lܸy+wîÜ9wóìÙ›Ç,RF±,t°þQ¦ ¤B# (1‡ U¾Z}úôé©]̬mÆ7oçÔ¹›7Ïž=VY®Ì©$AÆœ'bˆ`¡@‚TÆèlÀ`ÂvS†Í[9kذqãv.:wîæD‚(97=¡$¦ '8 ÀŽW΢E‹ÆÌ·rîÜaÃÆ·rçÔ­;wnŽF”(Yš* ªG¨ j€AA…®¸YçNݹsçÔ¹›çn6nÞÊ•;—î·hbtêÑ#2x5…ÊN‹䤢„#H5{øì̓ÔpóF ¨GqAS Ï2¼Ñ ÃE#;áÂ…c¼yظ¹;7­˜0Xˆn<  ÁÂ…:RÍIVBØ BxN4P€àN Á .;þxöìÙ“ö-Ý9l¾tÁ”A€ ´ÀA T$Hæò±u†ŽX0ºQ¹péØÍ³gÏ^«]»„¶ –  ØPB*[«dåëX  æHÈ –)74À…cÇÞ<{ötéÅÊ—0_¾´”h @€€u,UBE‹ÖªU²æœ ðJHLƒS\¸pìàÁƒg/Ø.X¤H‰"µëFƒxEF«@¥¢µJV*V¤ºë•yÂ…cÇ<{º`‘Ú„ Q¢V% p@@‚ªî³ŠP-F”hE)A+R¡F¯àDYÃ.;vðàÁûôéÓ&L‹þ0‘ª1AÀX.¬¡„Ô¯GrÜàAE‰ÑPŠREªóFÇvðàÁ³gÏ"D‹aÂôé“.بÕ’ K“d¡zóæÑ#T‚ ­zô Ò \À³gÏž={öüø dÈP¢D˜b¸pEN-H@é³ %8pjɪªÓ£6T¬(Pà!œ={öìÙ³ç‡?~ ”Áˆ)²,A*äÁYµ=©±Z²h jCㆂÒÙ³7Ïž={|öìá³gž3) 3Ç™Bst¸x Í£T h’UŽ9o\¸ððÍž={öìá 0]ºt‘ñÀ ¥1« þEËÑ£U«n“©Ó-3#Hè°´‚A„oöìÙ³‡Ÿ%H”(A¢D ŒPU@«Ð­B´ Ñ¢õ둬UV5²Àà  óvÎ:nåŽ9rä$GPÜÉ2‰F6p­’çV%JXÄĉ3‡ƒshXP  ©V¬aÃväÈ$HŽ Qbà …< ¸¹RIÕ­[· •¸ÍŸ1¬(˜ÓB‚{ü ú$ ·#G AÒÌ! Nܹ2f•Z¶n¼eË š 4þü‰Ó¢C”J5Z8 ±Ç¡O¢aCÒ¤ ={ü¤@€(xɹuëÖ£_‚àÔˆñþçÏŸ(c´ÄÒb—@‹0µÒµ+=~!Ú´KW  td°ÓhUªF¶Ð*ÄAÁEý‰¡•…1œ|‚Eª¬D†öø „)X° Ñà‚D1”(бeÎ 4HzôçO–ŒbôJ¦@˜>ùQ"Lš>‰ú”¨N€ D¸qD ‰-B(PÃL!JÜäð €P2]Àx9Ãç M›6}ú´ “&CTpT›U©t‚á ' jA¢D¢‚–%êÒŒž=g”,"Õª•(L‰2sÂÁ† 7¶¡õ†Æ-+Wî°óM!B: !gÙþž.]ÎìÙFI"Q­D% Ñ&C::à …¬Ph1Š£C1D:E‘3AŒ:˺4éÒ¥‹%H6}Ú´‘¡D˜>Iz³á”Vq¸²êQ-®` ’âÊ”hÔꥤI—&J” ABŠ”&L˜6mÚ´ “Otœå¨ÃªYd€Ðh à‚ Ü\ð@ا0`üìÙ¦K“]¹H}úô‰T«V­üp‚A %57ŽÅ!á)fâ :gÂ`}ÒDŠ&?zÀLc&Ì×.]ºv cV(Îpæœ@õH0Ð<²Áeˆ6@vLY±^¹ZµÂ´Ç›7oþÓ” Óå+Ú¹WCˆ(#ȃJ«j 0BŠ™8TZH ðà%KÓ¤-óÕªU«VŸÎyó6MX.]Å¢¹«†B96 Ð`vA :aA 4 ÜÂÆL˜.VŸ>‘5-Ú±a¾v sVNÞ¼Bœ˜ñâ$7ÐÃ6HÐQCÚ´c­>‘"%J©]º„ùÚ5lÚ9wóÜÅ @ -@àâ€PàA‚:ÃŽ Ëõ©U.X¹tÁÒåk×®bÖÊ­;g-Ú…DTP €€ @"(øVL,QŸZéòULX±cÑ¢ESÆ,š°O°þ)h  @€€(U6P  GرcÌ¢ÁÂ$j3lÓ¦aóæ-š.€˜ùñ“¨U  €à1d†Œ),8Áá…ÅŠSÆL™/RŸvEÆ 6lØt%òã‡O M»†mx@!Dæ<Ù A 6cvLX±c‚éjµË·hÌŠ óµÉŸ@ˆ4‹  B´a„ã‚H¸`ªX±]ºv+vì˜0aÖÎíjµ«Ø®DüìÙh—2fØŽ1á!C €‚†*kؘ¶k×.eÖ°Y³¶­Õ®hт鴧K0†Dé²–®š33fä¨þààÄËä¹›çŽ7lÑvùb¶ÍZ4l¢a³mW"0MštÙƒI³iéÔ½Ú²Ç ‘'-ò|ƒ7Þ<{óÔ©;ÇLX1gÌ¢a›Æ­@n»0éÓÌDŸ`é:†íœ:vÄNMÂŽ;vðØ±ƒ7oÞ;xðàÙ³gÏž½yÑH}J¤ 0`À€9£g¡OÁÊ©›7oÞ¼yóæÍ›55:99>66A66E11C99B::F>>F<>J;;K==Q<`š 9âÇ>|øðáÇHÎhÒE*&XÅ|õÚµkX4nÞ¼•;×êÓ&LˆâF ’#E|øðáÇ>|ø(rDI“.`öèŠÆL˜¯]˜YãÆí\ºV¢>mZ„ÈP =] 9Rć>|øðáÃG‘#G i¨X4fÂ+ ·rçÎéj%jÓ¦E‰ù£É‘#>|øðá£<”4A‚¤ ]̦E;&¬˜3lÞ¸yóÆíX0X¤H‘ú„ÉÐ0]9âÇc`B $gX1³6-š²bÊœEÆÍZ4fÓ”ùÊKW.R‹þíÓÉHDPDˆjˆ ¢©6lÑ¢EcvÌY4€Ñ˜)SÆ [´aŠÛõ “=]A2N*Œ‘á@`CTŠqãÆÛ¶hÌ¢1cmš5nÞ¸Y‹fÍÚ´bÁHa ´'Ì2”5Ê2åÏQ¶¨Ë7nÖ¢1;VlX1gÖ¬qóæ¶mܸqã†-Ú0]qn ©Q‡h¸€@c!ˬ1+&Ì—®\½‚‹f›·råÊ•óvN;wê¸}r“¥£ØøA$‡‚ [†Yƒ­˜.V¤>mú´«X4lܸy+wîÜ9wóìÙ›Ç,RF±,t°þQ¦ ¤B# (1‡ U¾Z}úôé©]̬mÆ7oçÔ¹›7Ïž=VY®Ì©$AÆœ'bˆ`¡@‚TÆèlÀ`ÂvS†Í[9kذqãv.:wîæD‚(97=¡$¦ '8 ÀŽW΢E‹ÆÌ·rîÜaÃÆ·rçÔ­;wnŽF”(Yš* ªG¨ j€AA…®¸YçNݹsçÔ¹›çn6nÞÊ•;—î·hbtêÑ#2x5…ÊN‹䤢„#H5{øì̓ÔpóF ¨GqAS Ï2¼Ñ ÃE#;áÂ…c¼yظ¹;7­˜0Xˆn<  ÁÂ…:RÍIVBØ BxN4P€àN Á .;þxöìÙ“ö-Ý9l¾tÁ”A€ ´ÀA T$Hæò±u†ŽX0ºQ¹péØÍ³gÏ^«]»„¶ –  ØPB*[«dåëX  æHÈ –)74À…cÇÞ<{ötéÅÊ—0_¾´”h @€€u,UBE‹ÖªU²æœ ðJHLƒS\¸pìàÁƒg/Ø.X¤H‰"µëFƒxEF«@¥¢µJV*V¤ºë•yÂ…cÇ<{º`‘Ú„ Q¢V% p@@‚ªî³ŠP-F”hE)A+R¡F¯àDYÃ.;vðàÁûôéÓ&L‹þ0‘ª1AÀX.¬¡„Ô¯GrÜàAE‰ÑPŠREªóFÇvðàÁ³gÏ"D‹aÂôé“.بÕ’ K“d¡zóæÑ#T‚ ­zô Ò \À³gÏž={öüø dÈP¢D˜b¸pEN-H@é³ %8pjɪªÓ£6T¬(Pà!œ={öìÙ³ç‡?~ ”Áˆ)²,A*äÁYµ=©±Z²h jCㆂÒÙ³7Ïž={|öìá³gž3) 3Ç™Bst¸x Í£T h’UŽ9o\¸ððÍž={öìá 0]ºt‘ñÀ ¥1« þEËÑ£U«n“©Ó-3#Hè°´‚A„oöìÙ³‡Ÿ%H”(A¢D ŒPU@«Ð­B´ Ñ¢õ둬UV5²Àà  óvÎ:nåŽ9rä$GPÜÉ2‰F6p­’çV%JXÄĉ3‡ƒshXP  ©V¬aÃväÈ$HŽ Qbà …< ¸¹RIÕ­[· •¸ÍŸ1¬(˜ÓB‚{ü ú$ ·#G AÒÌ! Nܹ2f•Z¶n¼eË š 4þü‰Ó¢C”J5Z8 ±Ç¡O¢aCÒ¤ ={ü¤@€(xɹuëÖ£_‚àÔˆñþçÏŸ(c´ÄÒb—@‹0µÒµ+=~!Ú´KW  td°ÓhUªF¶Ð*ÄAÁEý‰¡•…1œ|‚Eª¬D†öø „)X° Ñà‚D1”(бeÎ 4HzôçO–ŒbôJ¦@˜>ùQ"Lš>‰ú”¨N€ D¸qD ‰-B(PÃL!JÜäð €P2]Àx9Ãç M›6}ú´ “&CTpT›U©t‚á ' jA¢D¢‚–%êÒŒž=g”,"Õª•(L‰2sÂÁ† 7¶¡õ†Æ-+Wî°óM!B: !gÙþž.]ÎìÙFI"Q­D% Ñ&C::à …¬Ph1Š£C1D:E‘3AŒ:˺4éÒ¥‹%H6}Ú´‘¡D˜>Iz³á”Vq¸²êQ-®` ’âÊ”hÔꥤI—&J” ABŠ”&L˜6mÚ´ “Otœå¨ÃªYd€Ðh à‚ Ü\ð@ا0`üìÙ¦K“]¹H}úô‰T«V­üp‚A %57ŽÅ!á)fâ :gÂ`}ÒDŠ&?zÀLc&Ì×.]ºv cV(Îpæœ@õH0Ð<²Áeˆ6@vLY±^¹ZµÂ´Ç›7oþÓ” Óå+Ú¹WCˆ(#ȃJ«j 0BŠ™8TZH ðà%KÓ¤-óÕªU«VŸÎyó6MX.]Å¢¹«†B96 Ð`vA :aA 4 ÜÂÆL˜.VŸ>‘5-Ú±a¾v sVNÞ¼Bœ˜ñâ$7ÐÃ6HÐQCÚ´c­>‘"%J©]º„ùÚ5lÚ9wóÜÅ @ -@àâ€PàA‚:ÃŽ Ëõ©U.X¹tÁÒåk×®bÖÊ­;g-Ú…DTP €€ @"(øVL,QŸZéòULX±cÑ¢ESÆ,š°O°þ)h  @€€(U6P  GرcÌ¢ÁÂ$j3lÓ¦aóæ-š.€˜ùñ“¨U  €à1d†Œ),8Áá…ÅŠSÆL™/RŸvEÆ 6lØt%òã‡O M»†mx@!Dæ<Ù A 6cvLX±c‚éjµË·hÌŠ óµÉŸ@ˆ4‹  B´a„ã‚H¸`ªX±]ºv+vì˜0aÖÎíjµ«Ø®DüìÙh—2fØŽ1á!C €‚†*kؘ¶k×.eÖ°Y³¶­Õ®hт鴧K0†Dé²–®š33fä¨þààÄËä¹›çŽ7lÑvùb¶ÍZ4l¢a³mW"0MštÙƒI³iéÔ½Ú²Ç ‘'-ò|ƒ7Þ<{óÔ©;ÇLX1gÌ¢a›Æ­@n»0éÓÌDŸ`é:†íœ:vÄNMÂŽ;vðØ±ƒ7oÞ;xðàÙ³gÏž½yÑH}J¤ 0`À€9£g¡OÁÊ©›7oÞ¼yóæÍ›55:99?..D22A66A55E77H99B::F==F<>I;;M77P<>e@@GAAJBBNEENGGKBBQEEQFFVBBUFFZGG^BB\IIVLLSJJZJJ^NNZMM]PPWUU_QQ]EEdAAnBBoCCjMMaJJdJJmNNmLLjCCpFFrHHsJJuMMwMMrNNxRRbRReUUbUUeRRjVViUUmRRnYYf[[dYYiYYm^^n^^jTTtQQzUU}VV~UUyZZrYYv^^p]]uXX^^z\\zcclaaeaaqaaveeueerbbybb}eeyee}hhwmmwii~ll{pp}{{}ZZ\\‚^^ƒ__„aa†ee‚ff‰jj‚jj…mm‚nn…ii‹jjŒnnllŽmmŠoorr…uu†rr‚rr‰uuŠwwuuŽrr{{ƒyy‹yy}}Ž~~Šqq‘rr’tt“ww“vv•uu”yy–zz–~~‘{{’{{˜{{š}}™~~š}}šƒƒŒˆˆŠ’‚‚•……–……’€€›‚‚œ††™……ž‹‹–‰‰™ŽŽŒŒš‘‘““‡‡ ŠŠ£‰‰¡¤ŽŽ¥¢§’’§••¡““©——«””©——¬››¥˜˜¬››­¯™™«žž°¤¤¦¤¤«ªª®¢¢³¡¡±££´¤¤´¦¦¶¥¥±¨¨¶ªª¶««³««¸©©¸­­º®®»¬¬¹¯¯¼°°¼³³¾²²½´´¿¶¶¾°°»¿¿¿½½¾¹¹½¶¶À¸¸ÁººÂ½½Â½½ÅÃÃÃÀÀÀÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÉÉÉÊÉÉÊËËÌþSò¤ˆ @d¦@qbĈ#FŒ1bĈ#PÖxê…Š#^Ë„ýúõëXµpêÈ‘['k(N‰D& 'FŒ1bĈ#FŒiâ$Ê2dõª6혰_Ŧq nݺZ©Fb”(¡?c |ø "”(#Nœ0r¨R¥Byäè‚DÓ®W…naBDk‡894,`Àá>|øðáÃ' A‚"!ˆA¤IÊðe1\¸*!ˆI×­àxãÀA† ÚáÇ>|þüôçŸ5z xÔª&!TÑ"5©Ò W´rÕÙ‘BÆ x0`>|øôé#C† 2cÆD™PCƒ•V…\Iþš„ 1b´HUÊU©P ,XÀÀA„tøðáÓ§O_”(Q @å Š)®@¢£ ›[˜\Aûq¨Î¤CzDp°€b,#·Î»pîœ8qâÄ (ObÄàbƒ 6lnݪT ‘†1z AÈŽ (PÁaTªZǺ… çĉ'Nœ@ãã ŸtH¼¢cÓ-I­†(ˆ@‚€0i`Àá‘Á‰)uŒ[7'Nœ@2…ÌŸ)Âp!åàC¤Z¬#éP8V8”ˆÁãŒ+" ñ‡P¢QǦqƒ2e ™5)BB F M5&ÒÕJ 1hØxBtþ¦Âއ"tð€€@AŒ@¥âõ«?€)Õ«×™?Ühº… —®;Hª`¹ƒÆ”!6@jã‡JŒâ«V-FŒþ"ĈS*^¼î˜‚‚Ž&]º^-¡àF“4j ±aS" Ùà’¦–'B Rý!C(#NžF™eA… Yäàʵ… =… ¡9Si$"0p0éQ5DŠÈ!Ch O @Ê“§Q”‡Ï«4Z¼Ì‘„&b¹ÁHAŒI¯´±3†ŒAd¢0J%KV*NŒyÂAbˆ ·>Z•Ì ž;=ܹ5‰H /\Á“ šþ˜1cüüä' #S²L1"DH‘'50*4óÊŽ¦[\&A²aå–$-`\‰àÀËj¤ LCfL”(P@å(Q"FœF BQ"¦W;ô º&Ž 5pö˜ˆ$Í5ä0Ãeʘ)S¢@y’*(Nœ@Ê’Z½j…iÒ£8%ˆùbbC=gp¸â š!2kýùCfÌ”_½b™5*•¬X¨)¹ñêU+4b˜ €À‚8,¼À  WÄ0•*•'A~ÈT›vLد^½~›FÇ /rl(I’ ,ÐRA  †äŠÃŒÙ²`¼dÕòô‡¹pþÜœë% ÛºH+TÑsáTˆà ( €àŒžKت9&KV-Y£Ö‘3·íX­^˪ÅÓ†àBš>° @`Á† dP  `@èÂ6MY¯T¦F…­Ú´eÂ~›¦îÞ½˜à€ƒˆš @ ‹  d€Q£¶i²F¥ŠeÊ”©_½Ž ûU¬šºx÷êÙB Q *`AÁ J,P `G…Hʘã*U/^µxÕêõKX¯bÜÔ±sÇ­‡ IV\x „*@(;vì/S£jû¥ìØ2fتa›6Ú±Q²öþx€Aˆ@À! |øðÝ»W¯^¸^©­!CÆÏŸ?R*Ö²nîîÝ»wïÞ½{óæÍ›7o>Þ»yóæáǾ{ÕRbô‡ 2dÈ!³æ¢QÂȹ«wïÞ½z÷îÝ»7oÞ¼yóæÍ›7o>|øðá !ù€ ,+@‡!!%+!!#""%%%&"")%%)&&-""-)).**+&&1''4**5..5++2++8..9--<11600211:22=55>55:99>//@22A66A66E::F==F::B::M>>I;;L44I>>R>>U==[??bAAFBBJBBNDDOJJOAAQFFQFFUAAVDD[JJUKKTJJYMMYNN]II]RR^PP[EEcAAnBBoEEkNNaOOeIIcJJiKKmCCpFFrIIsJJuMMwOOrOOxRRbRRfUUbUUeRRjVViVVnYYe\\dYYjYYm]]j^^nTTtQQzUU}VV~SS|YYr^^q^^uZZuXX__yccnccgaaraaueevggrbbybb}eezff~jjwkktjjzii}nn~mmzpp}||ZZ]]‚^^‚__„aa†ee‚ff‰ccˆjj‚mm‚nn…ii„hh‹jjŒnnllŽooˆoorr‚qq…uu†rr‰uu‰wwŒqqŽ{{„yy‰zzŽ}}ss’pptt“vv•yy–zz—~~‘||’{{˜||™~~šƒƒ…€€Ž”……–ƒƒ’€€š‚‚††™……Ÿ‰‰–ˆˆŠŠœŽŽšŽŽŠŠ™••—‘‘””ŸŸ‡‡ ŠŠ£‰‰¡¤¥¢¦––¡““£““¨––«””©——¬™™¤™™¬šš®¯žž­››«žž°¤¤ª¤¤¦££³¡¡²££´¥¥´¦¦µ§§¶¤¤³©©·ªª¶©©³ªª¸­­º®®º¯¯¼±±¼²²½µµ¿¶¶¾³³¹¿¿¿¹¹»±±µ··ÀµµÀ¹¹Â½½Ã¾¾ÅÃÃÃÁÁÁÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÇÇÊÀÀÏÈÈÊÉÉÊËËÌÅÅÑþGyÊ”HÐ ?a¢8aB„"Dˆ!B„"NÐl•jÑ¢[Æ€éÒ¥+´mݺu§Ê§Lˆ úæ‰&Dˆ!B„"DˆYÂÄ ˜0aüà‚æ,˜.]Áœ]Û¶mœ9V£`ž4QÂEŽ+7(`Ç XŒmÛöm›¶gΠ=sÚµmݶ]ƒFíÚµcÀFeäÌ3†Žù!@66a’«Õ62‘±R£þ<2*±cÇN:tìÔ¡+‡ Z/]Æœ9ƒΤH†1z$å­*rìjsÉÊ,Vj,ˆÑ8pàÀ¡C‡n]¹nׂ…â4j.]Ydp uJ•s IAuêW #%\±‚`<–:tìØuóÖ Z°Q‹2qrSÀ <˜ZqÈó(ŲGnF˜± @€4(ðá 8pèбcÇŽ5oݨõâ´QUì\’DÅF;¾|M*Q Å$x¼yU£A :àÀCÇŽ;x×¾©+GÍX0Vˆ:$PÃAÏ¥73ØHCˇRbá‘“Ê! *Ø:þvóæÍsÖÍ[7jºp©ZÄÀ„ ;0õ˜QÁÃC8$PqêÕ*U«¾8P"3pèÖ±›7o+]º‚†K!ª±t‰GWà\2#AŠU¿bÉ“ˆ„€ H‡ŽÝ¼yópá 5ª0]ºÜP£G©6®à˜š#é¡ €|šÐ§,….h ¡8pèÖ±ƒ7¯—.V©F…R¥k‹…&õPc©Ð£S^"=ÒÑêS“l”±Á@@kÀ‡n;x¸Tò”)Ñ"U7,èaçL­zl±¤&R¤K’b9D&j$è‚:tìàÁãäɧLþ2áÀF—.;ð˜‚U¥T«Or”DúÔÆÈ‚5¦QŒuìØ±›7o^¢E2eÊÄi”–ÊÒª$Z°Zå)óåS¬8p,°áA&@¬›7o^½yó„Ñ¢L‹Ø0è’žR®úe)‹¡@Ÿ.¡ê‘`C… XÐܼyóæÍ› @€!DâA 8­‚T$ Ò±¦>}kÑ' ,T€°@Á‡ÌÍ›7oÞ¼yüøñãÇŸ02ä‘„ŠM9±{„ÊP¤SŸnÙXpŒ N,XðmÞ¼yóêÕ &L˜0`À<ÁÀÎ#Bs.]þúu*V«UlE2C‰Ó ´,X ‚oóæÍ«W¯Þ“'Ož~%òáÀ‹vŒ%H©4†YÁþÇF ´¥@@€@‹2©Â¥ X>€-⤠—°.åÀ‚B ˜ô˜òEèÐ-l"hЀG†‚Fxº¥ê–ªD‰øüA´(Ó(V¬ªàQèÇ)Øè¨É$9qnĸaÁ‚ŸtPQ†Õ&AœFý #(Ñ¢L›Ý:vìàÍ›7oÞ¼wÐFqZô'̘0a„ ƒÆO"Oº¶{÷îÝ»wïÞ½{ÇŽ;vìØ±cÇÞ¼yóæÕ !ù€ ,+@‡ !&(!!#""###$!!&$$&"")%%)&&.##.)).**,&&1**1**5..5,,2..9--=11611922=55>55999?22A55B55E77L::B::F==F??A::I>>M==I>>R==S==^;;`BBNBBLBBRBBUEERFFVCCYFFZFF^AA^IIULLWIIZJJ^MMZMM^QQ^TT[EEcAAnBBoFFmKKaNNbLLeJJiOOoKKkCCpFFrIIrJJuLLvMMuMMrNNxRRbRRfVVbVVfSSiVVjTTmYYfXXcZZjZZm]]i^^mVVrUUvRRrQQzUU}VV~SS|ZZv^^q]]vYYrXX^^y[[ybbljjobbrbbveeveesbbzbb}ffzee~jjwiizjj}nn~mmztt~rrwZZ]]‚__„aa†ff€ee…ee‰jjnnnn…jj„hh‹jj‰kkiiŒmmŽooˆooqq‚rr…vv†uu‚rrˆuuŠvvrrŒyy‡yyŠzzŽ}}Ž~~‹qq‘tt“vv•xx–zz—~~‘{{“{{˜}}™›~~š„’‚‚•……•……“‚‚††™……Ÿš‰‰–‹‹”‰‰™šŒŒž’’œ››ž‡‡ ŠŠ£‰‰¡¤¦ŽŽ¡§’’¦——¥’’¡““¨‘‘¨••ª——¬››£™™ªšš­¯ªžž°¢¢¯¨¨¬££¦¢¢³¡¡²££´¥¥³¤¤´¦¦µ§§¶¦¦¸¨¨·ªª¶ªª³««¸©©¸­­º®®»¬¬¹¯¯¼···°°»²²½´´¿··¿¶¶¹¿¿¿¼¼¿¹¹½¶¶ÀµµÂ¹¹Â½½Â¾¾Å»»ÄÃÃÃÁÁÁÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÇÇÉÉÉÊÉÉÊÊÊÌ××åþMòÔ¨P¡@e¤8a2dÈ!C† 2dÈ!NÊ|ÚeÊ‘']Ê€íêÕ˘µoåÖ•[÷J(O  Tæ‰&K† 2dÈ!C† YÂÄɘ2eí¢&ÍX¯^Ƥu7n]»X¦DrÔ¨Q¡?Rœ8a²dÈ!C† 2dÈ&Lš8‘RH™5iʈSfÍÛ¸uíÚízU (OŽ *óÄ &C† ²¤I"-ˆ4qâDJ ]Ò²Y[fLÙ4oìÆ•ç­±X¦J™å© 2cœ0Y2dÈ1]À™R£H'eLIó–ÍZ3eͦeóæ-›5iÙ¤Ó«×.SŽ þ*#¥ “!DÕé’&8%VÜãI™7oÖ¤YkÖÌš5€Ö¤5“6Λ5cÆ–)ë%ÊQ¡?cž4!GRDì¡“L`”7nœ·iÒ¬I“f-[·qåÆe³Ö­[6eÄLy*èO%=rÀp0àÅN›Ag¦È¨1«Ü¸qݬIk¦ì˜2iݺWnœ7oãÆ÷ÍÚ±]˜4ý˜’…‡2ÂÔQ“"ÖºISfŒØ.]½ˆ)³–m\¹uëÊ•+×îݼyïÆ‘BshRIrÀ€D‡ ”°ÓMÙ®W¦D}µK™5oãÆ•[×®»yùôéËGM’8Z*éyþ¡@8 A‰ZÀL‰%J”¨^Ò¼}óöm\¹ríÞÍË—O_¾UVäìYµ M(b"BŽF`fÌ@bÆzkæ­ÜºnÞÆ·îÝ»yóòmÓ4cÒ¤r,U  @A ¤ÂdžUÓ¬Y³&Mš·uïæ}ûVnܸuíÞ½[·ŽÒ«4Ur¥ç‡\6̈P#3T7ï]»uíÞÍË7ïÛ·qëÚ­kç®Ý8enà´º4ˆÓ¬HVäpÒÔAK5”´¹¢Ä6}úôå«W¯^½y߬uó6®\¹rã¼qÒÔ ‘.’Zá©ñ£Ë+tÚˆ‘¥þŽVüÔ«WoÞ¼zõæÅ[÷Ͱ^ʤI³–-O¢Qˆá‘bΡQšI$ã )"x¨Ã:tèС‹¯^»uÙˆ•eÊÔ.X“6mZ5©Gšôì±k(BÁà†) ¡C‡]¼xõêµ+WŽ1SŽ<‚ƒ+Ç*Mp¦ìѲ ѨI­nUi@€¨˜‘Ê:tñâÕ«W/[6sã²å¨QžYœjyá‚È’¦Y­^0˜R«•Œ6)ÍA  èС‹W¯^=}ÖÆÍkçM™±X…¶ô©e‹Ò -›IE‚Á‘VƒÀXš‚m tH‡]¼þzúôé£fλlÀvÅjôB žZ^xátÑ0ìT‚ÕL/c *T @€Á3tèêåÓ§Oß«^»€)#¶+–=¸hš’gC =­6ý0©Õª6m`I2!…‚h¡‹¯^>}úví*õª1`½¬h ðcRIrdá”HK…Q•V2  vtР:tñêÕ«§X¯X¯L™zÕk*€ÐâS¡—HuHYÊÓaœf@q&oСC¯^½z»b™å©‘£W%´Àˆc[8q¹sæN+/T ñD–3Ì‚]¼xõêÕUJ¨Ožþ<™ªN-³ªdê´IÓA«Zѹ£XŒè‰À ŒxõêÕÓ§O_£FŽ}ú *Ô¨‘#OŽ0й£gÒ,M¸8µš‘hU"YˆFéa0cʪ (P!^>}úôéÓ'( A‚ "D€Î¬I="Ie‹Žž6›ÖõX©–$r,Uz¡@ÐéÓ§OŸ>}€ П0ª 5#Ò(a†µZu¨–µU½ä8ÐsgÓ0PpNŸ>}úøñ+S¦L™2cÆD©0E "KyjµþÆ ×­U«z)¶§ÃQ–" è°súôéÓÇß“'Ož%ªQ›H!Ôt™Ñ‡G %|±s¨‚\v\rFꃌ2kúSfŒ”^»L‰%ÊÔ«W²”hÂpƒ„>fÍ‚“â8@QGÒ0D ,}eJÖ'AÊX“f °]»z“v§K+°Ž(fÈ™±À„M•Íð m™²]º^½ú¨\¹rþÞ¤Ûe,Ûº>hÀ i” B‚  HDLJ7Ù¨5KÖ«W¢Ú•+—ÍØ®]ʬÍ{¶1hPƒÀ” 4Pà`F#40Ë&MY¯W¢@•*•ÍÚ2cÀz“¶î^>,¨B,íé A;b Ð…Z¶e¯D™2Uª”©^ÀŒëe,[»yùîáÂ1B@€PÑ 8°RBÅŒUÊ”ÓÊ”®XºvÅÚÕ«W/eÙÖ½k×Íš 7Lh @Š£ê˜è` – °ôR¦Ì˜.Q¢^íê¥Ì˜²fÖ¬Yk&Íš1Q¯4þá¸SãF øh…Â!4¸@ŠØ²fÒ¬Åò ˜´nÖ²y7NÚ.€  ÔèU H’ á Á:p@…/À”5“&M1S¢€YóæÍ›7oÞv9$HP!P½”EAÒÉT„A#€€f,³&͘²eÊŒízµËÚ8kÒ–ö©P A>)³f ‘6gJI (àl™²^»vS&m™1cÝÚõzÕKY/G…úS¨W3iÞ„‰B€‚ $ºtÉc‚‚­nã¦#Ö«°fݼuëæíU/kÖˆíòh̘5JíêæN[£$ L þ¤‡¹æÍË÷nÝ·nÒ€“6Λ5oƬyë– X£5c¤Œäɘ´lîÚ­â"C… ܈«W/_=}ùÞ½[7ÍØ1kÒ¬yË6nÀv½<*3¦ G¢bíjæ­Ý}úòåËwïÞ¸]¦ ý1Sæ @€jôÉ”2oïòåË—/_¾|õêÕ«W/>^½zõêéÓ§OŸ¾|ÖLr¨Ì˜2eÊ”)³P#QÀʽ»—/ß½|÷òåËW¯^½zõêÕ«W¯ž>}üøñ !ù€ ,+@‡!!%(!!###$!!%%%&""*##-&&*&&-**-++-''2**1**5..6,,2--9,,:11611:22=55:55>99>99://@66B22C77L::E==F::B==I>>M::J>>S;;\AAJAANDDNEEIBBRBBVEEREEUDD[IIRIIVMMVJJZJJ]MMYNN]QQ]UU^QQZDDdAAnBBoDDlNNbKKdLLkCCpGGrDDqIIrJJuMMvMMsNNxRRaRReVVbUUeSSjVViTTmZZcYYf\\fZZjZZm]]j^^nUUqQQsSS{PPzUU}VV~TT{YYqZZu]]q]]vXX]]y\\zaan``kkkmbbrbbvffveeraaybb}eeyff}kkvjjzjj~mm~mmz}}ss~ZZ]]ƒ^^ƒ__„aa†ffee…ccˆeeˆffŠjjjj†mm‚nn…hh‹kkˆjjŒmmŽll‹ooqq‚rr†uu†uu‚rr‰vvŠuuŒzz†yy‰zzŽ}}Ž||Šrr‘tt“ww•uu”yy–zz—~~‘{{’{{˜||™~~š‚‚Œ‚‚’‚‚•……–……’€€›‚‚††š……žŠŠ—ŠŠ™ŽŽŒŒ›‘‘ž››‡‡ ˆˆ¡ŠŠ¢¢¤ŽŽ¥’’ §’’¦––¡••¥““¨””©——«••ª——¬šš£™™¬››®¯žž®™™©žž°¥¥§¤¤¬¨¨«¢¢³¡¡²££´¤¤²¥¥´§§¶¦¦µ¨¨·ªª¶®®´««¹©©¸­­º®®»¬¬¹¯¯¼°°¼²²½µµ¿¶¶¾°°º¿¿¿½½¾¹¹½··ÀµµÀ¹¹Â¾¾Å¼¼Ã¾¾ÈÃÃÃÀÀÀÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÉÉÉÊÉÉÊËËÌÑÑÙÜÜâééíþO‰êÔÈ!@bœ,A$H A‚ $H#KÐxÊÕÊ‘#XÉ„íÚµ‹XµpãÆ¥[çJÔ§N‹ $†É$G‚ $H A‚9‚„ 1büäª&Ø®]Ä¢q .Ý:X§DurÔh‘!?`–,Ar$H A‚ $È$H–,abˆ6iÄ„ KV­[¸qéÖårUê“§NŽÃd $A‚ r$È@š Y²Ä‰Ÿ\Ò°US–,Y4pá N™0X§NÕi 1`˜ 9$#]T Xó‚† %b\I놭Z³dÊ¢qëÆ [4iؤùº+W®SŽ þùÃD ’ AÒ<¡rHŠ(R¨Ó)Y¸nؤUkÖ¬Z5€Õ¤5“®[5bÄ’%Û%ª“¡>`˜ aB*ÊY«LDÀq¥Žˆe’… n\¸jÒªI“V ·pãÂa«†¶dÂNu2ä%kôLªÃaÁ‚¬TÈP1+\¸pݰIS–ÌX2iܸ… 7.\·páÂ… ®Z²]‡òd‰ÑBÄ 4¼ Ãb„(ϰISFÌW®\»ˆ%«Æ-ܸt鯥—Ž]¼x쩲4)Ëxd¢©× * YÄ-Y®S§D}•+Y5náÂK—n]»xöðá³×MœUf²´xþ`¡E «êÐ(2 FW»N‰õIÔ©\͸uëÖ-\¸qëØÅ³g¾T4ô¬Ê”g‚¢t¸C††… Ä&,@bÂv kÆmÜ:nݺ… —n»xñìiÓ’ÇÒ$EOD0EËEf2ÄÀ EŠUÕªU«­Z·uìâuën\¸tëØµ[7.L‡Ì˜áBÁFŒCi¸©2"ƒŠ "4øXǎݺtëØÅ³/¸péÒ¥KÇn]8eO"¥T+R"8Rî¼9´% €T€@£Ã3|øðÙ‹oÞ¼xàªUënܸqãºaŠtéZwR”…7  ¨á þ@ 2%PÍ›7/Þ»wñâ½[×­š¯]ɤI«ÆÍÒ&EpÜðØ”gÕ¡-"¸h™’cÊRÈ1qÅœ9sæÌ™{÷n»u؈‰uêT.Xš4mÊ´…Æ*KwxÔITç”Yž(°à-œ™3gÎÜ»wóæC7ޱRŽ:}zu X&wÍÒ”æŽ&E•¨T0‚G9jPHÊœ9sïÞÍ›76tá°ùúäh‘®M«ž¥JiÖªLjÉEKU¥C:u؃H ;æÌ™{7oÞ<|ÔÂÅ[§M1X‹Ž¥Z5ƒžI–V±jHÕ¬U‘*•á@„„OJ@1gÎÜ»þyøðá£&®Ýºn¾r¹z´LϦ ¤È²$ëX&U½jÅŠrF… 4°`B4sðÞÙǬ]»„%–ËÕ-ìä¹’GJ$Mµ€­šÔKÖ¨WldÓ Ã3Ž™ƒož=|ørå*åj1_»¶8Xc‡Í+nj½Zµ*JƒU‰^Pxp†9] €“9sïæÍ›‡Ï×.X­Nrµë ‡¨®üˆ2ÉÍ(U™²ø‘ÂŽ5ŒIác|Ì™3÷nÞ¼y¹`Õi‘#WºD,pƒÅÀ–Q‘X)ŠÔë˜,Y²|hÐr†H HðñîÝ»wóæÍUJÔ§OŽþ:rc£Ä¦+P¼ÀDIS$U©,)Õâ•39l$€Ðâ ˆwóæÍÇ_£F:uê$J”¦-[b¡ZcÂǬ:šÒЪ’fS­ :|xÀ!Á"¼»‡>|ø2´h‘£NŽx˜¡5kÒL´¨¥¢e)‘‘DœPaù`Æ‚ $P Àœ=|øðáÃ(P @ ¢8‘f© nU·I¬RM8ÉÆZ²¬˜`b  ÌáÇ>|€üøñãÇO1Ìp¡iVª}î¨Ñâ2*§(àÌAB†D£l,P€>|øðé#FŒ1`À€)!ÅR$K‘ò¤þã×OÖ&Z±2å©SGP$rä±ôBAmøðáÓ§O&L˜0YÂL \êd0é¶UÀˆùªei’¥9‚ÜD˜afJ ·Ž]¼pé A‚‰’%LH‰°q¥€µ8Íz6gT¥Hr”Itg”9‚º,X`€Ô)Wĸuë†ä$H,aâfR,À4 °Y©¸øhaJ¤I8äÌA¤£Ã~5EŒ[·#H,YâDŒ-%”X¡Á ¯hv‰V‹V"̈”†Ë™.U\xhQ#Qªu[âŒ4~5¢¢  0'Ó+Kˆ®D5þɇ&("Êœ¡b`@…@<ʵ‹˜˜>9ú”+—” Ä “TÉ’ƒ)—Uw.½±Ñ%Í¡ZˆºÕ ¬FüZä¨Ó©[·¨P)çG:lˆD*UªZ"p¡tèÐ!M£,Í0ÀãV'CžN³¨‘£NžD‰%瀉êd¡…M–biꠠäC‘*ªSgŽ*‹Ä€éÍ’O¢>‰*õÉ“§2Et¸#KS ‘m¥êÎ*Uª$çÍœIQìFL@h˜8:ËU©N ª²ÀZªîˆ¢(-M‘4ýPðáΡ9wL´@µÁ þ0_Ðøñƒ†‰£R®J92dhÑ'1[(Ä€C†•¦T½tiš“f†‚UÌÉa"B¤;˜8 &K>‰úiÑ¢FDùcÂŒ*«TmÊ´*Q"´@¡A–Q¨$ˆÁÄ 0L˜,ArêÔ§N>}õéQ”ܬQEC…^ΠH  ÇŒ>²\B1#A 1hüøé#Œ“]·N‰%ꔫV§•(QaC&D¸™c©Î‚JQ$GÑ™ 4‰útª•§@~ÄT“FÌ×®\·v“vH‘ f¨ØÉ2uÜ´0° H™2^ò<ø LY2]°\Áòägܸpþݤ ËE¬Z:TGMH!` (Ц”ðb‰Æ‚)Jó†‚;تIó媕+W¢Ö‡Ø­\ɪ±Ó¶âÀ J(Út¦F‡< $€ð¦Ì (Ã&˜.W¢D•…­š´dÂv“–®ž½8TXA—59r´X°`Aƒ4:hpˆZ5e®J:UêT©]¹ˆùò•ŒÛºxöêÅ"S€@ šsdž2ì  @@ŒQÉ’»õ©Õ-X·rÁºµk×®dÜÒ±[Ç-š–HŒ€Pâˆ96 x@%‡Òì"–Œ,Q¥\åÚ•ŒX2eÕªU“&-š0Q°NþÉQ„–²’¥N2JTqJ˜2eÒªÁêTÊ—´nÕªu ®Z.€Ÿ ä¨U™ @¼ h0gƒ#UŠˆ ÐÂ9Â’5k&Mš¯V¥|UëÖ­[·pÝr9"(¡O¹’)1äÀ…9ñ#À ¶k¦ŒX2eɈå‚å [·jÒ’óõ) C:%‹V- ĨCN—.A,Y2_¹v KÖL1bÜÒírµ+Ù.H‹ùéchW3i݈yÉ0À)ŒœAQ C¯pà¤ù¶k×®fܺqãÖÍÕ®jÑ„åêä 1‹JåâÖn¢:,Øþ€ÂFÐêų/¸nÒvù’Ž[5nɪuã†ÍW#4`œ€ñÓ‰˜4nìÖaJ1¢ Ú˜›goÞ<|öرK±hѪÃÖmÀu»:FŒG¢\åjÖm»x¶öì±….Þ»yóÞÅ›gÏž½zëº \8vñØ%sä 1uúÔIÔ.iØÂ±›7oÞ¼yóæÍ{÷î]¼yóìá³g¯^=vìÚá³×mW#1`Äô dhQ'GŽNíRÖm½yóæÍ›7oÞ¼wïÞ½›7o>|øðݳW¯^¸\§õ#¦?~jôÉU²qììÙ³gÏž={óæÍ›7o>Þ¼yóæáÇ>{ÕN‰räG 1bĈ#ÆO#Q¾Æ±³gÏž={öìÙ³7oÞ¼yóæÍ›7o>|øôé !ù€ ,+@‡ !%!!"##$!!&%%&"")##-%%*&&-((.**,''1**1**5,,2--5..:--<11611311:11=55=44:22A66B66D22E77I99F<>J>>M::I==R::Y??jAAJAANEENBBQBBVEERFFUGGZCC]MMWIITJJYJJ]NNZNN^QQ^RR\QQTEEcAAnBBoDDkJJbNNaNNeKKgKKkMMmCCpFFrIIsJJuLLvNNpNNxRRbQQeUUbVVeRRiUUjVVmRRoYYfYYcYYiZZm^^j^^nTTrQQzUU}WW~VV}UUzYYqZZu^^r]]v[[xYY^^zaaneejaarbbveetbbybb}ffzee~jjviizjj~mm~ll{qq{tt}xx{ZZ]]ƒ^^ƒ__„aa†ggcc„ff‰jj‚kk…mm‚nn…ii‹jjŒnnmmŽooˆoorrqq†uu…wwƒrr‰uuŠvvzz†zzŠyyŒzzŽ~~Ž||‹rr‘tt“vv•uu”yy–zz—~~‘~~–zz‘{{˜||™~~šŽ’„„’††•‚‚•€€›œƒƒ‡‡™……Ÿ‰‰”‰‰™ŠŠžšŽŽ••—’’ž’’šš›‡‡ ‰‰¢ŠŠ¢¤¦ŽŽ¥¢‘‘§’’§””¢““¨——«””ª——¬™™£™™¬šš­®™™ªžž°££®¨¨©¢¢³¡¡±££´¥¥µ¦¦¶¤¤³©©·©©¶­­³ªª¹©©¸­­º¯¯»¬¬¹¯¯¼±±¼³³¾²²½´´¿¶¶¿±±º¹¹¾¿¿¿½½½ºº»°°´¶¶À»»Ã¹¹Á½½Â¾¾Å»»Ä»»ÊÃÃÃÀÀÁÃÃÄÁÁÇÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÇÇÉÈÈÊÉÉÉÊÊÌÌÌÌþO⤈P ?a 0Y"Dˆ!B„"Dˆ!LÂtêuŠ£]Ë„õòåk5pãÆ[ç ”'N‰úÆ “%B„"Dˆ!B„Q²Ä ˜0aþô²&͘/_Ƥmn]»W§@yb¤(¡>P˜0Y¢Dˆ!B„"Dˆ’%K˜0Bh5iËŠ[F¸uíÚõruÊ“'NŒ ã„É’%B„¢„É@X,aÂÊŸ^Ò®Yc†l5nàÀ÷Y±W§NÅ)ÑŸ0`œ,Q"DH‹!#¶hÑó¡Â 'aZIÛvš³eΤQã¶íZ4iפ ÛõªW¯SŒþý …É!Cd БiŽ›(ÈøÂi7nÔ¤Qsæ,5€Ô¤9“Ž5cƘ-óÊ¡>`œ0¢ƒÆ H]¢ÜÁñk–W8jÒ¢E‹FmÛ5pãÀ]£¶mÛ5fÅZq"ô' Sîl±À£’ EŽœ¨ak8pÜ®Qs¶l3jÛ¶77nàÀÇÚ²^ˆ:œˆ¤*G”C¬$0 +Ò®IcfLX¯^¾Š-£F ܸuëÆ­×î]½zïÆiz„‚†-Jp¨ÀÕʼn!¾¬0ÄmY¯S§@y*Õ 5nàÀ[׮ݻzûøñÛWÏ£v.á™þT‰R&FtØD Z¾Nòä Ô©^ζqãÆ Ü¸qëÞÕÛ·?Upظ™ÒãάC“î8È‹'J”)V¬ÀbÆzc¶mܺmÛÊ·®Ý»zõö=Ûò($w2©ê"ÅN¬!bXÔ¨Q£M·uïêqã¸uíØ½k7îÑHq2MB´†žsv\È ^ti÷î]»víÞÕÛWï7pëÖ­kÇ®¸f^ÌâR¨P&H'ÜÄ S‹‡ dP¨a„4~þøí»wïÞ½zߨ]ãnܸqฉŠD'ÓJ(•9ãeË–4JPˆaDþ†!R$Ý»wOž¼z÷êÉkÇš0_ˤI£v ®Yv®L‚)Ž*…P¼è@ƒB3$t$ˆ¡åܹsçÎÉ“'¯^»qÛŠyòtêT/Zˆð¨¢$È $<¶¼¡òæK‘ ¬Yqà!Ô;wîœ)ÒÑΠ€”C•&Aª"©rSþÈL4¢èœè0 ‰@Œ:êå«X˜>1Õ«×Q€ÀCg&ÑZuF“­K_AB —â€zåêÕ+NŠþJĈө]¯âP C€(vPB„×% 0re*„ÈÐ*J“²H`È'BJý CH#Nž@••¦‚›Hª(X(qB“‘U”´$Ð ¥B… :ãBƒA„„ C( “Nž<*å©“§A'^PšÕCÀAQ^PÊT"DH™é Iœ>8&LŸ?jœ0:õÊU)NŽ%¢ÃN3¾ ñ Æ$3” ‹Ò!;xÈq¡…þ0`ÔüùÆ £S®J1"D(‘'"L¡ÄAÀQ®ÐAÁÆ+kt`pR‚8À@Œ'L<òÄ(Q"Fœ@ÑA€†¡Y0\¸8ƒãƒQP\@Ab@*—^$èÀ (Pœ0arê”'Nœ~ûÞÁ[͘1iÑ®}»ÆmÀv¾8ý &ÌB ^õrV®»zºøð¹•®ž¼{÷äÉ»·oß¾|í¸Çí¸wõÞ1cô ˜0qÅ ”/iÛÀ½»wï^½{÷îÝ«'O^½{÷øñÛ·/_½zïÚñÛ®—¢0`Àô!”H'FŒ@ù’ƭݾ{÷îÝ»wïÞ½{òäÝ“wï?~üøíÛ—/·^§© ¦ÏŸ?Jäi×2pïöíÛ·oß¾}÷îÝ»wï>ž¼{÷öñãÇ¿}ÔNbô'L˜0a„ £æ¢RÂֽ˗o_¾}ùöíÛwïÞ½{÷îÝ»wo?~üøù !ù€ ,+@‡!"%) "##$""%$$%""*&&-%%)((.&&0**2++5--1..5++9..:..<00622:33=55>55;99>..@66A33E66J33M::A::F==F<>J>>N>>R??V;;Q;;\44P??cAAJAANEENBBQEEQEEVBBTGGYBB[IIVNNVHHPIIYMMZNN^JJ^RRZSS\CCcAAnBBoFFmJJaNNaMMfJJeJJjNNjNNnKKnCCpEEqGGrJJuLLvKKrNNxQQaQQeUUbVVfQQjQQnUUiUUmZZeZZm^^n[[jSSqVVqVVuRRvQQzUU}VV~TT|ZZv]]r]]vYYrXX^^y[[zbbmjjnbbrbbveeseevcc{bb}ff~eeziiujjzjj~nn~mm{qqsszyy|ZZ]]ƒ^^ƒ^^„aa†ggcc‚ee‰jj‚mm‚nn…jj„ii‹jjŒmmŽoorrqq†uu…uuŠssŠyy…yyŠzz}}Ž||Šrr‘tt“vv•uu”xx–zz—~~‘zz‘{{˜}}š‚‚„„ƒ’……’……•‚‚•€€š‚‚œ……Ÿ‡‡™ŠŠ––‰‰™š’’ž““••—†† ‰‰¢¢ŽŽ¥‘‘§””¢““¨——«••©——¬œœ¥™™¬››®œœ¯ššªžž°ŸŸ¶¥¥«¢¢³¡¡±££´¥¥µ¦¦¶¤¤³¨¨·ªª·®®·««¹©©¸­­º®®»­­¹¯¯¼°°¼³³¾´´¿¶¶¾±±»¿¿¿¼¼¾¹¹¾±±³¶¶À³³Ä¹¹Â½½Â¾¾Å»»Å¿¿ÈÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÉÄÄÌÉÉÊÉÉÊÊÊÌÌÌÌÏÏÙþS• 5©Q#Dj°T™‚ $H A‚ $UÔ„¢•ŠR(ZÊ„ý&LÙ´oáÂ…C'«Ô¨P’5J¤ÆJ•)H A‚ $H ‘2¥J5jѪ­0`Å¢mûö :Z©J¢4iR#DiªP™‚ $H A‚‰”)SªTIÓH™µhňS6mÛ7têÔý’•jÔ¨P”&)Rc¥Ê”)H A"eJ %b$©R ¢_ѬM[vLY4oá¾…ûöm1_©R¥*J"5iªL‘‚ ’$K ˜ á“*jdE³fmZ3eÍ¢MÛ¶Íš´hÖšóå Ø¯T”þ!Rƒ…Ê$S®0ÑÂa':=¾¸8JÙ¶mÓ¢MkÖLÚ4€Ó¢5‹ömÛ´bÅ”)VªR#Ci¬LIBBŒ)GŸZ™êÄŽŒ”} ÷í›7iѤE‹&ÍZ¶pá¾Y›f-[¶eÄb…j„(J »r½jeë@@tPPëÛ·oÛ¦Ek¦ì˜2iÙ²}ûîÛ¶oß¾}ûömš²_\Š ÐÅ«Ó#]|^™Á„%Ó¬ESVLØ/_Àˆ)›fí[8tá¡C§Ž]¼xì¾ ²E…L™pᲡCŒ$]–(Ñ´MÙ/Y©J*LÙ´mß¾…C‡Nݺxöò峇-Ș-p~<Êþ×– >D0ÂZÂR¡B5ªT*`Ͷ}Û¶í[¸pêØÅ³g/Ÿ=:[8Ò£ç ŸSĨä‚‘-Èœ!VŒ@bÅ~k–-œºlÛ¶}û†n;vñì=2&¥LžL=²”© dFðР$Ë—XÓ¦M›-Ú¶pìâmÛöíÛ7têØ±S§ŽÓ#L|´\2ÅgG #N¼èðƒDL‚Q:uêØÅ³ïÛ·oêÔ¡S·NÝ·e_"]⣧&=\„¨ÀPá #ŒH!äÂ3~ùòÑ£G^¼xÞ¬YÛ.\¸pá²½Òƒ†—,¾äqÄ“z®œÁ0¢þÀ2 Ñ£G/ äjW.OD©B1A ì€yR¦Œ—G¦ž‘ƒž½|ù~ýB• X1a² ó¡•*\°ZåâE Y–tð‚#¹¹@9rðèÑ£—O0Z©J¥’Lžap Û•é•-K–8µÂc„J2IHÌ!ªÈ‘ƒï½|¿h¥*J%Y8б°Ë’­Wè¶ásìQ§@D\¸t©F™?z²€D¼wôèÑ+…ªÔ¨P”þB¥ò¨H„žrµj…¬Ÿ³hL©Ê¦ÅƒH4r˜£%xôèÝË—/ߤI•B… ª ^6É…KW¦?隥ÓôèŒ)=±€† <|ÐË—/_¾|ù)j$I¥P¡òt B¡˜+S®øtj‡kÑœ2N˜ðôªU§"›¾„‰àƒ^¾|ùìí˧H‘"EŠ5j„FW°ôxòóªV4SzÌt˜iÉ’V¯x™ÒdÉ 4ÖåË—/_¾}‰%J„‘¡8F4uÊejÑ«¹ŠEëäΣLJá2åÉT¦?.4/_¾|ùøñS£F5iÒ¤1£ÉŽŸWÃyþpeÍÑ¢GnÚ”ãI›H‹2-iР vöòåÛ·oŸ+V¬T©bÅÊ< C†£ža™ô´q$ç‘'MzÚ\‘“IGƒ >Dû¶Ž]¼oè¦L™2eJ•*V\@€¦"09Zå,7|Íá#lj=54hBV*YʲyÛ6eÊ”)SªTIãá@jDáé‘#3ºv]ºäèT›3e.éùÐ`ÁŠQBU,Û¶)S¦T±‚E "  ( @ ‘G|<³ [-(|ôÈy…«Ó ƒ¨‘¤QŦm«‚%CˆMj @€&X¨%çULŽ<¸y”ÉÔ¢Eœrµz¤'G@B•ò•Š­I“ )’D)T*_¾À©pƒBÄ8âCC–G¯äðy•k¦14ØqŠV¨F¡R!RÓHR¥P¡J¡*µ('A PèÐÁŸ hdräè=Æl¹° BFÔ¨Q£HM•P£F•*5*T(Fy6©@Ç š.™ ’âQ'>y€äæÜ\I“F!Dj¬PJ%KªP”(QÒ’Éð€« "5µÑ(AŽ](Ð@Ïþ•4iâ B¤Æ ¥T²PQjÔHÒ¨˜aºpàA:bT,ÀÑE ! 8ˆc‰B mÐ`I“&+UF•EIÒ$J¡JqÁ#ä¦<\,…R)Ü)`‚1( XØQK,X¬T¡’*Õ¨P¡F*5ÊÍŸ ®l¹Re¦†4ì (ÂN"ø<Â` 5j!2¤& a¿R•*U*•,Y§zDðs‹ .~IØ‚CC | P¨áƈ.•U*V(E†ÔX‹vŒ°_¿€‹¶¥‡Urø¸Ùˆ€dZT¡À’,L(H±l™2`¿dÉ …(\¸oþÙšûÌÚ:K âȉ“Èp(P€ 9-²tñ2Ä‚:Öª5&+•,Y¥Ô…û6­_ʦ±û–¥†„/ €`A:Ú´ÃD‡)L Ë­0Y¥J¡*emZ4eÄ€‹†®ž=)4Þ;zôèåË—/_>{ÓR¢„H 5jÔ¨Q‘¤RÂб³gÏž={öìÙ£GÞ;zôèÑ£G^¾|ùöí !ù€ ,+@‡!"%!!###$!!&$$&"")%%)&&-"".))-&&1''4))1--5,,3..9,,=11622=66>22:99>..A55A44C55M::B::E>>F>>B99I==J>>M::N77Z>>R<<[33PBBNEENBBJAARFFQFFVAAVBBZCC^FF\JJVKKSIIYJJ]MMZMM^QQ^TT\QQVFFcAAnBBoEEjJJbJJfNNaMMeNNnKKkCCpGGsEEqJJuOOqLLvHHsOOxRRaRRfVVbVVeSSjVVnSSlZZf[[dYYj\\j[[mRRqUUrVVvRRvQQzRR{UU}VV~UU{YYqYYv^^r^^vXX^^y]]zaanccmiijaaueereevaaqbbzbb}ffzee~jjtjjyjj}mm|ss|{{}ZZ]]ƒ^^ƒ^^„aa†ffccff‰ii‚mmnn†ii…ii‹jjŒnnŠnnllŽoorrqq†uu†ttƒrr‰vvŠvvyy…yyŠzzŽ}}Ž}}‰qq‘tt“vv•vv•yy—~~‘zz’{{˜||™~~š‚‚’‚‚•††•„„“€€›‚‚‡‡™……ž‰‰––ŒŒ’ŠŠ™šŽŽœ‰‰ž’’““œ™™Ÿ‘‘“‡‡ ‰‰¢£¥§’’§––¢””£““¨——«””©––¬™™¤™™ª™™­œœ¯©ŸŸ±°¡¡§££«££®««­¢¢³¡¡²££´¥¥³¥¥´§§¶¨¨·ªª¶¬¬²««¸©©¸®®»¬¬º¯¯¼°°¼²²½´´¿¶¶¾°°º¿¿¿¼¼½¹¹½··À··Ä»»Ã¹¹Á¾¾Å½½ÂÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÆÆÊÉÉÊÉÉÊÊÊÌÊÊÔþO‰úÔè!Ae¤8i2dÈ!C† 2dÈ%LØ|êu $^Ê€ùò嫨µpéÆK×J¨OTŠ“&C† 2dÈ!C† YÒʘ2eõ²F­˜/_Ŧu Ž;X§D}‚ÔˆÑ!AcœDi2dÈ!C† 2dÈ’&Mœ8‘r(Y6jʈSví[¸tìØõju ¨O*ÅI“&C† 2dˆŠ!T qâDÊ ^Ô²][VLÙ´oé ÷Í1^§Jõ‰Ñ 2cœ4i2dH8ðâH(eZQË–íš3eΦ]ûö­Û5gÙ¨ëÅËW¯Sþ *¥I“!CŠ4 @à ?ˆ”1ôIÙ·oÙ®][æìÚ5€×¨Q£îÛµbÅ–-ó%*!@cœD!b¡A z 1áÁy”… .Ü·kÔ®Q£F-[·pãÂu»v­[¶eÄN}:4H 8N<À‘êM t˜Sk\¸pß®Qs¦L™2jݺ… 7.Ü·oáÂ… ÷íZ±[ræ¼a@¡T–ViqaÇѺ][VÌW¯^¾ˆ)»Ö-ܸtãÆÇ®]¼xíÂíùñc /•&±¡$ $&Œ€qÔmY¯S¥D:ÕKÙµoàÂ¥KÇŽ»xøòåÃ÷¬ I˜HMòþƒ4”(áó¡MX¾N‰JÔ)_ξ…ûö-ܸqéÚÅÇ/¾*}¬¬ÂñCÑ¥;–R˜¸"¦†¥YЈ!V¬@bÅ|sÖm»oß¾… —Ž]»xñæ!;±GN¢yIRd+ ;JŒè£æ‡U×®]»FmÚ·tíâ} n\¸tìÚ­c—®+?ð R„I•*K‹¤(c•<’2ä`×®;vìÚÅÃ/Ü·p騥c׎]¸aa¼ð¨’ÆÒ¥B–&QIÓMŠÌA'ƒ´|ûòá›7oÞ¼xá²eûnܸqá¾m:ƒÈND˜F!êA¥†%Wn$°`Ãþ„œ:#âÌ›7/Þ»xóâ½c÷í0_ʨQ»Ö­Ð">#4aÚtÉ’ž)GÀ¤9a倃 ¨l¨Sœ9sæÌ½{÷n»t݈uêT/_Ž.Ñ™²jS*/m¼Ì9èN4!<ø Eo¤™3gÎÜ»xóæ¡c7ÎZ±S>‰jEÇ’¦W¶dåêƒÈŽ F qA£ƒÂ„";F,âÁÍœ9sæÞÍ›7/[6t㲉‘*-›báÊ…+—¦=©èèÑæÍ¨5Y<|A4IaæÌ™{7oÞ¼|ÜÂÅc÷M0XŒ*É©”‹V-d¹úàJE‡Ÿ={0YQ‚L¡^²tBgÎÜ»þyùòå³6ŽºoÀzÁ¥G'N«R%Zť¦7xñt'  jleà‚È :sææáË—/,_¾Š)+æ«•%#4Q+W¬ Z8YYeE‡¢,ªŒ@ sÉÂKu¤™{÷n¾|ùzõ*Õ X1`ÀVÁ¡«K*NÈb¹ Ä,Õ´ }1Í„DÄ¢£H–9sïÞÍ›—˜/^§Jjå+SŽ-¨èĦ+V-ZÈ$ÍxCJÍ¥Mw ¢eAžK¨Ì™{÷nÞ¼y¼Z©¤VsrY5ê•5a¸jÉJ…‡ÏDa6RTH¢6TIõÎÜ»wóæÍ%J¨O‘þ>ºõƒ¥T\dªµª–¥5xh,j£èÎGaU‘ƒÄ¦yóæÍË—/#H"}úêÔœ:íq€ªÖ°X©îØÓ¦Mš«’ñ³„ÈQžB– J“¦Í =r88à@ç]¾|ùòåËGˆ!B„:tÆÊ&L2ì±Å ™"U˜ Ýx§"D¤}ñB"BtâåË—/_¾|‚ $H 6O.i£ÃAŸdÉRŠ6ªMž;–%I¢ŠD""0˜â._¾|ûöí+S¦L™2cÆŒ Ã…Ï” ~HþB4‰²;nF!šæK5/ìl¡ wùòåÛ—o(N @q…ˆ /F8ðÂV­KÌ ¥É³iÔ•5£¾ÜáaÇA‚ ôPÇ.^¼péš4iÒ¤I'P0…*¸&Y‚ S¡;yò(â”g’­ 8HÐ¥Õ©Vź}ûÖ¤I“&Mœ8" @"£5 I´mÔR±º4éR.7yät`  Á=„5U¬Û·&Mš8"¥Ì <  b“¦M'jŒ– ™0K—V¥Ê“ÆR‡ ¸4è#PÀ¨us"eL@ƒ5²àAƒ 2u¹D!Q¢hÈ„Råþ¨W0a*(@@ŸCŸ@ê¬X@„AÕ«0Ðe¥ tN ¶Š–:XÅìºC@m0‰‚ÕŠW«ObéÓ)^°¸p°`  ¯hlбSŸD«ü¼ÙôI“— 6Lis‰×§CŸN *sˆ¤O D‰…i 4À%'›{´lÓÀ—[[ÔŒØà`Êš,ŒÊŒ)C¨Œ“O D‰*êÓ§E“ª<¸-5$Èñ#‡t™òãÀV®°3¦ Al |:ÕªÕ©O 9¢T%.öᔃœUp€Dž,S p€èþ‘1c Ä ¤S­NA:t¨¨TV0ð¡J% ª¨I¤èƒЀ™ÀD: HSf (N@‰#HŸJÂ!©JU~laÄŒD<8 E<P2áDÊ)P 8irê¨OŸ@%ÊÒ Eyò$Ò@i/d©³‚…#:.Q:Ã3l TfŒ_½Z‰%êT«VªHÌybd ….$d !ÀD›(x¹„ÇÄ H‰uªÕ'B€Êd£V ˜¯^½€%£öÂBž 6ðq…‚WÚLxð¡È‘5;PAm™2_¼ZÁú$hܸqþÝœëìÚ¸L èÀP!ƒ 8’&Ñ…UVØ¡¢ã?Ù®9«U«V¢ØC—/_Ê®µÛ"ÂZb0p`À‰$]HÈ@£¡Ð#,0ËF­X¯V¥D•íµdÀ|£6®¾4±†C„4¨Á±Ç `f€pÃZ6g­DjuêT)_½ŠùòU,»xøêÉbÐ@à  pC+ ŒÜØq¡UÉ”ãª/X°xÁâåË—/eÝÒµc×횉ä P€Š ]z`‚ ~+V¬¯R¥Zõò¥¬˜²eÙ®]svZ±R­Jþyh@ÀEŒVN|¡@€èÈqñªØ²eÔ®ñútÊײo×®} ÎZ/€  "Ô¨U )(ô¡£‚€ >p¢Ç<À–9sFͰV¢€]ûöíÛ·oßzA"DˆÐ!P¾”Å8Ñ A ` @ƒ:Œ,£æ¬˜²eÊŠõ‚åëÚ·kÔ–%öiÑ C>)»F-Ù‡  p€@€bÄÈâË™2`½|SFmY±bÝØùjåK™/HŒ tÈ—3jߢÅ@“¢,¤Ðf¯nà¦+æË—/gß¾u»ö­•¯k׈ñú$hÌ6ŒJõúÖ.ZF\þ0Ã…EãðÅÃ/\¸o×€£ö­ÛµkŦuëvÍW£2c¤Œ!ô©µlîÐéap€@€ .R™›‡o¾|øÚµcw­X±kÔ²ë.Àt¾> *3¦ H¢ZõZö»w»þøÙeîÝ»xóÞÅ›‡¾zìÀ ÷ \¸xõØ)ƒDh̘2„}õI”/jÙµ›7ïݼyóæÍ{÷îÝ»yóðåǯ^½xíØí«Î#@cÆ"tˆ$HDùZÖ;yóæÍ›7oÞ¼yñÞÅ›7o^¾|ùòáÃW¯Þ·^§•!S A‚bª•²oíðáÇ>|óæÍ›7o>Þ»yóæåË—/_>|×N‚$¨L™2eÊ”aÃFP#QÀÂÅ«‡ß<|óæáÃ7oÞ¼yóæÍ›7o^¾|ùòí !ù€ ,+@‡ "%(!!###$!!&%%&"")##,%%*&&.)).**-&&0))1**5--2--6..;11622:22=55:55=::>33A66A66E55J::B::F==E99I>>I<>Q::Q>>^44Q??dAAJAAMEENFFJ@@DCCWFFQEEUAAQEEYDD\JJULLTJJZNN^KK[SS]DDeAAnBBo@@jOObNNeJJcLLlCCpFFrHHrJJuLLvLLqNNxRRaUUbVVeRReRRiVViTTnZZg[[dZZn]]j^^mYYhRRqVVqVVvRRtQQzSS|UU}VV~ZZpZZv^^q^^v^^zYY}aamgghaaqbbveesbb}eezee~bbyiivii}mmzmm~hh{ppwqq}ZZ\\‚^^ƒ^^„aa†ffdd‡ff‰ccˆjjkk…nn‚nn…ii‹jjŒnnllŽnn‰oorr‚qq†uu„rr‰uuŠuu{{‡yy}}ŽyyŠqq‘ss’rr‘tt“ww•uu”yy–zz—~~‘~~•{{‘{{˜}}™~~š‚‚‰‰Ž’‚‚”……–……‘€€›‚‚……™……ž‹‹–ŠŠ™šŽŽ‰‰ž••—’’ž––Ÿ““š™™ž‡‡ ŠŠ¢‰‰¡¤ŽŽ¥ŒŒ¡§““¦––¡““£““¨––«””©šš¢šš¤¥™™ª™™¬››­œœ¯žž¯œœ«ŸŸ°°¦¦¬­­®¢¢³¡¡²££´¤¤²¥¥µ¦¦µ§§¶¨¨·ªª·©©³««¸©©¸­­º®®»¬¬¹¯¯¼°°¼²²½´´¿¶¶¾±±»¿¿¿½½½¹¹½··ÀµµÀ»»Ã¹¹Á½½Ã¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÇÇÈÇÇÊÉÉÊÉÉÊËËÌþIy„(Ÿ>cœ,I"Dˆ!B„"Dˆ!JÆhÒµ*&WË„éÒŋصqåÊ­[ÇÊÓ&L‡ê3†É’$H„"Dˆ!B„A’„ ˜1cöèº6/^æu7n];V¤Q"Ä¡7T¤)ƒþL‘ ÖÜ»wžIÕ™Bª`A¡a‡4tòîéãÇŸ+^¼†-Æ‹•¡¥ŽÙ*ôÇÑ+n·R=9• T%C(ä:«¡#¤¡C'ïÞ=~ütéEJ1^Â(ëVª`¶„*d‚M,X¨JQ"ð¡T¨,Eò¡€:tòîÝ»ÇO/W«H‘bÅ Ö‹R¯náBv… )…RÕšæ+Õ)Y° ÅŠõÈ ¦Ð¡C'OÞ½{ºX‘ò„éP"Vy^ÀjT犌! ÁE)X¸?ŸZ V«V­Z?vø(%OžìXPóiJ™7„l9H •¥c‘"ÊBȃÞñãÇ?{öìÙ³gž1^z8ÃN cµ^€xìX¥<ªî|2„…¡: œ@¡Ž?~üøù3f̘1`À(Áb£nþ V'B%[Á‚¹Ñb¥’?µQ€DvùøñóÇÏ&L˜,Y¤‰qì2U3Œ«óÆJ‡±è0¸‚æÈ$×îÝ»qí’$I’$É’%J K­I¥ŒáÙ,˜›?;$àt!@À]˘-˵i•®\®t¹ÒÅ‹¯aÚÖ½k×­Š.€x`C 9DÎ)RÁ ñZ¶ŒX.Ož\éâEŒØ²g×®]{ví1O¬@þ9ÐP D8¡Á$ œ€"Œ3fÓ®åÂ$гp×®…Wîš.€šùñƒˆ8hxC¢ÂðÄ K–1{6í™0Rž†] 7.\·pát%òÓÇO M¼˜Á Á‡  p0áÄ ¦$›öŒØ2fĈér¥KÛ¸kÓ˜¶ÉOAˆ6-»v-Y  ĉ"6j (rŠÙ²aºt [6í1báÚñb%l¯Düìو׳iá’‘ráB€!z4ªäˆªpá¦ñ¦‹¯gÝÂuÓŽ¯k׆éÒ´ ˜1‡DéÒö” T€þ@¦Ò'CÑðÑËGOœ¸pÓx «&®ÛµnË®‰Ó¦MX¢1`œ€éƒiØ4mïÔ­Qp@@(eZ¡»—O_>~ùÞ½‹7±jÕ®‰ÓnÀq¼0éfÌžD¢\éz®Ý;t¸L™¢¥Nž¼{òäÑ»—/_>|í•'NܸwôÚ1Kä' ˜1~iò¤É¯iÚÆ½»wïÞ½{÷îÉ“'Ož¼{÷îñË—>zïâñË7Ž¢=`Âèñè£D‰Dñz®Ý½{÷îÝ»wïÞ=yòäÉ“wï?~üøåˇ/ß8]¤é3FÏž={ü:¤‰Ô²rïèåË—/_¾{÷îÉ“wï>Þ½{÷îñãÇ¿|×HyB´g ˜1cÆŒI“fÏ!O¼Ø½Ë—/_¾|ùòåËwïÞ½{òîÝ»wï?~üüù !ù€ ,+@‡!!%(!!###$!!&$$&"")%%)%%-)).++-&&1**1++5--2--5//9,,:11511:22=55=44:99=..E55A55E44J99B::E==F==A::I>>J>>N==Q;;]66S>>h@@DAAIBBNEENAAQEEREEVAAUDD[IIRJJVMMVJJZII^NNZMM]QQZQQ]UU]FFdAAnBBoDDoLLdKKjCCpGGsEEqIIrJJuMMvOOxRRbRRfUUfUUbWWjSSmYYf[[cZZjZZm]]j^^nRRqWWrUUuQQzSS|UU}VV~]]q^^vYYtXX[[zaanffnccjeefccraaueetcc}ffyff~bbziiwkkuiiyjj}mm{ppvqq~ZZ€\\‚^^ƒ__„aa†ffƒff‰iijj‚kk†mm‚nn…ii‹jjŒoommŽnn‰ooqqqq†uuƒvv†rr‰uuŠvvzz†yyŠzz}}Ž}}Šss’qq‘uu“vv•yy–yy–}}’{{˜||™~~š‚‚„‚‚ŽƒƒŠ’‚‚•……•††“€€›‚‚††™……Ÿ‰‰•–‰‰˜šŽŽ’’ž““œœœ’’–‡‡ ˆˆ¡ŠŠ¢¢¤ŽŽ¥¦‘‘§’’¦––¢——¦¡““¨””©——«••ª——¬šš¥™™¬››®œœ¯™™ªŸŸ°°  ¡¤¤«ªª®¡¡²££³  ±££´¥¥´¦¦µ§§¶¤¤³§§»¨¨·©©¶¯¯·««¸©©¸­­º®®»¬¬¹¯¯¼µµ·±±»²²½´´¿¶¶¿¿¿¿¼¼½¹¹½¶¶À»»Ã¹¹Á½½Â¾¾Å»»ÄÃÃÃÀÀÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÆÆÈÇÇÊÈÈÊÉÉÊËËÌþAqÂt>bž4YR¤H‘"EŠ)R¤H‘"JÌhÂ*Q"[ÉzåÒ¥ËX5rëÖ­k—ŠÓ¦E†â#ÆI“%IŠ)R¤H‘"EŠI²¤É—/bøàª˜.]Ĩy#G®;V 8iJtÈ =Oš0Y’¤H‘"EŠ)R¤H’%Kš4yh™¶hÄ„õJVM¹uíÚáJõiÓ&L‰ùã¤É’%EŠ)’¤H .ZiÒä \Ñ´USf,µoëÈ™#'N™0V @â„É1_š,IR¤È‹ X°à‰/bR1Ó¦­³dÌ¢UûöM5fÚ˜õ²ÅJ.P‰þñã„É’"- @AƒÐy£)Ù·oÕªUS¦,Z5€Õ¢1‹Fî[5bÄ”%ÓÅ  =_š,iq€68@@Á5o–‘#GŽÜ·hѨE‹F­š7rëÈy«æÍ›¶dÂRaÄɃ,€0a‚ jàñ‘Ë9rÞªEc–,Y²hÚ¼‰#·Ž¹oâÈ‘#G®š±U@p! 'ô°Ñ` ’#Õ¼EKF¬.\ºˆ%«¦ÜºuëÌ™3×î=zïÈÕ@@@@:|<ÂÒ Š)œ,QäM®T 8mâ„ËXµoâÈ­[×®];zûøñÛ7+JºþÃÆ ¡ xHQQâ\½B}úĉS*\̾‘ûö9síÞÑÛ·ß> £M‘eÁ0&Ë… 8TéEL@aÄt SæÍ\;oß¾‘#·®Ý»wôðÕ"@àAƒ>*I¢R&R %DxX°ÀÁˆUÕªi«Ú·uïè‰ûF޹uíÞ½k×NHT”Sê•§SÁâb¡Í…&øh÷î]»víÞÑÛGOÜ7rëÖ­k¯¹e%H¨`#ESÏ"™‚t† ™;<¨ˆ° Á3~üøíÛgÏž=zâ´yGΜ9sä¼…â@`†FrNÉzè$%ºôÐÑÊþÊÖØ³g^¼xöìÅk÷­Z/]É¢E«V­=È0Z%'PœW«ì ‰RèKN”:tèÐŋϞ»uÚ„qÚ ®^t"¸±Ó¨¡1^¸TŠeG@6씺P )h¡C‡]¼xöì©kg®1N‰0qJ5åN$;¯`ÝiSˆËªWwŽTj+V©5:¤# :tñâÙ³gO›6uäªõڔȩK¥,Õy+£RoŽ ‹T§Ò¯c¯"©8ñÜ+èС‹gÏž=~ÕÈÑk÷-1V†JÝAu U#X­âüd*Õ)Y¿fÉ:u&†'dA‡]<þ{üøñ‹FŽž»o½p¥JTÕ«R°~‘ŠõæO!HƒEòôHV¤7@ ,ÀÃ8tñìÙãÇ+]¹z%#†+-Ç`Í‚Fî„©2*ER”Mœ§;A"5ú £Ë   ¡CGÏ?~üpá•J±^º´L:vlÖ:5’˶^¥òŒ)0Î ‘JɘàÀ:tñìٳǯ—.[©@J¥KË(Y£Ž¥ÑцÒ/S± ±id%O)JEjdj‹¤Ð¡CÏž={¶Râ„ÉP¢T>,ݹ°á¡B±–ý‚äh”+[  árÆÓ -X€Ä‚.^¼xöìÝÛĉÓ&M‰þ0Êñ Æœ)$©Ñ ±Z¥‰déQ¤B0l!4ÃŒxöìÙãÇŸ¡D‰0aÂÄ T‰;J$8ÑH Ž\5kÒ(X¥,5Š“ãŽ¥ &ØãÇ?~üøødÈP"L‹2lAШ‚  Tˆ Á¬S¯ZU*%KΛ-lri Á?~üøñãç‡?~¥ÃdÈa!A+­NQˆ–©R±ºÄaC‰G› ÐñãÇ?|øðáÇ1C¨á”—18 TŠR«±´øòEŒ?bš$•*Õ'L˜aò!¡ÂœJ± @€)xK 7%ä4"„¡þ’/_Ìðáó¥I"P©@%è'4@\HÐ  ˆ8A„2>NÌñð¨œ<ùòå‹'M6qÚ„é¡C˜8ÝðàA‚[° !c£…#T\Ñ¢cG Y~@ÐÐäÉ—'Nœ4a Ô&L˜6mÚ´i Dpƒ@F›:#4"eÊ6: Ì‰ÄAÂ1büðá#æË]¶@qâô TªTšjøá¡Æ˜jtIÁ"ƒHvjÈ™BHŠ; qÚ*•&?|ÄT‹F¬—.\¸t‹åŽ QD€É *JÂÐ&$B È£LY²\¶RÒćœ9rþÞ¢ÃÕK[»K; p‚UäèQB† ?ìĉCÁYÚ°)ë• TªTœÚ™#§.\ĪÑ㦀<£"@u²Øh GDtTÓ†®Tœ8ú¤­š²dÂt‹¶ß¾-* Ø@@Ę :L±ôFDƒJ €`*š¶d©8J Ô']¸ˆõêEL[;zûðÁª <øøÒ HPÁ\É”%³µ).V¬l±Â¥K—®dÞ̽kç­Z*xØð áH]dÈ ÂÂ$õJFŒ˜-NŸXåÒµŒX²hÕªUc-1N¬*þu’ A2¨bƒÀƒ `x„«—2fѪ±ÂÄ©W4oÕ´}3g..€˜ùñs(–Tè!@€"xÐA‚•UÑ’%c™.PŸtUûFîÛ7rßp%òÇ Mº–Õh€¡‚Xˆ€R¢F Q¨‹–Œ±dÉ„áJ…«Ú·jÑ”ë…É?‡6%«V ؈8С % d¨q*™1]¸põJÆŒ1bÞÚéJ¥+™®D€üðáH³h߀ñ8!@€QJšqãF+oߨé¦KW/fÞÄ}ó&.•®jÚˆÙÂÄçË1†>áòæîˆ <¨þ3‹*ÐöÑÛGœ¸oÑtéŠ&î[5oĪ}û¦­W"3Ož|჉X4mîÔ¥¹À;eZ³·ÏÞ>~ûÞ½kWMX²hѪ}ÓFÎÀuº0ñóE ŸCœXábö­=w´D‘¢….=zñâѳ·oß>|í¾™#÷í›8zôà%KÄÌ1~iÚ„‰“®hÞ̽³g/ž={öìÙ‹/^<{öøñÛ·=zïÚñÃGN×!1_ÀèèТD‰>ébæ­½}öìÙ³gÏž={ñâѳgÏ?~üøñã‡ß7\ üˆ#F>|üø1¤ÉV²oïöíÛ·oß¾}öìÙ³g/>ž={öîñãÇ¿}Õ@mJÄGÌ1bĈc†Ï!N½È½Ã·o½}öìíÛgÏž={öìÙ³gï?~üøñ !ù€ ,+@‡! "!%!!#""###$!!&$$&"")%%*&&-))-++-''0**1++6--2..5..9..;11733522922=55>44999=33B66A55E77K99A::E==F<>J>>N::J77V??R88U99]??jAAFAAJAANDDLIIOAAQFFQEEUBBVFFZEE\IIRIIVMMVJJZMMYMM]KK_QQ]UU\QQVEEaAAnBBoCClNNeLLaLLmCCpGGsEEqHHrJJuLLvOOvNNxUUbVVeQQcQQiQQnVVjVVnZZf[[dZZjZZm]]j^^nTTtQQzSS|UU}VV~[[rZZu]]r]]vXX^^yZZzaaeccmkklbbrbbuffrffvbb}ffzee}aaykktjjyjj}nn|rr|ZZ]]ƒ^^ƒ__„aa†eeee‰ii‚mm‚nn†ii„ii‹kkˆjjŒmmŽoorr‚qq†vv†wwƒrr‰vvŠwwŒrrŽzz†yyŠyy}}Ž}}‰qq‘ss’tt“ww•vv•yy–zz—~~‘||“{{˜||™~~šƒƒŽŠŠ’‚‚”††’……•€€›œƒƒƒƒž……Ÿ‡‡††™‹‹–ŽŽšŽŽ‹‹š’’——›‡‡ ‰‰¢£¤ŽŽ¥““¡§’’§••¢““¨——«••©——¬œœ¤™™¬››­®››«žž°  ¨®®¯  £¢¢³  ²££´¤¤´¦¦µ§§¶¥¥³¨¨·ªª·®®°««¸©©¸­­º¯¯»¬¬¹¯¯¼´´¶°°¼³³¾²²½µµ¿¶¶¾±±»¿¿¿¼¼¾ºº½¶¶À»»Ã¹¹Á½½Â¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÉÉÉÊÉÉÊËËÌÌÌÌþS‘åèСAi®P‘²dÉ’%K–,Y²dÉ’%TÜ€ú•ê‘§_̆ýì˜5rçÎk‹T(OŽ”¦ )P–,Y²dÉ’%K–,"¥Š3iý¢FíØ0`Ǩu#GîÝ;Z©H…zäˆÑ¡@W¨L‘eÉ’%K–,Y²dÉ)R¨P¹rh™5jÌŒcfí¹vïÞýŠu*T(O:S…Š)K–,Y²D‰Œ1d0¡BåÊ _Ô´Yk–ŒYµoäÈ#—î™1Z©N¥ ‰‘ 4fªH²dÉ 8p€`Á‰)ibQë¦ÍÚ3fͪiûöMµgÚ¨ ëEëׯTþ JSeŠ”%28€À1ä‰Ù·oÖ¨YköÌš5€Ö¨5£FcÆš1FêQ¡@fªLyq€* à ‚ƒm˜‘#GŽ\:jÔ¬Y£FM[7rçÈi³¦­›¶fÀRy:$è 8ð áÊ "Éqñ‹9r߬Q{ÖŒY3jݺ}#wŽÜ·oäÈ‘#GÎ3ZÐfÅ )¸Ð!ÆŒ3ÖºQcvlد_ÀŒ5³¦Mܹvçε;÷.^¾|ñÈá@ ÀŽ *$Œ¸à% {ž0ÁÔ­Ù¯T©H… Œ™µoßÈk÷îÝ»zúøéÓw ;°¸þb‚$ P¡¡‡™_ÃR‘ ŠT,`Ôº}ûöܹsïâÕÓ§Ÿ>D¨ãBΟbhH€zÀ1f @cÆ€köí\»oß¾‘#×Î]½zõîá@€À…]èxh±gÇDj8pÀÀÁ†XÖ¬Y³V­Ú·vñê}ûFî¹vïâÉ{÷N,„ÀÓ¤I<оLø@Æ üx/Þ»wïâÕÓWœ8ríÞµ{çîÝ·]\°b—2­„åÂeÊ-Vp Á7~üôé«WïÞ½zâ´iûFîܹsäºÉA@!‹‘H’֬ɵ«"ItH¸°þÁæÜ»w¯Þ¼yõêÍk÷ÍÚ0`̨Q³¦í‡„,DµÚ„gͦb~èHÒ‚€8Ü`0B:uêÔÍ›7¯Þ»sÚŒ‘ •*Õ¯b"TÜI”È¢7NåªT©N „¸ `¢©S§Nݼz÷î;wÎÚ±T<…2¥"“ "}ò{õä’)[­€T¨b‚ \ä`°J:uêæÝ»wO›¶sé¬ õˆ'9€¾q¥H¢2­ZázuG–Hp ƒ9êÔ©›wïÞ=~ÝÒÕ«÷­Ù1ZŽZý‰sKU¦J•Ê´1Õ*×.;:Œx€A@ÄQ§Îݼþ{üøñ³FnÝ»oÃ~Å5I޲bAT(2T‘%5–rÅ«$#$@ ðÇ:uêæñãÇ-`À†-;ö+–­H· Ù1DC¦²° óªY† 0Ð1#Ö©›7ïž>~ü~õ"kرaÀütr¥,ƒŸ-›,ê“%Ï­HF(Œ A†Z @p:uóîÝ»Ço0Z©R¥Š P«|ƘÂch—"®Zu’sÄÁ >c²ØÑ¤ÁGÔ©›7ïÞ½{½b¥"åÉÑ£X¿¾ÜÐqãÍ¢V—½re É N:Âù‘ÇÒ¤  8 1Oݼy÷îÝ#EŠT¨Pžþ<¥¢A†-š¬ÙA§Ÿ]Hpàú£FD&:w,©€àÀ‡y÷îÝãÇ£GH “Eh0‚Œ2NY&éù£LQ BTH¸A>~üôùãWhP¡B…:„á™;7$\ `€0»vq(ÇÒ-S¦ˆøa!¤MÔñãÇ?~‚ $HP 4°Ðä‚.¬è¤é§[¦Z™’D!K–,uR `1Ž?~üüýK“&Mš4gÌTù`Á‘ þ HÇ›"iº…HÓ #†0è#ĆqüøñóÇÏ_•*UªP¡Re A"e¹€€‹!qÙ´‘¥J*}Ȱ‘:(8;÷®^=rí¤H‘"EÊ*Oà3Ƹhø ! 'I‰é²£E‚„ >TbñTªXǺ}û&EŠ)R¨P©Bà@œ/ †Å„“ÀìxS  24a BQ ‚ 9"uLÛ7)R¤P©r%M  2eA€€EþTsËΛ2“Bˆ@€ Å *Þ4¹ è£Pì}£rÅLš@ 9ú€àO' 8à—$NZžštþ#‚ƒ +Ô”HM„BBÅêÌXš@…9 õëWŠ !:IÐ0a‰bz¸$Úáç Ÿ 4ð1…GR$xøH¡GQ ~ðd €A–?Û¬=+V¬X¤Þ­;§íX¯_ǬÅKwr¨hBH–W{B€èáB¾ìÒFíØ¯X§H¥"¥M5fÃ~³Ö.Ÿ¾; À@d‚†apYJTÃÁL²Ìš¶g±H¥ŠuêT*`¿Ž vLÛ»zúòáB`‡– 7ÂÙ³fK -,p€à"[̘ë*U/Z´zÅú5 °aÝÚŋ׭ LPàჇ.;ZLXÀ Yb ;vìX/R§býÆìX²fÖ¬Y£VÍÚ1R±Zþ}Ðà‚‰ ôÜB¤Pôë³gÔ¬Ñu X³nÚ¬}#wÎÚ/€  *ô(–‘ Hh8`‡‰@ !E¤f̘5{Fí™±T§€YûFîÛ7rß~=*T¨Ð¡PÀŽ‘ˆ° 9’¸¨Á‚]²<£öìX²fÌŽýЬ9kÔšªÐ CŽ@1«FM؆ ¤€¡  4añŠ3`¿~cö¬Ù±cÝÞ‹Œ°GŒ tسgÝœm!€€:œ4Q0ÀBE'qߨ3ì°gݾ}ëö-0kÖŒýò4ÈÌ•4ŒHýêöNšDrþ%IŒ¼ôÕÓWœ¸oÔ† £&n̬}ÓfÍØ#7W®˜äé5mîÖÉq@àÎ$<[&»§ïž>~úâÉkGí³jÔ¬‰ÓFîÀwÀ@ Jc& G¤býjöí]=w¼V­R¦nÞ¼z÷æÝ»ÇOŸ¾zム#÷­¹zõä5{4ÈŒ™4… å‰0jÝÎÅ»w¯Þ½{÷îÝ›7oÞ¼{÷ôñÓ§/_¾|ñäñËG˜£@fÌ:tÈ‘'HN{öí¾{÷îÝ»wïÞ½{÷æÝ»wï?~üøéÓ—/ß·_©¹I“& A‚ rªW2rñôéÓ§OŸ>}÷îÝ»wï>Þ¼{÷îñãÇ?}ÖR…z$(Í™4iÒ¤IãF£SÆÚÅÓ§OŸ>}úôéÓwïÞ½{÷îÝ»wï?~üüù !ù€ ,+@‡! !""%!!#!!"##$!!%%%&$$%"")%%*&&-"",)).**,&&2))1++5--2--6//8,,:11600322:22=55:55=99>66A66D33@99A::F==F==B>>J??N99J66L66T<9s† “%DrÈ<ñbÇV(H¢VB£(Ò¤P¡L™25ä€? ´èô%Ö+KE°¼Ò¥ —&Fžì ´æ"ИyS R¤L™2E*T(.b 8€‚@-ÂÈúqƒQ£N4yµ¥0n<1cÍ BhªLZE‹VªP“&åÃá@ ¶e‡ŠA^`Ðä•£d ÁN‹H~è:ÕÈ2!~p8pà@/Þ´MFk-Z¦à¡Sçm™-`дų–a‚€<Âäiòç¥ØP@ "]jAÃ6m4hЖ£L›8mØ -3&J‘!E“DAÓ¦—‰dX#d†!eQa 4cÀ€)ƒ6 š²fáÜ £%l™°IФHØ4l✵@aK#P[(LHÑBħpâ°S&L˜°iáĉ 'Ž–0mÚ” UÈŒ™7R ÏWC@YþÅã ÕòÕÓW¯Ü9qØ„ÃVNœ7qÑ´‰ ÎX$4W®œ)JÙµpòÚÍ™æÏ)6>ü´»§ïÞ=~úâÁƒwMÙ²kؼ‰óvÎ@xÂBBcM¡H¦hƒ&®Ý}÷îÝ»wï>ž½{÷öñãÇ?}ÚV™šdÍ4hРyó¦$SÂÐÅÓ§OŸ>}úôéÓwïÞ½{÷îÝ»wo?~üøù !ù€ ,+@‡! !"#%( #""###$!!&%%&##)%%*&&-##,)).))+%%1**1**5--2..5//9..<11422:22=66:55>99>66B66F22B66K99B::E==F==B>>J<>aAAFAAKBBNEENEEKIIOBBREERFFVAAVEEYFF^BBZJJVKKSMMYNN]JJ[SSWRR^TT[XX]GGcAAnBBoAAkLLcMMlCCpEEqGGrEErIIsJJuLLwNNuLLsOOxRRbRReVVaUUeVViTTmYYf[[aYYi]]j]]mYYnVVrTTtQQzSS|UU}WW~VVzZZqZZv^^q^^uXX^^xcclllobbrbbuffrffvaazff{ee~bb|jjwii~nnzmm}iizuu|ZZ]]‚^^ƒ__„aa†ee‚ee‰jjmm‚nn…jj†ii‹jjŒoollŽllˆooqqqq†tt…rr‰rrŽvvŠvvyy‹zz}}މpp‘rr’tt“ww•uu”yy—zz—~~‘}}’{{˜||™~~šƒƒŠ‹‹Ž‚‚’††•„„“€€›ƒƒœ††™……Ÿ††Ÿ‰‰–‰‰™ŽŽšˆˆœ““•””‡‡ ‰‰¢¤ŽŽ¥ŒŒ£‘‘¦””¡““¨––«••ª——¬œœ£˜˜ª™™­››®šš­œœ¯žž®«žž°¤¤§££³¡¡±££´¤¤´¦¦µ§§¶¤¤³¨¨·ªª·¬¬·««¹©©¸­­º®®»¬¬¹¯¯¼±±¼³³½µµ¿··¿°°»¿¿¿¼¼½¹¹½³³·¶¶À»»Ã¸¸Á¾¾Å¼¼ÃÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÉÈÈÉÉÉÊÊÊËËËÌþSå‘¡Bj°P²dÉ’%K–,Y²dÉ’%SÔ€ê• ¤Yʆõêå‹X5qãÆ©Sk”(P!*¤¦ (K–,Y²dÉ’%K–,y¥Ê™3j õª˜/_Ä¢m'Ž»Y©F‰’ä¨"Ag¨L²dÉ’%K–,Y²dÉ(P¨PÁ‚¶hĆ SV­›8uìÔõ‚uJ(PRS… (K–,Yò„ Œ0`T¡B ¡^ѰUcfLÙ´nâÄŽÙ°Y©RªQ!5g¨@y²d "|˜AÂ)jREÆ­Z4eϦUë¶ Û´hØžã5ËW¯TþRSe ”%2Bh RÌ"JY·nÕªU{ö¬Z5€Õ¢=‹®[5bĘ)ó5J"AgªP!ÁÀ, @`*Kˆ”… 'N\·jѪE{­Ú6qãÄa«†mÛ6fÁRBDÈŒ@Ø¡ˆ-\6M9L\8pÛªEc¦Ì˜²hÛ¶‰7N\·nâĉ'®š²Y "Z¸’ÅéÍCÕ°ESF,X¯^¾†)«†MÜ8uãÆ©§®]¼xíÄ!@€À‚ AE>BÌT¹ÔMY¯T©F‰åKYµnÝÄSÇŽ»xöðá³· $„8þP @ÆG•`ÁR:5jT*_Ϻ‰ÛÖMܸqìÚųgß¼ " 0H @hРÁz FÌÀaÃ| cÖm»mÛº‰§Ž]»xñìé²1!D„ÙR‡4hpàB dÓ¦U«V­Z7uíâuë&Nœ8uìÚ­c7ŽE Th2I… .(@à@ƒ üa×®;vìÚųO\7qêÔ©c玸[$¨ÂC’9T”8`A„…!4hЀE<|øðÙ›7oÞ¼xàªU7nܸqãºm9pÀ€2]êèøÁF…!&PþCƒ vÍ›7/Þ»wñâ½c×­Ú0_Ê¢E«¶ƒˆ)|±µ©L›M°hÐàÀ‰!B@h`Çœ9sæÌ™{÷n»qÛˆ‰•*U¯M¸J± E-S2Ú¸0p£„0ìÙr`HЙ3gÎÜ»wóæc7.±T@‰Ò²¡+?jl²Åæ"¶@8pà@‰7DÀÍœ9sïÞÍ›7›6t⪩‘ ;v¹ªð‚¦MB˜`Šˆ  ˆ0Ò ÁUæÌ™{7oÞ<|ÕºÅc‡M±YŽfÌà`‰Õ„ ŠZQD‚LeÆ8é¡AƒÄ1gÎÜ»þyøðá»6îÝ8mÈzÁŠ´Á–Mc6°és+‘© ¼hi³ÇÌ4hÐà4sææÙÇ߬`¾†!#Ö ¦Eü´Ú£ã@”LièB©‰—=‹ú\hР„V™{÷n>|øzõ:õ*±`¾&‰£ÉÔž142Lè@I‘¢M¦BL¢°•ˆ@ˆp`Ž9sïæÍ›‡/˜¯Y©N¥‚å«Ï ˜2%RËX¹Ú”Ç‚ˆšT@€áA `Ì™3÷nÞ¼y½`¥Ê¤T54ØD ˆ6¬ñåV™6Ô°#B‹(òîÝ»wóæÍ5j”(Q’þ@¥âpCÄ@ t0 *Ð>¬rØf;,@€Ð ‘wóæÍÇŸ#H@5*U…$DX @ "p´ÃN—5öLÒ!„HÌÇŸ>}ú BÔ¨$P€ThpàÀ  4°Àg%/˜ü´Rô†Ó"" D€ð!>|øôéÃg¨!C†!B”cCƒ X8p`ÇJµ0éØŠ“,LŠ„™ús ÌáÇO>}„*Dˆ 5V4haÅ 8DðÓÊÒ¦M{8m2¥«ItXˆà>|øöíS£F5gÎTépBƒ t&Ýþ±±¡ÁJœX-ZĦD˜6-2AC„tøðáÓ‡O_•*UªT¡Re @‰ „pÚ…ÉRœ6¶èÜ¡¤HO ¸0Ç®];qê @Ê*Shˆˆp@B˜\RX°À«D‰ÞlJ¤CŘMœºXØÀ&U*XĶu (P¦P©„„ˆh1ãÃ6›œ(b%ŒÒ İjE§ !† 9El›8(P P©‚E !F4˜âÏ;ô\¤Ó¦D–m"‚N%\zDøB¨Q#Q¾¢u£RåŒ8„9RäÀ-¾ùÀã%=œ„™bµþèMI•ähÚÔb‚D @ê勘A†AÕ«—˜!2dR$.{j-²Ué+L¦4)ú"¦§,]²Œšk/HŽjäT*^³,¥€Ä[°ÙÃÉ’°[Šnaât =MÊ4aÓe(D RRƒ¨$P F%+!0ÑÂF%Jœ%R¤ צ:‡%jÁæ CÔ QCP¢F:%J”¨K2T€@ç‹->®Œt±ÔJ¢>»pmÙ$KÏB¾”9sF B‚ª€J Ö)P  ]ª0H…–èR§ÂJ90¹Ú¤É™S¦TXØ`aÌþš3gà"$¨ ¤S°NAB„¨( )*©a@ 6=ÂŒ)Q‰S&S·:Q¢3áBaª`9sæL•*T@‰©Q#H F©ÐaDŒYzähâ„Ó¤6zLÕºõfQ éAË,UªP’*•(P D‰5JK #&ظÈÁ£CVµ6•hÒg‹‘0¦Z\˜P¢…“3p¤æ _½^5*,X”X8Qb€ÆÜºÕ JG>lÓÂ!2‰•ê(C„ÔT‹F,˜¯^¼|cÆÀ‰Z0xpÑÓ¢=­X%úCÂÆ VìÁ,š2_¼`ÍEhÜ8qþÛªë¬;9x‘cŒ-]\á²¥)ÑžHŒD€p€K 9Úª1ó Ö,X£Ø W¯^ʪµËv ›0oíÁTËÕ¢6>œ°Ù"b &ìÂX¯W£F¥… 3dÃ|‹¦®ž=J(ªC)ަ>œ.½Y0¤ÆŠ ¬ø3£6f°F¥Ju*Õ)_½ˆùòE ›ºxöꩪˆ–>}ô1•©K€8P£›Iʘã%êU/^³xÍêåË—¯aÛÔ­k·­šˆ5Nh(³¨‹–dT4àРË&µpE‹ÆŒ˜²gʆõš [·jјó% ‘!DŽ@)›­Z‹4|ô’¡]z䬚²`½| S1eÛØù‚L™/Hˆ "„È׳hÛvÈà¤Ï¦ !¢¢‚«mà¦æËW°gÛºm«Ö –¯jÕ†õEè 8ŽNõÚæš…,•úrþÑ‚ÇêųO¸nÑ‚‹®[5lĪuÆ-˜#8Xªœ!jX4lîÐÍɲ#Ž“&ä ›7Ÿ=|öÚµcW˜²hѰÃÖM@v¾@RsF !G£fõbÖ]|øðݳWÏ^·^©©Q£F!B„ !r$Š—2uíìÙ³gÏž={óæÍ›7o>Þ»yóæáçOŸ>{ÕR‚DH 5jÔ¨Q‡P£Q¾ÔųgÏž={öìÙ³7oÞ¼yóæÍ›7Ï>|úôá !ù€ ,+@‡ !""% !!#""###$!!&%%&##)%%)''-##,((+)).--.''0**1++5--2..5..911600311:22=44:55>99?66A55F66H99A::E==F==C99I==I<mb´hÑ ?b @yâD‰%J”(Q¢D‰“'O @™2hÙ5iĆ [VÍ[8rëÖíbõ‰§MŒ*#Ê“'J”(QâDFŒ/f<eÊŸ]Ò®UcFlÙ4oáÔ‘ ®Ù°V¤H‘úÔ(ÑŸ2b¤b¤@i"#˜ÐP‚ )„–… ç-Ü·jÒªI“VíÚ¶päÂm«¶ÍÛ5fÀXmôÇMqåkY5oÞÈ‘S·n;xõð᫇+ Rt þ@@B (¡‚ ›dÀH‰úÄé)_ͼ…óæ-\8rêÚÁ«W_= "† HÀ A‚"‚|ò5ÌÀaÄ| kæÜºmÞ¼… §Ž];xðàÕ²€ t´0!¡ D0HPÀZÓªU«&mš7uðàyóŽ\8uëÚ±[Gî„tA`‚ à´Ð ‚6HZ׮ݺuíÚÁ«/œ·päÔ©[Çn]¸Y*L¨A „ \`¡áƒ† 0`À N6|úðÕƒ'Ož|øþ4(£MŒ„|`À A_n´À$+Õ+L§RÉJõ(U¦ @ ÑÀå>|øðáÃ(P @ ÔC‚€øÂÀGJ¯$É8 Ù¬W†IjQ‚;ØáÇ>}þüùóçOŸ2,$@`àAC  ì8…j’­T·x@J…  CjÐÀ>|øôé+S¦L™2dÄH ’ÀA‰:"&ˆþ`À`Ç%Ih Q:Ò«K’NÙð!ÂGxøðáÓ‡OŸ”)Q¢@"  JÄñqÃF‚;ì i‚J’£<…N½’•ŠÇ*xH ·¼pêž­Úå‹™>-â¤kW&€CÄA“æÌÂõ ²H¯º$€A§Ð•!^Z|ÒÕjW+F‹þJÄh)]ºÞ8°1L•7êš…IجT¸.ÅJÇP0i‚¤`B…Õ¦A›H*3h£Mœ>‰ú”*_ qÁ“G•,U”M‚ÓëË+#v‚´Ð&H4‰Ê)3¨ Nœ8}ÅiÓ¦4&ÐPâJ:òzdèФCr0 2„Å•TR‰#¦LŸ?l¤0"ÕŠ©MŒ ªQD iâ £N¡6hÜdšôª6B|l1“þ1bØüùÃF #R¬H1D(Ѧ`ö”Ð`GHGuðd*ô ÒžéˆC…Š-,Òœz$KÒ#[{ðÄɃ…‹„ ÜÑeÊ”)R¤@BЧM›8qúôIÈŽ0h¤±A(Lszé ž/* XÐÁ 1eþüéSFÌ_ºH}úô‰+Vx4Á!³0MzT(“F˜Ùà9_.}âDjÕ¦@}ÊT“F ˜¯]»|“Fš ‚™ôêÔ$;¸P0 QcƒˆCÖd2"MÚ²]­XµÚô‡9rþÛšÛ¬Úº;CÌéA% –S©. ãE -l`à=×¢5óÅj«UŸÖ‘Kw˜®]˪Á{¦Ê; Šs(ŒIChì‘ Â4X}út­3bÀ|“¦Ž^½62ešd“ªI‡D ©ãÃA"4`ñR%Ú5i¬>‘"%Š)_»ˆùòEìÚ:xõèÅ*¡#ˆ£K  aA%‚ ),h¨¡ãT˘%kµ‰”®V­vµÚÌ—/bÛÔµk·Mš˜àÁRÒ$*q8Ðà@Š ^âø"–ŒX+N¢Xíò•ŒØ²fתU“Vm±O­þ)@‹"&ÕÙ1!A‚4<ˆBi3fÒªµÚÄ ˜´m×®y GNÚ.€› ĈU‹@\ÑÑa‡$` bÖ›WÌ–5“&M0RŸ€UóÎÛ6oÞv1 (Ð N½€i€¥ !)Rœ€ À…ŽW¸˜IkÖŒØ2fˈíbµ«š·jÒ–%ƉПA‹6-“6MØs ¹ •M˜Á²lÙ2_»v [ÖŒÙ0bÞÖùbåk™¯F‰ýù3ÈW3iÞl…ÀbÈŽ:âÔÑ¡@ímÞ¤¶k—¯fÛ¼m«Ž•¯jÕ†íÚôGŒ˜2‰DíÚÆîX4XÀ”ðþ1DCÏêÁ«GïÛ7oÒ†“öÍ[µmĪm»vÍ×"6b¦ˆùS‰˜´kìÌY*¤ – ओWO^=|õÚµ[W±iÓ®}».Àu¾6õ)#¦ÌFŸZíbæm¼sÇl•ª•î;wîÜÁ“W¯^=zê¾… çíÛ·vðÚ1côGŒ˜2qú´é“/iÛȵ“'žùbæm]=yòäÉ“'Ož|øðÝ«Gž·]¤•)S¦ÏŸ?þ ZÄ©Õ2oíêÕ«W¯^½zòäÉ“'O>ž;yòäáǾ{ÕH}bô§L™2eÊ”)SæO¢OÀÔµ«W¯^½zõêÕ«'Ož|øôé !ù€ ,+@‡  "!$ #""###$!!&%%&"")%%)&&-##,)).**-''1**1--2..6++5..9..?11611933=55:55>99?,,@33A66A66E99A::E==F<>I>>M33J;;R<<_EEGAAJAAMEENEEKLLOBBQFFREEUAAUFFZJJRIIVMMUJJYMMZMM^II]QQ^RR[ZZ^EEbAAnBBoDDlNNbNNeJJcJJjLLmCCpEEqGGsEErJJuMMvKKsOOxRRbQQfUUbUUfRRmVVjUUmYYfZZaZZiYYn^^j]]nVVuRRrQQzSS|UU}VV~VVzYYqZZv^^r^^uXX^^y\\|aanggmbbrbbuddqffvaazeezee}bb|iivmmvjjyii}nnzmm~ss|wwyZZ€]]ƒ^^ƒ__„aa†ee‚ff‰jjkk…mm‚oo…ii‹jjŒoommŽooqq‚rr†uu†vv‚rr‰vvŠuuŒ{{†yyŠzz}}Ž}}‹qq‘rr’tt“ww•uu”xx–zz—~~zz’{{˜||™š}}š„„‘‚‚•……’††•€€›œƒƒ……Ÿ‰‰–ŒŒ”ŠŠ™šŽŽžŠŠŸ’’œ››ž““•‡‡ ‰‰¡ŠŠ¢ŽŽ¥¦ŒŒ¤¢§’’§””£’’¨——«””©——¬šš¤™™¬››®¯žž®ššªŸŸ°°££«©©¬¢¢³¡¡²££´¥¥³¥¥´¦¦¶©©·ªª·¬¬µ««¸©©¸­­º¯¯»¬¬¹¯¯¼°°¼³³½´´¿¶¶¿°°»¿¿¿¼¼¼¹¹¼¶¶À¹¹Â½½Â½½Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÇÇÉÁÁÍÉÉÊÉÉÊÊÊÌþSúä"Bf¨DqbĈ#FŒ1bĈ#NÌ€ò•êÑ£^͈ù& Y6ræÌ™k'k”¨H!"dFJ'FŒ1bĈ#FŒ1â$ 3fùÂf 1aȬy#G®;Y©FzäÈ¢Ad¢DqbĈ#FŒ1bÄH'N¢D¡‚Ù6lÍŽk– 9víÚù’uJ”¨O2#%Š'FŒ1ÒĈ‹-\‰… !_Ö¶es†¬ÙµqæÈ™3GÎÙ±Y©R¥õ©Ñ 3d¢8ibÄÈ|Ôᲂ)f`EÛ¶-[´fÑ®eÎ[6kÛ¬óÕë—¯Tþ 2#å‰#G €¡"O¢/)ZHió©:pÙ²e‹íZ6€Ù¬E³F\6dÈš56*’!Ad¤DY¢ŽŸ ARüPÒ!…2†š‘#GޏkÖ²Y³–m›7ræÈm˶ÍÛ¶fÇ`}B4hŒ+28Lø`勌¦zCÌ9rà²YsÖ Y3kÞ¼‘3gŽ8räÈ‘#‡.[³\6@°à`B‡Dl®ô°ê”AÙ¼es†Œ˜¯^ÂŽ5Ëæœ9vìØ±c×îݼyïÈÁ)À€Ãš ˜á 8‹ÆH®™¯T©F‰%¬Y6pàÈ™c׮ݻyøöí÷ Eªþ@€ *0&‹"WÂd%JT*aѼŽ9síÞÍÇo>! € £€ $`À€A '²l!vì@dÈ„‹Î;oÞÀ‘#׮ݻyóêézÀ @ (D‚*$H0 ƒJÙ²eËfí8vïæGŽ9víÞÁk×nF‚(P€@ 0|¸ Á‚ ¼„i÷î];vðÞÍÃ7:rìØ±k箹[ Xx €€  0`p› ,Hp µ}ûöá›W¯^½yä¶mGΜ9sæÀ )À¥Â Ta†;¸ÌQÑ þA‚—Õ«W/^¼xõæÅk.1aͬEˆíƒL$NPÀÄŸ:/À©ààÀUŸ $äA]ºtéÒÅ‹o^;sÛŽ•*•¯R–¹º’`B 2:Mè‚ Ö<`Àà v¥K—.]¼xõê‘3g²S>šã‡/Jœð"C’$c¶lÁ)AEƒ J4`(]ºtéâÕ«WoÛ¶sä²õ‘ :Ëdà™P£N tÃU* ƒ^,Ñ%éÒ¥‹W¯^½}ØÐÍk·­²Y,貕σ5—Np¨„ W«eW|¨Ñ ˜ 0P—.]¼þzûöí³fnÞ9pÄ|ÉJäAN%¨¹£‚&gúZYÔ€  `¨hqÁµtéêáÛ·oß,aÂ5#&L–¥=;.ìÀÀÄŸ >üìXÅcÑŸ $HÀ €¨¥‹¯¾}û|ù:%‹2bÂ4ÑàÁ† :@à¢"Hƒa6Y(0A‚ dqPbYºtñêÕ«·ï˜°Y©R’%ŒŸ*}¸ÒAÆA‚ÔáÒ‡ $HÀ GÏÒ¥K¯^½z¾d¥õ©Ñ£T6.](±‡ IuNx ó•-J–Rȸò @ K |¸•.^¼xõêÕ5j”(PŸþ>¥Òs…Á„z¬ÒÔáJ)K¬nña¥ÆT4Pr¡Ê­xõêÕÛ·o_£G‘>}ú4j” >\‰Pc%^Z麥ë«CjÔ¤I€C’2*ÕË·oß¾}ûBԨѣOŸL4Ð1áÒ¤;µjTàÀêÖ%]ÆXm:”HK ?íèQ'Þ¾}ûöíÛgˆ!C†!BÄaµœ-ƒc‚‰[›uxéÒ¥M—&øàÃÎtÒíÛ‡oß¾~ƒ 4h 2,X¸ÐIØŸNÜa5IŒ›9·.±zÕ Â‰šªì3oß¾}ûúõ3cÆŒ3dȹ°AE˜[¸4mþp…ϦDjæ|iÕÉ–-[WvLØ´ÃwûöíÛ·¯*R¤H‰"E  =(Õj5ç‚­.åÁSÅÕ&=¯.MâF†ž*e3×îÝ;rìœ8qâÄÉ“(R. ©T49ø`”H ž>5驤ˆÑ0Â\øàV*Yȼyçĉ'N¢D!SBÀ/Â}AŒ˜,LìPÒ³ƒÕ1Šêñ⥆ƒ 9…Ì8'NœD‘BÅÌ A§£À"j–$²äR§0WêpYdç’  Ü€3Q#QȲ‹B…Œ™6ƒ 9Ú! «e ˜pㆠ“$›:-š4þIÆ¥;–NœØ‘â„ C‘>¥ò% ™A†=%Ì—*(U*cžRYˆlàRªT©; ²XºT¥„ dŒê%Ë—¬GŽjôèSªY³lXÐrƒÏ•?6Õƒg‚‡:™nÑ©£O’02`$éPeÖ§F R 2ƒÈÑ£O¢F:ue€ r¸ðÑTK׫M®P¢³ Ìœ*[f´Hò# -̘1ƒ¨MP¢F:% ¨-.@Ç‹œ[·n]BÒê W^äÈ)¢Ç5V`,!CÆŒ Cf¤|8ìð2ÍY3_³dÍú4Èœ9rþÛ¢!óE,[»8•ä¸s‰Õ«Rµhi‚P`,LHäÃWÛ²E&+•,Y£ÚC·íX/_Ͳ½£¦$‘$V¯äÔºUëR ú8`0àC•+#|lÛf ™/Y§F:µ-›µfÄ|!³Æî>/KððÓÕ+MšJL``¡ƒ$t0áÛ6k³F¥‚•*Õ)b¾†,[»yøîݲ‚ƒM˜N›.±ºT£B,”øñ£‚[Íœ5ë% –¯^½|Íò%L˜°càØ½kç-Û_ê¸au©Ö (P`B’$&ÀC† Y¯Q£f Ö 2gÛ²e³–-²Q³$þqÈ ¢;¥&]`Pb‚Œ  Ù‹X3gÖ²Íú$J˜3pÛ¶#G.›/€ 2ôH– -H:­¡bŽŒ6x˜°A†—IÑš9‹fͱT§„e‡8pà|=2Dˆ"Q¾èÀ¦ÏˆH>x¨á®¦!‹æ Y³fÍù’%̹lÖœ!&Ê!DD5ËfíÖˆDlF@bE„Š4V‚ŒÈå¬Y3b¾|kfÍ2dàÚ ƒ%¬™°Gˆ „HX4kàh)Á㥂ˆ}¾q`âŠ1oà¬;&L˜¯hÞÀyó6–°lÙõú4ˆ 3NùòænÙ%=R¨øþÓ‚@€ ÓðÍÃ7Ü8p׈³œ6oȲ·M˜£6d¨ô ™µmîνÊ"FK…†¨«·¯¾}øÞ½kw혲kÖ²ÛŽÀvÂ> 2CÆÌ G£fùr®Ý¼xÓVâ¥.^¼zõâÍ«·¾{íÀ‘#7¹yóÞ9{D¨ 3†}J”0kÞȹ«W/^½zõêÍ›/^¼zõðíÇïÞ¼yïàíÃGN˜#3dÈ2„ÈѧOR ‹®Ý¼zõêÕ«W¯^½zñâÕ«W¯Þ¾}ûöåÇ9_§µ1cFРAƒ !j$JV3vóðáÇ>|õêÕ«W¯>^¼zõêíÛ·oß¾}ÙR‰z4¨L3f̘iÓfP£QÇÈÍÇ>|øðáÃW¯^½zõêÕ«W¯Þ¾}ûöõ !ù€ ,+@‡ !%!!#""###$!!%$$&"")&&*&&-"",)).**,''1&&4**1**4--2..5//:..=11600322:22=55:55>88>66B44D55L::B99E==F==B;;M==I??N::I>>S<<]44PAAJBBMEENDDJDDHBBQEEQFFU@@VFF^EEYIIRJJULLVJJYNNZNN]QQ^TT]DDdAAnBBoCCjJJbOOaNNdLLlCCpGGrEEqHHsJJuNNrLLvNNxRRbRRfUUbUUeRRjSSnUUkYYf\\dYYj^^j^^mYYlSSuVVuTTrSS{QQyUU}VV~UU{ZZq^^q[[uXX^^yZZ{bbljjmbbqaaueereeueeyff}aa{jjvjjzii~nnzmm}ss|zz|[[ZZ]]ƒ^^ƒ__„aa†eeƒee‰nn‚nn…ii‚ii‹jjŒmmŽoo‰ooqqrr…uu„rr‰vv‰wwzz†yy‚{{‹yyŠzz~~ss’qqtt“ww•uu”xx–zz—~~‘zz’{{˜}}™~~š}}šŒ€€ƒ’„„’……••€€›‚‚„„Ÿ††ž‡‡˜ŠŠ–ŠŠ™šŽŽŠŠ‘‘›””˜˜š‡‡ ŠŠ¢‰‰¡£ŽŽ¥‹‹¤§’’§””£““¨‘‘¨——«””©––­šš¤šš­¯žž®˜˜«žž°§§¬¢¢³¡¡²££´¥¥µ§§¶¥¥²©©·ªª·¬¬¶««¹©©¹­­º®®»¬¬¹¯¯¼°°´°°¼²²¾µµ¿··¿±±»¿¿¿¼¼½ºº¾¶¶À¸¸Á»»Ã¹¹Á½½Â¾¾ÅººÆ½½ÊÃÃÃÀÀÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÇÇÉÉÉÊÉÉÊËËÌÚÚãþK}Ò¤¨Ð @e¤qZ¤HQ!?Rž8i²¤H‘"EŠ)B„H‘&Mž<‘R¨X5h̆ K&Û·sêÔír5Ê'M‹ *åI“&EŠ)R¤ˆ $\ yòDJ ]ЪISV,Y´ná¾…ûöMÙ°W¥J•ò¤) 2cž4iR¤ˆ‘6Lt` Ç)eZAãVMZ³dÊ Iㆭ4hÕ Ó¥«—®R þ*¥I“".&X±@ÇR‡À”ñ£)7nÒ IS¦ š4€Ò 5ƒö›´bÅ’%ëõ©Q!?c¢41âM +nX0¤1…’}ûöí·hТAƒ­¶oá¾U“V 6eÃJi*Ìœd¹ÂÃ@ IŸbqÒ+Ü·oؤAS–¬X2hÕ°}ûî·oß¾}ûöMZ²W0< p 0¬ÌéÁè DѪAKV Ø.]½†%“Ví[¸sçÂ;§Žyúô+™4lܾ…;wN;y÷ò廇Ë60 þ @2˜ˆÁÅÈK½JõÉÓ§^и}ãÆí[¸pçØÉ»w/_¾~œÀàfƒ0Pá@A.Ô˜V¬ÀaÃv kÆ-œ:lܸ}ûvn;yòîåú``Gø¨Á.< @à@Í JÒ¤I“ ·sòäqãö-Ü·sêÖ±S§† :Xð Àú¤æƒ*pTY² ›/0`ÈÒS©•_ щѦÀ‰ÊŒYhÍNž<}úäI':: xÀÉ’%ICò¬8±ã.Y[ztˆÆ!5¸2¦Œ@e¢h*åÊU)M-CÂC JÒ!d)ˆ -SîÈâ#C‚:…:Òà‡þ’1cÊT&Ê¢Q®F-*T(§6J<\±d)%Inx˜ð²¥ À`c)R 7¢H3fŒ”(O<}òÔ(Q¢Eš>ij#‚Ê#Z–©šÓƒ7n|ØÀ!Sµö ¹òDŠ)R¢úT­´dÀv“vÎÞ½8tª8ð`ÅÒ£PÐÀ*&R<ðQ+Z5e®>•jUªT©^»Šë5¬š:y÷ìÝBã%I–,0`À€"¹‘DŒdÉ”Ûå©•®W¯v½Ú¬W¯bØÎ±S‡ š 6ˆRA²$i‚8€‘‹*>îK–¬˜®QŸ^íêŬX²fÕ¤Iƒ&-Z±O¯þ¹¢*%K (°€ˆƒ&H˜èbk˜²fФ½Òô ˜2nÒ¤q .Ú.€ž ´ÈU l¨X¨£‚@&0¸ÐITÍ’)k­°RŸzIãÆ·oÜv-4hP¡O½È‚¦†’  (`…‰],)ƒÖ¬X±dÉŠírµ«Ú7iКÆiP AŠ<%‹MÖ:¾LA3~¬Š-Y²^»v KÖ,Y±bÜÔõrÕ+Y¯E‰òS¨W3hÜ¡AÓ„+Yt¤°a"6lß ¶«×°fظa“ÆÍU/iÒ†íÒh̘2ŠFíÂÆŽ*PðX2þÀ×îÉ»'ïÛ7nÐz‹Æ ›4lɤqãV ˜¢5c¤Œ¤©´jëÖ±C¥ Þ£wÞ½|÷رSmX2hФuÃÆ-@u½4*3¦ EŸ^íjÆM¼u¸Põ¹EîÝ»wïÞ½£wïÞ={ê¸ûÆÛ7vòØ%[h̘2ƒiò¤éS/hÕ±£GO=zôèÑ{÷î=zôèåË—/_¾{ÒJyZ¨L™2eÊ”Y³P¢OÀ±»wïÞ½{÷îÝ»G=zôèÑ£G^¾|ùòí !ù€ ,+@‡ !"$!!###$!!%$$&&&)&&-"")((+**.,,/&&1**1--2..5))7..://=11600311:22=55:66>99>66A44B66M99B::E>>F==B::I>>J<8Ab¼(!@À‚Tˆ°ÁƒmX0†¬@dÈ~sÆÜ:nÝÂ… ·ÎÝ»yóæéÚ!F@ Rx€ÐÀà ,ÐÀ…‰?Õ®]»V­¸uïæuë.\¸uíÞ½kG. ?YäàˆÁ§Tž7|Lˆñ"HŠM Èh7ï]»víÞÍÃ7¸päÖ­kç®]8[]4ôiÅ*S¦Z­Òô™õbÏ’%%šd8rà€4}úôÕ«W¯^½yà®]ëŽ9ráºU:p H«U%8)’U Ï›>{bDH "þDŒ âÔ«Wo^¼zõæÅk×­Ú°_ͨQ»VMƒnq i«"$ä€á‘€A…4pà:tèС‹ož»uÙ…"•*•/Yp„)R,Mœ:ù!a‰‰$öT`P`¢¡C‡]¼xõêkGî²TŽ>…ÚSGÎŽR·æ‘3§‹®ZoúiP' „ /8:tñâÕ«W/[¶sá® uè¢7bp*%F(Õºv+ŽZc(U(àÀ!èС‹W¯^=}ÙÂÍkÇͲXŽXᥔ¡hX°ªÔ²k”蔺ÓÃl8‡]¼þzúôé«v®Ý¹nÃ|Á”«K>”Úİ`#Æ‚Mµr± ² R®GX"„:tñêÕÓ§O_¬_¿Œ5Cæ+Ö¥J&<è©“)Q"[™$¼aÕjÙ‹&"pa@†+¤¡C7¯>}ú„ù:k²a¿ú„á!Ñ,J‰4ÙšE"K­\µ0HpA BèÈÆ:tñêÕ«§oدX°R¥‚õ«‡ Yf)+UŠ•­YŒÔ²UKÌ Ò@pG–Y›Ð¡‹¯^½z¼`¥"õÉ$X|ˆT¢K™²J”jåê!§”œRµL¨ĆƒLbxª]¼xõêÕ#EŠT¨Pþ>¥*B‡‚‰VÊteÑ2§S%0¬Ø‚C‰)x\Àâ! ŸxõêÕÓ§OŸ#H’>}úDê”1TÊ¥«ÇŽ9*á9 €xôH‘‰8²Ô˧O?}ú :tȤO˜@LZ aU.e~2uI°Š• ‚ G S$Ä„ Ò#ž>}úôéÓWˆP¡B…2DbUµr­‚à©K?³"ˆÈãJ1N¨XôB § oÜéÓ§OŸ>~„ 4hP 4üD ÁÊ–­o&ÕÉ´J:]è„ÀÑ‘¢~.áÀOŸ>}úôñ;sæÌ™3dÈTá!GCN“æ,þˆÀIQ¥Y,ð(2‰Â‚.¥"u™TKÎ*wúôéã§ß”)S¦L‘"%J‡IPâCáAD®½B@Ž[(ˆéÄɃœ _þ\#×îݼpí @J)Qè€#œ TšµG ~ :Ñ HR™Ò€"U*Xȸuë (P¤H™bBN– `U'-“HàÐ`‚“‰ AĘ25'BŒ… 9J…Œ[7(P H‘båÌ #üt² @€µ&\B‡ˆ‡ ôĈ@âÊ¢K´x1è#Rúu“b…Ì™@ƒ 9’c¢•+ˆP,Ó—%=p4ðþDÌ%î\a°à@ˆB>¥òõ Ù™@…A"å˘>z²  G+-bÚ09`u8, p§B ?0Šõ*V,HŽbéS*^¼p¥x!‡Cš0b2©£’œA´„D;(p(Q#Ö§C R :sˆ‘¤O H"eèAŒJ™<µJTÇB 1²!‘ãO™Ú¸)Á! †ŒÎ9sèŒP¡H‘:*T(F*BtbÕéR&$<¼áIUž+6xœàqGËG° C¦L Al¦|J Ö©OŸ 1BÓáÇ,Z¶‚Á’…ÄhhhÀ BmphrÄÃþ2d Äf ¤T°RA:tÈQ¨5(ÄÐjUË?&Œ˜0’ " ¨iS %¦X!s†Ì”)RB‘ %‰#H NaÅ•W¹ætáއ 44hÀ¡¢ Hà!Å +V¦H’*U¨OŸ@…"E Ó‘+”Ht² Av0hР‚7kîxP³$Á 4l t†Œ•_¾^‘"E*,X©Fp`Æ“­oxü8Є èèQC"Ž ‘ •ê¨BÎ\£†lØ/_¾~!£¦FH«Y¬fõS)Æ 0hp“{(ðÐàÌY3_¾`Å 5ˆ\¸pþܨ!ó5ìš»ZTê¦UXb`ÐB„cÒ`!§D8ÙªAû ,X¤Ú‘ w ™/_Í®Í#g$ ”*5¨Q"ƒ 4xP£æÁŠ%1²dËF™0X§H"•íµfÃ~!£¶¾}øÞ½kG ²kÔ®ËnÀu¿> :CæÌ G¤`ñrÖ­Ý»x»TÚ….^¼zñâÕ«‡¾{íº… ×[¸wóÚ5ƒD¨ ™3…} êÔ/jÙ½«W¯^½zõêÕ‹/^¼zõðéÇïÞ½{ïÚé»î—£3dÊ*tˆÑ§OHýrÆ­]=|õêÕ«W¯^½zñâÕ«W¯ž>}úôéÃwï^¸^©:s&РAƒ bŠW³nïðáÇ>|õêÕ«W¯>^¼zõêéÓ§OŸ>|×R‘‚4èL™3gΜ9Ãf#R¿Ø½Ã‡>|øðáÃW¯^½zõêÕ«W¯ž>}úøñ !ù€ ,+@‡! !""% """###$!!&$$&"")&&*&&-##,)).**,&&0**2++5--2..5..:..<11655711933=55=44:99>//D66A66F22C99A::E==E==B>>I>>M::L77T;;S>>d??i@@FAAJBBNEENDDHBBQEEQFFU@@VFFZBB]JJVKKTJJYNNZNN^JJ^QQ^TT\DDdAAnBBoEElMMbNNfIIdKKlCCpGGsEEqHHsJJuLLvMMqOOxRRbRRfUUbVVfVVjSSmYYfZZcZZiZZm]]j]]nVVrSSuQQzUU}VV~UUz]]r^^vZZsXX\\{aanbbkhhmaaqaaveerddveezee}bb{jjujjzjj~nn{nn~tt}{{|ZZ]]ƒ^^ƒ__„aa†dd‚ff‰ccˆjj‚nnll…ii‹ii‰kkŒiiŒmmŽnnllmm‹ooqq‚rr…uuuu…rr‰ssŽvvŠvvzz…zzŠ~~Ž{{Œqq‘ss’tt“vv•uu”yy–zz—~~‘~~•{{˜}}™›}}š„„‰‰Ž……’††–“€€›œƒƒƒƒž††™……ž‰‰–ŠŠ‘ŠŠ™šŽŽŠŠ—‘‘ž””œ‡‡ ˆˆ¡ŠŠ¢£ŽŽ¥§’’§••£““¨––«””ª——¬™™¤™™«™™¬››®®œœ«žž°¢¢¤¢¢«««¬¢¢³¡¡±££´¥¥³¤¤´¦¦¶©©·««·««¸©©¸­­º¯¯»¬¬¹¯¯¼°°º°°½²²½´´¿¶¶¾··»¿¿¿½½½¸¸¿²²µ¶¶À¹¹Â½½Â¾¾ÅÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÇÇÈÇÇÊÈÈÊÉÉÊËËÌþSú´ˆ ?eªDy‚ $H A‚ 'QÖ€ –ªQ£`Έ& Y6ræÌ™k7k¨O‰úSfJ”'H A‚ $H qò$ ™2eþÃf 1aȬy#GλY©Fj´h!?U¢5'‡!"R°Ð1 Ñ!<¥puyP Ð']ºtñâÕ«WoÛ6sä²ÕhQ¢6¥9Pà@8:•ÚTªMK^¾´p@éÒ¥‹W¯^=~ÛÆÍs÷ͲY‰Â„TÇ 4’ÉU/[˜²XQò„ ¨H—.]¼þzüøñ³fÎݺoÄ‚Éjt„!K%8РB]™ZupEK~ü‚5‹2bÂvaÙSʇ+¥Âò@ƒŠI­:õÒô Á‚”d9 f´:j 4RE§xõêÕãÇߢF>}új”4¸Zµª¦ 8À‚Kƒ4ß šä£ÁnÍãÇ?~ü "D(Q£O‰rPÂØ,Ä©p@À ” Ø2F¬N¦²d¨á¦FŽ;BâdaAg"ÀBÖ'BŸR *C(Q¤O FeÅ]ºèä°Ñ&‡€.+r±tEN/\`èx ¡†€‰Ê”)ChM”O F: ¨D&ÂôÂ…iŸ"¹DEš/ˆ¡AàÀ/Aô C¦ŒŸ?e¦4J5KÖ©O5j’ÅU+5L¾qc‚/al ÈPaÄ‚tøA‰@þ2dÖüùSfJ£S²N5"Dh(1J6½zõe…¦,¸Ø¨¡Á‚,è§Á ¢T!S†Ì”)Q@Õ(Q¢EŸF Ú¢O.9mZÉP# H¨@`,Ø¥ 2S¦D‰’*¨OŸ@5JÐ/\\A1#Hˆ p 2P ²`Œ2kþüùS†LbÁRu*•,X£ZhÒ¤KW hphð`_p¥Ð ƒ’— &•*(A~Êd³†Œ˜°`Á„!³†HJx¼|²á@ƒ*X٦ą-5r4ñÌš3a¿dÍõÇœ9sþÞ¬ †l[»U\¸S‰CŠ+4h0•4(€£7Û²Y#&+•,Y§Ü™— Ù¯`βͣ¦ÀD-x Y° AƒÒÄ @•*ôÚf Z0Y§F:µ-›5gÇ„!³Öî¾=`ð`òQ¢Bƒ 4¨pˆX ÁSÛ6k²F¥’uêÔ)aÁ†l›»yøîùêD'Í—*4ð°à€€<˜¾4hQƒÎ4gΞ!›5*Õ¯Y³‚ý &LX0gÞÚÁsçÍ1bè@¸ðaÁ*lÊÔĆ4™ž sæ Ù¬T©f#æ ™³hÙ²e³fͲQ³(þm¡Ò‰Åƒ D°8  �L¤Ù%옳gÖ²ÍJسoÛ²}3G[0€ " ´HÖ˜RL P¡D†4ÀhBeIYÄœ9‹–-Ú±T§ˆeûöíÛ·oß‚5"$( P ©IãEƒ ,6| @‰+,.E³ö ™³gΛlÛ¸lÖž!#J B‹>9»–͘‘4uR`Éc%‡0!lౄÌ2bÁ‚sÍ2dßÜ “%Ì™°F„ýñCHX4kß 59#Í)*d1eK˜5o߬CL˜°hÞ¾yóö –°lÙûô‡ ™2‰FóöÛ™+CP”hþÁCÇJãðÝÃ7¹oÖ„³&îÛ6oȲ}û¶Ø¢2Uª ô ™µmïÞ½ê J^½«Ç¯>~øàÁs—혳lÖ¼‰Ûö@wÂ>ý)C¦ÌŸF£d‹6ÎÝ»w¾XÝ’ö.^¼xñâÅ«‡¾{î¾µ#÷Í9xóà9kˆ ™2‚j”0kÛÈÍ«W¯^½zõêÕ‹/^¼zõðñÇß½yðÜñÃG.Ø¢2dÈøDhѧHF {æÍ>|õêÕ«W¯^½zõâÕ«W¯?~üøõÃwïÞ·`©ù)SÆÏŸ?ZJ–³oððáÇ>|õêÕ«W¯>^¼zõêñãÇ?|ÙRjô§L™2eÊ”)³æO¢QÄÌÍÇ>|øðáÃW¯^½zõêÕ«W¯?~üøõ !ù€ ,+@‡  !""%!!"""###$!!&%%&"")&&*&&-##,((***.,,.&&0**2**5..2..6//:++822611422:11=55955>88><>E>>I==M::L==T88W??c??jAAGAAJBBNEEMHHMBBQEEQFFUAAVFFZFF\JJVKKSJJZMMZNN]II]PPUQQ^SS[EEeAAnBBoFFnLLcJJjLLlCCpGGrEEqJJuOOrLLvLLuIIrNNxRRaVVbUUeQQgUUjVVnQQlYYe[[dYYiZZm]]j]]nUUrSSvSS{QQzSS|UU}VV~^^q^^uYYtXX\\xaanddleefbbrbbvffqeevbbzffzff~aa}iivllsiizii~nnnnzppuqq|||}ZZ]]‚^^ƒ__„aa†ee„ee‰jjnn‚nn…jj…ii‹jjŒmmŽll‹ooqq†uu†ss‚ss‰uuŠtt{{„zzŠyy}}Ž||‹ss’qq‘tt“vv•vv•yy–zz—~~‘”{{˜}}š„„Œƒƒ…’††•ƒƒ”€€›‚‚‡‡™……Ÿ‰‰•ŽŽš‹‹œ””‡‡ ŠŠ¢‰‰¡¤¥¢¦’’§——¤““¨——«••©——¬››¢™™ª™™¬››­œœ¯žž®©žž°¢¢¬¬¬®¢¢³  ±££´¥¥³¥¥´¦¦µ¦¦¶¨¨·ªª·««¹©©¸­­º®®»¬¬¹¯¯¼±±¼³³½´´¿µµ¾²²º¿¿¿¼¼½ºº½³³¶··ÀµµÀ¹¹Â½½Â¾¾ÅÃÃÃÁÁÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÇÇÉÈÈÊÉÉÊÊÊÌÌÌÌþW™ %‰#Dk°L‰¢D‰%J”(Q¢D‰%SàŒÒµjR(ZÉ€éÒÅ«µoâÄ¡CËÔ¨P’1B´¦Ê”(P”(Q¢D‰%J”(¥Jš5ké¢m/^äiûö :Z«Lš$I#Di¦L‰E‰%J”(Q¢D ”(Q¦LÁÂèØµiÉ„ KFmÛ7qèÔ銥jÔ¨P•&)ZSeJ”(J”(QÊ I˜T™2K"]Ñ®QS6,™4oß¾‰û¶M™0ZªV­R*¢5i¦D¢D D„àÅkR'kbE»vZ³dͤiÛ¶Mµf×¢ËE‹—®U“þ!ZS%J%3" 0È%-€âø 2*Ù¶mÔ¨QkÖŒ5€Ô¢E‹ömµaÔ%ãe*#CiªD‘!bÆC\é LJ“ f’}û6î›7jѨE‹FM›¶oâ¾i£¦m›6eÂb…b„(É ٱâD]’ÉðêÛ·oÚ¨Ek–lX²hÚ´}‡îÛ¶mß¾}ûæZ²Y*v8ÑÂ… 1Mšô8c¦ ήES6Œ—.]¼„%£ví›8tèĉ§Ž 88€ !*„°‘ÁI "d6LÀaÃx S¶Mœ:mÛ¶}û†N;xðê9ëà ‚ `ÁPxjc@KѨQ£MÚ6tìàmÛöMÜ7têØ±S§ÎÏ„ú €À *¬ !bÑ3´PÇŽ;têØÁ«ï›·oèÔ¡S·NÝ6eYT XaKË„2!$0€@ç͉ Ì 0 À3|øðÕ“'OžØáI­vòäÉÇŸ¤I•B… 5JU`ûD†tq¥)‚)áÀ Z<ɳ‡_>|ø)b)Ò¤P“> ˆ` W­G @À@Œ'KY80p@bƒ*0Ђ©>|øêåç(‘"EŠ1bTÂÁL„úŒñá`G¡(G… -6¨aC/uÌáÇ>|‰!B„‘¡5 `§?7 `°ã“+[X°’ aC;v´á!>|øòé[³fÍš5iÒ¤‰€@&Ÿ\þRâ„ ž\¡j1‚•ž.x:PgÇqøðá×/_•*SªT™R%Š s.µ±äŠ’2#$8ðäÉÓ‘ Ìœìq„dÄG,†(û¦»oê¢D‰%Ê”)U: ”TTyn€©P¡‚+WzlT8ö(Ó ÄÔ©1dÕ*ZômÓ%J”(Q¢L©BBˆ'@]½Ã#K‰ *\áÒ$¦*eZ8p0F$ŒE25LÛ6(Q¢L™‚e ¢ðÌúòÉÖ–d‚d€@¦F'€dq€ ŽG4¸(R¤Qèm›‚%ÍCˆIZñ醦GŽ2éAdN‰>@<‰àþ ÈN#ì„Ø€ €F¡F­ÒlØCŠM¥K—<6y:"†C€aÝ ’é„O8f¹ ‚ƒ^˜¢+-I’%Š4)T,]´Àyñgˆ 9 Ø2ÇÑG€ö¼R „ƒ  ÈÐ$V¨H£V%ZÃ(R¥P£L™2õFÎ%O:ÔØ‚AHFìèâÉU *|p0`€†‘Ö¨YÃhÍ”Q£L™R5jÔ(EC>}ê2`€È ÉÈ–"B¸Xqb€ $I“f!Dp¦LZ+–ªP•&I2óéUH )"æS96nqdcÈ pàÁþ™4ià BgʤU±TMbÄHÒ(3bn9‚¤L“>uTp2rÁ–Tà™PA ¦`I“&M•*SF™*R¤I¡LñqÑæ’ Cšü #¡Äˆ HQaƒ  1K,XªL‰²jÕ¨P¡F25jQ:˜v°È‚ÇG *”È€`0@0AŒ4k!B´& `ºV™2ejU¬Xžn|Âu# G@0`P`-N Øáf‡„,™µ*Ö(EˆÖP‹6 /]ºx ‹F"„­#APÁE…;l½1AD>78áLY2^ºbÑ…Hœ¸oþך ÓŒšºA{ÔscÀ H´(ÄÕ DdÊ3‚Bר5+V¬X¦Ô©GmX.]ɨÁ;wcÅ*p@À …„2vDTÐ"Ó.0Ûm˜®X¦L©2uZ²aÀx ‹&Ž^=T®½8Ra ;pÑôÂÅyܬP#Úµh±L­Z¥J•)^À†ñâ5ìš:xõè9ãèF-T(àG#!6qËÓOÉ”%Ó5j•.Z´rÑÒÅ‹—.`ÛÔ±S§-3I 8ذ!ˆ 0꼊p"N—Y·n6lX.UªbéâulX1eÔ¨Q‹MÚ0S±`þEq³ € ;TtèÐÄS7Oì<ºKX2eÑ¨Ñ ¥ŠW´mרi‡Žš.€£&%R4)Ö¢70 0¹qÒÄ˦XÀ’)‹­°U¦€QÛ¶mÛ¶oÛtMR¤(£Q¼’UIâÄŽt8a {L)£ÖlX²dɆ銥ëÚ8jÑ” 6JQ"F’B%£Fm“/(þä£ÅΊ'Ä´‰”,Y2`ºt KÖ¬Ù°aÛÔñŠÅ+¯I‘!BĈW³hÛŽEé¡ç„¶è±ag”2mۤƋ¯fÚ¼i£æm/jÔ†é …(Mš5‘TéÒ¶nšþÀãK:ãêÁ«oÛ¶mÑxñ’æM›4mâmÓv—¤5i°¨QJX´këÖùqÀf\­“WÏž<|õرSmX2iѨm»¶M@u¼B!Z“f ¢IªhéR¶M¼u¸ µrÖ®]»vòÚÉ“W_=z궉û¶mÛ7xðÔ%›¤(Mš5Š$25ʯh×ı“'Ož|øðå«G¯Þ6]«ÁQ³Æ"Dˆ1’4jU²mìêÕ«W¯^½zòäÉ“'O>^;yòäáǾzÔV™š„hš5kÖ¬YQ$S¼ÄÁ«W¯^½zõêÕ«'Ož|øòå !ù€ ,+@‡  !#"%!!#!!$##$""&$$&$$%"")&&*&&-##,)).))+''3))1**5--1..5..://=++;11622922=66=55:99>33B66B77F44I99B99E==C==F::I>>J>>M::N>>T::\??jAAGAAJBBMEENDDJJJNBBQEERGGV@@TBBZDD\JJSJJVNNUIIYJJ^NNZNN]PPVQQ_SS[FFdAAnBBoFFmKKaNNaMMeNNnJJkCCpGGsEEqJJuLLvMMuJJrOOxRRaRReUUbVVeRRiVViVVmZZeYYjZZm]]j^^nUUqQQqQQzTT|VV~SS{^^v[[sXX]]zaaneeoddibbrffrffvaauffzee~aa{kktjjzii}mm{ss}||~ZZ]]ƒ^^‚__„aa†dd‚ff‰jj‚nnnn…hh…ii‹jjŒmmŽnnmm‹ooqqqq†uuvv†rr‰vvŠttyy„yyŠzz~~Ž~~‹ss’qq‘tt“ww•vv•xx–zz—}}’{{˜||™›}}š‹’‚‚–††–††’š‚‚††™……Ÿ††ŸŠŠ•ŒŒ›‘‘——Ÿ””•†† ˆˆ¡ŠŠ£‰‰¢¦¥¡‘‘§’’§––¤““©‘‘¨——«””©——¬˜˜«™™¬šš®œœ®šš¤žž°  §¡¡¬¢¢³¡¡²££´¥¥²¥¥´§§¶¦¦µ¨¨·««¶®®´««¸««º­­º®®»¬¬¹¯¯¼±±º°°¼³³¾²²½µµ¿··¿ºº½¿¿¿¸¸»±±³¶¶À»»Ã¸¸Á½½Â¾¾Å»»ÄÃÃÃÀÀÀÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÉÁÁÍÉÉÊÉÉÊËËÌÌÌÌÒÒÛþS‘òÔèP¡Ak´X©Â„ &L˜0a„ &VÞ€Úõª‘£\É€íò嫵päÈ©c‹”¨HŒ"´æŠ•*S˜0a„ &L˜0™RåJš5kí¢­˜/_Å i ŽÝ:Y©HrԨѡAi¬P©2… &L˜0a„ɔ*U¬XÑr(5hɈKF[8uìØí‚eJ”¨HŽbsÅJ•*L˜0a2…‰ Y¨X±bE ¡]ЮQ[v,4nê‘ ×m1Y©R¥"剡5i¬T©Â„É <“æËŒ&k`5ÓvZ³dÍ QãÆí´fךÛ•Ë×®TŽþZs¥J&2&8ˆ€„Ó¥Rz^D8*Y8nÔ QkÖ 5€Ô -ƒŽµbÅ–-óE*Ò¡@i®TiÂ"ÂŽ;¬L鲡E„m’… Ç-\7jШAƒFíš¶päÂ]£vMÛµeÄRy:D(ÊUŠã¥Ç \LLÀP+\¸pÚ¨Ak–ìX2hÚ´… G.7náÂ… ŽZ²X*bˆCD…DD Yr1aA Ï´A[V Ø®]¾ˆ%£v-9uêÔ‘#ÇÎw€ˆþÒƒ #†$ˆ0Á@NÀR‘"EŠT*_͸…ãÆ-\8rìÜÉ»wO=#BhØà@@…!8àBL›`(VÌ@bÅ|k¦;mÚ¸… §n}ú:tˆ‘#O@øC눊,¨SkUm”$*âÁƒlü‘&‡ž>}úôéÓWˆP¡B…Z$@€W´„1°`A™My@Phf’%N}ƒDhP 6 ìITëNŠ ÙÔGƒ‘$”ÌÐyà`Áf¼$Š`NŸ>}úôõ[³fÍš5lÒdqPÏ%[eÌŒþx°`D«Vb äàäņFÄÁ£ÁÌsúôéãÇß•+V¬X±råJw4qº¤†l­³I—HØ¡±ƒ%¾ÊK–¬FbäÈSª]²ì”¹TÈ@h8b'ѦD“&ìpSAD„ €F–§C HZsˆQ$O¢H‘"kU)!Œ´H JFˆ BÁÁƒ À€›3‡Ö¬Ys(P¢H‘2%Ê“'8ª©0°#D4@Œ"FEˆ$m¨°!‚ œ(I“fM Bk®DJ% –)OŽ1곈ˆ:d Ââ3}èH‘hUN0LàPa‹þ”4i ´æŠ£T°H9:t¨(.ð`XÑE3+þYðDœ¶ a  ;®hI³&Í•+VD‘å‰#GžHõÙƒH "€9r+Άœá´ª]zD(aEK-W®X±’*•(OžD‰"%ªÍ?'\LJ4ÂÀ‡*0@äL›âÔ¸³Ã”4o  ´&M_»R‘"E*,X—Ê”Q … ˜0dC(0\q!FC—.‘•ê•§BÖ\ƒVŒ˜¯]¹|ƒ†äÏ € q#=&ˆ f•& ,ÀñlY²]¹`É5ˆ9rþÚ–Û욺L˜Á B…,xtˆ2AÓ¤gòÀéâÀÀ?ب5+,X¤Ø‘#w­X®]ɨ¹ —IÒ- DØ`ǃ’œn8pÒ&Ï hH»­˜/X¤H‘"uZ²dÀ|ƒ¦ÎÞ½WœLˆ`À‹¢tàã@À8_4,xÐIÚµe°H¥Je*U*_»ŠóUŒ;y÷ì-3Äcƒ"H)à£E*,E‰âÅ„_É–Ë%*Õ.Y²vÉÚåË—/`ÚÔ¹c§Ú" Da¤Enp’H ¢KmJùJ–¬X.S¤díòu¬X2hרQ£F Z1R°`þ5 @*"ør¡C-(nJaÂKX²eШÉòDÊ×2nÔ®q#GÚ.€ *ä–¡ ÈA…€ (^!¢SªRЖ5k ±W¤€Q㎷pÜv9*T¨Ð!Q¾’5‰Ñ…ÌZD(@@E¥|-ƒÖ,Y²eɊ킵‹7jЖ&ê¡C<%£F­XpÜT¢cdB„ <È”*–,Y2_»vK¶lY±b×Ôù‚嫘/GŒ tÈW3hÜ’AÙR`]¶ØØ‡U±nÜ #æË°eÚºq£Æ –/j׈íò4(Mš5ŒHíºÆîˆ(ôþr¦ —RãîÉ»'/7nЈƒÆ5jÅ qãF X£7i´¤!䉴këÌíq` @)nb­£G>}÷ܽcG­X1hШq»Ž@u¾< Z“fÍ F¤díjÆÍÜ:s¸Ùz¶ž}úôÝ»gï·]© ­Y³&РAƒb*W2nòîÝ»wïÞ½{ôèÑ£G>Þ}úøñ !ù€ ,+@‡  !""%!!#""###$!!%$$&"")%%*&&-)).((+&&0))1++6--2..5..9//=11611211:22>44:55>88=33A66A66E22E44I99B99D::F==F==B;;I>>I==M;;M<åÊ•{7oÞÌË—/_>~ü:thÑ£Ná‚Hƒ Àlb5@À7nPð!BƒFŠ­bá]¾|ùòñËGˆ!B„2G +4hð% hâF„"<AGO¢;ÆåËg/ß¾|ƒ $H 7`Ì!ÒBCƒFn}2âA "<ˆ!B6ôà p._¾|ûøñK“&Mš4fÌ\¡€a1$þA шÄ!!B„q6í¨Q'GrùòåË—Ÿ+U¬X©b… ƒ îŒi‘ÀVˆ(PH€c– *ÜØ³§…I@" û¶®]¼oè¤H‘"E •*T0ÄБˆÈ‘ (l²ô#L ;ØàS!KGrlúòe*WIJmË&EŠ)R¤T±²% M/€´Pa–¢Y|Hð`“ î$šÓdÕ*L‚5E,Û¶(R¤T±‚% DaèЊQ„ |XÜ’‡Â uüŒ‘Ô"-YdÕ"èСQ¿ e«‚ÅL@‚-ºÃå" <À°CRøÔJeþ$Ó¦zN$P±†B‘<¹ÊÅ‹Ø@„=•+—ž:XaC€„mðdŠ‘iU>·vùqc@Œ0¸ŒÂå ¬FZôÈ*X°æÜÁ€„ŒITÑ :*DйQáŸÄŒx–§CPJshÑ£N F•èN‹cQú¢b„ž6=0ìd‰[ôT 0§Œ!‹Ò¤q#ÈMO F (HŠFPвe Âøñ “ [¼øXÃ%„D0V$1c& An¬DBåʪN"-Ú“e9&ø’À¦Z‰òhPA„ȃ<Š^ü°4ƒþ3f ”ÆÊ#S®P=:t¨¨9kdCÈ OŠ„q¤‘ á3bC—&  `1sÆŒ+U@òôhÑ¢FFÍ¡t㋎#<±ƒK ThhPÁÄ@¬˜Q‹,X¬T‘‚ U§N:5êN¦0*€hPG•‰BÄl€„‡+8x¨@ÁÂ4n ”Æ ^¸Pe •+W¤ø”0¢E‚DxÄÈr§‚:›öŒÀ £Â†,ò„ª•'B€ÒHƒFì¯\¹xƒF‰‹ ?,ØñŠ$ ¶HBÔ¦Ë  4°±Ì™²\°\Áò$Hœ8qþÙšËõ«ÚºT猀¡BB‚#!Ê`ª¤‰—B’v`hРALÕ¨-ã媕+W£ÖûV¬\ʤÅ')ÄŠТÈI>b´±ÄÃCƒæ8«X.W¦F™UMÚ2e¿r‹&®ž=RݼyóæåËÇ_>{ÒPz$(Í™4iÒ¤IãFТQÁ¾µ³gÏž={öìÙ³7oÞ¼yóæÍ›7o^¾|ùøñ !ù€ ,+@‡! !"%!!#""&%%&"")&&*&&-""-)).**+''1**1**5--2..5..911633511911=55:55=99?==?22A66A66E77M99B::E<>F==I>>N::J77W??Q<X:¬ÀÑA€[yó¦Í›6hТ1ƒÍ6oá¼Y£f ›5dÂZuB$¨É +†úl¡“DÈ… PÀÊ›7oÚ¨AC†Œ2hÖ°yóΛ7mÞ¼yóæ²\*ÚÀ‹¬< °¡‚ͰAC†lW®\»ˆ!‹fÍ[¸sçÂ… §ŽÝ»wì¼åéÃe>CAb!ƒ à Y®T¦D}2µ 5mÞ¼…;wNݺwôîÝ£gMÏ ,Hpþ0gÒnÊŒá"@‚M¿\‰õITª]дuӦ͛·pêØ½£Gï=K?8 @ ‚Yf ¨ð£IÐ FL@bÄv c¦-œ:lØ´yó¦N»wïÞ)€$ "dÈ‚9¼XA€„]ШQ£ š·sìÞiÓæÍ›·sêØ©;§Ž†4€ÀA&,#> P1D…xQÇŽ:uêØ½£÷Λ6oáÔS·N]·`01aB€4 `#‡-‰”ØXpø{úîÑ{÷.^¼wÚ¬YÓæ-\¸pÞ°íéð@> @°€|Ø(1¶…þà VÅ‹ï]»vñâµS§Ú¯]È A£†ÍK0èIÔ j¬!Á6*0Há‡9räÈ‘k×.Þ:uÖˆ™•*U®Ká¡Ò¦,¨ÀÁÊ* Lá3`ƒqœ‘#GŽ\»vñâ©SޱT:}Ê"ÀÁ+_øX"@€*¬A€$' Š9ríÚŋϚ5uÞ¬ýúôÑŠ Ì #KŒ@á =ê¨p ÀÃ0äÈ‘k/^¼{×¼½Sg ±Wˆ*0@ÀàÉ|L0ñb0¨@À>d1GŽ\»þx÷êÝ“N]8k¿r½Êƒ‚=ø˜8AÀ…IN@p€²l9‘'O3räâÝ»wïž«]»~!#–ëÕ$0ô‡a¼€a…’2[2`0ãÎ Ktl‘k×.^¼{÷råJÕê±]»þp€ðá‹€-sˆ¹t©‚$É4)jðJ]XÔF9ríâÅ‹Wï×®[®R¥rµkO ÄÌpA§‚I“ø,É”Ÿ;b<8‰Mž:€È‘#×.^¼x¯^¥ÕÉÑ#W’|˜@€G “4yy°îÞ½{÷îéK“&Mš4fÌP@ Äþ² ¢„°lšôDUb6ý2„uôîÝ»wOß”)R¦L™2 qp ``ÕN $áðÁO,a$ù‰cg 4$ §Ž;oê @ )PLPøÂG… ’¾PØ¡d,)¥Êµ‹Xš@…=µ+Ÿ? à  ‚&6[¬ PkH¨9<¹¡ƒcNžxúˆºõ*׫NŽjô¨Sª[¯ÀÔ°±B$iÒ2' «=]Hy¡á„† ‹\ HÁæU'DR JӨѣNžD‰¥çƒ 0`pò€e 6_hõ˜3c‹)‚Œ€³Á%ˆÒœI3è”OŸD‰2õ©S'O=>ð±‚áR Àdù¢)΃ –äàÑãF™ 1c&M Ao¤tJõÊ•©Nšã ‚C~A‚.Vêp˜ÇI C´4™ñABþ3f ”FÊ£T®L=B„¨‘'1„dPË ?Xú IB8wVäa#ÊÎ ¦T1sÆÌ”)R>‰ú©Q£GD)€ƒÃ‰VÀaA‘J5¾8)ã¦É>CL€!¥Š™*S¤H’*Õ§N>}%ªM|p¡Ë›Nl±ÉÉ•­\™£Ã5o ”ÆL•]¹Z‰%*•+W­z€àŠ.“.ͪu% «E¥~`xeʼnú”ªU§BÒPƒFLØ®\¹v%ƒfGÀƒf ±ÄÆŽ;›HMZ£áÁ &   ²]·\¹ê$(\¸pþؘËõËZ¸L!@` ÁEBT¨0aÉÒ¢;&&,˜¡Iר!ûå*•+W¢Ô…ófX®\Ȩ± —äÂ#¾À±QÇ$zò”9Á‰e²dÂv‹vn½I àdxd€ÓF‡ @`#Kš5h®D¥jeÊ”©]¹„íÚEÌšºwóæ!û€àŽ–Àà01Ö<#>ŒÐ‘aË,dÉ»õ©U®[¯n½Êµk×.dÔÔ±;‡- Ä‘õCÅ~8qb‡€>kŠý"FŒØ«T¢^íÚEŒ2fÖ¨Qc1Q¯Hþ­ÐC2L0@ÇI<«¾$bôK2fШ½ê$ê4mÖ¬i ç-Z.€Ÿ*ôÈÕ?¬TÒ€.œ$¢Ž!QÈ1ƒ Ú¯T¦~QÓ¦M›6oÚr=*ThP¡O¹-q²¤G ŒX3&Ñ=¡D!c†Œ2fȈår•Ëš7jÐûõ Ñ DŽ:!‹FX‰+l¤ÈabΦ1cÔ´²D 2a¹vCÆŒ™0bÚÔírµ Ù®H „h3hÚjYK vå1lÚ ý¶k×.fØ´a³¦ÍÕ.jÔˆåz$ÈŒ™4Då¶Ζ'lèþÒ…•7Öè½£÷Λ7mÑ„ ƒÖM5kĨiÓFm—£7Uª˜Ô‰5kìÌÉaP¡‰ZX‘‹G/½{ôر;G²hѬu³¦í@o»: Jc& G¦^åb¦í»uÍ‚k¶®]»xñÚ½‹G½yê´yë¦M[7vïÔ!{4茙4…yúäIÔ.hÖ¼½‹/^¼xñâÅ{×®]»xñèÝ£GoÞ¼yìÒÝ›§m×£4fÒ*„ÈQ§HLíb¦M½xñâÅ‹/^¼xíÚ½‹/Þ½{÷îÑ£7ož·\©½I“& A‚ !rôé²pìèÑ£G=zñâÅ‹/>^»xñâÝ»wïÞ=zÔR‰z4(Í™4iÒ¤IóF#Q¼½£G=zôèÑ£/^¼xñâÅ‹/Þ½{÷îÝ !ù€ ,+@‡  "$ #""###$!!&$$&"")%%*''-##-**.))+''3))2**5--2..6..8--;22611:55:55>22=88=66A55E66J99B99E>>F<>I>>N::J==Q77Y??iAAEAAIAANEEMLLNBBQBBVFFQEEVDD[IISJJVMMVJJYMMZNN]JJ^RR]QQZXX_BBbAAnBBoFFkMMbLLdNNmKKkCCpGGsEEqJJuMMvJJrNNxRRaQQfUUaVVfRRmVViVVnRRkYYf\\bYYjZZm]]j^^mUUtQQzSS|TT}VV~ZZv]]q]]tXX~^^y[[zaaneekbbrbbueeveeraazbb}eeyee}jjvmmzmm~ii{ppqrr{ZZ]]‚^^„aa†ffccƒee‰jj‚mm‚mm…kk…hh‹kkˆjjŒnnŠmmŽnnŽooqqƒqq†uu…ttƒqq‰vv‰vvrrxx…zzŠzz}}Ž}}Šqq‘tt“ww•uu”xx–zz–~~‘~~•{{˜||™~~šŽ„„…“‚‚•††–……’š††™……ž‰‰–ŠŠ“ŠŠ™™ŽŽŠŠ““‡‡ ‚‚£ŠŠ£‰‰¡¤ŽŽ¥ŽŽ¢§““¦””¢’’¨””©––ª——¬œœ¤™™¬››®¯žž¯››ªžž°  ¡¢¢¬ªªª¡¡²¢¢³¡¡±££´¥¥´§§¶¥¥³¨¨·ªª¶­­¶««¸©©¸­­º®®»¬¬¹¯¯¼°°¼³³½´´¿··¿²²¹¹¹¿¿¿¿½½¾ºº»±±´¶¶À»»Ã¹¹Á½½Ã¾¾ÅººÆÃÃÃÀÀÁÃÃÄÁÁÆÅÅÅÅÅÆÆÆÇÃÃÈÅÅÈÆÆÉÉÉÊÉÉÊÊÊÌÌÌÌþEuÊt >b 4aB„"Dˆ!B„"MÄhº¥*Q¦ZÅ~ÝÊ•+X´nß¾K·ª§E…â#ÆI&Dˆ!B„"DˆQ¤ 0`öÜŠÖ,X®\¿šaëÖí\ºV¢:iJt¨ =Pš,aB„"Dˆ!B„ˆ&Lš4¨µfÅ~ý*-[·oéÒÝZЧL‰õ㤠&Dˆ!¢„ˆ“/B„0iÒÊž[ͨE3&¬´lÝÎ}ë–ÍØ¯V¢D‰ê”©Ð1`š0aB„H $†$]:pÃ&bT5ËF-Z²bÉ¢EË– [³fÔšñºU+×-Q‰þíãd ",fÄ!ƒÄ‚ @¨’©X¶lÑšE3–,5€Ñš%kÖ-[´`ÁŒËÕ) =`œ0aAŽœ7¤¼À @€_ŠuëÖ­[6hÍ¢5kÖŒ¶oߺa‹† 5c¼De´' ?v*5’ƒC€ T(ª[·nÙ¢53V,X±iذuëö­[¶lݺ}ë–-š°Y>Îü±Ô&NŠ pÀÁ˨5+,×­Z¹~‹F­Û·sß¾}û–n}DFˆ, bź¡K–K±\ù˜ŠÒ,, 2 Ò ÐÝ»wïÞ½{|öìáÃgž/B|ðòÀ•Ž::ˆu V¤eT˜rÔ(P¤—t0è€îÞ½{÷ôé#FŒ1aÀ8#uÔþÈ‚)K*W´b ƒåÈU%;Q(M¸Ó¡‰t÷îÝ»—/Ÿ'Mœ8iâd 5*9`S) ‰X\¶ÐfÍ&W°, ¢ôhB6û–n¼uë˜0a„ɒ&KDAA©9[RÈr•ŠTª<@¨\’u'Ë9:ðè°¡•¨UÁ°uËÆ„ &L–4qÂNL@¨²bÅ—¬Xv‚HèÀÆ$H‰4­º•+˜=}%êtëÖŽ008P'—KY`$‚Ç‹2FÌü!h’9vftªµªV«C‡öô)”(“¨ZµvpCåŽ7¬Ù‰‘E—J HìhcË8snì°â¦V¦CšBñ¨P¢Lš:uêt…„ .1eqÔ¨’ %JœèPâ+P~ÊDj‰9€Ä„èLMœ8uêĉ§?`p¨ÑŽ(n$paBƒ§:Á™ÃÆ— |FŒ>gœ$Õj•¨L™2%‚€âÅ›F(>¨‡p0ÂÊŽ—.–ua áBþ0aôìásÆI"Q«D%觺P©£ƒ %`H€¡ CFp°ÉÒÆƒœ@# 'M:u┨P¡DšBùÀ`C*RT؃ÁHB”i3¨ÃBQ<Ñ (Nœ4a"J§L™4qêÔé ${ÄPkŒW®[·rköC€]"AÅ F‘v$`°A*ÀaÌX±\µV‰Ò´çÛ·nþØŒýºõ+Ú7LK 8€AN—1x4jT‰  $ @†TÔ¢%˵JÕ*UœÒ}ëFíW«[Å¢­ëÖ€ ¼˜â¥8G0`C…òP£Ö,Ø­U¡:…êDš1b¼nkvŽ^½.8¸#¨Ã V"¡9r ÁƒPHA¬5c«:‰R%JT¨\·‚ñÊŒZ:xõèÑ"á ÂK<0XáfÐ ÀçR°eÅŒ«¥iU­VµnµºÅ+W®_ØÎ­K‡-ÚÔrÅáÁ•-‚ÌD)# Œ\§šñ"F,X­NZåúU,X1cÑ¢EkÖ Z°N­@þ©H¡Ä«6U*\B2GЧ(&ARõëW1cÍ¢µÒÔ‰W³lÔ¨eûö­Ù-€œõé“h™"+*D‘U€2–¡ ô勦VÍŠKÖ,/U¡r5Ë–-[¶nÙn%êÓ§ N·Š I2£Ä 4e ºôʼn?“:5ƒ–LX±bÅ‚ÝjÅ‹Z·fÍŒãÅ @‰2‹Í— (`± –œ$EþšÌX1^·rý*–ÌX°`ÙÒåZ•«X®D…úìÙ(W²fÙ^¨àe•;¢¬pò%±lÙšñ –+W®dÔ²aÖmU®hÑ~ÝJ¤ ˜3…B݆nØ…!|¼þÂEÅ—3ÔêÁ£·lÍrñ‚Æ-[4lÅ¢aÃ-W"1P €á“)X4jè­ÁPeÇ FX‰‹/Þ½{õÖ­;×,X1hТe£–íÀt¹2íFÌžD¡ZÝ2–-^¼xñâÝ»wïÞ½zÑDuJÄGŒ1gĈ9sfO¡N¿º­«W¯^½zõêÕ«/^¼xñâÅ‹/Þ½{÷îå !ù€ ,+@‡  "%!!###%!!%%%&"")&&)&&-((*)).,,/))1--2..5++6..:%%011500322922=55=55:99>--D66B77E99B::E==F<{ù *¤h#NŒ$PA1ÂJM¹¸ðà)–­X‘„@ • Y(P’yh£={öìÙ³'H A‚ "J¨<œÚ‰„.±LU˜­I‰0íR†Ž‚FÔÙ³gÏž={€2‚´é±gG­jµÞhȃ+»Z´0Q’„H‡ 4¢Îž={öòå#FŒ1aÂ4ð㎠4YþC¥ÊŽ0d˜âÈš„ Lu$ÌP  B…söìÙ³‡/ß“'OžTШP!OŪysò$Š˜4€)úဃ *?¸¼é@£Ž©‚ДþHÔ¡G‡æ ÒÁAAŒ8µúl˜?‚ 1Å‹—*z¸@•*ËHx~¼°¥£ªA¢ ¢Tf’!ÌŒÚÕêÕ«E‹RĈ©]­t áàEžGkúàÊÓæÊ±[j%’R†ÒœGÌxQ0©'Eœ@£h‘#NœF5¥ u‚àñ²×£"—¸¡Ò¥Ä”8˜â€qçÇ xÚ`24é‡fÜBY׬)ÖªU«V Ò‰#w­Ø.^ɪ­{ 8YL|È"Ì9x<(àðCE ô\ã&­¯V£@‘u­š´bÀ~«†n^=.è1S¡B—Ze¬È¡Qဃ3Ž@@¥ÌÚ5e­@‘jEŠÔ¨_¼ŠýúUìZºwõæåJ  Í›ªÈ2tK4p#é‘3eÉ”Û婯]¯vµâõëׯdÚЭC§­š™ôPÉ GÕœ3)€ôèr@€›9¿”;–¬Ø®Q£^ñúU¬X2eÕªU“&MZ1P­Zþ!qáÒU²2]„GJÔH: X2eÒª½âê—2nתq®/€ž Ĩ¡$jdJÒ$T†•¸qM%^À’)k&­0R €UãÆ7pÜx1$HP!O¼ŽáH!B@€^»xñäÙ³gÏž½zÕHbHŒ1bĈI“"PÀÄÍ›W¯^½zõêÕ«/^¼xñâÅ‹/ž={öìá !ù€ ,+@‡ "!%! #""###%!!&$$&%%*&&."")**-)),**1++5--2..5//;..?22622944:55=22=88>66A77E55I99B==F::E>>I<>Y@@GAAJBBNEEMIIOEEQFFUCCQFF[IIRJJVMMVJJXKK]MMYNN]QQ]VV^TTZPPTEEeAAnBBoFFmKKbKKkIImNNlCCpFFrEEqIIsJJuNNqMMvNNxRRaRRfVVeVVbRRjVVjUUnYYfXXbZZjYYn]]j]]mRRqRRuUUrVVuQQzSS|UU}WW~WWz]]q]]vZZt[[yYY~^^y^^|aancciaaqbbwffveerbbybb}ffzff~iivkktjjzii~mmmmzqqzxx}ZZ€]]ƒ^^ƒ__„cc‡``…ffccƒff‰jj‚kk…nn‚mm…hh‹kkiiŒmmŽll‹ooqqqq†uu„rr‰uuŠvvŒssyy†yy‚zz}}Žzz‰pp‘ss’rr‘tt’ww•uu”yy–zz—~~‘||“{{˜}}™›}}šŒ’‚‚•……•„„’š‚‚œ……ž††Ÿ††™‰‰–“ŠŠ™‹‹›’’““œ‡‡ ŠŠ¢‰‰¡¤¥£§’’§––£““¨••ª——¬™™¢œœ¤™™ª™™¬››­¯žž°¢¢¥££­¬¬®¢¢³¡¡²££´¥¥³¥¥´§§¶©©·ªª·­­¶ªª¸­­º®®»¬¬¹¯¯¼°°¼³³¾´´¿µµ¾³³º¿¿¿¼¼½ºº½··ÀµµÀ¹¹Â¼¼Â¾¾Å»»ÄÃÃÃÁÁÁÁÁÆÃÃÅÅÅÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÇÇÊÉÉÊÉÉÊÊÊÌþQ‘úÔÈ @cœ,A$H A‚ $H#JÆ€¢…ª‘£^ÌŒìØµpäÈ‘K'‹T¨O  4¦É$G‚ $H A‚9‚¤ ˜1cù²FÙ0`Ǩu .Ý:Z¨HrÔ¨‘!?N–(Ar$H A‚ $È$H–,qbˆÙ5kÌŒcv­[8rëÖù’u*¨OŽ Ód $A‚ r$È(„(Y²ÄI _Ô²YsvŒÙ4pá‘ Ι1Z¨P¡"õ© 1`– 9$ˆ0e8X°@‚Š%c`=Ë–íÚ3fϦ]ëÖ-Û4jÙ¨ óÕ ˜/TŽ þÓD ’ KÒ¨)¡`D €(ô‰Y·n×®]{ölÚ5€×¨=£®Û5fÇœ1Fê“ ?`š(BG P  r˜… .\·kÓ®Q£v-·päÂq»Æ[6gÃ`}2ˆÈ;Y†Ä A€ € +\¸pݲ]{Æ ³iܸ —.\·páÂ… î2Z\ä•$ PB Ö¸QsÆl˜¯^ÀŒ1»Æ-¹téÈ¥K·®]¼xíÈê" Ì7“b @€ .°àÑÍ™/T¨H…"å‹ÙµnàÂ¥K·n»x÷ôé»ç,$7]´Ð þ@€( @BWÃP‘"Š)`Ô¸uëÖ-9réÚÅ»wOß½JxØÀPB£ƒ‚ $@@ €4L8v @cÇ€sÖ\:nܺ… —n]»xñì)A ..(P  (ppB‰IÔ®]»Fm8rñâuëŽ\¸tëÚµ[—î9`èPP @$ð @ :¬X¯ÝºtëÚÅ»/\·péÒ¥[Çn]¸\t¸C‡‚ (@€ÀŒ (qB4~üôÝ‹oÞ¼xá¸]ëŽ9räºá‰e  (p @ALpÐà þà îÌ›7/Þ»wóâ½[×íš±aȨQ»–ÍÆŽ…B”ƒБ²¡C -ttˆãBÃ4Œ„PÐÇœ9sïÞÍ›7/[6rá® å¨   *(`1"+ :à©3äÄæÌ™{7oÞ<}ÙÂÅc—Ù1Z†hа EK¢D¯n À³åÁ9(±Q0D:%.t0gÎÜ»þyúôé£FŽÝºnÆ|Ñš#„-4\ôHôj'6 (0±IKD–æl¡€B4sææÝÓ§O-a†13æ‹ ñà…–Hn¢XQ @ WšJH¢äe†› n™{oÞ=}ú|ù:…j˜1`ÀÜX(‚†ž- "™©ô‹¬Â°’)EŠêz0!“9sïæÍ›§o0Z°N¡’l‡ v¼Ù⡈HQàDQ AJ®j¢¤ ‹ƒ wÌ™3÷nÞ¼y¾h¡"õ©‘#Y,LD@°Ãƒ‰=f4ð 5©  ’ˆb•kÎ!B:XàñîÝ»wóæÍ#uŠT¨OŽþ>¡¢Aâ6´äÚÔá¦Jp €(õ…’+]‰ÌHÒ±¡C”wóæÍÓ§O_£F>}úŠT‹FÜ€)×+=l­zå†N©/š4éªt(‘ ÌÓ§O?}ú d¨‘£OŽZh¡ÅŠ >®pñɵëU¥]¯(q"Té)J•¤8‘#ž>}úôéÓ(P A‚ D6|^E©´K™+eëv)¨)ΞW»rDÊRÆ‚7âéÓ§OŸ>~€ÈŸ.,¢Ü°rg•7ºp•ҵ͕.N|ViyÅFt˜ÂNŸ>}úôñ3f̘1`À€¡A%Ƙlåþ±¤ÉÕ.\’®¸xé…&6 pàà‚túôéÓÇ_“&K–4YÒD :¦<É´ÉŒ¥C‘öL!Á•7mlmz ` b8#·®]¼pé A‚‰’%J†”±eÏ*sIJ´ÃŽ‚Q&PࣈÎrp*YǸuë† $H,Y2£C‹=RFàø‚ˆR<À¨4)Ê&90èX€ñA5"e,[8$H,iâd  =X`¢bÅ šJ_ŒÌâæÁ]q6Õ™ƒ¥Ò–=,HÐÈP#RÇ®u[âÌ?€52#=‘ˆHš¤CM<”Ûµþ«—:„ª8XAA‚AŽBÉòÌØ? 5"åË+ ìLš´ ×Qê¼ÊUL™«W‡êh¢d‰ >‘ê%«­Fü2äè“,_²Pé€`e¦W¹¦pÊ£F“2^»^mBsèU3O°l Q«×§FŸPÓ¨¤O¡H‘"EçÂ)fâ(Û5¤Œœ<¯^U‚µI!M»*U:‚ÀŽ9†Æ„IhÌ’P¡B‘:êÓ'3&F”8Ñ¢X?aqµ©R™RsÔ(ªD©Î :¨fŒ@c–8B%KªOŽ="¡e ¶F0áENK’ŠiµF M‡¢(P  @þ0`Ò4¦‰#T²P92d¨Ñ§[p±1±JÂ!“¼𣦖š9’$åÊS Ãš8L“&KB‘ ©Q£FŸH=qa%G \4t˜qU¤ˆšC\¼è)sÈU”h(8±Ä 'Mš,A‚ U¨OŸB… E* X8ÙÚƒ©+I=ÊÔQ3GM/uJØCÁŒ1c4Œ`½P"u •,Y– Dx5ÉU)O꼺ÂÁÌœ:\˜™¢  $… … Ö'A~Æ\£¶l0_¾€£FâA%<•4í8᪠oMâ ÃD‰r AÍ3_½dÉ(¹pþÙžó5,[»;)h±£f[¶\ÙÀ²Ã•&tÄ@€Æ“UÙ¬=&K–,Y§Ö‘ —ÍX/_̮ŋ¦Æ&EQdزå  OÐQ¥E€ <ØDËFm0Y§H:•í5fÃ|£–ÎÞ½0J½IpÁ•+W4vT( àAˆ))гÌZ6g²H¡BuêÔ)`¾Ž vìZºx÷âEÑ(‚ œp•Š2£‡ 0(RC'Ò°aÌœóE U/Z´|Ñò5 0fÙÒµ[Çí¡y ÄÐ5‡Uð°¨p¢ŽB´„[¶ì0T¤hùÆì3gÙ®]{6íš1R´hþy‰QE­W›*áÙ†Juì3gÔ®õj5nÙ²u#Gîš/€¡ ÔHV¡@ı5)ΡCC@”¡#§,aÌœ9{FÚ0T¤†]ë®[·nÝ|9$H¡P¾Š¥8áá„&=2ˆ(ù¢¨ÎD H£ö 3gÇŽù¢å‹[·kÔ˜Ê C@1›6MW"V*1Á…&] ‘¢tŒ³a¾|cöÌÙ±cÝÖ“5Œ0GdØ3jÝv…PCK =„„4aòÆM1nᨠ3̰gÜÀq»Ö °k׌ùúä ˜1NùâÖÚ…0ùf G§hùzÖm]»xÊxíŠÆ.Þ»wóÞÅ›wïÞ={뺥 ×­¸vñÜ1s( ˜1‚…"õ‰0jܵ»7/Þ¼yóæÍ‹÷îÝ»yóîé»wÏž={íÖé³ÎW£1`Âød¨Ñ'GŽNsÖmݽyóæÍ›woÞ¼yñÞÅ›7ož>}úôå»gÏ^8_¨ 3Æ @€ jгníîÝ»wïÞ½{óæÍ›7o>Þ¼yóæéÓ§OŸ¾{×P‘rh̘1cÆŒ“P£SÃÈÅ»wïÞ½{÷îÝ»7oÞ¼yóæÍ›7ož>}úøñ !ù€ ,+@‡  !""% #""#!!%%%&"")%%*''-((+)).,,/**2++5--2..6..9//>##011600322:22>55>55:88>66A66E::A::F==F<>I>>M55J==T<<[>>aAAFAAIBBNFFNHHNAAQFFQFFVAAUDDZJJUMMVIIRIIYMMYNN]JJ^QQ^VV^QQZEEdAAnBBoEEmNNbKKdJJnNNoKKjCCpGGrEEqIIsJJuMMvOOxVVbUUeRRcSSiVViVVmRRoZZf\\e]]i[[lVVsRRtQQzSS|UU}VV~UUyYYu^^q\\tYYyXX^^{aanbblffiaavffrcctaazbb}ffyff~iiriizii~mm}mmyrr}rruZZ€]]ƒ^^ƒ__„aa†ffdd„eeˆffŠccˆkkƒiijj†mmnn†ii‹jjŒnnŠnnmmŽooqq‚qq†vv…ttrrˆvvŠvvyy…yyŠzzŽ}}Ž}}Šrr‘tt“ww•uu”zzyy–zz–~~{{˜~~š||™ŠŠ’……“……–‚‚•€€›œ‚‚„„ž††Ÿ……›‰‰—ŒŒ•ŠŠ™ŽŽ‹‹›‘‘ž‘‘™ššž‡‡ ŠŠ£‰‰¡¤ŽŽ¥¦£‘‘§’’§””¡““¨––«••ª——¬››¤šš­¯žž¯™™ªžž°¤¤«§§©¢¢³¡¡²££´¥¥µ¦¦µ¥¥³¨¨·©©¶¬¬³ªª¸­­º¯¯»¬¬¹¯¯¼°°¼²²½´´¿¶¶¾±±»¿¿¿½½½ºº¿¶¶À»»Ã¹¹Á½½Â¾¾ÅÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÉÈÈÊÉÉÊËËÌÌÌÌþS¡õèÐ @eªH‚ $H A‚ $RØ„–*R¤_ÎŒ&Œ¶qåÊ­cG Õ(PT†Š(O A‚ $H yEʘ2eÓVM™1aÊ®y7Ž»_©JšôÈÑ!@c¤Hò $H A‚ (P¤Hs(¶jÎ’%s¶íÛ¸uìØ›•jÔ(P‘ *CE (H AòäH 0`@‘"¥J `Õ¶is¦ÌÙµoãÆ•'îY2Z©R¥*ÊQ 2c¤@y‚‰”&*(  š1efIó¶ ›4gÒªaûömÛ5iÛ¤ûE °T‘þ*CE $R•¨ € .XyÊÙ¹oتa{öì6€ØªI«6î6eÊœ9V Ô¡?c¤@‘²†Î 0@@‚œ7nܸkÕ®U«†m›·qåÆmÃæíÛ¶gÉb:h —-;2H @€€@¬Ü¸qß¶a{æL™³jÞ¼WnÜ·oãÆ'›³Zbô(¢A   ÃÛ¼U{¦Ì0`Â’9ömÜ:vëÊ•+ÇîÞ99>//B33B66A55E33E77J::B::F==C==F>>I>>M99J>>Q??V==]66S>>b@@GBBJBBNDDMBBUEERFFVBBSFFYBB\JJUMMVJJRKKYNNYNN]II]QQ]UU_RRZRRWCCdAAnBBoFFjNNaKKcLLmCCpFFrIIsJJuLLwNNvNNrOOxRRaVVbVVeQQdTTlZZf[[cZZi^^n\\jUUrVVuQQtQQzRRzUU}VV~TTzZZqZZv^^q]]vZZzXX]]zaanaakbbraaveereevbbzbb}ee~eeyiiujjzii}mm~mmzqquqq~ZZ]]‚^^ƒ^^„aa†ffgg…ff‰jjmmnn…jj…ii‹ii‰jjŒoollŽmmŠoorr‚rr…uu„rr‰uu‰vvqqyy„zzŠzz}}Ž}}Šqq‘tt“ww•uu”yy—zz—~~‘||”{{˜||™~~š€€‡ƒƒŽ‚‚‘……‘††–•€€›‚‚……Ÿ††ž††˜‹‹–ŠŠ™ŠŠš’’‘‘šž‡‡ ‹‹£ˆˆ¡¢ŽŽ¥§’’§””¡““¨‘‘¨••ª——¬™™¬šš®œœ¯žž®˜˜«™™¦ŸŸ°°££­ªª¬¢¢³¡¡²££´¥¥µ¦¦¶¤¤³¨¨·ªª·¬¬µ««¸©©¸­­º®®»¬¬¹¯¯¼°°¼³³½´´¿··¿±±º¿¿¿½½½¹¹¾··ÀµµÀººÂ½½Â¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÄÄÈÇÇÈÇÇÊÉÉÊÉÉÊÊÊÌÌÌÌþU‘ õ"Bg¬H¢D‰%J”(Q¢D‰%QÚ„Â¥*’¦YËŽ ökÙµqåÊ­[' •¨P!"tfŠ(O”(Q¢D‰%J”™rµòÄÆ…œ[‹8]9„$ÑŽ0,XðÅ4tèêáÛ·oŸ¬_Á†-ök.t2ÉÉ1K–JZ²œZöêT&5§¶ Aaƒ:l¡‹¯¾}û‚S¥j²_¿¼éƒÇE">„têãÉÖŸqâ`e2PÌ©-DÈba:tñêÕ«·oدY±T¡RõË>‰XDÁR.¼À¤B§LŠÙˆ`Aà ]СC¯^½z¾d©5éQ$Y'NàÁ±b‚"œZáØue–LN2ñ¥ËCŠD00/^¼xõêÕEŠ”¨P“þB©²! Ó €©åÊÏ.=„¨sjÑ­Z@<0øÀÄ‚‘zõêÕÛ·oߣH‘BM %ŠŠÅHÐàS§]Ï>Q˜K—^%’Ó# ˆÔÛ·o_¿}ûBÔ¨Q¤P‘ ø(ơà ºjyzåÃç*j•FQ¥/r܈À'Þ¾}ûöíÛWˆP¡B…!jd#ˆ§œØÕ* ?ˆØ¨Ó¢L+ätšƒ#YæíÛ·oß¾~„ $HP 6zTêA@@„]–Dˆ`€Öx‘s…O †|Èânß¾}ûúù;sæÌ™3eÈpE8èþÊ’ ‚ÀIà…HAN,p°Ãƒ uûöíëׯߔ)S¦L‘2eŠˆk8 8Ð#‘ 4~,HÁÊ•…Jp0IC$Á®<+×îݼqí @J)Q:àè@က{<$ðá G0»*ásåÄ/A‚@ð D•*YÈ´…  (P H™Â"¨ â@ƒ8­Š<ÈÅ=–|À“"o ="…¬[8(P H™båŒ Wˆ pʼn z8ü@ÃB:~TPêó#Ñ«Jp© Q#QȬ…“b…L™@‚ =“%Ë_ìDð %-(¨°DþgQ_vÝrðaD¡B©ö Ù™@…=" Ø— `8¨´Ç‚ <¬Ùá §W‰†ØH±K:6:š¥jÖ¬Hj)”*_³°³À˜\*0pða 8•xå:&…+ NHãBcV(D¡T:Ó¨Q¤P¢H¡B• œ¸lââ€&kè±µ+Ó"CirDH ‚ÒŠΜ9ƒ¨Q¢D‘B%J”¨-65á Zõ!B«N¯N%"€B*ð CæL Ag¦DR%K–ªP“&â@…þ±Ž+(²xr•+Ñ&l$X‘àÀþ2d tfJ$T²PEB„èQ¨ Ÿ XÀÀT¸’§“§E—ðØY“àÀ¦X!S†Ì”)RD‘©Q£G¡P]Á‚€€ +ºD€ ‡«E·*%:µgM' >Á Å +S¦H‰¢J•¨P¡D‰"EJH8TˆàÉ!A:)ê¦Ó)66Œ©@!È2g t†Œ•_¾T‘"EJ•,Y™D…€=­ÐàÀÇž0jÔ|à`NŽ ‘…JU¨BÎh£†lØ0`À~!£Ö€ +(؆C@€Š*ɹ±$ˇ,¨ÀLÚ2`³dÍ %¨\¹qþÝ !†¬[»VÐÃåÀ@Q!È 7lh Ä„Ã?Ü®Aû5+–,Y¤Ú•§ ™/`Ë®Í'âƒ9"`Á†‘ax@€ÐÁR;)üHÓFM0Y¤H©"¥íµeÂ!»¶î¾>`^qÒ€B4pÈÁÁ‰ž¾$òŒš6j²H©Š¥ ª_Á û…L[»yøîiÛSé lD8@@€6%ìPSÉΫa˘-óEJ°Y³€ùöëׯeÝÖ½k×íÚ¡L™¸há“…<Æ\2!"Œš` S¶ ™/T¨fû… Ù2f×®]£ví2R³fþÝhÂgÇš‰ T@"ÃIÜðÍ»woݸnÔŽý²&.ܵnȨ… §í×£3V¬)ê5mîÚ±Ú±͘*`\Å«‡/¾}øÞ½[w Y²kÖ®…Ó6®Àv¿B:C挠H¤fƒ®Ý¼x½r“æ.^¼yõâÍ«‡¾{í‰NܸwóÚ-›Dˆ ™3……"ŠÔ/jÚʽ«W¯^½zõêÕ‹/Þ¼zõðíÇïÞ½yïàíÃ7Ø£3dÈ´)„èQ¨P‘PýbÖ­¾zõêÕ«W¯^½zñâÍ«W¯Þ¾}ûöáÃwï^8`ª µ9s& @‚ !j$Êײpïðá÷>|õêÕ«W¯>^¼zõêíÛ·oß>|×T‘Š$èÌ™3gΜ ÔFP#RÇÆ½Ã‡>|øðáÃW¯^½zõêÕ«W¯Þ¾}ûöõ !ù€ ,+@‡! !#%( #""###%""&%%&%%&"")&&*''-&&.##-)).))+&&1**1**5--2--5//9++800600322922=55>55;99>//@66A77D22C77I99B::E==F<>I>>M==R<<[??b@@GAAJBBNEEMBBQBBUFFREEUEEYBB\IIQIIUMMVLLSJJZJJ^MMZNN]PPWQQ]SS[BBeAAnBBoFFhNNbIIcIIjMMmCCpFFrIIrJJuMMvNNsOOxRRbRReUUbVVfVViSSmZZf[[dZZn]]m[[jRRrUUrWWuQQuRRzUU}WW~SS|[[rZZu^^r^^vXX^^yZZ|bbjaaoaarbbueesffuaazcc}ee~eezkkuii}mm~llzqq~uu|yyZZ\\‚^^ƒ^^„aa…ggdd„ee‰jj‚jj…mm‚nn…hh‹jjŒmmŽooqq†ss‚rrˆvvŠvvŽ{{‚yyŠzz}}Ž~~‰qq‘rr’tt“ww•uu•xx–zz—~~‘}}”{{˜~~š‘‚‚•……•……’‚‚……Ÿ††Ÿ€€›‰‰–‹‹”ŽŽŒŒš’’ž––ž‘‘™‡‡ ˆˆ¡ŠŠ¢¤¦ŽŽ¥ŒŒ£‘‘¦••¡’’¨––«••©——¬šš¢˜˜ª™™­œœ¯žž¯œœ¨žž°¢¢¦§§®¢¢³  ±££´¥¥´§§¶¦¦µ¥¥²¨¨·ªª·­­´««¸©©¸­­º®®»¬¬¹¯¯¼°°¼²²¾´´¿¶¶¿²²º¿¿¿½½¾ºº¾¶¶À»»Ã¹¹Á¼¼Â¾¾Å»»ÄÃÃÃÀÀÁÃÃÄÁÁÇÄÄÅÅÅÆÆÆÇÂÂÈÄÄÈÇÇÉÉÉÊÉÉÊÊÊÌÌÌÍþU™5©Q#Dk´\©âĉ'Nœ8qâĉ*Wèˆê¥Š¨]Ê„ùò嫵pãÆ¥KËÔ(P“5B´Ë•*Tœ8qâĉ'Nœ8¡R‹š5kõ¢&­˜/_Ťm .ݺ]ªLª4iR£Cj®\©âĉ'Nœ8qâĉ“*U®\ÑÒ(6iÉ„SF­[¸tëÖõ‚•jÔ(P”&)ZsåJ•*Nœ8qâÄ “5ª`¹rE‹¢^Ò°Q[VLÙ´náÆ n±XªT©2UI¢5j®T¡âĉx‘%-kTI놚3eˤa× 5iؤ ÛµËW¯T”þ!ZƒÅJ'V>˜PaC‰#1H|QJY·nÔ¤QsæŒ5€Ô¤9“®µbÅ–-óe T£Cj°X¹²c EbØÐ£Ç$¦”… .8jÒ¨Isv ¶qãÂa£†m¶eÄTj”HM–B|@Òbh´,\¸pݰIs¦¬˜2iض… 7.\7páÂ… Žš²XŒŠ4ðP‚œ*¨Ðp¡#×°I[VÌW¯^¾ˆ-£¶-ܸt鯥K·®[tfô@ð¢A.Pœ(òf̤ VÌ@bÅ|[¶m\ºmÛº… —Ž];yòìiSe /_RPˆÓ¢A„"P¸L0aWÔ¨Q£&M¸tíäuë.\¸tëØµ[·.Œ#Šœòñ¥A  ‚(!€ ˆ 8q×®»uëÚÉÃ'/\·pãÒ¥[Çn]·a%¤Ä àcKv`x'Ç ?*8ðAƒ¶|ùòá£G=yá°Qënܸq㺅‰ (Ü¡C'A^føQþÄÑ£GOž¼wôä½[ך0_ʤI£¶Í„Ax(H§YZÐ` ž™3gÎÜ;yôè­[7îZ1U”@™‚Ó¡DH¥ pä•^ qãÈ‘¥ ±Éœ9sæÞÑ£G¶uã°EIÒ  ±Š)’L˜:yèÂ%>ÊT @¡B1æÌ™{G½|ÒÊÉc×M±]“J4ha Ó)H^ŠD”©S&ÂТuªK„?(ô0gÎÜ;þzùòå»VnÝ:m¾zÅzTbƒ‡V®Nù‰Á'“%Z®âð q) +Z/"4 CÅ3sïèáË—/,_¾ˆ)#Ö+V¤äÙò¥Ó'KvZœ¢Åƒ Z`¸iÐ FŒBV™3G¾|ùzõJ¥J1_¾0)‰A …—œXYR2DÈ©Z9–tšÐM‡r|ñP¢9sïèÑ£—O˜¯]°T©‚å H¼ðbKשMè„|9!¨Ó3?"DˆàãÆ vÌ™{÷Ž=z½b©2j%X? °†'Vºh 9ɉaž¡ùA£AƒPXòÎÜ»wôèÑ3•ÊÔ¨Q•þ@©JÑ`l!³…섉!d:°ê´. p´ AaÄ’wôÞÑË—/ß$J”@eʉ#2Ì–+$2À¸T§S§9§:}i@æ‡F‚ÐË—/_¾|ù)j$I%P¢füA@Á[˜¼P Ð¡ƒ N¬Íé4ç?#*T8æ¾|ùòå˧H‘"EŠ5bäãU ù@A \Hë <–2Yò3ÁG‰ Ìåˇ/_¾|‰!B„Ñ!:9.@€@‡ Dh—\8ð )ã(Ò:”ÈQ._¾|ùöñ[³fÍš5kÔ¤rg3bDþ !B1´†Ý'ΩH‚ РÅtùòåËÇ,W®\¹‚ÅJ&xd"B†%´öç…@GàáÃ¥BƒG~$·®]»vëªT©R¥Š•+VrL@p"IÔ)Ñ@„'G=ðÜÁ@áN'<8B˜À±Ã”*XŶ…ëV¥J•*Uª\Ác„‡ A–dáO <ê2hH„$ìèèLjM2U¬¸*Uª\Á¢e "!<Äè¤A%^¤Ð€@˜ø¡$ˆè ¨‘¤QŨu»¢EÍšCˆMº#$L<74hЀBƒ-¼\‚äþ¥A]F4(ãDE”@©ê嫨šCŠMÕ«—%†tªÓ¢A ”À1È‘§H=:¤ÈÃ-F˜Ú¥*¬I”)’D ”ªX±Ê"ðbŽ"d €¡Œ§W¸<‰ÑG=N!d¨I¢T!ZÓHR%P£L™25¦ ƒh` A‡A€hå¢ÅçÍœ#9 ØÒI…’Ö¬¡“ˆÎQ£F™25J¨7a ˆQ!F(Ъ…,ש3Súli€ Á—.ÔP£fÍ!Et®€R V*P”(= "€86 @`«W¹ru23Ç “ ä¨À¡þ5jÖ R¤æ %U°RQjÔH(1PXPfÃŽäÉ•+’™N®ÅØ0¢‚ °hQ£F ,WF™UI’¤I Lm €!#*À0âÕ+[ŽæØ:Õ‡Ë#Æ XqE‹-Z°\±¢J•(P D2eÊA´´…:¹¾ØâãÉU¤LGðŒhàƒÀ5tB´F_½T™2eJ,Xš0’"ž: B¨Ó)Knf”t‰2™•j(E‡ÖP“VL˜¯^½|“Ö€#üt¢%(®L—ÀÌ¡€`I&<L!m™2_½`Å…(ܸqþÛœëUŒÚºB0áË%-ZÐ:(EŒÄà‰ƒ B1ب9K,X¦Ö¡‡­Ø®^ʺµÓÆÁÆ[8 P‰£ER2æ  0J4ë&­X/X©L¥J…Ú²dÄ‚£6Î>?à$s¶¬˜²eÊŠõŠÕ [9jÒ–ó%JQ¢F“F)£FÍ(qæX1Ç‘¥9sÞHq#ÍÙ1_½zS&ÍY±bÛÖù‚åK™/J!:ÔÈ—3iÝpqéó& 3|âHyc¦ˆ0pݨ#ÖË—/gÛÀmÛ–/jÔŠõ…H:’RõÚ¶îÙ3tè¸)þÂ#HÚðÉÃ'/\·nÒ| ›nµmŨuÛ†Íפ5Z°¨Iª˜4lìÐmÚ‘Ë7>™£G½|øÚµK'˜²iÒ°ÃÖ-Àu¾@!Z£f ¢I©bõZÖm];vÍl ƒ¶OÞ;zôÞÉ£‡>{éº ×­[¸vòÖ-£”Hš5Š&2%j”/iÛµ£GOžzôèÑ£G½wòÞÉ£G^¾|ùòáÃgÏ^·^ª­i³æ"Dˆ5š4J•²píðáÇ>|ôèÑ£Gï>=zôèåË—/_>|ÔT™¢„hš5kÖ¬YC‘$SÂÒµ³gŸ=|öðáÃG=zôèÑ£G^¾|ùòí !ù€ ,+@‡! "!"%( """%%%&"")%%)&&-"",))+)).))1++5--2..6..9..<&&311611311922=55>55:99>66A66E22C66H::B::E==F==A>>I;;K77Y>>Q<<\??i<<`AAEAAJBBNEENBBREEQFFVCCTFFZCC\JJVJJRJJYJJ]NNYLL]QQVRR[GGdAAnBBoDDkJJaNNbJJdNNmKKjCCpGGrEEqHHsJJuMMvMMqNNxRReUUbVVeQQaRRmUUjSSlZZeYYiYYm]]j]]nRRrVVuTTtQQzSS|UU}VV~ZZq]]v[[tZZyXX]]y__|ccniilaaraaveeuddrbbybb}eeyee~jjsiizjj~mm|ZZ]]ƒ^^ƒ^^„aa†ff‚``‚ff‰jj‚ii…mm‚nn…ii‹jjŒmmŽmm‹ooqq†vv…tt‚ss‰vvŠvvyy†zzŠzz~~Žqq‘ss’tt“ww•uu•yy–zz—‘{{“{{˜š||™‚‚ŒŠŠ‹‘‚‚”……•……’€€š‚‚‚‚……Ÿ††™‰‰–ˆˆ‘šŒŒœ’’š‘‘ž••””—‡‡ ˆˆ¡ŠŠ¢‰‰¢¤ŽŽ¥¦ŽŽ£§’’§––¡’’¡““©‘‘¨——«””ª™™£™™ª™™¬››®œœ¯žž¯žž°¥¥¬©©­££³¡¡²££´¥¥³¥¥´¦¦¶¨¨·ªª·­­´««¸©©¸­­º®®»¬¬¹¯¯¼±±·±±¼³³¾µµ¿¶¶¿±±»¹¹¾¿¿¿½½¾ªªÀ··ÀµµÀ¹¹Â½½Ã¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÇÇÈÆÆÊÈÈÊÉÉÊËËÌÌÌÌÏÏÛþIÚÄÈР@h¬H‰òäÈ‘#GŽ9räÈ‘#RÜpÚEŠQ£]Ì‚íêÕë˜5qäÈ­k× ”§M‹ t†Š”(OŽ9räÈ‘#GŽy…Š3híª6íX¯^Ǧm'n»W¤@qjĈ‘¡?V¤H‰òäÈ‘#GŽ9räÈ“(Q¤H±bH¶jÊŒcf­›¸uíÚíj5ʧG :CEJ”(GŽ9òDÆ‹I¨H‘"ÅÊ ]Ó°UkvŒ5pâĉ'®™±W£F‘µiQ 4f¨Dyò䈌 "LDO!*hZMÆÍÚ3fͨYë¶ µiئËõj×®Q þBC%J”#3(A„ J¬i´‰Y·nÖ¦YkÖŒš5€Ö¦=›&®›µcǘ1ëªÑ ?f¨HIÂ@ .l¸€aCˆL ˜‰'N8jÓ¬M›f Û6qäÄa³†m¶fÆHm2È Š2\º¤à‚[B\ˆÄLœ8qݬMkÆì³iÛ¶uGN\·nàĉ'γ`ˆ@øxàb˜6"DPa¤À!Ö¶YkƬ׮]½Ž1³¶Í¹uëÈ‘#×ÎݼyîÄ9Ê1ÁÆb~0]0Q @ (ÓÙ.R£@yÕ똵nÝÄ‘[·®»yøöíÃWÍI„ DQþá ‚ \˜P ÀU½H ©^϶ëÖMœ8ríÜÍÇo¾Rj@D(  E‰6|”ႊ ´vlÀcÇ‚{¶mݺmÛº‰·®»yóêU{‚ l¨¡B’‰ D(Q @XÔ¬Y³Fm¸uóæuë&Nœ¸uíÜÁk·®S DP°FAŠ0‰"вFG„ diçμuíÜÍÃ7\7qäÖ­kç®8bNv€PP`96, Su!Ñ2*(aB¸}ûöá«7¯^½yà¶Yë&Ž9râºÅérá@7"­€¤*Ò¬X0­¹Â þ@ $Õ«Wo^¼xóæÅk×ÍZ°`ÌžM³¶HŽ<ðqAC«PÁ¸@‡Ì˜ ¸:tèÐÅ‹ož»uØŒEŠÔ®T.@øÀRᆂ%²ÔS„‚>‡À(pð` % ¡C‡]¼xõê#GÎÚ1R6yÒcb¤I>HØÐDÈ*ZäèòfL .8x` :tñâÕ«W6râ¬óÔhQ—s(¡òaã%H"°ðéÓ†ž6dº€ÀâÁ"èС‹W¯^½}ØÌÍs×Ù±W†˜`À $[ªTͪ$ªN•*aBD CT˜‡]¼þzûöí«F®Ý9lÁvµB¤BĬY˜0ZCg•ª —ô(«„'U¥0PÐ"E4tèêáÛ·oß«^½‚) ¶«•šê„™¥‘øØø§N-J”Ö@À #Ä ¨¡@¦Ð¡‹¯^½z»^‘µiQ#V`0` Õ¬=0àPa*™-E“ððG (ð]¼xõòå ”'Oþ6‘â"Á0¡lQ` „UÃT)¢¤‡’„+W˜ÐB xñâÕÛ·o£F6mÚ ”°ˆ¥ D"rø±•*•ž<>2øÁbb8>FÔË·o_¿}û 2´hQ£M¼(Pà C (P!NœXªQZRƒ tŒ¹ó!Þ¾}ûöíÛ7hРAƒ 2ÄÅ \¨PÁJu*Iˆ R*H‰ò@¬iánß¾}ûöùCƒ 4gÌHÑQ @Èþ©ðàÁžaÉfaQ”iÒ•,²`ðƒKsûöíëׯŸ+T¨H¡B%  TP WöÜŠãG„,k²8¨ÐåA[r(#×Î;që¢D‰EŠ)Q–¨@„„X<€@Z"-  rcH~ÔÀ©VǶuë%J”(R¤H±r"À)(Pð‚Úü@ð²*Ï0^$,ùqɈ 1u¬›¸(Q¤H‘bM H¤H±ÂÀ *„æ’Ÿ0_ ÌÑBŠ’„ˆ˜È#OǬu“bÅ š?1â EŽ(p   –øY‘þá $`(A$Ä…A›8ÚÕËš?ƒ 1µkW–?öH( Â VÔ¡„é!9°!!à8ÈYd”àã7K$Ôh!¤¶f­@‘b5jÔ¨^»Žõêu [»{øîÙ2Ñž.ȨjbŒDнY"BŽRÊš{å‰T®W¯rµÚÕ«W/cÛÖ¹k·mš˜J¸ÁÐ$Ó'FÈ4YóeHBXõ:¦ìX.P Zí Æì³fÖ¬Y›FÚ1P­^þ€á¤5y&éÑÓeMŸ;Y–¨8ÔËX³fÓ¬½âä©W³nذu#GŽÚ.€ž Ô¨•š IšèáÓç 5îè!£â‚RÌš={6íY0R ‚Yëf®[7qÝv54H!O½˜-éb¦K:yº$z£çË*Æ4›öì3fÌŽíjµ [7kÓš æi CŒ<1›6Øš6dª4Ñs¨Ï’;‰ÔøPÓ‹³^»vcöŒÙ1fÝÖõjÕ‹Y¯F† d¨×³iÝ’åÁCÅL0k´Ð¡BM0pݦ;ÖkW°gÛºm³Ö­U/kÖŒíjÈŒ4†FíÂÖÚœ.m¶ˆÁþÂŒ:ÚðÍÃ7œ¸nÖŒ›&®›µmǦuÆ-#4f¬˜´éØ3lîÐíq2f —9qd«W/¾}øÜ¹kgí3jÔ¬uÃ&ŽÀv½6ýAcM F ^íjÖ­;tÐlÙÒ†.^¼zñâÍ«‡¾{íº‰×­¸yóà1k$ÈŒ4ƒmòÄ T¯iÛĹ«W¯^½zõêÕ‹/^¼zõöíÇïÞ¼yîàíÃ'®#4fÌü1dˆÑ¦GFõzÖ­¾zõêÕ«W¯^½zñâÍ‹W¯Þ¾}ûöáÃwo^·]¤ ¹AƒæO @bĉ³uîðáÇ>|õêÕ«W¯>^¼zõòíÛ·oß>|ÖHbÍ4hРqã&Ð"PÆÄÍÇ>|øðáÃW¯^½zõêÕ«—/ß¾}ûöõ !ù€ ,+@‡! "!%( #""#""$!!&$$&"")%%*%%-**.++.&&3**1**5--2--5..9..<11622911=55;55>99=66A55D99B::F==E<>M::K44J< pà7àÀc¼zÒ´¹C‡­˜¯T‡lÈ¡4éÑ$S‹ ±‘"§Œ´b¯Våšó HDŽ;þxõêÕ{&îÜ9lºj ´¡T§GädT(Çšrœ­õjГ HØPÅ8pàØÍ«W¯^*]¶zóU+yDušäC…‘':æÄ‘SÍ\'H=<°Ù€†)’cÇÞ¼zõlÕútJ—/]¶Ü,èEÖ«!d`1‡× j¤&Ù™ÐèHb‚8pìàÁƒW¯—­Y§B}:e«ÒXduÚ@ÀÇ–:¤d=zTÊ•” *t @à™®ÚkÇT˜Pã¦@˜Bí Q"Kš8}â䃂 <ÀBK0IJÙÑr‚Oæ¸Ù!¢ÂˆÂ„9³'ŒLš8qú¤É¦* €€@‚QêgÈ(£¥J ¼&Œž=a˜$ uêT(K‰ý!0CV%4£ÌÉ€ 8@Lˆ€ÀÀþ0`ÎìÙ†I¢O§B% ¦ @€²D="s¤ ‰+¤äˆð`”8 &J4qÒd ¢D–8Ì%ë%I£Œà ¤Ã à Ä 'L”(Q*”&K–4iâ¤iÇ "¬WÖÐa´hŠŒ<@À€ 0aüìÑfŒ[³N}âÄ)Ô©S„X´À“@"-rShÐ-TžÄ@ÐàqÒê&?zÂHkæK—®Zµtùj&Â$PS‡+Se(p C&Fƒ,ˆQ¬±Z³N¥Ò´§[7mþØšùª¥Kº<m,(Q V¬(Q¢ãAI;>Dh@À5Ò Ó•êÔ©SœÐuÃ&Í׬Z¾ ¹S&C‰ ²˜j%é•l$ÉÑ2#ÂT´’öLX®Sœ8…â$ Z3b½lùjFNÞ<%¶@‡¥AGºä)Õˆ™b`@€â™´f§>… *Ô'[µ|éÒåK:wóäÉb懕êrdQ3fˆ`˜ I¾ˆùšÅéÔ¬S©fªeK—­^ÒÈ©CW ”.Tȹ󈕕#„¼hr¤Š(8¼ØòåË×,NœNÕ²%̱bÒ Ak欙/N©Hþ òΓF“:¹!CæQ–#V\H9”ª±bÍ ¥²Ä©W3lÒ¤aÓ¦ Z-€˜ùñ“èT•&]ÜÀ4É ¡BtæX12eÇŸXºˆkÖ옮SŸlAÆ 6mØj%òãgO M¶„™irdÊœAdæh!CçÑŠ FÎ4kV̱bÄ|Õ:e 6hÍŠùÒ…IО@ˆ,ƒæLØ™.€ÐÐyS•(G(œ°‹1]µlõ"vŒ˜/_ÕÈÙ:e‹˜­D‡üìÑÈÖ±fØ‚Íù“†Œ"ØÈ9‘刮jØšéêEËV¯cÕ°U“†í”-hÒ|Ͳ¤ ˜0‡>Õª¦nÙ/sÞD‰þBƆ,ÉäÉ›çN›6lÎlõj– 4i¾ aÃ&Í¢3`œ€Ùc©W3iêÎ:ã…‡2RD‰ƒ7Þ¼zóÔ©#Í0gΠeƒ†­@t¶,í &Ìž@œRÕ*¦ ;wÊ^ÉRŽ;wðØ¹ƒ7oÞ¼yè°iÓ– [6wîÐK´' ˜0~Y⤉“­fÒº©ƒ99>66A44C99B99F==E99J>>J>>M::N>>P==T<<[>>`??i@@GAAMCCMHHMEERFFUAARFFYDDZIIVLLVIIRJJYJJ^MMYMM^QQ]SS\DDcAAnBBoFFkNNaLLeKKlCCpGGrDDqHHsJJuMMvOOxQQaRReUUfUUbVViVVmQQk[[fZZiZZm]]j^^mTTsQQzSS|UU}VV~WW{[[q^^r\\uXX^^y\\{bbocckhhlaarbbveevddrbbzeeyff~bb}kksjjmmzmm~iiyqq{ZZ]]ƒ^^ƒ__„cc‚aa†ffff„ee‰jj…mmnn…jjhh‹hhˆkkiiŒnn‰mmŽooqq‚qq†uuvv‡ssvv‰vvrrŠxx…yy‰zz~~Ž||Šqq‘ss’tt“ww•uu”zz’xx–zz—~~{{˜||™~~š‹‚‚’††“††••‚‚„„ž††žšŠŠ–‹‹•ŠŠ™ŠŠŽŽšŽŽ‘‘ž““œ‡‡ ‰‰¢ŠŠ¢£ŒŒ¤ŽŽ¥‘‘§’’¦–– ““¨‘‘¨––«••ª™™¢œœ¦™™ª˜˜¬››®¯žž®ŸŸ©žž°¡¡£££«¬¬¯¢¢³  ±££´¤¤²¥¥´¦¦µ¨¨·ªª¶¯¯±««¸©©¸­­º®®»¬¬¹¯¯¼³³¾±±½´´¿¶¶¾°°»¿¿¿½½½¹¹½¶¶À»»Ã¹¹Á¿¿Å¾¾Å½½ÂÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÇÂÂÈÅÅÈÇÇÉÈÈÊÉÉÊËËÌÌÌÌþQ‘òĈP ?b¤`¤<1AÁ€!h Q  D$`Ž–™3çÍ\¸jÔ®Q£F­[7sêÌe»Ö­[7fÃby"äg ƒ Bdà°¢ œ<Ð(Ìœ9sÞ®]{¶lÙ2jݺ™3GΜ7oáÌ™3îÚ²Z 0…(¸Ðà§D’B×¼Q[V Ø.]¿†-»–Í9uêÈ©#ÇÎ~ù"”(‘#O 4xð` èA1eÓ­R"YP0€Çª<> ™ ^¾|ùòåËÈŸ@J¡2 0`ž<¶"U$¬´‚ € Ž ]èåË—/_¾|þüùãç2 (0`€ ›ƒëV©[+8Ì1Rƒ ^朸A/_¾|ûòñ#FŒ1aÀD ÁÀ€ þ0`–0[«&Ñ@Îs¦XàñftùòåÛ·oŸ”(O¢DyeI€ x`A‚¸p±Iu©Ì @ QæœC ,#ÇÎ;sìš4iÒäÉ“'OáÀ  $@ZÆFÖ¦V•¨Œ  Áƒ\ ]± BªWŲyóÖ„I“&Ož<£àà F¤x À‹¦DØÐÚ´B">@ÈQÇ%"U,›9&Mš<‰"EÌ$(Œ°Ä…VÔ’I“¥Mxœ€°åJƒ 4N(Pñ‡P"RÀ¨y{"Œ>1Ê`á DXPPãP´Lj µj3þ@B *W4PÐ`‚Ž@”@¡Òõk˜>1"µkW (P` 8pÝBéŽ'¼D:aÀ€‚–zõêÕ+FŒøJäȪW¯V 0 à›zhÉÚDgŽB@((˜R¦  (€å•'BŸPù“ˆ‘#O H‘"µcÀ€P€Ø´©R*7›æÔP0ÀƒŽ%_ª€2C‚2„ĈAóÍP¤@‘2Ê“§$P0¥ÊŒV«ZåÚGÈ(à”ٲ  (F ?|¢8Bõê•)OŽ À6[Ö`ck¢R‘Lä @HP à€þ)`ÐüñÃ'Š#S¯L1"D(Ñ'@Èž\‡2m*¤ÁÄ7(8@P@ƒ‚¢HŒ”(O@õ(Q"FžHáP0 €#ðÌše«•¬3;~”™Ð@„(ððD )Qž`Âð!”(Ñ#GŽLýzÖݽ{ôèÑ£G½yðàÁ›G^¾|ùòå»gÏž·]¦ñ#†Ÿ?JêÕ2oîîÝ»wïÞ½{ôèÑ£G>Þ11633;11933=11=44:66>33B55B66F33E77H99B99E==F::I==J>>N>>Q;;S==^AAJAAMEEOHHKBBREERFFUAAVBBZEEZFF]JJUKKTJJZJJ]MMZNN^RR^PPZEEeAAnBBoGGmCCiJJaMMaLLeKKnKKlCCpGGsEEqIIrJJuMMvOOqOOxQQaRReUUbUUeRRnVViSSkYYg]]dYYjZZm^^j^^nWWtSSsQQzUU}VV~TT{ZZu^^q]]uYYpYY~^^y[[{ccmkkmaarbbueesaazffyff}aa}iiviizjj}nn~mmzrr|ZZ€\\‚^^ƒ__„aa†ffbbƒff‰ccˆjj‚nn‚nn†ii†ii‹jjŒnnmmŽooqq‚rr…ww…ttƒss‰vvŠvvzzŠzz}}Ž}}Šzz†qq‘ss’tt“ww•uu”xx–zz—~~’||’{{˜}}™š~~š‚‚Ž‚‚‡‚‚‘……’††•‚‚•š‚‚œ……ž……›ŠŠ–‹‹•ŠŠ™ŒŒ›’’œ†† ŠŠ£‰‰¡ŽŽ¥ŒŒ£‘‘§’’§””¤““¨——«””©——¬œœ¥™™«šš­œœ¯žž®œœªžž°¤¤«¨¨¬¢¢³  ±££´¥¥³¥¥µ¦¦µ§§¶««³©©·ªª·¯¯°ªª¸­­º®®»¬¬¹¯¯¼°°¼²²½µµ¿¶¶¿³³º¹¹¾¿¿¿¼¼½ºº»±±µ··ÀµµÀ¹¹Â¼¼Ã¾¾Å»»ÄÃÃÃÀÀÀÁÁÆÂÂÅÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÇÇÊÈÈÊÉÉÊËËÌþSòÔÈР@fªHbĈ#FŒ1bĈ#RÚ„âË‘£YÉ~ñò嫨4péÂ…Kk(OŒ  dfŠ(NŒ1bĈ#FŒqeJ3fñšm˜/_àinݺY©FrÔ¨‘¡@U¤DâĈ#FŒ1bĈ(P¤H)chÙ4iË„ K6͸tëÖñŠe (OŽ B3E (FŒ1â ”2SÊH‘"¥J ^ЮMK6,Y´màÀ…·-™°Y©R™å‰Q 3e¤@qâÄH‘.’hy3&ª2fbA»vm³dÉ MÛ¶íZ4f×  ã¥Ë¯TŽ þ23 #0,8 !‚Œ i^-sä)Ù¶mÓ¦Mc–,Ú4€Ó 1ƒnÛ´aÃ’%ó5ÊÓ ?e¦H1A€€„|9‹$X†’œ·iТAƒíš¶páÀi›vmÛµd¿`y2¨ ‰ÈÐóE|ió 8pÛ®Ac–lX2hÚ´Ü6pàÀnZ1Z,A†˜[0øà¢BÓ®AKVì/^¾„%›¦ \¸téÂ¥ —Ž]<{ìÂñPp@Á‡[èä™sà€Z’¤-¯T¦F2ÅkØ´mÞÂ¥K—n»x÷ôé»ÌÀ,ú¹þ 0a!ÍŠY¾bjT*_̶۶ \¸pëØÅ»wOß½0Ø©EÇF!3"P`AÅ…/¸ü6lÀaÃx K¶-Ü:mÚ¶—n»xñîûÂb†ž/­€DðÁaP(9ñaÍMÓ¦M›6 Ú¶pñâmÛ¸tëØ±[·Nˆ•=Àôð`'Å‚Á$C ?êôXǎݺuëØÅ»Ü6péÒ¥[Çn¸e"lˆø ÇƒV5ðÅ’%Æ$)¡$B6}úôÑ£G½xà¦MÛ.\8pà¶QšÁÂI°Üòp@€zê°¹²ãþB…âУG/Þ;zôâ½[·mÚ/_ɘA›v(<`…UÀ¡c#ž:Z0ÈÁ¡\¹råʽ{÷n»pׄ•*¯Y<†8@!ǃJ®,Œ¨‚IDôಠ„$œ•+W®Ü»wôè‘[NÚ0PŽ}úxñ2ë×°_¿ò43Ãx°b〠5`n±ÐÊ–5drà ¢f\¹rïèÑ£§ï—¯Y±L¥Šå ΫZ,H€ÀB !j"ܱÔ‡DYê¨qÓ"E“-èÊ•ƒ÷n=|¼b¥剑£X@HùÁ`Â1DÁdÅØpsV|iöŽÝ»wóðá5j(OŽþ<¥âáÊ‹"8 È«[ˆHd0p!7š2}aK³yôæÑÓ§O_#GŽ yò4Ê„!ÀáÀ˜r‘²“ÈÃ[eRËŠ [¬ÍÇO?}ú :dˆ‘#OŽ 88pÀÀZI„ëE Pƒˆ…!ŠÈ à’ë>}úôéÓ7(РAƒ :ÄÀƒ (ˆ !LK¤ìÜÈBÀ:|vÈpu) 1œâéÓwOŸ>} (Ð4 @€€ X±šÄŠ•&XâÓb.MˆÀôOŸ>}úøñ3cÆŒ3eÊ4 à€HþÈâªÖ¥[¸®È`&,ðq•EF†xúôéÓÇß”)SªL‘2åˆ X`€AL•.‘b¥GÆ€’c¥<@ ·Ž]`<ÜЄ‰NÀ¬ùâCÆ•5j,,¸±f–'C¡F2cˆ‘#O FuC@]l°³I’«0BQ#Mj~İaAE†Ì”13¨”P F2*T(%ÄГ…+V®r±J±B€5\Ĩ±t% f*SÆÌŸ@¦8J+–)OŽ¥ ƒ*U)úiÅÊ’¦%J€Ñ3GÏ0[jpà@þš2eÚ ÔfŠ£T±L92d¨Q($dÂB•+W‰&ÝÀ1‡O¨ÁÂàÀ‚¦T)ƒ¦Ì”)R@‰£FžF} @AЏ\ÙªÕJÒ.sVLȰ@ˆ!¥J•*U¦H‰’*(Ož@ê@°…«Ö¤D’ˆ0Ù¡aƒ6J(`°àÀ3m d¦L_¼`™e*U¬X³>8À@‚¦V¬4ñ¹åfÌ ,è@À‚• ¨AÌLƒ6L˜/^¼| ƒ†å@>æ°bÕ*+Ku­8°  ˆ‘,Ù2^ºbÍ (\8pþÚ  ãõkÚºM?Ðù é+W®jµÂuË„ ¾T`¡‡€>פ%ó+U¬X£Ö…wm˜.^Ŧ±³ö……%š\©â3DÕ$61,À°Ã‚†äºm¯T£@2um´d¿x ‹–ÎÞ=B?lqUË–rê(Ú€‡JÈÚ5f±R¥JeÊT*_¼†ýò5lÚºx÷ìcò! ¢J—ÂX@Ô„‰$ |ø‘‚„MË’ Ó*•.]ºxÍâåË—¯dÓÒ±[§mš›)ÀX²$‰Í’/$¬Ø@QâÃ+)dø6l˜®Q¦fñú5¬X2hצMc-Ú°Q³RþùBçN1ZÒ¤Y“ʼn-Al@ÐPIX²dЦé 5êW2mÓ¦in/€¡ Ô(Ö "n±“ÆNZµ.‰ócË’EÉ’%c Ú¯X¦~MÛ¶mÛ6pÛx94h!P¾†‘9ÂF‹ `€ô¨4¦Ä.o %ƒmX±dÉ„ñšåëÚ¶iÐ’ ûÊP C<%›6mØ*AP @D7ÔP!r+Y²_¼x KÆ,™°eÚÖùŠå+™/GŒ dÈ3hÛ’‘±Q @YR °ÁÂÇ-mÛ¦ýæË—/fÚ¶m»¶-•¯iÓ„ñ‚¨L3ŒFñÚÆNZ›4&©þs ÍîÅ»/¸mЄý‚¶ÍÛ4mæmÛ6Í£6Uª” äi´kìÈÑúb%Å (üœ£wÞ=}÷عKmX±iЦy›.Àu¾<2SÆÌG£fñJ¶m;zÎr­jfîÝ»yñæÑ£wïÞ={ë¶çM›·xñÖ%s¨L3ƒ…j”¯h×À±£G/=zôèÑ{÷îÝ;zôôé»wÏž½xìÜé³ÎW#3eÊü1d¨‘'GŽLùb¶m=zôèÑ£G½yóÞÍ›Gž>}úôÝ»gï¸]©µ1cæO @j*V²tìîÝ»wïÞ½{ôèÑ£Go>Þ}úøñ !ù€ ,+@‡ !"%(!!#""%%%'"")%%*&&-##-((.))+**1++5,,2..5..911611:22=66=44:99?66A77E44L99B::F<>M==S>>\??dAAJBBNEEMBBQBBVFFRFFVFFYDD[IIRIIUMMVJJYKK^MMZMM^QQ^RR\EEbAAnBBoFFkJJaMMaNNfJJeIIiMMnIInCCpEEqFFrIIsIItLLwNNuLLqOOxRRbRReVVbVVeRRiRRmVViUUnZZfZZdZZiYYn]]m]]jTTsQQzSS|UU}WWzZZrZZv^^q]]uZZyYY^^y__~bbnaakbbrbbueetbbyaa}ffyff~iiujjzjj}mm}mmzss}zz~ZZ\\‚^^ƒ__„aa†ee‚ee‰ccˆjj‚mm‚nn…ii†hh‹jjŒoo‰nnmmŽooqqqq…uu…tt‚rr‰vvŠuuxx†yyŠzz}}~~‹qq‘rr’tt“ww•uu”yy–zz—~~‘{{˜}}™›}}š€€Ž’‚‚•……’……•‚‚……žƒƒ™‰‰–ŠŠ”‰‰™‹‹ž›•‘‘””œ™™‡‡ ˆˆ¡ŠŠ£‰‰¢ŒŒ£¤ŽŽ¥¦‘‘§‘‘¤••£““¨••ª——¬šš¤™™ª™™­¯ŸŸ°°¦¦¯¢¢¦¢¢³  ±££´¥¥³¤¤´¦¦µ¨¨·ªª¶©©±««¸©©¸­­º®®»¬¬¹¯¯¼°°¼³³¾²²½´´¿¶¶¾³³º¿¿¿¹¹¼±±µ¶¶ÀµµÀ¹¹Â¼¼Ã½½Å»»ÄÃÃÃÀÀÁÁÁÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÇÇÈÇÇÊÈÈÊÉÉÊÊÊÌÌÌÌþK}Ú”H ?b 0QòãÇ?~üøñãÇLÒpÊUjÑ¢[Ç„íâÅ‹˜4nß¾•;·êS§Mˆ ò#¦ %H~üøñãÇ?~ü@¢¤ 1bü䂿Œ/^ÄžYãÆíÜ9V¥>uZ”‘ >P˜0Q‚äÇ?~üøñã%J–0"ÈØ4gÆ„ ;& ·rçÎåZ%ª§M‹Ó„‰%?~üø„É’&KÀ0aŠŸ\ΦICFìØ3lܸ}ㆠÙ/V¥J•µ ‘1`š(Aò㇊D¾|±²(Ø'(bV%›6MZ²cÈœIÆmš³dÓœýÊÅ*W®R‹þùÓd‰’*,@ðÀ„Œ5„b[´é7lÒ¤IC–Lš4€Òœ%sÆ ›4bÄŽãõi‘ >`š,I!"Â,`´È3eÒ%E‹ŽqãÆÛ¶gΤ9s&mšµo߸Y“6ÍÚ´cÂJmä§ÈS^d8À&à ;¶ÀAsì7nئIKvìØ±gÓ¬qãö6nܸqã†M1V8<˜`"Ä€-4(Ø BÈ&NЦ9CFìW®[¼ˆ“&Û·r徕+w.]»vé¸m¡0`ÃZvV q@ƒ 6 ¹„ Y®Rœ>uú”‹˜4kܸ}+WîºvòêÕ“gË…†;Øàyþ´ãÅ $(8!‰ÈY¼J‰úôéS©\ɰmÆ۷oåÒµ“'¯ž¼)%nD¡2¢‹¤+%L„¨QAÁ!ATFŒ@aÂx K†íÛ9kÖ°qãV]ºvíâÙ2q`…3¼La1çCU+~%²`À"~%ú”+\pÔ@ž7x@ÀÂÍ•!&¶À uæÁ4h¸|bUŠÕªF‰üB´hÓª\¬L € ƒ#Þé2ÂÂ!XtT© –$*Lyñ†Õ&DœDù#Q£Mœ>‰úôâÀ€…ìXÀ°%’ޤÈèQ䊥Pr^Œ`BŠC‚Ä€H N:}Õ‰§*|øGÈL©4\)d¦ wðÂd¦‚:$F ?bš,*µj•¨M‹€€Š0¾¢…é„T,͹Å!!h¬P0¢Ëþ0`Äøñ#¦É¢R«D-$',la“ꕬLz¸‘EëÒ8“Þè!„‚ /š@L“&L:}ê´¢E›>±ð@‡Y¯2Õ‘eŠ­B˜AC………$”`qãÄ<Ó %ãµj«UŸÎû6«\ǤµãEDI¦hqÊ’$/,lùPÁÃX®UŸ>‰ú4MÚ1c¿rsV.ž•*%ªT)^¹ˆñâElÚ¹vòâ›!‚P¨,ÜX©i„”h  LǻթU®[·r±ÊÅ‹¯cÖÊ¥;gMÚšq(=z#ÅÊŒ)!2\€cÃ,Xð:vŒØ­R¢XñâuŒØ±dÒ¤IKöì±O«>þÙ"g+Aèèðǃ:n°¨JرdΤ±Úô‰W2lÓ¦aãöMZ.€œ´h•#V¤œA£Æ†x„èØ2"…+ÇŽ!KÍÙ¯RŸxIÃÆ 6nØr- N¹Ž5ù‚æ vÈ:Ãâ+i¾svŒØ1dLjåZµK6iÎûÕi@‰8“æÌØ( P¡.¾é± Ù1^¹r ;–,±cØÎñZÅë¯Eˆùá#ˆW2gÖŒ½È@€€‚+;ªl`ã,kØžýÆ‹W®dÖ°a“†m/iÒˆåÚÄ 1ˆDå†nšœ lœþ1" ‹Ì䵋Û6lÎrñrÆ ›4kǤaÃ&íW"1` €ñ³I˜³ièÎÒ!"…5öŒƒ'ž¼zòÒ©;÷ŒØ±gϬa›ÆíÀs¼8ùFŒŸDŸXÝB†í\»u¶^Ͳ%n]»uëÖ­ƒ'Ož¼xç¶qã†m·víÒ![ä 1€qúÄé¯dÖ¸¥ƒ¯`Âð$(ѦM‹DñJfM55>55;99?..@66A44B99B::F==F==C>>I>>N99J==R@@GAAJBBNDDNDDIBBQFFQFFUBBUFFYAAXIIRIIVMMVIIYKK^NNZNN^QQZQQ^RRWDDeAAnBBoEEiNNbMMcIImMMkCCpFFrIIsJJuLLwNNvMMqOOxQQaUUbVVeQQfVViSSkYYdYYjZZl^^j^^nQQqUUrSSuQQzSS|UU}VV~UUzYYrYYu]]q^^uZZyXX__y__|bbnbbweereevaaqbbyaa~ffyee~jjvlluiizjj}nn~mmzrr~qqtZZ€]]ƒ^^‚__„aa†ffddƒff‰ccˆiiii…nn‚nn…ii‹kk‹jjŒoommŽnnˆooqq‚qq†uu‚vv†rr‰uuŠvvŒqqŒzz„yyŠyy||Š}}Žss’qq‘tt“vv•yy–zz—~~‘yy“{{˜||™~~šƒƒŒ’‚‚•……“††–€€›‚‚‚‚……Ÿ††Ÿ††™‰‰–ŽŽ•‰‰™™ŽŽžŠŠŸ’’””Ÿœœ‡‡ ŠŠ£‰‰¡ŒŒ¢¤ŽŽ¥¦‘‘§’’¦••¡““£““¨——«••ª——¬››¢™™ª™™¬››­¯ªŸŸ±°¤¤®¡¡¦¢¢³¡¡²££´¥¥µ¦¦¶¥¥²©©·««·ªª³««¸©©¸­­º®®»¬¬¹¯¯¼±±½´´¿¶¶¾³³º¿¿¿½½¾¹¹¼´´¶··À¹¹Â½½Â¾¾Å»»ÄÃÃÃÀÀÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÉÉÉÊÉÉÊËËÌÓÓÚÈÈÖþK}Ú”( >_š$9 @€ HÌtÚµjÑ&WÌ‚íòå˘5qãÆSÇê“§M‡êóEI’#F€ @€1rD ._ö¼²6͘/_Ʀq'NÝ:W¥>yj”èP =M’$9 @€ˆ‘#G’$iˆ™µiÆŠcf œ¸qëÖíb5Ê“§M‹ùù¢$É‘#@€b$‰%`À$I’¤IŸ]Ó²YkfŒY5pâÄ'Z1W¥J•ú´éО/\’1"e¶”ôIÙ'%_JM—Í4fЦYŽ›5hÙ Ûåj×®R‹þíù¢É >.˜paÌBŠ;ÔI8pÖ¦YƒÖÌZ6€Ö¦A›&œ5cƘ1óõ©‘=\” bá€êPr„¥Q›˜‰'N\¸jÓªM›f-7qãÄe³–[¶fÅJm ´‡ /,„ C ŠœTaÕlœ¸rܬMkÆŒ³jܸ‰7N8qâĉ'Î2XJ4àð`D7&<ØaÇ£^زMcfÌ×.]¾Š1³ÆMÜ8uêÆ©S·®yú´‹™5pàÄS§n;y÷òå»—,(W¨ŒpþtêF äPBÄ”]ÁV}úôéS©]ÐÀ…Nœ8qêÚÉ»w/_>"Xäˆãä,R0™`ð`D¦1 Œ)V¬ÀbÆ|ƒnœ:nÜÀ‰§n];yòì%ÁAE:Ä¢h€AgÐ è 4 WÖ¬Y³6mš8uíä'nœ8uëÚµ[·ŽJˆ,Äaƒƒ”E8PàC!C j×®Ý:uîÚÉ»GO8qãÔ©[Çn8Z*B8ÈðaD"+DdpdˆÆþHB±À„¼|ùîÝ£G=yá²Y'nܸqâ¸9¢a!‡N(aBÃM‘Fà0Æþ#N†Ñ£GOÞ»wòä½[®Z1_̦M³–mDPxDk›*9BQz4¦Â)•úe!BÉœ9sæÌ™{÷ŽÞºqÜŒ}òTªÔ.T4"  „ª[1´8qB'*:*@ÉR #7o¶™3gÎÜ»wôè[7›±R‹6y´#ÄxP¢¥Ê†8˜ˆ…#DŽ3€v…¢Íœ9sïÞÑ£G/›¶uã²ó´(‘Ž'+V8X ‰’¤Aq&Œy4¬ 2Tˆ!ògÐgæÌ™{G½|ØÊÉ[—Y1V‡ÒhÂbÁL˜ ±"Ê%UUžÔéð"‘7Œ CgÎÜ;þzùòå›&Žºl¾v¹ê-T 5žXyg™)d(QRU U‰1¨uúC V:sæèåË—/+_½Š1+¶Ë•+Mr(pò‡–G.ÈD¢¤JU-G³¢Hš*Ô›AµÐ™{÷ŽÞ½|ùvíU*X0_¾˜í°@A‡ÊÄy1ÈQ$M´j=:Ó Uªb•¡¤ 9sïèÑ£—¯˜/]«Fb嫆4ØaÈP:jÆŒv V¤X” ýÕkÖ#MéÌ™3÷Ž=z»\•ú´éÐ"VÃxQ¤Pž\)¡cÄŽ9³h%“DèÏ5d0©’õîÝ»wôèÑû4ê“§N‹þ6•ʤ ‚ "a2tjÖ®ðã7ìÔ BbʼqgÖ6zôèÑË—/_¢E6mÚä©Ô l¨(1G“¤L”ÆŒ¸3Û-M”T¡!d˘A· ÑË—/_¾|ùüø tèТM‹(8pà@„5”"%»“£A&˜ì8²©L YœPFÇ\¾|ùòåËç§?~´àÀ*ÜÑtêT ¨¨Hé‘¡—ÞˆÑòGSvÌåË—/_¾|}öìÙÓgž- àE(CqNqp”a žG½9… •!-",ä“._¾|ùòíûòåË—/_¸0Yp@€PÖÄþ‰i… ™bE‚çÌ U¡$Ir"¢DtùòåË·oŸ%I”(I¢É AåÌ©5·4hˆ¤*Y¦55þP„é%5% ·®úä"@(xFÔa#¤Q‚‰S¨L‘"nT,¨@'¦(¾|ùâÇL’Mž>}úä©S§(,À(T#S* N°±3FM¬Bo0j“aB„:•ªøàÂ勞=f”,*åŠÕ¨M½ ð $M±Ò¢#DUV ¥:eˆP 2`€"fDþ.\ÌìÙcFÉ¢R¬F- (Q§j¨:+V,Mt ŠuéÍ)CntäP¡†”4áÒ…‹%I<}ò´èСE›>ePÂT,9.ÅQU‡ÃœXEn²2"Ç F„0‘¤ —&J”$ARª”§M›•ú”ÍÚ4fÁ|›¦ÎÞ½8R©ðD–Ki$¬ sA@ƒB,@bšµf¬>•ZUªT)_»Œùòe,Û:y÷ì)sâF,S„T±À‚  Ð) €€HʘÓõi•.]ºt¹ÚåËW/cÙÔµ[ÇÍZ™8g¢)rF$¸ðÀE€žøRÆÌ˜®Q£Xí*ÆÌ³fÖ¬YƒfÍš±O®Fþe™R„ˆ00Ñ €‰ `Ñá¨X3hÓ¬¹Úô)Ø4pÖ²'®Ú.€ùñ³ˆÕAPH! @@†*Jð¨ÁCD‰6ƘAƒ6mZ°U£|Y¸pàv-òãÇO O¾ša2!ƒ;°¨±r£Œ1b0kÖÌ3hÌŒírÌ8kÓš)óåÉOŸ@‹:1›VÍØ  bƒÌŠb¦øÈÒ‹2_»|c™1cÜÖùbå‹™¯EüìÙÈ´ià” @€@œB”2ˆñE°pà¦+¶ËW1hÜÀq³ŽU/kÖŠíÚ´‡ —/FíâÆn%Ô¬Ðþ1&DˆÛìÉ»gOœ8pÕ‚«œ5nƦãfÍW"3M”pÙӨشlíØ™ÊÑ@„”'#ò˜£wÞ½|÷Úµ[gͳjÓ¬…Ë&nÀu¾:íùÂ勞CŸXí‚n=zôèåË—/_¾{ÖJ}Z´çK—/_¾|1cfÏ¡OÁÆÉ»wïÞ½{÷îÝ»G=zôèÑ£G^¾|ùöí !ù€ ,+@‡!!%!!!"!!&$$&""(%%)&&-)).,,/''1))1++5--2--6..9--<11622:22=55>44988=66A44C99B::E==F<>M99K66J>>S<<^==a@@GBBMEENAAJJJOAAQEEQFFV@@TDD_IIRIIVMMVJJ]NN]KKYRR\YY_CCcAAnBBoEElNNaMMfJJcLLlCCpFFrHHsJJuNNrLLvNNxRRaRRfUUbVVfVVnTTjYYeYYn^^i^^nZZjUUrUUuQQzSS|UU}VV~UU{ZZrZZv]]r]]uZZxXX^^z^^}aanddmbbqbbweereevbbzaa~ffzee~jjvllsjjzii}mm}mmzss|ZZ€]]‚^^ƒ^^„aa†ffbb‚ee‰ii‚jj…mm‚nn†ii‹jjˆjjŒnnŠnnŽooqq‚rr†uu†uuƒrr‰uuŠvvppzz„yy‰zzŽ}}Ž||‰ss’pp‘tt“ww•uu”zz‘yy–zz—}}‘~~•{{˜}}™ƒƒ…’‚‚–„„“††•š‚‚œ††š……Ÿ‰‰–‹‹•ŠŠ™ŠŠžŽŽšœ‘‘””››Ÿ‡‡ ‰‰¢¢¤¥¦‹‹¤§’’¦••£““©‘‘¨••ªšš¥˜˜«™™¬››®››­¯žž­ŸŸ°°££¬©©¯¢¢³  ±££´¥¥µ¦¦µ§§¶¤¤²¨¨·ªª·««¸©©¸­­º®®»¬¬¹¯¯¼°°¼²²¾´´¿¶¶¾²²º¿¿¿½½¾¹¹¼°°µ··ÀµµÀ¹¹Á¼¼Â¾¾ÅººÅÃÃÃÀÀÁÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÇÇÈÇÇÊÉÉÊÉÉÊËËÌþG}ÂT >]š$A$H A‚ $H IÊhÊ5ª¦\ȆåÚõ‹Ø´oèÂ…C·ê§D…âÓ…I$A‚ $H A‚9‚„É–.]øäšد]Ä¢eûöMÝ:W£>iJT¨ qå Ù4nܾ…C§NÝ:xõðÕ«gkƒ :XºþòˆÑ†=,9™ÂFW¿V}úôéÓ¨]̲}ãÆí[¸pêØÁ«W_¼p°œX \D¸ª‘0R<ùEl@bÄv c–-œºlÙ¸}û†N;xðèÙz±„:<급B 0,Õy3!‘TÓ¦M›m7tìàqãöíÛ7têØ±S§Nކf¸±ÐN88jˆhÀ¦‘ "ÜRÇŽ];uìØÁ«ïÛ·oèÔ©S·NÝ·b/x‘JЉ+RÔäx2ÄC'Œ*©`S‡L8|øðÕ«/^|øøô¨P"L‰,x ACŒT¨œ4°³¤+llÙŠe*UUqRÅ©d\=|õðáÃׇOŸ>}ú³à@ƒ.AŠ$'A%<Ø0(X¬I¤Pñ`ôfBÜáÇ>||ôèá£GO-xM6"BlˆÐÜ7Å@)›N¬8h ² >|úôéëÒ¥K—.[¶,!P€€†:t°þ¹bâšut„©R©NB)"Ô†uøðáÇ“&L’0a„ ”ࡃ‘-/lY2UIŒ”J QŠUé‘‚p( §Ž»oè A‚I’$I8p ‰E”è1 ’¥T³^YJ‰’›5‚܈ðsåÓ(WIJqㆠ$H$aBà@ Ø¡¦€IVÔð0u+Uª+=â€䇄ª(}úú4,Û7$H’$IÒ¤‹  àGƒ/n´EʼnJ¶fY¢! *7o¥z NÄ¢qKÒdK—2zúrð`¸aGÊ£JB Šeþ Ò1ÑâæÑ@‰>­ÂµkX—<}%ú”+×V( °!Gu†@ ‚’­T”ù°°&K‘A}rµ*—«B…ôô)TÓ(\»LÀÂÁŒAhLp€”EJ,¨bÙZŠÄpd„Ò &@šFõéR¨"Lš>}ú¤€58,U‘ò`DAz•ŠVG: $èчC€ºpé¨LMœ>}úÄ ¦'D¼è1 ÖrÜ@’‚ªÑ+5lÄÌB $!,œÙ²¥K=e˜`µjÕ(L‰™ à‚’­Y¶šêqçJ•FQ¬PŠ ÃD„OÖTÃÁÂþ—-[òèÑS†I¢Q«D%¨&. ½’“Ê’THœ(Ð’‹' "<©Ã&޶4ÙÂeK&I8}â„©P¡D˜>qØP …(¶L©9‚Ä –Qè £PrÀ ‘¤I“&M˜$A2j'L˜8qúÄI6¯8¨”ÊÅ5rô`ƒ@3Rfܰ@B‘.]úèÑÓeK“]¸F}ú$jÔªU*ä¨sàF ,ÈJ4â„!ƒ„†@qâ4J¦>yºL‹Fìׯ\¹~‹vÃÒ¨Ô!°`Œ ”@`˜jŒ 'tð¸M²\®V¹ÒÄ'\¸pþÙ˜ËElšºIÑ,ŠÀ)^\è1HDulHAÁD‡Iצ1ûµjÔªUŸÖ© 7˜«\ȦÁ;GEÌ…/@áH°¡€5(\T GD»ÍØ®U¢>‰útíš2d¿t‹Ž^=9U\xG î<©@£8‘ÃÚµh®>Z%J”¨]¹ˆýÚElš:xõè#2fH#D¢ vÞHQD‡JÈ”ÃÅiU.\®p¹ÊµK—.bÙбS—mZ ,?~ØB€þ- "ÄDTÀŠˆH9ñk˜2fѦ¹ÒÄéW4n×®qûömZ.€šõé“hÕŸ24èð€†Œ &.€¸ ã 6È”1‹Ù¯Q¢vMãÆÛ·oÜr%êÓ§ N»”ùa @PœðpÑã "j‹¦Œ2eȈåZµë·iÑ”!û¥©Ÿ>…4!›6V  lˆ¡æ@E@p! ²_¹v CÆLÙ0bÜÐíZµ Ù®D…úèÑh³iÜŠ](P€Ò5 L<ÑAˆ®lÜ¢ ¶k×.fÙ¸qËÆMÕ®iÓ†åJ¤gË–.…FåʶΙ‰Rp¨©þ²aCƒ'ÙêÁ«ï7nÐv ‹ÆÛ´lȦqËvmW¡2[šl჉X´kìÖá!c†ˆ "欋WÏ>|õرC²iЦy»æ-@u»0éé²¥‹žB¢\åRÆMåB–M]½zñâÅ‹W/^¼xñâÅ‹Ï>|øðá«Gž·\£•éÒ%=zú*Äi2nðêá«W¯^½zøâÅ‹/>^¼xñâáǾzÓF}J¤§ —.]ºtéRFO!Q¿ÂÁ«W¯^½zõêÕÃ/^¼xñâÅ‹/>|øðá !ù€ ,+@‡!$!!!&!!#"")%%*&&-##/)).**1**6..5--2..9((900711:22=55:55=::?//D22A66A55D55L::B::E==F==C>>I>>N::I>>Q==dAAEAAMEENAAJIIMBBRBBUEEUEEQFFZJJUMMVIIQJJZKK]MMZNN]UU^QQ[QQVAAeAAnBBoEEkNNaMMeJJnLLkCCpGGrEEqIIrJJuLLvMMsNNxRRaSSeUUbUUfRRnVViSSjZZcZZf\\gZZjYYm^^m]]iTTtSS{PPzUU}VV~TT{YYv]]r[[tYYyXX^^z__|ccfbbn``kaarbbuffuffqbbzbb}ffzffiiuiizii}nnznn~rr}zz~ZZ]]ƒ^^‚^^„aa†ffff†ff‰jj‚kk„nn‚mm…nn†ii‹jjŒnnˆnnmmŽooqq‚qq†uu†uu‚rr‰uuŠvvssŽ}}†yy‰zzŽ~~Ž}}Šss’qq‘uu“ww•uu”{{‘xx–zz—~~‘~~”{{˜||™š~~š‚‚Ž€€‚’‚‚•……’……–š‚‚……Ÿ††ž††™‰‰—ŽŽ—ŠŠ™šŽŽ‰‰‘‘““›˜˜š‡‡ ‰‰¢ŠŠ¢ŽŽ¥ŒŒ¢’’ §’’§––¢––¥’’¨––«””©——¬››¥˜˜ª››®™™¬œœ¯žž¯ŸŸ«žž°¤¤ª¢¢²££´¤¤³¥¥´§§µ¨¨·ªª·®®³««¸©©¸­­º®®»¬¬¹¯¯¼±±µ±±½²²¾´´¿µµ¾±±º¿¿¿½½¾»»¼¶¶À¸¸ÁººÂ¾¾Å½½ÂÃÃÃÁÁÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÆÆÉÉÉÊÉÉÊËËÌÌÌÍþAÊtP>^– 1âÇ>|øðáÇ"HÈlêEJ‘¢]Ë‚ýúU YµpãÆ¥[× T§L†âã% #D|øðáÇ>|ø b$ /\ôôª&ÍØ¯_Ʀq nݺ]¤:uRtÈ =\ 1Bć>|øðáÃ#F YHY5iÆŠ[V[¸tëÖõrEªS§EŠõñ’‰#>|øðáÃÇ$d¼ A‚d Ÿ^Ò®Uk†lÙ4ná ǭY±W¤H‘•É/\!âÃÇ#G¸è™ôJ”ž$^\A»v­´eͤ]ãÆíš4hפÛµëW/RŠþéñ’äˆ>´”2æ‹(X†Ù”i7nÕªUƒmZ5€Õ¤A“Ž[5cÆ–-û* <\’9ò¡+pHH B‚§[™–… .·jÒ¦I“6íÚ¶pãÂm«vmÛµeÅHeÄGË )ÚØñ‡N,W I‚¤l\¸pÛ®Uƒ¶ÌØ2i×®q 7.·páÂ… ÷­²[1*X`ÇO¡H`.½ PÃΕ0Õ¶Qk†,X¯^¿Š-«¶-ܸtãÆ¥K·Ž]¼xìÂQ €‡A… E*$§nÊð(´­Y/R¤@uõkY5nÜÂK—n]»xöðá³—kÔܱþåG­UèT¢„VÁ\5 ©_Ò¸…ãÆ-\¸qëØÅ³gŸ½,X¨€ã”,K…XRÁ$Ö!Z„¸fìÀbÆ~ƒÆ-ܺmÛÊ… —®»xìê骉:v¨°ô&ÎKN€YÒ¢EËZÕªU«6m·qìâqã.\¸tëØ±[·ŽÅ,wÔ¨q”Å$H©‚Ða„ë"O`´øaݺuëØÅ³'ï·péÒ¥[Çn7` >8©Ã$Vp$y²G«[¶<Á¡3F8|øðÙ‹Ož¼xߪUûnܸq㸱@à†§H.àÐadCÒ˜ 0àЖLþ£2\NÉ“'/ž;wñâ¹[ÇmZ°_Ë I«ví‚€OJ|f„£ s QÆ0b~®BtÅœ9sæÌ¹sç.ÞºqׂêDŠT/V` !€@l¬È`) 5r"Ý‚¤ D²™3gΜ;wòä…7Žš1PŠ2Z @€¸qTÁÎ%UªÜ<‰2¬N,KoÚÄÊœ9sîÜÉ“'ïÚµuã®ë¤ÈМ* ÁQ$9RÙÁuƒÉ•GVæH#è ¤IæÌ™s'Ož<|ÕÊÅkw­™±W‡Ò€!@À'¬ …™’ªÍœ,ÜT°c+Ö˜B<BgΜ;þyøðá£nݺkÁz¹…©ÂXºä‡„,Œ$1bdç"b­ ù±ô,8sîäÑÇß«_¿‚-3ÖËÕ« <@àf«H)dÌY©«'`´°²å)Ž%Ul¢™s'Ož=|øzõ"Eê—±`¿h5 @ Á:hàÐy!ÀÉ%YÃX1y°Pªh‘A’”9sîäÉ“‡¯Ø¯W®F‘rõ‹ ‚DØau' Œ Q²ÐyT'™“@<å²ä‰–¥gÌ™sçNž<|½\‘•é"W("\ˆ £V-9RP ‚«˜æ< c —$O…,}ØáΜ;wòäÉ T§N‹þ2‘ºà@‚Œ†…xrÑ“;§.Ýip© Gž&ARe‰ wòÜÉÇŸ!EŠ2eÊŠTèXU©Á“ƒ(Õ•ªÒƒ!„PÅJ$Z42ÈÇ>|øúôÈ¢LŠ ˆ€@Gª98Ш$ËÓ#F•ðÌH@`DœBƒÞº!>|øðáÃ×§OŸ>}ú£€€‚ m*5Éb!ĪU‘d…X…“*èsÃM¡!âáÇ>||ôèÑ£GO2(xÉ“ V"Ô)d‰Õª<ÈPÈRœW …>|øôíóâÅ‹/[¸( à†Z§êdþ¸!@…§BžâØ¢A¡[©y¼\“f,د^½‚“ÆFž8X €Š0PÊ0RÈ͘'‘npÓ¬Ù²_»\½Ê¤gܸqþÛ ëõ«Ú:Jép)E¬T‰ÑŒ3 ±²åiÄJתA 抔+W Ö+w­Ø®^˪ÅËv¥€Jl ÀA–¬U‘Ô ˜‰:œH»&ÍX/W @u­š´eÅ~›–®ž½0%H@Ñ@À5¸RTÉÉ 4Hø@…Úµf®@‘rEŠÔ¨_½Œû…ìÚºxöêÂcˆlôFH™8e¤4x `UÊš)ÛÕ©U¯]¯v½êõëׯeÛÒ±[·­Ú˜pP  €'xü³æ°3¶ÌØ+P ^ýúµÌØ2hÕªU“V­Z1P¯HþýàC‚- t ¡Œ0C˜tÀ©Ø²fÒª½Êª˜4nÕªq 7®Z/€›õé£ÈU%Tˆ æEäfH 5Å–5ƒ&MZ0R ‚UãVŽ·pÜz)êÓ§OŸN½–iÙ àÀ+8Z0!@€ƒh(“ͲeËŒõzÕk[¹jÒš Ö©@‡2-›6 ˜ ¨¸Á2€x@«Ù²`½z[&­™1cÜÖýrõkÙ/E€úèÉè4iÜt5  f… €|öر[7͘1iÒª}Û.Àu¿:éñÂÅ‹žC \õjÆm]¼v¹(¡ÒeÎ;yòÜÉ“gÏž½z鸥 Çí[8vñÖ5Sć /}eµ Ô/iÛÆ±“'/ž|øðÙ³W¯Þ·^¤úñâ%=zúô9Ô©Õ²pììÙ³gÏž={òäÉ“'O>ž{ÕHuR¤Ç /^¼xñBFÏ¡QÁÆÅ³gÏž={öìÙÃ'Ož|øðá !ù€ ,+@‡!"( #""&$$&%%*&&-""*)).(()''2))1..5--3..:00522922=55>44999>//C66B66E22@99A::F==F==C>>J>>M::H55K<ÌyUÊU2ñ9#'Ï"R™HEƶ|ùòÝ“'=yãªeó6®\¹rã¸QpM¢LSV$âó'O%²¨ŠÔàþP =Ñ£GOèСƒG½{àÄÉc—Ù¯U‚l A€F<^@²+ч‚éšµHŽ˜?¥A‡<þzùòå›&Î]¹l¿t­ºD#Øœ‰ÓD<’F­ˆå+Ö¬H|ò4ŠÅæF4tèèåË—/_*]º~)#¦kÕ*.48Ĉ$-Œ FÍ!U°f™bÓ§Q#6h¡ƒ^¾|ùnÝò”ê1]·&ˆpÀ†$46XXø!2 ±!°£<72ñQ:tðèÑ£—ï—.[©@@ࢠ& @”)>må1u!Á zôèÑË—/Ÿ A†*ªtiÓ‚ žâQ#ÂI´Zͱàˆ ª^ñÉ”)Ò" rÐË—/¿|üðàÁРJƒ€p%NàÀ‚iÖ Ì õjÑ«8}þ`p€^¾|ùøåã‡Ïl*`s_¾|ùøñóâÅ‹/\¶ ¹@À†)XVxþ˜B )ZÁ$ÝP¬£WW Œéó€y÷òåã—_’$GŽ9rDÈ6âP¸Â"AE¯"ùò F¥ÀÀŠäaLž3 ä`+Ç®¼qëŠ)R¤È‘#F¸ @ A‰Ê8¡‰ŸW±˜ä)õëW!|ÚD)¨TʸyóV¤H‘"EŠI¢‚¬8™eêœL‘"%§Ô3ïÚÈÓ'“…WxðÚDŒÛ8"EŠI¢Ä‹Lh"Í!>CÂ4õ*¬2Hå‰Ò& >Žðug KĦy;’D‰:vðÚ  @nð9”EM¢W¥"Áˆþ…T yþüYt膯=•*yº¥‹˜:wö ºtë*€rHM$0LV$*µ¨‡‚(c.:”§Mž>‡„mZjUªA‚ìàÙ3¨([«jTÀ‰›IŒþ¨Y1§Ê«R8˜ht¥Ñ0YÆŒQ¥kU¥=–6áñ²!C–6yÚT‡8Ì:ÃæLS™šñ"F<ksG&T€¼x¡cÇËK—.mÚté’%)" Áš'’©8$ýaé 6mÀÌHÐ$S HڲŠ;^Ž •*•§Jƒ µIÓ Ö#+5Z‰ ‚T-‹‚€éÁ( \(£ð’þ-[èØ±ã%É P©< Ú³G%+pÞÐr#@€¥e‚"dˆRsš$ÃŒ”(ÙâeK’$G.m²dОA•6ÙØPa”  TÈtˆT6ŒÀàXÁG„Še™ 0ÙrD‰%J’) Ô¥J•,]Ú´ ‹<6@hrEšCq´ð•VX²$°! Ì /^ðرãe‹]¶@mÚä TªT¥x°@@À'j@bóçP 6Nñ9ô¤Á ¤Vmº T%¦^™™ÐÁUÊ–³µ)Õ-[¶n­º¥K—.eÙÖµcÇ­Ú(0B‹0jÆô`DêUøè"¦Œ˜­MžVéúEŒ˜²fÙªUk6­±M«Pþ1 @À’zôHÁF–'M8´hÒi˜²eÓª­ª´I×4nÙ²y+7®Ú-€•áÁ3(•ˆ`³bÂ!XÌðÉbÂEœ%¿”-k6­Ù/P›~Uó&ηqÞn ƒÏžKº”Á àC“-p ðâ Œ ad›ÖŒ˜²eʈÝJu+Û¸jÓ–)ûe Ï=ƒ*)«V ÖDDP⃊"j`€ÐJ±_·n S6­1bÜØéJõK™®A€ðر³GW³iÞ\!àð!LK.¨ð  «qÞ¦é"¦K—®fܼq«æ-•®jÙˆÝ2DgË:{<ݪÆNZW¼þA!“ÐîÉ»'ÏÛ8oÕtýšÎ[5nĪyó–M— /J’p±SiØ´líÎAÀAC&©£wÞ½|÷Úµ[G˜2jÔ²…Ëæ­@vº*Ýñ²Å‹A›VÝjæ];xÇD‰ª…66A77G99B::E>>C==G>>I>>M99J>>P55TAAJBBMEEMEEQFFUAASEE^EEYIIUMMVIIRJJZKK^MMZNN^QQ^SS\AAnBBoEEkNNbNNfJJcMMiNNmJJmEEcCCpEEqGGrIIrJJuLLvNNrOOxRRbRReVVbVVeQQnVViUUmSSjXXbZZf]]gYYiZZm]]m]]jRRqUUrVVuRRwQQzSS|UU}VV~ZZrYYv]]q]]vXX^^y__}YYx``eaamddkllnbbrbbuffueerbbzbb}ffzee~jjvmmviiymm{nn}ii~rr}ZZ]]ƒ^^ƒ__„aa†ffccƒee‰ii‚kk…mm‚nn†ii‹jjŠjjŒmmŽnnmm‰ooqq‚rr†uu‚uu†rr‰uu‰vvssyy†yyŠzzŽ}}Ž~~Šqq‘ss’tt“vv•uu”zzyy–zz—~~‘}}–{{˜||™~~šŒ††‰’‚‚•„„’††–›‚‚œ……ž‡‡™‰‰–ŒŒ•‰‰™™ŽŽ‹‹œ•‘‘““›™™Ÿ‡‡ ‡‡¥ˆˆ¡ŠŠ¢ŽŽ¥¥ŒŒ£§’’¥””¡““¨‘‘©——«””©››£™™ª˜˜¬››®¯žž®œœªŸŸ±°¤¤¦¢¢®¡¡²££´¤¤³¥¥´§§µ¨¨·ªª¶¬¬³««¸©©¸­­º¯¯»¬¬¹¯¯¼°°¼²²¾´´¿¶¶¾°°»¿¿¿½½½¹¹½¶¶À¹¹Â»»Ä½½Â¾¾ÅÃÃÃÀÀÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÆÆÈÇÇÊÉÉÊÉÉÊËËÌþQ}â¤h ?_’’#GŽ9räÈ‘#GŽDÊp †J#_Ï#FL™6sçÎkKÔ'Nˆ òã刑!BräÈ‘#GŽ9rä2äH—._úÓvM1bÊ®…3g®;Y¨D}b„Ñ >IŒ2$GŽ9räÈ‘#‡!CŒI2È™¶lÏ!{¦-œ¹vî܃eêÓ'NŒúrÄÈ!9räÈ!dH‘.\tè0b$‰Ÿ`׸iƒ¦ìÙµpæÌ32_¨P¡Å ‘Ÿ/]Œ ’#GŽ"GÊ $hK!_^]ûÆMµgЮi Ž›¶kÜ®!óå‹X0QŒþõùr¤È9tÙ²åP˜‚BaÃéY¸pÚ®iƒFM7€Ú®Q»F.œ6eÊžA#&ÊÑ >]ŽÑ!æG ;éYBǦc…ž™3gÎ9m×´]»¦íÛ7sçÌ}ÓÆí·gÈ^qÔ' ,+>$XàfF™ÈÜ™sÌœ9sá¸i£öLÙ3lß¾…3wÎ\¸páÌ™3GNÛ³W xP1¦Fˆ‡hÜi"gG–%Ú¸]{öŒX0_Ä=Óö-ܹvçÎ;×.^½zñÌÅX@â ¤LaR,ÁSA¡qtîY0T¨D}ì™¶péÌk×λxúúõÓ×K†4"eÒþs!ÃH† ý@’ÃŽYÅ^‰%J*bÔ¾… Μ¹sîâÕÓ§¯Ÿ>) ªpPÑ ©6>Tªtæ->vÄA†,@eʈ!ƒöí\»oßÒ™3×î]¼zõê1{ E«nÙºbŒ«Y¤\ÙÒÒ#ˆ“UÚ´iÓ† [¸vñê… gΜ¹vîâÅsç.E ¼`ÒjÒ•’®¬"„âŠ!- 4‰/Þ»vîâÕÓ‡Ï\8síÚµs÷ι]  ©\”ÞT¸3iUllqÒb»~ÿúáǾzä¸i gîܹsæÂIà6rÙ2´ Å›6nj @ÐFþŽ“;váǯ޼yõêÍsN[1bÏ®]Óö€sàð0Ë­[Mš(Éôä‚‚6rÄô˜AG:uêÔÍ›7¯ž»vÜ¡… U°L H€c#Ã[‡ íÚ…+:1¼´ ™5¼©S§NÝ<|øðsw.›2QŒ8}ª±@‚€7MR,Qc8´ÜT:¶'E,‡ä,’J:uóæáÇ[8vç´ûÄÑ <ªBB·Ü¨yT…̱M06¨™tèÎêÔ©›‡>}ÙÒÕ{š2YƒxXÂʉvhº$É H&Í£fÒ$RnF¤P§nÞ<þ|ýðõËÆnž»pÅ‚Áj¤€)$H!`N&&(¦›uW&<¤B2´¡J5uóðéëׯŸ,bÄ=CFÌ×$ \²!€nÌ„˜3‰Ž­M¶6QÉTÉŒ#t©›7Ÿ¾~ý‚3…ª˜2bÄð<À@%‡ 0˜4‰Ã +n ­²ÐUH“ž|²`¡ÅI#X'œ tÇC!@@Ò€ƒmlm²Õd‰­:hÀ4oÞ¼yøðáû$JÔ'OŽþ8¡:Q€É¦ S,€thʃ T0ØCŠ+[¬lIÒ €Â%yøðáëׯŸ"FŽ8qâ$ Õ‰on½h°  JL˜Œ©â#R­]“&ÙrEH "áëׯ_¿~ý„#Kœ ²éuRÝÚ…G Š©h;Äê.:V2@˜‚G]¿~ýúõëÈ @€ „@L¨™â!’­CuPxæC«jÊD‡B‚%”Þõëׯ_¿~úôéÓ§Ÿ2(i#%<1¤Ð“AZ—2zƒâ̤'D™ô®_¿~ýþýûòåË—/]º  ¢Š *'R]þy³©ÕndÚ´‡¤ QÎБ@`©wúúõû×ïß‘#FŽ1r¤È4*¤IÀäR«]»jÕ¹qëØ®T«\‰€"FŽ O e;ç.^=sí† 2dˆ#E LpáƒÔÔÚµ‹–­bǬ¹"eKEœ3B)™# *Xʾ… 7dÈ!CŒ)"€l¸‰ñâÖ.[”\±"ôˆ³PwäLjDi„¡]€)¥ì›¹!C†1’äK ,ˆÑæ$»n\åJ!X8ód†U¥J•\d²Ög"QÅ´…3r¤Ë—2})ÀBƒ” AÂàj•+[fâÌ0þB24Z¶:tÈ–4@œ<¡ FLÙ>€1E, PjeÆJ<¤lí¢ç¡Âl9ÄŠ:´Š‰ K–,FŠøøAĈÓ+_²jT°rå¥Ucd°bEj%(»®d3çÌ$Jt&Uº%K'DžPõù2#NžD‰UãÄIU éY±ÉP&RâÐqåê 3…œ˜9á¦Ò1NˆÊx)ã§ŒOŸ>‰2õ‰“':jx¥ÚÄê‘R‡*É$†Õ CüÚ"J…&¬hñéÒå ?eŽ0B –)NŒ!³ŠÖ * `FW™0)hñàƒKfÌdPÁêPþ™.]ÊôéSæ#S°P14'/\eh€BÀ#BY\ÙÊÔD+¼p²ÄÀ‡9‘’$éҥˑ#F>‰úä"FžD‰x€åA%¤LråêÎØ@ÁC ' V¸¡d$I—$IŽ)‚ Õ'Nœ>}%êI$(€b“«VQ'Œˆ  Ô°"§/eñáó¥KbÁP‰e ,X¡* A˜V’Àž¬ 4@!,Òr‰ú„ê•'@}¾p»¦¬±`Áˆ)»¦‚ &°h¥å <¸ÉDiF *„*¥ Ú3b¾`ÉòÔçܹsþá®! VL›;;+øhPÀÃHf6QÁ!ÁW«´XàC%YÜ´]# –,X¢ÜKÇM™¯`Ï´Å gÁGƒA¢DÊÆ6¹:df‡),AãvÍY0X¢D™Å4gň)ÓÖ.Ÿ¾@= ¨pÓ&L0˜`¨sËIHhˆPR*7h°D¡Be •)bÁ”#¦Œ›»zúò93@€€“(mQ -[–Œ¨ "„!YΞ) ö V0_¾|É VŒ±gßÚÅ‹÷M—&X C* ÐBªC% söL™/O¦d+öLÙ3hÚ´i£¦ ›2Q²Pþ‘!L([̘³…ŒŒ%N\QRJ4j×´Éò„ªØµpܸ…3gîZ0€ž¤– XÌÁ°ãИ0dÄ8aq¢Â‡;ÅžA»v2X¢Ši —.\8sá‚1ÈÏ OÄœ± @b†Š; Í`a€*LT<»FMÙ3hÏ”ƒŒ›9mמ)+ö ŸAŠ<=Ó¦­ !&¬(1¢„.P¨ðàêÙ³bÁˆ){Fí2eá܃Eì1Fˆõé3ˆµkátY`¡„Å“  @B*sá®CFŒX1jßÂ}û1mÚãÔÇK—2ˆPûöŽ™– J^x`þð † ÕôÕÓ—Ïœ¹p׈»Fî›¶oÏ´…ÓÆ­£2]’tÄ Ù5nïØ±a €† ?֬Ç_¿~úâ½kw Ù3m×´‘ãî@wÄ8õùÒåKE¢d£Î]¼y¼T©b¦nÞ¼zøæÍçOŸ¾zî™3.¹xõÞ=cÔÇK—/€yúÄI±kÜÌÅÃW>|øðá›7o>|øðõÓ§/_¾zñÜõËgŽ˜¢/]ºð„'FŒDƒÎ]=|øðáÇ>yøæÍÇ_¿~ýúñÓ—O_¸`¨}ñò…OŸ>} BôÉ׳pñòéÓ§OŸ>|øðáÃ'O>>|øðõëׯ_?}ÚP}bÔç‹—/_¾|ùR¦"SÅÎÅÓ§OŸ>}úôéÓ‡Ÿ<|øðáÇ_¿~ýúý !ù€ ,+@‡!!&* #""%%%&"")##.%%)&&-)).**,''2**2--2..5**4..8//?00522955>22<99?66B66E22A::B::E==F<>N::M??Q;;T77YBBMDDLHHOBBGBBQFFRFFVBBUFFZDD\IIVKKSIIZMMYMM^II]QQZQQ]TT^EEcAAnBBoEEjLLcJJlCCpEEqFFrIIrJJuLLvOOsOOxQQaUUaVVeQQeVVjVVmQQlYYdYYj]]k]]nYYmUUrSStSS{QQzSS|WWzUU}VV~ZZv^^r]]vZZqXX]]y[[{aanccmhhjbbrbbvffveepaazbb~ffzff~kktii}mmzkk{rr|zz~ZZ]]ƒ^^‚__„cc€aa†ffff‡ee‰ccˆii‚nn†llƒii‹iiŠjjŒnnmmŽnnˆoorrrr†uu…vvƒrr‰uuŠvvrrŒyy†yyŠzz}}Žqq‘ss’tt“vv•zz‘xx–zz—~~’}}–{{˜š||™„„’‚‚•……’††•š‚‚††˜……Ÿ‡‡ž‰‰–‹‹”ŠŠ™‰‰šŽŽ‘‘––ž‘‘›™™›‡‡ ‹‹£ˆˆ¡¢ŽŽ¥’’¡‘‘§’’§••¢––¥““¨——«””©››¤™™¬šš®žžªœœ¯žž®™™ªžž°§§«££¬¨¨«¢¢³¡¡²££´¥¥´§§¶¦¦µ¨¨·ªª·««¸©©¸®®»¬¬º¯¯¼°°º°°¼³³½µµ¿¶¶¾¶¶º¿¿¿½½½¸¸½¶¶À³³Á¹¹Â¾¾Â¾¾ÅÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÇÇÊÁÁÎÈÈÊÉÉÊËËÌþG}Ò„( >`˜$1$H A‚ $H HÊlÒ5J¥VÇ~éÒ¥‹µoáÂ…;·êÓ&M†âFI#A‚ $H A‚ bD 0`ôè¢&Ø/]Ĥiûö-]ºV£6mR„ÈP mú¤ë5nÜÂ…;—.]:wóîÝ›gË€“ "¨þÂÊÑ# <è"Dã‰]ºF}úôéÓ']Ò´uãÆíÛ·péÖ¹›7ïÞ< &l¨`eÀƒul(`H/CÄ !6lÀaÄt kÆ-Ü9mܼ}ûv.Ý:wîäÙz bÀ…s¢ €²&N‹r)”‚‡XÓ¨Q£6m·pîÜqûöíÛ·séÖ¥K—®… Z hƒi(B‘$ÁÈ¡E dJØI·n]ºtéÖ¹›çî[·oáÎK·.·Y4}úe Ib@¢b S˜K’<À¢‹Ò¥;D¤äp$é‰0C†Àt)çL’M›>}µiÓ&8ŽÎ4²ãd I‘ˆ˜šR ÀšSÉ@ôd¡TUd•áÂL=`”(µj•(MŒºbꊑD“$Ä©D¨Ö cØeþ.\ÊèÉF‰¢Q«F) ÈЦ v.̸’cÌIÞTÙp NœSÁ&Eâ0Ë$7 ˜0áÂ…‹%I6}Ú¤È!Dš>‰°¡€Gq.a²€ÀY0Áxcê9Ĥٔ„ &L”$A2jÔ&Mš6múôI„ ¬ÃJRY°|PâK‘DˆÒ$ 0`øèɆ ]ºF}ú$jÔªU“4l  À@¡W•ZHš‘å@€ ˜È1a@GFmÚ4jÔ&?yÀP“Fì—.]ºt“¶áC…6™bÃBG `Àƒ& &MÙ1]¹VµÚ¤'\¸oþÚ¤ÓõëÚ¹:i0"Õ Rr i À€ p00ãÒ¦Sר5ûµjÕªUŸÒ…óv˜.]Ĩ¹óFc€'—&¥êÑ"ƒ<¤h ‚‚§à(»&˜®UŸ>‰útš2bÃt“vNÞ<3Ì 4 T‹4:À0“eŒ˜ ˜X4HÚ5i«>%j”(]ºˆýÒEŒZ:wóäaAEœ,qD 0EK-XB˜È``ŒYǔӵiT®V¹tµÒ¥K—®cÔέK§Ú˜ Þ 4£™AY¦À¸ð‚4²ü:vŒX.QŸZéFŒØ1eרIkFm±O­@þa8eŒ2CÞü±"zô€Ñi˜²fÒ¨åÒôé—4n×®qûNš.€›ùñ£hÕ›)¤ìÐ2K  `@Ã8ÃŽ5k&MÚ°QŸtQãÆ·oÜt)òãÇO Mº”yh ¤D“!Ž8 @ƒ à“¦ŒØ±cLjéjõëš7jÔ”ûµ)Ÿ@ˆ6“&í)~¬@!¢Å€ "¢ ðàëØ1]ºt ;Öì1bÚÎéZ¥ë˜.E†üèÉHW3iÜníˆsfÍŒ <øxð ¬nܤý"¦K—®fÚ¸q»Æm•.jÔˆéÒ¤‡ 0>éÒ¦îYŽ-<@¨þƒ„ Îæ¹›çîÛ7nÓ†ý’Æ5jĦqÓvM"0L˜pÑ£i˜´kêÌÍ AaÂ!Ôƒ7o¼{óÖ­KGØ1jÒ®u»ÆíÀtº6éÃŒEŸVéRÆ-;v¸ðÀ2FŽ;wìÞ¹ƒ7oÞ¼yé¸}ûÆ[7wîÖSä‡ 0~iÚ¤é“.iÚ­ƒÏÞ;xðèÝ»wïÞ½yÔF}R¤ 0`À€)SF¡O¿ÂÉ›7oÞ¼yóæÍ›88>66@66E11@66J::B99F==E>>C::J>>J;;N==S;;\AAJBBMDDNIIOAAQFFQFFVCCUFFZBB[IIRJJVMMUJJYJJ]NN^MMYQQ]RR\CCdAAnBBoFFnNNeKKbNNjNNnIIkCCpFFrIIrJJuNNsMMvOOxRRaVVeSSdRRiVVjSSmZZf[[dZZiYYm^^j]]nRRrUUuTTrQQzSS|UUzUU}VV~ZZrZZv^^r^^vZZyXX]]z^^|aanhhkbbrbbueerffvbbzaa}ffyee~iitiiyjj~mm|qq}yy{ZZ]]‚^^ƒ__„aa†ffdd„ff‰ii‚jj…mm‚nn†hh‹kkŒiiŒmmŽmmŠoorr‚qq†uu†vv‚qq‰uuŠvvqqŽzz…zzŽ}}ŽzzŠrr‘tt“vv•uu”{{‘xx–zz—~~‘}}–{{˜||™›}}š„„Ž’……’††–‚‚•›‚‚††™……Ÿ‰‰——ŠŠ™šŽŽ‰‰Ÿ‘‘”’’ž––Ÿ’’›‡‡ ŠŠ¢¢¥¥‹‹¤’’¢‘‘¦––¢––¥““¨‘‘¨——«••©™™£™™¬››­¯ššªŸŸ°°¤¤­¥¥¨¡¡²¢¢²££´¤¤´¦¦¶¤¤³©©·ªª·©©³««¹©©¸­­º®®»¬¬¹¯¯¼±±·°°¼³³¾²²½µµ¿··¿²²»¹¹¿¿¿¿½½½¹¹»¶¶À³³Å¹¹Â½½Â¾¾Å»»Ä½½Ë½½ÔÃÃÃÀÀÀÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÇÇÈÇÇÊÈÈÊÉÉÊËËÌþIyÊt(>aš(A @€ HÎdÒE*Q&WÉ€éòåk5pãÆ©SÇÊÓ¦L†â†‰$G€ @€9‚„I—0aøèª­0_Å iN;W¤°açÎ;uîÜÑËGÜ6pãÔ©c׎¸WlÔ¨A‘“XÇA`€Á -\„”‘r…È7~þøå³gÏž=zÞ¨YÛnܸqà¶=i±Ã…•nXZ«E ® ÑEþJ›+Z,Ù³gž])1ƒ*çΓgÏž=}ÖÀÑc·-Ù0W0ˆp£Î†`HÀ… à¤âTiN'6ˆ8wîœ<þ{üøñ«Î\»nÀt±šÓ#Â¥:±È8²ódË–AÂV0hpɧ9d,`AHósóêÙãÇ+_¾Š%¶ËU+ ž@ú…£Æ 3EÐ$£ô`‚³>á`€¡ÁˆH#L›'Ï?~üté åÊW1_¾¬lèð§'$`pJ3؆ <°ÑV¼€D&Ϲsòêٳǘ/]¬B‘båËÆi$ "Ä€Ä)A‘^-¨@§@F§`Dˆ #¤BwΛ'¯ž=}º\‘ò”éP¢U0íÐu唎7j`Quj•; ÀHeåEƒ;ìê1ožmù3M%U»DàiÅ'!OÀ¨mSÒ¤K=|ü‘¢›7pPkY±V¶RE²þ+Í HsÐÌ9UÁ¤@‰2‘Òå«X=|ò¤KW é€3B€•TÍb¡²u¬RªJ‚Y"ä£Ò¶&yrÅŠ•«E‡øø1”()]®ÌÙò† 6Ô:%„άY’d¥’d)Ò'Hƒ¬lP´ÊU¦@™Hù èP¢L™<…òd&I¡7$ TPÐȈ!$NÙúô*V)1\æ| Ö‚Î PÂx 茒M›6yò´)Ó&CKªÄ°á€‚“-F$µÂ!ëÖ©T¶*9Áऒ*n êÒ¥‹>g˜,"ÅŠ©L‰2 ³C@(Î)I[ªH—n»u+Ö“8TaÑ&Pþ—.]Âðás†I"R¬B èP&U6Ì‚‘cP)¶T‚Ä‹$P@€ÊtaR¦š5h¬<‘Z*T(_ºŠùòUÌ;zùð-ƒàCP%L2D† 6*0A(Í’HÉ”%sµ‰•.W®r¹ÒåË—.`ÚÔ¹c§šEfÌHÀÇ!lX (ÀaŠHZÌ+–¬X.Ož\ùòµ¬X2eÔ¨QƒZ1O®@þ‰™â#…4(yQA‡„HI X2eШ¹Êä 4mÖ¬m7Nš.€™ùñsˆ Z¶˜ábBÀ4œHaHAÅ’)k­Ù0R¡€QÛnÛ6oÛv%òÃÇO Mº„iBÃŒ)@PA…RÌ,k¦¬X²dÅŠéb¥Ë8jÐ’%óµÉŸ@‡2%ƒFm— $KŠTH1¡@@ à,Y2`º| KÖ,Y±bÛØùbå+™¯DüðÑÈW3hÛ–%ÙÒæE Ø`‚-pÛ  +æË°fÚ¶iÓ¶Õ.jÔŠéÊħK—0†HéÒÖÎÙŠ l0þÀ€ÏòÑËGÏ›·mÒ|ƒæm5mŨmÓ¦Íס0]štá“i4kíÒ­yP€H(¥³—Ïž=~ùܹc­X2jЬy³¶m@vÀ2éñÒ% ŸCž\åj¶]»vÇj•ªuNž|ì¶·m8wôØ)Kä§K—0~eò´i“/hÚÀѳgž={öìÙ“'Ož<{öøñË—>zîÞñ÷Í×!=]ºèñèP¦D‰<ùj¦]¾|öìÙ³gÏž½zõäÉ«gÏ?~üøùˇß6]¤é F>|ü:´‰T²mîòåË—/_¾|öìÙ³gÏ>^={öôñãÇ¿|ÔHyJÄ'L—0a„9s†Ï¡PÃÀ¹Ë—/_¾|ùòåËgÏž={öìÙ³gO?~üøù !ù€ ,+@‡ !$##$!!&$$& #''*##+)).((+%%2**2..2..6++6..:--;11522:11>66>55:99?55A66I99A;;E>>F<<@::J;;N>>J>>M??X;;SAAEBBLJJLAAQEEQEEUAAUFF^CC[JJVJJRJJZMMYLL]SSVQQ^SS\DDdAAnBBoEEkMMaMMeLLkCCpGGrEEqIIrJJuMMvMMrNNxQQbTTaVVfQQeRRnVVkTTlYYf[[dZZjZZm^^j^^nRRqVVrRRuQQzSS|UU}VV~VVyZZrZZv^^r^^tZZzXX]]z^^|aamjjmbbrbbveeueeqbbybb}ffyff}jjuiiyii}mm~mmzrr}}}~ZZ]]ƒ^^‚__„aa†ffbbƒff‰ccˆii‚jj„mmnn…hh‹jjŠkkiiŒooˆmmŽoorr†vv†tt‚rr‰vvŠvv{{…yyŠzz}}Žqq‘tt“vv•uu”{{’yy–zz—~~‘||•{{˜||™š}}šŽ’‚‚•……“††–‚‚š‚‚……ž……˜‰‰–—ŠŠ™ŽŽ™ŽŽœ‰‰Ÿ‘‘›’’••”‡‡ ‰‰¢£¤¦ŽŽ¥‹‹¤‘‘§’’§••¡’’¡““¨‘‘¨——«••©——¬šš¤™™¬››®®ššªŸŸ°°¡¡¥¥¥ª¢¢²££´¥¥³¥¥µ¦¦¶¨¨·ªª·¬¬³««¸©©¸­­º­­º¯¯¼°°¼³³¾²²½´´¿··¿±±»¿¿¿¼¼¼ºº¾¶¶ÀµµÀ¹¹Â¼¼Ã¾¾Å»»ÄÃÃÃÀÀÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÆÆÊÉÉÊÉÉÊËËÌþAiªtÈÏ=\ƒ|ÁɆ¯A* 8á”CB‚I޵)C$Akª¨«W¯^½zõôìñCˆP¢J‰æ¨1#Ž‹6¤^M ÑÌ*SR8Lšˆ Ÿ/œqBóA]½zõêÕ«·gÏž={üøé…†jB´ŠU£‘pb½HΣI”89²È7ÚÕ«W¯^½zxðàÁƒÏ1fê h¥ÑªE)n Ø@éÕ+Q‹&qD†Ï >}®€Áð­^½zõîÝãÂ… .Z²±ñ!B%±b þZUAŠY¢ùâi R_9*¨ÄƒsõêÕ»wïž#EŠ)b„HXHzëU¬buÅ¢ô(–¯XL½â¨ ™Gl6$óf:tä† 2d‘"DBR¬X¢\Íòe*–«I¯™jÕf2@ŽÅ A(TǬiÓ6dÈ!CŠ1€€ pbÁ¡óJÒ¨X¯f™ZËT1m!â¤&Äšxöò$̶!C†1‚„Ë&@CëU¬A‹(Œ+ÖªX¾Lµiç£Ff¼jÇ!M¸œY+‚$ —1xö¨C:¯^UêQ,_³^ÅŠÕþ #@“©A0GÕ?Š*J…K—;{ü$ºdË162¤XõjT©Q£½Yµê•«UF•™‰NˆÞhJu**E‡ðèñ“ȨZµúà¡¡C£V¤LQâ$iÒ«X¾|Å*Õ $G" âD U%?–@ááâ‡P¢J—4yÒ´‡L•5®eÔj”©QmJ ò5ËÍ@“ 1J@£)K‡¸háâgLK—.iòtÉ’¥>6RHzEg¤Q­^Íjej)S€¤ÐÄ©Ž)€8eÉ’…ËÝ»wïÞÕ«W¯^=zÑ@yJ„‡‹.\¸pá2Ï!M¼¶µ£G^;zïÞÑ£÷îÝ»wïÞ½{÷î]½zõêÕ !ù€ ,+@‡ !"$!!#""%$$&%%)$$-**-**,''0))0--2--6**5--:11622>66>44:99>55B33C99B;;F==E::I??J>>N99M66L==R::Y??bAAFBBMCCKBBQCCUFFRFFUGG[DD\IIVLLUJJYKK^NNZMM]RR^SS\BBaDDdAAnBBoFFkKKdOOjKKmCCpEEqGGrFFrIIrJJuNNrMMvNNxQQbRReUUbUUfRRnUUnUUjZZf[[dYYjZZn]]m]]jUUqTTtQQzSS|UU}VV~TTxYYrZZu]]v^^qYY]]y^^|ZZyaanfflbbqeerffvaaubbzbb~ffyff~kktjjyjj}mm|rr}ZZ€]]ƒ^^‚^^„cccc‡aa…ffdd„ff‰ii‚jj…mm‚nn…ii‹ii‰jjŒoo‰mmŽooqqrr†uu†wwrr‰uuŠvvrrŽzz…yy‹yy~~Ž~~Šqq‘ss’tt“ww•uu”xx–zz—~~‘~~•zz‘{{˜||™›}}š††Œ’‚‚•††•††‘€€š‚‚††™……Ÿ‰‰–ˆˆ’ŠŠ™šŽŽŠŠž’’””ž‘‘𓇇 ŠŠ£‰‰¡ŽŽ¥ŽŽ¥ŒŒ£§’’§––¡““¢’’¨––«••ª——¬šš¤™™¬››®®šš©ŸŸ°°  §¢¢¬¢¢³¡¡²££´¥¥³¥¥´¦¦¶©©·ªª¶««²««¸©©¸­­º®®»¬¬¹¯¯¼±±»°°¼³³¾²²½´´¿¶¶¾¶¶¹¿¿¿¼¼¾¹¹¾¶¶À»»Ã¹¹Á½½Â¾¾ÅÃÃÃÀÀÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÇÇÈÇÇÊÉÉÊÉÉÊËËÌÌÌÌþGqºTÈ<\’!ƒ8|ùElÀaÄt c¶mÜ:mÛ¶‰—n]»xñìá2SkÒ¤P̆MüÀ°¢„]Ô¨Q£&MÚ¶tíâmÛ&Nœ¸tëÚ©[·Ç«X“5(0`@Š.,ñbáB 6>|€Y¯ºuëÚųÏÛ6qéÖ¥[§n8Y5bÄx³ÄÁ,¨!Ç–D)Ö0IÁÆ·|ùòÙ›oÞ¼xÞ¨Qó&nܸqâ¶E²B©À€N5 p“Nm˜‰eþN”0(Í›7/ž»xóâ¹[·Ú/_É¢E£¦-Mš9üIQ`‚g jUÅC RLRLðñÜ9sæÌ¹sç.^»tÖ†iâ4j”®Nhæ0 ‘hJ˜ ,hHÐ,E1:L¨ò ?°™3gΜ;wóæ[7ޱQ‡.iZb*J &¦2( `Á‚Qkua‚&p$øÐñÊœ9sîÜÍ›7Ïš5t⬠ÓthPdib˜I…c@ (È0Ë›°¬´È€J‰HæÌ™s7oÞ¼|Ó¾Å[g Ù/W~RœZ¥ £ - (P°šX±b­ Ð!Æ$A@D1gλþyùòå›6Nºm¿r­$ÃS+L(É‘Q`A0˜úãf -Nµ2ÄæC9sæÜåË—/Ÿ«_¾~%¦k­µ`‚ƒ”Š H á”+Ð4™KÖ$6/ž™sçnž½|ù|¹¥Ê1_¾Ð$šò§Í„f$(P @‰À`!ðT,aN™bóc™9sîæÍ›—ï—¯\ª@Zå+M¢N‚ÈøÀ `@ ( K'&qŽRÔ© •Ì™3çnÞ¼yº\ât©Ð¡U¦Nyšõh ((P @JcnÅItlÒ§S§°üˆdΜ;wóæÍÓĉ“¦Kˆþ.j¥HZmØÐ@B ˜úS«V§Zmu25ÆÉwîæÍË—/_¡Cˆ.]ºÄ‰Ó)EQ4´!ó¤@0¨-jc$I–,HŒ)2j”¦K—0iâĉJƒk$úñÊ”£@‚Êüù2å– |hDé†-bìØ©Ã%K_¹FqâÄiÔªUx¸0é”#S§Nya2fÒ ÆÄ @M§EŽ8qÒ4J&=u¸X‹Fì—/]º~‹öaƒ€,°4ŠuJ Yoœ4¸€…  SРù”,Y2_ºV¹ÂdgܸqþÚ¢ Ó5LÛºH`æ‹£S“Ô¤yæÉ—/o¦Tqó†…UÖ¨%ûåJÕªUœÖûfX.]ĨÅÖ…ž»yóæåË—/_>{ÔFi:d‡‹.\¸pá"ÆÎ N¿Òµ³gÏž={öìÙ³7oÞ¼yóæÍ›7o^¾|ùöí !ù€ ,+@‡!!$* #""#""%$$'"")&&)&&-)).**,''1**1--2--5**5--:11511:22=55:55>88>..B66A44D99B::F>>F<>I;;M::R;;Y??eAAJAAMDDMHHOBBQFFRFFUBBVFFZCC]IIVKKTJJYII^MM[QQ^RR\BBcFFcAAnBBoFFlNNfKKcMMjNNnHHhCCpGGsEEqJJuLLvKKrNNxRRaUUbVVfRReVVjVVmRRlYYfZZcYYiZZm^^j]]nUUqSStRRzSS|UU}VV~VVyZZrZZu]]r]]uZZzXX^^{bbmaavffqeeuaarbbzbb}eeyff~jjullvii}jjyss}ZZ]]‚^^‚__„aa†ee‚ee‰ii‚mm‚nn†hh‹hh‰jjŒnnmmŽoo‰oorr‚qq†vv†tt‚rr‰uuŠvvqqŒ{{†yyŠyy}}Ž||Šqq‘tt“ww•uu”{{‘yy–zz—~~‘”{{˜||™~~š‹‹’‚‚•††’††–š‚‚……ž††š‰‰–‹‹•ŠŠ™ŠŠšŽŽ‘‘›’’••ž••›™™Ÿœœž‡‡ ‰‰¢¤ŽŽ¥ŒŒ£§’’§––¡““¢““¨‘‘¨——«••ª——¬šš£šš­¯žž¯˜˜ªŸŸ°°¢¢¦  ©¢¢³¡¡²££´¥¥µ¦¦µ¤¤²©©·ªª·¬¬²««¹©©¸­­º®®»­­¹¯¯¼°°»±±½³³¾²²½µµ¿¶¶¿¿¿¿½½¾¹¹½´´¶··ÀµµÀ²²À¹¹Â½½Â¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÂÂÈÅÅÈÇÇÉÈÈÊÉÉÊÊÊÌþCmºDÈŸ=aœ,I$H A‚ $H IÐ\ÊÊ!\ÇzåÊ¥k˜´oâĉC—j¦K‚üøÙ†É’$H‚ $H A‚A’„‰—0aôä’m˜.]âeûömÝ:U¡6a2$ˆŠ ‘!aRAËVM³cÌ IÓ¦­Z4fÙ õÊ…+W®P†üþè Ã$I’ H„9Ò…J™Nˆ0ré˜6mÕ Ic†,š4€Ò 1ƒöM›´aÃÓµÉ<^–$I"¦Š u¤ì!ÅÃ…cŽ}ûöí[7iФAc­Z6qâ¾U“–M[µcÁP]ò³Ç ;XrÌxgMœ 2´Pè¡LÜ7oÙ¤ACv¬Ø1hÕ²}û&î›¶nß¾}ûÖMÚ±WcÊ H„ãŽ8šÈLù“…Ç…CÓªA;V¬W®\º‚“Ví›8tèĉ‡®]¼xí¾ÑYdÅʆ1¸Ô¤cŒR6¤ Y®P¡6aÚ”«˜4mݾ‰C·n»xöðá³gëÀ5,Hþ1d—.Š\°qbƒ^ºBmÚ´iS¨\Ì´uÓ¦í›8qèÚųgß¼OâL9pàÀ†4QBÌ1Â*1ˆèéŒÀ`Ãtc¦MܺlÚ´}û†n]»xñâÙjóDÑ…x’B™!ÜÈ BBUТI“-š6tñâiÓöíÛ7tëÚµC'ÎN¢:QA‚›Yäȸ@„•"~Ài×®Ý:tëÚųï›¶oèÖ¡[Çn¶Xmy@€€ Pð*RÄM‹ "v\È ãG<|øðÙ‹oÞ¼xݪIÓ&Nœ8qß²ÙcÇ@€ÁCS)2OddÁðbþ‹ 9?LÍ›7/Þ»wóæ½[§-Z¯^ǘA“–98Р S”M‰àáÅŒ8-p1B…9räȽ{÷îÝ:tÒ‚mÚ*T®R’ ¸ò„À‚ 0¢ô+P;Ú´°° 2e®‘#GŽÜ»wóæ™['NÚ°M†.m’C ‡,hР GÆ(…ˆ‘… TúÔxó‹9rïÞÍ›7¯Z5qâ¤õÂdÈX8èØÐ`Á‚ >ü2U*N?ä”zÕèDJäÈ‘{7oÞ¼|Ó¼Å[§ Ù0U‚îP‚Bgƒ‡,XÐÁ¥?9j\¨+«G+2´ GŽÜ»þyøðá›æm8m½r¥‚cŠ-&, p`Á ¤Hiš²&ËWšH™z¢Š9rïæÙÇ_*^¼†! –+ÕI[Úx0á€hФ()J”\9*¥)Ö–rΑ#÷n>|øråúª×0]ºìÈX3¥ƒXp CJ¤(Å’ðœG‡\ÚÅ9rïäÍ›‡¯—.\©>…J¥ËTœFfP°YpÁ‚ 8Ò‹R¬_¬=rõ*гȑ#÷NÞ¼|¹T…Ú„ˆ¡T’(QzUåÀ8Ð@’)Z¦dýrE©'Wq^DEîÝ»wòòÍÛôi¦Kˆþ.…ÒôèT#. `àÀ‚‹*µúEKÖ#M}4Ú²ÃA$yóæÍÇŸ Bˆ.!º„iÓ¥2l~U!pà pÔŠR­_Îd•:¤É”Œ2$͡Ÿ>}úöðñ#H¡K—¶lÈÒh¤º°à%,”`ýúËÔRšrŒ‘òä]>|øðáÃLJ>|üø1C@›! EŠ&a(*–,`²b¹ ”fÍ,(ØáÃgŸ>}zôèÑ£G>2Hª@ÁrêŒXÀƒU¬Y´~‹õ¨T 8eBlX`>|úôé &L˜0^¼àñ `‘„þH+N:®bûõËJ§ê¸™RaAvøðáÇO&L˜0YÂ$ ‰t`hÙガX¦@‰KÖ¯F®H¹ÒäHM›:@·.^¼oë’$I’$I’%^¢¨éÑ*–¨ ¬fÉ‚ba+Wpf¹šGÑ; hY°!T¨TòiÓ–$I’$I’,ñÇ…©X²dÅbKV¥ &dÉ’õ‹­?¦°˜À‘ãÁzøÂ4,[7$I’,Yâ$ 1#X]¡DÉU,Y³Ô†.¥Ê¥+X<{ü”+Wuxô¸cJ“+`w:à+˜X´®@øÈÑ›62mÂJ.D„ôðdèR(Uª E‘ÃF+S”H‘’$JV,JŽHQšEbB E¥(…xRJÕ%?—6ñ #ˆ¢K˜6mÚ4ÆÃ5±\™2¥É%5®$QŠE+–¦vÄÒ´M‚Є ãÍL˜0mÚ„éÒ%2.\‘ˆ%J}ÈxqeK#X¦µø ©%GP´èñâ% >a˜ ¥*U¨Kˆ Á‰ ¡AJ¤JjC)P“7õa%jŒŽ ”±’C)þ/^ÂèÙã…‰¡P©Bòã‡Ð¥. ä E†‘J=QÂC‡+J[2XФI‘#œ8ñÆ &K0mÂdH C—6…Ø#–$9É!!GÎ 'b€PAC `Hmy´Ä‰'L–,I*¦K—.aÚ„‰ŠJê(ý)uÄG}´T §Á‚IZ$#‹ž0aúèÁÆ‹]¸BmÚô)TªT”z´ÁáH‘)Goàp Ä%ED,° èÑ7dmÂ*Ô%>xÂTƒ6¬—®\¹t ƒ¶†B ¤(Q D)%4Œ”"¥Â;ж¤Iƒ Ù°\¸R©º¤Gœ8qþÙ˜ ËÕKÚºSÌ ¡ˆ%GQý颈Ê)5t´@)ƒcÇMÕ¦1ë•*•ªT›Ö‰óVmX®\ǤµÓvFD™?rÞH²c…KGS4AÁA&Žà«m˜®T›6…úTM´c½t ‹†®ž½GU¨ÐH ÀL*ä²ó'”#\H@ ñš4d©>… *Ô']¹†õê5¬ÚºxõêAƒD#@€ ¨ )8[qÑÑÀCUÇŽ S… U.\¸p©ÊÕK—®cÙеk—MÚ# C™(Qà¼Y´ÆH• Pè6l®MŸTñêulØ1dÒ¤Iƒ&MÚ°MªPþ‰¡ VrÈ!Ç  7]†ÈÀñ(Ø1dФ©º„I³lÕ¤iûö-Z.€˜ ñác(UŸ3:r˜ÙÒ¦…€ cÞ2Cd ‘G½Ž!c&Y0T›tIÓæM›¶oÚrâÇLºŽ1ƒ„œlÈQGÎTú “ÆlØ0ddžåJ•Kš6iÐŽ ë…ÉÏ?„.“&íW“&6ˆx@`Fi¼ÌÈ2ìØ±^¹r;ƌٰaÙÐéJ¥ë˜.C„øèÑãG3hÚŒ¹ø‘BÀDÞà˜Òå̰oÚ ¦K—.fÙ´i“¦-•.iт庤Nj“0‚>åÊÖÎØŒ&4ðþ°EÊ9Óìͳ¯[7mÑrõ‚ÖM›4iài«VM¡0^œxÙs)´jìȉªR¡‚ !±›7ož=|öÚµC-Ø1hФu«ö Àuº.é ã%ŒB›Tåb¦ ]¼wÍFºEîÝ»xïÞ½›gÏž½zë´}û¦MÛ·vñÜ!3Äç‹—0|]Âti“.hÕĵ›7oÞ¼yóæÍ{÷îÝ»yóæá³g¯^½xíÜá«÷M!<^¾àáãÇ!C†6éB¦={óæÍ›7oÞž¼yóòáÇ>{ÒBa2¤'L˜0a„ ƒG¡OÁ¾µ³gÏž={öìÙ³7oÞ¼yóæÍ›7o>|øðé !ù€ ,+@‡  !%)!!#""%$$'##*%%*&&-)).))+&&1**2--2..6((7..:--<22:22=66>44:;;?33766A66E33C44L99B::F==F<>J<>U==[??eAAFAAJBBMEENJJNBBQFFRDDUDD[IIQIIVMMVJJZJJ]NNZMM^QQ]RR[FFbEEdAAnBBoDDlMMdNNmLLjCCpGGsEEqJJuLLwLLuKKrOOxRRaQQeUUbVVeRRjVViSSmZZeYYjZZn^^m]]iVVuRRrQQzUU}VV~UUzZZqZZv]]q^^vZZzYY~^^z^^~ccmhhnaafaaqaavffvffraaybb}ffzee~jjviizmm}jj|rr}ZZ]]ƒ^^ƒ__„ccaa†ee„ee‰iimmmm…ii…hh‹jjŒoo‰mmŽooqq†uu…ss‚rr‰uuŠvvqq{{„yyŠyy}}Ž}}‰qq‘ss’rr‘tt“ww•uu”zz‘yy–zz—~~‘}}—{{˜||™~~š~~™Ž„„‡’‚‚•……–……’šƒƒœ††š……Ÿ††Ÿ‰‰–•ŠŠ™‰‰ž›ŽŽœ““–‘‘““™™œ‡‡ ŠŠ£‰‰¡ŒŒ£¤ŽŽ¥¦‘‘§’’§““¢““¨‘‘¨––«””©——¬™™¥™™«šš­¯žž©ŸŸ±°¥¥ª¢¢³¡¡²££´¥¥³¥¥µ¦¦µ¨¨·©©¶¬¬¶««¹©©¸­­º®®»¬¬¹¯¯¼¶¶·°°¼²²¾´´¿¶¶¾°°º¿¿¿¼¼½¹¹¿··À¹¹Â½½Â¾¾Å»»ÄÃÃÃÀÀÁÂÂÅÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÇÇÊÈÈÊÉÉÊÊÊÌþMuÊ”hÐ ?b¢4aR¤H‘"EŠ)R¤H%KÄpúejÑ$_Ί&ìY¶rçÎk÷ T§L‰ ò#ÆI&JŠ)R¤H‘"EŠQ¤I1búüÊfM™0aʬ}+WÎ;Y¦@qZ”(Ñ >`š,a¢¤H‘"EŠ)R¤ˆ&Lš4q2èÙ6kÏŠ!s– \¹sîÜýzEª§I‹㤠&EŠ)¢„È +\iÒ$JŸ_Ö¶eƒ¦ÌY6påΕ+Wn2Y¦L‘•)Q1`š0aR¤H‘%BÈ\1à &bLM·-Û4gÓ²mn[6kÛ¦!ó%ë×/S‹þõã„ “"E˜,I‚¥Š„)TT€’É8pÙ²e›íZ6€Ù¬M³V\6eÊ A*S >`š,aâ¥E3W:üñsœ•+®Ü¸lÖ²Y³fmÛ·rçÊ}˶íÛ6hÈ^eÔÌ+Sªü¨¡ÅL„*'p¸¤¬\¹rà¶eƒæL™³kß¾•+w®8pàÊ•+7.›³_IØTJàÈ¥Kj~Ì1S‡¢4ؾasƬد_Â9Ëö­Ü¹vçÎ;×=zðÊi¹Â#2† •¹bçLXŒ™ÎÙ¯W¦@uõ‹Y6pàÎkçÎ-êôë— öD‚$ÊÖ†(±JÁª>:|’ÉÒ Wð€òõJ–¬E‰úø´(“)Y²Èè°ã’%K¢.ØÀJ¥,¼héèpÂ’!I|‘"ëU¦DœLõ3(Ñ¢Lœ@u† D‰U#€#\´ZÙ…ÊÇ \Yjd"‡:‰Ä€á(MN:Õ)'+6ti¤*+GýТ*ÒJfJh¹õ +oª¤F Ÿ>bœ,2õê©L‹ѱDO£,)æÙ‚Ò¥JŽ •qÔ£Q†hzÄ%Rþ0bøôá#ÆÉ"R¯H-4(Q§)ôè8€@€3sY!t‰P‰ ŲDÈ<Ç¢D#Œ'M:êÄ(Q¢E™@…ðQ(@—L±SGMUpftˆñæX,HT|XŠÕ$ ˜(Nœ4abÊT§L™8uj‹Ž DáñrCƒ!CvìÜq”CŠ–Žm¹"'1búôá#La¾LÊÔ«W–ÈP8 Ê•$5E*Sæ ƒp$HP¥ªƒ”*8bqêdʧ@|Äl³¦¬˜°_¾„1³ö©‚7‡"•9"JD 5¨ `P£Q%Kq¸Àù š³`¾^ÉêÔçܹsþߦ)óU,›»c±p Ó¨¤2ª¦¨±³— ;~¼iäãÌ•JÛ°A+&ËÕ«W Ü¹K·M™¯_ʲÑcggK™9*9²TIË jpyôåF‡ G¶4ÛfMÙ¯W :™"µ-4gÅ‚)Ëv_¾Xd*ÒÈÌ—9&8LasÐ+76D ó Û¶i¯@™2EÊ)a¿”¦l›;zùða+£ €† Å B „Êd@Páˆ[Π=ûÕÉÕ/Y²~½úULØ/eßÚÁs÷-›" (0q¥C„hê«S¦ìSæL™¯L d ¦L™3hÛ²e³f-›2P²dþQqE†-!„À’§Ž—$*j Hñ ™³iÖ²Éʪ˜µoÛ¶;w.[0€ ´è• /$<âA,j°”±2g¡IÈœA›fm2S¤Še—¸rà~- (РNœ­I¢"ɸdÄ‘+s$A³M™³iΔý’l¸lÖ )ÆiŸA‰29³vM# 0P0åAˆ/jð°Í™3a¿„)sfÍ™2fßÚ {%Ì™°E‰õá3HØ4kàv%@@‰!&t¨3‹³qଠS&L˜°ißÀËî•°lÙýÊÔ 1‰Lýú(¤¸þr4ÝðÑǯÜ8pÖ„³î[¶oʲ·MX"1`¢€ñ“I™µmïέÂ$F~ùàÅsgM™³lײÛî@wÂ2õF ŸD dý‚νw½j¥Ò¥Nž|îÀ•+Ü8xôÜA[Ô' 1eꔩ“0kßÎÁ«W^½zõêÕ«WO^=}õøñË—>|ðâñÃWNX"1`Àð”(£E‹H ›öÍ]¾zõêÕ«W¯^½zõèÕ«W¯?~üøíˇ_¹_¦¥#†OŸ>} JÔÉ”3pðòåË—/_¾|ùêÕ«W¯>^½zõôñãÇ¿|ÙLZÔG 1bĈ“¦O"RÈÊÁË—/_¾|ùòå˧¯^½zõêé«WO?~üüù !ù€ ,+@‡ "$ "!!&##)%%+&&-"".))-&&1**1**5..6--2--:11611955=44;99?66A66D22F::B::E==F<>M99L33O55Q;;V;;[??dAAGAAJBBNEENDDJAAQFFUDDRDD[JJULLUJJYJJ]MMZNN]RR^SS\YY^BBfEEaAAnBBoDDiJJbNNaLLeNNjLLlCCpEEqFFrIIrJJuMMvNNqNNxRRfUUaSScQQnUUjVVmRRiYYfZZdYYjZZm]]j^^nQQrUUrUUtQQzSS|UU}VV~UUzZZqZZu^^r]]uXX]]yYYxaalaaqaauffveercc}eezff}aayiiuiiyjj}mm~mm{rrwrr}ZZ]]‚^^ƒ__„cc‡``…ccff‰ii‚jj†mm‚mm…ii‹jjŠjjŒnnŽnnŠooqq†uu‚ss„rr‰uuŠvvppŽzz†yy}}ŽyyŠqq‘ss’tt“vv•uu”zz’xx–zz—}}‘”{{˜||™~~š„‚‚Ž††Š’‚‚•††–„„’€€›‚‚……Ÿ……™‰‰–ŠŠ™ŽŽŒŒœ’’ž““œ““—‡‡ ‹‹£‰‰¡¤ŽŽ¥¦ŒŒ¢‘‘§––¡””¤’’¨——«””©——¬šš£™™¬šš®¯žž¯ššªžž°¤¤©¡¡²¢¢³¡¡±££´¤¤³¥¥´¦¦µ§§¶¨¨·ªª¶¨¨²««¸©©¸­­º®®»¬¬¹¯¯¼¤¤¸²²¶°°¼³³¾²²½µµ¿¶¶¾°°»ºº¾¿¿¿½½¾¶¶À»»Ã¹¹Á½½Â¾¾ÅÃÃÃÀÀÀÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÇÇÈÇÇÊÉÉÊÉÉÊÊÊÌÃÃÐþGy„(>aš(9òãÇ?~üøñãÇIÂlµ Q"\Â|áҥ˘4p鯥KÇÊ“&L†âf‰’#F~üøñãÇ?~ü0rd‰/aöà’Öl˜.]ÜenÝ:W£,a WÒ¤I“Ö¬·qíàqã¸tëÚ©[7ކŽ53"DÈ¢ã 3rɈ°A†6lZ¯ÝºuëÚÁ«8pãÒ¥[§n¸X,Ô<"ô!C#!\ÐØàá@H²ˆð"„7|øðÕ‹/^|øøøñÈP"L˜ @±€a€ŒV Tì—ªde  R!B„8Q0Á>|øðáÃç‡?~ôDƒÌDàAšb±t”x*’‹t jCDÔáÃW>||ôìÙ³g10¬Ѐ6ŠºÁ ¡B²îdXó†M¥5-¤`0`>|øôé &L˜0_¼,Y‘@„…"Dþ ò©  Y(1ûEKG TYè˜Á#ŽoøðáÓ§O_“&J–(Q²$I†VÐ@5a X*¨¹qê—2HhTÒèà(·®Ðâ-5(i°”¡ %Aob ŠÀ"ƒ  †Â„Ñã'Œ’Mš4yò¤IÓ¦!-ê¬qrG€'§h1‚"„À«3fõ‚TéM)8 ñâ%Œž=g–$ÅŠU(L˜¡YÑ&À¨ñè$@zЂ'Ah i%þ /^ÎìÙfI¢P¬F% ÈÐ&ldð@™Aq,]q´"˃+¯(}ú$ £;œš4ñâÅË’%J4yÒ´È!D˜<É©c †  <"S $8k2¬˜3 ¤:㤤I“&K”(I2j”&L˜4iòäI‹ ±€ˆ  A”à`1“AŽ^¨ž°xR¦—¡0aüìÑÆK]·V…òj+V®`,°DGÊŒT–Hœ‚”ÅÌ'DkaaÌš±pyÚ4j&?{ÂTk6,˜.\¸| “FÈŠ-Q‚piƒ*Už!fبÁTŒ'OD˜! ™°^·XyÚ´gÜ8pþܤÃ5¬Ú:aEéÂ(#H\¸l¸Ñf!uÕ‰Q†M<Õ¤!ÓÅj«UžÖ+WmØ-\ƤÁ3ç$ŽT± Á‘ñ!ƒˆ Y²âƒ“(\jüâÖl®U¡<… UMš1a¾p s–Ž^=HNpiÅД XÐR‡K” D)’EZ5d¬|õÚµ[çl˜1gΪu«ÆmÀuº0ñ ã%ÌD¡\áZÆm¼sÌLM*¦Î»xñÜÅ‹W¯^=zë¸Ç­[·vðÚ!K´Ç‹—0~ aÒ´É“®fÙÀµ‹^¼xñâÅsçλxñðá«W=zíÔá£×M¢0^¾èñȦD‰BéZÆm]½xñâÅ‹/^¼xîÜÁ‹Ï>|øðÕ«G¯^7\£üœ FŸ={üø1¤é–±tíêÕ«W¯^½zõâÅ‹/>^¼xñâáÇ>|ÒFyJ¤'Ì—0a„ sf!OºÒÁ«W¯^½zõêÕÃ/^¼xñâÅ‹/>|øôé !ù€ ,+@‡!!%!!#""%$$%"")&&*&&-""-)).--/''0**2--2--5**6..:,,;11622:66=33;99?66A44D77J99A::E==F==C;;J==I>>M::L??Q99P==[66S>>cAAGAAJBBMFFNDDKJJOBBREERFFUAATGGYFF^BB^IIVJJRIIYMMZMM]KK^RR^UU_RRYZZ\CCcAAnBBoDDlJJbMMaNNeKKfNNnKKiCCpGGrEEqIIsJJuMMwNNvNNxRRbRRfUUaVVeRRiUUiTTmZZe[[cYYjZZm]]n]]jRRqVVqUUuQQzUU}VV~TT{YYrZZv^^r^^vXX~]]y^^~[[ybbnbbrbbveevddqaazffyee}bb}jjwiizmm}jj|qq~ssyZZ]]ƒ^^ƒ__„cc‡``…ffff‰jj‚kk…nn‚nn…ii‹ii‰jjŒmmŽmm‰ooqq‚qq†uu†tt‚rr‰uuŠvvqqzz†}}…yy‹zzŽ}}Ž||Šqq‘ss’rr‘tt“ww•uu”zz’xx–zz—~~‘~~”{{˜||™~~šƒƒŽ‚’††’††–•€€›‚‚……ž††™‰‰—ŒŒ”ŠŠšŒŒœ’’‡‡ ‹‹£‰‰¡¤¦£‘‘§’’§’’¡““©‘‘¨••ª——¬˜˜¬šš®œœ®šš« žž°¤¤¬¢¢³¡¡±££´¥¥´¦¦¶¤¤³¨¨·ªª¶¬¬²««¹©©¸­­º®®º¯¯¼°°¼²²¾µµ¿··¿±±»ºº½¿¿¿½½¾··ÀººÂ½½Â¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÇÇÊÉÉÊÉÉÊËËÌÊÊÕââëþc¡"%iÑ¢Bj°P‘’$I’$I’$I’$I’(Rèœk)aÏŽ #FŒ¶qëÊ•[—k*R-*¤Æ )Q’$I’$I’$I’$‰"…Jš4j Óf1b̬}7n»\±V¡š$IÒ"BX¨P‘%I’$I’$I’$I)R¨PÁ²èÙ6kΖ-{† ܸuìØ Ë ªJ“$%Rc…Š)I’$I’I PZ(¡BK!aÖ¶aƒÖìÙ5qãÖ•7Ú2]±b½ZE R!5i¨H‰’$I% ,@ à +jbYÛ¶ Û´gЮaiÛ¬ ¦K˜°W“þRc…Š”$R¨(qà€ DŒ8Cê8pÛ¬a›6í6€Ø¬M³66fÌž=#†jÒ"Bi¬H±B$ThÁq‚`ž7nœ¸kÖ®Y›vmÛ·qåÆmÃöíÛ6hËb‘ZdH -Z ဇ§;6\ÅRulܸqß°Yƒö¬Ù3kß¾Wn¸qãÄ7Û3]›²,@ñÃ’¨>}6ùaI­Nؾaƒöì˜0aÄ–=Ãöm\¹uëÊ­[ÇÎÄ82³` º¥K—.n$Ð+]ºtðàÑ£GoÛ6vç°C5 ’˜#X@ X(ADmúå©Ö·e›i ä‚@éÒ¥ƒG=}ÚÎÉc· 3]|tð`àÀ[hù²ê–/`òúù;&JÓ¥1&ÔA—<þzúôé³V®:pÇ„åš4€$\âÕ ˜/[­€Ô€ák×£MŠ9ÚR¢ºtéàÝÓ§O_.bĘA[&,—žE88°€Q­Z€2µºäaD ÔD‰‚ÓÆ— ¨¥ƒÞ=}ú„ {•ë3bÄ\ùðÁ€¡hÙòãψ6<¨°£1A@)ñaPºtðèÑ£§ï1]¸bÅÂE - ªÕ%PF¸D‚ ¡ô¸¹sÆ ‡FÒ¥K=zÂrÅZEJÒ$\|:È`à„MC˜4Zq E0€àa$G‹˜%^$@(}ú%Z Ò$R•,YÀgæ80 áǃ hy¤‡ 7pNŒH€">}úôéÓ—ÈP¢D‰-ZdÆ (Ðs"1X¸ A 8ŒJX°(G‚2ÐéÓ§OŸ>}… 2T¨!5^,P @ N*øX°` @f”h³`Áˆ7Z,(NŸ>}úôñS£F5iÒX™±a´þZ°@Ë‚ n†ˆ¥>È€ñ‘ Åtúôéã§O,V¨P¡b…Šˆ `ÁÃA 8PA(-e<àãȇoêX+ÇNž»qì¤H‘"… *V<ØBDA ´Tx° >€<ú’)Ð0–$°£W¬\̾‰EŠ)R¤P‘¡‰0Ð!†CD…´)¨Q( $臉IZÅìÛ¹(R¤P¡‚E¡  Àl  @DŒe-M|J€Êdà@ ¼Œ “hÑ¢Uǰ£‚%:†IÒ€‡—- „Q0À Š7´ê8þF1,H¡¥DŠD“VåFl™B‰MZ%LØ@šx- Î€‰C¨Z0ùBÇ-(²¼Ò•+X®I’ ‚4‰T,]ºdˆQDëB€›†áƒÉ­eüp¸Œ×#m8h!(©E¨bR³Ò$R¤V½ZS _XðÅkˆO ü$tIË&[¡à €ó€Œ–7Ô°Q“H R¨P­Z…Š©6˜@PXà£-_| ”Ù4cÁ‡VÂ… uæÍ&b| I“F ¡Bj¬TŠ•+×+R“&) ¢À@€ Ú’¥Å[E,¸Dé¦Zr41ò’E þ4iÔ*¤ÆÊ¤X¹^MZ´Ò©H0 ÁV-> P\´ÀĪ9Z9‚ó@»°`I“&,TP­BU ¤I¤ViѰŇ­l…¢‰Ó¦ =#eÌ 8z´Œ:EK,V¬P‘+*R¤P¡Z… ŽG   õ(¦G­’YX å‘¯b6TFW'5t "¤& bÁb­Zµ*V®\± <Ѥ ­P­)J¶kÃo†,àóƒ ™PÔ„­B+©D„Ôl³Æì1aˆ1³¶å‹›3om3ä #P^6dÑ¢Ä2%*ñ¥ÍÚ3bÁré:U¨\¹rþߦ1Fl;[µ´AsFË“)düðñFÓUZ´ØÓ¡AÛ´Y;– W®\«Ø•;·™.aÏÀÉ÷„QŸG?V QÁÁ P´îü`òã’žVAPÛfÍ™°\¯V½zµ ›µgËŒ1»¶ÎÞ=J}ia¤A€‚- 8Xêó$-LÜÀIÃÚ6kºV½Ê+V,b˜#Æ ;y÷ìA›ãæ‹”@àƒ *8¸ˆŸPΠ= †*–°`Á„é FŒ˜±cßÖ½c÷ Ÿ%zp @nŽ`0 ƒÉ—G|,söŒY°S¯t;ÖŒÙ3hÛ°m›f ³Uºtþuq¢Ã€ìhq³c  n<’Ój´iÖ°é"…Š˜5pÛ°+7îš0€¨&%J4)W'*<°`†(FpÚdpÀÄ@ÇžA›fÍÚ1\¯ˆaî¸qà„MJ”(Ñ"TÄ ÍYÁ@€$é‘ã†ÄA³Ù3hϘ Ë%lÛ8mÖž1;†*‘¡E’N=ÆY ¸À‡2#pxsìY³cˆ-ƒf Ú2fߨËEì±I‹*´ˆØ4kßœA±GfäÜÀ̱oà¬-[&Œ±ißÄ}Ã&.1lØ– ;e(M5^ ûÖn›™,) ThþƒéƉ.ÜìÉ»gœ8p؈³&N6lϰ}ûöí˜$:i°¤)DжmíØ}*a Á3hn¡£Gß=}÷ܽ[wÙ3lÖ°‰Û6®ÀuÇNR“FM!I«t ƒŽ;xÒfõ¢Ö}úôå»gÏ8a±ÑQ£†P!C† -’„ ׳rîîÝ»wïÞ½{ôèÑ£G>}úøñ !ù€ ,+@‡! !"#%!!#""#""%$$&"")%%*&&-##,))-((*%%1**2..5,,3..911722:22<55:55>::?66A44C55M::A::E<>I>>M::I??Q::Z??a@@FAAJAAMEENDDKBBQFFQEEUCCWFFZEE]IIRIIUNNWIIZJJ]MMZMM^QQZQQ]VV_QQUAAnBBoEEmNNaLLeLLlCCpEEqGGsJJuLLvJJrNNxRRbRRfUUaUUeRRiTTlYYe\\fYYiZZm]]n]]kVVqVVuRRtQQzUU}VV~SS|ZZqZZv^^q]]uXX\\yeegaanbbmaaqbbueerffubbzaa~eeyff}iivllpjjzii~nnymm~rr}ZZ]]ƒ^^ƒ__„bb‚aa†ffgg„ee‰jjkk…mm‚nn…ii‹jjŒnn‰nnmmŽooqq‚rr…uu‚vv…vv‰vvŒrrŒyy†yyŠzz}}Ž}}‰ss’qq‘tt“ww•uu”zz‘yy–zz—~~‘||”{{˜}}™›}}š„„‚‚’‚‚•††•„„’š‚‚††š……ŸŒŒ–‰‰šš‹‹’’œ››‡‡ ‰‰¢¤ŽŽ¥¦ŒŒ¢‘‘§’’¦’’ ““¨‘‘¨——«””©——¬››¥™™«™™¬››®¯œœ«žž°´££®  ¢¢¢³  ²££´¥¥²¥¥´¦¦µ§§¶¨¨·ªª·««³««¸©©¸­­º®®»¬¬¹¯¯¼°°¼³³¾´´¿¶¶¾²²»¿¿¿¼¼¼ºº½¶¶À»»Ã¹¹Á½½Â½½ÅÃÃÃÀÀÁÃÃÄÁÁÆÅÅÅÅÅÆÆÆÆÃÃÈÄÄÉÇÇÈÇÇÊÉÉÊÉÉÊÊÊÌþQ…Ú¤ˆ!?a 4YR¤H‘"EŠ)R¤H%LøxÊ…Š£\Ç|õÒ¥k5pâĉSç*”§M‰òÆI“%JŠ)R¤H‘"EŠ(Q²¤ ˜0`üäŠm˜.]äuNºX¨Byb¤H!>Pš4Y¢¤H‘"EŠ)ÒB‰’%Kš4BèØµhÂKF­8têÔårUÊ“§MŒ ã¤É’%EŠ)¢„ $X,iÒŠŸ\Ñ®QS6,µoàÀ‰÷MY0\¨P¡ µ)‘Ÿ0`š,Y¢¤ˆ4 @  &aPE»vZ3eѨQëÖíµhע˅KW.TŒþù ãdÉ’"EºHˆâ?`üô)Y·nÔ¨QkÖl5€Ô¢5‹®µaÔ%ÓŠ!>`œ0qâ¤Çi~Ô¸çÑ´Q€’\·hѨEkFmÛ6pâÀ]£¶­ÛµdÁ\m"äÇ%)¦94çÑu²]ä 8pݨES–lX²hÛ¶'\7pàÀŽZ1_‡LLØàFω;‚¢´¹2,Ê¡4Ô¶EK6LW.\º‚%£v œ8tâÄ¡C§Ž|øü"”(£MŸ‚ Àp€ALxРAtJsˆ 38 0¥>|øðáÃ(P @RÔ!ƒŠR@ð ‚ *”ˆ@ÆœK£2ÝÁ“¡‚ AàáÇ>|~üøñãÇ4 Á @€àÅš1¥¡2LÀð>|øôé &L˜0`À€‘@`„þ @€V]qñF‹†ÜœˆQJuøðáÓ‡OŸ'Mš8qâ„  àb b˜B‹•­?ÌÈA4…‚ @Ú,§~)R¤ê9:\‚Å@R«$hx£þ§Œ’Ì8S‚œ@Œ6¡Ê¥kX>1 •+—L;€‘#¨ ©ê Èñ¢Â[²ôt@bÅ„/…Šå*—«MŠüJÄh*\¸¨PâBœ5"t<°ô¦è\ºdKŠ"Èй² ×&BžPù C(‘£MŸB• ¥%K $©¢AàÃ# RÁBé-U? Á€G’R„„AãM“OžB• åéÓ§3%Ѐ¤ÉVy=xð!Ž"A—d ê O‰9[|ø& ?aœ0BåʪMŒ ú`Ç–)¬Þ€hV…Ì|dH%DˆâРb&Èþ0`ÐøñÆ £R®J1"D(ѧ2D1ªŠ7³r<ø0§R%9ˆÈ úR%ÊI’œ@3 'M<…òä(Q"E›B™Èa ˆK™.Lx£‚…rܸҢCJ— QfÁŠÓ (Pœ4a‚ •§M›>y åIË à°âÂcˆ)xÈDÉÇS¬ò1ŠR™0aùá ]¸P…  •+W”xD‘ SPì±Ð Â–5 ²P¹rfΕY’\yò„êT§@|ÂP‹6,˜®\¸t ›fÅŠ2”&ÐàqhTFdÈ% ¥ G~\Á3MY2]¹\ÅÚäGœ8qþÛ¢ Ë勚ºX«tIb† (|\jÓƒLH/Èœaà!EZר)ÓåÊ•+W¥Ôwm®\ɨ±ç%M•#RlÁ’ž-RîÀ˜s$Ê&48»mX.W¥B• uíš²c¾r ‹†ŽÞ=@rÊØF–T•Iá‰3W²ˆ@dÚµf®B¡BUª*]¹†ùÒ5Œ:x÷èC(&DˆT¦Ç RRÐjC‰GIÉ” Ãå U.\±rÅÊ¥K—®dÛбS·š *Ø1%¤K8"ˆè!%Ž!9¦èvl®P¡bõÒ•lX²fÔ¨Q‹&Ú°P±\þ%Ù@‰%‹ÍW‹ Ü)ÓåÒDP°’+Y2_¹rùJMY°aÝÔér¥k˜.G„ùñCHW³hÝŽ%éñ€† 4qàt@Ð勯mÝ¢ù ¦+—®fÛºm»Ö •.jÔ‚åÚä ”0‰BåÚ¶ÎÙŒDÄYþCÂ@×èÁ£¸nÑtùŠ®µmɨuÛFM—"4` €ñ³)X´këÆÙ©BJœ$iF•‹/ž=|÷رC-X2jÒ®}»@uº>ñ &ŒF¡\åjÖM»uÆd s¶®]»víÚÁ‹wïÞ=zêº×­8xôØ)cä ˜0mòô)”®h×À±‹¼xñâÅk×®¼xñîÝ»w=xìÔá£N—¢0`Àð!D(Ñ&FŒPéRÖMݽ{ñâÅ‹/^¼xðÚÁ‹/>|øðÝ»w¸\¨¡ †?~Jô U²nìèÝ»w/Þ½{ñâÅ‹/>^¼xñâáÇ>|ÔPybä'̘0a„AƒÆ¢PºÄÁ£wï¼{÷îÝ»/^¼xñâÅ‹/>|øðé !ù€ ,+@‡! !""$!!# $""&%%&""(%%)&&-**.**,%%1))2--2--5**5..911611322:22=55955>99=66B66E33B66K99A::E==F<>J;;L44Q77Y>>P>>Z>>bAAFBBNEEN@@IHHNBBQEEQFFVFFZBB]IISJJULLVJJYMMYNN^JJ\QQ^RR\YY]FFeAAnBBoLLbLLjCCpGGrEEqIIrJJuLLvNNrOOxRRaRReUUbUUeRRjUUiVVnQQnYYf\\dZZiZZn^^j]]nRRvTTsQQzSS|UU}VV~^^r[[tYYzXX^^y^^|ccoddmllnbbraaueereevbbzffzee}aa|iiuiizjj}mm}mmzqq{||}ZZ]]ƒ^^ƒ__„bb‡aa…dd‚ff‰jjnn‚mm…jj…iiŠjjŒiiŒmmŽooqq‚rr†uu…ssŠuu‰wwsszz†yyŠzz~~qq‘uu“vv•vv•yy–zz—~~‘•yy‘{{˜||™~~š~~š‚‚‚‚’‚‚–……’……•€€›œ‚‚ƒƒž‡‡™……ž‡‡ž‰‰–ˆˆ’ŠŠšš‰‰’’ž››ž‡‡ ‰‰¡ŠŠ¢ŒŒ£ŽŽ¥ŽŽ¥‘‘§’’§””¢““¨••ª——¬››¤™™ª™™¬››­¯žž®œœ©žž°¦¦§¤¤­¢¢³¡¡±££´¤¤³¥¥µ§§¶¦¦µ¨¨·ªª¶ªª²««¸©©¸­­º®®»¬¬¹¯¯¼°°¼³³¾³³½´´¿¶¶¿µµº¿¿¿ºº¾¶¶À¹¹Â½½Â¾¾ÅººÅÃÃÃÀÀÀÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÇÇÊÈÈÉÈÈÊÊÊËËËÌþMÚÄÈР@e¤P˜Ðãž3C¬@Z´i8pذa{öl6€Ø¦=›&¶cÇ–1ûjÓ ?c 4ibÄ JXzÀÑç—¨E†–‰'N\8jÓ¨Q›†­[·råÄuÃÖ­[¶eÅLm2ÈС+òdŠtcEL©>pâtLœ8qà°M{¶lÙ²iݺ‰WN8qâĉ'Û±_g<Œ`%E¨)9~XY³ ‹%;غacvì—/_¿Š-ÃÖM\9uêÔ©+·®ynÝ⃊ΡSpø8±Å”©WǺ‰ פI“&Mž´|ÂEI4d(:tˆÒ…HSFäõc$;†Ê)3HÍ“N:"Õ‰S§+ á‘@  Dp ±‡M&Z”fЪ„âǤ{ˆˆ3¦ÌŸ@jž82%ë©MÝÐfðQB’^Š ­HrrÀÑåáKþ˜1cÔ ¤æ‰#S¯H92dˆ§¶˜r€‡ ta•*Ñ!Ek2¡±£BN&9ÂH3f (O:uêôhÑ"Gœ@¡€#Dž  ,pà ¤T‡ÖP¡rHÇ)+âLIòDÊ)R Þ;zôðíÛ·oß¾{ØLur¨L™2eÊ”Q£&Ð"PÂʵ»wïÞ½{÷îÝ»G=zôèÑ£‡ß¾}ûöõ !ù€ ,+@‡  !"#%!!#!!$""%%%'"")%%*&&.)).((+''1))1++5--2..5..9**811611922>55>44999>66B33A99B::E==F==B::J==I??M99L33O>>Q99T88Z55V??jAAFAAJBBNFFNBBUEEQDDSDDZIISIIVMMVJJYJJ^MMZMM^RR^SS\DDcAAnBBoBBlMMfKKbIImKKlCCpEEqFFrIIsJJuLLvMMsNNxRRaRRfUUaUUfVVjVVnRRkYYeYYiYYm]]j]]mTTtSS{QQzTT|WW~TTzZZrYYu^^q^^vXX]]zaanbbkccgbbrbbvffvggsaayffyff}aa~jjuiisjjznn}kk|qq|ZZ€]]‚^^ƒ__„``…bb†eeee‰ccˆjjmm‚nn…jj…hh‹kkiiŒnnllŽoo‰ooqq‚qq†vv†wwƒrrˆuu‰vvyy†||†yyŠzz}}Ž}}Šss’pp‘tt“ww•uu”xx–zz–~~‘}}”{{˜}}™~~š„„‚‚’„„”š‚‚……ž††™‰‰––ŠŠ™šœ‘‘œ‡‡ ˆˆ¡ŠŠ¢‰‰¢¤ŽŽ¥ŒŒ£““¡§’’¦••¡––§““¨‘‘¨””©——«••ª——¬››£™™¬››­œœ¯žž®››ªžž°££­ªª­¡¡²££³  ±££´¤¤³¥¥´¦¦¶©©·ªª¶©©°««¸©©¸­­º®®»¬¬¹¯¯¼°°¼³³¾²²½´´¿¶¶¾³³º¿¿¿¼¼¾¸¸¾¶¶À²²Á¸¸ÁººÂ½½Â¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÇÇÈÅÅÉÉÉÊÉÉÊÊÊÌÌÌÍþQòĈP¡?c¦b¢<9aÄ.B.¡1cÎ#S–‰'N\¸jÔªQ£V-7qåÄe»– ܵeÃZy"ôçO œÕÀ°‹#. eLœ8qà®Q{¶lÙ²jܸ‰WN8qâĉîÚ²]p@H²çK/]´|øá¬9ײ]cf X®\»Œ-»ÆM\¹uåÊ­[×=zðÊ}™°#‡=´|ø ãcHrºd9nY.W¨F‰µkÙ5náÄ•[×®Ý;zúöíÓ—¬†C \ þ+I49"­‚æL’Z»P%jª\ÔÀ‰N\¹ríàÑÓ§oŸ¾CIК`ÃKZ,èð2É„7\ÀflÀaÆvc®\;pàĉ·îLðˆTbF‰/ @°aƒÍ9tèìÙÛ·oŸ«]»€-–ëCJå0Р_¾J•‚³$ˆ N3JtYPÀ¶¡“'Ïž¾}ûrå:…j×0`»„Hàщ‚ %„$“¤éÑ0‰®¤Ùð–@€à :tòìÙ³·Ø®W­N¡rµkÇMtÈTôX¥is&S+;B,(°`Aƒ²Ð¡C'Ïž½}¯\¡å‰Q£V%j¡`` 4 ¶°‚¥É¢:Ñì¡"¤A† DPàƒNž1ªQ`‡†\>(pÀ 6³4 Á þÉÖˆ,Y±€GA<µÊµËؘ>‚1•+š=xà2¡À :ìádHÒ$NªJx9d‰Ê 9ºŒzåêÕ«FŒúbÔȪ\·¸xé 'Çž  PX Q%DrFðHâb¢K&‚x‘Cå–'BžP ÈQ#O¢FÄÊ+(ÐàÁ‚—ÌØ¹â ]Õ±Áœ3ŒÆˆQó§ÏQ¢D:%J”¨VV Œ` Àà‘$I±8•Øaé.=¨#fLŸ?j¢4BåÊ*Ož< ªÁÃÄ.hÐ`N–$­Òë•/Y&YùpaËþ1búüù£&J#T®P5"Dˆ¨ @&Ô˜P`Á‚ðÌ’dh«X–êìøbH <žL3FÌ”(OD‰#FžF(0b 8@s…Ö!,gøp:ÔEˆI¹ñdŠ˜)S¢Ù®QæÊ•+W£Ú•—mØ«\ƮѷF‚‰.ðá‘c‹—“ö$ùñ#Ë tæøÊvÍX.W£F:•íµeÀz£¶Ÿ¾D 0ì0Ížt˜™Ç,U~ ƒˆZ6f®F¡B… ª]¹ŒíÚeŒ[;zøð9›pÁ€ _4š³ "*hæÔP €™V˘»% U®W¯n½ÊµkW.cÙÚÁƒÇíÚˆ #<˜²ç–,K$É9tfCŠ4Ö[¶ÌØ­Q£\õÚeÌØ2f×®]cVš±Q¯JþmØ dO¤.s~h˜¤ÄI]xÔøbj³gÔ®Ý5j5nÙ®+'ŽZ.€ž ÄÈU öÄR%Ë®D°qGƒ `Æ–1{FÚ°V§€]8qàr5$è!Q»œ±Ð$ÖM>@ƒƒ²{¶ÌØ2fËŒår•‹¸kÔ˜9&JÐBŒ<-»FM˜ ižTÒP ˆ "”HblÙ²]¹r [FmÙ0cÜÚírlÙ®F„ýùCh×3jà|‘øpL„( iñ‘„3nਠ3¶k×®gÜÀqãÎÕ®k׆åòôGŒ5„Nåo[o:\ðþ"Ì’2ÙôÑÓG/\8pÔv «7nË®qãvmW£1S¦Œùãɵlðι¹1‰–3QJ¡³§ÏÞ¾}øàÅ[wͲjծˮÀv»Dý#fÌŸF¢^åz®=yÑ„ù‚&Ož|ë‰\8xôÚ-kô'Œ˜1‚yjÔ.jÜÊÁ³gž={öìÙ“'Ož<{öôíÓ§>zðÚíÃnW£1bÂôDˆQ£FPíz®>{öìÙ³gÏž=yòäɳgÏÞ¾}ûöéÓ‡ž¸\¨©3¦ÏŸ?b$ªÕ2pðôéÓ§OŸ>}öìÙ³gÏ>ž={öìíÛ·oß>}×Pjôg̘1cÆŒ£æ£QÃÄÑÓ§OŸ>}úôéÓgÏž={öìÙ³gÏÞ¾}ûúõ !ù€ ,+@‡  !"%!!#""%$$&"")%%*&&-##-**.**,&&1**1++5--2..6--8--<11622922=55>66;88?33A66A77E33E99B::E>>F==C>>I>>M99J22L55P??R;;Z>>cBBNEENAAJBBQEEQFFUCCTDDZIIVKKSJJZJJ]MMZNN]QQWQQ^SS\EEcAAnBBoDDmJJcNNaOOeIIdKKlCCpGGrEEqIIsJJuLLvMMqNNxRRaRReVVbUUeRRjVViUUmQQnZZeZZcZZjZZm]]m]]iRRvUUrQQzSS|VVyUU}VV~YYqZZu^^q^^uXX^^y]]~``nbblaarbbvffreevaazffyff}aa}iivkkrjjzjj}mm~nnzrr~ZZ]]ƒ^^ƒ__„aa†ffddƒff‰jj‚nn‚nn…jj…hh‹kkˆjjŒmmŽnn‰ooqqrr†vv‚vv†rr‰uuŠttyy†yyŠzzŽ}}Ž}}Šrr‘tt“vv•xx–zz—–||’{{˜~~š||™’……–„„“šƒƒœ††™……žŠŠ–ŒŒ–ŠŠ™ŽŽ™ŽŽŠŠœ’’ž’’œ‡‡ ŠŠ£‰‰¡¦¥ŒŒ£‘‘§’’¦••¡““¢““¨——«””©——¬™™¢››¦™™ª™™¬šš­®žž©žž°¤¤¬¨¨¯¡¡²¢¢³¡¡±££´¥¥´¦¦¶¦¦²¨¨·ªª¶­­²««¸©©¸­­º¯¯»¬¬¹¯¯¼°°¼³³¾²²½µµ¿¶¶¾²²»¿¿¿ºº½··ÀµµÀ´´Ä¹¹Â½½Ã¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÉÇÇÈÇÇÊÈÈÉÈÈÊÊÊËËËÌÌÌÌþM…òäè!Af¤Õ¶E[FÌ—.]¾†-«†-¹täÈ¥KÇμ|I'Ä +œl ñÓmY.S¦J} ¥kYµnáÂ¥KÇŽ];y÷öí»×Ì‚ h¤ºþâ#NI1ŽTªÄÊ–Z¿L• *”)_ѺëÖ-9rìÜÉ»woß¾8jx@ƒ+› m±â‚Rµ A²øøElÀaÃ| cÖ»mÛº… —Ž;yòî! ƒÈ…HìĈñ Q—)1f½2`ˆLÕªU«-Z¸tîäuë.\¸tìܽcÇnQ˜9¶(šr`†¤M›R,ÂÂgF’y'Ï»tìÜÉ»'\·päÒ¥c׎]¸YeÒxˆce œ6‰˜ô`"8ÈÆ‚¶}ûîÝ£G=yà°a뎹páºåa¤¤ 02èà´Éƒ@ÐL‘°þ€D)^Ñ£GOdܺuëÒ,5(²pÁ4hðãØ¹sðàÑ÷\­L™2åkGŠT1P‹ÁaF°`ˆ½’ã": ¤8 a„²Îƒ=z¶`™ åÉÑ£V6LTˆqlË0=ªÜRkV,)ê|ð@@xèï…2õÉÓ'D(°p€Á2¾Ôi£"Ç,:$m‘óë"*VN(3ÆŒ A€ <2«•)O1‚ã B@q¢ "D¨8Í’4C £jYùÐÃCþ˜1cØÊ#S­J9:tÈѧWLppàÁ†Aø ª„hU!;[èà˜tÉG 5& H3fŒ(O>…ú‰£GžBÕXàA€ vÈQ©FŽš4aÉA]ÔL±ðDÊ)P } êH   ]Ôd¡Óƒ’Z’ì“¥3l dfŒ_ºZ… ÊT«V£¦àè0øÁi RÁr Ÿ6.…údŠÕ'B€Ì`‹Fì—/]º|‹†(Co*8@€Áƒ>y(YPA¢OŠFÐðàÀŒÙ2_°ZÁò$ˆ¹pþÛ˜ ÓE [º_E”¨BÎ ¶¼é*ÏŠ6zô˜‚… ?تEûÕÊT«V¡Ø• ‡,]˺¹c'C)òШ‡¥Xq’ ‘“¦Îža|$Ã-™¯V¡B™ …­Z´e¿|‹–ÎÞ½),è°g‰sRQâdQ8ôHs§¶h­B™2UÊT)_ºˆýòe [:y÷ìÝ"AÁ€ 0–ÚˆéF>j€¡Ž[Ę%ÓõÉT.X°tµÒåË—/bÛÒ¹c·­ÚŒ5¶L©´)‰JtÞ¤¡QAƒJäø"FŒX®R¥ZéòEŒØ2fتa‹V­±P­4þ‰P°…=ôP‘K )ºÄÉBjØ2fѪÁòjX´mÕ°u G.š.€Ÿ"䨕"p´éCHˆ ÄàP"GE¿–9sÍÙ/S¥|UëÖ­Û¶nÝt="$ˆÐ¡Oº˜™à$ €Á†1Ö,sÆÌØ2fˈéj嫸jÑ–ûõé BŽ>-“&M˜#a¾@€À&$”ÀClÙ²_º| [æŒ1cÛØùjåk™¯G‡ tÈW´hÝYÀa…)R˜@£N´mݪ #æK×/gÛºuÛÖ­•¯jÕ†éò$hÌ3ŒJéÚÖîÙ‰.&r00þ¡$Œ7ØîÉ»'/\·mÑ~ýŠ®[µjƪuëVÍ#6c¤ŒäiX4líÊu*¤É•(„^•£wÞ½}÷ܹc'˜1iÒ°Ã.@v¾> 23ÆŒ G¥`ébÖ¼vÏnùª..A33A66A77E22E44N99B;;F::E==F==C::I>>I==M<>`BBKAANEENEEKAAQEERFFUBBUEE[IIRJJVMMVJJYJJ]MMZNN]QQ^TT]XX_DDeAAnBBoCCjNNaMMdIIbLLkCCpGGrEEqJJuMMwNNuLLrNNxRRaRRfUUaVVfUUjWWmRRlYYf[[cYYiZZm]]m]]iSSrSS{QQzSS|UU}VV~WW{]]q^^vZZsXX]]z^^~YYyaaneeoaarbbueereevbb}ffzbb{iivlltiizjj}nn~mmzqq}ZZ]]‚^^ƒ__„aa†ee‚ff‰jj‚nn‚nn†jj†ii‹jjˆjjŒnnmmŽoo‰ooqq‚qq†uu†tt‚rrˆuu‰vvqqyyŠzz}}Œ||‡qq‘ss’tt“ww•uu”xx–zz—~~‘yy{{˜}}™›}}šŒ‚‚‘ƒƒ–††–††’‚‚……Ÿ††Ÿ„„šŠŠ—‹‹”ŽŽšŒŒ’’˜˜œ‡‡ ‰‰¢¤¥ŒŒ¢©‘‘§’’§““£’’¨——«••©››¥™™¬››­¯››©ŸŸ°°¢¢¬¢¢³¡¡²££´¥¥²¥¥´¦¦µ§§¶¨¨·ªª¶¬¬°ªª¸©©¸­­º®®»­­¹¯¯¼±±»±±½²²¾µµ¿¶¶¿¿¿¿½½½ºº¿±±µ··ÀµµÀ»»Ã¹¹Á¾¾Â¾¾Å»»ÄÃÃÃÀÀÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÇÇÉÉÉÊÉÉÊÊÊÌþW•ÅèÐ!BhªDyräÈ‘#GŽ9räÈ‘#QÚ„êµ ¤YÊ„ùòå˵pãÆ¥K«T(PŒ"„FJ”'NŽ9räÈ‘#GŽqòDJ4fõ¢͘/_Ƥq .»Y«J…’Ĉѡ@U¢DyâäÈ‘#GŽ9r䈓'O¢D)sHµhÆ„SF[¸tìØõе*T(PB#%Ê“'GŽ9âĈ 1’ ‰¥ ¡^Ñ®Q[fL™4ná nY±Y«P­ Š!4e¢×´E[¦LX¯^¾Š9£¦-ܸt鯥KÇÎݼyîÂ}ÙâAŒ+(f(ÑP€GN(v$ù£MY¯U¨P…BåK5nÝÂKǎݺyøôéÇ̆•±þäKYúpb¡†ˆNÂV•*… •+_͸qãÆ-ܸqìÜÍÇO>? ðãÆÊ¥DD”ˆÀ²II‡M. (V¬@cÅ|kÆm;mÚ¸… —Ž»yóê][ƒ¡€ -:¬4ZÔ‡Ž…¸0lèФ `Ô¨Q£&M·tóæqãn\¸tìܹc7nYðQA§¢.›rØÉÁ‚4 bçÎÝ;vìÜÍÃ7¯[·pãÒ¥cçŽ]8cT<´cg%Dw8Ù¡Ãi‰ ÐÀ  :}úôá›W¯^½yݨQãnܸpá¸Õ2‚B‹`ˆ„At +j(Lð „þC LLÕ«Wo}úzñ*µJ˜1aÂì4P„Û ¬1ô%Ë1¦ì8€Ð @ð’ÉV¹rðêÕ«§O˜¯Y±V­ŠåëËž^ÕpÁ‹›iJ踘‰ƒ3.D€Ð‚ N{Ê•+¯^½z³b­*ФX7PÄ!‚님,_ƸjQ ÁD˜(@˜qB,2pŠ}ú :Ĉ$PBÐê& *pqRô  èÁB¢ztAô ž>}úôéÓWˆP¡B…:d"ÀŒV|ô ؃ ‘E°Z è ”$ÂÑ£ JÈÖéÓ§OŸ>}„ "$HP 40$Ô DŒ “\!Ó(dØ„©O?t¬lB¶NŸ>}üøñCƒ 4fÊ”1ÂÁJ & þñê–—.?<8€%6j²ì¦¦yúôéÓ§OŸ)R¤H‘"EJ“.zèü™P €Š[5jàÒgD!ÈÀÐQ1I˜+=PDÇÎݼpéž}øÜ¹cG͘2jÒ¨u»Æ-Àt¾@ BS F¥fñjÆÝ¼uÏt›¶¼zðàÍ«‡¾{츅 ×[·yóÞ)ƒD¨L4… ª”¯hׯ¹«W¯^½zõêÕƒ¼zõðéÇïÞ½{îÞéÃ×Í#4eÌ*tˆ(PVõZÆÝ<|õêÕ«W¯^½zõàÍ«W¯ž>}úôéÃwo¸^«µ1ƒ& A‚ b*–²pîîáÓ‡>|õêÕ«W¯>¼zõêéÓ§OŸ>|ÔV…‚$4hРiÓF£RŹÇ>|øðáÃW¯^½zõêÕ«W¯ž>}úôé !ù€ ,+@‡! !#%!!#!!%$$&"")%%*&&."",)).**1++5--2--6++:..9-->&&233722922=55:55>99=//F55A33C99B::E==E==B::I==I==M22N==Q<<]55R>>hAAKBBMEENKKOAAQEEREEUBBUFFZDD]IIRIIUMMWMMRJJYMMZNN]II]QQ^TT^XX_DDbAAnBBoFFnEEkIIaMM`LLfLLmCCpFFrIIsJJuOOrLLwNNxRRbQQeVVcUUfRRmVVjUUmRRjZZfYYbZZjYYn^^n^^iQQrVVrTTuQQzSS|UU}VV~ZZv^^q\\sZZyXX]]z__|bbnaalbbrbbveerffvbb}ffzcczjjunnujj}mm~kkyrr}ss{ZZ€]]ƒ^^ƒ^^„aa†ffee†eeˆff‰ii‚jj†mm‚nn…hh‹jjŒmmŽnnooqqqq†uuƒuu…rr‰vv‰ttzz†yyŠzz}}‹~~Žqq‘ss’uu’vv•uu”xx–zz—}}’{{˜}}™~~š‹”††’……•’€€›ƒƒ€€œ……ž‡‡˜ŠŠ•šŠŠ›’’œ˜˜Ÿ†† ŠŠ¢‰‰¡ŒŒ£ŽŽ¥¦ŒŒ¤‘‘§’’§““¡’’¨——«••©——¬››£˜˜«™™¬››®šš­œœ¯ŸŸ®«žž°££«ªª­¡¡²¢¢³  ±££´¥¥µ§§¶¦¦µ¤¤²©©·ªª·««³««¹©©¸®®»­­¹¯¯¼±±¼³³¾µµ¿¶¶¾²²»¿¿¿½½¾»»¾··ÀµµÀ¹¹Â½½Â¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÇÇÈÆÆÊÈÈÊÉÉÊËËÌÙÙâþS‘õ(Q!Ah¨DyräÈ‘#GŽ9räÈ‘#OÜ€Ò• $YÊ€éâ̘5qäÈ‘S‹Ô(IŽ%"„fJ”'NŽ9räÈ‘#GŽqòdŠ3gé²Fد_Ĩy'N;Y©H‚ôèQ¢@T¢@yräÈ‘#GŽ9räÈ‘'P¢D¡’ˆ˜5jȆ Sf œ8uìØé‚uj(PB3%Ê“'GŽ9âäH‹.Z ‰… !]Ô´YcFLµpäÄ‘gŽÙ0Y©R¥"Ê‘ 4f¢@®TþrÅÄ>œÖ`°ã[¿R‘:EŠ,]ϼ‰N9rìÜÉ»wOŸ>/ °Ña‡‘+0|hâã`‚FPFlÀaÄ~ cæ;oÞÀ‰§®;wòî³ÀF#&j0êRCĤ v¼É4Ã[Ö¬Y³F­8uîä'Žœ8uìܵSGî’‚ohø0ðѤWh0HðFJÆÐy'ÏÝ;vìÜÉ»'/\8qêØ©cÇŽ8dd´Ñòå ;¦Øˆa!Á:I($ѦH4}úîÝ£G=yá¬Y'Ž9râÀ¥ÂObÔºôEÆ °ÙbÁþÁ6Y:Ñ£GOž<( áΖ!a˜ÑÂݹsçÎÅ‹^;uÚ†¥•*•.`  Ña¡FF"Jøà“ €5î”±Õà0¨skR´sñèéÓ§O¬_¼€)#ÆK(&ô†Žž!Šh™êt%A,À°)±€Á Lxp‹ž>}úté:•ê1`¿.±èQçÇ2MØpèãj–¡=$H0Á+1*˜ ÄHÕ¹sñèÑ£§Ø/Y°R¥‚õk ›LqÂcÊ<´:Õê A‚hÑÁ€£9•Ћ=|ºd¥"ê¤TK<ÔÐÒJS/Š€ÁT«’ŒT˜O˜0]’/^sâ$0 @bª¤0aª‘"xôèáÓ§Oß#H’@EŠÔ vÔÐé”@€€[渺Â@€´PH¢ÆYŠÑÓ§O?}ú JäÈ$P’Fp`ôŸp¨C#Œ$øQ%Œ Wøàá´&ž>}úôéÓW¨P¡B…%J¤b-J­v4!¡Ë•6( ŽZ_æÈø"¦Ñ8XÐéÓ§OŸ>}„ DHP 7(*}é¤ÉÂ!:é @@‚&¾à©Å©Â—9wÔ”¹‘NŸ>}úøñCƒ 4hÌ ©RIO+  þYu „ Ä™#ƒ£;W@\ºÄ‡vúôéÓ§ß”)S¦D‰2JW•þHð  (PÀ!Ÿ%½QÆÐÂP#ÇÎ;qêž´À€PV*Xļ÷äÉ“'OžD‰Âf“ $Ø#bÖ—%JtÑ(ŽªUÂL´ªå#A‚.‡ ="EÌ›¸'OžD‰B -HpbÏ&>˜&¬a@„M­6Í&¬R#ZWbX°A(‘#RÀ¬‹BÅ 7‚ 9º1Ç@‚*MÂÃèË2LTh…þë®Y].5JÁÈB FÁÒõ‹š@…A"¥KWF$¨`gO "(<¨T =sZa*Q‰I;ðÊK–,Pr Ô+]¹ÔTa @s:ˆp  H¥ fø¨ƒ  >@€hº¢%¨G H B“È$P H‘"•J ƒ&*Ä`cÃ7=XàÅ„ Š4ªäã£,‰Ð˜ASMP£F‘:5 (R­>$ˆÁ#…šF6:”°±ˆD‚J0˜ÀeK µ1cM An¢@J% Ö)P’ ºQC€‰öi5çJŸth$˜äaA $ªTù²`Nþ3gÜä& ¤T°RAJ”èÑ( %t€EŒ9œ0…¹¢¥‚«Wæà11¤Ä>¦P1cÆÌ”)QF‘%É‘#H H-QP €(¾¡„ǘ->þðù&Œ@80È…Š*S¦D’*Õ(P F"EjN‰p80Pç ž*€øPÓÄ6l:̹²€4h „Æ •_ºR‘"E*,X¯,ÄÀ‡€ ÀÄp br\éãcŽŽR‘•*Õ¨BÐh£F Ø/]¹~£VB‰xØQIE ,î€Ñ3ÇÆœl}÷ܽSG˜2jÔ®…Ó&Ž@u¿@ Bc G¤dåb޼vЄ ƒÖ.^}úôé»gïž8]©¡Aƒ& A‚ %z4J–2qîìÝ»wïÞ½{ôèÑ£G>}úôñ !ù€ ,+@‡  "% "!!"""%%%'"")##,%%)&&-))-''0))1--6,,3..9//?**911511:22=55>55:99>55A77F33C99B::E==F==B::I==I>>M99L44L>>S;;[55Q>>f;;`??jAAJAAMEEMBBQEERFFUCCUFFYCC]IIRIIVMMVJJZJJ^MMZMM]QQ^UU_RRZZZ^CCbAAnBBoCCkKKbMMcKKkCCpEEqGGsEErIIsJJuLLvNNtNNrNNxRRaRReUUbUUfRRhVViVVnRRnYYfXXcYYiZZm]]k]]mVVrSSsQQzUU}VV~SS|[[v]]q^^vZZqXX]]y[[{bbmkknaaqbbueereevaaybb}ffyff}jjujjyjj}mmzmm~qq}ssvZZ]]ƒ^^ƒ__„aa†dd€ee‰ccˆjjnn…mm‚ii‹jj‰jjŒiiŒmmŽnn‹ooqqrr†uu†ttss‰qqŠvvŠvvzz…zzŠyy~~Ž}}Šppss’rr‘tt“vv•uu”yy–zz—~~‘{{˜}}™›}}š‚‚’‚‚•††•††“š‚‚……Ÿ††™‹‹–š‘‘œžžž‡‡ ‰‰¢¢ŒŒ¤ŽŽ¥¦‘‘§’’§••¢’’¨——«••©˜˜¤˜˜¬››­œœ¯žž®ššªžž°¤¤­§§¨¡¡²¢¢³  ±££´¥¥²¥¥´§§¶¨¨·ªª·««¹©©¸­­º®®»¬¬¹¯¯¼±±½´´¿¶¶¾±±»¿¿¿½½½ººº¶¶ÀµµÀ¹¹Â½½Â¾¾ÅÃÃÃÀÀÁÁÁÆÃÃÅÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÆÆÈÇÇÊÉÉÊÉÉÊÊÊÌÌÌÌþ_¥"I¢Cj®Hy’$I’$I’$I’$I’$RÔòõ*Ò¤^ʈ LÙµpâÄ¡Cg+Õ)R):¤†Š”'I’$I’$I’$I’$qò„ 5jùªFí±`Ǩq Nº[¯R‘š)’"BW¤Hyâ$I’$I’$I’$‰“'O¤H¹¢HÙ5jÊŒSv­[8qêÔù²Åê”)R“"!RCEŠ”'I’$IâD†‹/\<‘"å "_Ô²]c¦LµnáÂ… î™±[¯^½JEê‘!5h¨$6ðÐ1c•,KFÊ•+×Nž|ø!RôèÑ$R¤Tฃ#Á‚Ê|â”…€4ÚÊsƒ‡LŒî„bƒ£>|øðáÇ"Dˆ)R¤%Ÿ; ,˜ %‹(!xè†I²]Z.ÜÅ© §/4ÞáÇ>|† :dÈ!8AtŒ©°`Ae¸„°´ÊÏ›=–fÛãÀNžKŸ™™ñ>|øöíS£F5hÐHÁ¢EH‚ ÀÄþâƒEB…=ŒÈ‘i§0¡ô0úÃÅÆwøðáÓ§Oß•+W¤H‘BEJ N$,0‘çO. عtG‘;¡øüaÄÈN">Q§Ž»p螉ºQ¦Œ¥Y7jx(’ÌÖ+[ǸuëöäÉ“'P HA³Gex9€!D‚wú"â L€x„*1ÁC LˆEJeŒ¸'OžH¹rE¡N”ë’-ÄÁ¬P–@éâäIÌ%8ÐcH‘¢TĨu“rB†Eº$!0€°t¡A €– jÄ¢5þ+­\~.qð°aŽD“HÙêì˜BˆM:åË£ T‚ƒdÊ,XP#”®]»rÅú¡%p¤êe«×­I‘ !z‰Ô«[·ò| €@  °&Áº@ˆÊÅ$מÀdñ‚Ã)E§^R£èÑ$R¦R±Jõ(A0€üx@B¬>hÙ%ÄÆ'/³bñxP§N–ŠÔ¨QƒHR§N¥buÊ”©H3¢$!ö\ªà(£K±r¹1S†† wØ4AƒF !Cp¨zeË+R“&5Â’@ŒŽŽ  EÀÌÊÅÇ eP`Y`)Žþ4h2¤†Ê¤W¶XMR¤èÑ)¨ "Ž—Zì XÐ'V¦2ŽHtY2aÌ1Y¤\A£Í*RN¥:EêÑ£I¤RÝ `"„„:{òpú£eIENаÓåF"Q!å š+T¨HyòêÕ)R¤NJ•ÊMŠ^˜¨Pf !Y²LdBÈ%-%pðذ`Á5j"¤Í•`½^¥J•ê•-[šZàXR!A¹î„Â(Å,-Z´x¨@Ç 3:¥:õê•)D„Ô\£vŒX0_½‚)›ÆÄ †$Hpa"F@ú‘B…Ž<,¨C™2_¾lÝ2eHœ¸pþÜžëEì;Kaøá€CK¨6¤°Dˆ ¼<$FÂ@Ù®=#vë•-[©Ô‰#—ÍX/_ʺ±‹¦ä 7ŽÄ¤∗ZJÀ Ã(;8*ìúV혯Z©R½b•í5eÆ‚›†Ž^=3Jš„ÒECX:Üx@#…5ò¨€0£Ú5e¶R½zÅŠÕ«`ÄŽ v,ºwõèƒãÒ§6<Š`aÒFE‰:fVTàQ'€LÊ”ëuêU¯[·zÝòE,X0bÜбSÇíÚ%YBø¨€ 981Ú¤E„:S¦ìX¯T©lù vì˜2f×®]£FÚ±T¶8þÁhÀnxHÀÁ† *T(É3fÔ®Ý"•*3nÙ²u '®š/€§*!B4É–™ Ì¸ÑâÂ,Ê”)cFí™±W©ˆ]ëÖ­[·nÝ|MZ„‘¢SÀ”Q`‚T(@A 8˜0›Æì˜2fÊŽù²Œ[·kÔ”#vJÑ!E‘L)£6mØ@€<ØárL™2b¾|SFÚ±cÜÔ³ìX°IŠ2¤(Ø3jÝ’Ù€¨h§5nݨ3,X°gܺe»ÖÍV°k׎ù"EÍ5‘Xùâ¶®— "€Éþ²ä •Zë꽫÷\·nÓ‚›ŽÛµkÇ®qã–-Ø$5W¨ 9DʵlëÖÍÚ!åÌ+gV­“'O^=|õØ©C7ÍØ±kÓ²ËÖM@uÁHRƒF¡H©nùbÖMÝ»wÕv ƒÖ®]»víÚµ“W¯^½w꺉 \8vïØ)›d 5ˆ"‘:e*U0jÙı“'Ož|øðÝ«G¯^7_¯©Y£†!C†)ŠdꕲnìêÕ«W¯^½zòäÉ“'O>^;yòäáǾz×^¥šdH5jÔ¨QÇP¤TÄÐÑ«W¯^½zõêÕ«'Ož|øôé !ù€ ,+@‡ !!%(!!"!!&%%&"")&&)&&-"",)).)),%%0**1**6--3..5..9,,911611922=44:55=99?..B33B55A66D44J99B==F::E;;M>>I;;J>>R;;V;;^;;X22P>>i;;b@@GAAJBBNEELLLOBBUEEQFFVAARFFZJJQIIVNNVJJYJJ]MMZNN^PPURR^TT\@@cAAnBBoNNaLLdLLkCCpEEqFFrIIrJJuMMvNNrNNxRRbQQfVVaVVfVVjSSl]]fZZeZZiZZm]]j^^mTTsQQzSS|UU}VV~VVyZZrZZv^^r^^vXX]]|aanbbiaadbbrbbueevffrbbybb}ffyee~iivjjsiizhh~mmzmm~ss|xxZZ]]ƒ^^ƒ__„aa†ee„ee‰ccˆii‚mmmm…hh‹jjŒnnllooqq…vv†tt‚uuŠss‹{{…zzŽ}}ŽzzŠss’qq‘tt“vv•yy–zz—~~‘}}•{{˜||™š~~šƒƒŒˆˆŒ’††•……“ƒƒ††™……Ÿ›ŠŠ•‹‹”‰‰™ŽŽšŽŽžŠŠ‘‘š––Ÿ““œ˜˜ž‡‡ ‰‰¢‰‰¢¤ŽŽ¥¦ŒŒ£§’’§““¢““¨——«””©™™¤™™­¯žž®ššªŸŸ±°££«¬¬®££³¡¡²££´¥¥´¦¦µ¦¦¶¥¥²¨¨·ªª·¬¬·««¸©©¸­­º®®»¬¬¹¯¯¼±±½µµ¿¶¶¾±±»¿¿¿¼¼½ºº¾··ÀµµÀ»»Ã¹¹Á½½Â¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÅÅÅÅÅÆÆÆÇÃÃÈÄÄÉÇÇÈÇÇÊÉÉÊÉÉÊÊÊÌÌÌÌþM}Úä‘!Bg¬L²dÉ’%K–,Y²dÉ’%SÚtêe ¤^ˆýìX5qãÆ¥K×j”§M!"t†Ê(K–,Y²dÉ’%K–,ye ™3eõª6í0`Ǩu'Ž;X¦>u‚äÈ"AV¦HòdÉ’%K–,Y²dÉ(P¤L!ƒèXµiˆ [VÍ›¸tìØõj5Ê“§M :CeŠ(K–,Y²d Œ2`@™2ÅŠ¡^Ó²U[vlÙ4oâÄ'n™1X¦L™ú´©Ñ 3d¦@y²dÉŒ$@ØÒ‹*gZ9ë–­š³e˦Uóæ­Û´iÙœ ãÅKX/Sþ :CE ”%ILœpÒ„Ã4‹9q³i™7oÕ¦Q[æŒZ5€Õ¦9›&Î[µcÇ–-öi"Ad¨H±cÌ4‹Šd˜£êOŸ5Œ–•'Nœ7jΨM›V­[7qãÄe«Ö­[·eÆLmB4¨Ê…\€ Ùr$­Z´X©ºµL\9qݪMs¶ìزjݺ‰7Nœ7qâĉ'®Ú²^;´ âËJu+öŠÏEвM[¶ X/^ÀŒ-«VMܸt鯥—Î<{îÄÍ ÑäEä,òS©+IlÒØùãmY/S£>yú$lY5oÞÄK—Ž;yøôé×lÇ -X:@øþògÍ¢Pª^©*¢C›WÀL}õéÓ'`κ…óæMܸqéÜÉÇO>KXP  ‚GƒMŽT UIXÒ¤1fL@cÇ€sæm\ºnÝʉ—Ž;yòìyãÃå#)TÈ‘£N¥bÍÑq'ÍUÔªU«Fmš·tîäyó&Nœ¸tìܹc—îM-~(ýñ‚b‡ ˜B…R “¢}úzõúdjرaÀ,x`€nÆŒˆˆ-†DxpH rj©ª9sðæÍ›§Ï0X­L™j O‚ °QI˜9YBl(Abƒ,|x …‹Q%qÌ™ƒoÞ¼y¼Z™ú´©¤Vk 4h€@ U`ðÈ¡ÃaB.b:D ƒÂ¥Z²1ÏìØâ&L‰öØb¥hMxóàÍÓ§OŸ#H‘6mÚôi” P%V“öàA„…'v<$°qªX&EwºÀÓ§OŸ>}úBÔ¨¤M<ì À7ª*}™3ÄÃ’2Ùa”æJŸ/¬XÝif>}úôéÓgÈ!C†!:D„ ì©•‰¦"šðP˜GÕL˜$©ÂêRpäéÓ§OŸ>}ƒ 4h 4JhÐàÁ)Mb2ɪä¥CJ•2)š4g‘"L•Æ|ø"OŸ>}úôõ;sæÌ™3dÈañÁ@‚?01þÂÒG• p„Q£ª¦4•¥¢ášuúôéãÇŸ*S¨P™B¥ h™ÅÊ„+`DÈè‹$Y9 EGEŠ$UÇÎ :ƒ¨¤M>ú¤ÈÁ Z$@PEKJT©š…‹•®Z}4$ø!I‘0Μ9cèÌ”Nž<}åÉ“'HHØrƒ<˜Âl« ‰U&VŠjñÉÇ•Px<Œ!CæÌ Cg¦l2Õª•©M‘"AÒpd5!¢S)E{X±’Ä"…&°µhÍþ2d 2D† ¤Q­LAB„¨‘' D0ÁÄÇ.Y(4 BgR–aæ`¡°ÃC(&=¬X!s† *S<}ò©Q#H›> Q!„…˜ >L€Y"Å (¤øÂŠ,úðX1Å +T¦L‘bÊ”§M›„`aR€H @ÙªMÖªU«V£ØC—í¯^˺¹+'…¦-H°àÂb“0€*BäÊ6íØ¯V£>•­Ú´cÀ›6Î>7R0Iú XØ8ðÑdH€¤Z6g­>™25j”)`½Žv¬;yøì£‘†Ï< hA)  %,˜@‚IË–ãåÉT/^°zµê X/cÝÒ¹c×­š nôhk„L˜€€@v;¶ì¯QŸ`vìØ²eÙªUs6­Ú±O°Dþ½@`!ÐÀÈPÉØ²eÓªÁêäiØ´nÕªy7nZ/€ 2䨕›$¸ÁÅ ˜°€Å/Ö-s6Í™1SŸ€UóVΛ7qÞzA2dÈ"O½Ž¹°A @€‚MŽ,›6ÍÙ²eÇŽõjÕ«›·jÓ–¶)!DŽ6-£V­X†"60`€ƒ v´ÀrlÙ2c¼„[6mÙ±cÞØk%l0H „زiÞ’Ý’‚BÙÂ%SµnÞ¨3& 0gݼyËæ­°jÓŽõê4ˆ ™3LõêÆ®Z€4iþ2fL›WììÉÃ'Ï›7oÓ€£&Î[µjǪyËVm˜£3V¬!騴lëØ…¢2FJ•1Ul­›7o>}øÜ½KGíØ2jÔªy«æm@vÀ6 :CæÌ HŸ`õZæ;yЊƒf{é¼çÍ›8yòÞ-ƒD¨ ™3†uúäɰiÙĹ›7Ož¼yóæÉƒž¼yøðáÇϞ={îÞéÃN˜£3dÊ2„ÈѦMLsæ¾yóæÍ›7oÞ¼yòàÍ›7ož>}úðåÇŸ·^¦µ)sFРAƒ !rä‰×±tîðáÇ>|óæÍ›7o>Þ¼yóæéÓ§OŸ>|ÕL}‚4èÌ™3gÚœiÓfP£OÆÔÙ³‡Ïž=|öðáÃ7oÞ¼yóæÍ›7ož>}úøñ !ù€ ,+@‡!!!$(!!"""%%%&"")%%*&&-"",))-))1..2..6**5//9..?11611922?66>44:99?<>J==M??Q::Y>>b>>iAAJBBMFFNEEKIINBBRCCVEEQFFVDDYIIRJJUMMVNNSJJYMM[MM]II]RRZQQ]VV]YY]CCbAAnBBoDDkNNaLLdNNjLLlCCpFFrDDqIIsJJuLLvMMrNNxQQaRReUUaUUeQQiVVjVVmRRmYYf[[dZZj]]m\\kVVvRRsQQzSS|UU}VV~VVzZZqZZv^^q^^uXX^^zZZzaancclddiaaraaueeseeuaazbb}ffzee~kkuiizii~nnzmm~rr|zz~ZZ€]]ƒ^^ƒ__„aaaa†ffgg…ff‰ccˆjj‚kk†mm‚nn…ii‹jjŒmmŽoorrrr†uu…rr‰uu‰vvŒyy…zz‰zz}}Ž||Šqq‘tt“ww•vv•yy–zz—~~‘{{’{{˜}}™š™„„Œ’‚‚•††“……–šƒƒœ……ž‡‡™‰‰–‹‹”‰‰™šŒŒ’’––ž‘‘š‡‡ ŠŠ£‰‰¡¤¥ŒŒ£‘‘§’’§••¡““ ““¨——«••©——¬™™«šš­¯šš¢žž°¢¢®©©®¤¤¥¢¢³  ±££´¥¥´¦¦µ¤¤³¨¨·ªª·ªª°««¸©©¸®®»¬¬º¯¯¼±±¼³³¾´´¿¶¶¾°°»¿¿¿½½¾»»½±±³··ÀµµÀ»»Ã¹¹Á½½Â¾¾Å»»ÄÃÃÃÀÀÀÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÆÆÈÇÇÊÈÈÊÉÉÊËËÌÌÌÌþg‘%i£BgªDyâäÈ‘#GŽ9räÈ‘#QÜ„–j(`͈ûlÙ5qäÈ­[7‹T(P‘-*dfJ”'NŽ9räÈ‘#GŽ9òdJ•3g»V-Y°`ɪy'n;Z©Hš$IÒ"BU¢DyòäÈ‘#GŽ9räÈ‘'O¢D©²ˆ™¶jÍ!kv œ8rîÜýš…*T(J“&!:3%Ê“'GŽ9â䈋-Œ ‰¥J!`Õ´]s–¬Ù5pâÄ‘2Z©R¥"*¡3e¢ÂdÚÓhÅ?çΓgÏž=~ÚÌÑs§ÍY2Z’6 pg˜:tÄxH°€ƒ:H`æÕ›LA Ü8wîœ<þ{üøñ«F®;mÄ€Í"%ƒ@‚Kp´¹s‡È pØ¡¡C–Ö¼z”`Á´sóìñãÇ­aÁ5Cl) ”À¡ J}0X°` ¬ÀãÉV' X›GÏ?~ü€#•в`Áü4(@€@›aütÚÁ Á‚ ü˜PC£:žö˜¢°@йsòìÙ³ÇX0Z±R¥šŒÍ‚h²£çN£˜¨°`Á… Leâ„çMŒ |Î;'Ïž½{Àf¥"JÒ¤YV, Pà ¦6t ]:Q@ 6Øà°«Ó+WÚtø#Ož¯8½r¥iH{öìÙãÇŸ¤I“@EŠ”† Hà†“­LkqðÑÅÓ#. ÙÕË“¦F*üØ»Çß?~ü!Z´(Ò$P“&X 'N® SƒW¹vá ÀÆN%^ò\ÁÁJ?~üøñã‡"Dˆ-Š$‚À‚(*YÊ3†–Gt8u¸«S˜kÝiô*Ï ¸èñãÇ?~…"DˆÐ 4,X ÃS"Hzú`ùBÄK£]Ƹ0`’HO#Wk.ˆÐ?~üþý;sæÌ™3eÊ”!P @®üù㡘,o¶Løa)ÖuªT)S¦L•*QH‘ 5)R$I H]飢‚ 5Ýð„+Ó„:­Á#‚CZkT,P¥J™*S¦D‰’*U(P B…"EJшLQ¡¦ŽŠS>6àèÃ¥ “Vt=òAaÆ¡3n"tÆL•`Àf¡"E*Õ¬Y±–@HH-— $£‡Ž.Mr¬€ôœN… •*V(DƒÎ\«–ŒX0`À‚%«vˆC›G&npÈd‚€*va’# 5a€ìðäÌY³a¾fÑ Eˆ9qþÞ %FìÚ:`©i´Â‡ Y¬À¡bBŠKÚøáâ£ÄœOÚ®U 6+Ö¬Y¤Ü•§-™/`Í®Áç¦Ñ>´X¸°ä.&–0ÉÓÅO–N<ÓV-Y°Y¨H¥B¥íZµfÄ€%»¶Ÿ¾C[ö4±ÂÂB 5#–h¡S!H.z.L€!ãš¶j³HÅŠ•*U*bÀ’ –LÛ:zúð%áÊ !AÁ’œÐ OÍœ1ój–/_¾|ÑŒX0bÞÖÁsçíšp¤ ´$ b€ |K–,-T¨h #Ö Y3g×®]ƒfÍZ2R´Rþ% áÊ °‚€` Y3gÕ®ù EŠ˜3p×´·®0€¡&!B4i xÁ£–Ü0‘"„8Èœ9ƒV­±Y¨ˆ]gœ7pà€Mb„Ñ¢PÀ’Ý €Àƒ‡0x0«V­Ù2gÍ’›Ì›¸kÕœ%#JQ¡E’B5»v혊 4@‚T,Á¬Y2bÀ€!k ²dÞÜ›¬±I‹"´(´jàxX¢B2TȰrå¸pà¬!C,X0hÞÂyÓnV°k× E¨L7‘PÓÖNÚ#5¸pþófM"WîôÑÇ/\8pÕ‚«&Ü5oÍ®óv-˜$7eª”! Ù5míÚÅC† •(iŒ•³§Ïž>~úàÅsw-Y3kÕ´…Ó&ŽÀuÁ@:Sæ ¡I¤hƒÎ½vÑtíâuŽž|îÀ‰œ8xôà5›T¨L™3ˆ&… ŠT°jÚÈÁ³gž={öìÙ“'O={öøñÓ§>|ðâñÓ'˜¤3eÊ B´H(P“Pk®>}öìÙ³gÏž={öäÑ“gÏ?~üøéÓ‡8`© :sf!B„-’ÊW³pðôéÓ§OŸ>}öìÙ³gÏ>ž<{öîñãÇ?}×R¡šDèÌ™3gΜ9ã†$RÄØÁÓ§O>}úôéÓgÏž={öìÙ³gï?~üüù !ù€ ,+@‡ !%!!"!!%$$&"")##-%%*&&-**.((+&&2**2**4--2..5..9--<11622:22=66>55:99>66B66E11@77I::B::E==F>>B>>J>>M::J==R88Y>>eBBNFFNAAJ@@DBBRCCUEEREEUEEYFF]BBZIIRIIVMMVJJYNN]LL[QQVQQZQQ^UU^TT[CCbAAnBBoCCkNNaNNfIIeNNnKKkCCpGGrEEqHHsJJuMMvOOqOOxRRbUUaUUeQQfUUjVVnRRlYYfZZbZZm]]j]]nYYjVVrSStQQzSS|UU}VV~VVzZZqYYu]]r^^vXX^^y__|ZZy``faanddmaarbbveevffrbbzbb}eeyee~iiuiizii}nn{nn}rr}ZZ€\\‚^^ƒ__„aa†dd‚ff‰ccˆii‚jj…mm‚nn…hh‹kk‰jjŒnn‹nnllŽooqqqq‡vv‚vv…rr‰wwŠuu‰vvŽzz„zz‰zz}}Ž||‹qq‘ss’tt“vv•yy—zz—~~‘~~•zz‘{{˜||™~~šˆˆ’††•ƒƒ”š‚‚……Ÿ††Ÿ……™‰‰—ŽŽ–‹‹›‘‘š’’––Ÿ™™‡‡ ‹‹£ˆˆ¡¤ŽŽ¥£‘‘§’’§••¢’’¨——«””©——¬šš£™™«šš­¯œœ¨žž°¤¤®©©©¢¢³¡¡²££´¥¥´¦¦µ¥¥³¨¨·ªª¶««¹©©¸­­º¯¯»¬¬¹¯¯¼°°¼³³¾²²½µµ¿··¿²²»¿¿¿½½½¹¹½°°µ··ÀµµÀ»»Ã¸¸Á½½Â¾¾ÅÃÃÃÀÀÁÁÁÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÇÇÈÇÇÊÉÉÊÉÉÊËËÌÉÉÓþU• åÈСAe¤8iB„"Dˆ!B„"NÖˆ¢¥ Ò¥^̆ùìX5pêÆS'«Ô¨PŒ TŠ“&Kˆ!B„"DˆYÒŠ˜2eùª6í0`ǦmN]»YªJ‚䈑!@Rœ8i²„"Dˆ!B„È’&Mœ8‘bˆ¶kÌŒKV¸qíÚù’•jÔ¨PÅI“&Dˆ!B„ˆBT4qâD !_Ó°UkvŒµoãÀî™±YªT©*Š‘ 2b 4YB„È !xÌIsåŠ'eTMÆ­Ú3fϨaãÆm[µiئ ëÕ ˜¯T þ *ÅI"*>L¹”ÆÎ™i\u"Š7nتU{ö¬Z5€Õ¦=›Ž[µcÇš1V !@b 8)Â%Ì•Ex¦Ð(àÁ¦l˜·iÓªM›V Û6pãÀa«¶m¶fÆb…2$( ¢GYýàb V%N°0¥ñ€ 8pܪMkÆì3jÛ¶77nÜÀÇ­3ZWî\j#c€L¦0aRTeOظUkÆ ˜/_¾Œ1«¶ Ü8uãÆ×îøÁaé«8Š4¹ÂuÉþ ^Ñ£GO^¼xôäÅkÇ­Ú0`̦M«¶­Ò8^yPáD"X¦`Mêä S˜vØÐÆœ9sæÌÅ‹O^;uÛŽ•¥J•¯a>Ä¡c‰…„,0yZÄI­Z6˜B%à H ™3gÎ\Tüà°#…p@0–'eÅ”Ùê¤Å,zôèáÓ§OŸ!H’B… 5J•‰(È©BÉÎ ®È°5ÂX[0í²¥ &rÑÓ§OŸ>}ú2dȤK,@àOšK—òHh†-9SÎì©di—'\¶¾˜ £(ž>}úôéÓGˆ!B„ 24À‚U-â´À…[\:q˜F‚ ~ƒ $H 2  ²‡ƒ #vàò*—-NT&äÙs§&J Ò aÃNŸ>}úøñ+S¦L™2cÄH90`€—NydþÀ!ÁÀ–8"Xíª„ AL~rÍQ#LvúôéÓ§OŸ(N @qJ‚$ðP¢d@‹ $2Pp±%צ(LÉdQ¡;h¦0S×îÝ;pãœ4qÒĉ'PÜ€+ ÒÃ@‹8¹v½°¤¡¨Ú\ü‹ƒ¶ntBdKOž6lÝñ"È£RǪqs"EL@‚1úRdÁL9nèڵˋNhR8¡þS']¸Ø€IóÇCD©òìX@„ A*åËW$ü˜ª2@W±.T:ÁÊ …CS^ušTM'ö”š%«×¬PŽb)Ô*_³På‰àg‘%$ôpðŠS=qÒ´Á¤äÏœ;—¼PÀáiV(C¢R*cˆ¤P£J¥*U ‘‘8°&mȰáF-·níúÄÌ"4r°\ºÄ¢AS†Êˆ)ChQ£F•*5JÔ¨D:æ°Àä§B†"€¼ùà ×¶.uʱ‘r0#¦ Ak @R%KVªP AúaD3v¡°á“2K˜pðp玮>yìœP`¤þ 1bÖTÆ ¤T²TA2dˆ‘(( @ B²ÀH!DÉ$¼ ;ÆìX¯R¥fÆì³fÕªU›FÚ±R²0þ 0pÅËH"ÇCž$GpTpqɳfÓªõUjØ4nذqnš/€¢ "I tœ¨ÁÀ#FÀИq&Ã*Ø={6íÙ0U©†UãÆ7pß|A"Dh¡QÀ–9@• ÈùFà  º4›Æì3fÌŽùšå«·jÓš&ŠÐ CB1«6MWV68pàÆ Z®¸qŒ³a¾€cÖ¬Ù±cÛÔ“Œ0HŒ dسiÛ”] áaÁ F˜ñ%N3nܦ ; ˜¯gÛ¸mÛöM°jÕŽù %HŒ˜2ŒRùÂÖî˜#aÀ¸qþÃ&ËZäìɳ'ïÛ7nÔ€ ›ö[5nǪqÛV ˜£2R¤ˆtéØ4lìØÅ2%L˜0l™£wÞ=}÷Þ½SWí³jÓª}ÃÆmÀvÀB *#¦Œ G©fùjÆ­}úôÝ»gÏ8_ª ­S A‚r4ª3nïîÝ»wïÞ½{ôèÑ£G>=zôèéÓ§OŸ¾{ÕT•‚$¨Ì˜2eÊ”Y³F£RÆÀ½»wïÞ½{÷îÝ»G=zôèÑ£Gž>}úøñ !ù€ ,+@‡! "% """%%%'%%*&&-!!*)).((+''1**1++6--2..6++9..9-->11611:22=55=44988>//@66A66F22B66J::B::E>>F<>I??M99K>>SAAGAAJAAMEENBBRBBUFFQFFUEEYCC\JJUKKTJJYII^NNZMM]RR]UU^XX_RRVDDeAAnBBoCCjJJbMMdMMjKKnCCpGGrEEqIIqJJuLLvNNrOOxRReUUbUUfRRaRRhVViVVnRRnYYf\\eZZj]]j^^nZZnRRvVVrTTsQQzSS|UU}VV~WWyZZqZZu^^u]]q[[zXX^^y^^}aanaaqbbueeuffqbbzbb~ffyff~iiuii~mm}kkyrr|ZZ]]‚^^ƒ__„aa†ffee†bbff‰jj‚jj…nn‚nn…hh‹jjŒnn‰nnmmŽooqq‚rr†uu…uurr‰uuŠuurrxx„zz~~Ž{{‰rr‘uu“ww•uu”yy—zz—~~‘{{“{{˜||™~~šŽ……Ž’‚‚•††–……‘€€š‚‚††™……Ÿ‰‰–‹‹“ŠŠššŒŒ’’••ž‘‘š™™Ÿ‡‡ ŠŠ£‰‰¡¢¤ŽŽ¥¦‹‹¤‘‘§’’§––¡••¦‘‘¡““¨‘‘¨——«••©——¬™™£™™ª™™¬››­¯ŸŸ°°££¬¬¬¯¢¢³¡¡²££´¥¥³¥¥´¦¦µ¨¨·ªª¶®®¶««¸©©¸­­º®®»¬¬¹¯¯¼±±¼²²½´´¿¶¶¾±±»¿¿¿½½½¹¹¼¶¶À¹¹Â¾¾Å½½ÃÃÃÃÁÁÁÁÁÅÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÆÆÉÈÈÊÉÉÊÊÊÌÓÓÞÉÉÔþKâ´¨P @e 4Y2dÈ!C† 2dÈ$MØtÚUªQ£]Ï„íÚå+Y6ræÌ±cç Ô'NŠ TÆI“%C† 2dÈ!C† I²Ä‰˜2cüÔ²f-™/_Ǭ}#GŽ];X¥@uj´HQ!?bš4Y2dÈ!C† 2dÈ%Kš4SèY6kÏŽ{– 9víÚírUêS'N*ã¤É’%C† ’d"Dˆ0iÒ  ]Ö¶e{öìÙ5päÈ™#7NÚ1]¥J•ÅI 2bœ,I2dÈ U¼¬`¡£F(eZIû¶-›µgÒ®en[6k߬ÓË×®R þù)ã„É’!DÔйr†FŒ«F¥1Ãé8pÛ²e“&-[6€Ù¬Y³F\¶dÉž=óŠS >cš0!bã ’(¬ˆ8cÊŠgž‘#GŽÜ¸lÖ²Y“–mÛ7ræÈm˶íÛ¶gÇJq*È #B•t¼ˆ‚Gœ<[^tpЋ9rà¶Y“öìÙ3kß¾‘#gŽ8pãÈ‘#.Û2_—,µÙ2AÅ+,°Ô¸¡‡‹;Û¾Y{öLØ®]¾Ž=˶œ9vì̱3×ÎQFâ@ÊbEÀ–¤¸!‡’¨+FT–ÌÀdÉŽ{Î\»oàÀ‘#Ç®;yòð13%ÍŒ 0`¢Ã9«2­24Â@WײeËvÍ8vîäGÎ9víܹkg.Kœj^ @À<Ì dLÕ&# B¤içÎ]»víÜÉÃ'8ræØ±kç®9kL¼ˆÒ@Áq¬t€ –1Z¢DÑ™À˺|ûòá£G=yà²eGΜ9säÀ  *DÀÃEÊ{D!dGþÍ„afÑ£GO^¼xôäÅk.Û1_ϬY˶ Æi*pØâÇ©,ˆ*|È¥UEL\ &]ºtéÒÅ‹/^;sÛŽ‘úTªÔ®Z •Úå+Y™> -µk×$¶2•@Àå«LsæÜP‚Åž5|b©z¥*>QDÒåj¬E‹úRÔˆS©]°FÙ F F‰æ¨:e‹GbÐ9aGT'Uv"¼ÉÒKW§BJ*ShQ#N@‘ŨͪX&²ä¸q!Ä)b¶´Ô¨¤ #”f1Ë¢à„žNŠÊ”鈓NŸ@õ‰S§:mºÄ‚ñ¦‡¤6M3†IM0Eñ²eÖ7X#¦Œ?lœ4*Ë)N52B‘¡/Ê …Ø¡,9¢À1ÒäØÒ•þ1búøñSÆI#R®H5*THQ§:LœÙÀžY9À‰N†,©ÀR™ @#FŒ'M>úÔH‘¢Fœ@µY¦Š 6<Ü@àaË™(^dYuÇN¥5®Ì°âŠ(Nœ4YRªÔ'Nœ>}j‡#G ½X‘ÂÅ Uz<8HIU¤*vêiCgB”2lùéSF _º\Eª”+W¥Ì¸a'G †ˆ‰š@c>Ô¤àa$L²= FúTª§@}Êl³–L˜¯]»|%³vh’ ˆ^\Ø’ˆ*fÈ‘qG‰*µ,åpMÚ³^º\ÁêäÇœ9sþà¤%Û%l»d }Ñ¡FÆU8ñ?JwJ4@D G LÛ°Y檕+W Þ™C·-¬]϶¹#dž " Ù1a@B†.ˆ!š’¥A8¦LÛfíY/W¤@•µ-Û³fÂv%³ÆÎ>)AX0p!à ¨ EË‹"8ð€±Û6k®@•rUª)_»’ ó•,;yøìÉ¢PÄÀ"@\`QbŠ =Ïž5ÓÅ©Ô.]°tÁÚåË×®dߨ¹c÷-›‡, €Ž02!L‚qrøJÖ,™.P¤`ùò•,Ù³gÛ²e³fíZ2P° þ8ÑÀ„D¬!Bb€2˜éØ3iÖ²ÁâÊ—5pÛ²}#G.Û.€ ôÈ•‰ŠH@€Àà ",ñ B8ž=“fMÚ±V „e8ràv5 (P¡O¾ˆEÐ1"8àPá‚n4³ö,Y³gϒ킵+¸lÖž%ö© B>=Ë–Ö„ #J D/D°BìÙ3a»v {&MZ²dߨùrå뙯FŠùéSÈ—4kàˆ‰Ñ!Ä<ð™QáÍ3pà¬;¶k—°gßÀ}Ë6Ε¯lÙŽíâäG ”2ŠHíçn!$O¾±þQ£ £SÞìÉÃ'o¹oÖŽ ³6\¶mɲ÷Í×¢2P ˆô(™µmïÚµ2óÅÉFz6­£G¾|øÜ¹cw-Ù³lÙ¶ÛÎÀv¾8ù)#¦ŒŸF¤`í’®{íÀ™#n9wòÚ=khŒ˜2qÅ ”/kß̹£GOžzôèÑ£G½yôâÉ£G^¾|ùòáÃg¸]¥±)S¦?~ Rô Ö3rîðáÇ>|ôèÑ£G>=zôèåË—/_>|ÙJ}j¨Œ˜2eÊ”)ÃÆ"PÇȹ³‡>|øðáÃG=zôèÑ£G^¾|ùöí !ù€ ,+@‡ !%) "!!&$$'"")%%*&&-!!,))-&&1**2--2..5++6..;11611:22=55:55=88?66A33B66K::B::F==E::I>>J>>N;;M==R>>YAAJAAMEENAAFFFRFFUAASGGYGG^JJUKKSJJ]MMYNN^JJZQQZQQ]TT^AAnBBoFFnNNfKKbMMkCCeCCpGGrEEqIIrJJuLLvNNsOOxRRfVVaVVfQQaRRiVVnTTkYYeZZbYYjZZm]]k]]nRRvUUrQQzSS|UU}VV~TTxZZrZZv]]q^^vYYzYY]]z^^}bbmbbqeereevccvbbzaa}ffyff~iiviiyjj~mm~mmzqq}xx}ZZ]]ƒ^^‚__„aa†ffff†bb€ff‰iijj†nn‚nn†ii‹kkˆkkiiŒnnˆnnŽoorr‚rr†uu‚uu†qq‰vv‰vvrr{{†yyŠyyŽ~~Š}}ss’pptt“ww•uu”zz’xx–zz—~~‘||–{{˜||™›}}šŽ††Œ‚‚’‚‚•††’……–š‚‚††™……Ÿ††ž‰‰–ŽŽ–ŠŠ™ŠŠšŽŽ‘‘ž––Ÿ‘‘›™™œ†† ˆˆ¡‹‹£‰‰¢¤¥¢‘‘§’’¦••¢””£““¨‘‘¨••ª——«””©——¬šš¢¦˜˜«™™­œœ¯©ŸŸ°°¢¢«¢¢³  ±££´¥¥³¥¥µ¦¦¶¨¨·ªª¶®®´««¸©©¸­­º®®»¬¬¹¯¯¼¶¶¶°°¼³³¾µµ¿¶¶¾²²º¿¿¿½½¾¹¹¿··À¹¹Â¼¼Â¾¾Å»»ÄÃÃÃÀÀÁÃÃÄÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÄÄÈÇÇÈÇÇÊÉÉÊÉÉÊÊÊÌþK}ÂtèÏ=]”)Ò£G=zôèÑ£GDÈhâU*¦WЄñúõ Z¶rèСk×êÓ&L‡þüÑÓÉ‘"CzôèÑ£G=zôR‰–.]ôðÂf-Ù¯_ɬ}+WλW¥>mJtèП;JŽ)2¤G=zôèÑ£Ç"EŽQòÚ6l΄ƒ–M\9tîÜñj%jÓ&L‰íé‚äH‘"=zôè1dˆ!>|9rD ^Ö¶eƒ– Ú5qåÊ¡+nš±W¥J•ú„‰ž.ZŽÒ£G($X‚%]ZYÛ¶-Û4hÓ²m'îÛµiÛ¬ Ûµë¯RŠþþàé‚ÄH‘=²@yãÂ(O€¼ƒ š8qÙ¬e›íZ6€Ù¬M³VN\¶dÉ Aûõ ÓŸ;Z9eAmØ0qtŠ‚ _ •+'®\¹kÓ®Y³–mÛ·rèÊmËöMÜ6hÆZaú£‡ÌA7LXÀF“:mBpx¢ ]¹râ²Yƒ-´kß¾•+×®\8qåÊ•+.Û²_„…Q0`À„QtHÃȃ 0ؾaƒ–L/^¿ŒA˶­ºvíÚ¡C×^½zðÊ#„*‚.˜±èʪ\R2°$¯R¥>múÄ Z6qáÊ¡kçÎÝ»zûöõÛ·V§9VTÊþ0à€ FŒâPZEZ¿J‰õéÓ¦`Ö¾…'.:tîàÕÛ·¯ß>Z©PU8€¦ÒƒÔ„áƒHP† n´fìÀdÉ~›&»oß•+×μzðö¡#$‰ ‰Žæ„àhI™J•\ýxÐ`ˆ`Ù²eËvÍš¸võê‰W]¹vîàÁk×.¢7*t@Y1 „› ­4K‹  ȉ¼vîàÕÛW¯\¸rèÚµs÷Î]¹b5>…qP¢É€à0«R¥9TT °J·~ýöí»wïÞ½zá¶e‡:tåÄAqi‚*®HÉ¡¢FGr"Í‚äæþ€€*Q.Ý»w¯^½z÷êÉs'.›±_ЦY˶mG8$hXáhN¬p(-¢e$9!¬€TE:uêÔ½“'ï¼vÛŒmúTª¯JâÌ‘àà@†+”èLÊ•«V$@«ÚDºr Ža¨©S§N¼z÷î¹s‡[²R‰0}º1ÃJˆhfÒHY`£T©Vɾ… W¤H‘"EŽÑb–b1Ë…Š¯bÌpåªåÐ#@‚EšUÎ&xö•L\¹"EŠA¢¤ ŒnИUe.b‚,†«Ö¬\³j­êóÈÌ£U–¨¤ç¡OƲ‰;¢DK2xöò² Ífb1sä¨ £I±fÑ CþlV3~ʉúÔ'’-:H±)W­Œá°aáÍšK @QŠ“æ€ŠP„ºl¹£‡Ì‘MŸ>}µi“¦>fV¡ñ0`œ3¹œÉq„JÇ*.*T d (&ÎôÑ¢¥Ë<]$*Õª•(LŠ% "gM„V@EIÇ JR\0šU‚@lªPªàà þ-[ÈàÁÓI¢R­Dúó‡Ð&m‚89B “J  !'Y182\òÍ ”(ѲE $G6}Ú”ˆ¡C˜>½(ó†…hÀáäÒGÄ"Å‚¡ƒÅ…*(˜sD‰%H)RªÔ&L˜6mÚôÉϘ6q„ÐQcÑ ŒB¤Ñ¡ÂU€øŒ¡r€‚$/]öà¹ÓE‹’_¼J}úô©T+V¥úŒ™cÃ…Nb¼ajE‰®P”.x}ÚTŠÕ¦=xºl³–LØ/^¼~%³&ÉL”%+¤ ‰²ÄM‰YO4X0BP 0eJd`b š³`¯Z½Â„ºrþߦ%ã%,›;aÉ©äÍ“A@˜b¤Á‰ äã¡…IÛ²AûÕªU+VŸÜ¡·-Ù.^вÁ+„)R˜ã/ 0¾xX°Â‘f`g-¯V¢>•µ-›5gÂ~%³†.ß¾&2 ÐÀD W\AñPãK!\PqÛ6h­>•*UªT©_¼’ýú•l›»|ûòŠA48'Ùª(<,XaeÄEΠ%{µ©¯]¯xµÚõë/cßÚÁs÷-‡ $L0qÀ:@!ÁA8*8üJæ,Ù®OŸ^ûµ,4hÛ²e³–íZ²O­ þ5@0A€N\˜0@‚ <ˆ AÉ4hÖ²½Âôé—5qÙ¶‰+‡Î/€›0íÙ“ˆÕŒd@ @À LxÀ@‡& A›f š°R¢~a'Nœ¸râx%Ú³GÏŸO½Šq0`Eƒlü¨0@€ 0@³6-4hÐ’ñjõk›¸lÖ A¦iž?‡0A»v˜„ (pÀE”„xQ ´_¼~%ƒ6 Z²dßÜýjÕ Ú¯Döà¹óç×4kâ ù£B…TU8°AP¬pâ¬3Ö«—±i߉ËŽÕ¯lÙŒñJ„G‹–.„>ñ÷N,X°À þÑæ‡•*âòÕÛW¯\¸p×~»V.\¶lв‰û–íס.Z”hÁƒ)™µmïÞ±“KAWì»·ïÞ¾~ûàÁkg-Ù²lײ…Û&®@w¿0á颥 žDŸ^ñ‚&Ξ¼{÷îõëׯ_¿}ÙJ}J¤§‹—.]ºtéBÏ¡OÆÊÁË·o_¾}ùöíÛwïÞ½{÷îÝ»wï^¿~ýþý !ù€ ,+@‡!!%$(!!#!!&%%&"")%%*&&-##,)).''1**1..6,,3..:..=11622:44:55=00=99?..A77A44D55J99A::F==F==C==I>>M::K77W;;Q>>T??_<<`@@GAAJBBNEENEEKHHOBBUFFQCCSDDZIIRJJVMMVMMSIIZJJ]MMYMM]RR]TT^FFbAAnBBoEEmJJaMMbNNdKKdLLkCCpFFrHHrJJuLLvNNqNNxUUaVVeQQcRRjVViUUmYYf\\gZZj\\mTTtQQzSS|WWzUU}VV~ZZq]]r^^uYYvXX]]z[[{aanddmaaraaveeqeevaaybb~ffzff~kkuiiyjj~nn{qq~ss}ZZ]]‚^^ƒ^^„aa†eeƒee‰jj‚jj…nn‚mm†ii‹jjŠjjŒnnˆnnŽooqqqq†vv†vvrr‰uuŠuuŒqqŽzz†yyŽ||Ž}}Šqq‘tt“ww•uu”zz‘yy–zz—~~’}}•{{˜||™šŽ‚‚‹†’‚‚”……“……–š‚‚††™……Ÿ††ž‰‰––‰‰™šŽŽ‰‰ž••—‘‘›‘‘••ž››Ÿ‡‡ ‰‰¢¤¥ŒŒ£‘‘§’’¦––¡––¦‘‘ ““¨‘‘¨——«••©——¬™™¢››¥™™«šš­œœ¯®©žž°¤¤®¢¢³¡¡±££´¥¥µ¦¦¶¤¤²  ¸¨¨·ªª¶¬¬¶««¸©©¹­­º®®»¬¬¹¯¯¼°°»°°½³³¾²²½··¹µµ¿¶¶¾¿¿¿½½¿ºº¿²²¶··ÀµµÀ»»Ã¹¹Á¾¾Å¼¼ÃÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÇÇÈÇÇÊÈÈÊÉÉÊËËÌþCmºdèOŸ=`¢8aB„"Dˆ!B„"MÀ\Ò ¢\Ë|éÚµk5qæÌ™c§jS¦K„þüáãå‰&Dˆ!B„"DˆYÂäI0`öè²&­Ø®]Ťm'ŽÝ;U¡6eBdˆÐŸ¨œi£aK$Ö¶I[Vl—®\»Š1£†Mœ9vì̱c÷=zðÄmòć‰/*¨1+ A‘³m™®PŸ6eÚ´kµoàıcÇîÝ;zùøñË÷P©‹ÅYþðB 5Š ‰@ŽY¾BmÊ”iSª^Ò¾ûöMœ9sïàÑË—_¾_št¼4‰D7W”|D¦BƒZ\6lÀbÅv {¶ÍÜ»mß¾‰ÇîtTªSgÒJ1|X¤iÌ:~þøå£GÏž=zâ°Qû&Μ9sæ¶Mbõ• bà°KÍ£Y¥MzQ þ£3qNÙ³g=zöìÉ{÷š¯]ˤI£¶m £ X¸#ª²I²`BEe‘ÈPAR:tèÐÉ“'ÏÞ;vÛ†eÊ*”®NkÖ ÐÀÍ–-”`Mê$gÑ#[¨™(@àƒ*W ¡C‡…Rµ+G|Xð Â‹Sä(ê –¬EX^À¡K§*®Ð¡C'Ïž={ºX…Út‰¢P/^L @… |Љ#h ¬U!K&ƒA#H¨~ñ¨„Nž}þüù#¥FTà8¢3ɨv(Ù8 V'`¥PÉŠå‡J)QÔñãÇ?~{öìÙÃgOž/:\Ð2iÐ#±ÁBfbÒ¤G&¡:µ U§:u©Ñ€Ž?~üüù 0^º@ÑA‚BgŽ`Qþ™4ÉÑ$;±(¹J† •,GŽY‘"ˆˆrüøñãÇÏß“'NœyÀ`“VÌ×.]º|“©L•ghœ)á  ¼xëÑ™b88%Ù2]¹T±º´Çœ9qþߤÓ5Œš¹^…¨PrÃC)=~   @@àˆÉPà`ب1Û¥*”*U›Þ™ G­X.]ŨÁ 'ä€BʘèÕ…€¼xC&F ÔÜÂ&­˜.U›2}ú„š´e¾v“Æ_¾-P$˜ð¦™,xñ@… `ØPÉ6iª6…JõéS¨]ºŠùÚU Û;zùðÕ²pÂB´\ÓÒ l¨à`A:˘)Ëu)T.V¬t©Êµk×®eØÞÁ{·Ú‹ ¡F€"D(°@FìR¦¬X®MŸXéÚU¬Ø2iÔ¨Q{&mZ±M¬þ=hP A …&mÈP§Ø2fҨ应ɳoذ}'Žš.€—õéƒHÕ ,pBÅ&Ž8 PAƒË–1{&Mš¯P›vQûî[8qßt!êçϟL½”e ÁƒBnаòA@D(›ö¬Ø1fËŠéRÕ‹Ú7jÒ˜óuéŸ>†.-£F­  ð†Šp!‹Ù2_ºt [ölY±bÛØíRµkÙ.D„úìÙóg×3iߘ•)â€t(`E‹­oߤ +¶k×°gÛ¾}£öMÕ.jÔŠéJ”§K0„>éÚOÛ™'ehиþ2"6¸òÑÃG¸oÒ† “î5jŨ}Û†m!3Q¢tÙ“¨˜4lðâ­úòä‹#X攳—Ïž>~ùà¹c'­Ø1jÔ°ÃöÍÀw».íÓÌC›Tåzöí|ノœ8xôÞ-CħK0} ]ÚtiÓ.iØÄѳgÏž={öìÙ“'Ož={öøñË—>|ðÜñË'n—!0]¼äùó‡P"DˆBíZ¶í]>{öìÙ³gÏž={ôäÑ“gÏ?~üøíˇŸ¸^¡þä&Ïž={úü!”‰Õ²oðòåË—/Ÿ½|öìÙ³gÏ>ž<{öôñãÇ¿}ÔBm2Ä 0`À€1“g¡MÃØÁË—/_¾|ùìåËgÏž={öìÙ³gO?~üüù !ù€ ,+@‡!&!!!#""%%%'##)&&*&&.##,)).++-&&2**2--2..5--;11611311922=55=55:99?22A55D77J99B::E==E::I==J<^’$9b$H A‚ $ˆ‘#G’$ñ2è6l͆!k†Í›8uëÖùŠeêÓ'GŒý ³$É‘#A‚ ˆ)„$I’„ _Ô²as–¬6pâÄ•'βY¨P™Å Ÿ0^’1$HfpÄÀ#Ê!aPQó– ´fаaóæ-[5jÙ¨%ó5+˜/TŒþñ Ã$É‘ GL@A$ Xp(ò©™7oبaƒ6€Õ¨A£&ζdÉœ5 &ÊÑŸ=^’9RDN3›*µÁ€ÀÂRš‰çM¸jÔªQ£V-[7qåÄuÃÖÍ[6gÈ`qäGÌ3™æÌ‘óäPVâüQKœ8qÞ²QsÖlY3jÙº‰§Nœ7oâĉÛ2_ptj•©d¸p° £‘!زQs–l˜/_Á5ÖM\9uêÊ•+·Ž‰2õ‰'DZ ˆÀ"“V¬lØ™Ñã ‚'­pUšÔÄ‚¢1bâ% ?g’pB5+*NŒ1"C¢A‡ :¡Ug.'Oê00” !J5*0è 'þ/_öðásf #T±P14ѧ@<,œ ÀA†+Tl=Âñd!2[HYCÁ<Ѽ0ñâÅ &I>‰úä"FœD]²²¡”JU°R Ò,°`‚ʜԖ„‰&K–$I‚ Õ'Nœ>}%êSœ4lÐÐD‰€¬bcˆÌ €ÀBŽêt@ð¡˜(1aþðÙÆ “`¼`™% U¬X°‰ñq¢M¦,N¨¡!á‡"Zæ´"‘¥ÃÅf}ú„ §?{Âd£–lX0_¼‚%£f( "‘æ°Ð4‰,ÐL£%Æ6<‰æÌY³`³bÍâħ\9qþÙ %ã,›ºZ1 ÀaˆƒMŨ0@P¡HšPR:,@@@BMÙ°Q  V¬X¢Ö•ó–-Ù,^ɰÁó8:$ÔpÆ&M"aÁ5¨0ËF-™¯X¢D¡2• µfÈ€%«¦Ž^=˜ÈÁ‚Á&6`@ dÐQ[6h±L¡Be ª`¾’ 6 ›:xõèÑ€€ ,NpÀB*D0`a7Íœ%ãõ •/^¼|Íò,˜¯dÞÔ±[ç Û 0P@€€  @p¢  kÖ,/Q¢b –,Y3gذa£† [2Q³îþ €QHpèà&™3hÔ°ñâ$j5oÙ°y+'›/€ŸýùÃ(– pâƒÈ +.`a!CÚ9ƒF 2T¦‚aó&Λ7qÞ|1úóçÏ OÁ’uˆPF)f ]©À*£æ,Y³fÉùš,›8lÔš%öéŸAˆ>5ÆíY!BÈÁ¥8T¨àªY³a¾‚!k Z²dÝÖ‹å«Y0Fƒþðá3(4jÝž‰ñ!Ôa"FªnÞ¨ Cæ+X0hݼuÃæ-V0lÙùâäÇ‹—3ˆLùʶ.[š41rä€þÀÀÓêÁ«Oœ7oÔ‚ £æ­[µnɰyó†m¢0^˜xùÃ)µlìÖÉÚ’&M‘&2蜓'ÏÞ½{õرSG-Ù²jÔ°Ëæ­ÀuÁ8ñùâ%ÌD¢fùræM¼sÌT­ÚuÎ;wîܹ“W¯^=xë¼çÍ›8xðÖ5cäÇ‹—0qúÄIT0jÝʱ“'ž|þ Bô‰W3uìêÕ«W¯^½zòäÉ“'O>ž;yòäÝ»wïÞ½zØP}BÄ'Ì—0a„9s†"QÈÄÑ«W¯^½zõêÕ«'Ož´5urj+Oo©¬q.îMZÚÞ$às´yóXƒ+Á¢`¼‘â±x5èHøÆÓ‘Okƈcp±ksĸÎi~×™Ÿ$×?ã««ûë÷|Øâ«bº‘³† Zô0ÉnO•>;Ø“’+Sœ‚ÞÌA-ÅYÇHɪ{;ÖãZ[P‹õ®}x’Û»ÏѶ꽙7­ñÍITFG^*A‚0½)ädàŽ+›‚ôP£LQ‘ Ú ¡‰9=(´”d*Pt§XàPQȩÓXªŸv)n¨·RäÔÀíÅŽ8eO½$ÀTŠ2rj†õ¥RñJ¢±2Ȳx ž0z‘¸=*20kÓFËÆ¨Ez‰€aZ6<©¡rx©™CŒ¨áR:ÔN™¢Cda©€8 ­™vÐÄ‚jÂ`÷ `ô­ÁÆ*")ù"šsš¡…sL*E?<× gЍe*Db•¥J•¥J•¥J•®jåt޼ÓÔâ¸4ð*)5Ýæ¹Šî(:¬MM,˜ˆIàU¶ŸbÒ0$T·Ž“m!ÚyÅk ˆªh  HY©â¼ÝÝ­BeÏ¡æEU÷¢€hiÕÎEfÛ-À® ËT©)3QTDk”â)µP©R¨¥™£*±ÂóHÇ Š:Ô¶IµSª–íCJa$úSã‘qÇ4òI®:¨;¬yâ˜ê©ˆ8hYd'Í kJªÔÞðÈp´Îì·$séRG)ô­ '&¦ŒsÍFΪ)‹q“PX)¤V –SNï‰0ÄŸ>)»Âо>g£’qŠ`)§çæ£y±É4 ‘ºŠEY¹9«€Ÿˆ¢• ±¿ÛJ®Ú3ž•°î^•g´â¥fQE,ò¡LeM^Ë4+[î=+r€c#ŠàsS$AN¢D!‡–Šy , ÅWM)Åj ¶GJæÌ1Î9gH˺6zT,„UôÖ‡vvzÐ’Ú§Šé:Î\P’ŒùU”‘‘Š¡>b·*+˜TdѯÓŠŒÛç¯tE7$ž€Q/ _j{žç¥qîÎ×éž}ÊFiŒ·W Ü„NA'“!OJµŽÒg·˜ ·¼W\cëBAe|º¤÷†)ʸGP_ÜJ³šÛ{ÚËb¬í,o5XÙìümhààœŒ}s\b´½µÖ—ÃÅ´lË¢øˆÇ:ùg>õ“µ¹ºÓ§FHÏ$Cµº†Úyô8ãÚâh²wÇ’zŠÏÞiñÜ«HŽtü#|ë­æýÄ\éz¬wÑŒá‡âO1Z­:yœž+Ê"–÷I¼[¦‹nï¨oZõNÊjöz½°’%Û"Iê§ú{Öç{2ý¦5vè6 ƒSŸA]Œ)\R*ޤW+T;Ežj!o“Å쮬ˆÓCÕvò1CÎ2Q/pŒÔ ûÍ&ŠÉwÀ© ‹'Ä(¦æ‘*½ÂŒ LÊ$ t5Y†j`™Â½F"ÞÝ8®Ç“׊*= PF¶àrjQã8§gŠa’ nzR¥šUA€ŠîùÓTîAÍdpÁ‘Ö¢)·‚(µn9¨ä4Ð6ÀM?a*EOjN6Šhnî9ÇT=kª çÊœ°“ÔP@Öèàb¢kpAJ²X@5)ˆã¥>C>ú4$ 5[y¥`UF+eÜîŠk@Gµ;1‰m.Bp Ðré¯aÆ•mö÷Då*‡´Z‚Cdâýÿwû3ÓêyûWIݵ1‘[·…NJK7¡òüèN[m--ÅÓ$³ªÈ<qïÇåS÷0hšdºŒÙ’h×pV@bAúV{ënEjc°»‚nö¢q!Á 0vüÿ¥YEDy7ÐÒŸÜnÿˆˆ) [§­ ^åòâ8;\Óì>âW €N|Yéô¡'†ÚÚžäF‘Äw—.<ó]»¼‹O°’á÷9B?ï9/>øæ¨5ÞÓüH±Ç5á áe`8üÏ5-Á·¯jˆ¬öVSAñß<|°éÐŽ*/åÒ»Y/n|S\8#ÇtãÒ¹mþ¨%Ô$™-Ýpq)0Ï— o¦ßjË=ì9¸îØW“2ÿÕs¶Ñ´´•n-àdñ$¨Kqì˜5Ì-×iRÊŒQñÆå=>´¬¤øk5´T\(òU}¿:ŽÎàüJ# +Þâõ¯DžzŒ÷h-aŠí.­Ïî®K„r¬1‘ùÓû9¤×P]8Ž9ãd ¬GJ:úÜ^[]ƪ;Åc4_N£ê3ö—ÞW#ƒ\;Ÿ¼XôVÖtÛ÷X-fs2ôoÂ$ãž|ÿZ¤º†d™‹!Ïγö?÷˲NêA†F=ÈëôÏÚ··W*Ú|jB»à®óüCÖº~>íJ£žÙ¾dèd¼• §-ÇgnãÔl&idFýä$péþÞ:š+|ŒŒ¹Úóæ§dY"fQ‚1;²IóãüëZï™~Èôý+WµÖ4Ø/lÛ1È9j|ÔûŠ;qÆs^[ÙÝMû;«˜Ù·d qÑôë^¤Ñ’Gµq¾\S[šŠGØ8¨ä•ƒ` YñÃfµ —qfÉu~(³†lš”Mä SÇ39£xבšX,IëS+ÅW¥ØÝÍ ˆ¬Ø©×-ÔÔ›µìT œTÿËJ–ô¥@D}*LC©Å;qëY`ƒ]Îx5È ; t¨ }k®‡"¡Ü7{ÔÈw ’!ºˆX@äê "¥¥ªAE8-t ídp¥0Ræ¸@ «Ôå‚ÎÎ[©ˆƤŸé^|b7ÖŸ1;î. lÆpƒò«¾Ý_<ío¥ÁÎ÷±æÏÒ«5‰­´‹$bwj¢<ŽIn3ë“ú×~|çQ›íÆ¢døm6,ïr$‘G¯ð×ò«Ý>Ìéút0F™Ú¡XÔùŸÖ³z¨Ô/g×/`d=Ð~q? à{Õ°Ô%ºÔ"ãG`qéÇÏ8–úVªrË!áTc“X›îÖ­µÄ‘YÛ(HÉ ò°È8 ÌÖ M,Öwò Ü`1‘ž>¦¼³TÁÔä†EXÝdnð¯=Nyõ©|—š®£~âIî$“iá^}:T×iPÈÓ'$ƒd%d FÃñxqÍŠ­ “˜;•‘’+ES†lgÌzž§ÜÕдµ´‰$XÍÍ䊤³åŠ0$ŒzyœjœóhÍØhîêï6beèXcoÒ´¶’ÙF÷–vbN‡4í2{Ø¥ºYLw)'ñ޹úu¡®´û«³9P xY[94TZÝõ¢ø­’iÂ42þí¾yÁQFE«GvD—;øyîÔç ñ•&·òºŠ²+GXãin§Sj’9À$ŸA““êk !ðz{VßY·‚ÇH–x®¥øÓ ~ð’Œð¢€qÅc"·kÆ–G®+ä¶Õˆã—c8ÁàÖ·³×I4N’ ʤV!Bdà9¬Åå¯Ã°#†å×üô¡ÒFQ€Hù̹u^‰&Ÿ/y„ŒÊ¯àÊ àûúP·v×hK« † ñÒ Ð/å¹°X­æ u<%±Þ.}ý(©\w—a ‰xa ñž¿ó¯Dëc .§˜é»×cÁtêtùôÇØÖó±šúÞX=ŸsB¹…ÉüQôÇÍz|±Yim":l#»ÛîS"ž ò§ê+=¦½´Ñ$m‰"—¦pB sêz¯i•ãI-ÍS\ÌûÉãï‹[¨xŽUÆFj6ŽGºŠÜ˜€d•˜ãš‚@ÍÐѦݙ²×d³p+z+‚g$×@o1GÇc#s·Šäö¤(tÐxG¦C’sR¥#®M ¦ÆÈëK`–Ï e'TvöÛÈÝŒ ³†AÒ¹uTÕ€c8æ¦û×Y¶ôÅÜÇ…?:À]Ý*“»>ô© ]ƺ&¸Tž•ÕSTH1Òž0.i ÀÔÏ5:ã9¢¥Vâ ™IÍJ @®3Rn»«»ªHäR€9©ŠœŽênæ>ƒçId³¦ÕL“˜Ï(;´ÿ¬ÿŸ‘«Ï;pf~$^ö‚{â?qkጓÔúþ§éX>Óë¬O­¢9µŽOÇÿåsž\|Í^v‚çövŸi¤¶ý÷ ¾UŒáŽx?ç§7AÓ]Üb$vï7[+ÇSÿV+§^܈º‹Ih`µÓ! Fˆ7œþ/6ûŸÖy ¼7Ö(Y% Œç„’qäxéDÝܼ7-¼.;Ü `™?­: e ÷2õ+ˆÉãØyëZžDUö†éôÝ)Ä ;‚±ªã#<Œ}ˆ¬ ºI>­¾b^G-–QüX?Ò·šŒ­o{mÙÉu;ÆuBJ¸Ç–>¸ùStí+½ºŠsla¸œ“µe2x^HÂy>_*Í›UIgoqs¨ZÊá¶´±+'ýã``‘圎jþ{åÓtŒí,¬ª‡Ëj±¾Óå¶¶ø°RXŒbU”2‰EÊõ<ñõÇCY=Q®->îÝ£iâ™qÆïÄ9P>µ¬È ŽÞíî•ä;¯ŸÃ•?„uÚýi\Gpò÷nîż'q­‰"\éñ߈ÂËp2F9R8#ïšÊkÚØÓïãS(çq*pF8ûÕDHÚl«»- ’=æ›miÝÄ1DpÊÍéÑ—>„õÅi,åè-qÆF9Ç$}<Ûhñªa® nðí<œœ¿-òŠÝzÒÒM>x¬Æé£NíÔõR0Ã\V-òZ2"',G§=kÑfî^Ü\ÉïÞT‚I6ó‚p3í–æ+|­¦j76ÿß.£åõ˹ý¬1‡ü2ÊÌd'ñ€Ù%|ü¸þÔ «±øoðæŠ[ÐÌ8eTQzàgõçò÷¨®¥Y[£ƒÃdôÀõ¬UD®ÉʱØóZ«MU.´øc ûûe Ku‘Oô5–·…§"QËœVž>'ºAoHȤ£†1ÍoñË»ŠÓçq5Í‘,¶‚-ÑÆÇ„qÎ<ô©;G¥¼­g-»: Žz@d>”b!Å:;CïY-D—¸‚ œm… ÄÌÞmåóç&­od3ÞÁjO…?} ö(ûþ••íômûAœHÎ#Þ?„®OҺɞŒ¿ÄÜjšü—m‡—,"CÎ[AÇ>Õ¿·’Õ±™JøFì Þœþ•‘ìn›ñZ¬·‹‘*c›©>gíÿʵ3€–ñw˜BÛ·cçYävóòK`ŠOãcw©äà ô©çHá\wˆòÁTlªúŒô'§CT÷:¬3\Oo¿¿xK§n”Øoâ¶ i+§{‚áwÇÏ¥ko ¢Þ &eOmQÉ+ž>œÔí«Ck ßÉf$—Sº- c‚"·ÄGûs’9äíª(ÚæöÝîቓ c€(«M>âÚ `h&œ€_aÚÎzyž)™í 7Úu½¦™¸’GÏ{t’þýÑÓ€IçÖªïc"-22EÍË ¾Ü„QË7 èF=éúÀ»¶Ðä»h’†b±““ž@ÜqŽ(è‡ìÞÍ©.Ök˘‡vøs‘àU3úšu>”NÃv~xS!Ir&±ÚÖ•5õÚÜî@‘ -–çèj»°µº†Óº–î[È•¶‚0¤§qÏ#Ÿ:³T ‚ ¹^~C­3À tµÑ£!à€§¦sÇò¦L½Ü˜âL¯#Û#îiñBfí]ù°8ÇPWº‰³Þ“)a %݇˜,ù}*¡÷JÊNëo˜úãߊÆvÆÜG©¤ªr$Lÿ?çZèZKë)c=Ïy*e3•çÒ›­i‘]èè² gm¡YG#œgô©fø¯0Ž®@õã5s=¤údÐÊÁná`øàýª²Þ%’OòÈ\ãqô®8«îÏ[$›!ïXw‡,@öþ•º†áŒ"Â!qÆMb´[žëR·W·ThÆæØ1•õ#Ôs[+Á%´CdžœµèŸR2rÙF.%¸TB½duýxÇÒ‡¸dÓæ‚lÈǯNjX.7KÔä‚§Ÿ­gµnÐͧêÛIpÑaNp|ÿ.Ÿj—ϰ.™)—OîJ²„Æãæ ‘ƒþyŠôôÓPø6]6bKÀwÄOR„àýë^q N‹cq¸†10=ÑÞŒ0ßlgéWš¢tÓØ±ra$«û!“ôÿãXûŠönáAéOî—Ò–ü×s\µQ˜”yTMcéDäW) nïgA]ÚØô©Ž)¼UÐÀ¸§WsJ¦„N7ùS‰®gÑÌ{R¥¼R¦ŠFL~tÍâ>§5jð)äHœWYP?Å"uj™/#?ÅA\Ú©>Š«œ½¹8cZøÊ4ér§¡©;ÅaåXѨʧñFë6Ü1¥âšÑJž /ŠÅP®¬ Á4BÞ$ƒƒÍOˆ´3îó¨d@ÿÚ¡Žd#’(}RøZéw#xömCÿ1à~dTÀ –Û‹‹«Ÿáy;µ?ò¯ùšóþÑ7¨|=´›ËK°ãt„òGÞ·W ³…Øá„aS'y?a“ô¯5Òg]¡±#’n <€9§Wô/û5,qÚt“»Xï\ñÊûçòªýcµqÁtcRgŒ“ø@ô÷?Ö™¯ÞÏ¢5Õ²¢¬÷ŒYÎ1…SµYFxÈÉÇôª>ÎiðÞj"[¶Am »ÆÀbz/¿ËÚŸ/ÔØv‡áõ 뻸ß7CxTñƒåÍ g{%çh¢¼»p›É;º(À |¸ÅlµÝk7–…Ö9"ÉvDÀÁ\ñåÖ­Ãbb·¶x"0ÁÕ8ÈQŽqö¤–Љ»C®¥²wÆî¦yXîÈã§zU½äqÅw¾IíDà T2Ÿ3¸d{~~;¡vfçYV›y†ÝN7ì,Xû ÞÙCÍ…Ì“8·Œæ-ƒ€N‡è3ÿ-Yo_`ùôö¼†M9´ósåmäxWŒñÐà ÍËÙtÓ.{õžæQ s‚硸Cé[DökߨÞܲ.ÒVBN ?½s$R”Ë4±‡$’zsž}*É4£(‰¤‹`(ØÈ‘rC˜«†Ú¬!aˆÀ,êhE¸wš+kY§$´¬;@Ê„{§Žý #ŠMù•Î{Î|ªÝµ€È—P¢Œ³GŽF=¾TíZÊ+ˆI˜™6?‘!¸<üIÁ–ÆTšYã ¼sÓŸ½sQš(,âÎé6Éü89ûÔý«¢¼6Ý ½‚ —6éY†O¯ÐæµF6M>уîXâÚùÝïíÏëX+ƒ®ˆ¡#=Û€q¼>,ÖæÎ&Mh%÷…‚å±€•} ©?±”Õ4tº»†DLD$ÇEãŒþuœ—JÙjÓ†%Ô‚G–3ŠönËiše÷h.¬/øŠk\:—ÚWi9¯?Õ¡®oì­µ²ÌÑ@%—™qwp·Æ^Dð²Lõûþ´N½s.™°´§Ãr•or)R°'#íEèw««iêò6ëȆÙcÇ'¨þ•v_(ÆÙO.{‚ž?ÂÈÃ?á­döæî™P—Œã>xÁ?Èýý¨ˆ4Kqx·’»ÜÃ«à“ª¯Ÿ§_qV— oòA‘š2WG?ýS™ž §f5ÚŸµ•›2"÷Oó^?1ƒõ«frzV°wmÝîŸ'€•G¸àþ£í[šåù&uV¸úÒÞi´«ûÍ þ´ÊT–i WqAÜ× ,vßZñJ¥Ú)PW˜ä#&¡–)XnÁ£VecÖ¦% €k+vU1ÏJ®»…Ê’9­=Ř“• ÞÝ“ªq]'Hź°nTÔ©á"¯n{°Nè€úUè%É‹ zWYu ³ËOY$þU¢fFÁÍ Á”x«Vâ¹—$Ð÷ {¨XXH’Nñùþþä¥q¤8nMEÙ´kíR¾fýݪ¬ ÏŒ±®}y?êEôpéö…ürK¿ßzÂöNu‡´–.ËÒíÓp ~´glµ¬ëòˆ›1[©]Øà×üõª )d‚H猲´L2žAb¸V–ݯÕ­®<‹ …{œ7^ çó«ÞÌhö’é°›¸ 'zw¸oáãÏþUA®{™£Õ-FÕº,^6ÁØëŒçç~µe¢kÑÛÚÎo¯¤åûÌ–èG¯y玞ufo¨ÑÍ;Û5ÕÓJ€PN6(ÿè~u™Ó¤ºí>«œPì´Gï.\7þ<‚}ú}jÑÿþWr5•4øP=ÅÁRAøyÆNHÏOçZÈ4«] g´°1§~ß½‘?ñ>GÈAÐ|ëò|\GŠgÚ‡¢ Ïo/l×#P"5(Îí˜èþ¼ŸÎŒy¡f’%aàÃÈàÓcþ)Š•¼ r0qÏçV[÷y+µ'Â|¨ ¹lÊ¡PѰw÷Ç‹ëåN¶‘n$î¿­yÏ â³÷·Í%Ì d+× ÎÅYM9³ìäÒÇ•¹š&e9çhÏ—úÕ‡«ßÝGÞǺÊ$%çu8g$„œãíéZµÜ|\œœ3G»1¯PË"¢ÕÞX´XDPErË0ÙÚÂ5(o,Ÿ?J™´:Þè_Y_O–@1Ï?Ί½ˆ\Ú¬ãÄUyǘÈÏéTݘ¼0w•ƒ¿ÓίæSo∖³“!YOà'øO¡ò¸«fQQ¤YÚÚèi4‘=æw¾2zæ»mir—©wnÇ`ÙnT¤ëŒsó®Án· )´LL¯üm€vƒî:mÜwvâYÄeºÄ»޾tÏж½IûËYÑ$u qƒ\®}3œCYí#]°Í«É;]ˆÎsÓ>ùâ³ý¡í4×QÏe…\˜ÞL`¸ò¬–k¼ðÇ®Ü[ÚIÚ;(n£-r¥˜ù cùÕŒ¶Z…Üw6z[^Gd‚Iš9B²xQÕ„œW™vcYK-U$¼•öÌhÄnØI—í½ŸÕ´» =)í•ç:ÖÛ‡.AŒÇ’ }üûdTùy°y:EeÚ][U–{ÈáŽP-·d)~8>žaUz$³èÚãDé—u*Fzž ƒôüèþÔ.Û[º·ÓmŒ!d;oÈrOä*[h`½ì´‰ujãPU’[;°Ø+Ý̘óÈÏˊ̾ê¶o®h·pA µ›E¨G2 9ñëäÒ«¡H52· @r«ÁÆÓ“Ÿn`ô»»?UŽêë¼Xä|Ož7)ê~kbéúд¶•• )îÎ@1Åuç­A–WñÚv²Öê41ÄÛQ×дüýkӫɵµO ¨‰À 0 ê0=úצéW_¥ZÜ“âxÁoúºÏ5?,ú¤J•*à¤)ùÁN M§qMê]® ~3@ÎiSñJ¨Ë¼®²xK{Q=ÁÆr~u7vŒÀûQÐÅ´Jézˆ‚W®JŸ X1BϳV%U<Ì„ë÷ f°  ¬.L``Ÿ•VÉrQð­Åvçþ"–ûLec×wÊ«‰°A¬ø F ó oR7]Â<é:¿´ge™‘KHQšÏhÚ­å’_IÇ’}©Ž¡^GÏ?ú•kVÖ;›¡üügY‹Ù¤º¾ºŠÜ"¤!F8(T_¨Ü còߥŠËIÙj‘¿¼ð3c;Fzãêh R¦ U•¸ †Çú@îÙ8ÿnʧ·’Ù¢PFæÉo^:WU}¢ZØêP|ÕÈ…’Q*丠Ÿ>\Úêú=¾”n&†%…ˆ´„ÇâÑâ>¸$Ö2.\&åÎ nƒÞ¬‡~Îâ5¢³’03ç“€¯OÖ’ =²…­ÂÝÙI )»l«AÆ=:}jKíV9­]­ÕcUÁ1È››- €ðzúôòªm“ivËx¦;†20…‚¥I]Ëê8?‘÷þ×T¸±i v°@Â[©%<´Š8QžN?koÒ&즣q6©.ŸròJŒ¥—¼à©ç¥k'ž=Ìh{Ó€ì@½e Ó µÖÒ$îb»‰®cu8$“úcʶRÛ£ÆrøQÈ>ƒçíW›‚€ü`Ö¸m½Úäÿ°õÅXèº4šæ¤dµUŽNô¢òHžƒÈýj¶þfsq-¸98AÇ!@‘éç÷­Ÿ`.cÓ­¯-€qnëÜ7Û•ÙÅo«“Q¶í,3v¢KYaXÕe‘šL¡<Žqê}üêÊÿ\–ò˺Óì{¸Ý»²®7mÇL{õ¬^¥ißjû;Ož8mxvœðÇÄÞ‡çé^ó>…ñ}޵ø]=ÍóE}Ý(á”àüÇžzþÕå2Y|è‚ì®»Õ÷¤ô<žƒçVú}âܧpùbନÚGP}ªâDZºŒ…夑GdJ¤Wd°É-ŒS­g­nVxãŒ:’@óþõ½ÔK-†¡¦ÚÝÝÛü<ȈJC½—¨$ç¯LúЗý¬³Õ4†¼†ßt‘*÷‡GÏÈ}jÓMß´m˹ƒºŽpα7ÂÏM9Fº¸yP±鎟3X»*¨/#”Æ·Rt˜ÐŠ žiÛä”$y-ƒá_XÍ£]ÛCïì€2T?3šåЬq°«/躷,Ú< UHØ"H X(Á<ãËŸZóÙÆÜ ägƒ[¨žò{P‘4]ê+c%×ãêk\}ú•G«,Ÿ$’~6b[œá³Í_h}¬:~Œlg³‚è ‹ÆÒðcÊH>^YÏQݰÓí`ìåÄÁek§H‘PT}÷}«1Ùýù øiÙ—h$G\3-…ª²¶Uœc¡Æ}FzW5Dà¡ØËµ×‚*ÊÊÚa¦j(œÈdèväùû¦g%˧©Ï_z´ŠðiÚäÁ‹›VbPþ%Ç„üú¼æ‹Í­µ+;Ti^[ 2ƒ‘»''Ô`­©è «j¶ö†8V¨:ÍÃ;~!Y½"émµ¹î¬—»…™ÏUÈàÖ¾ÂÞA¨Þ@ᥒB$ã'ÅÇQé·ó­óê)5 ÿ´úT›ácîÑ_Èr[äÕ¾ŸÛ¾Ò÷ÒK²5kœb22‘ãéŸACÜÃl"®âÈÎO­AjS¼!·p1Ð{SÊ=³£—]ŽóNÕg‰³ñ ÙÁàÏò¬çj;)kÙ½dÓ° s¬bV;™cÛÀ?PFj–È·,Ä¡1óäÿZ1µ)µ[I¬æVXœä±=EI2諵eÓ4]CSºÄ—× ÝÀ¸ü8,—ʼ×SÔÔë²»øâ‰$P0 <€'5¾×îMÕµµ¥²¨‰cA9=só¯1Ôí¤ƒQ¹ŽaûÁ!Ý÷Îjwõ¤ZösA»¸Ô­.^7[Rw÷£§R1÷ès[À°\ c <¸Ïêj»E‘-{1f¡Cþä61æyþt{J³Á{=ç„àùY<Q©Úü5õÄ9'»‘”ÔŒðjϱÄzi­o¦A$tS)ÿc¤qœý(þÒè²Zšƒ“ÞLvÊŽ<oΩ,4»É@¸·µicFÎqqŽ=ú×;2â·­ÔcH:wÞÂM€n#Ú}² ª~ÅZ™î¯_ifXvcÓqõòèEfnRh®$Ž`Êêv•n£§ì×wªÜBÄâXIϸ#©¦ú‹í_M7ý”•YIžÚFh~ÁÈû(\_ؼ³DG}lĸ ÁÛŸ™Èüëk3<®e•ËH߉V”K{VXUU#oc9?©­Ë‘©xf]ÁV8¤Œç×aþ‚´½‹ÔÚN‘&0Ö÷fÕ¾L‡ùí¬uìQ&¯rª…c–"åG™Ÿþ5 ì“ ^ÇßJUƒAx³g `»OÓ¡§VýX¥H€GCJ¸©ÀgʤQïQ†À§+PM\&¸»‘@€4êà4³AÚUÊT~ísá5¶ýàäR–ÌSZáTW«ÖUjẠ2Ý _‹ç¹B0V…šd#†­{EÄ+2O4®"¾z϶OÂMqoåq†â§Â‹˜Ðnõ©š êíîÎ0x£c™˜{ÒÁæÝ»eí¬¸…Pã×%¿ý¨ FþOÙ)•À]Ï®ãŸé\íÆÝ£Ôvà†˜þœóAjND—1 øJ&qÔ*ã•yÿu –¡±+¨*ŒéýªÚúÙ×H ’aiCÆÀgœa‡óœÕ\ ˜Kî`W<)çäZ<_ÈÚm¤0È?áƒ3&ìoËÙÁé¼{@Ø ´[&KŒ­Ã.â AÀ^yùP‘OlŒ¬ö»¼\øÈϵqd%.ä‘Ë;€ “’I`@iY´–úŒ`0÷ì%”0àð~tÚ#Ç-äv«I&ŸÄ²'ûùqZ».l5³4ò÷1B¾ó‘µI=~õçnÍ ÂwŠX!À`q‘×ËÏš×OªMuØNþ#ûèq Ôíü<çÔV_Ò4 |53w-‘1"XyäúVb"Îâq2µ³) ñ)Îî<¼_ú]AÔˆd)»i`:yf¥»+,D)eÚÀçÔyЊ¯mà„Æ§íçŸÎ“];f0ªËÅWÿ¸‹! (Éóù§ì¥¸‘Ç[$ËÞÅLJŸ1Ò»`òA9ŽEb›rqLê%d…$l‰pÌ|Î åYGJ]ST2O²&Œ 2Üzµz°Á{ m ø‚ðAõ^4x‰ŒYç%#>øÅ6Y”yÕÎ¥«i8·vv‰ø×ÈN)±öºú7yIV–B¤¸žÝ<¿:ÕöâÕŸEß¶6X°êÀxºà–å^c\í²6¹Ú5Ö`„Ë#Þ/8\z|úÖ²1§ì.òu#˜<·OçXÝC»Õ¤ýÂañHÜ*ýkÒôûhôÍ2;xÎþé1¼KXN¿¥^vÝ}µÓbm:-I6ïWÄue=3î1U݃·ï5‰ä mXú’+Wum§§µÈxã› ²Ÿ&üÎ?:ì2išlÇmGD('Pq’qו«y»¢ñbø‰£‚-!à.@êjjkuŠåd`E»É°»sŸ}¤ô©"Ô` ]mÔHŒî$®G_QêRFÚeÂí̲"•bǹ~GÚ¯0d.nõ{b +åTuØŒýüëEÙ³ÞvCY·?ìi9÷oꆲ¶‘ÎÚ͵ósÞÈÁxÿ”â®àfµ·½6¸X¦³xæBÀe†|J?ó?æ©}ôz¦…sñšŸsžd·ÏhÍXVk°3wÝ‹°ç%¡ú1þX­-qR"‘éQÓ÷ ”K4ÀÔñŠƒN¦•*qJ¹JƒÍŒ›ÿŠ“tÏ&˜4ýÃÕídÝÙéšc¢°÷§îæ¸Xc‘@<‘*Š7^(ç‡Á1¸f®¢;rg<՚ˈ‹ÈãÎ„Ž O N¹B¶“ PÊ¥Wžé6ßµ{G+Ί]¦™ z}ÈS}",“DˆZbà/+W ¢Øh7º³®ù&ÆQԟʱ·-¾bÙÉ<“^_Ò•¦Dà‘ÁRyèF i¥BvH$O6 yüèkW½¹1"»°FeUêp3V6…!°ÔfW0ˆGNX°È÷à(ŠD’ y!Îí äûzð*u°º†g¢+w#ªäƒÇÿãW]™´—Q¼7¨‘–ºy`¸?\Üéëww ™•%·“ÄØÁqƒÆqëŠÔçf£ut÷RhÖ1½›bùü…j{7ï.m0ñJP’FFA9QŸµeÆ­2ä›xÏzçø˜àp}åTú¬Àk«[‡Š ÝÒ¡Âñaù×O€Ûn/n—U¹g*Oî‰oÅŽ˜œ}…2ã´w0v¾ÏH-˜Ê:ãñ\gô«˜íþO‰¤ ðö±"lÌŸçéXLê Ú»;¯…îÙgE…³»½*ýIõ&§TzEÄÇe $†(ÁFzç^¹Ÿ-:ÇÞU9Æ@5y¬[°¹Š(¢cÈZF\š©{†¶°•®7½º~%zœà V§I£ºï#cµ°Þ>3Ÿ!>•jB-r+e ñ±mÝA#§¸÷œ÷GJxç‘Ûa'k6v \uZ›JÓ µ²†îtV¸$<›ËI\äóïþg‰º’âúÚd[h7nŠœ‚>~çu†°ÓݤQÉ­ÆÖåC[?Ĩ J“ñC~”Û‰}ZÖ$5~ñ†?Ç9«ö‰{If×zX„+`ïŒã×oçŠÂžÊǦڭî«pVƒÁø÷Ÿáçõö¯EÕ¡ÒïfŠÏŒg8åYYdÕ¬{?5ÃK+>OâÛçù ÅõVýš’ÒM$|¼°[¡l‡&FÏ??Ÿô«99 Êf'•ÏáOviI®ð©è«Ó4ë˜CH®±ÊÖóéZž ×clca#c8ÛÈçÊ™oq2Ìí=‘1€PãÏ®8þ}zÔñ„’`ˆ¾/_3V©6ì©´98ç>Gõ«hÊâ¨ãk`ÊåxŽyäúüÿZæ­§¼Ð6ÀŒ¸<ž+;­ƒ“÷Mâ‘C(•cƒúÖ‚êìÚXK4`‰Ë>ãÔn9Çù÷©|¢–Áâk2ÕB¬ÆFT?îÀüñT"ê—*®@¸·îÕq×8Ú>àW¤fÖlš!ÿm)l©ê7ä“ôÛö¢õSñºm¶£`…{¹f†Wyp)Ÿ¡¬uÖýAÿL˜žÉÈ;'qÇ—JÙM`ÒiÄšìäÇq»èTC^†¹*-¦–ÓS®A¤Úž€(#®âÅ,Pr•w•-Ã/^”ÿ‹>”&i¾†0°KŒÓûÑš1)ÆLŽœÔÅ'\ô§w€œñUÛ›9©›Î¦ "Ž„C_\´vs:€ì¨HàqLIëBjo³N¸ ’Î…æÜÌŠ–x3WÅãìŒ1²ùË2ãÉœ…¬¤‰ÝÈÈzƒƒZíN3gml•vÉ;¤Ÿ@€~Dþµ# ykB¬ãœÚ]Ë0Ú¡_hê§9Ï·e¨[;?§ÎíÎó€:1 úp(ÞÈZ÷Ë2™£ýöPBO,H<ŸaüëE£÷sÁ*]Ƥ½Ìë#c€Kcû}«Rj+û%ÐC‡»¯Î+W¿'su „qáÈç>´‹§E¦]OmÙ ÊLc>ÃûÕã[#Ë ¤ŸÝóçó­Ï& ú’.–™”2.Añ8äùy‚‹^ñc%aï)(qÉ#Œt<õùÓ5Ù5up#l1ϑ㧽D·—Z}ÃÅÅÝm Ýëà–aœZÍCeŒ÷f‰IÕÆcã§#ùõ?•¥Cû>Êiõ7^îebÝGË>~CçDCs3ÚÙ£öd¨ð€9 žµ“×ûB{Gco¦Zª*Å$“;Ž®ªƒioýçZÇWyÙ~^ÑZjÃU>Â÷~ lò=HÀëëZi­¬î­mSáÑŬkd€6ßçÉûÖØMeØË§²¤³•Îp]Ëc¯ÈWôÂÒAq„›+Àã9þU$¸½Õá›Z:q»Áh·>î\‚1ÿ–ªµK·„C$6ìËw ‰ó´øüñV7Z=çý¬µÖ–ÍŸKýžÊf€Àƒ=Çó¨¡Y#…VŒ±ØqÆI?« ­Ì·÷BYÓ»ˆ ¢"@véžG^Ÿj¹h.B²6â[®1Ðb‡¸X­mä¹ ‰›Ã•ÏRIä«b{‹‹¨¡ï>)'©i´·×3[)mâØ:Ÿóô«hìÊ3$+°·ãšS–"¦Ù›cˆ\·y#È}êÁî ¬ÆdÄjÔb³zþ•IÂ’1Ëá Ž¤qЧý›¾ B$LPÄ£jª“–?3Eé¶Ãà$ä,’\œF¥î„Q—R[iÉf<·­2J9¿»BK T é*âm–í+Û±Çó©‘€‘^L–pNÒ|*§Ö‡—d€+nÁ á¾qZˆì(b¹BËÁýM[ÝÜ4ERA†ïY¿O*©š<Ù‰`$„üB²v‚{Û³lêV6ˆ.\J\¶(¦Ù>¥mMsè7 þB«ûW¬\´òi€Š9YO/‚zýjæÆ oß –lî8Áó¬–·43ß;§y¼òwt9,IúäÇäû `.í‹Úm*Òcrޤœ~•0¸– <[«9†VéÐn×ä)º¦ˆ¤ÅÛº@çžýWe»V´ˆ‰î:ûüÍrW¢ÿ¥¬Ð꺫³ÐC&`ð1üëÔkȿә3Û«ÿwÛ7ÿ$5뢗ìtS€ÁÅ- îk„“KŠYG3íNÍ*æh;šUÊUŒ`ӗ޵“Ò–íÕôXK¸z×AÓOu›ñK½¦ïLsP»ã¥K. A¨N>üŽôÿæµyP]Ì![øÝ@ùäåRÏ7h¯$h삱 ŽÒyÉðàþµCgÜ›Äk’JK¶‹8úôúÕ®¶ÒïŽÔÆwdÃŒñÀϯ'î(-2ÅnïU.Gn£sÈçLû’>õåëÞš\ömšÚö÷XšÙŒP ;#8êA㟗õ{¢Ã,¶F'R“H+m,û¹ôãmڦѭ-ÊÕ-Ĭçjr ãîsôpLÐé·¦v-;ÆŸ¼<³8 gË¥k™è+L3 ÕYùÚÅNOCŠŸZ×L»±S=ûøûTëAiÒ]ÜÛÙNcï%l•‡‘dý)ªÓn.ãø»b@³¶šWðþ%8ÏÈ“W V¦äêF2»’Xéÿ˜gú …¯máº[‰ƒ’pp?§çQÌ.PµI”æÚÙ“þî3ùÑwŸ A‘FvyOçZŸH”]E«è×¶–ÿ»œÂê#èFF=«Ëe¼˜\d§q"F!eQƒÂí9÷>uèºM¶ÎÐ7vÇb!<ù’LÔ=¤ì|:£Ëudë÷WLðüy#ï\ÿ$÷Å4˜5ÏÅi¿ÆZg Ÿ «3Óô«M>ÔÝYÉ%dW'sžOֱ݋øƒ®¼1§¹}ÊÞ£?õùÖÛeÍ­¼òûÉ ±UWÏ©?•k‹þ%\¥äv°Cos(Œ°ºFãŒsýè9ate¸ˆ£Dÿ…Kc¯ŸžM! —:|.!fNFOæ—ôª3u^µdEÕÍ„sÚF…‰ \68ÈûÐE‰øéîX$lDa¸óàý(‹]NKÛÈ`äyž9«2·Û¼æ WiÄxè)ìð?Q½6’¡Q’#×üÍ!2F—(p@"ª¤…ßM†âc—VÏÈ:ÊèÝ#Å(îÞ>|\qY³Ï6AŒ‚N‚‚º£HÔu`3jñ ¹ÌG"8ÈRO h¸–Ù‡,7äyLϰ¯wºgÆ£hX zª{I4û‹y^oøiŸ÷›¸*̸ûdgëVº¥ì¶Œ±” .s榳£»’m1 å¿z ƒÿKcŠ¿SFŽ&EÞàà‘ÇŸøEbuxtÉb’0Í*ÈÄÜcÓõ£F½ÝéEâ‘ûøÙ7/N ä|ÿ­ $md‘Cï;‡ £ùó­N¬¿Bênnt‹˜e=ÒȶÎTàå½ÎG@{ÖWà®&ŠHÏH?\äŒçï^‰m –ÂL²£N*·’çþ{VBòÆù;ù­[È–ò«’ÙÏÈ’?õTëþŠ1H-—aBK$ÉÉ9ÇȵYI£B‰u(%•Êó08üóö¡g•!³x3âYÙ<8©<ãì*ÞêèÛèí(—|\8…H?bH£ÿÒæ-ÛÞNÿ†pr9à¯ô¯iâérûT²dã»tüf½³šÈéÀµÚç4ÛŸ:èP+k£5q\+]»@ÜR§b•†n÷®‡Å $Å4Èkéc{Ñæi‘ ‹“\Üi€¦“Þ™ÞT« ÐLTWÈ# gkdûpk ×$c·ŠX+;[>ýFŒq±X1Î1ŸËò q¶–Ù2¥¤Ž·IüÀûTý¦• ú*)#\îõÀ?ιÒ^NÁÛ]ÄY^S4›Wœx²OË•x¯Ýiw¦êzf«>‡lí’¤Y€ãßy­lHÕG$y…#?NkÏtÍ,éZ¤W£Éhcı‚„îôùf½Rµ“TÒLpÜ$r<%”·Ë#ú}k\ßìRèú±¸íeÅ”«o•¹À>x§ÏéZk˜ROŠXƒÈ¯#ÓÚ¼†ÚêîÃP‚ñamÖònsާø³óæ½Và4²ÏvÁXyz}E%Ú¹›º½hZL¯ãÙŽ§µi#¦¿ ÄØI¼Gõ?¥]¥¬3ɺX3 ÄòxªUš+ ZØÊž Ï>œðZÔº‹+ g»yD½Ú°ú§ %#‰)pœ‰?„ŸCíV[XŽ? ó¬Åæ±u6­ÀËcEÆC|þu™zª°·¶Ù¨4ƒLK{†#}Âã|üC“Ó^—â Ï!b›[¨ùžjöà¼z{ÊWl¢=ÅAáN9ŸÐîàœ+*Í/ €0z{yUçêÑ{ÿÒŒöŽ ¬Æ¤a}~ÚɤKnw²c+Ÿ>xò9÷Á¨‚ÞÒibEß©y©qÆB»@{Š GœÞX©—Äv!çÜsý~µ[u«47,€ ¨¸ëÏ_½O´Z¼ )WäAÅTpÒøx3ãðƒåSéúÈ6ò¬½Ú:òwt>†ˆø›VT6T)}ËÈ÷ó­{¢A2*§üߨúŠ: wµ¶`eñÇ8ùUjÌÏ?ÆÀq &¢±öùÎ.wŽq)^쪞1š·E&¢nï]¡e@¹ùÕ&¶Í„¤Î€3ÃV„`OðìÞy9ÇN•˜í%ÔRÞ½¸ÃE{WÅÀ‘’}öƒNïøáiòÅqy&å •9,¨ÁùÒÓµÉ4û‹e…JÁ˯>_Oç@Ý€·.Ñ;(q´àãŽ>UcÙ½2=BîE›˜” ß~¿–>µË~¤&uÔ#³Xå ÝF€&rAô?Öª{A©²^j¶P²)–ê&gߌmNŸp9ö«Ë‹;YÒmOOÛmwjö¢²8Ü=0úÖWRÒšBr¯u4îÒÜ€Bð}ÁÎG©«Ý¿B·Q­ï¤‚·¼È\Ïò©µY‡un‘¡;3œÜÊ„¹¹k™"v m@ƒ TU…¼:†¹eìÌ*;F1´€yþu…jÿÓXå]³%J+ zÅ•È?Þ½™G©¯ì­é¶Ô¬œ!^ê3Ý긯CµÖŒÇ >µ¯Fƒ±š¬]EIÁ`je½_÷f³ñª8-;@­àfÇ?jŽk‰àâŸe‘K#Ö©–i°Òm©VM­Ä„ŸZ|E¦E*LqÖ•0x^if¹šUôœÝ¥“\§@³]¹]¨§JNSŠJ 4÷le˜p(({N7jq7›ÛGùqü«ÑtÖ²µÑ4ëY%%–ÜzóÎ9ëÅyïhcV–ÚERø·P@ÏS¸þU­’êÆÛB³²²ž#u4C ·%˜ 0ó'%¿.•âÿjÐ;®ÓC¯v°ÊmÒ ).U;wr¬H<úäþUluÈÜ]Çcg±S"ܰw‹òò¬?e,Eçh4í’"Ld•X`*®sïÏÚ·ö6ûI¸Õ'†wu’ –í2ᜰ²3Ðt©´dûQy:ÌæÆbét‚Y‹Ž70'b l»5ª&­`‹ÝÑĉ¼p28?¦~µå©÷7e.òªç`\ŸôúVÿ°âk8®låð.2ÞùC~XZKèš}y´ràNØ€±*Œ}Ç#çÍ7Rž V5Ô`lÄÄ "?ÁLí•“$ßÃF7 ® SŒàýþõg-WQìíÚB› Èd Xuãµn\èZC¯¼c[Mâ}…#eòòæ­ttƒJŽEÁyFæoZH´‚÷HXo-²cfS¸`ƒ×#Ó¯åDÙ#Ù¢Ù1ʦv8þ%É#ê:}½iÖ}@Eì uc$ûX‘ÏÖ²Qi×Úïâu ǺaÆ[9À>¸Î+b2k“AÄ,’¨t=A©ÏX9në4jë»Ó Áê Wj:X»ºI%}¼[•c›`m\±+–W';†—ªo5Ë›{³DcR2»‡&œË¾Þçö]Ÿv>7K$€¤ñŸéYËf#plì7ÙžòfÝÓvÚ{‹«»hHŽB&³mŠ?_½g!š[ £¹Ðº2¾3Éõ¨5:ë. ›‘8ŽHË|;ÇB û椂-³'|Íð¤äŒøsëPZÌ×1KmGïÝãL€]ÄùÒŠBö±ºJ7+¯€uÈ®²ìAq8ýy„8*O˜Ïö ¾.DláÙnöÝÐûÔöð‰,Ë;°œÁÿAÝζĬ-/{) "“¸#èzûSd=©ÔЕ[&l±+©ôÆߚϪ‡G’î@%f#–-I>Þ_á«ÍSTK›Û ìÄ€‘ùî}~õ Ç¨ÄêY#WbªŽ§×ØdŠã×·ÅRÉ!’V`6†àéZ}½¥µÄ{ÚTÈvò8þõ{“¡%¼Vl"i`*ï*ub=OR(]=6ëw‘‹Î61¹O‹ŸË眻@SÍ5¶“{Ýî-"cåÏ_Ê©%¸70•=Õ¶áýD©?©­N±hö®#V ó‹»Èyôò¬­â8´9¡nžƒ=}~~´ü—n‘_Ü«nÉðãåþ}(‹'Yõ+pê2ØèOØ~TËB ¸†åÂ÷I*“»Ï&§Ê±\|\„gh¤ãøJ±×þU‰ö­V‘¨%î´&U)¢I1Ÿ?þµ©:„vÿ‡ñV2ÙâM[l+µR…Âå†#ƒÀß­Znb3œ×«Žv3W‡V `}¨¸5O¹Ç½fQÆ|@Õ„s~ì ŠÕæ T¿ÏåG ³? §>õ•¶ñ‘ò«Û;¬áBóë\zçou¸ä’´ôˆ)È|Ó\Hü†Z ™Añžk"ÏxÿçJ©{§ôjTø+Åt ”DiË 5íeà ©þ×V4CÝ1§¤žjqyŠ•baåSCR Wn#ͤƒÚˆD#ʧX·øXpÜÎŒ~³‘QÊ>TppÌŽ£Ø½;@Õ,ì ‘/mÌ’¡d,|*¹;G¡ÎÒµ·–ÚMÔ&&`Auù’>Õç.Åb88úד¿:Ö¢Îh™,ÁRâ'8 ŸÄ¿UúÖïU×nãì=ì˺vu‰ùü@Ï>YîÕÕ5KVëL‚å%E¶ vÝÀðuú1ü«i–Ñip¸1ÏmâËr€îA§éž~µ?ðSk¹Ð®tÍV=’MÞ³N7^‡óæ¤ìέñ_K ¢É?x¹à €9>œPê ¶³Kc­Ôr*ƒ¹#`p0 Ÿ³ÐÆ-ìô‹<¤qÇ$Þp:œŸ^s[žÐ~­mÆ“u3KFP3œ²úùVg±·Qü]Õ¤aV3. “ƒ·‘úãíWÝ –[}"¶‘ÊÉÛ×oSòéÖÒt¸ÛX–â݈ä,êùÞsŸçA£¸YOsÝ>Ð-î=)—nV$š@¢œgŒUmÜæ­m<(.EH,=ªEuÎÒFj!¹ä1ÆT0Rìîp¨£«1òBuè·\2Xâl@àx¤÷aï×Û4œÚ/äˆ Ccœ+5Úßr„gq\ïšÒG3Omo#xK¢±„Š Ö ÿŒ…å†~Y5®>À qsÔï@ #Þ²úõ•½½ÊL™Ùr¥°8ØÞxöÍk.4Æ´”¼ä˜Žq»>B«»IðGLŽ8ÝW†a»®ÛþzUü’XFwI²?´­á™w¼dp ƒ‘鑿k[1»ïæ2e‰(<«ܶÓGr%Ý.å}Ù'§‘­ìÿZEÀp ã¨ò¬~*P°M,C¦P ¸ö>TDóIoßB K‡=犀8iH§¦zj*IdŽ“ü¯†»TQëd7RÜ\# Ò’7 ø€j㦷ì´;$ ¿÷Y^ÃÁZÐê.,cM§pR<<áa¾ dÕ.•…›M¼ñ,r,ñ«2Θ ƒ÷â¹u=TZ ×_É ÛËÏ,_“€¼sò&¯ôÕ]§ÝóqäR¼pÒ}ÈÍW꧸í%⣘Œ‚)àž?/Ò´Ú~›%·i%™?†X Eçy,G>˜àâ³õ0Úí:âtŠêɜɑy$ çò¬ö›aq £MwX‹@˃‚s»§5­í† >Ic}…s/>xSÿ«éXûý|ß–‰Éø¸ËŒ¡ótR¬O.—!Ž=ÛgÏžAþÔÛ+$¹·ÜÀéäôŽGÏò¨ º` ;€R2pdÿí®´H ìÓ¸l®ÄÁãn'×ÌTæmé¯ßê—Gvì*>*ù"ððNj‡F“¿º½™€¼ 6Œp+Qgݜ秽zxÿçR‡!ºbŸ eΫE¶ÆCsó®|*¡Þ:Õù ­#ÚB‘š½¶m 3TȨGˆæŠøµ­sêh¿Ü˜[w½8pœÿJ­ÕÕ¿i¡! œt^U¡šÙE«Eµ$îÈuG8ðƒ‚TcœnÏÒŽ·Ñÿk<LýÜ£"£(úçŸo3èf{-¦™4×yP«™› ycõ´öÚZîÁb£Þh¢ÅZÝïú¹‹:–âþ4í>µÒnb$ø¢l†Èµ7w\ b³×œŒÄgZd:„™Â¿?óUøÑ{ðÉêö¡¯G„­rÞgnYÇ>@Ð÷Éq!Þ’zø–Vü\SãÄr=UÌY Á¨ Ã:éñEÇÅ ôª—â•_ˆ¸0Æ“RLJðâ‰UÏðÒ1œç ¬hˆFjT…zšpSNÁÇJ)ª8¦‰Yk¤iùT3»yÓ ¾y&œéŠd„¨àUN„Ï…¸ ‚}2*“µ¶l4éî%Vï—Ю>£ò?:¶šF 6zíVCýê¯]¼Yì‹t·–NêR9 0ûm?zçù'„Úö·0èב¤'àcŽdð‚xϨçê*¢ÖÚãS±¼’'&[0“'`b>@)ù ò[˜·XÎIî¤êzð6ý°v'–$(ÓFfÀxV^sóçp·ÖŠëQ¹¼†8æÚVÅp¼ÇœýÎM]YÚ-Æ”— næê8ÉŠUm¸§Þª¬âšáŒ1Eð$räuÉ=5{¢;ê·_³íû׆”ÆÍ´Œq‘Á8÷üë\_v¢ç²ýŸµ»°:…äfF¸ÈÁ=p1VÚ|Í-­¤cÝÉÞ[!ÈäÆÄ€?òš3N„ØhðA³k£Œ15C­ŽÿR¶d‘cšÎð¾?ˆ† Àù¨ûšß£ZU<á#U *ÄqŸ:·¸r±6Éà{P–Öfòä@P09w8Ud’|€59yÚKË›þÕKÚ/se;ZÁ ®¿š¿{ ”)}¸Ü^+ozŠ×š8ãÚgä?:ËvB¿l4Ó•^í2§Ö[é4gÄ“K!e 0<¹«¾ï¾œoPc¡#;Û×éT÷v7Vš‡}§‡=öw2šÔº+/4ùÛP‚ÝwŸŸ.?•MªNmtE@” § §ëE\Ý´0%Ö — ¡ÈüLÄqóëU²™e°‘â Sô<ã× êÜ–Ÿ\†9´Ù¢K‹CžðñŽAãÞ«$ÖçøBvF²œ¶ÁœÇOLóùÕguxô‡»’mÄKПî>T— ,0Û„hÇÌõ÷þÕÎõà—Q¿›Q½{‰‰¼‡EB¬{'¯¬%ÉSÝFn¸ªI&½³+ðÚ%¦Ä$¸y¤8è:gåÀ_zœM¥_Á¾ª±ÌãìØ¤¨Æ$}±ÿ¦µJ¢;pˆ0gtyínõ(ên!Èq»$uÇ—Z½½˜ZÙI)Ç… }†kWÚ2R_‡žâBøñœ|³U·wøÁǵWnb2M =ëÕ9ÆR`Ÿâ¨ÏxƒOþj•Mh>Þå¢#q”¾AceŽ Vk hÐ"/@ÎJõ *–È*ëÊžAç}„Ó¢˜^ÜHù ˆÂù×?ç¥zª®ÕÆÕâ§èc;mj–hâh¢†b¬¢$ÚªÞxœtéŸ+ÍV;m& XHèQ(ÃPŠ|C£“צßz¿í ¬wúI/ÈCâÞ£ò¬–ŸÝͤÅg2™Y€CìÄ>azUô_ö^KK‹«˜Ä`ÃyJ¨FWrëÈûV]â×u˜ÂwÏË<~X«M!¯tèï%vµ›wÉž… ¨?•WöÄšÔ²¢íiÕed'ð–@H¬õìÑ¢ìEŠËe-Ñ\vB õtûÕΕß´%’%ÿ‡ÞrB àP¶‘´ßmº<6÷Èñ÷õ§]ö‚í¬ܯw7F•Gâ_å]¤¹ˆä½¥»{‰d»¸€JQö–ög¶†Q+¶×,8cž>UH§Æ¡¸AÔå[ h4ÛXcžQ†ÒV]¹ÏäÿjÉ?@I­ï¯µûõ [€ÛÓ9~=Á8ùV´Ž5­N;8ˆ¶´Ìm0àùàyž_j7±Yª±ÄO# Ÿ3ä*§³ðÅE½’<ÊäÊíânHåŒô®}{‘YîÒŽìÚCÜ"EXŠDÿÄ\ýÍS”+m‘ƒ‘ǯ_æ+QªÉlöÍ Ÿâr?v,È™ä@¸ó šËË(•”"”IÎ^¾f¹õ=!«–`Š9bé:\ŠÝѵ;’þ8“ —ë^yfBÜ÷Ì»–%/qÓóÅo#¼NÍvJƒÆ·‹`ë¸ò~ƒ§Òœø-û7ÆMwr!ì§Ì³g–?ÓÚ®ûI/w¢L?‰ð£ê¦j.ÌBɧ dI'‰ü!I'ÅÈ~.h.Ù\ì‚ÚÜÄå¾ÃûÖø›Ô0˜Ó•Tüê-æ’±5ëdThŒ|F§îr§Š IÁ¦¼îF3SdQ'>•ÄÒÜP"Sç\2ŸZ`ÈçñsCÈÕ&üùÔl3Zf•I´Rª’‚kŒàùS•ñåIâ 3\AÞ€b ‘üDÑò¦`³r8ª€ŒlOJቺóV!¥whô« “•Í01OàRÞsÀ©ª|X@C/ÅöÆIc(ĺԊ$‚|ù¨AÙrA'•|óý* ^ÐÝ5톯,3¸€Ì¼`úeK}…dìíÐÛÏx'îû¦ƒxa“€âÆ@úÖ·PïJسˆÀmñÉÀùÈ'Û¨úÕœQþÛu’>øF]¤ RäõP: c¥që‹:U:YêT·¸ c,ÍÝœõùQýœÒàÔn.íOÃAç!°òÉù­«ÚoøhãRD¼Ì$lè@ÿ<½èmFÚ 3F½{¦ÚêÞ&ßÞw ç£uùÖ,Ê ŸPÓmíb±Ò¾$I¥gÉVدOQö­­œ6w7Ç«K‚@@æMaû/b¼kˆKG(Ë!Ï>Þ~ø²Šk©\‰QNã¯\`ý«rx-x*®:W™vŽâ1ÛmFå÷i6ÅáHqôÇå^‹s/Â[<ò©1A•Ô¡FH¯2Ñ NÓv¶¯f‹Û¦yœþÝâ>už…ßbt뙵Yn­ÉH%ÝqøÉ‚²š¤¦óZ”|Û@\à ØÁ{­ÌÆY‘" BJã”Ü ûŽ9ùzÖ9û«¤v"EIúnÁõë\ºW¥[-`‰ÞdˆÄŒyp|€=xÅWéú¾±opÂÄñ€L\ž3ÔOëX»Ëéµ —¸”à±%TzJäQJPÈNìðYAÀ«ü—|1¼¸‡MhRé.¢Ž¥¥óe÷ÎxªX»ImaI„.qŒä¥œ"ºE0ÌÑŽc "°Î<ÀéVZßg*´ÃdŒ:n„ãœ|ërõPÄ»[ûi.Ãð¬¬N~ù«x­ûÁn$+*«¤q2\®psÓëÍd. ¹Ó[’{¦+"68n8?jí¯n5±f.6ÅÛ“Â "þÏ¿–|Àõ9Äîêã:ýõÔ’ò)6·®Îjqë[KÍ—:…‹Ü,qêA2¯‘O׬”›«¥Š!‚í…ÈVzŸÐ´·)h-#1HwÊ;Á¹ÀÁ*=ïZí:9îîîÞùSnQUéžHõã¯ö¬«ÜIhd½]²mnâÞg«×î+_Ù³.£al$ÝÞ4Æ=Ò~"»x>þ×7Ñ·±]¶±q‚ãv>|Ö#µ×=þ´ÑŽ O¯_æ+rÓcòšókÀÓ]Ë3õ‘ËWOÅ=Ô¡fžž#ÅL‘å^@Än Xžs\kQŒŽ>tÐÌ× fŠh¦m ò) b„S±FlS>Ut“JˆøqJš7¦Q€1CL¤ù+DУçô ®,ùQ…¯,é¥ «“ŒSL&­‹ƒÒ˜Ö-º·ò@!@õ͹~Tû¡ý®Ôa°Ñ.ÈL·+ÝF›ºä`ŸúãÖ³=‰Ó…Ô³Îñf8ã+¼Œ.âFF~_­s¶î“ëBªÿºˆGá,ÇÜ}ëq¤iÑé: 6ª»X¨2Ÿ2ärk—íZ‹k8;¥iðÛ0’à£Hʤa_“힟ôÖ[–y&Eç,źô<Õi®å»†£& vÇ"¡Æ@^?:Îê7[É»•YbÁ 9ë€ò®¼ÏÚí=ù½³µYü@`:þf³ÜIir$Wdu$:ûÓ®ncºK!~ýÛü*¿ç0]ÊNà03ƒç\:»v4ÖÊX³‘àÊÂÀnò:¿…MP]hòé›8Á~+ù=ØTºI$“E•Üg aŸÈšÕ0…”o¿„4aÏñ.âqjé9ù§Ò¾ÚÆÆÖÙ£0¬²‘+¨9öÇ¥©$ì±ÄªP¨¡@úiotˆ—B@J¬ÖèX±àòG¿µPFÒX[Mwñ!r·•tæó›Khò[ ©ßq@ ®çóõB´ö÷P_ÙÆä>VxäVGÕoõ{™‹æbAoL:tþ”KÝÝ I‘%ÁŠ]½}?>œTÏ”Ñií’[FæEÿtç b¤ì´ÂÞäÙÌT¡‰$1ž¹è~ÜqYùïw4RÄ$<·¦qÉÇ¿#ŸD·=úÜyå3œsƒŸC‘šåÕŸ-V‡Y·‚û@ŽHÊ ‹wÙ ‘‚€q‚ 8ó¶G‘ FûK0À¿°© ÿxÒ]ÌÂ2LŒ¹ê}û•XKom6˜/Þ¶ô@‡Æ0<ÎIùTûô {2O:ÁÛo‚0<ý[æMzGf Ävª€÷l¡¹êQù>•åöèÍ*"#9òU5í=ŸD.Û6ìʯî‚/ˆdeÜ:=}qYùt’T°ö«¨@¾Ô.&Q˜ ýÊSÕéö£Ö1æ¼WIÖ jé¥Jýè”Bó5§’ÕœPlªrk_=LS‹HŽÚ¹.ž6îR1V¬<†=(V•FG•Yh¦šÜªš­‘O5§eüºÓ$±ŽTã©ÐÌÍHYYpG>´}ņÀp1U²#/Q[—QÌR¦dúRª=p@^´ã+Fl@<©žs^ h…@éÍDЩ#lŒ‹’O5_qp85¨Ë©éU³²n;j;‹ƒÓuòþ,×YÊ'hÞC…4d W É5_Û/hËk‡ Þ}êÝ–ñ°Á£R⃶™¤Æ@ik‡JòžßX=©½‰à•ž<,äãÿp¬¤ºäw°@dr¬ñ…ç€ãŒú‚@zõžÞÙwšdwй1æ7ªÝ?<­xMŤp÷sª¹ƒ!$\òý_®<«+’Áo¨]¹°º†@plAà€x>üUΟ Í{ 2€ñ‘$n„å€ÏÛ%ÔzVOVÓ¥ÓÞ¬^ÒuïmäÇPzƒèÀŒýjÛKí:¸0Çn8 AÊ“‚<údþ´môjàS" Uñ±*<ˆ8É>œf¹|t-Þwk$ŽÃioCМ|ë© ,ckïgv 8Áu÷5QÚ¨ZþûIÓVê8RYGy!P’!Ík«e'Ö&¸Õã¿”xåY<<Œp>½V+¥½·IbcݱʖgÐ×’êútšF¯y§J}¼­] ƒŒàôÏZØöK\µý™w0I÷b©!Á< އ>µÏ›ï£k“&µ2éÑg30äz“úVoý]Ó`е›=.ÒRÑ, ÅIƒïùµo{kñÚ”ö&~æI!%Xuá— }3^Mþ£ê1ÝvÚî4’Iⵓ¹ï$9.¯Ò¯W̸àUF•Ào!G\ôž¼ÔecÙÎI+åü'ùÑKv—QH·Ì€´ˆÃׇØyР™$Ý€¼“*棴+‡´Ô"H>ÓÆ qÓ£Vy]™Ø22“ŒdƒŒâ±¨ÊŽA‚<½j×NÔ¦Dti ‹>ÝWì8®Ÿ¼©cg¨ÜÞiñY´G1òòŽwã¥rÖñ/án WF  4U‘u‚䬋–]ÙJ.ÒM6$ýÙ/—L}uó3Oy v«ºÚUÚ<8Ï®O<Õ¡wcÝÉ „ÀŒªŸ#ÎF*×W»†$dIbU,r:ù…ùò+#k{°¼¯âäÜ\¨8£>yéXï¼™é…ÅÉWh¶G€? ާŸ?Ö Žhš;ñe¤Á³øNyü³ùT·7w›ûÙØ©ê êLã©æ†ØUã§5ÂÕO-¢¼’ÄÅÙ6ž9ýh6I#T‘Õ‚¸Ê“çåIØ»a˜¶=Mi,-þ6ÚÎYÒ6D\s±O\ôÉõ©ïvjÌͨBØðÒnÇ‹hÀv­Ö©ª¾‹h°D@!I•çq{ò>õG <jZ䡌P&ÈwwÓ3J]Yµ½f¾$‚ý÷uœªÄ—?7Àùfµ.xþ`Ö:=¼2Þ•ß/ýG“ý>”[Ò¦'=* 89"G#m¦vLóB3Ÿ¥jî‡àñCHÊGLÑ“ª‘Ȫ٤îÛ¡®‘ÄW>žÔ@}ª¸Ês¸TÑÌOµ[çBÝTüè6¶Fã­ß0ßC½AÉ û>/öŠTvøýiUÚ5bá‡ñf™-ËòT×x;™³ì*Ô÷6À§5Ëà£L’¹9jcäy¡ÒWQS„ld¸«˜ŒAÛ‘I­0MLíž¼ÓíÄnÛÏ$yUÑ6nØÚŸR(¸l[Æ´d;‰N*Ê(ÃrF+¥Ei J4¥  t¦ÈýØÍsÝTwö‘ߨOi/à™ :ŒùqÖ¾|»µ¸²Õïmd‡¼ Yf‡Ë<Œüß‘ô*9nMy?ú¯¥Íc{o­Úåcœˆæ#Ê@8?UãéV\FßRµŠ-¦ˆÝ@Š(ݶ•cŒŒã¨éûOŽx¤¿±Q(¹–&l”lŽAàªû€Ýï~1¶RXm>}HúTª·rÂH%Ä«·nr[oAlSwìj{#ª=Û¼.Î"ÁDéÓîj.ÔÂ.˜Ü[¸dVfRéþg4{ǰÔRâ5.W;“8ܽOéš×ê…K·Œ÷ETÄ€``Œ“ù×N?Êe* »ËÏõ2ûL³·Óó®Ãlc–äÎÜ*.FA åœó‘YGŽKY^ÞèIÅ»P¯‰HuIã(øÎò÷Í4FDjv¾òx8ðŸoh&ílZ…Œp_Ú &w-*€MÛ€õ<ŠPŽM9mØ’wEƒü, Ž}y5>2ú*Œ»¤FÏ뽑÷Àç!³çJææJ4Q2ÕKd7©ö5LJ4xʱè|½ÅbÅh¬õ»£Gñ½Ð•¶2ƒ¸ ð§Ò¦¶Õå•\ÜÛîÚX„†p Æs…9ôëYÄ Ãeºã(½=¶_BÈv°$–òçé‘õ­óÕÜGumlßÈ« …T ‚ÙóÉyýìË"]ͭʱór¯Ðø€Ë<Ž<Ò²Ú×ã5··é$„)>CÔý*9UV|Š‚O?:ΪyãD”¬SÇ2ÿ¹2þà : g¸<Q‚ıÇf„P _ò£Úàü Jœfã+“Ò²„—N1lã$ôÞˆŠw¹•¡*ƒ¼aør01€«RjWp:ÛÚ[ ŽÖ$mS»tŒ ¶OåíŠZCÄ5¤¸…Š6/–è8$Uý‹ýiE¶•¦éá…ç¸#©Ú<¿÷~U£ÿO¬$M*MNà~úí°™òzíœý¬MÔÓkºàµ€7L#àä¤c“ò韥z¬-ì₵"@о€ é&ßfŒÂ#¸Æh® hŽôyô¦ ˹$Œ’/ 9ÝVó˜Üت;ËoÞdt®¼¢VœËøy¦í Ãhx­Ü0ëFÆ}êÚ Ý)Ÿ"´c¸èÑ“Mb9¦ÏQê7x®÷kžƒçMÿ ó¥V}ÚúTùÀ‘œdb¬c‚5sºœ–¬¼œf¤ÄŸ?*Í FŸÅŠî瓡Ŷl*ŸN4íƒÒ¦ÀŒcÆEKnÈ’aê—àd/…å}M™€d€[Ò–Àl 0$ª€Òîñ¢‹[¸ÐMs±G‰=ë¬ëŽyª×½LuÅsª¤)ËRsh²¸¿H Š®Õ ‹´z-Õ‹°^õFÿcù½P\j ;õ=jÆÖñT#sæ+wŒƒÅa°’&½°¹"9¢$mc‚².r¯•\¥åÏJô?õÂK[Ä×ìqãÂ\¹‡áoåöõ¯>Þ]]pXîÀW+âšò3L$O@1šÐAyñ6‰_¹1®['frùr*†Ö>þuƒ!wñ’@òäô¢´†hµ.ìä ¬ rp3žEk޲êSµh•gÎ Èê0A鎼|±ShÚ–§¡¬·v}ܶ²(KˆØ”ÿ /@xóÁ¡õ aŸU™­YÄFOørì Ûž2xÁ«¤ê'K˜Ì`yWžñ“ ÀàxööÄ¿å|k+¥†}&WîäR^ A- g¦q‚=>õ^¬Å`ä“ïó§]ÛKi(IT«• ŒÁ§Á ÅË…·Œ÷ˆ¤±C‚G¿éQQª†÷½z¿¤µ<6æÀ›´„ÂÒ3‚­Æà!ozÏÆÛRAÆYqϦZºœR[>…•­¾¦ýÔ -¦&2ÉàÛŽqÇù{Ô7ÚuÆœéÞ¨ÃteÎ GmkuqïnŒËn—Z6ÊY%Ò®ã{Ëh“(Xd£“…ǧ$Ÿ½<ZÈ‘Ì$u 0ASî1Ÿ˜ëNÞs*“‚Ï™¨"+®0åOÔYM-¾¡ '‰‰H÷{ñüëw6k¤Ø­»ˆæ‘ÆYÙ@ÉÈéò¬n÷úÕª«)À7<}ë{«º;Û‰˜»F¥_ެF+¯ã‰^fûwH#> ÇoË•¿H¿‹5]id–ÑGq„‰*@*Õ 0k®dÄE&1Óšj3žqF$jÙ­tÛÞÔÐÊ[œ©¸’Tl•ª[5eÀ5Y}§õðÕ稊h®K`ƒïDG&æÛÅ=¬‘¾Td*‰%‘[Ä®˜/y^™®²Ù†µ¹rÀnâ¬bËœã›à…b猊m‹Š"8ÎïÁš6;qŒô¬^•Sð¯þÓJ®û±ëJ§ÈÝíê@4áµzó]#– šAwž˜¨²*°>tNädý©©(Œš"ŽMAÈUpª½WÏ<Ã,ÇåD^Ü„SŒíT7ÅXÄûV¹ä+‹éW9éAþÓÈ .ï ŽIé@µÁ=vœ¢åµ'@OyUwììIbhRÌõÎ眑[’D³x³Š&9Ÿp梆,EGj޼T ô…/¬¥µ¹ñÃ2•qìkɵ]"ãFÕ%²s´ø:ž„W¯ÚE);U:S5þ˦¹§È>*LgͯóùŠáÜÖ£ÄÏ÷#‚ÀúçMgË–ÀS’|#¢¦µ–§¶•\+`®?ÏB¶ÒIngT%íny¯OOÒ¸©±&éQ]x-ƒZÌ—¸ïô±0³4jùÀ*ï,.@'j® ³ZÅQW!¤ÛÓ< ÿZ±µÑ'·x.ÌÈË*’¢<’GNN1ö­ó.ÌAèb“woÀ©d\ãäz¥?¹[^ò8í#ˆ³nr7ã ä“üêk^á&V?¼Œ\ò)H;룳wˆóŸZôdÝ@è6·ó=Ã]­°IEŒ³;çÈp<ùçÊ€^ÍÞÜHc¶ ,O…[%ý0:çÚ´Òiw0¨i#e%}(ë-.E‚;Ø]„ÊIÁ8Á1\ïýšÎö~ SD¸bŠVé»’¡|X‚sÿœ¥sLУÕô¹åd¸HûèD~!9DwTú€O¯ëZÚ—]ö^$rĸ=súäôªF×î—´·º•¤‰ v°”‚ªžz’Xó×ùV:ç$Š Ó$Œê4U;ÀÌs€=è9CsÔðjHÕ;à‘ÙÀ\ñ“ÿÝEuE'vH t#Ìyä­an ¶Ö'mËDB±<•2ûWžâövLŽ!Î2}jÂۈㅎý€ÊÃŽOðý*&Ƭ"xñup£+û´ò_Ÿ™þÕKØÎÌO¨ÝG}~ÁBC¢ŽçúpÃ^¢-¡)‘ÔVùóÔ¤qœóëIò`qEwQ7)wh:Gµk@ËrÊpFh”—pÝåMu€Ÿ!NHT¯„ÐOÈ^œŠ†ânñ*CcœT/œ 0 :PôpêJò(­ÉùÖåGmât«<¢©c‘âlâ®ì±"ƒN…¤[BƒåD£+zTBÛ}©®Ž‡Ô{Wû¿ZT&õõ¥L â8 s¿\ä TÉr«Ðâ…kב¶¨â·ñrßm> 0j'œÕXŠW#ÖŸð²c Ò¯Æwzg€*†æ}¤àƒV·AcŒîÅP\#ñÒºs4’—cH!8MH±íço4ær+h|0dôÉ©ÞÛhÏ¡–ë»èiâøg$f§ «x$v ¢´z}‚Åi9j¡³Ô@”pi`¼G„õ®}êÂÃ$¤¯J&pÃ'*¯« ex°n%^‰ÿ(õ4nŸ¥ÜꚚţ Ì[}Åáçg=wdò}+Ót­"É- B¨§,Ç«·›z“ŸA–:zZÚ¤1‘"…Eô×fŽM¸&‹UeLdïBÉk+¾ðÞ[’ÊŒ¸Y ciÀ§Ï v±Èõ¦,ÓkkqWÜxj&‚dš¯0:18õ® <jà³W2»œWLYƒUérÑ·=jÂ)Dˆ8æ³`sF;¬gš ©ÕØF£2aV´ïoFG*‚øÅTp+|õ¨©½h”‘ùUT’Ø£.Ž æ«$Îîk´ˆëÉšj¹¹Ž)§9­ —c†5y¤6\sYÄn*hØî•›4ká¾P¼·÷¢`¿Þøœ¶I'Ú¯ìlÕÝø½k—RE]Z)~wœyÕ¢`‚¤§Œ«‰’ëDÃv \lÕe;KزÝéIáÎç·^ëý+ (Òû·þÝ ô>•í¡óTZçe,µÒ¨î.=âŽûç[ãòç<®òȲ4Qd€þ ÖvçC’ÕÄð»2)À}sQ¶­q"ŧØÍ-Ã’#1©lý1WŸ?t?´ZZÁjÆG7ª ²ÀÚxÇÔþ@ûS»?ÙOµ·ÍÝF ³.k‚Ñì=O·•j»?þ™Ïw2ßv–^N¶FñfaÐ{½z}µ¼vÑÛÛD‘CÂ".•r뽺 tËEÓRÊÎ ‘¨ñ6ç>§Þ‰øqÏQy¹ÅM­ºzbœm“iTàŠîjh¤ºÓÔœž>U VÑ®FÜŸSWÒF®93 ­Î‘SðÃý€ŠŒÙ«SGJèˆÁ¯ÍÝÛŒŸ&ó¡íÙ£b7‘«ë‹0[Äjº{DꇟjÜ¢HgÚµc À¨çŠ Už93ίœgJ– TŒu¨ä…dh11QÁÍ8JÎ7)çÒ³’CâÛÈ>´“¼‹ÌšÍþÿ½KÖäsTsâŽ? ¥S÷4«>b¶Ú9Æjsnò x}hä¶>b¥\Sä†ÉsÍrᣅ >*i%d³zƤSr2i̶ˆî/rä†ëåT——œ¶Ò2|ê n˜ŒyUtòõ5éç”)d'9¡\×7’I&¸ c]Î}+«5L±â¢¢A³Å4 ‘ŒGCj8&Ÿ¸/¸Š4mÛƒX´Oi²2 0ãʬ>(tQ€9ÍU¤h¶9Ö‘†ÍbÍU´W&FÁ&¬"ܸ<Õ ½ÂB2NZ­-giyç›ô75³ƒÒªV`§‰ÆßJãbÊL…U•† °È5›Õ{ ¦ê½³Ée)ÿñ`¡ù©þDUäS(=hµpEOgÒ¼á{Ú-&s-ŒöWIèÅ£cô9Wê¶½µ•LQèåPŒ’¡ìkÖÍpŠ'I³µiIî?ï(æhûoôûµ×¬EÉ·¶V,¡±ò žkÚ1]§Ï¯í^u¥¤Öá[R¼’é÷d¬c»R='µmôý&ÃJ‡º°´ŠÝO]‹Éùž§ëG×1Y»Kˆ îk†¹K4 8§©¦Rç4Ö\Ò»šªÅq£‘RpiW@rÛî©å²t™™5¤*Z SåZb(Ò6e”WN˜§‘Æ|ªØÚ¨è+½À+_!Lm{±ŽG½8Z²ø•ªÝ¡VÔf §Ž”ù Õ9âE©R2TàQmnÉÎë)£¹>¢•s•AdHŽ®·½W_^ÓhÆ}ë2j£½¹ a±Xûõ)`Äùš±º¼¸RÙùUuó«&€_Zôq1•TÒ"ŽMUK!v>Tl¤1 Pl¼ä×xˆ³šzŒÓ••?U^NMŠ$Ð謈|#&³AÝêªà f»¼N &“# Óbµ0Z³ó´+¬ÃóWaNHæ¥2³ñÍLTâœîó«n{¥*œÏSSD’ f¥ƒE¾¶8¢¢¹gà+<³0aÏÖ®m¦ß É®v $'Žhˆ$nð ÙËËÉ?,t«háQÈ×:¢q]4—¥v¹©•Úv+˜¨9H×i§­QÚUÀiÔ 4±NÅsk”üRÅrk¹®b–( wu6•«¢£§ƒ@êã)f»A)bžEpÕ ÅE"ã*jXÍP&ÿjTOt=)UØŠ}GYDR±Ÿ­f%º–áØ³“šT«¿É²m%S“æhYŸ+Ε*é20Pq÷¡O&•*ÜD€qŸ*æ2iR ‘AãšéÈèiR á>§šijT¨cRÇ#=)R¥ÃqƒÒŽ‹JT«FÛÚ÷¤n«ë=<`g¥*UÇ»Ui¬kÐ Ôè¥*UÉRtÃJ•AÑ]Í*U:ÓOZT¨:tR¥@«”©TWiR áÊT¨;ŠX¥JWE*T®æ•*Ò¥Jƒ˜¥ŠTªŽR¥JƒÿÙMemchan2.3/doc/art/logo100.gif0000644000175000017500000002050307343621402015373 0ustar sergeisergeiGIF89aDd÷ÿ! "%*!!#""%$$&"")%%*&&-##,)).++-''1**2--2..6**5..9--<11644711922=66=55:::?//A66A33D66I99A99E==D==I;;L==R<<[??cAAGAAJAAMEENEEJLLNBBQFFQFFUBBUEE[IIVMMVKKRMMZNN^II[QQ^SS\WW[EEdAAnBBoEEjJJbNNaLLeLLkCCpGGrEEqIIrIIuMMwMMrNNxRRbQQfVVbVVeVViSSmZZdYYjZZn]]lVVuSSsQQzSS|WW~UU|UUy]]q[[uZZyYY]]z^^}aamiimeevccsaazbb}eeyee~jjuiiyii~mm{qq}rruZZ]]ƒ__„bb†ffbbƒee‰ccˆjj‚jj…mm‚nn…hh‹kkŒiiŒnn‰mmŽoorr‚qq†uu…rr‰rruuŠvvzz†yyŠyy}}Ž||Špp‘ss’tt“vv•uu”yy–zz—~~‘{{‘{{˜||™š}}š‚‚ƒƒ†’‚‚•……–……“€€š‚‚††™……Ÿ††ž‰‰–‹‹•ŠŠ™ŠŠšŽŽ‘‘““˜˜›‡‡ ŠŠ£‰‰¡ŽŽ¥ŒŒ¢’’¡‘‘¦––¡••¦““¨——«••©——¬™™¤™™ª™™¬šš­œœ¯žž¯ªžž°°££¬§§©¡¡²¢¢³  ±££´¥¥²¥¥µ¦¦µ©©·¨¨²««¹©©¸®®»­­º¯¯¼µµ¶°°¼²²¾´´¿µµ¾³³º¿¿¿¹¹¼··ÀµµÀ´´Ã»»Ã¹¹Á½½Â¾¾Å»»Ä½½ËÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÇÇÈÇÇÊÄÄÎÈÈÉÉÉËÊÊËÊÊÌÌÌÍÄÄÒØØäééî!ù,DdþA¥B¥éPŸ>}ôäóÅË'K” 2dÈ!C† 2dÈ!C† ¢ÄIžA x ¦ëÒ L¨tñÒuËÖ-]¹~ S†­9räÈ‘ûFΓ&Ož,êÓ§ž<`¼DqÒdÉ!C† 2dÈ!C† 2dÈ!C”8yb†'K–úôAŠØ³c¿téÊ¥ëW±hغu#×­9tètÊtÉÒ¡A}úô铌—(Oœ,Y2dÈ!C† 2DÉ!C† 2dˆ’%M¢xñÆ ˜<šˆQ{v,/]ºr SF Û¶nݾ¡C‡îV*M™2Y"4¨Ï A}ò€‰òĉ“%K–þ 2dÈ!C† 2dÈ!C†(Y²d‰'NœDÉJY5€Ôžû•KW.aʨaëfŽ9tèÐ¥åIS¦K‡ "DhŸ;Qœ8qÒdÉ’%C† 2dÈ!C† 2dÈ%K–,iÒÄÉ0‡‚Q«VíY°_Á~ýRF ›¶näÈ‘#G­T þQá` µnß¾uëÖM[µjÔ¨=;VL™²gذU£Öí¹nÝ´aæm[7mبE;L—&K‡ú˜æ #S¥9zs‚†¢=g²@áèHHˆÒÖ­›¶jÔž={V,X°`Á”){Zµjݾ}#‡®›¶nݶiÓÖ­Û·þoݰ)+¦ U9&&™’$ÉÔ¢ùS†‹…Rìé’$É ZÝ´a£¦¬X°`ºnݺ¥+X1eϨaÃÖ­[·oèÈuûöM›¶näÐS§NÝ7mÏqê°Å”¤@‘ªœ0`.I¸¬h° œ$EŽ$ùÑMµc¿n¥Ê“&P«nÝð5jغ}#‡Ž:rèÐ}û†NÝ»yôèÑSGnÕ£E)JÑ"µ&„ 2\éÂ¥H’ €A¦K’$5 i£,¨L–Y²”)“'[ÁžQæMÛ7räÈ¡C‡ºsïæÑ£—/_>zä uŠÁ†“,6x8ãŒ#7ªþYÉa`€R¹b$±`·@iÊ”éR&Kˆ2¥Òu¬Z·nÝ´mëÖ­Û·oßÈ¡S÷޽|ùò士Ó{ÎpbóàEŽ3²l92eŽ".0ð` +p>lÑ¥ë–-[©VÙ*Õ­bÔº}#÷ ›6mÚºuëÖœ:uïèÑ£G/_¾s†J]`(#xha¤¥ —.IpüQÑBhhdJ–°„û,X±`º~+ö [7rèÔi«†M[·nݾ‘C§îÝ»wóèÑËGÍ ¥Lý#E–=FþHrhOR=$\p0`À€ 8´(²1&Ú3jÑ”)þ{M™2jÔ´¡S÷Žž6mÚºuëÖíÛ7rèÔ©S§NÝ;tšÞÀ˜ãè)7Y­Úc#Ž©lIÚ³€8@"$ £0‚iëÖ 6mÛªiëö Ý;zôÞiÓÖ­Û·oß¾}ûF:u辑#ÖÆ–R¥H©’õŠ,Kl¶pò°Æ”#@‰H 0` @Žö0úá#‘:uïÞ©S§N:uïæÑ£÷î]·nݺ‘C‡9rèЩC÷MÛ3To6,*Uj•)Nì↠)GIzäÈÑ `¸"©'C9¬ØP·oß¾|ôèÑ{÷Ž=zñâÅÓ† ›¶nèС#GþÝ9uè´QÓ…JË‹Y€íqh$F:\ÔÉ‘©?cèHRa"#=Òò¡Ê”YùòåË—/½xñâÅ‹/^;lÔ¨aÓÖ9rß¾‘C÷M5U:đԆ{&=¤ÆžW†:µrc )8T°Á©Ñ#- Rha/^¼xñÞ½k×.¼xðÚµë†Z´bÇžQæM6mÚ´1ÓE§F•#*@ÈAG)RÁzEj©W=ƘrTåŠ)Š9ÚsØ3ÜÚµ'Nœ8qíÚµk×®];uä¶a+v+Uª[¿+vì5XÄjèàa@‡9dTadª”þ$NŠÚ¼â¥ê„E¤Ìå¸@cR SÞ°ñè•8qâĉ'N\»víÚµ‹‡Žœ¶hÊti²” ”&O©tý’ÔêÉiƒR)I²T™š“h )Nœ|8 œIYJE²à€/I{‰'Nœ8qâÚµƒ/^¼xèÐ}«vŒØªL™.Y²”I“¦Ht Äh`b’œ6A&qz$K–¤9=~¸á+¤E¦þ¨HD§U|ÌqÉ 7qâĉ×®]»xñâÑ£‡î\»sÚ¨»¥‰Ð Kš4é…ˆ æd¡cêU,NªL‘QTÊPYœ"1úÃæC€U¬5Ñ Á…6þÐ$'Nœ8qŵk/^¼xùºUëvîÜ7mÅneêÓ‡Ð!‹.° @:¥máÄÉM¤.ŽP©JâÖ›R¦h0ÀÀ";t¨y %ПRâĉ×®]¼xñâÅ‹—Ú3jçÞ¡ëF­X±T–úè颀 ,ø@EGS¯ÜüÑ¥C š?VEJ³Å‚ƒ ä¨2aŒ5à˜$Nœ8qâÚÅ‹W/^¼zùªiC/Þ¹oÔ‚ ¶*SŸ & (°`‰T~Ĉ$‹Ñ™u?bô4É  I?h°À@‡I@ü˜£‹¤.Üĉ'®]¼|ùòÕË—¯Ú·vñêþÓvL×­[¶4úq€ \èãD :¯í)UG–?÷:UÃÁ€s> 0,ŽRArXqÈ™8qâÚµ‹W/_¾|ùò«Æ­Û¸nÔŽñ²µÊ–§?&6Hp¡A)謑bGV)R“ÍTê_?F¥ tH+Í€q~là”¨Æ#?¸‰×®]»xùòåË—/ß*T·nÝâU,X°[«RiÚb`€  ¡Êœ@¦Z½êÕ«U'Nª†=ãEÆÀ ^¦ØH0Р…X®b):!ƒ›8qâÚµ‹¯^½|ùòÙJ… ”¦Tº~ýÒuëÖª2* èaÀ€ÆÈiþ%iÒ^´fÍRU –,Sp,¨P¤ÈTl$4h5k–":¸‰'N\;xñâÕË—¯ž.]ºVJ¥+X0]º‚³â  AÀ5qµ +Ö°^²dÉšÅi” œ¨@¥T ³f%›ƒ£Ç8qâĉk/^¼xõêåã¥K—.[«@Ê–.]HâèHb*œJ=êT I½J1z•"À€q8Õ©3k˜ª1ª`á&Nœ8qíÚÅ‹¯^<]¶V¥å)Ó¡>„,Ù*µ`€00 Á‚-qL ähX)I€þü‘T*Y/^=8¨cêþ‘$G¼Z•:¢EJŒfâĉk'®]¼xõêÕå ”&Mš2êÓç¨@T¡BˆkÒ"6œRÈ’ç£,Žz ÆæN¥$ãÈT)7x¼¨Õ®¸víÚÅ‹/_=Mž}úBdIŠ^ÄrDê•,I€à¢ò ÍG½HqrԦ˫dɆñRÅÉQ¤Gœ$$™s¢AƒfÄ£—/_¾|ôòíË—/OžƒøÀaD8ªþdñb§‚pdª§GŒÜô"ÕkV¬W¥èPÔIŠŠ-64ˆabF>zôèåË—/ß¾}ûòäÉ“'O=zòäÉ“'ɪL‰ÄÈÔˆ@‹à$YÔ A @¥þ2¥J•*F´b½Š¥ª“#ŒÆèp”F5v䣗/_¾|ùòñãÇïÎ;wòÜÉ“ç0`ÄxàCŠ”6sZ±QHÒ™W”БDê™3œx HŠS'C°d¡3"Å6¥Ø hÀcÂzôòÑ£—/_¾|üø}óŒ0`Àx‰âÅ‹˜ <Б¥HË«WŽ1âäh–#IŒd9âÕkX­a¯IþzdŠS™3 |„ø(–…¡—/_¾|ùòñãÇ_/Q¢D‰åÉ“'O¢@¡‚ƒSc.˜š$ ¢a´HÍâ¨×,E¼†É’Õë•)U¯$5bó CUd„hÀaBuêÞÑ£GÞ6ä`c*È‹ X‘§=„@ý¢¦­[·%K.qâÄÉ“(^îäÑcF þ„ °0‹cbÎ,)ozÍš5kÖ0Z±ö$)S%Ä8nÐ0¤%GŠRf-bÃÃ7ü:DÈ(^ÇžQÃæäI/_À€¹sGOB†U€p"¥-TZµJ"iÖ,G±PÁ15ë¢?kpøÈ š=lN(z‰¤x@bÄ%Mš4ZuK¯[^ÀÜÉ£§Ï B—@­JÕ J<ÌŠAeÌ$N³bÅRDìL—YÃþüð`F† 5úCFK9lz¥i`ÀB VyJuK—­U™]²tGž>„²J—²b š¨0 Á" >½™õÊÑ$@¥4tÙÃéþ &LTê 4eýÈbB”‹³h¡Ãã‘.^ºVéºu ‘ž„YÊ”I(Pš2bc⇄ (”¸‡S¬I€²H’Ć 0qM'Ngº<šÃcK Þ´F-Ó%=`¾xÑséÐ(K,Y:„ÈR&Mš2Y²dÉ E/z 0 :°Í:å(›+IL,x`ÂÀ€n9d УkR4hp!’$jÃôþ˜ñâÅ‹—;yî|yâÄ’¦L™2iÒ”)S¦L™,™á“Á€Hø 5iK,RŒj@„äC €T¦ÀƯdñRÔÆƒ xH’eMU”(Q¼€É£GO0QœXÒ (Pž4e²dé¢AOx@0ðà6“‘‰Å©UQ³äÄØ2…SsÜÈ⤪”:#0``Ë¢HÖ.EÌ=ƒåe ¡L©l­J*Ó!B„„æ„ `˜0áǘX¯b84« )4NMè@ê‘›"IqÒ±¥‚x¬!EÍ0`îäÉ“Ç /O–Ò”*U*P–õñþ£§¡L~¥€@%E‡:üx% ÂR³fõ°r!ˆ#n)òÊÔs|X0` bÖÄDyÅË/O¢Dyâ¤É%O 2YB4H=}Êt @&*0:&%€0©Õ+GRl¬‘`dR.IÜìñ1‡ N¼‘ÃŒ˜'OžDyâĉ'Nœ,ÑäIÓ%K‡ "DÈR¦L™.5ÚBÀƒ‰URH‘$)Q‚¦T9*Ó†‡•c~ĈcC)c´<0ÁDSÔ<5yÅK”(Q¢DyâdÉM `À˜CíX0[·l­Z•Ê–.]º‚ƒ(™.IŒ´§Ê‡VÄÊtÉ0`ÀI¹áÂM##&„¨¢ÃƒþHÕT;vŒ—®[«Pò”©Ï/Ú°U£öìY±b¼nÙÒì6lm$Á!DJ›?Œl`9eÊÍ‘ ‚D F0Êœ!ÁÄ‚| +5jÔŽÓµ*Uª[«<Òóí[·nÝ´USöë–­\Ǻ‘S÷¨‰$ÚÀ $%Á N¤îÕ(``ÁIÎtéÂèŒ<è‚¥äh«FíÙ±b·RJµÊÖ*O™Î;‡Žœ¶gºl¥º¥ëX·uôˆ¥hà ƒ•EŠF00‰; 00aD—Fœ8!é€B‚L¤ˆƒET·jÔž#¦ ”&MžP­åiºoÝþª=v+UªT·‚i{Go\ 6@xó'Ý@ HùãæÌ‰ ,0°ÀEŒ8)¨]«F­/]·RiÊdé’&Pš®]«¦¬X±_ºtñ¦ ›:zôèÑÉPáD€Htp`‹ª* (``A#R ``Á äR…µjÔx**Pš4òäé±`¼‚ ö+X1jÝÔÑ£÷n^3 0FHQª$ÈhË 0° †°€bÁ‚,L{FíY°T—2¡J•*UªU«V­ºuë–.^¼t{¶ ÝzïÔ¡[G›²`º‚S6lÝŠQÓ†9l¿RÊÆK”(^ÀäéŠ/^Ũu;÷îݹScÆLÉ ¡ÃŒQÜÚþµƒ/^zôèÑ‹G^¼xñâÅ‹/¼xñâÅ‹/^½|ùòåË—/_¾g¶@ÊDHÏ0_À€sÇ> 0`À€“§%P·¢¡›7=zôèÑ£G=zôèÑ‹/^¼xñâÅ‹/^¼xñêÕ«—/_¾|ùöí ;Memchan2.3/doc/art/logo100a.gif0000644000175000017500000174427407343621402015557 0ustar sergeisergeiGIF89aDd÷ÿ! "%*!!#""%$$&"")%%*&&-##,)).++-''1**2--2..6**5..9--<11644711922=66=55:::?//A66A33D66I99A99E==D==I;;L==R<<[??cAAGAAJAAMEENEEJLLNBBQFFQFFUBBUEE[IIVMMVKKRMMZNN^II[QQ^SS\WW[EEdAAnBBoEEjJJbNNaLLeLLkCCpGGrEEqIIrIIuMMwMMrNNxRRbQQfVVbVVeVViSSmZZdYYjZZn]]lVVuSSsQQzSS|WW~UU|UUy]]q[[uZZyYY]]z^^}aamiimeevccsaazbb}eeyee~jjuiiyii~mm{qq}rruZZ]]ƒ__„bb†ffbbƒee‰ccˆjj‚jj…mm‚nn…hh‹kkŒiiŒnn‰mmŽoorr‚qq†uu…rr‰rruuŠvvzz†yyŠyy}}Ž||Špp‘ss’tt“vv•uu”yy–zz—~~‘{{‘{{˜||™š}}š‚‚ƒƒ†’‚‚•……–……“€€š‚‚††™……Ÿ††ž‰‰–‹‹•ŠŠ™ŠŠšŽŽ‘‘““˜˜›‡‡ ŠŠ£‰‰¡ŽŽ¥ŒŒ¢’’¡‘‘¦––¡••¦““¨——«••©——¬™™¤™™ª™™¬šš­œœ¯žž¯ªžž°°££¬§§©¡¡²¢¢³  ±££´¥¥²¥¥µ¦¦µ©©·¨¨²««¹©©¸®®»­­º¯¯¼µµ¶°°¼²²¾´´¿µµ¾³³º¿¿¿¹¹¼··ÀµµÀ´´Ã»»Ã¹¹Á½½Â¾¾Å»»Ä½½ËÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÇÇÈÇÇÊÄÄÎÈÈÉÉÉËÊÊËÊÊÌÌÌÍÄÄÒØØäééî!ÿ NETSCAPE2.0!ù€ ,DdþA¥B¥éPŸ>}ôäóÅË'K” 2dÈ!C† 2dÈ!C† ¢ÄIžA x ¦ëÒ L¨tñÒuËÖ-]¹~ S†­9räÈ‘ûFΓ&Ož,êÓ§ž<`¼DqÒdÉ!C† 2dÈ!C† 2dÈ!C”8yb†'K–úôAŠØ³c¿téÊ¥ëW±hغu#×­9tètÊtÉÒ¡A}úô铌—(Oœ,Y2dÈ!C† 2DÉ!C† 2dˆ’%M¢xñÆ ˜<šˆQ{v,/]ºr SF Û¶nݾ¡C‡îV*M™2Y"4¨Ï A}ò€‰òĉ“%K–þ 2dÈ!C† 2dÈ!C†(Y²d‰'NœDÉJY5€Ôžû•KW.aʨaëfŽ9tèÐ¥åIS¦K‡ "DhŸ;Qœ8qÒdÉ’%C† 2dÈ!C† 2dÈ%K–,iÒÄÉ0‡‚Q«VíY°_Á~ýRF ›¶näÈ‘#G­T þQá` µnß¾uëÖM[µjÔ¨=;VL™²gذU£Öí¹nÝ´aæm[7mبE;L—&K‡ú˜æ #S¥9zs‚†¢=g²@áèHHˆÒÖ­›¶jÔž={V,X°`Á”){Zµjݾ}#‡®›¶nݶiÓÖ­Û·þoݰ)+¦ U9&&™’$ÉÔ¢ùS†‹…Rìé’$É ZÝ´a£¦¬X°`ºnݺ¥+X1eϨaÃÖ­[·oèÈuûöM›¶näÐS§NÝ7mÏqê°Å”¤@‘ªœ0`.I¸¬h° œ$EŽ$ùÑMµc¿n¥Ê“&P«nÝð5jغ}#‡Ž:rèÐ}û†NÝ»yôèÑSGnÕ£E)JÑ"µ&„ 2\éÂ¥H’ €A¦K’$5 i£,¨L–Y²”)“'[ÁžQæMÛ7räÈ¡C‡ºsïæÑ£—/_>zä uŠÁ†“,6x8ãŒ#7ªþYÉa`€R¹b$±`·@iÊ”éR&Kˆ2¥Òu¬Z·nÝ´mëÖ­Û·oßÈ¡S÷޽|ùò士Ó{ÎpbóàEŽ3²l92eŽ".0ð` +p>lÑ¥ë–-[©VÙ*Õ­bÔº}#÷ ›6mÚºuëÖœ:uïèÑ£G/_¾s†J]`(#xha¤¥ —.IpüQÑBhhdJ–°„û,X±`º~+ö [7rèÔi«†M[·nݾ‘C§îÝ»wóèÑËGÍ ¥Lý#E–=FþHrhOR=$\p0`À€ 8´(²1&Ú3jÑ”)þ{M™2jÔ´¡S÷Žž6mÚºuëÖíÛ7rèÔ©S§NÝ;tšÞÀ˜ãè)7Y­Úc#Ž©lIÚ³€8@"$ £0‚iëÖ 6mÛªiëö Ý;zôÞiÓÖ­Û·oß¾}ûF:u辑#ÖÆ–R¥H©’õŠ,Kl¶pò°Æ”#@‰H 0` @Žö0úá#‘:uïÞ©S§N:uïæÑ£÷î]·nݺ‘C‡9rèЩC÷MÛ3To6,*Uj•)Nì↠)GIzäÈÑ `¸"©'C9¬ØP·oß¾|ôèÑ{÷Ž=zñâÅÓ† ›¶nèС#GþÝ9uè´QÓ…JË‹Y€íqh$F:\ÔÉ‘©?cèHRa"#=Òò¡Ê”YùòåË—/½xñâÅ‹/^;lÔ¨aÓÖ9rß¾‘C÷M5U:đԆ{&=¤ÆžW†:µrc )8T°Á©Ñ#- Rha/^¼xñÞ½k×.¼xðÚµë†Z´bÇžQæM6mÚ´1ÓE§F•#*@ÈAG)RÁzEj©W=ƘrTåŠ)Š9ÚsØ3ÜÚµ'Nœ8qíÚµk×®];uä¶a+v+Uª[¿+vì5XÄjèàa@‡9dTadª”þ$NŠÚ¼â¥ê„E¤Ìå¸@cR SÞ°ñè•8qâĉ'N\»víÚµ‹‡Žœ¶hÊti²” ”&O©tý’ÔêÉiƒR)I²T™š“h )Nœ|8 œIYJE²à€/I{‰'Nœ8qâÚµƒ/^¼xèÐ}«vŒØªL™.Y²”I“¦Ht Äh`b’œ6A&qz$K–¤9=~¸á+¤E¦þ¨HD§U|ÌqÉ 7qâĉ×®]»xñâÑ£‡î\»sÚ¨»¥‰Ð Kš4é…ˆ æd¡cêU,NªL‘QTÊPYœ"1úÃæC€U¬5Ñ Á…6þÐ$'Nœ8qŵk/^¼xùºUëvîÜ7mÅneêÓ‡Ð!‹.° @:¥máÄÉM¤.ŽP©JâÖ›R¦h0ÀÀ";t¨y %ПRâĉ×®]¼xñâÅ‹—Ú3jçÞ¡ëF­X±T–úè颀 ,ø@EGS¯ÜüÑ¥C š?VEJ³Å‚ƒ ä¨2aŒ5à˜$Nœ8qâÚÅ‹W/^¼zùªiC/Þ¹oÔ‚ ¶*SŸ & (°`‰T~Ĉ$‹Ñ™u?bô4É  I?h°À@‡I@ü˜£‹¤.Üĉ'®]¼|ùòÕË—¯Ú·vñêþÓvL×­[¶4úq€ \èãD :¯í)UG–?÷:UÃÁ€s> 0,ŽRArXqÈ™8qâÚµ‹W/_¾|ùò«Æ­Û¸nÔŽñ²µÊ–§?&6Hp¡A)謑bGV)R“ÍTê_?F¥ tH+Í€q~là”¨Æ#?¸‰×®]»xùòåË—/ß*T·nÝâU,X°[«RiÚb`€  ¡Êœ@¦Z½êÕ«U'Nª†=ãEÆÀ ^¦ØH0Р…X®b):!ƒ›8qâÚµ‹¯^½|ùòÙJ… ”¦Tº~ýÒuëÖª2* èaÀ€ÆÈiþ%iÒ^´fÍRU –,Sp,¨P¤ÈTl$4h5k–":¸‰'N\;xñâÕË—¯ž.]ºVJ¥+X0]º‚³â  AÀ5qµ +Ö°^²dÉšÅi” œ¨@¥T ³f%›ƒ£Ç8qâĉk/^¼xõêåã¥K—.[«@Ê–.]HâèHb*œJ=êT I½J1z•"À€q8Õ©3k˜ª1ª`á&Nœ8qíÚÅ‹¯^<]¶V¥å)Ó¡>„,Ù*µ`€00 Á‚-qL ähX)I€þü‘T*Y/^=8¨cêþ‘$G¼Z•:¢EJŒfâĉk'®]¼xõêÕå ”&Mš2êÓç¨@T¡BˆkÒ"6œRÈ’ç£,Žz ÆæN¥$ãÈT)7x¼¨Õ®¸víÚÅ‹/_=Mž}úBdIŠ^ÄrDê•,I€à¢ò ÍG½HqrԦ˫dɆñRÅÉQ¤Gœ$$™s¢AƒfÄ£—/_¾|ôòíË—/OžƒøÀaD8ªþdñb§‚pdª§GŒÜô"ÕkV¬W¥èPÔIŠŠ-64ˆabF>zôèåË—/ß¾}ûòäÉ“'O=zòäÉ“'ɪL‰ÄÈÔˆ@‹à$YÔ A @¥þ2¥J•*F´b½Š¥ª“#ŒÆèp”F5v䣗/_¾|ùòñãÇïÎ;wòÜÉ“ç0`ÄxàCŠ”6sZ±QHÒ™W”БDê™3œx HŠS'C°d¡3"Å6¥Ø hÀcÂzôòÑ£—/_¾|üø}óŒ0`Àx‰âÅ‹˜ <Б¥HË«WŽ1âäh–#IŒd9âÕkX­a¯IþzdŠS™3 |„ø(–…¡—/_¾|ùòñãÇ_/Q¢D‰åÉ“'O¢@¡‚ƒSc.˜š$ ¢a´HÍâ¨×,E¼†É’Õë•)U¯$5bó CUd„hÀaBuêÞÑ£GÞ6ä`c*È‹ X‘§=„@ý¢¦­[·%K.qâÄÉ“(^îäÑcF þ„ °0‹cbÎ,)ozÍš5kÖ0Z±ö$)S%Ä8nÐ0¤%GŠRf-bÃÃ7ü:DÈ(^ÇžQÃæäI/_À€¹sGOB†U€p"¥-TZµJ"iÖ,G±PÁ15ë¢?kpøÈ š=lN(z‰¤x@bÄ%Mš4ZuK¯[^ÀÜÉ£§Ï B—@­JÕ J<ÌŠAeÌ$N³bÅRDìL—YÃþüð`F† 5úCFK9lz¥i`ÀB VyJuK—­U™]²tGž>„²J—²b š¨0 Á" >½™õÊÑ$@¥4tÙÃéþ &LTê 4eýÈbB”‹³h¡Ãã‘.^ºVéºu ‘ž„YÊ”I(Pš2bc⇄ (”¸‡S¬I€²H’Ć 0qM'Ngº<šÃcK Þ´F-Ó%=`¾xÑséÐ(K,Y:„ÈR&Mš2Y²dÉ E/z 0 :°Í:å(›+IL,x`ÂÀ€n9d УkR4hp!’$jÃôþ˜ñâÅ‹—;yî|yâÄ’¦L™2iÒ”)S¦L™,™á“Á€Hø 5iK,RŒj@„äC €T¦ÀƯdñRÔÆƒ xH’eMU”(Q¼€É£GO0QœXÒ (Pž4e²dé¢AOx@0ðà6“‘‰Å©UQ³äÄØ2…SsÜÈ⤪”:#0``Ë¢HÖ.EÌ=ƒåe ¡L©l­J*Ó!B„„æ„ `˜0áǘX¯b84« )4NMè@ê‘›"IqÒ±¥‚x¬!EÍ0`îäÉ“Ç /O–Ò”*U*P–õñþ£§¡L~¥€@%E‡:üx% ÂR³fõ°r!ˆ#n)òÊÔs|X0` bÖÄDyÅË/O¢Dyâ¤É%O 2YB4H=}Êt @&*0:&%€0©Õ+GRl¬‘`dR.IÜìñ1‡ N¼‘ÃŒ˜'OžDyâĉ'Nœ,ÑäIÓ%K‡ "DÈR¦L™.5ÚBÀƒ‰URH‘$)Q‚¦T9*Ó†‡•c~ĈcC)c´<0ÁDSÔ<5yÅK”(Q¢DyâdÉM `À˜CíX0[·l­Z•Ê–.]º‚ƒ(™.IŒ´§Ê‡VÄÊtÉ0`ÀI¹áÂM##&„¨¢ÃƒþHÕT;vŒ—®[«Pò”©Ï/Ú°U£öìY±b¼nÙÒì6lm$Á!DJ›?Œl`9eÊÍ‘ ‚D F0Êœ!ÁÄ‚| +5jÔŽÓµ*Uª[«<Òóí[·nÝ´USöë–­\Ǻ‘S÷¨‰$ÚÀ $%Á N¤îÕ(``ÁIÎtéÂèŒ<è‚¥äh«FíÙ±b·RJµÊÖ*O™Î;‡Žœ¶gºl¥º¥ëX·uôˆ¥hà ƒ•EŠF00‰; 00aD—Fœ8!é€B‚L¤ˆƒET·jÔž#¦ ”&MžP­åiºoÝþª=v+UªT·‚i{Go\ 6@xó'Ý@ HùãæÌ‰ ,0°ÀEŒ8)¨]«F­/]·RiÊdé’&Pš®]«¦¬X±_ºtñ¦ ›:zôèÑÉPáD€Htp`‹ª* (``A#R ``Á äR…µjÔx**Pš4òäé±`¼‚ ö+X1jÝÔÑ£÷n^3 0FHQª$ÈhË 0° †°€bÁ‚,L{FíY°T—2¡J•*UªU«V­ºuë–.^¼t{¶ ÝzïÔ¡[G›²`º‚S6lÝŠQÓ†9l¿RÊÆK”(^ÀäéŠ/^Ũu;÷îݹScÆLÉ ¡ÃŒQÜÚþµƒ/^zôèÑ‹G^¼xñâÅ‹/¼xñâÅ‹/^½|ùòåË—/_¾g¶@ÊDHÏ0_À€sÇ> 0`À€“§%P·¢¡›7=zôèÑ£G=zôèÑ‹/^¼xñâÅ‹/^¼xñêÕ«—/_¾|ùöí !ù€ ,Dd‡ !% ( #""#""%%%&"")&&*&&.##-)).**,&&1**2**5--2--6..9,,<11644711:11=66=55:99>//D66A33C44K99B==F;;D>>J;;K77P>>R<>Z??c??hAAJBBNEELFFJBBQEEREEVBBVFFZDD\IIVKKSJJZII^MMYNN^QQ^SSZDDdAAnBBoEEkNNaNNeJJcKKlGGrEEqCCpIIrJJuMMwMMqNNxRRbRRfUUdRRiTTlZZdZZiYYm]]n]]jUUrVVuRRrQQzSS|VV~VVyZZqZZv^^sXX]]z\\{bbnddlddgbbrbbuffveeraazbb}ffzee~jjujjyii}mm}mmyrr}{{}ZZ€]]ƒ^^ƒ^^„aa†ffccƒee‰ccˆii‚jj…mm‚nn…ii‹jjŒmmŽnnˆoorr‚rr†uu†vv‚rr‰uuŠvvrrŽxx…zzŽ}}Ž{{Šqq‘rr’tt“ww•uu”xx–zz—~~‘||’{{˜||™~~šƒƒ‹‹’‚‚•……–……’€€›‚‚††˜……Ÿ‰‰–ŠŠ“ŠŠ™šŽŽ‰‰‘‘ž““˜˜š‡‡ ŠŠ£‰‰¡ŽŽ¥¢¨‘‘¦••¢““¢““¨––«••©——¬››¤šš­œœ¯žž®ššªžž°šš³’’±££¬ªª«¢¢³¡¡²££´¥¥´§§¶¦¦µ¥¥²©©¶­­µ««¸©©¸­­º¯¯¼°°¼³³¾²²½´´¿¶¶¾²²º¿¿¿½½½¹¹»´´µ¶¶ÀµµÀ¹¹Â½½Ã¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÍþM¹2Š!B„ý#&L(LŠ)R¤H‘"EŠ)R¤H‘"EŠ)âJŸE¦‚3ö«“¢O®~ûµk¯_ÀˆkÆM]ºtéÒ‰K—ÎT(R¤:-"D¨P @cÂL„I‘"EŠ)R¤H‘"EŠ)R¤H‘"EŠ@™‚F‘©NêdÊØ4eÄ~ýö‹X2jÜÂ….\ºuë~™úô©“£E„"ôgL˜)P 0qR¤H‘"EŠ)R¤H‘"EŠ)R¤ˆ&L¦„ 3f̘?¡’e›¦ÌX°_¿~kf[¸páÄ­[·Ž—+R¡>uZ¤H‘"E…™% &L˜þ)R¤H‘"EŠ)R¤H‘"EŠ8a„ (P LécªY6€Ö¦#Fìׯcͬq '.]ºuëÖ¹2E*Ô§NŽ)Z´H¡>S @„ &EŠ)R¤H‘"EŠ)R¤H&L˜0aò ”1ŒŒQË–mš1bƈkf­[·péÒ¥K—nÝ.W¦H…úÔ©Ó"E‹ú#& (O˜0qR¤H‘"EŠ)R¤H‘"1Ša„ (P¢ˆYÄK™5kÖ¦%KÖ,Y²iÜÂ…K—N\:qâÂãË©O>uêÄh¡@}„™…‰'EŠ)R¤H‘"Dˆ”¹Ò¢…š'D˜<þ% !WɲuË–ÍÚ4eÉšM³Æ-\¸tâÂ…ëÆ[³cÄx¹2EÊ”+S¡:1RèÏ1S 0aâ¤H‘"EŠYrè À6¬$Ñ¡ÃG "O¦ü1eÌÚ·oݲYSfÌX3jÔ¬qëÖ­7kÍš5³6-Y°]®bñâÅËU¨N‹ú3&L”'Lœ)R$†‰˜FÂt#Ë D`øð!L O¿¦qëÖÍÚ4eÍšMk–¬™5kÖ¦5S–,Y³nÖ¦%ûÅ‹W0cÁx¹ê´ˆ¡@h¦@a„I‘"G.ä˜cR’$| p Á„$()ôéX¶nݸeËÖ­Û´dÉšY³fmþZ2eÓ¬Y ç­›µfLj%k¦,Ù/SŸ:- Ô'Ì(P˜9REË!†¾Tqó†‚4X`¡Â¦¦u .\¸téÂY›6ÍšµiÓ¦MËÖ7qéÄuËFmš5kܲM3Æ `,R‹ê3fL˜'R(â1¥9sæXhp ƒŒW€ !K¶pâÄ… ®·lÖ¨MS–¬Y3kܸY³N\:qáºqãÖ-\¸nܬYKfìW¨NŒaAB‰•Hpx@B‚ S @ð Rå •$ ê.\7nÖ¦M›–ÌØ1bÆš5›fÍš5ká‰K·.\·páÂuë.œ8þqá¸%KÖ¬TI«Fa¢…‡Ç$¬ ÍA2`@ƒ.[@€°‘Á†aݺq³Ö,™1c¿xñÚõëX²fÓ¬qãNœ¸tëÒ…'®[·péÖ±k×®]¸nÓÎPµŠV-:H@ÀbhNš%˜A§‡(vdÈò­›5eÄx¹2eŠT(S±xñJpš5k܉K—.]ºtëÖ…·®]¼{÷îÝk—î×Dª=:ááA¥3GQ:t&C€Îh¹±ÂÇ öt³FÌ•©O:uêÔéS¨]ÆšYãÖ­[¸téÒ¥[·nÝ:vñêÝË—_¾{áFÁ©#LÖ +`”æ 4[þ2 Hp Á,K¼hi¡"ɱd¼L…úô©Ó§N>¹úÕÌZ¸páºy .œ8qâÖµkïÞ½|ùøå»÷Ëž9¸àX°rÃ&;@ðäyãfÀ,8dÉ‘#n Æ‹W¬X®bñ2åÊÕ¯dÖÂ… Ž[·nÝÂ… n]»vñîÝ»w/_>q£0M‚„Êà +‚ áò±§KDV,€p`À€(êH¸äB0±’#fŒØ±cÁ‚KF[¸tëØqËÆ­[¸páÂ¥[×.^¼xõîÝËË!c”àT˜ Ód“F%ú‚¤†  àA—%[H8qhÚ4kÔš5þ›6MY3jÖº­kï^7nݾ… .œ¸uëÚµk×®]¼usF ‚ÈŠ–7£ ­ä +/e¨8°`ÁeðÐ1³† ‰ ;Žu Ž[¶nÞ²u 'n]¼{÷âuë.\8qâĉ·n]»vëÒ­f#O&!£0Áb5 Sž\oÜÔ¢4銕Xà ÒDu¨äÉà¡R»xõâµk·Î]»vñêÝ»7/^¸pÝÂ¥[·n]ºtëÖµ['®[¶J7*QRÅŠÕ*00Œ#‹R¤Z™ ‚aÀ[(™ÁBiÇ-<0`—?~÷îÝ‹ïÞ½{÷æÍëÆ[·pëÖ­K—þn»vëºYS†D«Q£há:äìÍH£aÂÅŠ[oHÖà‘E+Ñ(I f@2D‹Ëžt0ù`!’-- 1ëÊ<þ°,+W®\¹ráÁƒ7oÞ¼y÷ºe 7ޏnÉx}RDhÑ¢[',àÀN¦K¶(M2ti€7‡ÒhÊ‚áXXE‰Ãr ÁeÈBŽUåÊ•+^¼yóæÍË—ÏÚ4kâØ± g-Ù1W¢¤aŠ=Yà è‘‰Ö¨DB&ÌÐÀÅ$\¹0ÍpàÀL‰´,è­†…1"Dˆ©_< PÑ @+]qA¡%¤HK =Š$)Ëš<´ÎlY5ŒÖ›7˜"QZƒGÆ (d Ð~üòñã(P @„-ZĨӧNspæŒ!C†0j•%azTyQ… $V˜Fá:DkT¢Q¬0`À´BK‹ Èppϼ{ùòåã—/_>~ù (!B„-rÔéK€”PJ4)‘­Q°@À¹"LØ£-[FQÂEKPZªX½Éc ˆ´xXР †Ì»Ç/_>~ùòõËÇ/ @ (!BŠvàAbC¢J™þ(%š´fÀ%˜ââf$V‚0Ñ’• ‰ª0A‘EHƒ ´qÀ`H¾|÷îåã—/_¿~ùýè @ýùógǤa5*ѨI‘Иó¨Ò(V£FMJdH´ZÃV :SEKTz,hà@D  zäË—/_¾|ùòõëׯOŸ>þü¨Ï˜1cXdX Z‰æPÂ4 ŽŠQgl¥Á´ê¦I‡h%¸JØ*AI@€X ãÆ‡ d±`Á|÷òÝ»—/_¾|ýú3f š1cÆ„™& @x Š+3¶X¢eˆÕ(ZË !³«Ò¨U¶h%þT¥À x¤hÐÀA  É—/_¾|ùòõëׯߔ0S¦L™2J”(Q¦˜øÁÊ ´hQJSŒ™9†láš4Š´G”F24j” A3 |8ÁÁ ÈÑÀvíâÝ»wï^½víêA… (P @%ʈfHh±‡N’:Dê`ª“WA†’áâ@N,xá¡táÀ Lpàƒ &tÔø5›·tëÚ…ËÆ-&L˜0a„É(P ˜°B 3¬\A‰ˆ¡/¬h±BTIÐ-3( 8ðæÆL¨a'È2 @`s`Ç ¦b¹ŠõþkZ7nܺ…c„‰&L˜0aò >Ph’Ôã†p&ÍYrˆ.Y™€QÊ´¢Aƒ>n8€`‚V“xh¡Ð£fÈàÁhÑ¢N¡\›Æ-›5'L˜0a„ &P¢„!¢… ŠK=T Êp£Ö¨9jÔ$ÂÕŠžZˆ ,X0Å´P¡b62²,XP@‹Š€"Ĉ¯fܲYsÂÄ &L @‰fL072 ¸”gÍ­¾@š“R¢Z£ÔLD Ë*g@,8` B4ÉpƒÈ‚&œØ(P @ŒL³Ö­[8&L2J”)bú èþгxP¡e—DiTá’•†Ž/i Í™“V¢2&h¡d‹¦4føpp€Ã -1b´¨“«`ɦYã%Ê”0bÆôéó'¡E–JXP!ãL>l  W.UZ¸˜9B‹0¡~MJC¥Œ(‚dâà   $P§P¡H™rÅëW0^aÆôˆÐ¢ELÅrej‰ kxä¡4 .L“jÕJ´Î"D°xùâìY£/”‚pÈ2£Á2º¸QÑÂX…rÅëW¬X¡uêÔ'!B‹9êd*X³d®n ™‚FJ°jÕª5©Ö("$n`à1ŠÒ™/þ§æXJóEÍT È‚„<ÜXàa¯`¿býâµË >}þ"Dˆ#FLñ"FŒ—’*´¬háe”¬Z´j ƒD¤‚†.ª0™I²äP’Cf–¨9Óà€4¨‚‰Š.@\ñ Eˆ!R¦¡ …!B‹uú*”)S¡H™yàÁÇW"á©e פ/G2hQ5j¥:^ª(©th’¡:,€XÐÀÁ‚-xà°Z§S§?hÄ„ Ô‰š)L:ubä¨Ó'R¡:uêÔ©“%RÐàƒÖ Uµj-ñ¦‘7\Ü$"2IÑ![‡&ÁÚ± @ÀC ’°m°þ¡ &L4úˆ‰¥Ó§OŸ>… õéÓ§OŸ1²ÃŒyVñÈ“ WDsntrëL€è$b…L˜­I:fô8°Àƒ˜p-£¶ Ï”)aÂŒùó'P 1S t eÊ”)S¦B}êÔ©#KUdr#Nž+d%ƒˇTxnmñA¢UÐl­óGœ4ð‘ÇÖ2jÙ°L 3ÍŸ@Šý3å £O®vÅreê#F‹1b4g7 x"kT¢H¸V‰c(7œI4ê%¶øÐpÀAƒ7‚@ƒ¦lI˜0cúüùó§Ï˜0Q˜( åÊ•+S"þd(ТPRQÁaÀ .µdÍÁ$LÕ£·èhÚqÀŽ,Z†͉ƒ" ž 4è¡©4h­–L‰2%̘0S¦D‰J'R¦>}rD(P B„1ú*ÀXÑK–ªWTM²UeK%} õ)”")/$83 V%¬&­b‰þ ZHƒhFŠ =¸”¹äÀ>FÙÚ† Ì”)cÐôéÓg̘0a¦DqåÊ©O:} êÓ§O¡B5’R¤B‰3”*â‚é‹ :.–è(Qà†TÁ–6XbÔ-jª ýùCh#FŠõ 3 4Á~í2êÓ§P¤L¹rå*V¬Pƒ–,Ñ Ó$væ,ÙáÅ„*(8p ‚ .Lè±ÃÀ @Pí×.S¡B¹råÊT'BcÆ AcM™±]¼bÅŠåjׯ_¿ˆ‹¥F™/7FAjÀ%Ì"& h@eÀ ð‘†Ãt@8p@H"þex2ƒ¦,Ø/^¼\™2õ‰PŸ0Ù²e³6mZ²dÄ~ñâeŒ·l>’,©£b—+–! @€8pà@6@,X€aÁ¶$²5C5jÔ”ûåÊ•+^»L1 .œ¸páºYkfŒ×®_Ê­k§åÁ ,g(yø0 Ì—(`À€Aˆ  8Å–:g†|Ëfmš²d¼\™rkW,SŸÚ±[·.]·i¿v¹âõK™·v÷ZxðÊ\øâB@€ pàÀ‚ 4p¡Á@P²rcÖ·lÔ¦);öËT¨O¡LÅ2ejÝ:qßþ²M;Æ+–+W¼’u‹w”й@€"J$ P Á‰ XÏ‚à`…Ç(@–eÛF-Y°_¼\‘úÔ©S(S¡¶e˦ìØ1b¿~ý2ÖŒ›»{÷î­À"” f4€pÁ>ð˜à`Á"´ QaÅZ¶mÔ~™ eÊ•+S¡H™"EJY²dÁŒ3FŒØ1káÚÕ»/Þ¶ *,™D"À$rXæÂX€Â†.7,qÄ h)›Fmš1W>¹råÊU¬X±bÅâŋׯ`Á‚›æm]½{÷Úµ‹Çå,«Lþp%ÀJZ˜pàÀ hÀcÁ‚PðÈ0#˜±cÉ’ãE*”«X»b¹ÚÅ‹—©]¿~ñâõë±fáÖµk×®]8kÈh°Á…È,I0 ÀŠ@°@@€8PB“ˆ%3Ì1^¤>™rõ‹¯_ÁŒ¹úeŒØ/bÉŒk–-\ºtâ¸ý"FÇZÀpQ"– ¸ð  ÀH4˜±Ë˜2eʦM#fª£O®~3ÖÌZ²dÓ¦Y Ç[·fʦœ¦Ì)G¡x±B `@ Dˆ\Àó €n€ !@€ h0þ`À®‚K6ÍšµnÝŒ¹êĈ/cÓº…ËfÍš5náĉãfÌ©P¡ ¤¨“+7@HÐÆ/VF@ðñ 0 @€ Ð̘1bÆšM³f-Ù/SŸ\ý2f훸nÙ²u 'N·d¿>- èOŸ@‹:™"–âÁƒJ^YBd 3+ Àð À€ (Pà€ŒdÉ”)S–¬Ù´dÇŒýÚEʯcÓ¸uëÖ­[¸téÂ5sõ‰ >RÔɯfÇ’©ðB /xÀ`ùRbÅ  0 À€,ü²fmš²fΚMSf̘±_±žÚ•,[þ·nÙ¸e³FmZ³_Ÿõéó‡£EŒ\M›6ÍÚ­%.vèPRFÖ/eø€âÃTã­[×.Þ:kÖ¨Q£ÖŒ¯_ɬ…K—ΛµiÜ\ý¢ÆÍÚ´dÊ~‘"Ô'Ì”(aÆü!ÔéS°léÚÝÛ6h‰2jZ\8qÀ‚2+œ@–ïÞ½{ùòÝk—.œ·pÜšûÅ«™µná¼qãÆX³lÖ¬eë6í×§@cÂL™%̘@Œx%£–-\»yì~…‰¢†L0>V”(a͹yóòÝ›w/_¾|õÚ¹s—Ž[³c¿ˆ%kFÍ7nÝ”YëÆ-]:nÁ\-ú3&Ì”)aÆüQdб`ɬ…c×.Þ¸Yxt¨(Ñ@E>èàþÁ›÷nÞ¼wóæåËw¯Þ½{íÒYk6ÍÚ4jÖ²eã®›¸tîÜ… fŠÑŸ1a„ó'£O¦\‘rEL7€áÒ­‹7o…úôéÔ/cʦeë–.Þ½yóÞÍ›7oÞ¼yóæÍ›÷-RĨS§N:…Úõ«™µnéâÝ»7oÞ¼yóæÍ›7oÞ¼wóÞ½{÷Þ¼wóæÍË—/_¾|ùøÝÃw¯^¾zéší"µèÀ1aÆŒÓ'¡@Z´ˆ£P¦b%›æ­Ý½{÷îÝ»wïÞ¼yóîÍ›7oÞ¼wóÞÍ{7ïÝ»wóòåë—_¾{÷ðÝ»çשOýMŸ1}þüéÓMŸ?„u eê×´pëâÝ»wïÞ½{÷îÝ›wïÞ¼yïÞÍ›7oÞ»yóÞÍ›7/_¾|ùòõã—¾i»L‘ú´(P1bƌӧ>š1cÆŒAó‡P'S¼¦¥‹WïÞ½{÷îÝ»wïÞ½{÷îÝ›7ïݼyóÞÍ›7oÞ¼yóæåË—/_¾|üøñ !ù€ ,Dd‡!!%( #""###$!!&$$&"")&&)&&-##-)).))+&&2))1++5--2..5..9,,=11611:22>55>55:99>//A66A44D66L99B==F99E::I>>I<>Y??`BBGBBMDDLJJOBBQEERDDUFFZFF^AA[JJVKKSJJYJJ]MMZNN^QQ^SS\^^_EEdAAnBBoEEkLLcJJjNNnLLlCCpFFrHHsJJuMMwOOtNNrOOxRRaRReUUeUUbVViSSlYYeZZiZZn]]mVVqVVuQQrQQzSS|VV}WWxZZqYYv^^r]]vXX^^y\\{bbmeegbbrbbvffveerbbzbb}ffzff~jjuiizjj}nn}mmzqq|wwxZZ]]ƒ^^ƒ__„cc‡aa…ff‚ff‰ccˆii‚jj…nn‚nn†ii‹kkŒiiŒmmŽll‰ooqq‚rr†uu…rr‰uuŠvvrrŽzz…yyŠzz~~Ž}}‹rr‘tt“vv•uu”yy–zz—}}‘||“{{˜||™~~šŽ……‰’‚‚•††–……’€€š‚‚††™„„ž††ž‰‰–ŽŽ–‰‰™šŽŽŠŠœ‘‘ž””Ÿ™™š‡‡ ŠŠ£‰‰¡¤ŽŽ¥ŒŒ£’’¡‘‘§’’¦••¢““¨——«••©——¬™™£šš­œœ¯žž®™™ªžž°››µ¢¢¦¤¤­¡¡²££´¥¥´¦¦¶¥¥³©©¶¬¬³««¹©©¸®®»­­¹¯¯¼¥¥½±±¼³³¾²²½´´¿µµ¾°°»¿¿¿½½¾»»¼´´´··ÀµµÀ±±Ã¹¹Â½½Â¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÆÆÉÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÌÌÒÓÓßÚÚãþW­%j‘ A‚þô æ‹&K” 2dÈ!C† 2dÈ!C† ¢„ ŸDžz-+¦‹S"N«|ë•Ë•®^½€c†­Û¹sçÎ;wn”'Q¢6%$HП>aÀDaÂdÉ!C† 2dÈ!C† 2dÈ!C†0‰r‘¨M” ¢4j´dÃzõêÕkØ2hغ¡;×­Û¹sê|Ú´iÓ"D‚ Ô'Ì—(N˜,Y2dÈ!C† 2DÉ!C† 2dˆ’%K¢|æL>ž–Uƒ¶¬°^º€c6 [·nÝÀ©S§N+Ož8mJ„"Aƒú„‰âÄ “%K–þ 2dÈ!C† 2dÈ!C†(Y²„ &L˜Dá3*Y5€Ó -Ö«W¯b̦aÛvîÜ9uêÔ±5J§M‹!J”ÑŸ=Q˜8a²dÉ’%C† 2dÈ!C† 2DÉ%K–0a„ “0‹ŠA«V Z±aņ c6 Û¶nçÎ;§N].V£a¾0a²dÉ!8Ì\*cc†‘2 0ÃÍ%< ùéØ4mÚ°MÃÖM´e˘M›6 þZ²dЦMë¦MÛ4fņ-K–lY¯Qœ6%ú³L&L˜,2”90|1`À*,õ¸Àâ‚£ iëÖ­[7pêºMcmÚ4hРA«¦ ¶sçÀi› Z´iذA+¦  .O‹ýÙs&Ì'…M 4§Mš9 0 †™:' ˆ` Ê´nàÀuëÖM¶iÓ¦AK¶Œ³hذM›ÖíÜ9pÝ´aæ­[7mئAKV¬—§M‰…é2)‹!K4¤ððbcÀ€bysÂÀ€TÒÖ­›6lÓ Eƒ¶¬X±bƘ1ƒ6mZµjݺ;§®›¶mݺiÓÖ­¸þnݰ%[ÆÌSšIf=ò " $h @€`DRc&Dð€ŠcÚ´i›Æl™±b½téÒÕ«Ø2fЦaÃÖ­¸sêÎuwn›¶nçÔ­cÇŽ8mÌà<âÇ-„|Œé‚¦Bƒ äÔ£Cƒ  |ÐÑMÛ´dÃt‘b5J§Q¬tõZÚ´iØ´;wîܹsêÔu§Ž<{öìÙƒw®ÕB‡ý8êÔ$2“Œ0À€°ª¨ˆÐ`€†T*i›VŒ•(N›-Ú´‰“¨\Å MöM[·sçÎS§N:uðèÙÇo>{à,u¹t'BK`µÅ… þ:|¸`ޤb#DzeºFyâÄi§M›8±êµ¬Z·nÝ´uëÖ­Û9pàέcÏž=|øöá³· “$;rH²t*•¬C„¬p©@=JÁ’¡Kj`ôØ"iN |h€Á‘,2;>¬ø€Ä ®–+f¬Ø2c½†[ [·sêØaÆm[·nàºSÇdºdëѱc°rz„F‡dPÙQc‡s¦ h3";xôà±c×®;vðàÙ³^·nÚºS§NÝ9uêÔ±SNÛ´)~pÁrêÔ¥H—BLÈá(XÖœÙ:…@A ™€bÇ€µìÔàÁ„:ãÆ7Î;yòäÉÇo´iàà­7mÙ2Vý±!ÄL:€È’dI °D:4ëØ$B4ðÑê×Z@Eú‡ŽMŠ ,°Ñ1nܸqîÜÉ“‡Ÿ<|øªi+'OÞ:pÔŠ+ÆÊÓ îôÀbˆ0[¥:ôÈçC.vdE‚Ó@‚)´n]Òr)οn‡p˜bà æÆ7Î|øð«æÍ8qÓ’så*—§8œx±ÅR™T’¨°ÁcÆYEBõhB&]¢õ«·M‘"¥©àÁB &ôŒçÎ|üðåbÅJ”'V½†ë•K—«\h¦[†$Ųþ2GÒ¬1‘Ñ:4‡ƒ?$]šIÔ¦SjܤaáÁ† ^Œ7nœ;wòäáÇ_¯^½rbÕ«X±^½ŠS‚9zÔÁ“EÀ2v2d(’$B‡©P`Á ­V @µº„§‡ª-,ø€ @Á‰qãÆsçNžOžF‰òä §M‰mE(@î¨Pc FU§,:áf,P­¶Dê'Õ$G˜´8p@ÁÁŒ4(Üt°2¥Á‰ zÜÉ“çN>|øðá÷‰“'Ožyøðáã·oß>þ|‚%Z´iÓ&Nž<u%€5˜TÍ™ó!­Y§RB5ëªYØœš)!BsÌp`à AŒ V4€° kðÉǾ}øöáÃ÷§ÏŸ?‚%J”h§M7txtéМCwTaÊtª¤S²l¡êKV¤@­PKŠ (P @‚ pp<{øðáÛ‡ß>|ûúôùóç A‚%Z´iŃvPŠꔎ;vd•º3‹V;59f u¨@‘fQQÀ€ (hà€ÔȳgϾ}øöíÛ‡ïOŸ>þüùóçÏA‚Hpƒ ™C“þf!PSãT$K† ÃàˆÖ¤P¡h¡bè (P @B„pÐ@†=|öìáۇ߾}ûúðéÓ‡OŸ?þðáÃGD€3.:d SƒuÚ\º´¢°)­Dº4é˜,Bà ©Pà Î:(`@A‡^ØÃ‡>|øöñãÇoÏž={øðéÓgO˜0aXÐð ’¥C§lɉ‘ÇŽ0[§„9»*Ô¤C‘„(K”')/œ¨‚¡”„pÐ`B {öðÙ³‡>|üø… æÌž3aÂ|ùò勆,Tš#©P¤C²â¤²µL–-[³@ѲÇ(.d éþ¢Ä&„JM à€‚ƒ 0¼°‡>|øðñãÇ_”/Q¢D‰ʼn'N¢h@a ‹%#ºÀ9IV1Q˜d‰BõË[¡BƒhR Q†NqPp4øÐAwëàÙ³gÏ=vìè1a„ &L˜0aâĉ*ÞÜ逅̥[Çl¡Cåè¡Y©rtP`‚Æ(n«$e©ã(Σ-¥@aqà` üðM[7pêØu›† Ü’%K–,Y²d &Lœù‹M*1$0`@F‰b¥ËW.VœmÚ´çÏ Aˆ-Ú4 ³e«h\ ñÆ—.B|\©Ð †ð8*+Ï%9þ‡$Y0ÁÆG88aEKŒ{0PàQ¯a½\õÒ¥kS>{úü$(Q¢E›FéÖK×`̹cåŠ8(„Øù¡&U–2A²gN¨ø8Áæ„rƒåG [<é…H QžíùâDP A‰mâÄÉÓ(Q¢F¥0@â#6&Ly¤Å‚Y/hÀ°ã(¤G›²¢@Ф68PðaÒ¤m"êáf§>gÀ|ù³iQ'K6mZÔh'Oœ6mÚ´iÓ;hÂA…I—PFëTGYRA’„ªÐ$9#^Tùq @ºtéQ«:uþþìùòåË—0|ö|‰Âd'Nœ PÀ@ äÌA“e†‚&PÐ…‰µ_*Òðá#hQ¢D‚þìùà™3Ãz¹å‰'O¢F±bÅÊ•+JIÆx0‰Å (x¤è`Cň 0 @7qbHi@ã’&Õªfè…«QžmZ4jÙ´iÓ usU¤HX°È´0À€ <¬x`B M›Æ¬°^ºréÒl´iÓ˜%c6M›:xÃ\‘ҬذU‹ úó‡Ÿ?‚r-ƒ6 Z7u«Š0±aeL .{ÂD ÃgÓ(]þÖMSX(^Œ à‚€À¢ÂB„Já±SÇŽ]»iÓ¦Aƒ–lX®^˦¡;wnÛ4hÕ\õ‚Vm3fÌzytæË'_Âð´‰°içØÙ«F) (-*<( É0&pp†Ïž={øðÙcw®›¶nÛ˜Ó¥‹¶mݶaÆm³jÓ¢Uíצ?a¾D‰åK˜?‹r%›6M;yëVyâÄ Ž ,X¤¸€€N9yòðÙ“g>{ôØ©Sw3c½Š-ƒmÚ4lÛ–MÓ†íÜ9lÀX%âæK”(_ÂðA$J×0`˦[^9ajFD0`‚ŽJæÜþ¹“çNž|øöá³þgÏž={ðØí»G¯Û²\›þ„‰òåK˜=-J´hÓ¦M›6ÒÕ+Ù4mêàÙ³'Ož|ûðÙ³g>zç–啈À0_„ ³ç ?|þüA”(Q#O£r-ƒÖ={öìÙ³gÏž{öìÙƒ·MW.O›ñ &Ìž0{øðÙ³çÌ™=‚mò4ª´nêàÙ³gÏž={öìÙƒgÏž|øðñÛ‡ß>h¹Fâ´èÏž0a„ ³g>O˜0a„9ÃGЦQº¢ƒGÏž={öìÙ³gÏž={öìÙ“'Ož|øöí !ù€ ,Dd‡!!%)!!#""###$!!&$$&"")&&)&&.##,)).**,&&1**1**5--1..6..9++:11622511922=55>55:88=..B22A66A55E66K99B99E>>F==C==I>>M99K==S==]77R>>bBBNCCKFFJAARBBUEEREEUDD[JJUIIZMM]KK[RRUQQ]ZZ[EEbAAnBBoDDkNNaJJdLLlCCpFFrHHsJJuMMwNNtNNqNNxQQeVVfSSaUUjVVnQQjZZeZZjZZn]]m]]jTTrQQzSS|VV}WWyZZq^^r^^uZZuXX^^y]]|aamjjlaaraaueeueeqaaybb}eezee~jjvii}mm~jjyqq~uuzZZ]]ƒ^^ƒ__„cc‡aa…ffcc‚ff‰ii‚mm‚mm…jj„ii‹jjŒmmŽnnˆooqq‚qq†uu†tt‚rr‰uuŠvvrrŽzz„yyŠzzŽ}}Ž||Šrr‘tt“ww•uu”{{‘xx–zz—~~‘~~•{{˜||™›}}š‚‚ŽŠŠŒ‚‚’‚‚•……–……’€€›‚‚††™……Ÿ††ž‰‰–‰‰™ŽŽšŽŽŠŠ‘‘ž””——™‡‡ ‹‹£‰‰¡¢ŽŽ¥‘‘§––¡““£““¨••ª——¬šš¤™™«šš­œœ¯žž¯ªžž°°¥¥¬¢¢³¡¡²££´¥¥´§§¶¥¥³©©·¨¨³ªª¹©©¸®®»­­¹¯¯¼©©¾§§¹±±¼³³¾²²½´´¿¶¶¾±±º¿¿¿¼¼¼¸¸¿³³´··ÀµµÀ³³Ã¹¹Â½½Ã¾¾Å··ÈÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÇÇÈÇÇÊÀÀÎÉÉÊÉÉÊÊÊÌÌÌÍÈÈÖßßëããïëëôþU© Õé @€øè)ã¥K“%J† 2dÈ!C† 2dÈ!C† ’d C r û• Ó!Mªpñ•ëV.\¼x cFM9räÈ‘#w.T'P 0=_º@Y¢DÉ!C† 2dÈ!C† 2dÈ!C†,‚§P'L˜Âj³b¿xñÂ…ë×°fÔ´i#WN9rçp…Ò¤ Ó!C€¤çK(M–(I2dÈ!C† 2$É!C† 2dH%J tñò¥Ì=†=cVì×/\¸xýBöŒš6mÚº;wW«N4a2TP¡B€ô|Ò¤É%J”þ 2dÈ!C† 2dÈ!C†$Q¢dÉ’%K–tÁªX4€Ñ˜ ûÅ ®_ÈžQ»F޹sçΩR T'L‰ 2d¨x¼t²D‰’$I† 2dÈ%0^ÜóâÃ8g–,Yþ²Ä UÞE‹í3dÃ1{Fíš¶nä´i«F²a¿r©*”ªP0*ÄÏ—/]–(Q’dÈ!C† ³F@8T¨P£‚ŒŽ"Jšè õëÙ7mÕ¢=Cöë²fÌžQ«V­ZµhÌ!{Æl¯\ªnåÊ•KU'L…øðÑS¦K“%J’ 2dÉ“"\„“"J8F*Üò‰M¸šU«Ví³bÈ!C6 Y³gϘ!+6lX1jϘ ã• ®_¿r©Âd=e ,Y¢DÉ!E yãiG£"ŽœBå&‰Btá£éW´jÕ¨=‹V­³aÁ={öŒþY1dÌž=ÓV­Ú3dÁ~ +V,®Pš0âƒÇ ”&K”(9Ò( ¬AcfXøPÁF#3oùá¢ÃDŠ#¡˜UÓ¦M›¶nä´=CÆìÙ3f̘1{F­µnäºU£ÖŒ³gÔ¢1 – `«N‡ñÉóåK—3ˆÆø‘Â%Œ‡5‚ÄåÍ Bp€,‰ñÎ3mݺiÓ¦­µhÏž1+6 2fÔ¨E{¦¹nÚªQ£VM›¶jÑž1+ö W'M‡ éôÈ5j¸h1 Ä8oÎøAçÈ.>ª¦M[µhϘ1k,د_Á!cÖìY´hÚ´u#wN[5mÚ´U«¦M[·þnÚ¨ †,ÔS°pHÙ‚Å   âg.~ZT QÁÀŽaÕªQ{†lد_¸råÊÅë×0dÌžQ£¦M›6rçÈiëÖ­Z5mäΡC‡]·jÑÑ #kŠ pÞ<0 À€aÞP¡“ƒÊ‡|`Èò­Ú³b¿r© T§P·ráY³gÔ´u#GŽ9rçÎiëv]»xòäÅkwN)Qº‚ƒ%) 0¡Á&xø áÄŽ(NU{öK(M˜a¤I¨[¿˜=£Víš6räÈ‘;wîÜ9tíâɳgÏž=yÝ*±Q ‹WŽ …ÁÑÀ þ040 @ >¸˜AâŰa¹DÒ¤ “&M˜0‰Â5ì™6mÚª]Ó¦M[·nÝΡCOž<{öìÙ“'Ë‘“Z4òDiM… (0ÐÀ€ H¡‰ $H¼Á…+×­[­Zå¥J®aÏ´iëÖZµjÕ´iÓ¦:tñäÉ“'Ïž½nž CgR¯W§ù0À@  ¸²Bƒ>¸THBÅ ­†ýúõë×°`¸pýÖŒš6rçÐQ‹F­š6mÚ´;‡.^»vñäɳ§‹•<Ñ!áC %8h À€‚ B800 Å“ n¤P1¦³gÍ!þcÆl²gÏ®k×N^5jÕªiÓ¦M›6rçСC‡]»oc^´À@Ã:tíÚ¡Cw:tíâɓ׮6mÕ´‘;wî9rçСC×­Ú³F@ŒÀAEÉ¥A½h¼2H šIt<ÑÁ€#Ї>Ü\8rÄLX¬hg_>|òäÉ‹×Nž±P  wؽ[÷nÞ<{öìÙ³‡I“¦N:uÒ¤I¨PF,PšDb 9½zÑÙâi#H踡4• .B8ª¤%„ 0øqÓ£†  8pfÞ¼yóìåˇϞ=þ{€ :„ &M:eã¢Auz yÕ‹Ö$S¯b½2…Š‘”7§zó($LfD(P @ !-3(P ƒiæÍ›gÏž={öìٳLJ>€ 2t“&L.4˜CeM£X“L‘ªd‰*XQZŒy«Ñ›7ƒ(±â5¥„,Öœê¡@A8`0È»wöìÙ³gÏž={öôèÑÇ @€J„É„…F(QÒBg‹)KhQªô(#8pd9Ú§ÎŒGƒÐ4È@iÒ£MS4hàÀ~¼“gÏž={òìá³gO=|øðáÇ@…L$ k¤)Xþ¢xr# V¬WTèøy3HЯ~úÞÀa…LJŽÞx ƒ 0P°â‡<{òäÙ³gÏ>|öôèÑ£G>|ôèѣ煱y’’¢G” ÑêEéT O•ÌÈŠ§Ï¥fÙP(ðÑè ’GŽT0`À€vسgÏž={öìÙˇxJõ¨R,Zµ^ÅBeçÊv8ŠÂaŒ™G‚v(˜À!G Hp¡‡@‡BñzV­š6%J*Y²dI“.^ððá³fÂþ6P<@£ÇS¨N±‘+%HˆdÑbÓa›G;d¸âƒ‘ 0`€'ø:t“ª_Ř=£¶¤ ”._¾”Á£‡ C4ÐS(L½2U)Œa¨L1j “I*ÌðƒA„(z¨00`À€ð‚&M@…j• .]]¾àÑÃP!C˜BµR5(CO°ÃSG\¼@ÕÈ—)S~Ì<ªTG… &Pø‹Š à@bÀ€TuR• ×-Uš a„‡@…вa,øðD*I™ò€+T\¶¨IEk¡@þjèHpàÀ"( tÁ€ŠF£H)`R®_¸ná• “=xôðáÈСC˜@åúõ«•k°%h.LòõªŠ5¦bQygJ˜8PâGG³vÔhDKŠ åêTP!P¡áé@†0aÒ¤IS¨P4‘`!¥h9FK’¤JXbcŠ8FưèáÀA 4RÝ4Ë:àd°ƒC“&=_¼|уéP™&K0a:”“&Pš0a„ Ó•L `@ T½b™J…á˜FƒÖÜå‡ ,94p0ÔX‚( âf 9Zøþ”éÒ¥K—/zðx²“&Mš:uê¤I“&MšÙhN€l| k%R,Ü8¢S €½DÃ@Hj¨’™AèÀ S  (]º|Á£‡ž/P–`ê*T¨P¡@i„ Ó!* @a …jLyŠE+,6ZÊ=óôhÓ©G=|8pРFF€éùeI!MªnµRJÓ!C† òâƒAlP10å%H¯b™Â2AŽ6d(Q‚3†ËvÉâIŠ I²P„ñ!I—._Êèѣϗ.P”ê¤J•ªP˜ âþÇ!LG–„9…#F >= Ôj%T4X(Ð 8Æxpà8S®<6 ’4ž@i¥Ë—.P @i²d &P¡:aJTˆ>€ ÒTæ @.¨|„Éq„Ë 6”|­¡c X¬6…1³éј ô@1I‚:ÌtÁY3Ä’%Mš@i²dÉ’%K–,éª&L‰ 2d“&Mš=!ãi‡7„à¡BIV6UÒ"H•Ao±à C ( ô ÃLU ) \,i¥K(Pš4i²d‰’N¡@i„ &Mš4iÒ¤éP?§zÌ0ò&–vf™¨ð`þB @„¡ó¨‘  l¤˜$E cÒtšb@”._ÊàÁƒçK—.]º4Q¥J(M˜4iêÔI“¦N4ý¡ÂFÍ9²¤Èá#Š‹@~<™ªH .a±P a ˆ(§üzÍ— øàÑÃÇP!C€øàéò`™2¼pÝRJS§N D©R¥JU«BTà8’`I” ¨ëU¬JT*T‰DÇ# n°˜ð ÌJtÉÊÒǬP:©R¥*&@x¾”)­Ø/\ºTݺ¥ê.\¸~ý‚ô&LŽÐ‘0`€@P jQ…„‰F|ÐQáƃL°zäÈO þ ä +6Œ—®\·T… ¥ ž.Ñ¢=‹Æ Ù°a¿páÂõ‹Y5eU°h@Ç‹ ÐB •–H<ð‘áÕ8`0`` ¥@á˜ààØ3hЊýÂÕJ•ª\­@âÓM[·nÚª=cö W.\ž‘k·ÃHŽ*h`ÀƒVüÉP`@€)8P À€ÈÀq • ||‹öŒY±a¹T…RÕêV+PšÐ¡;w®[5f¸n©Ê…kXµsòbÍ0ò €a ÈÁ0 ¤xÁ pÐ2oÖdP0!Õ·hИ†+T'M¡B© êܹnÚþ¢1û¥ë–*U¹~Uk'Š0H<0`#Œ !Á@)(PÁ€H“‚…R˜E«m/^¹TuÒ„ S'P¢U‹VlØ0^¸pý †Œºxòä¡q7¤0`&Pr¤fŠ 4pàÄ›˜ Ú³hÏt© J•ªPB…jذa¼~ ûõë×°gÚÐÅ“¯2 GFHð … ! ¨`‡A‚­‘à@0à ’Á‚…>†cö Ú0U˜:…RÕJU«[­ZÝÊ•+.^¼xkví\†0©âeE†Œ!2d ¹!`€(à b„EÀ(H!á›aÊC ³aÃ~áºÕ)T®ąU«V­š¶nä´S¥ Hh á†7EÞ¨™Âb‡N={†ì×/\¹nåÊ…k³gÏCö¬Ú9t¿Z…ÊÅë×/U‡ âÃG>€Z köŒ™6t§†A¢Á€HL°‹›:lP @ê5jÏšñâõ+W.\·r {vMÛµjÑžQ몓ªb̘ J•!=x¼tù¢“ª\þ¿†=;×Θ&00À€4XÐèÑc@ƒWÑ;‡®Ý¹g̘1k†ìW®_èi#GîZ3fÑTájFí2dÈpT¦ ”&]¾è„©®häÐÉû‰HxñF4L¨eOž_ºt¥Ë>‰r kö¬:yèf=9ÂeÀ‰&€X00! ¸wïìÉ{'Ïž=yñÐ;GŽÚ³`¸~ CÆŒ5j׊=«F9j¿TÒó¥ (]¾è*×/^ÞuC‡®·RA& È€ A IãØþ±{÷îÝ»wïÞÙ³'/ž¼xèÎ=CÖì3fÏžQ£¦­š6rçÎuÃÊž/]ºtù‚‡Ï!M¡Tjõ Y5€Úº¡k÷î»qãÆ±{·®]»uïØµ{ÇŽ]»wòìÉ“'Ož|òÐ]S…©ž.P |)£&Lš:uÒ„)T®_ŘE«F®¼wïÞ½{÷îÝ»wïÞ½{·Ž;vëÞ½{÷Nž={öìÙ“þ'Ožzøð1dè&M¡n c¦ O™/_¾|)£¦P¹˜‹Ož55:99?33B66B66E22F55J99B::E==F<>I>>M::M==S==[>>eBBEAAJBBMEELIINFFRFFVAARDD[IIVKKSJJZMMZNN^JJ]QQ^SS\VVWEEdAAnBBoDDjNNaNNeIIcLLkCCpFFrHHsJJuMMwNNwNNrOOxMMxRReUUbVVeQQaRRiVVmTTlZZeZZjYYn]]j]]nTTsQQzSS|VV}VVzZZv^^r]]vYYqXX]]z]]{bbmiiibbqaaveeqffvbbzbb}ee~eezjjvlltiizjj~mm~mmzrr~ZZ]]ƒ__„bb†ffcc‚ff‰ccˆjj‚mm‚nn…jj„hh‹jjŒmmŽnn‰ooqqqq†uu…rr‰uuŠvvrryy†yyŠyy}}Ž}}Šss’qq‘tt“vv•uu•yy–zz—~~‘{{’{{˜›||™„„†‚‚ŠŠŠ’‚‚•……–……“š‚‚„„ž††Ÿ††™‰‰–‹‹•ŠŠ™šŠŠ‘‘ž““˜˜š‡‡ ‹‹£‰‰¡¥¢‘‘§””¢““¨••ª——¬šš¤™™«šš­œœ¯žž®žžªžž°££¬§§¨¢¢³¡¡²££´¥¥µ¦¦¶¥¥³©©·««±««¹©©¸®®»­­º¯¯¼°°¼²²¾´´¿¶¶¾±±º¿¿¿¼¼¼ºº»³³´¶¶À»»Ã¹¹Á½½Ã¾¾Å¼¼ÉÃÃÃÁÁÁÂÂÆÄÄÅÅÅÇÆÆÆÂÂÈÅÅÉÇÇÈÇÇÊÄÄÍÈÈÉÉÉÊÊÊËÊÊÌÌÌÍÈÈÑÑÑØÚÚàééî÷÷úþK•*Š!B„R3F 'M˜)R¤H‘"EŠ)R¤H‘"EŠ)ÂÄÉŸE¥‚3ÖË#O¥zëÕ‹W¯^Á‚{†Í[¹råÊ•+WŽ(R¤6-"DˆP @jÄLqÒ¤I‘"EŠ)R¤H‘"EŠ)R¤H‘"E˜8£f©M›ÚTªØ³dÁzëÕkرhظq+Ç›7sæz•òäi#E„"ô‡Œ˜)Pœ4aR¤H‘"EŠ)R¤H‘"EŠ)R¤“&M LC† ™?¤ŽM{v¬X°^½‚c6 7nÞ¼™3g®×+Pž<9Z¤ˆ"E„‘™Š“&Mšþ)R¤H‘"EŠ)R¤H‘"EŠ0iÒĉ'NœˆñS*Y5€Óž ¬W¯b̦aãV®œ7sæÌ½*E ”§MŒ)Z´H!?Sœ@qÒ¤I“&EŠ)R¤H‘"EŠ)R¤H‘&Mš8qâĉ2ŒŠQ«VíY±`ņ c6 [6nåÌ•+gίW¥@ò´ÉÑ"E‹ú3Š'Mš4iR¤H‘"EŠ)R¤H‘1biÒĉ'N YÔ+Ù´jÔž;vìØ±gضqóVÎ[9oܸ ë«)O"µás'È=’VÕÊ%¬%=¹„åªuë .\DPb‡':äØÁO¸páÖ­{'Ïž={öìÅzå ¨W½‚ Æ«/ðÑÄ%Z¨x¼ÉþŪ֭LµŒˆ G˜¬Z|,Ô°ÄÇÃ3‚0@ÃA‹/â„ nݺuïÞÍ›gÏ^¯^½b•zÕkذ^½Šã€Äž[|,…˜¤ À<¹D­YU‹•* n¨2ÄÁöðDP¦Ê™h XäÄ•váÂ…[·îÝ»wïæÙ Ö+X/^±^•*UªW/\@DÒÆVœ w¬|¹äãR&U¬r½g‚,"¥¸À#C˜-kp¸¨†-)n\!.\¸pëÖ­{÷nž½^¼b½zEÊ#EŠ:Åz4K€ <"ñ` çÑVÚ£$)Ï[ÆúäÉ4k<˜ÑÑåþJ , ‘ƒ]áÂ… nݺwóæÍ+ª(P <9"Dˆ©74¬D˜qÇX)â´ÊÄ*H®L‚2õzf̘1c¬DEZÀ€Æ6t’Dà°àÀˆ 6N8Hµ.ܺuëÖ½{7Ïž=P J‘  §MŒmU%O((åºcÄŒ+),¹©UIR¦JÀrQÊdfU¦H œ0„HI’',XÑ¡ §Ö½{·îÝ<{öìÙ³·É(P @å T©RHäиa#’.KV¬°è€Á’&J¢2¥ŠR˜-aD±º³`ÁH@`˜3aÁ'Âøp€gÝ»wóìÙÓ—/Ÿ=þ{„-b´iS'Ož@‘"UÅÒŽ7|ZÙb‰ˆ¬X]ŠÃjN˜\³Â©3Ë–­= H!cÁ‚ ,‘eÄnÖ½›gÏž½|ùìåËP BŠ-ZÄh“§M+ò\É’ªKª2ÄQ•K˜ºH«T©RÆÌKwf±r³àBŠ 4X°`Á% ,`pÈ»wöìÙËgÏž½|ö (!B„-b´iÅ9”2ÝAuRV¶„QK‡ س9ªej•'’±=\q¹S« ‡ 0p b †¼“gÏž½|öìé³—/ @ (P B„6¼°#éŸG’þ2ÝZ%K¸cµ¸å‚¤+—®Z‘ø<êÀ#¤L·âØÁ€Ã…³†0pà@†={öäÙËgÏž>}öýè @ýùóG‰.¢PtydèÖ-UÉê©3&ÌX¤=ˆfÕIÏŒ)2!’$é ÚìÉ„(ˆdسgOž={öìéÓ§Ï?~þüÈ2dHB)S=ªj%‹$Ë¿}åjeŠc¥Ï²[m|¤h%6k Õá`ÁŒL³TùX°€ yòìɳgÏž={úô‘!C†Œ2dȈ#F Ž4ÙZ•)Ó#M–2íëçï_º<–råÊeìÑ¥G‚²°þ2ÆNvô¸D‰ÒÈgÏž={öôéÓ§Oß1S¦L™e (P¦äè‘¢V$Q‡yðqiV=ÉŒ³u똰fÂ(‰ÊdŒ¡5f$É À‚‹.DêpáàÀ séÚÉ“gOž¼téâ9qâĉ'Nœ8qÊZ¸¤Í rŒ3VKÕ±[ÂÔ±ÊÅŠ.¢ ™„(S`¡™³%̨èõ ·rèÒq«†[“&Mš4iÒĉ'Nœh¹AÎ |*€!‚ªfµò°Ò•l $I™2A áJ˜-‚(á£Êš5kì$YÀ€ƒ¥bÅŠÕþëY¶lذqkÒ¤I“&Mš4qâĉ“‡<À@ˆ <Êf,«\Ô(©ÊEé’•,ÌI’'SšV®„DgM 0@±hÑ¢M¤b {†mÚ´&Mš4iÒ¤‰'N¦ŒAò†€0È 0€€›Z€­²•KÕ¬=XnøÂ`A*yTš!©Au½8±€ƒ"ÄT/fئMk¤I“&Nœ8™2†  +?P`@1ÀÇ€ @8PᇱV¹j©¢”¬ ¬LàÐ!R£ÞtYcfM&0 ñ'P BŒH ›–-·&M6qâÄ 1cü*”$‡þRt àƒìXuKX2U‚FiÙqaF1)h´¡ÔE’Š+‚ì Áq`„/-bÄh“«`ɦMÃæÊ1bȨñã¡EiºÐ0€†…`ÀŒ/y2‘bEÇÌ*$»%ÊÆ!Y¬nœ@S "  $#P¥J•ŠÕ«W°^bÈøˆ"E›JÅz¥'H’vz3 $’DA:Á 4t¡ƒ(SC‰ýè°€F¯R @¹zõª”£B~ȨQCíY±^½bÅŠõªW¯^½†‹u¦Ç™/ðæF Tµº”ØpÈÐ!4=ªôð0à‰0l ¥Q‚èP‡þKv,X¯^¼^•*å‰1ذM›öŒÙ±cÃzõêuìYµf†rÜP²"<¬hIO†–:dÄ f0uz@X bµiÔ’ëëÕ«^¼J1ä7nÞ²Mc6¬¯^ɸ™k÷æ… 8Z 80†$ªÂÌù1b6k.,80à’J‡(-Að  ‚d«FíY²c½^•*‹W,RžÒ¡3gÎ[¶d½b•âÕë7sòN%y0`À´8´Ç–™./t€¨³ª @ÀM3h8`¡¸jÏž%;ÖË(O¤JÅ*EÊœ9oÜþª1+ÖëU©W½Šek'/âÁ€fX2T„C60`0ƒs¬yóà 8–eËFíX°`½\ò´©(R ªU«–ìØ±`½zõ*–¬š9yòäáI¢@A€ :\L`ðÉ¡GX®àx  È‚ÆL Ð’iÚ´lÔz•"UÊÕ«R¤@•"EêØ±cÁŠ+¬Ø±iÞÒɓ׮5"K2H`ÇìxèG0a.P p€Á‚Wº 0à€…iŽ%{FíÙ±W›<•Šõ*V,^¯bÅâÅ«W¯`Á‚{–Í\ 2dÈQó‡Ð¦R½¢™kOž55;55>99>..A66A66E22B77J99A::F==F==B99I==J==M<>d>>h@@EBBMCCLIIJBBRFFRFFUAAUDDZJJVKKSIIYJJ^NN^MMYQQTRR^SS\[[_DDdAAnBBoEEjJJbNNaLLfMMjKKlFFrCCpHHsJJuMMwMMqOOxRRbRRfVVeVVbRRiVViTTmZZfZZiZZm]]m]]jRRqUUrVVuQQzSS|VV}UUyYYrYYv^^tXX^^y^^}ZZzaanddlaarbbvffuffrbbzbb}eezee~iiviiykk}qq}uuxZZ]]ƒ__„bb†ffcc‚ff‰ccˆjj‚jj…mm‚nn…ii‹kkŒiiŒmmŽooˆooqq†uu†rr‚rr‰vvŠuuzz…yyŠyy}}Ž}}Šrr‘tt“vv•uu”zz‘xx–zz—~~‘}}•{{˜||™~~šŽ……‡’‚‚•††–††’š‚‚……Ÿ††Ÿ††™‰‰•ŠŠ™š‘‘ž””œ—‡‡ ŠŠ£‰‰¡¤ŽŽ¥ŒŒ£““¢§’’§••¢’’¨••ª——¬™™¥™™ªšš­¯žž¯žžªžž°¢¢¯©©­¡¡²¢¢³  ±££´¥¥µ§§¶¦¦µ¥¥³©©·®®·««¸©©¸®®»­­¹¯¯¼²²´°°¼³³¾²²½µµ¿µµ¾²²º¿¿¿¼¼¾ºº½¶¶ÀµµÀ¹¹Â½½Â¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÆÆÈÇÇÊÂÂÏÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÃÃÐÜÜäþI­"õi‘ A‚þô!3F 'Lš)R¤H‘"EŠ)R¤‘"EŠ)RÄIDŸt†kS¢M«xùÒ…«.]º| Sví›9sæÌ™3gNÔ§OŸ4%$HÐ?dÄHq„I‘"EŠ)R¤H‘"EŠ)R¤H‘"EŠ8‘’‘(M‘ ZDªX³cÁtéҥ˗±f×¾}3÷í›9tèx‘Ò¤IÓ"D‚ 䇌)Pœ0aR¤H‘"EŠ)R¤"DŠ)R¤H&L¤ˆC& ™>ŸŒUkfL˜/]º| S&íÚ·oßÀ¡C‡תOŸ6iJ„"Aƒü‘Š&L˜þ)R¤H‘"Eˆ!B¤H‘"EŠ4aÂĉ'NœHéCêX5€Òšó¥K—.aʤ]ûΜ9tèЭ"EJÔ&M‹!J”Ñ>Rœ@qâ„ &EŠ)R¤H‘"Dˆ)R¤H&L˜0qâĉ2‹„5«V­™0_Â|;&íš¶oæÌ™3‡Ý­U¤>}Ú¤©Q"A‰ ò3FŠ'N˜4aR¤H‘"EŠ)B„H‘.\aÂĉ'N I„ë˜4iÒš3v̘±f×¾}3gΜ9pß¾Ãu‹”¨Mš4iÒ´(‘ ?|ƈ‘â„I&EŠ)R¤H"Cˆ ñ$N ,Œ8qþâdŒ Uƪi«VMZ³cÆ”5ƒvmÛ7pæ¾}Óvíš2c¾p­%Š)RŸ4-Bô‡2Rœ0aR¤H‘"EЏ2ÂÀJ:¬è‘#DN¤ð!LZ·oÚªI;&LØ1iФ]»¦MÛ5iÍ”)“Ö̘¯[«ZáÒ…k•(M‰ùéCF 'L˜iÒÄÈ Bø€³%ž7jT0€ELMºšiÓ¦MZ³cÊ”5SfL4iÒš);fÌØ±kÒšó… —/aÁp­Ò”HР?i¤8a„I‘&FŽ˜`J¥N‡"á©"¡†!nÜø³I˜4mÚ®I«¦M[3cÔI“&­þÙ1eͤIû¦M›4e‚Sv̘.R›4%úÃgŒ(N˜0!Bço"Ű²%Ž#VTpØ……ˆ,¤šiûöíÛ7pæ¾IkÖLš´fÍš5“víÚ5pæÀi«Ö¬Y3iÕ¤5† `«O‰ýéC†Œ˜44„8Q'R—Ø¡S%G ,jØdÂ¢Ž´oàÀ}ûöM[µjÒ¤5;fL™²f×®I“ö œ¹oß´]»¦mÛ7mÕ¤5;&L×'M‹-‚¤¡B•;x@M°#ϬYŽN(ãÈzèP½¹ô¦–H¨(E"*R¤I“þÞt“ Ê(±qᆱb¸H}Ú¤IÓ&Mš6­Ò¥¬Ú7pß´mûö 8pàÐ¥SçŽ=|øðá£ìM$ªtÊ‘§N•I¯:©ƒ +!l qÁ‚ JÒÅ ×­[«Zá"µj•.cÒ¾}ûN›6mÚ¾}ûö :uîèÑ£G>t‘òÈÁ”’=.9²4 !KZ œÈ±€G–!"2Üh`$­Œ &LØ0aº| 3íÚ7sèÔi«vMÛ·oß¾™C§Î;wòèÑÃkË}ôèÉs玞4ˆÁæF:hàQƒØ¸qãÆ7n;vìØ¹ƒ‡œ6iÊt}ÒôIÔ'R«tC•Õ$Gq,EªäÅQ%T):˜‘eÉŒ™C_ÔÜè0ÅÀ€ l®€ ÃÀ$îŒ7nܸqãØ±c}’…I– ‚ r”'±e P%©Pa€0`€7 ˜‰T§ÇàÀñQƒÙ¸qãØ±ƒw>|øð«N8mÒŽùjuëÖ§NmPéYà ‚TyhÑŒ°0X @`Àp¤ÅK=xT!œ.2lÇŽ;xøðáÇß­U¸xáòe̘0\­V}‚£á‘ŒG'ÈðÒ*TÀ€©ê°ǃd8¤aÀ€f–¨°TáÆ Y:T#GÕ¸qãØ±ƒG>|øðáZµŠ”¨Uº„ Óu W+0Å©dÅ„–˜.uþŒÖ,#lX0ÀA¤HpX(làƆ%6H 7Ž;vðàÁÃwŸ.]ºn­Z¥K˜0\º„³PR6AòÈ*%ëÀX¨jÑò‚ÊÌ"¦Ì)dfA 3WÎPáK3vìРCˆMqãÆcÇk±ÄN†@Er„Bƒ4WÐH¨5Ž;vìØÁƒ¾OŸH‰úô à&M‹iUç9ª0é0°AÆ9XP3D¨”X¨h©$H:KÂì0ÂÒ$,t‚D¨QJ‹ ¦ØÁƒÇ>|øðáçiÓ§OŸ>}ú´é“(R6 È£ªMB´iÃUœ5P¡¢U”-qÞ²æI—ì˜Y`FKr¬|`°þ|‚%Z¤I“¦M›>‰¥Â„L´hÉð  -X5PuˆPé’%G‘.Éj :aè’JŠ _àD¨³%H{àÁÇ>}øðáÃ÷çÏŸ?‚!J´H“&M]â¼¹ S•9zõRö U*´,EBuéR$=¨PÙ‰t¦P¬X„ …H±D!$]$0`Ð |øüøùóç A‚%Z¤i —GPÕÙd•¬fÍŽYBuÍ’%Bµ,UŠs Ô¤N^½šÕ‰N¡)7¾TÁbÂG‚ „À£‡>}ôðéÇϟ?þüùóçÏAˆxÀá§”£K¨þhÅB5KV$Tý”" Xœ;†bÁB…ªªN€2„f‡4$H°à>zôèáÇŸ>}úüôñã§Ÿ?üôéã'Å;U"EšÉªU°PUº„ 0Z²@]ÂcÕ™H±^YŠ4IÎŽZ.ø`°@ ~У‡>|øðíÛ§>|úôñã‡2dDT@UÃ’*b„Š„*’#Tޤ¡B…j’%PÄE˜‡Ø,P "é¨2E 8 (PÀ ÁzôðÑ£‡>|ûö‘!C& 2dȈ#FŒˆ†.Yº„'H¤H½P¡º„JU,~¨@Be‰X¤ U€Ñþ:+5t¡!Ô! è ‡>|øðíÓ·oŸ)R¤H‘"E (P¤LÉ)O• N¨²Œ,UA`Pšå ˜+S^M‘€…*FêЃÌ$B>:D@ÁuîÜÑ£Gž|úü$(Ñ¢EšDáÒåë• %¶ÈðñÀ‚,Ȉs)Œ,;–dÁªÂJ‘²¨Ð%b–2ÔÁ€HHµú„H¢O¤ñEÐA‰iÚ´i)RŸ:-±PJ¥Lˆ Â‚…- ÖŠeÖ% 踄êP„,:„êQ$ $ppfÓ&?dÈŒù£)(LiZÔHÓ¦O›4iÒ¤IS˜2°Ä*&+O€B`ACçˆY–"qÀ€P•¾L²£ —:_ÌÔé £D‚kþþ¤#FŒ2}øŒ‘âDÓ§M›>}úôi“&Mš4…IÁ¡R½d=0 0I:˜ ì €>$ÈPT„–ÄÑ‚ ŒšK?¬àÙ°a)bÄéÓç2RœhúDŠ)R¤DmÒ¤IÓ¢>fd˜x 0 ‰Tá+¨,ÙpF/‡ÅŠDH †vÔ1ƒ§†–&ÈHC&MŸ?‚ù!#ÅI¢M«nµZEjS£E‰-¤FCŽy:\Ù@€ l€sHÍ’ft8TÕ¬H¨ðˆ Ä!`n$@±#1døôéÓ‡1P˜$úDjÕ*Rš úþógP¢Mk6CÏG ð`‰%JÑÉ!ACh¢c‰† .TŠ„"Á…=ÄH"EÌ1R¤@âĉ&Q¤6iZ$èÏŸ?‚%Ú$JÀT!äè‘…bÄÆ‘)$0è`I‹)s ÐÁA„K€jDЇ'P Hâĉ'Nœ8ù$ê“&M‹%J”¨Ñ&MŸ4µ  ;ŽdU RÅ BVdD €Á‚pXpPbËŠ,„¨”§ŠŒF8"FŒ)P @âÄ “O¤DmÒ¤I“¦M›6mÚôISœB¨€KV,T—P¡R£Äþ\èaÅA…ÐÈ(pÁÁƒH‘ê,H`‡1cÒðáÇÌ1bÄ@Yµj•¨Mš6múôiÓ¦MŸ>Eê‚`Ê‚ —P²„ªª9K–„H`€A‚<¸x©°ÁPžÐ0´¡C‚ õé#h¢Dˆþð3`š4¾tµ"õiÓ§O¢H­ZµªU+C&|¨h`àªI–*©R)Ë! ,¨RÅ@ pêDšcÀ€‰q0 D+RŸH‘ZµŠ”&A|Ȥ!3í˜0]¸pµjÕ —.]¾‚ k•âD ‚ uiÉ#U—²,ÉP¡F—)*°Å!4à˜ããþä;fÌ/\·V‘"µ 1×®U“6­™1cÁxáÒe¬YµeHl쨡*P¨–Ø9dcÈ’%f`Á@K†Ð9Ë;¶\00€Ø´iÓŽ 㵊Ԫ[­D-úóí8pß´U; .]Ê´™S©Â•ô¸$ëL%GC–˜YcÇQ `aä ;`΢°Á‰dX«6­Ù±b¸V‘"µªU+R›Ô¥C‡œ¶fºZ‘º…ëØ6uô€Õà€ ‡W*!dÇ’f””àÀÂ6è¨a³$‹B",0°‚’¶jÓš+¦‹Ô§OŸVµ"% :pßþª)†«ÕªU¸„i“G/–0`qàC\LX€¤ƒr|¸PáËœ0KÔ\qÔƒ4’i³&͘/]¸V‰Ú¤I“(RŸªU«¦Ì˜1_ºtvì:zôèͺ¢B8H±¢ÃW:0H`Æ)Ô€IbË„.&TÑfZ5kÓt‘EjÕ*R¢>‘"%ÊX±b¾„L˜1iàÔÉ£çN7, zŒÈPa€ `hœ¸ÀLj H` …š S0 0À€‰74Pk&mš±Uš6­ZµêÖªV­ZµjÕ —._¾| k¦M|üüA¤i•.eÇœ8aÀÀ„%6„@BËšCS0  @€†ø’&­™±cÆŽ5;&L˜0]­’Zeìšþ6m×®U“Ö¬Ù1]›õáÓGТD‹V5kÖL.#D 0¤Ä€iZDê˜4iÒš}åb‚$Р  h€A…GVI“vL˜/]¸ZáÂåë4iÒ”S&m:u¾Z‘º¥K˜°U‰ ô§OŸ?‚Zƒ& Ú·t¯¢TÐÀB„ 0`A…,`ëÚµkÒ Ó .\¸t“¶íÛ7mÕ ]GêÓ*cÍ  [EjU"?|ƈ!ÃGÓ*\þÁŒICçnYЀ$Ï(®¤ Ä`å©S§NÝ:iК5kv,.]Ƥ}n›´fÒVéjvMš2eÊt‰DFŒ)bÈô¤éS°jæÔѳvfHŠ#6L¨²c‡€˜±†=zøðÑSgî›¶oÚŒéÒ…K™4mÛ´]»v-Ø1iÒ¤I»ÖLצ?dĈ‘"E ™?‹pƒ&M›:z镨°¢‚€`Ï8xðèу>zòÔ¡[gN›´`º„ SÖ ÚµkÛŒI»V œ¹j¾V%êCFŒ)bÈôAD W0_ƤK§ÎÝ8J0 `Š=ÜØþ±c}ôÔi»¥I)R¤Œ!ÓG&Mš6}Ú¤é“.aÊšIÓ†Î=xðàÁƒ|øðá£þG=yîÔá£'ï›±[šü‘"f ™4%J´H“&Mš4}º¥KY3mèÜÑ£|øèÑ£WO>wæŒÝ"•È@2bÈ!Ãç ?}þB´hÑ¢M¤ZköM=zôèÑ£G‚iúD W³oèÜÑ£G=zôèуGO2dÈIÓG&R¸š¡s'=zôèÑ£G=zôèу|úôé !ù€ ,Dd‡!!%!!###$!!&$$&"")%%*&&-""-)).))+&&1&&5**2..6,,3..9--<11622:55=33<99>//D66A44D55J::B::E==F<>N::N66Q<>[>>c@@GAANCCLHHOBBQEEQFFUAAUDD[IIUKKTJJ^NNYNN^IIYRR]RR[PPTDDdAAnBBoEEkNNaKKdJJjNNmLLkCCpFFrHHsJJuMMwNNqNNxQQaRRfVVfUUbQQnUUiTTlZZdZZj]]n[[lRRqUUrUUuQQzSS|VV~VVyYYv^^u[[rXX^^y\\{bbmbbqbbvffveeraazbb}ff~eeyjjvjjzjj}nn~nnzrr}ZZ]]ƒ__„bb†ffccƒff‰ccˆiimm‚nn…jj„hh‹kkŒiiŒmmŽnn‰ooqq†uu…ssrr‰vv‰vvqqyy…yyŠzzŽ}}Ž||Šqq‘tt“vv•uu”zz‘yy–~~‘~~•{{˜||™~~šŽƒƒƒ’‚‚•††•……’€€›‚‚„„Ÿ††Ÿ††™‰‰–ŠŠ“ŠŠ™ŽŽšŽŽž‰‰‘‘ž““˜˜Ÿ‡‡ ‰‰¢ŽŽ¥ŒŒ£§’’¦••¢““¨——«••©––­šš¤šš­œœ¯žž®ššªžž°¢¢«©©©¡¡²££´¥¥µ§§¶¦¦µ¥¥²©©¶®®µ««¹©©¸­­º®®»­­¹¯¯¼±±¼²²¾µµ¿µµ½±±»¿¿¿¼¼½¹¹¼´´¶®®Ã··ÀµµÀ¶¶Ä¹¹Â½½Â¾¾ÅººÅ¿¿Í¶¶ÈÃÃÃÁÁÁÂÂÆÄÄÅÅÅÇÆÆÇÃÃÈÅÅÉÆÆÉÇÇÊÃÃÍÉÉËÉÉÊÊÊÌÌÌÌÊÊÒ××ßÛÛæììóììïþU­ZåIQ @üðI3FL”'Nš1bĈ#FŒ1bĈ#FŒ1Òä Džr –K“¢Mªvñâ•‹U®]»xCFMÛ¸qãÆ7NT(Q¡4! (Ÿ>dÄLyâĉ#FŒ1bĈ#FŒ1bĈ#FŒ<™’æ(MšÒ$*زb¿xíÚµ‹1fÔ´iÛ¦MÛ¸qær‰Ú¤I#DćŒ˜)Qž8qbĈ#FŒ1bĈ#FŒ1bĈ'O¦ˆC† >¢ˆ9[F,¯]»vC挚6mÚ¶™3gn+O›6iBtèСCú™%Ê'Nœþ1bĈ#FŒ1bĈ#FŒ4qâäÉ“'Ožˆá# Y4€Î–ûµk×.aÈœQÓ¶mÛ8sæÌ­%ÊÓ&MŒB„èP =SžDyâĉ'FŒ1bĈ#FŒ1bÄH'NœÅr4'R$**¼Ìð Â3mÛ¶uÓ¦­5gΘ-+F 2fÔ¨9s¦mÛ¸mÚªQ£V ›¶jÑœ-+l—'MŠa±@EFa¾^ź„çSª8DÌ S¥Å€4lÄê¦M[5jΖ-[F,X°`ÁŠ![ÆÌ™3gÚ´mgN[5mÚ´U«¦M›¶þmÚ¨#†LŽA48Jõ)Ö¥9Ž|Ù2C„H 1ÀHØ@džbÕªQs†LX°`»råʵK1dËœQ£¦M›¶qæÆiÛ¶­Z5mãÌC‡¶jËQqtÅ@S±$Yútj–-/´ B$†:â`YÓ­š³b¿r­%*”'Q¬rí"p™3gÔ´m7ÎܸqæÌiÛf;yôèÑC·mÖodØØaÅR!9³b©rEçà $tù‚%‰ŠJNUsökU(MŒ4iÒ´i“'\Á–E£V­š¶qãÆgΜ¹sîäÑÇ>zæðxxãEFœ3Ü2djΧX7þhYQ!‡#Dþpx ã 1b¹DyÚ¤IÓ&Mš6­ÚU,š6mÚªaÓ¦mÛ¶mÛÌCçŽ=|øðᣇj–—KŽnÌ çÓ)H†î|š¥¡œKHH`à  X˜øÙ•++V«V嵊Õ.bδiÓ¶ZµjÕ´iÓ¦m:tîèÑ£G>n4V¹téª+\.ER£ÆÔ¬X'°|p”"A0T|H⇕%«ˆû,˜°`»v#Ƭš¶qæÐQ‹F­Z7mÚ´3‡Î;wôèÑÃwi‡.„.92 %I‘ ÅrõF‡(ìŒàƒ-H¨p±hÙ2gË!þ[¶ŒX1fΰ™sçŽ^5jÕªië¦MÛ¶qæÐ¡C‡»n^ØxéâÅ‘ K‘PÙ*Ôf†#3D¾¤YBâŠ/\$HR%GHUÓ¦µjبUÓ¶Íœ;zðÜU«¦M›¶mÛ¶mÛ6Î:tæÆ3e¥Ð)K†¨œ!äè¤%]$$q‹%:*dÐA„„D\ô R¡:tîÜ¡Cg.:tîÜÑ£çÎ6mØ´3gÎܸqæÌ¡3·š³.*tÇš8†>„„Å͉^hð ã„G\ 0ÐÆ‹*V2hp—/_>|ôèÑ“çŽ=zô๫V6mæÌ™7þÎÜ9tæª9;µ 8w¸tùcÆ ¡H•¸àxóc†$ˆ¼ BÄ…<,ðÑeÆŒRøðáÇ=xðàÁƒž;jΜQ«¦mܸqÛ¶3·­Ú2G?Ö”¡ÓÆËˆG…"e¹ñÉ•^ ™ÉpçË’%_”,Á@^>TÂY’@B„ z˜ q%™7oÞ¼yóæÍ[»víÚµƒgn[5fÈvyÒ´I”'Q¬vñš R¥Sjºê‚ÊR,SŽî˜q£¢€¨ê´æÔ) X°$` AjyóæÍ›7oíÚµƒ|øðñ’ÆÛ¶nÑŠýb… W¨OŽvHÄœX¶† ÃD‡’ ‘ Y²cŠN‚6JXpd‰ŠG”Àð’ê […†yóÖ®];xøðáÇ«U¹våâEìX°\¬Vy:ãh ]ì¼™cÊÖ0YµP‘²àè¦;ê$hä‚;¨VTÁ‚ÆŒ™3†¾Ð… •7oÞÚµƒG>|øðáZµ*”'V»xÛ…+®z1°CO-S¨b¡²þeË—¬6²Ly0pE„ I0@¸2c„š/KZ`‘S¨ !wyóæ­];xðàჇß®]»X­bµ+د\»‚Ûàè x^½²%ë@T¨ ɲU)ËŒ3ð4x4G * œpd¨„„îXÉÀà !oÞ¼µkOžB…òä à&MˆiòDhAª[!"4 a •©Wzô`2æo¸\Õ A²DÍG¿N#f̘cÆL…,+N8²bæÁƒÃÚÁƒ>|øðáçi“'Ožþ|!R¤I“¦Mž<‰ õã)Y24D âËΫX²ð8bCΞ³rÇLÉQSfIW<˜1éS† v°ÙÉ„ ÃàÁǾ|øðáÃç§?!B¤HÓ&MY¼ÄŠt‰b²^½2eêL$GÚüA²õçË%JŽèÀSÅ‹-T–LY Á74<èp|øúôñãÇO @!R¤éŒ!G…px@å+*T¦Þ`2eŠV9KŸÊ2³ +„~|r% Õ%K–ÙA¢Nƒ†Á£‡>|ôðåǯO?~üøñãÇŸ@‡´”qDÈ‘©`²þ ͱtãØ+SÃÒ-ë´HŽ)K±f©²£)K±^}úÔÉR¥,j²4`ð =|ôèáÇ_¾|øúðéÓ‡O?~úðáÃÌKŽ\ÅòõIS4<ĺ$IÛ¬HŸ’Ì1cêÕL ™2uÊV,KŸ"EúpÂDƒ HÑ£‡>|øðåÓ§oÏž={øðéÓg2d¢1ôé“#_±ä@²UÉ„,mØ }2¥&Ë,†"ŸDÍ'T‘,YšIŽ#CThРzôðÑ£‡>|úô‘!C†L2dȈ#F 5–,Yáb*’/S¬4УέBg"ÝÑ¢&Ž#4`æœþj³‚ÎKsä˜ñ€Aƒ 衇>|øòéÓ§Oß1S¦L™2%J”(Q¦ôxãeF ufõsäÃÀ+Á–}BUÈ 3¦À82sÇÔ§BwÀ˜QcÆU 4hÐà%tèÜÑ£Gž[l ðÊ•)5jþÈ™ !C±,•QSF%_LÍÙÑ Aƒ èÙµŒ¶mæÐisFM›'Nœ8qâÄÉ“'OžÀÈáÁ€AfÜB‹’”.Šæ‹%K a1ÇÑ"J"™!rD584hРA‚:¢X±bÅþkY5jΨisâĉ'Nœ8yòäÉ 0€F„VP|Ð`ËŒCX–Tªe ˜9‘æ,2ÆÐ%s,Å‘C£Aƒ Dp…(Ð!M¢V[-š3'Nœ8qâĉ“'O¦ˆÁ’ÀhhhpåC!—.ùdf‰i±P92cIM'He$aYò§34hð€A…4|úø9¤ÈS.dÔœ1sÒĉ'Ož<‰2†Ìž$ Ð C‚¨|¨ L!KŽðüù—,Ú',Kþ’³ÄÒ)C¨ ‘€A‚ dHÓ'?ˆDýrV­š6'N:yòäI”)cöôñƒ%ƒþ€$,HAB• l|©™#K TÕlK†‰¡HÌÐ1d*–I HЀAƒ’ü BtH“*^Å–9‹ö$Ê1bÈÙÃÇO Df<0À€HX Ú3—0 dÒ'T`¾Ìù3Ç#S§©ùƒ„… l £É&O¢D‰Â•k¯\bÈìéã'P CšD±Z5)ƒ °`@„ÞÄQ£FR†6X09BUiÖHrd¡zeË‘™2j0`ÂHž…R•k+V›iÒ´ÇŸ@ˆ)Ò$Š2b¢z `€  x q‡¡9„è|ØqãL¤Hþ–\ýQ*Y¯æÈ™óI h¨Ò)W®_»XíÊ•KŸ=|øøñ‘"EšBåúµ —6>d€àÁ€ 'tä0É—xˆe&V$0g ]ŠdÈ×¥HAÞ¼aÀ4§xåòt("Q¢í3%P @‡iÚäi“(QžBébçΫ Ø á„G¾æÒ¡Aˆ7")1SÈ’©JsUräÃ4$pcH“¦>iƈñ£IÑž(O4iRÄHÓ¦Pž6iÒ¤IšJ¦^™ú°aÀˆP`IŽ›*4Àd©PœK…î|ØáãÌmv$Hð A9|üþ¤#FŒ2|Òˆ‰òDÓ¦M›~1R´‰˜3gΖisõb$€€   @€†8R<9s†,¯]¹Xáʵ«Ø2gÎC欚9t¼p‰ÊÅ+Ø/UŠ ä‡Ÿ>X[æÌY5s´–Hð Æ€HAƒp)ãŠ5jÑ–ñâõ+W®\¸rs†M›¶jÑœQÛ¦ÊÓ*bË–%J¢>{ƈ!³G“¨\þ¿ˆ93玑 ~DH†TРGšbÑ™C‡Î9gÈ–-[†ìW®]Äœi7³eÑVíZÍ2bÅv… DFÌ”)bÈð ¤i/gãÐÑK†ÅÅ— d°Áe’¬‘†=zôðÑC·M[5lÕýÚ• ™³jÚ°Q£Fí×2gΖ9£¶l—&?dÄL™2E ?Šrsæ¬:zçô4h @À ðS;xðèуG>zòЙ37Žš³`»~[ÆÌ5jØŠE£mÜ6j¼V!Ú3FÌ”)bÈð9$*¯_Äœm3çÎ8=4  =àÚþµƒÇ|øðá£þG=yîÐå£'O1\šü™"F ™4~!:¤H“&MŠ4yʵ ³jæÜÑ£|øèÑ£GÏ>yãŠá…¨@2bÈ!³ÇO ?|úø9„H‘&O¢X[¶ =zôèÑ£G|ôèÑ£W-—(Ošñ!#†L2{øðá³'M>i %j×2mæÜÑ£G=zôèуG|øðáǾe¸D…Ú¤ÈÏž1cÈ!³g>O2dÈIÃ'¢P»–s'=zôèÑ£G=zôèу|øòå !ù€ ,Dd‡!!%+!!#""%$$%"")%%)%%-##,**.)),%%2**1--2--6**5..9--<&&:11511911=55>55:99?..A66A44D66J99B99E==E>>I>>N::K<>fBBJBBNEEMEEHBBREERFFUAAVDD[JJTJJYNNZMM]JJ]VV^QQ\QQVDDeAAnBBoEEjNNaKKdIIjNNmKKkCCpGGrEEqHHsJJuMMwNNuNNqNNxQQbRReUUeUUbRRjQQnVVjVVnZZeZZjZZn^^m]]jRRqVVuTTsQQzVV}SS{ZZrYYv^^v^^qZZyXX^^z^^|bbnddlaaveevccqbbzbb}ee~eeyjjvnn}jj{ss~ppsZZ€]]‚__„aa†ffcc„ff‰ccˆjj‚mm‚nn…jj„ii‹jjŒiiŒmmŽoo‰ooqq†uu†rr‚rr‰uuŠvvrrŽyy…yyŠzzŽ}}Ž}}Šqq‘ss’tt“vv•uu”yy–zz—~~‘{{“{{˜›||™‚‚ƒƒ…’•††–……’€€š‚‚……Ÿ††ž……™‰‰–ŒŒ•ŠŠ™šŒŒ‘‘ž””œ••š‡‡ „„¤ŠŠ£‰‰¡£¦¤‹‹¤§’’¦••¡””¤““¨••ª——¬šš£šš­œœ¯žž¯ššªžž°¢¢«¬¬­  ¥¡¡²££´¥¥²¥¥´¦¦¶©©¶ªª²««¹©©¸®®»­­¹¯¯¼¥¥»°°¼²²¾´´¿¶¶¾±±º¿¿¿½½¾ºº»µµ¶··ÀµµÀ¹¹Â½½Ã¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÈÆÆÉÇÇÊÈÈÉÉÉËÊÊËÊÊÌÌÌÌÍÍØÜÜáááêþKµ*EÊÑ Aƒù)c†Ì'L–!B„"Dˆ!B„"Dˆ!²ÄIE¥|5;Æ«“¢O­| ÆK/`À„)“¦í:tèС ‡®(P¥8)4ˆ ?eÌLq„ "Dˆ!B„"Dˆ!B„"Dˆ8™Ò'Q)NŒ âT꘴eÆ„L˜²iÚ¾}C—î:tꀕúÔ‰£Dƒ ä§™)Nœ0YB„"Dˆ!B„"Dˆ!B„È&L¦1S¦L?¥”Y“¦ì0`À„sfMÛ·oß©S§˜+P >qR”(Q¢D€þ”™2Š&L˜þ!B„"Dˆ!B„"Dˆ,YÂĉ'NœñSjÙ5€Ö¤) °cάmë†:uêÔ¹*U ¨NŒ%R¤( >Sœ@q„ “%Dˆ!B„"Dˆ!B„&L˜8qâÄ ”2ŒŽQ»vMÚ±cÇŒ[fM[·oèСC§N.W¥@úĉ‘¢DŠ úSŠ'N˜0aB„"Dˆ!B„0`!Âĉ'N¦”QÄk™5kÖ¤)S¶L™2iÚ¾}C‡]¸pá¾ãõª©O:qâÄHÑ B}È™â„É’%Dˆ!B„&/,@P €@/œ8qþâ„Ì WÊ®m»vÍš´eÊœI›¦­Û·pá¾}Û¦M›3eÂx¹*EªT«R 81¨O™2Sœ0a²„"DˆÙ @À*P`iKŽL ø)eÌÚ·oÛ®Y[vìØ²iÓ¬iÛ¶mÛ¶kÒœ9³&M™0]®^ñâÅË(N‰òÆŒ'L–!B„ˆ(  À.š"%Q¢$ÌŸNÀ¤iÛ¶Íš´eËœ9s¶Ì™5kÖ¤I[¦L™3mÖ¤)Æ‹—0cÂx•â¤h¡?l¦8q„É"L\Äp@@*±$g Bn`ô阵mÛ´]»¶m›4eʤY³fMþÚ2gÒ¬Yûöm›5gÇŒ)[¶L°RŸ:)Ô‡Ì'Nœ8)’AB lÈqƆXl€ÁÄ:¥¤mûîÛ·pê¾Y“&Íš5iÒ¤I³¶m›¶pèÂm»6Mš5kÚ®I; à+PŒýéÓ§ %ìIñÇ3ÞpQâ‚„ DP¡'µoáÂ}ûöm›6kÖ¬I[¦Ì™³iÚ´]³ö ºpß¶iÓ¶íÛ·m׬YSv (NŒ…é @>(‰Ø¬L«0]H@`A…–bœÚöíÛ¶kÖ¤I“¦ì˜²cÇ–9“fÍš5kß¾…C§îÛ¶oß¾mûöí[¸þpß´)SælÔ+yV­€@‚ Wˆ¥2´*&/Á•fß¶]£æìرcÀxñâì˜2gÒ¬]Óö-\8têÐ} nÛ¶oèÔ­[·n]¸mҨı±ÒÀ\Áƒçš,hꈚ”„‹G¶ˆAóm›µeÆx¹*UЍR¯xSPÚ4kÚ¶…C‡:têÔ} §n{áfì±ñ“Uª(áÁ³* þZ¸ðQ„ˆIT,Øi#EÊ2e¼JúôéÓ'Nœ>¹¦ìÚ·oß¶uûöí[¸páÔ­[GÏž=|øòå³·'Æ¥;ˆAúR(Ð¥C¢„Œáp‚ BŠ „©„‰,GŠÆ‹—.]®^ñ*åÊ0eÖ¾…ûnÛ¶mÛ¾}ûö ݺuðìÙ³g>l2ât‘ƒ*&…™´*‰¯4%B`FI5’n¨&R'®”;†Ì2dÀ„S&MÛ·pêÖm»vmÛ·oß¡k·|ø®m[/Þ»pÔš;ìS"VU"ŹTëÖªH™Ô$»Õ…G$V“x¬"¦§‡- ’UÁ"¤ƒ‰6nèðPaçÌ=æÖ‘#÷î]<|øðáÇïZ8xñâþ­û¶ ˜.^º@²dC±Z³h©µ*ϤTrPØeˆ‡[zTd²‚)Œ€v’œ°¨Ð¡ !&Õ±Ãå9rïÞ½‹‡>|øðËv.\¸oÖ–Ó¥ëU©U1"”¥é-[µRéÉ4 Ć˜ é©"jK+©&)‘„Í …DÑi@áP¡4T ‘#÷îÝ»xøðáǯV¼xñ¦¬Ù1_¯\‚€H{2%£5«®dqt±RkG$“Z¹q¨NQ”ŒX°0‰– XM’¤&9räÞ½‹‡>|øð½råª(WÀŒƋ׫H\Ä féÇ*Q«(ÝÂþ…'AZÄòˆ’d'…!In ¡T§‡©hõˆ§–&1u,‘#GîÝ»xøâáÇ0`À^•råëØ1`ÀŽ»2É\z ’TkÀYÉääIuÍ-Q9^¬5)Ò‘C˜Ö(1Óª= öìùq«räȽ{/^<|ñðáL0]®Z•*UŠ0[{Þ48•ìGU“n%K†«Ö­k’nÙ²’bL”ÔL²£ª‘7’(Ñ:Õž8Ä"}1G޹wïÜÅ‹‡/>`º^¹jUê£A‰8½š´‡‹ƒ=µòÌš•ê¶dµhÝJFÌ­3r0ue§&Q µU‰þ’¨K`àAcRsäÈ‘#÷î]¼xñðÅ+Š(P >94ˆQ©8?ðDÑ,¦LˤeÚ¶ŠÖ-\·nªç†P H‘ à'NŠq"Õeœ ô¨š4g {RѲuëÖ!;gÝÈ¡ªM›B‘¡YC)P˜:†fäðÀc4ØÞÅs/>|øðáÃÇéÓ'P @õ ©RFRy@ȪT*0À™µG“­U·$Ù)$)K8Y­AS'Ò˜0uÄ É" …— :"è¨Ó,^<|øðñã—/_>þ|ƒ)bĉS§OŸ@‘"µƒÖ ôÌ‚”`Ä-K§Š 3–ŠÒš0h²´C͘B¢ì A"% ‹BzªÄ©ðÀA :ÉâáǾ|ùòåË @ƒ)RĈS§NtVÅðaÚª!æÜñBس¢êÔYhŒ˜B¢êÔ) M’0IjÔH¥ã  °pV<{øðáË—/_¾|ùþüРAƒ)bÄi  ;òô@†;†fÕò§ Ó(J˜0Õ©CIRDmÖ¬i£ê’yìX™ñàÁƒXnų‡¾|øòñË—Ð@€ A‰™9³c•¡KþP€DGš(\à ª5Š¢@ˆjs¨C®UÙ©‡ˆ{öìåˇ/¿|ùþøùóÇÏ@€þøñãJ˜C©&éit(M‘¾¡»5ëPjÃD¹Y(B®l ³F¤H… EðáÁƒ@&Ù³‡>|øòñãǯOŸ>~üøùó§O™2e ¬‰„'“œU R(À³Šš-Q¢ !†‰Ò4‡ì(ªN’5H„¬ÚQá*1>8pð`${öðÙ³‡>|üø•)S¦L6eÊ!C†Œ;†z`‚”¢„‚2º°Š(’LÉ$ÕY3I•;†"þ)2FH"¾ © £BV ³‡>|øðñãÇß2S¦L™2e ”)P¦ é² T6Pà‹L© E*ö,’˜5¢h…†J![h”ˆ‰$’0°`Á–V™8“ÁEŒ Zn¥*q)•(=\¸dª³+ž+VPhÐ`Ç¡:Zñ"5h"P¤8õ!3eРAŠqúôéS©R >]éiÅÀ…V. ö„À`e• =o2å‰P$7®R‰ÐãezÔis¥Ó'?lʘÄIQ(L89bäˆÓ'RŸ:qâĉS=ld±AõéS§NŸm9‰ËÀ…—) 0xñEE €´T  àÃ&õèÁ%„ FtdäÄ”)SÈ”éãП2SœpúTªT©R¤@}âÔ©#:˜ä\Yb椲…¢Â‡3t¨Xµ*€(¨pÅN z @ D?=\L!S¦Œ@ƒý)3ʼn¢O®t½rUê#FŒ1 „G @€°ã ž[`*` ãÇ™U….E0qÆ$ÉÇ€0òcC2eúøñã§O2S˜(ÕÊ•«Rœ "þh¢Nx4!!t±¤Å8pîHJ5éÐ)°ÁN+T. @@A D(¤L2…L2P¦@âÄ 'R¥>qb” @ƒ1ú´j@9">@ÃH‘´TÀ§JœwÔй"á  VB£ÁHÀ¤F…'P Lâĉ'Nœ8E T'NŒ%R¤ˆÓ§OŸTq‘AKTCVò¬àaãF (ìP‘"’H ÐlP `ƒ:5 M¢€@†I3Z82…Ì”)P @âÄ P¥H}âĉ§NŸ>}úô) ’2…iDçØq°„¨ÑÅþN n¬9t!K.ì8Ó‚–¨/¨èÉ2eØôéÓ‡M2dÈ@qåÊ©Oœ>êÓ§O :}© Óš0vÄÜÁãÈŠäHP@BC=jÔ à@F•ZDq©@À@ùñCH#F‰õ!S 6Æ€½*êÓ'P¤J¹råêÕ+. b¬ (¡,y1"M 4p‘  ô8â#Í—#6(P@€¯R @•*Uª'B}ʰ)CMÚ1^¼^½zåJ0`ÀŒƒ¤à‚$$Zd1¡ÈgÎ@ ÀŠ;m°XÐ@€À–*GºÜÙ’Aþ,)[¶L˜/^¯Z•*õ)Q2Ú´]³FMš2eÆxé¦LÚ5j+.|@âb‰(qÆ&Ä‘„FÉ4œ©% +(hà5kÔ–檔+^ºJ1ô-\¸oß¶][&Œ/`˾¡ƒ·ÇF0I XЀ"@€…*4uÔ@@jùèpÅ„ ¸|»fMÚ2e¼\•jõJ׫RŸÖ­S§.Ü6iÀ^¹âlÙ·uô’ÕhQÁˆ…z ÐÀAÜ8ÔfR‰ 1hœ1ÂâÐ%_P´páÔ·kÔ¤-k¬¨O¤Z½*EJºpßþ®9;ÆëU+W¼Žmƒgo] $XˆÏ– *TP €€„1u ñ D Iò!‰E (¨]ÛfM™0`¼ZúÄé)R ®]»¶LY3aÀ€ ;æLÛ:{öìÁYA@… vúBÃC… HCGÇ›=“lp"Œ G"„p ÇÚ5mÔ„•"UÊ•«R¤H•*EJ™2eÂŽ5;&̘2kßÖѳG¶$°‘B@ #(¨€iP€ð‘êF 9² 1räB†!„-“fÚ1Wœ>µråÊÕ+]¯^éÒ¥‹0a€“¶M={öÖ­ƒ'‡€+>8þPðÁ€ HÀ"Á†=X@@Ò&…  8P GرfÊ”ã T©W¯\½âÅ‹W©WÀ€ñâÅ ˜0ißÔ­[·NÝ7kÉ, pAÁ ˆáeC É  Â‚#X@@A¼Œ);fìØ1^ >‘rÅ‹/`ÂŽ½v 0cÇŽsfí:t߬ f­ 2ˆ”… _nÔ0"!NH@@ÁŽ}üJÔÉ/gÎr8¨€9,@@B -5³fMš2gË–ISvì˜1`¯–r¥LÛþ¶mÚ´]³&Mš3^Ÿõéãg#EŒ\I“&Íš/8pA,0@€ vÈXÑCŒ*kÒ–)Æ Ø1eÊ–9[¦ /`˶©SçL™2aÀ„sÅ ?€9bTJ™5kÓ¤}óÕ"Dž HHà dˆ“aÇH"YÓæì˜0`¼tñâ%L™4kÖœ-s&m›:xÂ^•z%ìØ1WŒ ÈŸ?ƒ^)“fMÚ·u¶NôˆSãB‚\ÀƆGìèA#jÛ¶mÖ¬f 0^¼x)³öíÛ·mÖ¤i W ”+eÒ¤+Uª”¢?lÌ)Ó‡S)^þÆ”]S¯!gl\ @`B Π’'Ljש[·žºkΤI“¶Ì/`Ê®} ‡®›5iÚ^“vÍš4eÊ€T†Ì(dÊøÄ °kèÖÙ‹ÆÂE F—vָɆϞ={øðÙ[‡îÛ¶oÛœÆËÙµmߺiӦ혴kÖ¬YÓ&Mا?eÈL™2…L@Œx)“fmÛºxæø`€¸¡DÕºxñìÙ‹‡>{ôÖ©S‡n›³cÀ„!s6Íš6mÛ”]Ó¦ ºkÆ\)òS†Ì2dÊøTŠ—1aʬ}[ž9T4@ÀYæÞþ½‹/^¼xñâáÃg=zëÔys&mÚ´iÖ´iÓömÛ·píÖ…VŠ‘Ÿ2dÈ)ã#P¥\zuÌ™6€áЭƒ/Þ»sР½‹÷¼xñàÅ‹çÎ]¼xøðÙ³gÏž½uß¾¡S‡.Ý·oß¾­£o:eœ*3eŠ6~)êô T©O¥\£¦íÛ7uðâÅ‹÷î»xñâÅ‹/Þ»wîཋ/ž={øòåÃg=zôÖ­[§N]¾|öÖm{Å)›)S¦”aãg#N>}úÄ ”¯cΤ]Û†ž½xñâÅ‹/^¼xñâÅ‹çîÝ»wñâÅ‹gÏ>|ùðå³þgÏž={ðÖá³GWœþ”™B†L™>€)JĨ'Nœ:âl™4mêàÙ³/^¼xñâÙ‹/^¼xñâ¹sçî]¼xñâÅÇ>|ùòÙ³gÞ=zè”é*¥ÈÀ2dÊô)ÓÐ @~ RĈ§O¥t)“öm={öìÙ³gÏ^<{ñìÅ‹/^¼xñâÅ‹/^¼xøðáã‡/_¾{÷ìÙ³·W)Pœý)C†MŸ2}üøéÓ‡ ?ƒqU*˜´oíàÙ³gÏž={öìÙ‹gÏ^¼xñâÅÃ/^¼xñâÅ‹>|øðñË—/_>i¯J‘úÄPŸ2fÊ”)Ó§>›2eÊ”aãg£R¼¤©£GÏž={öìÙ³gÏž={öìÙÃ/^¼xñâÅ‹/>|ñâáǾ|ùòå !ù€ ,Dd‡!!%(!!#""%%%&"")##-%%*&&-)).))+&&1''5))1--2..6**5..9..>**;11644722:22=66>55:99>//@66A44D55K99B::E>>F==B::I==I<>\>>e??iCCGAAJBBMEEMJJOBBQFFQFFUCCUBBYEE[JJTMMZKK\SS\DDcAAnBBoEEjNNaKKdLLkGGrEEqCCpIIsJJuMMwMMtNNqOOxRRbUUbVVeQQfTTkZZe\\eZZi]]m[[lRRqUUrVVuRRuQQzSS|VV}VVzYYv\\sXX^^z\\zccljjmbbrbbveetaazbb}ffyee~kkuiizll|rr}yy{ZZ€]]‚^^ƒ__„cc‡aa…ffcc„ff‰ccˆjj‚jj…mm‚mm…ii‹jjŒmmŽnn‰oorrqq†vv‚vv†rr‰uuŠvvrrzz†yy‰yy}}Ž}}Šss’qq‘tt“ww•uu”xx–zz—~~‘||“{{˜||™›}}šŒ‰‰Ž…’‚‚•……“……•€€›‚‚††™……Ÿ††Ÿ‰‰–ŒŒ•ŠŠ™šŽŽŠŠ‘‘••ž‘‘š˜˜Ÿ•‡‡ ŠŠ£‰‰¡£¤¥‘‘§’’§––¡””£’’¨——«••©––¬™™¢œœ¥šš­œœ¯žž¯››ªžž°¢¢¦££ª¢¢³¡¡²££´¥¥´§§¶¦¦µ¥¥³©©·¬¬´««¹©©¹®®»­­¹¯¯¼´´µ±±¼³³¾²²½µµ¿µµ¾²²º¿¿¿½½¿ºº¼¶¶À¹¹Â¾¾Å¼¼ÃÃÃÃÀÀÁÁÁÇÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÈÆÆÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌþK•*å)Q @úè!3F 'KŠ)R¤H‘"EŠ)R¤H‘"EŠ)ÒÄIžC¥†AK¬¢N­€ æ«—¯`Á†5£Öm;vìØ;×N”'Qž2! (P=dÄLq²dI‘"EŠ)R¤H‘"EŠ)R¤H‘"EŠ8™‚æ§L‰ÊT*5gÇ‚ lX3kÝÆc7nÜ9ví‚•ê´)S¢C ¤‡Œ˜)Pœ,iR¤H‘"EŠ)R¤H‘"EŠ)R¤H“%N¦ˆC =¢ a£Ö,Ù°`Á‚%‹†­Û¸qãεk×Î,Qž:eBt(С@ø™Š“%K–þ)R¤H‘"EŠ)R¤H‘"EŠ4Y²Ä‰'NœLÑSÊÙ6€Ø¨5,X°dѰuÇŽ»víÚ¹*UJ”§L‰B„èPŸyƈ™âdI“%MŠ)R¤H‘"'*,Xà/Ž8qþâDL WаmÛ¶ 5gÍœE³Ö-ܸsçÆûÖm[´fÃ|¹%ª”«Rž2%:Ô'2Sœ,YÒ¤H‘"EмXpÀ HX“†KˆN¦è)u Û¸qß¶es–,™3jÔ°uûöíÛ·mÔ¢EÃF­Ù°^®`ù æË•§LˆõуF 'K–)RdF H°`Á *¶ Q¢ŸNÁ¨}ûö 5gÑ¢E‹Ö,šµmبEsÖ¬Y´oب5 æË×°dÃ|µÚ„( >dÄ8Y²dI‘"3(P @",˜ a…äIêÓ)Ù¶oߺaÛöíµfÍ¢aÆþš3gÔ°aî¶hÉŽ5sæ¬Y°R2!ê“gÌ(N–‘‘ @‚@aÁ @@Ë´3¥¨}7nÜ8víÆa£F 6jÔ¨QÃÖí[·sìÎ}ÃFš5lÛ¶QKæ ,O‰ñÉC†Œ8x°&@h°A èâ†Ê¶qçÎ7î[·mذQkÖ,Z4jݺaÃ6Ž»sã¾uëö-ܸoÛ°Qs–,˜§L‰yAP D 4èDË ! H¢…YwV¬7nÜ·nبQ£†,Y³dÉ¢E£f 6lãÆc×nÜ·qãÆ}û6nܹþsã¾Ekæ,TR(Pà@-CvdQq!…… >ˆô@ÐF hß¾uÃ-Y²dÁ|ùò,Y³hÔ°uë6nÜ8víØ;wîÛ·qìÚ½{÷îݹoÔ€ 8 ¡Dl¹ã‡ŠA•pŇ=ÂD13î¶hÇ|¹*UJ”§R°|k6lÝÆcÇŽ;víÚ;×î¼|ùòå{ÇîÑ  0`@,X¾¼Yõƨ ±àQ‚…'Q^}Ö̕¨N™2eÊÔ©“¨^ɨaëö-ܸsìØ±k×®]»vòòåËçÏ¿|ÜRpI D‚¤PräH”0Jþ”Ä©´Å‘¥T~t9âгd¾Jyê´)Ó¦L™:¹ Ö¬Û¸qã¾…7nܹsçÚ¹{'/_>~üøñã·f‡¶´0`@—4j”DQòL%Jª¬b12Ž æËW¯^®`ù*ÕÊU°fØÆǮ۷o߯7®Ý;yòòåË—?q!x¨0DE%7@$ÇŒ—#€†½¤Ä%g°@ˆa/°š%;–ìX³dÁ‚%kF­Û¸síÞuÛÖíÛ¸qãÆ±s÷Nž{öìÙ³gÏž½nÖ°uû6Ž;vçαcwî5B_¬8h‘äF!B’n‚*Ò5†JsA„/iâ„J£Š-,¨aÏž={ñâųÏž={öâÅ× µfͨaûöí[·nݺA”æF†$]B‚d)”¡Ag )“&ÒHu @”ÆŒ7\’2te„Òâ¥K—.]ºxñâÅ‹/^¼wìÂaKæ«U)_Ç&kæŒ6_’la`”3H‘RIe‡Qþ’4J¼HéMŠXâ€)±%Ò—FT’¤H±OºtéÒ¥K—.^¼xñâɳ×îÜ7kÑ‚yÊÔI”§R®‚ ›t«„©$ÅY…«R$HI¸t1&M¤Fs ]X $ ˜«@Å´¥Jv†¤K—.]ºtñâųgÏž½|íÚû­¬Nž2eÊÔÉS)BÉìDp¤J•$[¸fA"4ˆÊ›43°Ð²H6Ìð€3ÈR¨8ƒ,íH!Ç”¸téÒ¥K/<{öìåË×Î]{öøñûç?þ~!J”iÓ¦Nž<•U‰G´B<¨âHË€Z[† W±e¸ Ùb†‹³\É"Y µª£ ºH‘¢Ð…xìÙãÇ?üøñãׇOŸ>!B”(S§M„Ȳ D„5•²(€N1Uªl£•*Õ´Z̦I˵ʖ$K«" J¡Å ZΤ¸={üøñãÇ?~üøðáÓ§O @!J” ÐÝ 8@ÅQ– T¨úâE‰$\i"Éb6(Õ4f©VÑR%©Q£H+,A¢"B„ˆ+ÖØËÇ/?ùøùãǯ>}úôéÓ§OŸ@‡Ê$¹C'@€Tþ=Â`a­K<¾€Q£¦Ñ2fs ­²dÉR-K– 2”ÃR$ t#aH>~ùòñãÇŸ?þøèáÃGŸ>}úèÑ£'Œ¡F8°ƒ‘-¦–-{dáC‘˜1[V)•#cŒ²d(Ž™Fª"¥’°`Á*!ÖäËÇ?~üøýûç/Ož‰JÃöíÛ¸%K.qâÄ ”)còðé#@þ€D"H¥‘*YZ¶+×2/´Œé¢ƒ`U‘úr„ h0AáƒI€ú B„(“«`ͨaëæÊ1cÈ É“§O DIHp €ƒ.Ép&Ò*ZÅr1›¶¬X¥:C†¬‚ƒë$3fl(‚AÞ¬‘¤§O¦N¢D•rå+Ø0_bÈäáÓ'Ð!D™JÁrå¦Hñæ‚ Th­ª…+W1fÓ–EzEËR¤UÅVdh‡ vÎh(1¨P›M€‰jåË,WmÊ”§OŸ@ˆ%ÊTj˜³f’ $X@€©ªˆ€S-\˜FÈ*ÆŒV!;þvêD*T)Õ %ƒ‚ ¸a錅 ω$ÉS°aÁ`ùòå+=zôôé(Q¢D™Dùvì•…!P€ŽØd+Ë7ƒ–ÕiÁ‚„4— ÉjÕCNªZ¸Ø°i’:‘JÁu(P O¢å3%PAˆeêÔ©S©RžDua4 @€x<*P,–î`Ñ‚G@øQ(M#G¬4òà¨7àÀá£Ó&>hȈé³)(KeJ´h“'O2eÊ”)S(K€.,„x³% ‹ ,@PC=V $ \,°sÉ – úþ #FŒ4|òŒ™â$S§Nñ!3Å ¢N®zÁrUªS"Dˆ%J$+Kàò¡Š¸¤à ‡ 9Gs’¨@€‚ n 2መ1dòðÑ£'1S– òäÊ•«R™ êþÓGÐ!O¦²$`Á†;oîˆXÀ –A7ê%êähÀl0ꢃ„ JØÁK;b(  áA‰A—Ò|dÈ r‚'P Lâĉ'Nœ,ñ$ÊÓ¦L‹B„(S§NžÚÜ‚­@8€€!%°X1T…G— ÜPÒKŠUƒx 0€ÀÎ¥„82EŒ˜)S LâÄÉO¥DuÊ”iQ¦N:uòÔÉ[¶¬YââÀÂ…ªÀAP€þ¤B…6xÙ !ƒ†9…Z¨PŠ‚ंÐ1dÐäÉ“‡ 1bÄ@qåÊ•¨N™6yòä©S§NžZ±”ÌѤ 7dY°€Ë™"tÁr‰‡”h„eAH´Ö|p`ãÇ–9éÑ(Q¦D‡úäC 4É‚õjå©S'O¢J¹r ,,7’Y ²!H."¤`€ 1”`ùå,p~˜ÉÒ,€tHP ¬Rž<•jåªT&@yÈ AƒZ2_¾|Á‚åªW°`Á’%³£áÌ1G 4Ô±Ôbƒ (È §‘$fh£$F6’æ˜IbLJþ Asm˜/_½\•*Õ)Pž1Û¶mÃFZ³fÇ€ùò•ŒÚ6nBnœ©TÇ#@I”(0 J¼`CfX )Ž)p,(0„[¶lÔœ% Ë•«^½J%ê3nܹqã¾m‹vÌ—¯`ε{÷DŠ,;nìhÃc‚ðˆóP zàÀ‘&…€a)‹(}Û–š³f¾\•r«¬RÞ¹k×îÜ7jÁ`¹ò¬Y¸w÷fù€Ð"‚* QA„qÀÔ‰ @€A®xS¨Zˆ(€ÁÙ¸mÙ¨9K¬”'O¢\Á*%ª]»sãþ¶QKæ –+X¾’}»—Ï]‹ , @€A,$R`¨ÄèF =pô` …[²mû†­Ù°`¾\yꔩ“¨Rž¶mÃæ¬Y³aÁ‚K­[»|ùò­©ðÃt€€ÁIê„CJ<$‘°Æ’ R ˆð Û6nÙ‚•òTÊ•«Rž<•*%ª´fÃ’5Kv,Y³mìÞÝËwO·DH`!„Š dxæ BJpq`cK‹6<ù €T’9£–Z3W™:•råÊ,X°`ÁêÕËW°aÆ%£6îݽ|ùÞ½{7% ¼þ‰`ÁBI |°’aƒ %Gz‰äåÈ™,°jX²fÍš%ó%ÊS)W½`Áòå+X)XÁ‚ùò,Ø1jãÚ½{÷®Ý8lÍ88h‘ @‹  ”à‘â€8iÜX1£$É•%2 )P`„:°Ž5K6,Ù±^ž<‰r,˜¯`Ã’Á –lX°cÉ’%‹†m;vìº †-M ,D(!B‰.ô¨’"ÄŽ+<’PPÀ„ : +™3gΨQKV*S¢N®| K [³fÔ¨a÷­Û·hÍ¢¤-™¨Lž|ùj  Jì°ÆA$( @€zðòþ¦…ˆdÆ%kF ¶oß’¹Ê”H”¯dÔºÛ† ¶oãÎëÖ –'Ožõéƒh‘+@6üèáF€uvh`@€(á˜B6Jp¹5,Y²dÍ¢QÆ­Y°R\k†íÛ¸oذ}wî\·fÁ6êÓ'Ož>ˆ¹:v…Ç8H¤B  @€‚PùPàJ¡dÍœ9sÖ,µfÍ’ƒUª°fض}ûöíÛ8vìÆ5ƒÕ)Ÿ`5³†Ú·v·ŽIrÀBDˆÑÅJ#K–²À B[·nجvÌ—/_¾‚5ÃnܸoبuWÊ“«fÔ¨%+UÊU">yÆL!“gQ)_þÇšak'ÖŒ3\ºð€!Å‚ =RUª%+‰Yßµk÷î];lÔ¨Q£æìX¯`ͰcÇî›5jÛ`£¶ [´f΂y „FÌ”)bÈè ”©Ó0lìÞå“Öâ,p°G¤U‘EšÆ/_¾|üüå{ÇnÜ·qßœ æ+Ú¶oãÂuëÖíX4lبaûf-X§>dÄL™2E ™>™|5Æ-Ü»|ëÖD(€ @€¶ÄIæV:{öòå³—¿|÷ÞµkÇ®¶dÁ’5£F [·nášaëÖ»nÉJÒCFÌ”)bÈè9TÊ×±aͰ{'OÞ:T5P¢ÃSââþųÏž=xöìåã—ïÞ½|ïÚa‹f 6kÖ°uë6îÛ9víÞV ‘2bĈ!£‡O¢N¥\•‚u,Ú7€çع“gÏ^{öìÙ³gÏž={öìÙ³^¼xöìÙ³—/?~üøñËþ—/_¾|òÞñËwo\3X™úŒ™"F ™<}!:”(Ó¦L‹2yò,šµoíäåËgÏž½|öìɳgÏž={òàÅ‹<{öìÙÛÇ?~üòå˧ï^¾{ìšõ*…H@2bÈ!“§O >zúô9”(Q&O¥`5£vî]¾|ùòåË—/Ÿ={öòÙ³gž={ðìɳž={ööñãÇ?}ùôå“÷ÍW)O™é!#M2zôäÉ“M=eòTʵqíîåË—/_¾|ùòå“—/Ÿ={öìÙ³gÏž<{öìÙ³gÏÞ>~üøñãçOŸ?j½J•ꔨO2dÈ!“'>2dÈA£'P¦R¾¬µ“w/_¾|ùòåË—/_¾|ùòå³gÏž={öìÙ³gÏž={öìÙãÇ?~þüù !ù€ ,Dd‡ !%(!!"""###$!!&$$&"")&&*&&-##-)).))+''1''6))1**6--2--5..9--;11600311:11=55:66=99>889//@22A66B66E55K::F==F::A==I>>M99J;;R??Z55R??d>>i@@FAAJBBMEENDDJIINBBQBBVFFSFFZDD\IIVKKSIIYMMZNN]II]RR\UUYDDcAAnBBoEElNNaLLdLLlFFrCCpHHsJJuMMwNNsNNxUUaSSdSSkZZf[[bYYj]]j^^mZZnVVuSSrQQzSS|VV~ZZv^^r]]vYYqXX^^y]]{aafbbmiilbbqffvcctbb}eezff~bbyjjuiizii~mm|ss}uuvZZ]]ƒ__„bb‡aa…ffcc„ff‰jj‚mm‚nn…jj…ii‹jjŒmmŽmm‰ooqq†uu„rr‰uuŠvvss{{…yyŠzzŽ}}Ž}}Šrr‘tt“vv•uu”yy–zz—~~‘||”{{˜}}šˆˆŠ’‚‚•……–……’€€›‚‚……Ÿ††ž††™‰‰–‹‹”ŠŠ™ŽŽšŽŽœŠŠ’’ž““œššœ‡‡ ŠŠ£‰‰¡ŽŽ¥ŒŒ£‘‘§––¡’’¢““¨——«••ª——¬šš¤šš­œœ¯žž­››ªžž°ŸŸ¸££­««¬¤¤§¡¡²¢¢³¡¡±££´¥¥µ§§¶¦¦µ¤¤³©©·¬¬³««¹©©¸®®»­­º¯¯¼££¹µµ¶±±¼²²½µµ¿µµ¾°°º¿¿¿½½½¹¹¼¶¶ÀµµÀ¶¶ÄººÂ¾¾Å½½Ã¸¸ËÃÃÃÁÁÁÁÁÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÇÇÈÇÇÊÈÈÉÉÉËÊÊËÊÊÌÌÌÌÐÐ×ÈÈÕþG©å‰Q¡B…ZS†Œ*R¦0a„ &L˜0a„ &L˜0a2…ÊE£r!¶k“"N«xõâ…‹U.^¼€s–-ܹsçÎ wN”'Q¢4-*T¨P @fÈ`¡BE &L˜0a„ &L˜0a„ &L˜PÁâG‘(Mš Ò4 ™3cÀzõâÅ X±hÙ¾};÷íÛ9uêxâ´I#E… *ôÇ ,V¨H™Â„ &L˜0a„ &L˜0a„ )T°!cf™?žŠYsfLX/^¼z K6-Û·oß©S§.×*Ož89Z¤H‘¢B…™ÁbÅ )R¤þ0a„ &L˜0a„ &L˜L‘"… *T¨ù3ʘ5€Óœ ëÕ‹/aɦeûöíÜ9uêÔ­%ʧMŽ)Z´HQ ?X¨X¡"EŠ)L˜0a„ &L˜0a„ )R¤H¡B…Š3Œ„Q³fÍ™°^€K6-·oçÎ;wN®U£²ÁˆŽ t`—¿|õêÕ£¯^½zõäÁÛ¶-·oêÔ©;wþN:vê¶MS¥Á @$)¢‚B*T±ŒbcÊ(džiôã{é8° AƒRøðñǯ^=yòäÉ“'Ož¼lÓ¦eÛöíܹsáÂ;nÛ´F@¢¤L¶fÍB…IÒ¥3¨N!q2CD :Q*¼‘…II’ 4è!Ož0EB 2_¨©ØáD‰þwvÜ"GŽ9rß½{'Ož|øð ³&N\¸qÖŒõbÅ §-_*ùŠe*•,[ê–AFGÍ%1ˆ ‰a#ÊдD—P½É# Ñ SCJ9b¢ ˜‘#÷î|üðåZ¥Ê“'V¼€ ã•+«Yb½’eË–,Ë&ˆ0þ¥FÒ¥A¿ˆúÕNY±X¨ y)Q§Í%=zt„ J‘#GîÝ;yòäáÇß®]¼XZÅK˜°\¼„ #I–-dãlùRGä@(w.IB…Ê–«DÔ~퉃éM4ŒÔ1EÄÈ%I¯$•€ðàBräÈ‘{çNž^¸X­R5ŠÓ¢B‹6±ÚE"Õ+SJB¼1ñæ›X±Púe Y¢XµÐÈ!"ëQ‘'[¢OžD‰òä 'M‹iòt‰Ä£G,àÁ¡Aœ1c‰ëšJ|=ªÕ#Õ!L–,±©c(’!¼œò"Ž…¥ÞÉs'>|øðáç‰'Ož|øøñã—Ï?þüÈ3fÈ$ @€ ˆE2RgÈ‚ ¨@e[° èë(IzèHºd„ƒ% .”ðá—zõð᫇_>~üø™1cÆÌ3fÌ!C†Œ/ Ò2R] í€ÐÁ-ZâàqáâͶPEþ õÄI%.ä1„4" $©‡>|øøñãÇ2X°`Á‚‹+V°|XÐa@jɪÄ%O <À3ä’)%(1K’$P™¨ã‘"4”ÐdvìàÕ«W¯=vìèQ¡B… *T¨P¡bÅJ È’D&_ ^™hp ÂoÔ`2Ä—]BÅÂ/wŒðÐb‡;? áålÛ¶pêØ}›–-œ)R¤H‘B… *T¬`H @I¾HÄT‰G%S.,8° .&t”¸`IRS¶\áq„MO ,xpDÈ#£X­bÕþËÙ¶lÙ²}“"EŠ)R¤H¡B… • TЀç×SYà%‡B*½á0ˆ‹,¨ !ŠÔ _ÎÔñòdÂEžxˆ±¨P!MžV ›–mÚ4)R¤H‘"E *T¬ù À‚D\I¢Aƒ;x,€P! E`Xàc QHHtQÂå̘(P°ÀEÒ“*ÄÈS.gÙ²M“2EŠ)T¨P±BÆÌŸ,`áMR,à0gÁ,€€°AÃH’zÅG7;êD‰²„‚ r"m‘¨P @‹FñšÆíÛ7)RJ¡B…Š2dÖ ôã@þ€†˜Â“éÀ‚0 mX€`A. pH"iR¨K¨tÔcÈR(-¶ˆàÀ% ¡1P1b´HÓª^ÆœMËFÅ 2d̬ñãP¡EO¨8B*H—v@¸ð†O…  ! ‚GuÍ5«1bTıÀ‡©†ÚÒ&&N¢Db•‹W¯\dÌø¨¢EšF±R¥g  9$ Oƒ”@°Ð Á‚ ÈÔ©Z¾äˆ¡sFƒ Š 9…‰Ë -„‰Z•k.VžmÒä'P B‹1Ò4ªW²b—,l €B‹W¦Þ (©‹G,`Á„;þjî`’UkšDlœ£L6ë¤FÔ®^¼XåÊ•K ?*Tˆ#FšFåêÕË•—@êD,±€C‹J(±Ä!Lh0͹3)¢:^&2tFžHyD±U¨P¡Q£ù!ƒ¥P¡B‹iâÄÉÓ¨Q¢8á  À‚I u€ðFR’,°`äRªÕ„HŒ!:§Nñ¢å "CgîÈyâb§?kÊ ¤‰‘+R4ibäH'Qž8iÒ¤IÓ¥ 8°@V‡x¹p`‚Š äpép`C¨´ÄÂFÏ/^]2¤†‡%#þ­!C† 3üÁBe'NœÔø€@á‹$Dˆñà2a,XȘùó' 3X¨hò4jÔ¨Q£DqÒ¤‰£P;($ "K’èXpàÀ-ЍÓ¢Â`ÊódÈ*î& 8á@ Hhê¨82¤‚‡ 0hÑPâ ŸFŠ,HeÄ…$P¦âá*V¬`±B… *T¨Pñ$Ê“&Mš-Z´H'NœÐ€°ðäÀ€$ƒ¤Å'Tü‚ƒ— 0XêŒ,#vä‘tGˆ dP±‚… ,V¬X±B…ŠO£DqÚ´I“&Nœ8qâĉΛ•¸L¨@¡‚ =hAb(þËŒ)0è‘ Æ! `ò(Ñ2BT–S¶Þ4X@ 2fÖ¬ñãÇŒ2dÈXQµj•(Nš8yòäÉ'Nž6yQÁãQ’%˜àq C– PX %Ê-d ©@ ˜0¡©3 Ñ#  °ðŠØ4jÔŒ ÛÅjÕ*V¸F1 ôí[¸pá¶YKÖ+.^ƾ©ƒ‡FE‚Lq @€[„\òñޏˆ  äÈCmê R°‚;¶m³FÍ™1d¹VZÅ +QœØ±S§.Ü6g¼X©Ê•«Ø7võˆ¨pà@‚( Á‹¡#F`˜á£ˆ¥#b´@ðÒ C€ðEÖ8kÔœC¶k”'O¢T±%Jºpãþ¬%–kÕªU¹„mƒWàÀáÀb<ª0 C€.¼ ACcB‡Zx€Ñ`§œmËF­X/^¹Vyâ¤i“'Qž¬Y³–¬X1`¼xñ–,›ºzõêÚD„%8cKœ`8bäÑ©D:4Xp À 4Ȳ‹š5kÓvò4jÕªQž<%ªX±b½„ X±iáØÕ«Þ·ÀP80 @ GbPhÁÅ ‡R‘:Dã‚ÐÐa‘„s62Uš8Zµj+\¬X±Â…+W¯^¼x s¶M½zõృ.D<þY „\ôܹôèЖ 0Zh€@€@@3ª—0aÈŠ ËåÉ“*V¬X±Ê•‹—*V¼xåʵ‹W/gßÔ±cÇŽÝ·iÎ(ì@#¢H^(€E˜,ožQ¡å‰ A¡ŠS¹„ÖK˜0\žøˆ!Æ‹#. 8€d¤iΌ㕋°bÅŠ3&ŒW.^ɶ©c—¬2^¼xñZ¥)П?1bÄÉØ´iΜ}£%#@€ €BŒ>tàÉ‚A +ðL³–LX/^¹páÊÅ«˜³iÓ’K6m›:v½XÂLX/UŒ èÏŸ@…Xs6mÚ6u®f,hÑ!@€DÀð²G¦7"€,g[¶lÖ¢õê,W.^¹r›ÆíÛ·mÖ¦e 7ÊÓªbΜ 5ÊÓ"@~Ì1ãGÓª\þÀŠMSOÖ“!C€‚/©^ª“b‰ [é©SÇžºiÑœ9s–¬W.^Ŧ};wî[4gÙVñrfmZ²bÉxy*d† ,dÌü)¤‰¯içØÕ»¥,B ¦KtÄx¹…¯^½zøðÕcwîÛ¶oÛ’Ë•+™µmß¾eË– X2kÓœMËæŒ§@fÈÁ‚…Œ™@Œr›fm;yæàXX@ À$:#†9yòðÕ“'¾zôØ©cw.[²a¼€KælZ¶lÜŠMË–í\8kÂV)úc† ,dÌü)4*°^Ŧ…cž·J<&,à HXÞÞþ½“çNž|õØmc¥I‘,X°”Yó§&M›8yòÄi/aÉœMÛf^=yòÜÉ“'Ož|ùòá«þW¯^½zðØå»Gï[1Vš™!C†Œ?-ZÄH“&Mš4yÊÅ+™³mçèÕ«'Ož|øòÕ«W^>z犱µè@3d̘1ã'P¡@ZĈ‘&O£XsvŽ]½zõêáÃW¯ž|õêÕ«·-×(Oš ý1Sf3~þüñãgÍš?…iò¤Š—³oêàÕ«W¯^½zõêÕ“W¯ž|øøáË—_>g¸D‰âÄ(3e̘1ãÇ>3f̘Yó§¦Q¼œƒG¯^=|õêÕ«W¯^½zõêÕ“'Ï55:99>//F66A44D55K::B99E==F<>I>>M;;N==R==Y66Q??b??iBBFAAJBBMEEMJJNBBQEERDDVEEYEE]IIVKKSJJZJJ]MMZNN]RR\SSVEEdAAnBBoCCjLLcLLlCCpFFrIIsJJuMMwMMuNNrNNxQQaUUbSSeSSkYYf[[dYYiZZm]]kTTsQQzSS|WW~UU}UUzZZqZZu]]r]]vXX]]z[[zbbgaanccljjnaarbbveesbb}ffyff~aaziivjjskk{rr}zz}rrwZZ]]ƒ^^ƒ__„bb‡aa†ee‚ff‰ccˆjjmm‚nn…kk…ii‹jjŒiiŒmmŽoo‰oorr‚qq†uu†vv‚rr‰uuŠvv{{„yy}}Ž{{Šqq‘ss’tt“vv•uu”yy–zz—~~‘{{’{{˜›||™‚‚‹‹’ƒƒ–……’††–›‚‚……Ÿ††Ÿ††š‰‰•‰‰™ŽŽšŽŽŠŠž““šš—‡‡ ‹‹£‰‰¡ŽŽ¥ŒŒ¢‘‘§’’§••¢““¨——«••©——¬šš£šš­œœ¯žž¯™™«žž°ªª­¡¡²¢¢³  ±££´¥¥µ§§¶¦¦µ¥¥³©©·­­´««¹©©¸®®»­­º¯¯¼´´µ°°¼³³¾´´¿µµ¾°°»¿¿¿¼¼½¹¹¼¶¶ÀµµÀ±±Ä¹¹Â½½Ã¾¾Å»»Ä½½ÈÃÃÃÁÁÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÈÇÇÈÇÇÊÈÈÉÉÉËÊÊËÊÊÌÌÌÌÎÎØþQÁBu Ò¡C‡ *C†L•)R¢4iÒ¤I“&Mš4iÒ¤I“&Mš4iEJ G¨‚5;æK”#R¨‚ óå«—/_„s¶mºuèСC·)R§@9:t!AeÈ`™"EJ“&Mš4iÒ¤I“&Mš4iÒ¤I“&MšL©Â¦Ñ©O—ú„ª´eÅ„ùòå«X3hÛÀCºuë|¡ê¤F‡:¨ ,U¦H‰¥I“&Mš4iÒ¤I“&Mš4iÒ¤I)Rª`!S†M™@¤šaƒ¶ Y1_¾„sVm›7pãÆ¡[·Î—¬S¢D}rÔèP£F‡•©RË)R¤þ4iÒ¤I“&Mš4iÒ¤I“&MšD‘"EÊ”)S¦„Ê6€Õ 5+æË—¯cΪm7ºuëØÁBuŠ”¨O’5rä¨"@X¦L™"EŠ)Mš4iÒ¤I“&Mš4iÒ¤I)R¤H™2eÊ”2ŽYÆ Ú1aÇŠ[Vm[7pèÖ¡C‡n]/X¨N‘õI’£FŽTË”)R¤D‰Ò¤I“&Mš4iÒ¤I'Kp4‘"eÊ”)Sª”qäkYµjÖ 5kÖ¬Y3hÛ¼C‡nܸqàÀó% Õ)Q DúÉÑ!B€ÈÁ2EŠ”(Qš4iÒ¤I'+:PX°àAƒ 6œL™þ2…Ì!YͰaÆ­´eÍ–9‹¶Í8tãÀë¶ ›³fÂ|ÁBu ,T¤>AjDP2X¦H‘¥I“&Mp °`À&H°ÀS°Bu¬9rݰUsv옳hѪmëÖ­[·jМ9«­™¯^°dùòå Ö©O T†Ì”)R¢4‰‚£† X a„ XpDL Q mëÖ­´eËœ9sÖÌYµjÕ 9[Ö¬™³mÕ¢5æË—°bÂ|Áúäè"Bl°L‘"EJ“(+HpÀÀ &9"ˆ –)S¤HY!À€ $ˆ˜0Ä $ aÁ .¨ u78tëÀUs­Z4hРA«¶mÛ¶qèÆyà ´jذA;æ  ,R ¨ ™H aÁ &`°`! ˆøÁÀ#Q5pãÆ®Û¶jÕªEsÖÌ™3hÛ¶U«ºqàºmÛÖ͸nتA[vÌ)P-¡ À€?x<˜0A‚ttÄ0`€•&NGœàê\·mÕ EƒÖìØ±bÇ–9ƒV­ZµjàÀC·\7pàÀuëܸþqà¶5kæ,† ¸ˆáåÇ 90,ø%ˆ ´dɘeݺm«æ¬Ù±c¾|ùêåëX3gЪmÛn8tëÐ7®[7pèÖ¹sçÎݸnÐ^,0`‡ :~èð€Á ‹Äx°`3UlTAD®[µeÅ|Á‚…Š)T²|ùjZµjÛ¼C‡:tëÖÇÎ<|øðás·N†(tˆñE‰ˆ-,ðx°à$HøPÊÈ'g`u«v *QŸ>Iú$JÔ©^Ç UÛæÍ8tèЭ[·nÝ:vòìáÛ·oß>|Ï$H `@À, èCC þ8pqñÃZrÅͲf¾P‘ꓨOŸDÁòÕ 8pàºynܸqãбs'>|øöíçdÁìpAâÃŽHx@BÑä”+W®\¹rñâÅ›7oÞ<|ëÖÛæì˜,Q¤>}ú$êª7&ˆìaÁç‹¥DzJ•*eg &S¶he:&É%,X€¡Ä„„lá€áD¹råÊ•+/^¼yóæÍ÷Ž]_½dÁB…J¤CŽ>ÉêÔ§T’té$¦M§ZÉ"-Ú¡ê§w^$aÅBMztH@’ˆþ§,&H˜ð`ƒ]åÊ•‹/Þ¼yóðáCE )R¤@I:t*>zêxà…‡>mڴʄȎ-¯XqÇ@b‰ÂIÇLŒ.•â£aƒ$R¤P"E  ¨OŽ }:¥†  °ˆÃ“6PžÔQ²C%Uɼ,P¢ë–+8bDð¨uGɦLJLð@ƒ~âÍ›7ß¾}ûöíÛ÷I)R¤H‘"%ŠÔ)T_êP€ u pHãc‰#´ðÐÃI•…>¯^…á³ÄÄ$L|Z,C©È |óöíó·oß¾þ}‡9‚ôé“(Q¤H:…$Œ€X8°ÀÀ8FÔÑb ƒ GluâÄI—4PNpjC 7¯ôh˜ðà„ oæÍ÷oß¾}ûöíÛGˆ!B‡9r铨O0ÐRG‹‡,ì€cÁ p xðæ–+V|xLâÂG+;¬¸¬É¢e‹LÀPɼyûöíÛ·oß¾}û "DˆÐ¡C‡9’ôI]’Ôé `0`ÁÕJ’%«µèÎLœ6±ºÕ)“E;JìȲ¦„„ ”Ì÷oß¾}ûöùÛ· B„"DˆÐ¡CÐ\hðãGW'þ(  ÁÂêÙsëÕ«]”ôìÁäÊÕ¥W›´´H´ÃÃ=iXHàǾ}øðíÛ·oß¾}û$( B„ HŒ>bìP’¤…"$´ðÀ€>èX BÂN¯0µB‰R)bqÀpÁ0a 0 Á”ȃ¨dÉ’åþ Z·mغ“"EŠ)R¤H‘2eÊ” ©céÅ‚@, À€¸Õ§ L—éºõF† DpIa‘Ryh,(âèСO¨z«¶ [5)Q¤H‘"EŠ)Sª aÀ-}X,°À€ kìü@!Á]š,øXd“+&L°PÁCšF(É”&È‚:‰”/gÛªU‹"EŠ)S¦L©B¦L ´pÕé H Â8”~°Ò¥JF¢6v^)áðƒ `yÀ‚E;i„Xˆ!BŽP«Ö­8)RJ™2eJ2e "äÃÀþ‚¶ô¼°€ $pÃÊ%[¦êp1ÔÆ$0xX°`A 8LèðbÇŽ49räè,aË UÛ6¥ ,dÊ”HÐ!GOZ,°Àª–‹8,X`ÁVÄXÂeç;b.uZÃbX|ÈôeQ'%Šqù!„$Q§P¡’åË—/_dÊDèP£FŸPÉ‚E‡†GxÁ± áà ,$h¹Å© ”ZjŠpáÃe“*:<8ƒ•%;‰X©Ò‘&Qš/\$‚åË—/X¤}úH¡CŽ Aú„J˜³f¦ZİP¢ "ŽX8ÁªEŸDyòˆ©µÆ¦Rþk8‘0Aî^•²c(Ÿ.ňiÃ¥“¯b¾dùòåë“ @€ "t$HŸNù*&,× ðá³€G _Âàbõê•+NhìØ±ÀÅ«=Iˆè`eéU©NmÚäa¥%Q‹D?Lõ"uèP#R§ ±!ƒå¡CŽ$}%Š*T§@•XÀ8 hÙAÁÂMu8Ýb%¬Í“>0QÚåŠ .#-bÕ©¥KœmIÔ§@lÊ!  *R>}‚$é“(R¤Dúôé“ xØ!aÁœpXÃ1$;îôé Ç¯Dk €QÑ`Q¢D—:ÙQ3S -þ±!ƒ… @‘Á2”(Q¢H‘"%J”(Q¢ m±`AË,Àasˆ(RÃ%'€$tðaôáÉ PR´¨T1G¾L ,XÈœ Dˆ @X¦|"… *T¨N‰úJ¤<~haÀ€„B…)Ä|XÀCDEFXXp¤'K—ìܱ3¢Ž ‚`!S¦L B*ƒe $R°|É‚…J$GŽAbt ÆŽ0‚BÀè@ÁB(ĸóaG’Z,êÔ S©5L˜ð` 2dØ 2X¤8"K,TŸ"þDèP#Q$,0°@‚5¸$Ð €'* ’;ˆh‘ A‡J”ìLjcÁ ¦`©‚…Ì2XªT©2eʧS¨D‰’Ôˆ!B‡AÕ@  ã >xÄ0ðdøÒÅ‚Ž0ðXD)‘-y&LðÀ”)Uª`©2eÊ”)S¦L!uЍOŸräè“(P¢²0ÀÀ ;||ೄ )H€€5Z²°°0¡ÁJ˜(…ÑBäÁƒ TL©‚… ,XªT©2eŠR¨N‰õéÓ'P¢D‰%Ê pAä‡0[Ú£þøÐ“ L è!ÂÇÒK"&`(!a ,eب 2dÈTA Ö)QŸD‰"EŠ”(Q¤@u A‘0˜’tˆÁÇ hØðAÀŽZœV¤H Á«|ì,Rdb†Ú tÈ‘#H"C 6Å|õ‚uJ)R¤PÁ‚ –¬#Â$øFK‚6æÈòXPþ‚#XŠk­ZµnÝŽ¡ú •¯cжÃV­ZµnãÆÛvLÖ)R¤"Ôè*L lpà‚E‹ üðÃB0€Bú,;&ì²cÍœA«Vm™/T¢`ùjV¸nذu7ݶf¾D9"D( BŽ>¡òuÄ"H@ŒO„„h`àÀ„(¢±fÍœ9sÖÌ´eÍŽù’… •¯fÕ¶uëÖ­¸qèÀ-ƒ%êP @ j –/gÄTã†,üø±„KˆHX A5F|4«V Ú2gÍœ9kvìØ1_²¢‚µlþ¹nÛ¶a« š3_¢$¨$G`Eƒ­Z®RÈ ÀÂHy2âK  ü³&ŦjЖ5æËW1dÍš9svÌ—/_ËÀ­[ç¬Ù1a„ù‚õ‰P A„I‚„ªYµjÕ ã4‚…,‘:u48p`‹-êT«æìX1_¾zõò%¬´hÕœ5sV­Û:wÂd¡ê%ìX1X"D( B‡z5ƒV-8v´¶¨á?ÔX²u+Œ $>$Á°gÛ¶mÕ ùVÌ—/_½|5«8oØ¢m‡Š¬fÕ C… $A€È)è,_þÅšU['¯ðÃ’­N‰,íø@"…?ݹsçNÞºjÑ Aƒ¶L˜/_ͶC‡Î[5hØdù‚†-š³fÍ|:Ć ,dÊ:ô‰”¯jèØáÛeZôyÅ©%W„ŒH¶>|ûöás7\7pÝ–óåËY5oàºmÛ¶­˜3lØ UóÍ—(BdÈ`Á‚…LB’|9«V­;|ìäHÀ€ž;›"„Ϲyóöá›·oß>|öÜ­[‡n[5d¾Š5ƒ-Ú¶mÝšUë¶ ºmÂ`9 T† ,dÊ:„ÊW1aͪc'OÞ·?<&| ‚ä MßâþÁ›7oÞ¼yóæíۇϞ={îÖUk­´jÕªmÛ®Û8tîÜó… R 2d°)ˆ$Q¨`’UlÙ6€àÖ±“7o¼l߾ś7OwàÀ¡[‡8pàÀ¹“gÏݺfŸ*CK™2AúŠ*Q§`³¶ ¸uòæÍ›/Þ¼yóæÍ›7O^¼xóâÅ›7o>|øöíۇϞ|öÜíÃg\3YŸ•ÁB†L@„AréÓ§OŸ>òåkY´nèäáÃ7oÞ<|øæá›‡oÞ¼yóæÁƒ/Þ¼yóæÍÛ·oß¾}ûöáˇÏ>{èœõBå(À2dÊ”)ˆÐ!Br Ò'R§d5ƒÎ>|øðáÇŸ|øðÙ“‡ß¼yóæÍ›‡oÞ¼yóæÍ›‡¾}ûöíÛ·/_>h½N¡‰ 2dÊ”)>P™2eÊ”aè$T¾ ¡“g>|øð᳇>|øðá›7oÞ<|óæÍ›7o¾yóæá÷oŸ¿}ûöí !ù€ ,Dd‡  !""%!!#""###$!!&$$&"")&&)&&-##-((*)).--/**1--2..5++5--;%%311622922=66>44999>66A44E55K::A::E==F<dÄX‰òäÉ‘#GŽ9räÈ‘#GŽ9räÈ‘#GŽD±¢F‘©M”jdª¶eÅ‚ ¬˜³jÛÂ…S.9uì‚™ú´iS#E„*Ô‡Œ+S¢¡Že›–¬X±`Á‚svmÛ·páȱcÇάPŸ>=Z¤ˆ"B„þ±2eJ”'Ožþ9räÈ‘#GŽ9räÈ‘#GŽ8yò$J”(Q¢ˆécjY6€×¦%+V,X°cήm §N;vìÜÁ2e*Ô§M)Z´HQ!>V¢L‰òäÉ“'GŽ9räÈ‘#GŽ9räÈ‘'OžD‰%Ê2ŠaË–mZ±bÅ„[vmÛ·pêØ©S§Ž]/X¦B…ú´éÑ"E‹êCfJ”(QžmÚÔh‘¢@|ƈ±åÉ'GŽ9räÈ‘#M>T˜ð@‚0D‰þe !XÉ®iË–íÚ´eÉœM»¶í[8uêÂ…ë¶-›³dÅ|Á"EÊ”)S¡65R¨™1b¢Á æìZ8ráº} Ž9räÔ±kïÞ½}ûöí»ç†C !>èpy±¤ $D0XqÁÀ&h *ppqŽ—6hÂ¥ƒ $œÂð ‚„BHè@„‹*¾’+V¬X²cÁ„KVm[8uìÚm˶­[¸páÈ©c×.^¼xõîÝÛwÃ.äÈ1b‹ :æ0`ÀàAˆt8$="D¨‘)I::pbdÅ›`aÌàÉçË 3p0ðE—® 4xÙb"‹0YX`xÀàÁ„ 4HHõîܹsòäÉ›7oß¾P¤L‘  à§M‹m"uH„BÚTpÉP „¨ÊSiF ŠàbõF4aàLš³* <˜ðà {ÞÉ“'OŸ>}ûöíÛ·éÓ§P¡B… õ)”)S@ÃÈ„/† åØ` &\¶H™0¡Í.DB8dÙ²%UuæL˜ðà &Lx`‡=}úöñã×oß¾þ}„-j´©S§OŸB™ 5ë Z0hSä‚ *ÝÒeK† ,ˆéââc&“XѲµJU›78`0¡Â„vèÑÓ§oß¾}ûöíÛ(P @„-ZÔhÓ§NKèaÁ   p D×®]¹v©P$×-$lÐÑ¢ê¦C¸DɑÉ&}úôùó‡2d<  À† ¸ÀE-VkÙ²DëÒ$D†tÙˆAZ¶˜YófË$Q_ ØÀEB‘{÷öí»·oß¾}þü‘!C†Œ2dȈ#FŒ‡ŠDzÀ€ -îpñ2É1b¬Da²dË̤Uo ÕþAGÄ8+±RuIÅ "&̸·oß¾}ûöùóçÏŸ+V¬X±beÊ”)S¬¤à@žH`PÄ ‘$ZCf Ó%C¶,É!†ˆÎD¬Hâ± œK£¾¸bB‘víâÝ»wï^½víêE‰%J”(Q¢D‰2eŠoÚL á_ÞlÀ  2d¬TÍBÓ Ñ]u ™ADË‹œ ü…HP 0| Vm[7uìÚ‘»–-Ü“'Ož‰%Ê+cøü ´„Aþ›I!H``Ã,rrÙÊEëÐ$Lk˜„‘tK.V¸há:# N…,ÚlAdf‡† Z 5jÔh“)aɦ]ËeŠ1bÈðáÓ'¡EAD±DãÁVt@ƒ)W.Lt©štˆ‰$]‘0áb5k•¨U¬0ù€ƒŠËAkx<`Ð$ЦP¤L™Šå+˜0_bÈðùˆ¢E›Lõ‚5çJ…U800PaË0¶0™ C­Ih ÙBfÇË­[·.™¹uÍ$Qm~h©cH f‘‚å+X¬X¡mÚÄ'P B‹5Úd*˜³d¾¾ˆÐÃ…>&É™TëCkÂXÒ5 ‘.bþ™TÜ"†L+Q’I2 &ëÌ9s…R0aÁbóåkÓŸ>|þ"D¨Q£F›HùV, ;¸thaÀN¥K¶tÙªeëÐC ½a… S ]ÈvåÊ¥j’!ArÕ´f™%CBù"¥("S¤ñc…P B‹múôé“)S¡>ur¡†6Dlb —<¹h¡A$( CÈD½ÉÕªÕ¡Kˆha‚ÄdTDW–,Éâ¢Ó§>|Ȉ ´©‘+O6mj´iÓ'RŸ:mÚ´iÓˆ/‘ã‚€p0™ÔJ•®I‘Dˆ ƒÉVZ“PbéÒ¤;† á¡“F/;þ©#FŒ2}øˆ±eÓ§OŸ>… õéÓ§OŸ­¸ÒÁ^\¸`ÆÎ¤/$€L洂 €]:¤j ­C‚$­zÅΜIˆr` d‰•)bÄáÓ'P>V¢lúdŠ”)S¦B}Ú´©S£7˜X` á‚<œrÆŽpXpé¦Ç‡#z`‚dÈÐ$> eAt(†X˜XC†LŸ@„õ!c%Ê¢O°zõ‚eêS£F‹5ª“‡Ãjô @€5¶Øqá o0p@L’ Ú²EŽ:$H¨ „‰1døôéÓ‡1Vž,  ,S›"þ("J$`@‡œp‚kjœ°áE€¸0ch•:9[Þ¼±ñ`ƒ :¦X™bE 1V¬X™%Ê&R¦B}z¤(P @„-ú¤Â@ DÔÀÓFÇ™VÀ0à`É5&í0p€hÌàz† -$}úô)+|D:!‚Ç „pa@þ€˜ ™I$€[.™èàãP *00p ‰1dÔðᣆÌ1bÄLq ©O›>… êÓ§O¡:Ù¨ ‚•ž ÀœYD $˜ƒ‰U’09`0ÓXV­` áAˆõé3¨Ñ¢FŠñC 5Å‚Å2êÓ§P¤LÁ‚ V, ÔXa@Â…`røp€ \&± ¦ˆCHBfÇ &0ðÁâG,S¡B™råÊÔ&B|Ȩ!3mY1_¾zÅŠ«W°`„Ó#À@‘ˆ0VHÂ9pV¬¨!d…™6v–aÀ€Áƒþ7Ú$[–LX0_½`™2õ‰1Ù²e»6mZ²dÂ|ù VlZ·g¨ @€€ h„ð8ÑaɆ<TÑ™„f‹œ4;:ÈÙ±äDˆ€ó¶kØ–  ,_±H5 .9ráº]sVÌW¯`˱kgC€€Xò†Ä;¶œ¸ãÂ’ CK˜œ@³EÃ@$™‚ V¬X±bÅŠåËW°bÅ‚«ö­]½{÷ÚµkçÂ…+ ¼þ„ “-¬Ta¢´ˆ:*àð€†ìòEX±bÉ’óE*¬X±bÅòåË—©^Á‚ùò,˜°iáØµk׎]¸kÏ.8¸pâÂ/zìxÁ†Ò’[® ú"@€ *T``È.³Š%+V¬X1_¡B‘‚åËW°`Šõ V¬X°bÇŠsv-œ:uá² v­MtìØñâÅŠ=z(ysA@ ¡¡‚ >…²ÔëØ²eΦM+fjS£N±| +¶,[²dÓ¦mû¶m[6gɦœæ¬©M¡|᪠@À…#.ˆØ‚FÀ 4a.  @À$0hàþQ§cÁ„K6íÚµnÝŠ¹ÚÔˆ”¯bÓ¶…ËvíÚµnáÔ‘Û–,©P¡ ¤è¬/$qAÀLš0aòAÂ0ÀàÁ‡ BFÝZV¬Ø±bÅœM»vmY0SŸ`K–-¹nÙ®u §N]·dÁ>- ˆŸ@‹6Á VC€€ˆ¡„ “ VŒ8pÀ€ &À€ÑêÙ´eÉ–9s–Ì™³eÉŠëeÊ”¯d×¶uëÖ­[8uêÂ-‹õ)P>|úRÔ V0gÇ6H %.ôò  T°!ˆ’9hfM»vmÚ2gÉ–9[V¬X±`½šê•l[þ·nÛ¶]ÃVÍ™³`ŸõáÓ‡P£E›`M›6íš*€x0@€%o\h!AĆ #èÔ ²b…°jÓ–%æ+X±cÉ–M[V,˜/_ɱcç,Y²`Á‚ƒÕ(PŸ>mjd*ÙµkÓ¦…³¤† ²&R~ˆÁ‚Žœ"]»æ¬˜°`¾bõò,Ù´kל%sví»vÂb™ê%¬X1X‹ ¨OŸ?„z%›víZ7v™vl  Æ<ªTajÃàÀX¸<ð çÚ¶mת VÌ—¯`¾|%«öm]¸nÙ®m g*¬dÓ¦3EÊÔ¢?|ƈ!Ãg“)_þÅ’]cï”À9Ô H5tøÀàÂTÛ±c×®»kÕœM›¶¬X¯`ɸ…S§®Ûµi×`›–íš³eÉ‚‘"¤FŒ+bÈô!´)T°läÚÝÛ%B@‚“0Mš„IÇ '.l@¶ïÞ½{ûöÝk§.\·oÝœ æË·náºmÛ¶­˜³kת]ë6-ا@dĈ±bE ™@|-›v­[»yéÚl`p% ˜Ht”é±Á͹yóöÝ›7oß¾{õÚ±c§n›³cÁŠ›6­Z¶mß’]Ë–MºlÂ`)êCFŒ+bÈô!dJ˜0aÉ®‘k/¸=8„\áÑd œJàÞþ½“'oÞ}úÔÉT°cΦeëÆ.Þ¼yòäÉ›7oÞ¼yóæÉ›÷îÝ»wóæÍ›wïÞ¾}ûöõ»þwïÞ½zñÚí»W/\²^þ#F >5ZÔhS§M›:…òÌÙµnêâÝ»7oÞ¼{óæÍ›7oÞ¼yóä½{÷îÝ»yóæÍÓ·oß¾}ûîÝ»‡¯Þ¾zê’Å2µè@2bÈ!Ã'¡@}þRԨѦP¦z-›ö­Ý½{÷îÝ»wïÞ¼yóîÍ›7oÞ¼yòÞÅ“'OÞ¼yóôíÛ·oß>|÷ðÝ»×ͬP›ý!#F 2|úôá£F Ÿ>„m å*Ø´pìêÝ»wïÞ½{÷îÝ›wïÞ¼yóæÍ›7Ož¼yóæÍ›7ož¾}ûöíÛ·¯¾i½L™ú´(2dÈ!Ç>2dÈQÓ‡Ð&R¾¦±«WïÞ½{÷îÝ»wï^½{÷îÝ›7oÞ¼yóæÍ›7oÞ¼yóæÍÛ·oß¾}ýúõ !ù€ ,Dd‡  !""%* #""###$!!%$$&"")%%)&&-##-)).))+&&2**1++5--2..6..9,,;''911611411922=55:66=99>..@66A44E55L::B::F==F==B::I==J>>N;;M==S>>Z>>cAAEAAJAAMEENEEJHHMAAQEEREEUDD[IIRIIVMMVLLRJJYMMYNN]II]QQVRR]SSZDDaAAnBBoEEkLLcMMkCCpGGrEEqIIsJJuMMwMMuNNqNNxRRbVVbVVfQQeRRmVVmTTjZZfZZbZZi^^n\\lRRqVVrVVuQQvQQzSS|WW~UU}VVy^^r[[tXX^^y\\{bbmkknbbdccsaazbb}eezee~jjuiizii~mm~mmzrr|yy|ZZ]]ƒ__„cc‡aa…ffdd†ff‰ccˆjjmm‚nn…kk…hh‹kkŒiiŒmmŽnn‰ooqq†ss„rrˆvvŠvvŒrrzz}}ŽzzŠzz„ss’qq‘tt“vv•uu”yy–zz—~~‘{{“{{˜}}šƒƒŠ’‚‚•††•……’€€›‚‚……Ÿ††Ÿ††™‰‰–‹‹”ŠŠ™šŽŽŠŠž‘‘ž’’›––™‡‡ ŠŠ£‰‰¡ŽŽ¥¢‘‘§””¢““¨••ª——¬šš£šš­œœ¯žž®ššªžž°¤¤¬¥¥©¢¢³  ²££´¥¥µ¦¦¶¥¥³©©·®®±««¹©©¸®®»­­¹¯¯¼°°¼³³¾²²½´´¿¶¶¾²²º¿¿¿¼¼¾¸¸¼´´´··ÀµµÀ¹¹Â½½Ã¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÈÆÆÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌþ]Ñr•ê’#GŽ!‚óÆ,Vª@ (P @ (P @R ¢J­ŽA[6Ì%T´Œ36LØ0cÅ’5£ÖmܺuëÖ‘#·®UªV­HUräÈ‘¢DuÜtÁbÅ (P @ (P @ (Pª`éR‡R+RŸ9"åj5gÉŒ3V,Y3jÝÆ[7n¹u팹B…ŠÔ%JŽ9r„Ž›.Z°X©R (P @ (P @J+Xº¸q§D© a£ælY2cÆŒ-‹†­¸qãÈ­k×n˜­V©P‘ªDÉ%JŽÁ颥 +V¬þ@ (P @ (P T±b ,X°t9ä*š6€Ù¨-KfÌX±eѰuGnݺvíÚÑrå**R—*UªT‰’£C]´`Á‚ÅŠ+P @ (P @©R%+V¬XÁ‚‹8—–eÓ¦Ú²cË’%s†­›·qëÖ­[×®Ý0Z®R¥BE*S%J•*9BôF ,X¬T© (P @ ”[¤@±bÅ ,X´À¡4Ì6lÙ¨5ƒÖ¬Y3jÝÆ#GŽÜ:räÆ%fËU+T¦P‘"u©’#E‡Þté‚ÅŠ•*U @ )7Zxø0a‡8¤`Áþ‚Å %[Í´yÓ¦ 5gÍœQÃÖmܸuäÆóÖM[´fɆÑjÕÊ-W©H]¢¤8n°X±R (P¬,Éð À "\ÀÐàAˆ'Zº r• ›·pÞ´as¶lY3kÖ°uóæÍ›7lÑ¢EÃF­™1a´l 6ŒV*R”)BÇ,Vª@E Œ Dˆ0a dÄÈM"Sƨuóæ 5gÑ¢E‹Ö,š5mÚ¨Q‹Ö¬Y4oب536l˜±ddžÑ"UÉ‘¢DpÜ`±bÅJ(70ha„ 4hh¢@ã–ÕQ„j™6oÞºaÓεfË¢aÆþš³hÔ°açͶhË’-s欙1W¨LURtèM-X¬Hq¡ ‚&L˜ ¡A 4ñ"¨R¡1X°´a4Î6gɆÑråªU+W¶† k6lÝÀ‘[·nݺuíÚ#×îݼ|ùòå{·Є P@CÐ(P A†Ì¡㎖-rŒy˶Œ–+T¤2‘"…ÊT*[˨aëæ Ü¸uëÖµk×®];wóîåãç¿|Û@(P @<°(Cƒ þ*DˆÐ AöT¢Òæ5hÃ\¥B… *R¤PÑ2ÖLÛ¸qã¼7n9räÚ¹{7/_>~üøñãgCƒR((0AC 2<(°aC„ "D8P O°°26l˜0[´l sEË–±fØÆ#G®›7oÞÆ7nÝ»wóòåË—¿i&LDhAAzœi¢ A&L¸0a„  xÆ6Æš-K¶lY³eÆŽ-kf­Û8ríÞuÓÖ͸qãÆ­k÷nÞ¼y÷òåËW&Â… Pð€Æ‹ÐxÉpàÂ…*\ˆa„.|âË5kÔ¢9þ£F­Y4lØÆµ›7/Ÿ·nÞ¼…7n¹uíÞ½{÷îݼi \˜áA€BÚ¡2hˆ! &Tˆ!Bƒ {¨y7Î[7oàºy7®Ý¼|ùæyó6nܸqäÈ‘[׮ݻwíÖ­3àÄ2È0 ,? ¥ÐP A… "4Ð`„&4hP"Ù»y÷î½{×Þ»wóæåË7oÞ¸qÞÆ‘k׮ݺvíÚ½kGΛ3J4˜Ð`‚‡ -¨œbà 3РaB„Lˆ0!B„*à©çÏŸ?ùòå›7/_¾zùêÕóæ­›·qëÚµ[·þ®»wí¼aT @ƒ °Á  <ñr£À¼Ôh …‚,"Dˆ!‚müøñãÇ/_¾zõêÕ«W¯^¼nذuó6nݺuäÈ­kGÎ6!Lˆaƒ—=Cd‰ÉŸ2B |ÈS!„‰D`8¡DÆ„"Tȯ^½zñâÅ‹o^¼xñâÅ× µfͨaóæÍ[·nÞ¼1+À¢A…3 B°àŠ£5tÔÈ £À&Dh  C‹MŒxˆ0aB„3éÎ;wîܹxñâÅ‹/^¼wë¼ak6Œ­aÉ&k挶<€9fBƒríZEE þI20”g„ p( &DˆpDÚ¹sçÎ;wî\¼xñâͫ׎œ7lÑŒ¥"…ªU*W¶Œ%{q€˜@£@dð Ö/O9pôYs¢A'¯*”ÐР@4™™!B… $Ò;wîܹsçâÅ«W¯^½|íÊ‘Óm™-T©H‘"…ª•© ^(‰U¨A-z1‹•#Ì lÂ… 4h0ÄŽŸ "T¨°aZ¹sçÎ;/^¼zõêåË×Î]Dˆ0a„ *Lˆ «^½zõøñûç?þ~Ž*UºDÊ”)T¨R¹j5$†3*Jh˜Ð Á˜pAÃ@¿z­!b¦S˜5/ˆˆá³ Ÿ!'.L˜0!Æ„¯êÕãÇ?üøñã§(‘"EŽ*Uªt‰)R7¼\0òáÅ… P  † &Ål•56åé$ªI¡8iZCÃC„ @L˜°P½züøñãÇ?~ü%J¤H‘#GŽUºDêF#"DˆÐ Aƒ hø aŠ=È€¢"¦³M²`ÁÒÔ¬N’b\˜ć òÔË—/?~üøùãÇ/Q¢DŠ)R¤HÑ#G”Z„iR Á„ þ48P   &ø$KV,Hb:!“ëW'N~À„u,È™*|Ø0ÁI>~ùòñãÇŸ?ü!J”Q"EŠ!B„ˆC€ L˜0Aƒ/ LHÑ ‚†B½@­úkV'O `u’$K,I±"ušÐHŒ ŽäËÇ?~üøùû÷ïСC‡!J”è8pFÀ0Ò`„ L Ф¤„ *L‹“¤N²4A8I¬^³:A‚ ¬P x)Qa‚‘|ùøåËÇ?~ÿþÁóœCpà¸qãÆÍˆ„"T¨P!™4½4Êåႆ e:u  $Mš±“H‘"E•\%ÃæÍÛ8+VZÁ‚‹–.o%R$Ä‹þ—  4`Ñ`B$M4 V$;dõ‚&‹'O}:IÚ„ˆ¨3{dÅs„‡vUªt‰­cΰaÓ†EK7nàÀ9tH‘£Jvˆà™Ð À vÂcÅ)°£# T/fÌìü’egÊ/?›Vá´GÒ.M0>LˆÑF)T­\¹²5ÌØ±anàJ¤È%J¤Z £Õª ˜h ÁL 4À B%°5°~­êŒÓ.X°@EŠ´ R30"u UC #.µ¢5l˜-Z©*‘"uH‘"G•.]2åÊX´fÉΠÑp  )C¤‚AjB³#k—§?þ¿"¢2+ן\ )ñ³‡(IÏÌä…•±dÆlF+¢C‡)zäèÒ¥K¦\ 3v¬W!%<˜ H 'ÎL˜`§$Yš4cÖ‹“¤_ dÁ•«£3€úH³f ˜)3ZÙjåÈ%W®.ÕqÓÅ‘#G•.‘B…*•+W­ZÊpA&4R’â !ºrýÑê²]’@ñ‰Å,§N€$IêäÇŽ!aÄ„³•)DuÞ¸QDª-VH‘º”‰ªT©L™"EŠT'>4   S¨N‘¡•«P°zƒEGN¹dujÆãI¡!á1f  vþÕqãÆ8ˆ¹é‚…*T¨P¥J… *T¦>MòPà Êx9Šˆ]½Êœ3”,€þÀZó'ÔŸ^°ˆ€ µK’š)M*„„Q—.]ÜÀA„HQ"8]°BåÊ•+W®R¡"eŠÔ¥J/ |8‘!ˆ`ÄØ• ‡Jö€šJV.; :Á×ë…¤U°æ°¸€¢Â%g¨tq"EŽ%‚ÓK%T´„ ³å Õ¥J•*]bô À/S<x‘ À0iìñ DKBåê¤ Ö.g¿ÌðY•KHƒ &*4(s†7p!B„è7Z¬TJE‹-W¤*9Rþ¤è¥O `"H2DR3…‘g4ÉT®Uœ@­êŬÐMh44¨ð!„AJ´tÑÒÅ 7]ºhÑ‚ ©V®R¡ÊäH‘"EŽ*]B•¢@M€ÀêÕ$†A4BŒ£d¦2S`i¢ÓiÕ,\È~ù Lƒ *40ág ,Z´tÑ‚ ,X°XIÕ*•)R—*QªT‰*T¦„ðž%3d4¦1^4ýꥩ•I}B‰ÊÕk˜N»‚˜ø0¡Aƒ^Ö`ÑâÆ›.]´hÑ‚‹•T®Z¡"EŠ)T¨P¡BeÊN0£2´C…Æ4C\Ì ²Gþ²] èLæ 0h8)‰Æ† &Ôà±cŠ›.pê:t7nÜh¡E‹V+T¤L¥J•*ªT©>5Ш€ /{†à¤ šzÖK‹S"uÒ€B ^H"høAE%DBÔèÒ¥K”zó 8nj٢• UªT­\Ñ¢E‹–- P` Z`PR£0`ºvÁÚ3gP>~ôGFœ#ˆ0W©RÑråÊU&G‡àÀƒÍÙ2aÆٲEK˜1cÆ’-ÃS @3XŒ ÀØeu’ÕG (Y¿$A‚Ť 4gDðñAƒ†þ%5sæì˜±a¶h¹r…ÊÑ!7Ú´iÃFZ3hdž Z7f€Á!L™' ™Ò‚M¤]}4å‚Õ ÖŸ0ƒPôèq¡A„ š€iPY6lÙœ-3F‹­aÂZ]R4n¹qã¼a‹–l˜0cÎÆ­›§#à øÌ(àÄž!B¨äêÅHS'H’ ÙÙâÅG¯ 4(ð$ |xÓ†š³fÃh¹¢eË–-W¨Þ¹k׎œ7jÆl¹6¬¸wùtÀ€À‹ {þü´ÄO¯^½zIÒä‡ $Fbˆ8 ¢APHâQÀP8mÙ¨5ƒfÌ*T­hÙråª];ráþ´E[6Ì-ZÖy»—Ï]‰¼I3‡Ž¦H}úÈ‚µ +5T ¬é´dU“  Œ(PàCƒDˆ0!…‘)«ŽA[–lY2a©R¥¢5lØ0cÇ–Ñ2¶lÙ±dÍ–-‹†mܺuä°3†HB@ÜháaŠ6B(ÓÉK P4(Ð`BŒ,L(ñck™3g΢QKæŠÔ%T´Œ[æL[3gÔ¨iç­¶hΨ¤ælYªL­„Éš C€-n¬ð ‚J†„„(`‚‰ &TøÀþÔ1@ÇŽ-sF 6oÞ–Ñ"•ÉÕ°eÔºÓ† ¶nãÈ‘ë¶ÌV«T©*)RD‰”+0$@c‰”582 à#Ä høažzI3vlÙ²eÍ¢QÆ­™1W¨hk†Í9oÚ´yÇŽ\·fÆP9R¤èÐ!E•H¹:†"@€"FpáaŠB0ìè @† <Ä(-›4hÍœ9kÖŒµfÍ–³åÊÕ°fÙºyóæÍ[¸uëÀE£eJ¢Cˆ)¢DŠÖ°hÈ A| ÙtÀà Lð°dÉXÏvQÆš³fΜEk¶lY2c¶Ò欛þ7oݺiÃf-Z4c¨:„ÈQ¥J—hQ‹ [®)D4HáGL(% hø€ @ˆ)Rf„AâeÏ2jÔœ5;6ÌX²eÍš9s¶ÌØ0cÑÆµk­Y3cÆŒ£EJÑ!DŠ(]º„ª6lÖ¨Û5¤F‹3"¦pêäÅÀù†Ž `aÃmÙ1cÃl f¬5lØ¢5‹fÍ[»wÇ„¹vlY2W—*9R¤"EŽl5£† ›7w€@$Ð0åÏI ‚˜8ÐÀ„—M`j<(ˆZ·nذ3–̘±a†5Ãn8oبu#G+­fÔ¨-£åÊU¥D‡Þ¸sˆ­aþÉšak7ÏP^ u‚¤I 'X(¹p!‡Wßµk÷î];lÔ¨Q£-™0cͰ[·œ5jÝl£¦ [´fÎŒµrÇM-nà rd*Õ1mëÞå ÄœH{"âq& |`Æ/_¾|üøå{Gnœ·qÞ¢-36,š6oã¼uëÖ-Y4mبaóFÍ)Epܸé¢Å E—†9ÆÍÛ»|é ƒDIš0pØ< Ñ Oºzõòå«W¿|óൃ·®[´eÆ–5£f [·nàšië†mݺnÇhUBÇM—.nà räjرcͰ‘s÷nÞ9Cf<™ò„ÆCéâþÅ«¯^½xõêñã—ïÞ½{ïÚa‹f ›5kغuë6Î9ríÞ‘3ÖêÒ!8nܸƒHÑ%T®h¥²•,Z7€ãȵ›W¯^¼mÓ¶Å«/^¼xñæÅ«/Þ¼zùøåË—/_¾wãÆ­ƒ·nܸqãȽ›7o^»f¦*)‚ÓÅÍ›:ˆ]"…*•+T­h-£Ö-ܸvóêÕ«/^½zõêÅ«W/^¼xñâÅ«W¯^>~þøñã—ïÞ¼y÷Þ½{×®?ùÞy³EŠÒ¡.Zº¼©ƒÈ)R¦P¥BE*•±fѨaó¶n^½zõâÅ«W¯^½zõêÅ›/^¼xñêÕ«—/?~üøùËþ—/_¾|óÞùËwo\3[¤ÁéâÆ œCŠ(U¢t‰*R¤H¥f,š5oíæåËW¯^½zõêÕ«W¯^½zñâÅ‹/^¼xõêÕ³Ç?~üòåË—ï¿{ëœ kU @8nàÀsH‘#Eˆ)ªtéR¦T®l5£Fî]¾|ùòåË—/_½zõòÕ«W¯^½zñâÕ‹W/^¼xõøñãÇ?~ùôåËçm˜«T¤!‚ãÎ!8‡!:t¨NDŽ*‘JåʘµqíîåË—/_¾|ùòå«—/_½zõêÕ«W¯^¼zõâÕ«WÏ?~üøñãÇÏŸ?jÂ\¹BuIÑ¡7pàÀsè>8pàÀƒÈ)WƬµ›w/_¾|ùòåË—/_¾|ùò嫯^¼zõâÕ«W¯^½zõìÕãÇ?~þüù !ù€ ,Dd‡  !"#%) #""###$!!&$$&"")&&)&&-##-)).**,&&1**2++5--2..6..9..=11600311922=55=55:88>66A44D44H99B::E==F==C::I>>I??M;;O66P==Q<<_>>fAAFAAJAAMEEMHHNBBREEQFFUBBUDDZJJUKKSJJZJJ]MMYNN]RR]YY_DDcAAnBBoDDkNNbLLdNNjJJjCCpFFrEEqHHsJJuMMwNNuNNpNNxRRaUUbUUfRReVViSSkYYf[[cYYj^^j^^mYYmVVrRRtQQzSS|VV}VVzZZv]]u\\qXX\\ybblaaebbqddtaazbb|ffzee~kktii~ll{tt|sswZZ]]ƒ^^ƒ__„cc‡aa…eeff‰ccˆjjmm‚nn…jj…hh‹jj‹jjŒmmŽnnŠooqq†uu†ss‚rr‰uuŠssŽzz…yyŠzz}}Ž}}Šqq‘rr’tt“vv•uu”yy–zz—~~‘{{“{{˜||™š}}šƒƒ’‚‚•††•……“œ‚‚……Ÿ††Ÿƒƒš‰‰–•ŠŠ™ŽŽšŽŽ‘‘••ž‘‘šššž‡‡ ‹‹£‰‰¡ŽŽ¥ŒŒ£‘‘§’’§••¡““¨‘‘¨••ª——¬šš£šš­œœ¯žž®ššªžž°££«ªª¬¡¡²¢¢²££´¥¥´¦¦¶¥¥²©©·­­³««¹©©¸®®»­­¹¯¯¼°°¼³³¾²²½´´¿¶¶¾²²º¿¿¿½½¾¹¹½´´´··ÀµµÀ¹¹Â½½Ã¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÉÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÇÇÕþO¹rÊQ¡B…R“*R¢(Q¢D‰%J”(Q¢D‰%J”(Q…ŠŸF¥z1#Ö ”#O®€ Ö‹W/`Àˆ%k–íÛ¹sçÎw®T¨R¥:5*T¨ @jÒd¡BEŠ%J”(Q¢D‰%J”(Q¢D‰%J”PÉâgQ¨N– ‚tŠ˜4eÄ€ŒX2iÙ¸};‡î¸sé€å©“£E… *H š,V¨H‰¢D‰%J”(Q¢D‰%J”(Q¢DI)R² A£æ@§˜Q‹–Œ0`À‚kF-Û·oßÀ¥K—˜«P¡@uj´¨Ð¢E‚©ÉbÅ )R¤þ(Q¢D‰%J”(Q¢D‰%J”D‘"… *T¨ tJ™5€Ô¢%# 0bͨmûöíܹtéÒ¹:Uª(OŽ-jÔh‘ ?Y¨X¡"EŠ)J”(Q¢D‰%J”(Q¢D‰)R¤H¡B…Š5ŽˆI³f-1bĈSF-Û¶oçÎ;—./W§B…ÕÉQ£E¤Æ *R¤H‘¢D‰%J”(Q¢D‰%6”(‘"… *T¬¨iÔK5kÔ¢%S¦,Y²hÙ¸};wîÜ9pß¾ëëT)PžÐX¡bÅ’µoàÀ}ûöm[6jÔ¤ES–¬Y3jÙ²Q£ö Ü9pß¶e˶íÛ·mÖ¨ESF X¨NŽ ÁAa„…†€`@†þXxðàÁƒŽPr§Oß>}õêÕ{7¯^½zðàÁÛ¶-Û¶oéÒ¥;wþ.ºué¶QÛ3àŽ,p ðÐà JPhRæY†¤ÅÍ‘"Dxð Â*d÷îÝ»wï^=xðàÁƒÞ»lÔ¨eÛö ܹsàÀ;n5 &LÈ äA‡ ,,hñ1ÂDaäLÈ0!Á‹°X1aÂ1[Vt(1nܸqîÜÁ»wï¼{÷¬mSž;pÒˆ#æ ” 2dªÔc‚7©æ¤šµ)0M&åJ%IK“;·ÜL˜0a‚*LÈã‚B…æÆçμ{÷îÝ»wÏ8wðàþ©ë¦ ¯^¼Bµyð`Ë*7#(¼¸'Î-·6< ³j²#q:¸0FR€&<€Ña„ t\|x`׸qîܹƒwïÞ½{÷îî[¹nԔ㠨;!BàД#Á†.G|¤ê#S •HiÊᢎEư:1aƒ°`!À2h:”èšât¨„lØ¡Kˆ(d˜a„&dȰaÀ‘qãÆ¹s¼{ðîÝ# 0^®N•*uŠ0`%Ƙ@´Š $H0àäUZ¥Éǃ1˜jMš©ÃƒL˜a‚ €7nÜ8wîÚÁƒwïÞ=`¼`¹:u ”£B‹:Á*5BÄR•6 0àA‰A8xq'W$E•\<豊«Kµp< áþÁƒN!H AN£¶mÛ7)RJ¡B…J–,iü2TfÎþ„<øÀa …îœ9ÓªU›:IVéª)Ò¦‡&Mª4Æ‹V«œñÀˆ-m9rÔ¨“«`Ê¢Q³FÅJ4hÔ¼ñãGP¡FmŽLH0 Áƒ;.æd@Á…™C¶Ì ªc.[µHUÂ!‰ÔªDaP`I´êŒ lañDP§P¡B‚Õ X°^hÔø$¨Ð¢FNÁrEIËŠ6l°pçˆ (ìa3ë‹]¹råÊ¥+׬;c0Ù“ç„<ˆùhâ‚L‚f•rÕ«,X¡uêäG BAêt X³d¬$™ 0  “p¼Ø0ÂC&;¶"Õ±•kX®\þ¶ZÍÊU+¥"“|ЀbéО-½ˆqb Q/bÀ`õêÕ« ?~ 2T¨‘#GJõ"F Ø,Fl")…,‚l¢'—¤H³fÕÊ¥K—&L¹fiÚ4'"fì4ñÒáņ'(Jõ µ¨P£R§:ùAc¥P¡Bu*Ô©S¡B¡0`@MZ0Ía±b+M˜réZµªR¦U¹r±‚E&O®;©$á ²‹.eHl Ô”'@oÔ ÔÉÑ+R:ur©¨P¡ÜìáA‡M‘"}¹£iO¤C«"ÉuN&6l&m:ò‡:•ÎdA£F A… R“…Š#P®xÁru ”#G9bcÀ@™6Øqg ž.9ˆ¸ñ²§Ž™/•VU¢„hÕ 7và°ùB„‹ â”Ø” 5jüÈ4Y¤4 åÊ•«S 2þ$HÐ"O#ÜÙ³Eƒ”~Ì9”¢N$‰0²“‰Öª={jmAç!3%&ˆ¨`NˆZsÎd±’4Y²X±B…J§R§@‚TH A…9ÅÀ/’¾ÀÀ›w$!Љ֬L•HåÚÓª2‡Øx¹täÁ„!(<¸1 *V¬d±B… *T¨P U*T§NŽ-jÔ¨(P r¹ó„È—Ø8±ÐfO$[‡iªƒg•­ItmqsÇΖI`€P±’M–,V¬X±B…Š”P§JêÔ R'P @úÊ‹ #gð˜Y‘ÑN!ª¥IþÒ!6•*Í*² Ó0m( bB†.ˆ¬°EJ4jÞøñãG4hÐXqåÊU)P<…  ¨O¥,% ÁÄÌ-Älè1dU¥U‘ZiªT O®‘Ý™D§RŽ&¸páÄHœ#Z$¨Ñ¢F‹ùI£ Ÿ7Ä€Á: ¨P¥N¹r劬’Àqâ…/_>`šµª’&6•iÚå"Á„tz8qq£C… 0zø˜4f¬S¡BråêT§BoÔ¨Q#-1`½xÁ‚åŠ0`ÀˆÛÓ œ2Z( Ñ…D¥C‘4ÍÒ´*Q%d7L˜ LJ %‚dÀ¦ ¦þUA6%S–,°^¼\:ª4Û²Y£-Z²dÄzñê•,Ú6g<©Ã‡^2Õ9´jÕª3™št¤Ã„ ``hIàAˆ ‚”xþ‚®ˆ1SµmÛˆ¹ê©T/bѲ}³FµmßÀ}ËFŒW©P  Ô¨“+0`დ P°Ð€ <Ȱ"ÄŠT[p€aEŒ1bÉšE£F-°S NKF­¸mÖ¬mû\¶dÀ<-$ÈA v"€€ `¼´a£‰‡# 8¼°ð A‚ A:°’vi˜´dÉš5S–¬Y4eɈƒUêT¯dÒ²mÛ¶mÛ7pç¾)sª ?€ZÔÉU¯fÃ88èa& 6p€ 2‚ˆ† ¤`áÃ…5d·”I£F-š²dÉ”ESFŒ1`¼žâ•ÌÚþ¶mÙ²Y£-Z³^  ùñh‘£FŽ\E‹ÖŒÚ­<^ÐxILŠ 6láƒF "fˆtÙãcO4jÑš% Ö ±cÉ’)SF X/`Ͷ¥[×,1`À‚sÕI@‚ArtJ5kÒ¢}³µå‡›C{&I0`Àˆ&tÎXÈQ&eXQ£ÖŒX0`½`ñê,Y4jÔš%kFm[ºuÁx‚Œ1WŽ$ A…x%£F-Ú·ty8 1“(Q¤(°€Á"Ò7$Èq‰Ú¶lÖ¤ F¬W¯^½z%£Æí·mÖ¨ew*,eÑ¢;UêT#@~Ò Q¨Ó©^þÄ’eK÷Ž7‰"ª4â‰#DÄlÑÀ€Kߥ[·î]:jÑ¢E‹–Œ/`ɬ};wŽ›´hÖ\“fZ³dÉ€…*¤M–,hÔ*Ô)T°mçÔÕÛUÈ1ˆÀ”ðA‹tØu¯^½z÷îÕ[÷íÛ¶oÙšÖ«™µm߸eË–X³lÔ¢QË X'AjÐdÉ’Ax)£FmÛºzåúxÂãË,w>`Ï8xðîÕƒwïÞ½zïÖ¥cw.µdÀˆ%‹&Z¶lÜ”QËf ܹlÄ\5¤M4hÔZtª±`ɨ[÷î]¹T{¾œqâ!Á>æÜþ¹ƒ}õÖmƒÕi‘4Y²¨y¨P'O @…åéT/bÊ¢YÛ–î]=xðàÁƒ5jÔ¨y¨P§S½¢¥{7¯^½zõêÕ«W¯^½zõêÕ»¼{ðàÁƒÞ½{ðàÝ»wïÞ½{÷ôé !ù€ ,Dd‡! !"#%!!#""###$!!&$$&"")&&)&&-##-)).**,''1**1++5--2..5..9--<11633511:22=55:66=88>66A55C66K99A::E==F==B>>I;;L<>e??jAAGAAJBBMEENEEJJJOAAQFFRFFUBBUDD[IIVKKSNNZMM]JJ[RR^SS\UUYDDdAAnBBoEEjLLdLLkCCpFFrHHsJJuMMwNNvMMsOOxMMxRRaVVeSSdQQmVVjTTlZZdZZiZZm]]lRRqTTtQQzSS|VV}VVzYYu^^q]]vZZqXX^^z[[yccmhhjbbuffuccraazbb}ffzff~jjujjyjj}nn~mmzqq~sszppuZZ]]ƒ^^ƒ__„cc‡aa†eeƒff‰ccˆiimm‚nn…jj…hh‹jjŒmmŽooŠooqq‚rr†uu„rr‰vv‰ttzz†yyŠyy}}Ž~~‹rr‘tt“vv•uu”yy–zz—~~‘{{“{{˜}}™~~š‚‚‚‚†’‚‚•……’††•š……Ÿ††Ÿ††˜‰‰–ŒŒ”ŠŠ™šž’’ž““œ™™‡‡ ŠŠ£‰‰¡¢¤¦‘‘§––¡••¤““¨••ª——¬šš¥šš­œœ¯žž®™™ªŸŸ°°££¬§§ª¡¡²¢¢²££´¥¥´§§¶¦¦µ¥¥³©©·ªª±««¹©©¸®®»­­º¯¯¼³³µ±±¼²²¾´´¿¶¶¾±±»¿¿¿½½¿ºº»··ÀµµÀ»»Ã¹¹Á½½Ã¾¾Å»»Ä¼¼ÍÃÃÃÁÁÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÇÇÈÇÇÊÂÂÍÈÈÉÉÉËÊÊËÊÊÌÌÌÌÊÊÔùùûþG­åiÑ AƒùÌ“&L–1bĈ#FŒ1bĈ#FŒ1²¤‰E£p û¥KÓ"OªtõÚu‹®]»zkfܸqãÆ7n”§P¡2)4h ?bÂHi„‰#FŒ1bĈ#FŒ1bĈ#FŒ4‘Â'ѨL‹ Ê4 X³bÀzõÚµ Ø1fÖ¶mGnÛ¸qåvÚ´IÓ¢Dƒ äG )Oš0abĈ#FŒ1bĈ#FŒ1bÄÈ&M¤€#?ž„MkVLX¯]»zCÍZ¶mÛ¶•+Wn+Ož6eR”hP¢Dƒüˆ‘òäI&L˜þ1bĈ#FŒ1bĈ#FŒ,a¤I“&Mš€á3ªØ4€ÑšÖk×.`È¢YË6nܸråÊ­ÊÓ&M%R¤(!>Rš4iÒ„ &FŒ1bĈ#FŒ1bĈ&L˜0iÒ¤É1‹€I›6­0`À€CÍZ¶mãÆ7®Ü­U£ByÚ”©‘¢DŠ ò#FÊ“&M˜,YbĈ#FŒ1bĈ0`a¤I“&MžˆQ„«˜´hÑš;†ìرfÖ²m7nܸqݶÃÅjT¨Mš6eÊÔhQ"@|Ä€‘Ò„ &FŒ1bĈ#/2€QÇ‹/š4iþÒ$L"VǦa›6-Z3dÅ!cf-Û¶nã¶mËfͲcÀp­jÔªQž2-È1`š0a²Äˆ#Fbœˆ°A@;†„¼Éq‚‚‹'O¤ø,Ú·oئE+ 2fÌ¢YÆ ›µhÌ!‹Öì°[«XáÂ…k•§LŠò#Ì“&L–1bI†BéRH’*4Jð(ŒM»šaÆ-Z³bÈ!C– ³hј!+vì2kјÛ… W/`ÀpʤhÐ ?b¤4a„‰#JX<°ÁGŽ^®X2C%CŠcÀˆ´ Ø4lجE³† ³cÇE‹þ²bÍ¢EÛ– [4dÀ€+VìØ®Q›2)Ä'Œ”'M˜0)ÂÂÇ#Tx"h¡‘!D<6´p1Ì“1£šaÛ¶mÛ¶nã¶EcÆ,Z4f̘1‹fÍšµqãºa‹Ö¬Y³hÖ¦5† +O‹ùñƒF ˜$%rœ¢óC|ÙR£‹NƒÐ€yfR´mݺmÛ¶ ›µhÑ¢1C– ²hÖ¬M‹¶mܸmÛ°Y³†-Û6lÓ¢5+l—§L‹)ÉÑ daÅŒ oP`ˆÔi’ŸGp¢Ìú¶m6kÑš1kv ˜0`ÂŽ!c-š5kÛ¶7n¶mÛ¶aömÛ¶þnÛ°;† 2 ñ` ,,"â C&MB¦I fذa‹†ìØ1a»páÂÅKX2dÌ¢Y³¶mÛ¶qåÆmëÖ ¶mãÊ•;wî\7lͪ 0A.!PáM•:hT`aɨ8`šrµ [4dÀp­Zµ*”§Q·pá:°³hÖ¶7nܸqåÊuëVî\»xòäÉk× S "íw/Ÿ¾|òäÅk×Nž¼wï޵ÆÍ¶mãÊ•7þ®\¹så¶EË3àA-*  À”¸AÄF… ¥9‚Á0@€¡ÒR÷îé»wïž¼wïÞ½{÷îÝ:kÑ¢Y˶mܸqݺ+× [4*P¬QÂÂ<@0€†µY´Ðˆ@!Gd‚´`ðÀ 8Ü0òîÝ»wëÖ­[·®ÝºuëÖ­Ûf-Z³cÇšEÆ ›5lذ cPEF- $A1ÀÀ ¸¨³, ëU0`Àá/ÔÖ¸uëÖ­[·nݺsã²E;†k•*\À;V¬Y´<fPÂÔ"D X @áÊþ%I*ˆöÆÀ€ ¶œ’#ƒ | •A8pàÀܺuëÖ­{W®6fÈvyÊ´ÉÓ¦Q¬v«À×0R¦8xxaƒ„5*¨ÌÒ!AµXu(`òÁ+ @x l€8pàÖ­{÷îÝ»wåÄu›VL«Mž2-Ê´É“ª*ê)ÓòˆÔB#Å'7 Õ›5«  80 @ƒ$V@€6pàÀ·nݺwïÞ½{W®\¹rߦÛ5jÑ Lž<™©R©ž/oZ¨ âÇŠ7B@¸†I×)W³P¹ùQÄ*@€ gþÀ8pÁ­[·îÝ»w÷°MûV®\7lÅpm4H‘¢Zêø¢• |üÀƒ RʆѢ5+Ò'<(*`ÈaG„PÕ@ÁA6àÀnݺwïÞ½{woZ³hÝʕۭرUùÉðƒ¦<4Ê8BPÅ.,05+Ö¯Y±PuÒ!¡>@`P!V  8pàÖ½{7ïÝ»y÷¦a÷îݺnÒ€¶k U| sӢޖRÄy„ÇL³PÍ:uJÒ¬* HàÁãÁƒ*dñÁÁÚÀ·nݺwóîÍ»woZ·uïÞþ•ÃVl×-\¸0U)ð`Mž 0¬ñUË u,qøq •)<³NÁ© Ã• @ A‰’%¶`Ò¶ܺuëÖ½{÷îÞ|üøñã‡1bx `€àA‰<²taª´f@käÌù„ÉŒ™@…‚ØøÊÔ§C–â˜zT"D nUñÁ %yòîÉ{wïÞ½{úô‰#F 1bÄ€  +±³Æ—°S…„ ð€Î£C“$¥¹©C¨b}þŠôÈ&K="àAÑSRÈ’wïÞ½{÷îéÓ§OŸ0R¤H‘òäÉ“'O¤¸ b•Gth¹ŠUë„ :IRœ9p8BeɪS±LÂT%„$*>d¡x Á̰síÚÉ“'Ož¼sçâ5iÒ¤I“&Mš4iòäÉ ´é‚ÉÔ©S°XP00 ‡%I–]tˆ9¨ 1õ)MSx0`ò!BR ÜøÚÕÌZ¶qå΋fm&L˜0a„I“&Mšì@0€7¦,ÍPTydçQ$%i=qæP%!x>ʼnóÉP…G5fÁ`Æa£n±bµþ«6lÖ¬mc„ &L˜0iÒ¤I,Òã“)kx-@€àCÎP0Ñ‚„!^-R¤(Óª^ÅšE³Öä‰0`ĈáãÐ Ep2€“©n`@`eN!AJÌ()‚$-L¨H²”gI“æX¢RC !<*°qP¦M£Fb…k×.\`ÄðñhP"E™FÝZ5 E„ 50¡¢5 8Ì :äÅK‘3à2õé&AZd¼8s*Ò$,)Bt©Â£D q…Zµ ×­U›iÊÄ AŠ-Ê4ª²cª0¨’CNT?„€ðÁÃÌ+Lf”x± aƒRþ²P¡²ôFKŠ3“bÅ‘ÄÁ _ô¨.`»níÂ…+“>|ü4hÑ¢E™Bál‚5¬TéQ©G—u¸Ìñ… Σ85$@0C‡N-Y@òlñΜ$Iª¤@á#I TÝò”Ð Ožñód AŠeÚ´ÉÓ¨QžBIâM—:ùx„ê$_´^Á’´‚C–f¢ÅÂQ!< ”´Xƒ! 9â\B“&@hÀ€ñ“i)L2eZÔ(Ó&Ož4iÊ”) h,Á¢ G9LÕ¢%‹”)Rd0téäC [[Üy”‹Ž Ì`Iã…LAþ¡ 1~ø„yÒdÓ¦M›6yò´i“¦M›2µÐ¡ÄðT„•%K• aú”†Å/€vºpÙCËJ•.…~˜‡pâI‚‹)`Àˆáã1Ršhò4jÔ¨Q£BmÊ”IÓ¢29zP0 @€7mµqƒIR¡B’ ¹yTEœ¯’*Tˆ˜ÜD  eN^H #@ƒù#¥É¢M«nÝb5jÓ"EŠ-dâ ¬8BÐâ£2’QòˆÔ§C5¨’éJš.)p¸ñ¡ãÓ ÜªâC ˜0bøøñã‡0R˜(ò´jÕªQ™ þP"M:¾Øy Ä!!9zTé 8•0YzÂÊ!tJ´ù"žÚAQÈG¤GUšHy"Œ0R¤*Yò!„ ]ù˜„K“&OžHyÒ¤I“&Mš4ñÊ“¦L™%R¤¨Ñ¦M›Ê€¹ÈÅ‚N¨Z`BeÊPI¨ÎX²%Š*kzÓŃ "Þ À!ÇŠJ®4yŒ)Ržùñh‘¢E‰ñ# 4½v±åi“'O¡F­Zµj+EÐ1° ˆŽG¨d™²DjÎY?@”ÁÒƒ ªBHÔ ááV00Ò®QžF¥jT¦A|Ä #­0\¸X±ºµêÖ®]»z{ÓÁ 8Ìqt*T²d½‚ÅæÁ ÔIb‚„ zà)D%Dþ-@ð+V .\¬Vµ)0Ó¦M‹Ö Ù±cÀváÚ%¬6e¾$ႆI…P¡B… Õ+Ix x AUH PÀI?P°ðñØ´hÒŠÛÅjÕ*\·B-´mÛ¶mÛ°Ek ®]ȶ;gÃŒ•6eÒ<úô*–)S¦P½’„éA"ä±ò  ªXiЇPa›MZ±c¸TZÅê+O›Î•+W®¶f»X­º¥ë¶ròJñ03çQ•C¦b²dÉT,Y’$­AÀà<40àáA †p°áƒÚ·iÒš¶k”'O¡V±ª\¹nÛþ¦!†ëÖªU¸Žak'O\ 8 ÅBe G ½¢Ëˆ¨D¡À $ä±ÂEG n¦M³íX¯^¸V…Ú”IS¨Qž¦M›†ì˜0`»võ†ÌZ:yòäѹbÇN!Soºxó(É£G¦ Ù@PAƒ <@AB.z„ðA*Ú4kÑv 5jÕªQžBêØ±cÀ€ °hÝÎɓ׮5@’À9”DL¨>aÉΛ~üJ¤i.dÂ(pè€%™.9‘…h„¨ aÃŒJÔ5‹Ù1dÇ1+ °]·ªºUÌþ6lÖ¬M‹Ö 2\›ùáã'Ñ"E‹V5kÖ,Ú+;ऱ„ÂŽ/<€ðÀ"É(hà©ò‹Z3fÌã…k—°cÇŽ!C&l®]Ƕ•+‡ìر]»zíZÕ?€5Zä©X´iјmÃÂŒ3\yñÒ•+7Î2a»€ CÆ,Ú4kÙŠEÃfmÜ8kÀV)ò#Œ)`Äø4 °^Ç¢u+×®8ZvÌ´`à =âÖþ­{·îÝ»uëÞÝ»'/^¼xçÊECÖ,Z3fÑ¢Y³¶ [·qéÎmÛ5J‘1`À€ãP£M£VZ¬˜5€ÛÆ•k÷î8mÚÄ­[·nÝ»uëÚ½[·nݺwòîÉ“'Ož¼sÛ¶+7nÛ¶mÛ¶kï\¹c™FJ4~-Ê´ÉÓ¨MžVkf Û¶ríÞ½{·nݺwïÞ­{÷nݺuëÖ­{÷îÝ=y÷îÝ»'/^¼víÎ;W®\¾|òÎac•i0O¤€AãgP&Mš6yÚ¤iÔ.`ÈšEÃ6®Ý»wïÖ½{÷îÝ»wïÞ½[·nݺuëÖ½{÷NÞ½{÷îÝ“þ'Ož1bĈAãgP¦Q¸š•kOž22=99>66B44C55I99B99F>>F==B::I>>I??M<>gAAFAAJBBNEENHHNAAQFFQFFUBBUDD\IIRJJUMMVJJYMMYNN^JJ^QQ]SS\YY]EEdAAnBBoDDlNNaLLdLLkFFrCCpHHsJJuMMwNNuMMqNNxRRaVVfTTcVVmSSkYYf]]eZZm]]n[[iTTsQQzVV}TT{^^r]]uYYsXX]]z[[zaanddliio``dbbrbbueeveeqbbzbb}ffyff~iivlltiizmm~jj}rr}qqtZZ]]‚^^ƒ__„cc‡aa†ee‚ee‰jjnn‚nn…jj…hh‹kkŒiiŒmmŽnnŠoorrqq†uu†uurr‰vv‰vvrrŽzz…yyŠzz}}Ž}}Šrr‘tt“ww•uu”yy–zz—~~‘||’{{˜~~š||™‚‚Ž……‡‡‰’‚‚•……’††•€€›‚‚„„Ÿ††ž‡‡™‰‰–ŒŒ•ŠŠ™ŽŽš‹‹’’œ’’—‡‡ ŠŠ¢ˆˆ¡¤ŽŽ¥ŒŒ£‘‘§””¢““¨––«••©——¬šš£šš­œœ¯žž®™™ªžž°¢¢¬««®¥¥§¡¡²¢¢²££´¥¥³¥¥µ§§¶©©·ªª³««¹©©¸®®»­­¹¯¯¼¦¦¹±±¼²²¾´´¿¶¶¾²²»¿¿¿¹¹½´´µ··ÀµµÀ±±Æ¹¹Â½½Â¾¾Å»»Ä½½ÊÃÃÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÆÂÂÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÊÊØÛÛãääíòò÷þGåI‘ A‚þô)æ 'Lš1bĈ#FŒ1bĈ#FŒ1ÒÄIŸCžtæ«"O¬|ýâ¥Ë•.^¼~ Sv­\¹råÊy+wN”'O¢4!$HÐ?`¾Lq„‰#FŒ1bĈ#FŒ1bĈ#FŒ8™RÑ(MŠÒ4j˜³cÁxñâÅ+X2g׸•+Ç›·rçxê´I“"D‚ ÔÌ(Pœ0abĈ#FŒ1b¤‰#FŒ1bÄH&N¦|ù¦ ˜>ž’Ms–lØ/^¼x S6í7nܼ;wŽ—+O61BtèСC‚ü€™Š&L˜þ1bĈ#FŒ1bĈ#FŒ4aÂĉ'Nœ|é3ê5€ÓœûÅ‹¯aʦ]ãV®Ü¹sçε5ÊS'MŠB„è =Sœ@q„ &FŒ1bĈ#FŒ1bĈ&L˜0qâÄ 0ІE£FÍÙ°`ÂS6í6nåÊ•+wî\®V£e¾€ùÓiØ´lÙ®M£–-›³dÄ”M›6ÍþY²cΦMã†-Û4eÂ%;v,¯Q4!ú³çË'N˜0YREŽ#.dÈР7nŒ—2£œeãÆ7oç¸MsælÚ4gΜ9›–-Ûµrå¼e›æÌÙ´iÔ¨9Æ  +OŠùٳ̗%—ؤ˜Ñ!-U@B (V”F¹B‚DÑ4nÞÊqãÆ-ÛµiÓœ9;–L™2g×®Q›ÆÍ[9nܲ]»– ·lצ9K6Œ—§NŠùp'Eˆ (Ár&Å'~€òµÉS¡"HØÊÆ[¶lÓœ9s–ŒØ°`Ä”)s6mµiܼy+wŽ[6nܸaËÆ[9þnܲK¦ŒR . 0à˜EqløðA…M4F ƒ$Ò™bÙ²]›¦lذa¼téÒõkX2eΦQ»ÆÍ›·rçÊqóV[6nåΩS§N·lÊ´P@BÆBI’↠UPI’¡Õ&)N Ã-Û´cÁtµ5J”¨Q¹tñJЙ³i׸y;Wî\¹rçÎyó†N;yôèÑSW.‚ìpiƒÁ€<€€A (>\Úgn›—CUòd›6¬•¨Nš4iÒ´©“¨\ÄœM»–-·råÊ;wîÜ9tîèѳg/Ÿ=zÌ(0`Ð š €€ þ0¸p Cìx1r&D±aºFyêÔIÓ&Mš:µâuŒ7nܲaãÆ›7oÞΡSçŽ={öòÙ£§%C ~ÉðáÁ€ XÀ…((D€ B)N>ìà¥+W®\®\éÕʯdÓ¸yãV.[¶lÙ¸qãÆíœ:uîèÑ£GÏž=f4disƇ ¨² @ƒ t¸á€Á‚<XÊ—’6lX²d¿~Kæì·rçÔe£v-7nܼS§Î;wòèѳ·Ã\"0@@ÁB#+<2¤PÁ€+l²PX€°ZAÙ³iΔ)þsæL™²iÓ¸sçŽ^¶kÙ¸qãÆ›·sçÔ¹s§N»j 0p0ã‚üÈ‚à.„˜1£ š ,Xà ‡™%neãÆ-ÛµlØ®aãVîœ;zôÜaÃÆ7oåÊyóV:u缕ӂ`Á°Ø`@€>üäFÌ * p±Â`Á‚ PBr#:uîÜ©S§N:uîäÑ£çÎ7nÙ¸•;wî\¹rçΩCç-Û2 !„0`0à$6 0 Â,7îЊhÅ‚C(,8Á HÌDx—/_¾|ôèÑsçN=zôÞ½ÃvíZ6nçÎ;Wþî:uç²M£Ã@F ¸D‰Ç r°P‘£ÂN*J—ÈÈAˆ Ú, qFI„Söìé³gϽwôÞ½{÷îÝ»kÓ¦]ËÆ­\¹r引;ç-Û4 ¸0`€A€F’]zD+Î,TV=¢"g£8'@t€À–³d ˆñîÝ»wïÞµc÷îÝ»wïØµãvmš³dÇœMˆ-ÛµlÙ²!óÁ‚ t.¸C)Rª-¨Æ€ZÅ¥Gˆ oJašCÂÁ‚ Pøð†Å‚ÌÚµ .\¸víÚµk׎];uå°Q#¦‹+]ÁKvÌÙ4:Tð„(§ y ™‰jÐþœE­0¥Á Ã*IN0`ÀÀ ,@€@O¸páÂ… .\»víÚ½{wÎ[¶iÊxyÒÔI”§Q®xýb'UvÞ0X'“!/³Ø€JEÍÖ '°‡ ÜàÑC‡b„ .\¸píÚ±{÷îÝ;zâÄy»vŒ˜«N6iÒÔÉ¥±f òh.xº *„*&`üÖñër‚Äd,pà`H#400@p Á¸páÂ… ×®»wïÞÑ£w]»sÙ¨Ó5ŠÑ!Mž< ²¢ÊŽ4ø µjËG‘(ÑÚ×Ê0`µ¶P Qˆ‚ƒ.ÑY0bþœ .\¸pÛµc÷îÝ»wö²Qãv·lÇty$"1·ni pÁ…7¨ÜP3¨–¤kë~°˜¬U*\Ês£ ÀUµVIzSJNªb´î{öüøñóç A‚!R¤‰„’bÝ¢V1Z´áHç­Y @9º$ JJŠäH2Á”€\ 3„ÅI7ô¼£—Ïž½|öòåËgÏ?þüùóç A‡HL°R§Ô­LhþŠ£E Ó + hÑ¢kU­U’0]*d&Ð 6 0À‘*. f¸¹ô£Ž={ôèåËGÏž¾|ùüôñã§Ÿ?üôéÓGÄ.jÑŠu©T±buP0€€ T*P‘fѺ…jÕ¥A^ÎT¹t—²¸asbTn0Õ£gÏž={öìéÓ—oÏž=}úôñãg0`J|HÁ–ŒXi¸Äqƒ€Á€ê¤ZukU A±L­É—@—n,H„M.=º0`0ë)zöìÙ£gÏž>}úôÌ0`À|ùòå 7ÚØa` Ž$Gh 0`@X³nÑŠT(͈RŽâxþ4¦Ë …¸`y4„1µä4£gÏž={öìéÓ§Oß”)S¦L™2 (P¦lÈ‚ƒ* ¨ì´áAˆ@p Õ Bf€€°Ó¥KœAK¸0‡18h3‡‹·sêäÑ£Gž,Èe‚,H£\¹rÅþËY¶kÔ®qc„ &L˜0qâĉ“2 ¹5dÖªKYB 3(EÖb -6* )$P$º¤0ãÁ‚2˜bƒèÐ!M¢\sF5&M˜0a„ 'N |Y ;!œ¡º3`À€<Æ ðC’¤[<Ø`²#Ž ð\òAAˆ ;3Bt¨¢bš}üü¤È“.gצMc„ &Nœ8òÌd°Á!P@€ J€t r3„Ž7±¶<(AŽ£hìèÑâÉ1$¸ ðÒçÏŸ?ŠF›–-7&L2qâÄ ”)_öøù“#@þ<Lab0`€• 0ÀM HªXعą0 ÂD(`˜ æšþ(R¤hS«_ÇœM£æÊ”/_ÀìÙÓç DplÀ@Õ,()‚aÀ€nHš‹ ,müà2¡HràxÃ>RÈØræ&O¢Fr¥‹×/]_ÀìñóG"DšF¹jEé† nõ«`‹"$ì PG†JI‚TÁ ,†°‘ƒ‰Ç6v ÌðÂÂc‰j¥Ë—+WiÒ´çÏAˆ)Ò4Š—²d—2Èpó&Ï5H7Ì(â‚Bž ìø Ô­FþZzì€@¨ÑŒA’nì8±‚)O8¸€"’®_¼\éÒ•KQŸ={úüù#‘"EšDéúõË–t2±¡–‡‰.sà\’TeA/rFÔQ…IˆJ<|¸hƒEÇ)2LÀâ%ƒT8åòtHСQ¢4íùE AˆiêÔ©Ó¨Q¢D)ùp"T@*ëQ/r€À“…Mˆ•,­(µ•6’HŠ”ç/^@|ÐÁbÓ¦>eÂ|ù£IQ™)L4iRÄHS'Q6iÒ¤I“’  $À´ã&L±$ÅñâN¡6nŒ˜ æ– Z²pT!bK/gÌ1¨€ þþ”ùòå ˜2~ú„™âdS§N:yÕ©Ó¦N-ÁA€ —b5R… U,/^¸À™€G€jhݺ…KÖ 17.°¨çLœUfà01€Ã”)S¾€éÓç0Sœhò4jÔ¨Q£DuÒ´©“"Cd”0°…¤Læ8Š…ÊK9ü r‚Ö­[´†ÄX°`,qâšåEG„-tLù¦LŸ?‡ù3Å ¢N­r¹j5ª“"Dˆ)RäÅ ‡Ut QuiI—h±tAË1 *ݪ“¦G… Ð`QÂШT†D0 â£È0`öôéÓ§ ˜/P˜ òÔªU«Q› úþóç¢NKÌè‹•X˜ÁQE¨”–*7n°¸##-"|Á`B\ä¤âäè*J L2åK˜/S¦@ʼn&Q£:mbtèÏŸ?‚)êT @)È,¡²ŠÖ¥AŽ$á¹Äåhv¨R5bÁ‚,, `fZ’@Ùð¡E‡'P Lâĉ'Nœ0ñ$ÊÓ&MŒB„HS§NÌ”ÃÄ.«nÑzT¨ÐLUH<ø@ÄÇS.8˜0A‡Kx6¼¹Åé7\–82åË—)S @âÄ O£DuÚ¤I“¦N:uêÔ)P06`y*-T’¼HzäCþ‹ ;xÐ)5‚ƒ NظC!šZµR½91cÉ”)`ÊìÙ³§ ˜/_¾@aÕª•¨Nš6yòä©S§Nž(-c!™G´²¤‰uÉ‹$-'"rÄEŒX`è€!Ç7tÔ©,†íé#‘"E‡íù`™2Áx¹%ª“'OžFµjÕÊ•+,HJÐð(Ö›L±D焤9Ž~¨é‘‡&´sËT³€e¡P…†«Qž@’ÅZ6jÑœ#ÆkT'O¢F¹%êÜ9oÜþ¨9#æËU«Vº†e“G9 2•J ÀTŽ0Ê0 P€À€ ŽVhôc ŨeË6-Ù¯_ºXyê¤I“§Qž¨Q£æ,Y²`¼xñvìš:zôè="sÉ |Àäˆ(\X°`À… Ð0hƒ‹%.(iC-µkÑx±5ªÕ¨Qž<%*Y2b¿†%lX²iÞÔÑ£'Ï]³*pñˆ°åÎB˜Yˆ`À‚ @€@ÁÆl¨"‚ªŽs6ͱVš:±jÕª•+W®\¹r¥K¯_Áx s†MVPX°€‚%8VÐ!lذ`Ä”9›6-¯QXñJ6-›·lÔ¨eãæ­\¶d¼: úãgÏž?ˆµú"–1wŠ$Ð1Fà (° !zthåªcÉ’%SFL™³dɆñÊ%j”®dÓ®eË–-7oå¸kÕIŸ={úü9´©•®cÅ03Ç„,9 ˆ€A HÁ¢KuR£6Í™2eÉŽ9KFlØ0^®Ž•ìZþ6n×®Q›æÌ™2]íÙÓG"EŠZ9sælZ©Kày€‡L‰ $¸Ð¡$Å X¸¹U-š³iΔ% ¦‹W0bÉŽ)S6Œ—.^ɲS§,Ù0^¼xñj¥èOŸ>1b$*Ù´iÓœq«´¤’ȃ%ƒˆ mÈ$"$ƒW˦M›¦lX0^ºréòÅK™3gÓ”%S6Û9u¿\ÊõkX°V‡ úó§OŸ?‚\%s6Í7t™’ØÓÁ—ªlƒÅDDˆ -ÛµkצûŒ—.]¹t%s†­7lÔ¦]ó6ÊS«dΜ%5j"?{Â|ÓGÓ(]þÁ’M;çî–2](¸ £ Ó#x§–hÕC§NݹiΜ9svì—.^ɶq+WÛ4gÔZñrFmš2bÉx‰æË(_Àô´©/jåÐÑ«fF‰/U.=Â2`@€à°f=zöòÑSWŽ[6n×”ó¥KÙ¶lܰ]»ví×±iÓœM»æŒW§?`¾L™2å ˜?Œt)›6-›:zâPyâ¥Jð ºwïèÑ{gÏž={òÔSWîÚ4b¼‚sælÚµkØ’MËvÍ[¹kÃZ!ÚæË”/_ÀôA4JW°_ɦyCçÎ8ZvNDA<âÚþ±{÷îÝ»wïÞѳgOžyå’å…È@0a€³ç ?}üü9¤H‘&O£r%sÆM=zôèÑ£GÞ»wôè½{÷îÝ»wïÞ½{÷îÝ»wöìÙÓgÏ^¾zõêÕ£‡Í×(OšùfÏ0{úìÙ³§L™>‚iòÔŠ—3nçäÑ£G=zôèÑ£GÞ»wïÞ½{÷îÝ»wïÞ½{÷Ξ={öìéËg¯^>g¹F‰Ú„èÏ0aÀì³g>O0`À€)ÓG¦Q¾œs'O=zôèÑ£Gž44;99>--C66A55D44L::B::E==F<>I>>M::I66S==S>>[==f@@GAAJBBMEENEEJIINBBQEERFFUBBVEE[IIVJJSJJYMMZNN]JJ^RRVRR^RR\YY]DDeAAnBBoDDlNNaKKcKKjCCpFFrIIrJJuMMwNNvLLrNNxQQaQQeUUbUUfTTlYYf[[cZZiZZm^^m]]jVVqTTtQQzSS|VV}VVzYYv^^r^^u[[rXX]]z\\|aamffkbbueeqffuaaqbb}ffzff~aazkkviizmm~kk|ss}vvxZZ]]ƒ__„bb†ffddƒff‰ccˆjj‚jj…mm‚nn…ii‹jj‰kkiiŒmmŽoo‰oorrqq†vv†vv‚rr‰uuŠwwqqŽzz†yyŠyy}}Ž}}Šss’qq‘tt“vv•vv•yy–zz—}}‘{{’{{˜||™›}}š‚‚ŽŠŠ‹’‚‚•……’††•€€š‚‚……Ÿ††Ÿ††˜‰‰–‹‹•ŠŠ™ŽŽ™’’ž””˜˜ž‘‘–‡‡ ‹‹£‰‰¡ŽŽ¥¢§’’§––¡’’¢’’¨––«••©——¬šš¤šš­¯žž¯ššªžž°™™°¢¢­¨¨ª¢¢³¡¡²££´¥¥µ¦¦¶¥¥²©©·««³««¸©©¸®®»­­º¯¯¼±±¼²²¾µµ¿µµ¾²²º¿¿¿½½¾¹¹»³³···ÀµµÀ¹¹Â¾¾Å½½ÂÃÃÃÀÀÁÁÁÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉËÊÊËÊÊÌÌÌÌÊÊÕþSÅJ5Ê!B„*CfŒ”(O A‚ $H A‚ $H Aâ$ŠE©€5S6 &P±†l0`Àˆ5«ÖMܺuëÖ‘[×îÔ¨S§<1"DˆP @eÆT‰òä $H A‚ $H A‚ $HœD³†Q)O˜)ò”JY5gȈŒX³jÝĉ[ÇN¹u퀥Ê“#E„"ô§Ì˜*R¢¨¥Ç›š)S¶LY³eÀ)kV­›¸uíÜuëÖí›8qâÄ­kçNž|øêÉûÖ­[7qëÚµ[·þ®Ý;wíºeã§È>zv•š´ N)\œp« .<‘ y¹¢åÇ&m ð`±VûöíÛ·o¾zõêÕ«W¯^½nÙ²uë&nÝ:rëÈ­[G®[¶/_¨,N$H\2´©3Mzˆäù²)Ž ,À& Q¯^½zñâÅ«W¯¼zõâÅ×-ÛµfͪeëÖ­[·nݺmû‚ƒ Ej™BA@G­3i,Mêòዎ’°\pà`Á*tXA‚ÔâÅ;wîܹxñâÅ‹/^ Á‚uìÚ2=q¼è¢3h† $Pp ƒéÎ;/^½}ûôéÓ·o¹xõêþ½ç Ø/`ÀFÒµ {4iacèÂPÔx`ã3f»ŽÁÉò .€•*±0q䈋X‘"ݹsñâÅ«§oß¾}ûö!ÛFN\:qÛœ›5ë×(E­8ù @L1gêdȡƚdè*%)3KD<à ̑&GL¸¸á@!´;/^¼zûöíÛ·o߬XÀ€CÖl2`³b²³gRx°Ô±SªÔ!:¯ráãC)X»\1Ë•ÂÁ)hQâ"8ƒ¡×¹sçâŃWoŸ>}ûöýŠ+Õ¨YÀ)ö Ø/<“°ä 1©Kš]•$ÝÙþd)/I!"ljuì,M),ppÀŠ&(ø ¡IŽH ðœ;w.^¼zõêÕÛ·oß0`Àf¥ŠL™2`À”)#ò…Æ-­Õ9f@W­ZÙâũƒ:¹vñÒµ'Ń8 Á%4,£- –sçÎŃW¯^½zõôéC °_³b:•ê°aDd¡ñ!.[¼,ÁJTjW.^|8ˆk×®]¥ÜD(@€€ƒ+t^(8@@C–Ó&IwîܹxñâÕ«W¯ž>`¿~ÅŠ• ”#EŒ<ý†§ÃlñâÅŒ¬M›JUâ•)D°`mÚÕªTT@„ƒþHh Q+R–rçÎ;/^¼zõêé‹•*Õ¨Q£@9"DÈQ*W=h|‘€a/^»v1óâf,K¶º€Ù„«Ç D°vm"@à†,´¤ pF ˆVe)w.^¼xñâÕ«WoŸ¾Q£N5 (OŒyU ˆ,"èy•k×®U?zhʃ V$9Lf ÀÂI,(ÒåÀ=,„!ÒKêâÕ«W¯Þ¾}ûöíÛç ¨Q§FjÔ©T_*èÉáàÀ X¹xñš4cE>›4iâóƒšðТÀ-n¬¨t™!BxéÁ­^½zúöíÛ·oß¾þ}„1rä ¨Q F:$‚œ`hul/>3Üäqé']X @€Ž+#çÁS_`c£½êÕÓ·oß¾}ûöíÛ(P @„1bäÈ(P+"pZAà@VÌz1ã#§Ž+ D¼zÕé@dIC€€Mqð¨ä*‰Jxfé°W½zûöíÛ·oß¾}û (!B„1‚ä ENrDà³ë3fFˆ¸råf^Ç6e8à%„%ˆH€0 ȃb¸`ª–9˜ÕÇß¾}øöùÛ· @ (P BŠH€á„‡À<¹þx1cÂXE0¬’ëS…–"]" D3B8ÀrÆT µ6u邃ھ}øðíÛ·oß¾}ûýè @ýù󇆜Hn ,ÐS Ö.f6`±%GޤK«ŽaÁ(Ò °º€X¥Æ;gJa耫”šA¸á÷oß¾}ûöùó·Ï?~þüôÇO™2eˆä "çÀ<­`ébæãÁM•îÐÙ„çM«84á ÜÄád©+9ntÝ)$7|øöá«·oß¾}þü•)S¦Ìš2eÊŒ3fL›A(I8°Å’$J”.88€¥–¡\°.Dè$@8ñþY@ÀÁ\–*mêá¦T¢RX¾¼Ã·oß¾}ûöùóçÏ_•1UªT©REŠ)RªðÈ£gË) YªBXØlÚtiE98Ð#žüøRj“¤+ IÚâ#O9wòäáÇŸ=wîìE‰%Ê“(Q¢D‰"E “°$8ÂR©( C,W‰ ÀB‚ÀYì° á`E—¶.YÊðC †.zrðV­Û7ríÜ‘ëÖÜ“'Ožì:¶ÊP­ àT8@ ‹!C |Rc“«R'"añ± >©fÍšþ¬Z·nÛº‰{òäÉ“'Ožì•§…—H3º|XâDœc8XB#Î%S—.‰xð Å8Ri°jÛ¶]{âäÉ“'P¢D‰2¦ÌŸxHœxÅIS @ È.\[˜HÂR‹"‘ôáÀ nr JT Ž @pDxñ'P @ŽR!Ëö­›¸'O>%Š”*cü Äþ€¯`É!à€€ÑÕJK“:DÜÙ°`Aˆ v²@¸áÃ6ƒx )…,/9bäÈS,bͪeëEJ•1cʬñã'!Fjz€Ã) 8p B…V¦öd±Ó‚€!<8!IÒ† 52tsH–0Añ"'P§R¥š 0`cÊøˆ"F RÅŠu)ǪW|ÄñààCX`±èñÅ6,øÈ’cÁƒD }ø@#„ƒ3w"¬qãD—gŠ °X yòä'P BŒA•ŠX´f£xpÚ’a—'f '×.:,h¨1Óe†ˆþX"‰¦RŽ `¸3è‰Ð(A 0bÀföË ?~þ*DÈ‘#G Ný"FlV xVDrb‰Á‚%†I¥àTÔfЈÜ9(@kÊŒùãÉÑ)O yrɨS£@òäÉ“¢ °LÊåÊÒ±R—ÔœÉR ‘ "dYucÈYyÉAiS%Cm*er!Òþ­3f̘2ü©ÅÓ(P @ (P  :`…&\»víâ4È‹˜3H`©€¡€¯úø’$ , BԸæ K~yA€C•*cÆ”ùó' 2U¢x•*UªT©Fòä ”£?g4ø1iM¶ìðHãƒÈ :*`1Â¥ˆ8 *D8`£Bˆtî$(ðâÌ…LTSÆÏŸ@Š*SŠ#P±~ÍŠ• ”#FŒAD¥É“vQâô Ö•n:Õ˜‘åÄŒ2"TÑ`†:èasÆP{´xY°àH•1eÖøñ³¦ ™1cÆH‰+Ö)Pž@5ê¨Q§@™á`A®E4qÊ•LŠ[ˆð1¤B„T¨pB¬Agö<ÀbèC–èøùˆ‘#F„ùCàš5È€ÍJ5 Ô¨Q§RÅŠkÖ¬6# ÄáDd¬V¶€tÓC<ˆÐ –4i"r†‰ƒ†Xäȱ@°T£F¥J•*•'A~ʬ)“­2`ÀfÍšë0`À”)‹Õdƒ¥W¶rÙ‚eK‰V­ø|!@`ÁƒRÈøâPgH,øá…€œþø4sÖŒ0`¿b¥JŠŸ1ݶe˦­Z³fÈ€¦¬Z·lt˜`¥ K'[·()XQ' `xPD]Q£%B…RXdq°àX¶lÕœ)6+V,`¿N9 $Nœ8râºe‹† Ø/`Îĵ“wiI‰H5iµê•ƒ-îàHð`Á‚ 8p€Â–A%€xPÇ lˆÛ¦­š³fÀb¥Š5ë׬S Ü½k׎\·jÄfÅÌÙ7wö éÉâæqZA`Å >èø!áBŽ.=5Ë–­ZµhÍœEk¦L™2`¿¦úÕ¬›þ¸nݺmËV­š3` ùñH‘#FŽbU‹-®4ux¸á´Dˆ j˜èXqbFi*ÈÂɰl×¢5 2eÍš9s¦ 0`Ѻµk­Ù2bÀ€‹å)Ÿ?Ar”ªY¶l×®‰{u¥ zì!  4D€Àé!‰™6mˆeÛM1`À~ýF¬YµkÙ¢E‹–­[;yÀfÅFL™²XŽ èÏŸ@„f5«–-›¸v¸´¨ir',qšaÃ䂃Y•šæ,[·nÙ®#¦ 0`À€5»&Nœ¸nÛ²u#—jT¬fÕª)K•*–#@~ÈŒ)ãR,`þÈšek'˜1bÚ´âçL$40a’& (qåµkçλmתU» 0bͲ‰[·îÛµjÝbË–­š³f΀"ägL)cÊü!ä °mëÜáÓÆŠDv®ìàA‚@‰$Xз>|øöás·N\7qÝ¢,Z¶nâºuëÖ ™³lÙªeë– ˜§@eÆT©ReL™@Ž€EË–­›;|òj‰a²dÅ•Z$P ÄÕ¹zõð᫇oß>|òÚµs·®[4eÀ5‹v-[·nÝšeë¶mݺnÄR)òSfL•1cÊüQ” 2bͲ‰{'O^:^D"X  ÃUçâþÅ«W¯^½zõêíÛ‡Ÿ=|îÚe‹V-[µkÙ²uë&®›¸uíÜ‘–ŠÑŸ2dÆŒ)ó'#P©bŠ¥ÌY7€âÖµ“W¯Þ¹rÔÒŃ'Ož¼zõâÕ«/ž¼zøðåË—/>wâÄ­kGNœ8qâĹ“'Ï]»fž*3fL™51jT*P£~)«Ö­›¸vòêÕ«/^½zõêÕ“W¯^¼xðâÅ«W¯>|ûöíۇϞ|öÜíÃgO\³Yž‘©2fL?1bäÈ(Ož<,ÚµnëäáÃW¯^=|õêÉ«W¯^½zòêÅ‹/ž¼zõêÕÓ·oß¾}ûðá×ÏÞ>{ëšý:¥À2cÊ”)ó'¡@bäÈ‘'P©f5«&Î>|øðáÇ_½zõðÕ«W¯^½zðêÕ«^½zõôíÛ·oß¾}ùòáÃ× X*Pžý)3fŸ2~þüñãgÍš?„y• X5qíäáÇ>|øðᓇ_½zõêÕ«W¯¼zõêÕ«W¯ž¾}ûöíÛ·o_¾k³R¥å(Ð2eÖ”)ãÇ>Ïš2eÊ”Yó‡§TÀ®­“g>|øðáÇ>|øðá«WO^½zõêÕ«W¯^½zõêÕÓ·oß¾}ûöí !ù€ ,Dd‡! !"#%( """###$!!%$$&"")%%)&&-""/((*)).--.&&1**1--2..6**5..9,,<11622411:22=55>55:99?,,A66A55D99B::E==F==B>>I>>N99J55J==R==[66S>>f??iAAGAAJAAMEEMFFJIIMBBREETFFYCC\IIVJJSJJZNNZNN^JJ]QQ]RR[YY_DDdAAnBBoEEkNNbJJdKKlCCpGGrEEqHHrJJuMMwNNuMMqOOxRRaRReUUbVVfRRnVViSSjZZeZZjYYn^^n]]iTTsQQzSS|VV}VVzZZv^^q[[sXX]]zbbmfflbbuffreeubbqbbzeeyee~bb}jjujjzll}ss}rrvZZ]]ƒ__„aa†eeƒff‰jj‚nn‚nn…jj„ii‹kkŒiiŒmmŽmm‰ooqq†vv†rrrr‰uuŠvvrrŽzz…yyŠzz}}Ž}}Šss’qq‘tt“vv•uu”xx–zz—~~‘{{“{{˜||™~~š‚‚€€‚’……•„„“€€›‚‚……Ÿ††Ÿ……™‹‹–ŠŠ™šŽŽŠŠ’’ž““œ››Ÿ’’”‡‡ ‹‹£‰‰¢ŽŽ¥ŒŒ¢‘‘§––¡““£’’¨––«••©——¬šš¤šš­œœ¯žž¯œœªžž°¢¢­ªª­§§§¢¢³¡¡²££´¥¥µ¦¦¶¥¥²©©·ªª³««¹©©¸®®»­­º¯¯¼¦¦¹°°¼³³¾²²½´´¿¶¶¾±±»¿¿¿½½½¹¹½³³µ··ÀµµÀ²²Ä¹¹Â¾¾Â¾¾Å»»ÅÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÉÆÆÊÈÈÉÉÉËÊÊËÊÊÌÌÌÍÐÐÜÜÜãèèíþY±*Š!B„Jƒ•*R¢,Y²dÉ’%K–,Y²dÉ’%K–,Y¥  D¥|#æË#O¬výÚµK×®]»~{†íÛ¹sçΧ®T(R¥:)"Dˆ @iÐd©"EÊ’%K–,Y²dÉ’%K–,Y²dÉ’%K–TÉò'Q¨N•ÚTŠØ3dÂ~íÚµë×±iؾ};÷í¸sêv•òä©#E„"( š,VªH‰²dÉ’%K–,Y²$Ê’%K–,Y²dI)T² A“ÆM@¡ŽU{vŒØ¯]»~[6 Û·oßÀ©S§n+R¡<9R”(Q"B„¥ÉbÅJ)R¤þ,Y²dÉ’%K–,Y²dÉ’%K–D‘"…J•*UªdT Y5€Óžûõk×.b˦eûöíÜ9uêÔ±bU*”§MŽ%R¤(‘ ?YªT©"EŠ)K–,Y²dÉ’%K–,Y²dÉ)R¤H‘B¥Š•4ŒˆQ«Ví1aÄ„[6 [¶oçÔ;wN.V¥B…ò´É‘"BŠ„ÆJ•*R¤D‘²dÉ’%K–,Y²dÉ’%5j,‘"EJ•*U¬¤Q´ Ù´iÓž;†ìرgض};w8pß¾ ÛåŠ)OxG4¼à0Å€ 8РA„ˆL˜ 3̨HB„˜Ž#FLرb»v; Û·sêÚa«†-Û·oß¾SÇ|øð«æÍ¸nÕýҥ˕§Dª&ätÖ€!$ud›e«„ ²hÕ²d(…˜C3Nœ¨ÐcHqr÷îÝ»yøðáÇ_-V»víúuŒØ¯]®X…¢ÄçÀ|øðébŪT(V»~ Ûµk—«ZsÄ\z$êÈ€b þÐÀ„+¶¬JE©ËBl(UHV,[>¬YÃH +ú¼#GîÝ»yóæÍÇß®]»\±bµ‹˜0_»„ ƒÔcˆ%Y²H bG@.lØ0  Q´hÉ:Ò`À€ž0퉕iA†´1³åräÞ‘{7oÞ¼yóðáûµë×®]®J•*UJ×.adt± Ò(ÍIE¢„ ÐIÖª0 È!*jÆPdqÇœ`]Hh)Gî¹wïÞÍ›7o¾]»\±bUÊ“"BŠ:¹òEdÀS· 9tiÕ,[p"48p Á{RÉzÔ Á'Ëhua%jþÆ +8ÜQ&F œfäÈ‘#÷îݼyóæÍcEŠT¨P¡<1"DˆQ)W*@˜Ã'žY¢DͺuÊBƒ 48á ¥T \°C¬˜CƒÌ89@ÁÂ98VÁõîÝ»wïÞÍ›‡¾P¡J‘   §MŠm ÅJ,,°)d,S¦[·bˆÐà@ƒ¼ø± Dyhù»…§ % p˜¤$ÆÞÍ›7oÞ<|øðá÷ɓ§P¡By å)©R†º4ØÀÂT·ôô1fkÖœ 0`‡'x(402ˆØ?c‡ÖP rÂ-.º@@âlÞ¼yóðáã—/_>þ|„)b´iÓ¦P¡B•"¥åÈ l¹¥LÏ­[³DÙ‰ÐàÀ€ˆ“jBƒ-vˆõKEé ¥GD¸D„.ÞæÍ›‡¾|ùòåË'H A„)RÄhS§M9~@€Ð eÆ„ÙqÇÌ 0`€†=«Fxd¨V:YyÖ ú5b$œ ÐÜ<{øðåË—_¾|ù$H!B„)b´iH— Ðt W’! ntySHLƒ €0‡Öœ{2­¢K”™6º´¸HÂÅ-s¼Í³‡¾|ùðñË—OP A‚ $H!B‰†À9Ð`€UªþT‘iÐà‚%U™öDpà€aˆÑ³G&Y°­1 “‘TqT”`¡©>|øìåˇ?~ù P A‚hËœ4°˜¥ê”œøXš#d• h0$°G{dÉ’%KD£DÁÅ'‚ ÆÚáÇ>|øðáãÇïÏŸ?€ èOš4iŠtaU—À<âp€O&Uª ip Á90Í(YÊÔÉ’4ˆ&Déð ùX;{öð᳇>|üø¥I“ÆÍ7iÒ A“Í—l(r玒GATÈzD‰C1 hÐ Â#J=HþX%Ë0Hƒ¼à9Odbµ³‡>|øðñãÇ_4Y²dÉ’¥J+V²Œ!3 @8P.½1tŽ,J”@ 8ÐàÀ "YãaÀC«É’„H’’7rˆ”èR$8vìàÙ³gŸ=vìàU©R¥Š”*UªT©bÅŠ6ТäR!C±V¥:¥Ê 4hЂJ# ¨cl-3oA¢ƒÍ‘Y{tÌñõ Û7pêØ›†í›)R¤H‘"E •*Uª¨a3`À'fædóh–œG™ ±é¢â„ DàƒiÅ€uh£UH ”5Iðè`I-¥\¹rõþëY¶lÕ°}“"%Š)R¤H‘B¥J•\.p€D) ‡Rå¡ÊÉžL.œˆhР‰G™DLÓE”¨U˜Aé2Gˆ…b4@ø¡ˆ¢M¥\›†mÚ´(R¤D‘"EŠ)U² écB¦K˜.iYðH‹>©tPÊ$„ $ XhóèÅ+àˆ¢4ˆ’¤d,\ÐF€ "Ä(Ô®gتM‹EŠ)RªT©‚&M 4¬¢”¥s2i¸4ëÈ#2êÙÃEˆ2©~8æÂ¥Uwa!$‘ E&ˆ AŒJ ›–-Û7)RJ©R¥Š•,hþd@þQLXu)%{Tñ1²…L-v íaA„R›¼ü¨#ʈ bv<"Ó€„21bĨ«_ȦMÃV¥J4hÒüùH!Em&„Yõh€Xd.]ÃçRª5k ™°s™Q’` ‡;«.\È¡IÅ#  DЦP¤J•bµk×®]hÒü $ˆP"EJ¹beHU´Vø"c&9”„òBé‘JCà@ÒÑÎ#&D ²êŽ6|x̉ÐàÀ`•bµk—.WmÚôG BŠ9ÚTjײc°ThâIG€ÚdºÄ…Ë„9mmb§…žKþBÈPb1`À"³&¬ÃÄ €Ò®_»\íÚµk ? DH#F›Jí&,˜ˆ#N0eÐ2 È—LuVˆY1A M~ 3‡Ì—5˜zh3H‡?@XˆaŒ„F¹ Eˆ!R¥ýAc…!BŠ9òä)T©R¤<ÉØ€gÏ>G(yႃ—"2 °ÅC„–$\îSèÐ#J´DMÐCêÀÀ“'@iР´‰ÑŸ,Rmbäh“§P¡:mÚ´iÓ l2¥Ê$êQ›8ÈôI2b„Ì)QâÑ#1*¸\´êRƒ?4Lhð‚Lþ¥Aƒ 7€þ ±B¥“'Ož<… Ê“'Ož¹‘!!•-[³0AzrØ¥ ´˜B€A6´É³§ˆ8útp G†¼À90àC–,YФùH 4Yªl UªT©R¥HyÚÔÉ#BT4ì vJU1PVëCbÅ„ %nèØ#ÆÅAZ Ab!BHô8À[ŸhdA“& A‰J“E #O¬tébUÊ#FŒ1J¤f `±d­3F‡­[<Œà8pCŽ/&„Xha„LÈaˆ^0ƒp@ 4iþ èO4V¤( UŠ«R›þ$ˆ"OkÖŒy´j,QFŽÄŠ…ä ‰d.i¸¡ƒ…"@8°@ !Ú„1pà ¨d±’M4Y¬X±R…Ê&R¥Bmb¤H A„1ò”È À1wì¬Z%jN=ÆT‘@N 0Xˆ¡Á!z¼€Á‚¤0"L8p€C•*V¬X±R¥J•*UªH E*T§MŒ%R¤h“'Ož6™3†Â£T³æ ¹‹‹ z4Pa¡A!±a ÑÀ…RT©’ š,V¬d±R¥Š”P¥Hyê´iÓ&Ožô1FÄ4h¡‡<”f@8pà@Ž0/RD˜¡O¶jÔž!;¶«T¨P¤J¹*Eªœ:pÝþª=;æË+W»ˆecg¯ xCF‚‡I@€ÂôXóÆI‰ hAᤇ†˜eË6íØ¯]»X‘ò´©S¨R¡®U«†ìر_»ví"¶ ;zöìYfŽ,L—DôaÄ "(1á‚ ;x$¹8p @]ö™ƒ„Ú´jÔ~±*UŠ«R¤H•*EêØ±c¿ˆ#&ŒØ±iàØÑ³^³=©Ùz釆%V@x …BX@PQhÖ(-Lp‚‚Ò!fh![6í1V<±bÅŠ•+W®\¹Úµk×®_¿v{–M={öృ§ç‘ž;kžìþ1…Š „h@†‡”Rå’b‚ wÆÀ¢Fì1bÇŽÛ*T)Wºt¹ÚµkW)W»|íÚµkׯgßÔ±cǮݷi·ŒØ¹cF‰¡ T˜à°¡A8X Š,JžÈÈ`¨Í/j¾„#ö‹˜0]¡B‘bµk×®]¿ˆ¹ÚEl—/aĈ[VíÛ¹sߪíÚõìH,xeRq`ÂLpAdÀ¶l­jRÈP(ÕB¦‹2dÈž=#Vj#O®v #†lÚ±cÈžMû† [¶eÇž\†L)G¡t­’a¦F!Y\80à€† 98pX a¥=P”ÌX!þ¦ ¬Z¾„CölÚ´lÙˆ±ÚĈÔ.bϰ}«6mÚ´lßÀÃFÌ©Pž ¤h+2Nj`yäbÀ"h“ƒƒ‡Z¤€²¤I3löˆò%Œ1aÄ–=›6íØ®RžXí:6­¸lÕªeûî\¶c»:%$ÐAŠ6•Ú%FÉ›Cb@˜a  l8p€P äù¡aÔ¨cÇ–!CvlÙ3dLjíÒEªÔ®cÓ°eË–-[7pç¾!s剠? Jä‰Õ®e̼,Ácˆƒ Dð0‡$rH€ðc”s!›6í2dÇ-CFŒ±]®–Òu¬Zþ¶lتU›öìÙ²]žýùˆ#EŒX=[ölÚ/#M(ٹäY=X¬à0K &ôØ2¦‘°gÏÛµk—°bÇ-CFl×®]Ⱦ©S·ì±]»~íbÅH @‚mbTêØ´iÑž}ƒµe‰™Gb<¬À´f—9|Ä"Ò ŸZ•|M›¶ŒØ/_»\íÚµ Y´iÓ–![6-›:v¿\•rõ‹1VŠ$ @„\›6íY6uµ”41sêÉ£C]X H1Á@L°˜Yu 6lÕ¢ýú%l×®]»v›¶íÛ·lÕ¢aÇ*«cÏž+Uª”¢@Ò Aóg«]þÂŽMSÏ,{ºhy‚ )^h³Æjá©cÇŽºiÑž={¶L˜®]Ǧ};wnÛ´gÕ\ízVmÚ²cÈv‘"”M–,hÒ"´)Ô®jçØÙ³æÊ—DX¤(²¢=Þܹ†Ïž={øðÙcwî[¶oØ–íÚµk¶lß¶a«†í×2lÕžMÃöl×&AiÐdÉ’MAŒv!›6-;xí`!!ƒ„ (P¸€…U»yóìÙ›g_>{ôØ©kwÛ²b»~{m6lÛŽMËV Ü9l¿X)”M–,hÒJTj—°_Ǧk¹S\H¬ø abåÞþ½›7oÞ¼yóæáÃgÏž={ìÔa[ö,Z´hÓªaÃö-Û·sêØÛUŠ 4h² IH#O¥X‘b% 6€àΩƒ7oÞ;sÍ̽›÷Þ¼yóÞÁ›÷î¼yöìÙ³gÏž=vß¾kwîÛ·oßÀ±ƒݹc›B“ š4)Úä)T)O¤X{†íÛ·sðæÍ›÷îݼyóæÍ›7Þ»wîÞ½›7ož={øðåÃg=xôرc§N]¾|öØmsµ)ÑŸ,Y² qˆÐ¦Mž<…òÔ©”/bËžUËvž½yóæÍ›7oÞ¼yóæÍ›çîÝ»wóæÍ›7Ï>|ùòá³þgÏ={ðØå»GïÛ1W›¥É‚ š?‚1RÄhS§MŽ6…ÚµkÙ³lçàÙ³7oÞ¼yóæÁ›7oÞ¼yðܽ{÷î¼yóæÍ›‡>|ùòÙ³g>zçé"Å(À4hÒ¤IóG!A€ RĈ‘#O¥t{ö={öìÙ³gÏÞ¼yóìÍ›7oÞ¼yîæÍs7oÞ¼yóðáã‡/_>|öìÙƒ—mW©P›JƒÆ›4úóÇ@„m Uj׳oêàÙ³gÏž={öìÙƒgÏÞ¼yóæÍ›7o¼yóæÍ›7o>|øðáË—_¾iºJ•ò¤H›4iܤqóç>›4iÒ¤IˆÐ¦R»¢©ƒGÏž={öìÙ³gÏž={öìÙ›7oÞ¼yóæÍ›7oÞ¼yóæÍǾ|ùòå !ù€ ,Dd‡  !""% """# !##$!!%%%&"")&&*&&-##,((*))-,,.''2**1--2--5**5--911622911=55:55>99>22B66A66E33K99B::E==F==B>>I;;K==R99V==c??jCCFAAJBBMEENEEKIIMEEQFFUBBSEEZIIVKKTJJZNNZNN]JJ]QQ^SS[YY^QQUCCdAAnBBoDDlLLcKKkCCpFFrDDqHHsJJuMMwNNvNNrNNxRRaQQeUUaVVeVViVVnRRkYYeZZcZZi\\lRRrUUtQQzSS|VV}VV{]]r^^uYYtXX\\zbbncclbbrbbveerffubbybb}eezff~iivkksmm}jj{rr~uuvZZ]]ƒ^^ƒ__„cc‡aa…dd‚ff‰jjmmnn…jj†hh‹kkŒiiŒmmŽmm‰ooqq†uu†ss‚uuŠss‹zz…yyŠyy}}Ž}}Špp‘ss’ss‘tt“vv•uu”yy–zz—~~‘{{“{{˜||™›}}š‚‚Ž††ˆ‚‚‘‚‚•……’††•€€›‚‚††™……Ÿ††žŠŠ•ŠŠ™›‘‘œ››ž’’—‡‡ ŠŠ£ˆˆ¡ŽŽ¥ŒŒ¢§’’¦””¢’’¨––«””©——¬šš£™™¬››®œœ¯žž®ššªžž°°žž·¥¥«¡¡²¢¢³  ±££´¥¥´§§¶¦¦µ¥¥³©©·ªª·¬¬³««¹©©¸®®»­­¹¯¯¼±±¼³³¾²²½´´¿µµ¾²²º¿¿¿¼¼¾¹¹¼²²³··ÀµµÀ¹¹Â½½Ã¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÇÇÈÇÇÊÈÈÉÉÉËÊÊËÊÊÌÌÌÍÈÈÕææéþKµ*õ‰!B„ý1S†Ì”(Oœ$I’$I’$I’$I’$I’$I’$Iâ$ÊE£z ÆË“¢O­xõê• W.^½€ S¦-:tèСC‡nÔ§Q¥4)"DˆP ?kÈX‰åI’$I’$I’$I’$I’$I’$I’$I’D±ÒGÑ(N“ÒTjسc½zñâÅ X±hÚ¼yCçÍ:uêx•òäI£D„"äÇ +S¢d¦L‰òäÉ“'I’$I’$I’$I’$I’$I’'OžD‰%Ê3Œ„U³fí™0`€ ;6M[7oèСC‡N®V¥>}ò¤É‘¢DŠòcfJ”(Ož¼ÈÒŽ ±mÛ´cÀrµjUjÔ§R°på*ðÙ´iÚº…C‡:têÔy ·®l!&ø1,h!B.D˜ ’CyH˜ø‚À•Š 6LØ0a¼x +M›·pêÚi³¦m›7oÞ¼©[×`@€C ,0РA `ˆÁÅ‚b Óä@€jmóæM›¶mÝ´món¼zõàmÛæÍ›·tèÐ… §N]»uê¡ÃD ÆòP°€ 4hРA„ˆ,¨€fŽ‹*cHÀ¼vðàÁk§®]»vðàÕ«ž7oÞ¼…S§N:têÖµ[nÛ¶8AV ‚Õ¯/ ¼â@„ 4àIHn¬Óä…ŽLx‡/¿|õêÕƒ^½zõäÁë¶MÛ6oêÔ©C‡þNݺvê¶Ucõƒxù% CˆujthР7¿š¨ÁÐ@Å„0H&h0`€TøðñÇ_=yòäÉ“'O%šäQ– @àÇ!;at¼‰Ð Aƒ Œ¸óH’ªGD€þ Ø"GŽ9rß½{'OžZæ’$°˜° B W ¢Uë‘UhjX:Dd€:°ºòAÃ;¸2Â9rïÞ½“‡>|øðõÂ&N\¸qÓŽÃ… V©Aà¹4‰Hh°Yµh‰3k–ªT…ˆ<Úc¡Âœ=z´aâ‚ÀŠ,$°‘#÷îÝ;yøðáǬV¹råêU¬°\°Z"Ož DÀ@`Aƒ "h¡Të B•~Ñʳ£Í³¼ `Â0A¢£9räÞ½“‡>|øðájÕªÔ§V¼„Ë…+,;^é™°`Á \þ±`A &¡$YšjÖ(/.(±â€aÕ›¸³c‰`(‘#GîÝ;yòäÙÇ/^¼p•jÅKX¯\¼„ »‡V , @ÀÀ :"4hÀB’¤Z³$™æ&7F:¼ò¡F!uàqÑAKsäÈ‘{'Ož^¸pµ*UÊ#BŠ<µÊ…A±8XÒ’¥„Zܸ²Æ!Q³RµyõfBžq-`iþÂ…7hZý¨äsäÈ‘#÷îÝ;yöìák5ªÔ§OŸ<1"DˆÑ(I Hì¸p¡-V¬HLhÐ`0&lS+”*I&dñ×lÁ‚=³0Dxó+!Ú´!÷îÝ»wïÞÉ“‡¾O£Júä  'MŠiõ¨Aƒ J#VkU Üqóƒh‘I‘ÍJ`à° S Aæ ‚…—;äÞÉ“'O>|øðáçɓ§OŸ>yòäéÓ¨RwDÐ 1b©RÝiÐ`Á„! ,ø€&Ô£P‡NM ᆖŠ;_(5À0 ,¸yÔLž<{öðáã—/_>þ|„)b¤‰§OžF•ú¤eÁ ò#VëÑ£ ,ˆaAƒ’fY²tÉË;îd¸!Ó 0LÀpa—C¶äÉǾ|ùòåË(P @„)RÄH“'M5"Xa•-[µ]ªa Á4PAg•$I‡0X ¡A¾ðˆ jÄyð–<|øðåË—_¾|ùüø (!B„)b¤‰Eƒ ìaU‹Õ#=A,0@`Á‚ Ù¹dÉÎ7%"DˆD!$p(Ñ Aˆ:¡ðÈ«‡¯¾|øðñË—Ï? (P B‰À,ˆ°€À;þV!ÒdÇ‚ ,ˆ€á‘¥P³,!qDž@FD‘CB„À¸hbé ¾zøêåˇ¿|ùüüùãçŸ@üüùó‹Ü r¥‘4©Ðì ` Á‚ò„bÅŠUž ¾`‹€D„ q"` ñf1vrે>|øðñã—¯OŸ>þüñã§3fv,0R¡WòÌ¡u‡  4h !+V´h¥(ÂbJlh"”‘+#Hh©t… zõðÕÇ?~üø™1cfÍ3fÌ!C†Ì \Ȳ4FšT¡²¨±" "ŒH%‰Õ¯UþAfN;hhºb…œ:%ìШ‡>|øøñãÇŸ2V¬X±2ÅÊ”)S¬0!b«UsÀ„±”ê‡0DÞ”À€AÂI¬B©º´Âf—,Q% ¦?äò‚A uíàÕ«W¯½víàE‰%J”(Q¢D‰2eŠ6PZÅêY¬ÞŒPñ#K $D¨4HÍ#KA$ÔhfGÆ#I[ŠHhäׯ6$äàõL[7têÚy›¦ÍÛ“'Ož‰%Ê+dúø „¥Ãþª6o,zf–¥ShU³‡Fƒ7x\*Ô §´`ÀP¤V"’\D8al1b¤HS«^ÅžMÓeŠ2eÌôéÓ'!E[6\Êâ’¤G‡ =:„æF !8*ˆsg„$KcH,ÃJÈŽZÈZDSgBƒ &Ð &¦OŸF••‹¯\dÌôñˆP"EœJájuHEž<I ’§Î*~ØR$ޤK¬ˆ\©Ôƒ8´\ì™õh„;Y"4X@€l•j•‹¬VŸiÒÔ'P BŠ9ÒTª—²b’BœhÓAN¡BÀ±0awjI²SË—&þLH¨9D«Fž<4ØBƒ 8B/`¼`åÊ•ËÑŸ>}ü"DH#FšFå*ì• 0m õƒÀ0;< @`‘=’ô€sH—A¡XiyñÈ‚2Dh@€ &DÁúDˆP¢O£õ!c…!B‰iòäÉS©RŸ<1¹s'LI.ìùòL :d)Ä 0]æ„z”*U Y 4 C á“§?}Ì Ä‰QŸ)Q4ibäH“§Qž8iÒ¤IS/•RYºÄ£ƒ›?H,0`€ˆ–5ŠL˜ÐáÃV¡a¨±`Á *HX@`Áþ­!C† 3þ”±…“'Ož>}úäÉ'Ož9ÁŠ•¥K]vHÀSCà \xñ¢bC€5¼h‚bÁ C",B",h°†+dȘé(P 3V¢húTªT©R¥>yÒĉ£@<*Õš%I Fv訠eHrB„¨Á$̬;p¾D1(Kƒ.` @`Aƒ šX!cfÍŸ@„2c%Š"O­pájUÊ#EŠ1"„$ϬZ³˜`iQ#H4pÞ¤ªt% %&tøQIŽ/?h€ÐB`A>DhÐ 2fúøùó§+Vž(úTªU«Rš þ(P"OU´è™UkŽDja’$!+ˆ;Ò`B_TÀ°C-4X°`Á‚ ÄX™b…Œ2V¬L™%ЦR¥•*Uª”¦@}Ìô13í˜0^¹pÁ‚Õ /^¼€ »C Àž;nˆX0áщ LÁÁÀ‚/«*ÑYƒD„sبAãbþ î ;v¬W®Y°Z•*å‰P2Ö¬Y›öLY±bÀråâ5ì™6l,\d©Õ†H °œ @€C 88,r©Ò "tØ1æ,.,˜€áWµjÕŽ ã«U«\¸J1 äÍ[¸pÞ¶iS,W.^ʶ©kG$È/¬TxYÐÀ€ø’cƒ7¬ uè@àÊ è*0BƒŒl³6íÙ±b¹Z•j ¬RžÚ­S§.ܶg¼p•ÂūضvõnU@Ž-&ÜÙÀ` #$DˆpéR$8ôhPãÐ#4n4¸ ¡Ö8kÕž+ƫԧO£Jµ*UJºpãþ¬=Æ W«V¹„mƒWϘ!öáÁäÊ ˜P¢ÁtR‘ ¡¢0ؤ:¡¢ˆ%ªmÛV­X/^¹Z}ò¤IÓ§RŸ¬a³v¬X±^¼xñ¦Ìšºzõê©’”JRL‚D˜@€€$:4¨0(˜LhƒÎ!,.j¬hàfÚ4mÓzµUªU«RŸ>•5ªX±b½„ X±ièÚÑ«¶G—$ÙѱD 4Ø€Cˆ+ØH’dbÅ„ ¸ J3æF¨hk6í™°Vœ<µj«,X°`Á•+/`½z ‹Ö­½zõൃ÷ˆM;þˆPbDƒJ°ÐᢠIa"p AbУ:j$½j#©—°aÅŠ Ë5êS+X°`ÁÊ•‹W+\¼xåÊÅ‹¯gÞÔµk×®·iÄÄ4Ó„ #04Àp£‰zð¨ÄЇ iÄ ‘#©U2U³zÖK0\£>•j•+W.^½„áâ% /aÄ S6Í:tÞ¬ñâ5MR•(L^€aÁ‚A¼D  “W«L`²DÍ£G£& +…kسcÇž=VJ#N­rõvÌZ±bÊžMó¦mÛ4eÇž|v X)GŸp½ê²DŠ&0X°!Ë.L¨À†U1tˆÙRþHT«V¹„ +ölÚ´mÛ„µÒÄhT.aÏ´y³6mÚ´mÞÂ…Ó& Ö§Ož ¤HS+QOÆð@ @„$‚,ˆ #@ BB]j2FF,tD½‚ÕK˜0a”=›6­¯RžZñ6mœ·mÖ¬mÛ.œ¶b¼< ¨OŸ@Š4µ¦¦  bÁ‚ !tX1A ˜œÐÒhR)aÅ”+vìÙ³cÅ„ñÂ5ªT®bÕ´mÛ¶m›7o較剟>}þøQä©U.eǪÈà¡ãÀ!<>ÐA"À !60àÁÅŠ:“Z)›6íY±bÅŽ);&L˜0^°–ÊulÛþ¶mÛ´Y›ö왲\žõéó‡#EŒZE{ölÚ¬%KÔ„pqG";FœÐBbx„Óh’²hє땋°bÅŽ);&ŒW.^ʼ©S§¬˜0^¼€ñj¥)PŸ?9rTªØ4kÓ¢yãµd šhÙYu§Rœ.ojÔòãÑ#QfM›¦L0^¹páÊūسhÓ”S6m›ºv½`•ÂÕK°VŠ èÏŸ@„p{6mÚ¶u°–Dy¦ \ØpGË£Ôkš¶mÖžõâ,W®\¸r‹ÖÍ›·mÖži WêS«cÏž kUª”"?}Ê1ÓGS«\þÀŠmSïW“LNp€€‡Wêˆy¥bK¢cá©S×®ºiÑžE{V .^Ë´yC‡ÎÛ´gÓZñŠfmš²bÊz}"´†Œ+dÌü!¤ÉS¯mèÚÕÃF§B‰8±Ã„&~ć¯^½zøðÕk‡ÎÛ¶nÛ–ã•K™¶nÞºiÓ¦ ˜2kÓžMÓ6­—¦@fȱb…Œ™@Œr{fm[»zëðL @˜8ÃF|ôÚ©k‡N›²a¼€{ölš6mÝŠYÛf :m½Z)úc†Œ+dÌüIT*W¯^Ŧ…[ž8T8" @ ¢_æÞþ½“'Ož|ùòá«þW¯^½zðÚå»GÏ[1Xš™!C†Œ™5)JÄH“&MŽ8}ÊÅëØ³mêàÕÃ'Ož|øòÕ«W>zèŠÁÅÈ@3d̘1Ó'¡@ J¤ˆ‘£O¥`{Ö­]½zõêÕÃW¯ž|øðñË—/_¾g¸J•ò¤(PŸ2fÖ˜1Ó§>Ï3f̘Yó‡¦R¹ž¡£G¯^½zõêÕ«W¯^½zõêÕ“'Ož99>..D66B66F22C55K::B::E==E>>I>>M::J==R<<[77Z??i==eAAFBBNEENBBJIIMEERFFUAASFFZDD]IIRJJUMMVIIZJJ]MMZNN]SSVQQ^SS\ZZ^DDdAAnBBoDDlLLcLLkCCpGGsEEqIIsJJuMMwNNtMMqOOxMMxRRaUUbUUfRReVVjRRlYYfZZc[[lVVrTTsQQzSS|VV}UUz^^r[[tXX^^y[[zbbmiijbbuccrbb}eezff~aazkktjj}mm}llzqq}ssvZZ]]ƒ^^ƒ__„cc‡aa…dd‚ee‰iijj…mm‚mm…hh‹kkŒiiŒmmŽooŠooqq†ttƒrr‰vvŠwwqqzz…yy‹zzŽ}}Ž~~Šrr‘tt“vv•uu”yy–zz—~~‘{{”{{˜||™›}}š‚‚……‰’††•ƒƒ“š„„ž††ž††™ŠŠ•‰‰™™ŒŒž’’ž““œ‘‘–‡‡ ‹‹£‰‰¡ŒŒ£ŽŽ¥‹‹¤‘‘§••£““¨––«••ª——¬™™¤šš­¯žž¯™™ªžž°°šš²¢¢¬¥¥§¢¢³¡¡²££´¥¥´¦¦µ¤¤³©©·¬¬³««¹©©¸®®»­­º¯¯¼¦¦¹°°¼³³¾²²½´´¿µµ½±±º¿¿¿½½¾¹¹½²²³¶¶ÀµµÀ¹¹Â½½Ã¾¾Å»»ÄÂÂÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÈÆÆÊÈÈÉÉÉËÊÊËÊÊÌÌÌÌÊÊØÙÙáããêþI‘"å‰!B„ùAsÆŒ*R¢0a„ &L˜0a„ &L˜0a…JŸD¤p ¦k£M¤tõÒ…ë/]º~sfm[¹råÊ•óVN”'Q¢6)"DˆP ?hÎd¡"E &L˜0a„ &L˜0a„ &L˜PÉÒG©MŒÚDê—³b¿téҥ뗲fÖ¶•+·m[¹sçx‘ê´i“#E„"ô™,V¨H‰Â„ &L˜0a„ &L˜0a„I)X¬˜1ƒ† ?¤ŽEsvì×/]ºzCÍÚ¶mÞ¼;wNW+Qž:mR”ˆP¢D„þ ÉbÅ )R¤þ0a„ &L˜0a„ &L˜D‰"E *T¨dñCªØ4€ÑœûÕK—®_È¢YÛV®Ü¹sçб"%J”§MŽ%R¤(¡>Y¨P¡"EŠ)L˜0a„ &L˜0a„ )R¤HÁ"E 4Œ~A›6ÍÙ¯_¿~ý*ͶmåΕ+WîÜ-V¤  @[õêå³g¯Þ  \Æ  þ@’C‚.!ŠõȦ=°`Ñ¢F€.Dè°‚Â1D†… Ž;wîêÕ«W¯ž.]ºZ‘b¥ë×/]º~ýz#G 4i@9 e« ¦X±î<³GL*jÔ Xqè ž6.Høò¨‹ªpáÂ…sçÎ;wõêÕ륫—®[­H‰Eê–®^c0MØÐÁ…Ž4Šth‘G¨Å¢…j ¦uÖ¬16ŒH1—èàÁC‚…$—> ".\8vìØ¹«ç®^=]·Z±bEª£DŠ6ÝB%ä.@ÐЀ…Cl؈–/Z pX Ѥ`˜BL¸êþ•97(,iG,fáÂ…cÇŽ;wîÜÕ#åI”'Ož:1"Dˆ)=.@@±ç„>¤šc Cƒr"ÅJ…*Z|í³F¤Á ªdåI²…­¸H‚.ܺpëܹsW¯^=OžH‰òä `§MŠm%§@+â”aÂ9-6|x¡ˆ¬T—R­È«H™}ͺ4@ð`L¨0 4¸°Ò¡X§Ü¹s¯^½zõêÕ«·©S'Ož°xtã‘/g™ŽÌ›g¯^½zõìå³g/Ÿ? (P B‰X°–)Yþö|@¡„ V¤BU¨Ð™îŒiƒ Ó°${öþøñóÇÏŸ@þøñãGDTÝI%é‘B.<ØÐ`ƒ,IPè (€§‡©Gc"ùòà„|rG ž6rÔ«W¯^½zõìåË—¯OŸ>~üøùó§4h: X Á*LˆT)"äÁƒ äuèŽ \,Ðhé‘"¬ÐåÌÚµrçÐmÓfm›)R¤H‘"E *T¬¤ B—"@Ä4dE  @@@Â-Uk 0F’,TˆJ<¸0ᄊYã‹0¤Z±º¥þ«Ù5kÓ°m“"EŠ&R¤H‘B… Šг“¥K>X¨qñ Aƒ.P¡’Ôf‚€O`„AEæ1L(‰N˜ [™¤H‘¢M¢ZsfÍZ4&R¤0‘"EŠ)T¬˜I¡A¨B—@]zôB@ 4˜àªT‡V¹àC„')&¹Ð`Ã9c´ø0FMžP~"ÄH.dئE“EŠ)R°P¡bM]0©*„JÒ£KO‚ )²Bƒ "$B„J Ž`(4€àÂ'ÔlÀãXЩã‡P @ŠHýжíÚ6)RJÁB…J–,gúü CþœKöÔ™”Š  A€@hAD—:ˆ’sáÉ 9-&`8 DPü@€Áˆ1R¤h«^ÇœE³F…J3fаéÓ'!EOä„ÁgáB˜ä°ãMƒ‚‘”êP!2]¼4Èñ¡˜ {ôpy †ððÑ&£NžD‘j…K—.^fÐôùˆP"E›Hµb…‡Ë9y2hør€ _V h0"ÄŠ:´$µYkLƒ wÆôx`ªP [$€@Š's‰b… ×-Vž6mÚÔ'P B‰1ÚDJ²c‚èy‰Â.<0àb V‰ƒê’$Iþ©È4 ‚Ñ a`@ø€ xò®_ºZáÂ…ËÑŸ>}ü DH#F›Dáê¥ ’[@m@¢H @ÐàƒžJrIzT'Ô¨aAȃ  À…2=<áò”ˆP"Q¢õ1“…P BŠmêä©)R¢:©y • . H<É@ƒ$p¼‘³ç ™C‘ý€ð` Y¨lêDŠ)R¤~þJ´‰/dŰ@AÁC’œO† ˆ€päR$F ‚‹Í™3dÊ9+öëׯ^·’ÂUÌþ6lÖ¬M‹æÌ2]õéã‡#EŒX9sæ,Ú,KR<™EO¥7zxPHDjª2gÍÓÅKW°cÇŽ!CL.]ȶCçìØ¯^ºtébµéO?9bäéX´hÑœ][åd ˜K[¾ÈùBDM;Zl#§L¤`žœE‹†ì×/]¼nÝâÕ똳hÑ!C Û9t½Z‘Âõë×/VŒ ÈŸ@„ns-6t«°ø³@€† DÈ!9dÜ´µ ›5lÖšýÒõ .\·t‹vÍܶkÓ¢aóFÊ«cΜý"%j•¢?}ÌdAãg)\þ¿ŽY;׮ד àÁE5PÆ|p(£eÛ;‡®Ý¹hÑœ5s†ì×-]Ç¢™+WîZ3gÓZéŠ6-2dÇt‰"ÄÆL+fÐø!´ÉÓ/låÐÍ[ö!€$y≛!ÀlWoÞ¼yõêÍCWnÛµkØõâ… ™µkÛ®Y³fí²iÑœE³MW§@hÌdÉ’Å š@Œp‹ :wãîP@|CÆ;wîêÍsW¯ž=zñÎ;WÎZ4`º~kÖ,Ú4k׎E³f­\9k½X)òƒÆL–,fÐøID ׯ^Ç¢yC‡®Ý8>:¨°„!YãØþ±sçÎ;wîÜÍ«7/^¼yéÎECÖ,Z³fÍ¢Y³¶íš¹rçЕÓEŠÑ4g̘Aã'£N¤X‘jõ 6€ÛÊ¡kçÎ]8rÔÆ±sçÎ];wîܹsçŽ;wõêÍ›GÞ1RÄhÓ¦M”6yÂ¥ Y3lçâÍ›çλyóÜÍs7Ï;wîܹsçÎ];wîܹ«W¯^¾zõìÍ£G/ž½x厵¥È@4fРAÓ'¡@R¤ˆÑ¦N¢ns¶ ݼyóæÍ›7ož;wóæ¹sçÎ;wîØ¹sçÎ;wõêÕ«—¯ž=zôèÍk‡)O›ùAc 4}üøéÓ‡ ?„mEJW³mçÚÍ›7oÞ¼yóæÍ›7ož;wîܹsçÎ;wîܹsç®^½zõêÕ³gÏž=g·H‘êÄ(P4hÐôAÓ§>4hРaã‡#R¼š‹/Þ¼yóæÍ›7oÞ¼yóæÍsçλzîܹsçÎ]=wîêÕ«W¯^>{öìÙ !ù€ ,Dd‡  !""%( #""###$!!&$$&"")%%)&&-##-))*)).,,/&&3**1**4--2..5..9++911600311:22=55:55>99>//A//H22A66A66E22E55K99B::F==F==B::I>>J==M>>S<<[??iAAJBBMEEMIIMCCDBBQEEREEVBBUDD\IIVKKSJJZNNZNN]II]SSWRR]SS\XX_EEcAAnBBoDDkNNaKKcLLlCCpGGrEEqHHsJJuMMwOOvNNrNNxRReUUbVVfRRaTTkYYfZZdYYiZZn^^j^^nTTsQQzSS|VV}WWyZZv^^q^^vZZqXX^^y[[|ccmiinaaqbbueetaaybb}eeyee~iivjjtjj~ll{rr}uuwZZ]]ƒ^^ƒ^^„bbcc‡aa…ffee†ff‰jjmm‚nn…jj…ii‹jjŒmmŽnnŠoorr‚qq†uu„rr‰uuŠuuzz…zzŠzz}}Ž}}‹qq‘ss’rr‘tt“vv•uu”xx–zz—~~‘}}•zz‘{{˜||™š~~™‚‚‚’††•„„“š‚‚„„Ÿ††ž††šŠŠ–”ŠŠ™›““˜˜›‡‡ ŠŠ£‰‰¡ŽŽ¥¢‘‘§””¢’’¨••ª——¬šš¤™™ªšš­œœ¯žž®žžªžž°°¥¥©¢¢³¡¡²££´¥¥µ¦¦µ¤¤³©©·®®²««¸©©¸®®»­­¹¯¯¼±±¼²²¾´´¿µµ¾²²º¿¿¿½½½¹¹½°°¶··ÀµµÀººÂ½½Â¾¾Å»»ÄÂÂÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÆÂÂÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉËÊÊËÊÊÌÌÌÍþaáºåª’#GŽjÆ͖,W¬@ (P @ (P @b%‹¡I¬Ž5SfÌ%S·Œ%;6LØ0cÆ’-“æmݺuëÖ‘#×Ε*W°HQräH‘"DmØxÉrå (P @ (P @ (P dñRh,R›9ºK™µgÉŽ3f,Ù´kÞı['N¹uí†Á2EŠT¥IŽ9rd¨ /[²\± (P @ (P @Š•+Y¼°aÓ¦PD®še³öl™1cÆŒ-“–Í›8qâȵk×n.UªL‘¢4ÉѤI޵ñ²eK–+W®þ@ (P @ (P X¹r%K–,Y²x)KÚ6€Ù¬-;v̘±eÒ²yû¶nݺvíÚá‚åÊ•*R•(M¢Di’£B^²dÉ’åÊ•+P @ (P @ ”+W®dÉ’%Ë6•”Yë¶Íš²dÊ’){–ÍÛ7qëÖ­[×®0\°\©2Eê¥I”&92ÄfK–,Y®X± (P @ P H¹r%K–,Y¼´¡4¬Y¶mÙ¬5k&­Y3kÞ¾‰[·nÝ:râÄ%–ë–+S¦L‘"U‰’#E…Ú°ñ’åÊ+V @ (0\ ’…ìW$59¤dÉþ’…#\Ͳ۶-Û5iͤYËæí›¸uëĉçÍ›´fɆárå Ö-XªHUš¤ÈP!6^²\¹b (Pt¬˜PÃÀ_»¢E3ÉY¶‚•,›8qà¶e“¦L™´kײy¸lÖ¤IËf­Y2a¸r 36 —*R“)2Ԇ͖,W¬@%‡ƒÔlz“’1CN((à "SƬ.›µgÒ¤I“öLZ¶lÙ¬I{Ö¬™4oÙ®536lØ1edžá2EÉ‘#EsØd¹rå (8&˜€ƒN8G˜èàÂÂ… .QdJÙ6pà¼eóœµfʬeË–ÍþZ3iÖ²e÷ \6iË”5{&­™1X¦HQRT¨—-Y®X1Á‚ 9‰ ‚dž‚ &jt˜P @"°¬‰GNœ¸uëÄe³f-[6kÖ¬]ÛΛ·uëÈÛvíÚµlÞ¶Y[6  0U”)B4§ "=,Š”¨Ž¦5òÀùða  (P@L6qäȉ'œ·mÙ²Y{ÖLš´lÞ¼eË&ŽÜ:râÀyóî›8pÞ²]“¦Ì˜*S• RàH¢D–BÕúFO+1p€((P @…<Ô'N¸mÙ¬Y³¶LÙ2eˤI³v-Û¶mâÈ‘[×N8qâÄ}'N9þrâ¼5k&U‹$'ú¨©2ÃD&_vðì:¦g‡ TH ÀdàÀyË&M™2eƆ flY3iÖ²yó&޹uíÖ‰#·î8qëÚ¹{÷î9pÖx<£§Ï!âD£ä̦g‰„P @  !\¶gɆÁÂË•*X¸† kðZ¶lÞ¾‘[·nݺuíÚ‰#×îÝ<|øðá›·Ž•5rÀðS£'bœxƒìј $P  Ë– ,S¤H‘"eÊ”+aˬe÷ œ¸uëÖ­[×®];wóîáÛ·ß>|Üþ°’DD01C<¬þXÉ9r„ `³fÃ`©2eÊ”)S¤Lá2Öl›8râÀ‰'NÜ:qëÖµ{7¾}ûøñÛçIq3 ôø ÁB &(P@Á„2>}鱇Λ*'X@»š-S¦LY3eÆŒ-kvÍ›8ríÞóæ œ8qâØ­k÷nÞ¼y÷ðáç§@ (P @ @˜@âĘ L„Lù‚CA(€æšµlפIþ³fmš´kÙ¾µ{78oàĉ'޹uíÞ½{÷îÝ(@P  (¸@èÈ&'@1 ÄBF (ÐAÖ»wóæ½{׮ݻwóæáÃWož8qßÄ‘[׮ݺuíÚ½kGœ5TPb D  €€;fíè1ÁÄ›]¬ªˆ™‚‚ >™·¿}øðÝ›7¾zõêÍûÎ8qëÚµ[·þ®Ý»wíÀeÓdAÁ‘$((€@ (0‚ Ò¹%iÓ &((€ÀÂ`ûöýÛ·o¾zõêÕ«W¯^P˜ áFþŒ(P €!.(Pp(”ÈQCgÓ®*!„°˜`BH &) àÃOçÎ;w.=zõêÕÛ·/›µlíÞ¹—­Y3\•)šRa‚… AÄ‚Ž0¡çÈ…E€ŒaÁ„‡6f b¡E  ÑtîܹsçâÕ«go_½}û¶uKW¯^ô) `~j´Ð`†Ú¹sçâÅ«·oß¾}ûöÛF®\:qÛ¤%Ë•K˜):4(P @eÊ´IHIÈ(È‘çDP@¨ >|ùòeJˆ8~˜;/^¼zûöíÛ·o_.\Æ ;Ö¬™²a¹p©êóáÃ…Ø)áœ@–öÐð©„'›Æì0£@ABL$1q¡À—)b>Ý8“«Ö¹sçâÅ«·oß¾}ÿö Ã… –*\Æ”)36l˜°?&N€ñ¤@¨< ô„aþ‰¼vÄÈô(O ? h£g "2ÒbS <›þœ;wî\cÂrá‚ËT%G”L »UÆ … dh‘$üøÄÉŒT(`Œ Z¿ŽÑc&þA‡ dÔbô…jçÎ;wî½zõìíƒåÊ•*UªL]r䨬@ @€°#A ˜qpáL$N¬ì(8òaB‚ÌL U«£P Pà¡`„/Vc6ñèuî\¼sñèÑ«goß>U®`¹R¥  )R”*‘R5ŒXP`‚ &ùõë.:8( €Ù¤¬jËäg‚ &&|¨ÅjWŸ²âÑ£GÏž={ûöíÛGÊ”*UªT©ReJ•+XaX  @  À„¦^½h9™1Á€î<óóÇ—­*I,@€@a‡Zœšý¡@ˆ={ööýûÇß¿þ}Ž(QªDÊ”)S¦TÁrU ^$ @P ÕL“ ( †§!je¢õÁ„ .ùÕ¬–  wèÙ³·ïß>~üøíã§‘"EŽ(Q¢T‰”)S2ŒVB‘ @@a-^À%@P@€€X}0‘aS# @ °'E3ZÈød¢pI=|ûöíû·o?~û!R¤H‘#GŽQªDJÈ…ÀA0è ĨÅg“# P`(”Aódiê£@ŒÔ÷ß>~ûöýãÇO"DŠ)R¤H‘"G“l|¸`Ë <þ4H @B`¿8 Q£‚‚ ,Œ™A‚‰(@€0¡ÇŸ@ƒB=”ˆ½}øðñã·oß¿üB„È"EŠ2d( ¡YÀSÁ  Äøª•Œ _:@€B(œ  Mô¼áqâœ#$~ì÷oß¾}ûöíû÷¯P¡B† B„¨P›6mL¨©ˆ>2dL A^ŸX B LH…(P pBT&F3F˜DÂŽzûöáÛ·oß¾}ÿþµiӦ͜6mÚ°aÆ ‡˜øsD” (€0¨Ó£>((P €'(Pþ @B@h~eÚÁ$…[(øÀ·oß¾}ûþýû÷ïŸ6^¼xñâeË–-[¼˜P ÀÃPФ•±dÆr6Œ"C…)jäˆR¥J¤`Kf̘N`d|ø¢DAˆ$>t6Ý0‘ÉÈ eôœÐ a(M˜ øÀÇ„7X SåÈ‘#W°*b³Å‘"G”.‘2¥J,XªXádÇH#pð Ä#‰)eÚôæ‰ ™Œ|hj̇'€Øú”¤@!&ŒòÁ”)CsÚ°QDªÒœ-WH‘ªt‰”)W®L‘"EŠÔ#IxàêS¨?a-ù áW&U8ˆÁªˆ†zÁ“‚¯/ œð3¥‚!þÍaÆ ›6† ±ñ’…”)S¦T©reÊ”)S¦.=’Ôç_Žð@ƒÆÄll Å€3xÙÉÐÁ5Sž<áäÂ…"jö\ˆTá…/lØ´)„H¢6^²R ,W°T™"EÊT%K¡@Åp!¦>2:Tˆ¡`‚[Ìx2³glü1ã [{¦L9â§“8žxaÓ¦!EŽjã%K%U¸„ ÃËT%J”(UªdfÓòðr¡@4z.|à†³M¶–d€p‚G4Øùõ¨E }ò„Ò¡ 6l 2d¨P6^®PR… .X¤&9Rþ¤ÈÑ$RL@)P­:™1âÄ16ú˜™²é„…LZL˜B `ƒ.ÈPˆŒ#²xÙâ…M6^¼lÙ’% )W®L‘º4I‘"EŽ(U2•ÄÀ> $É$ãC‹?((¨’)H .8™P ƒG‡ Rœ€0H< ¾ÔÃãM–,[¶lÙ’%K–,Y²d1åJ)R•(M¢Dé’)S¦ÎÈŠÄÌŸ),d|PP €Z4˜‚£€ @€0!Ã6N˜˜ñ!ÈŒ)pdÉâ… /[¶xÙ’%ËU°\™"EŠ)S¦L™Rej¬L&>ˆ11#D‹ €4ý:3!þF%SuP€‚†:|°aâC‚h˜ˆ6mæ*T¨M6lØl… —*S¤L©R¥Ê”)SªL Ô¢… 4h€ðá“ Cü|0²çÏ>èùÃcB"X@P`a 2Ô¨%J“bÓàœ9nj傥ʔ*Uª`áÂ…+W.<”| €Å L1‘„… {úùp"Ƨ_œ"Ùñaˆ :h€!†0X¦`Áº Ö%G…ÚÌi“홲aÃrå†K˜1cÆ’)c%Nl±`Aƒ 0CBT©’É„40Ñ¢å‡Î'!!Z‘aÄþþ4{ÖìØ°a¹pÁ‚eÊQ!6Û¶mËvMZ³fɆ 3Ö̸lhúœ(ðH“ ,ì3&D•G¡>Lø†$>tÆD"c‚ ’@€ðY¶lÙž)3– .aÂ\UR$N9râÀe“–l˜°cÏĵ›×’ |8!K%Œè„âó‚„  @Ð`ä¸mÙ¬5Sfì–*S®pá‚«];râþ¶=[6L,\Ô›‡o+H&j\ð¡A‚ydœ‰Dë‚1¬ø<¸±‰N¦@',L€ @‚4²²—­Ù1cÃp©2EÊ”+Xª¶yÛö¬Y³dÆŒS&ÍÛ;|øðcUCÆ 3(¸Ì…G™x|%¨ UÔ<:cÇ ˜xÔ,Û6pÙŽÁR ×-Xª\Á‚åªY³fÇ”5S–,Y³lëÞÝÃ7o9>Ob˜˜ aú$8åË”$µbdˆqãM•7S|8!ÆÂ…*Àš=³–-[3\¤LÁÂ… W®\¹r 6l˜±dÇŒ)»öíÝ=|øÞ½›§ŠŠ ,Lþ@C‰œ-„c‚9ÔÐQäË—)g,¸ˆcì˜2eÍš)¦J¬\¹rå6l.aÇŒ fÌØ1kâÚ½{÷ž¸lÖæ˜1‚c€@óAðPŤ7gÆàyƒ©E•LÃ’5SvLY2aªL¹Â5lØ0cÇ” 3¶Ì˜±dÍ”)“–Mܺuâ¼3fÍ”‰3¸ð¡G( @'UnLÄ+SVpöða5¬Ù³gϤYS‹T%S¸†S&m[³fÒ¬eçÍ[6iϬ´&-™«K®„ {bB‡*x€óÅD¨áçÉ“/¡j±éÄþi£VÆ’5{f-[6pà”á"UÉÕ0eÖ¼‰ó–-[6pìÈ‘ó¦,—+Uª()RD‰.S*0˜˜ÐâC‡ÒÌ€€'jžÜ Ã‡KuXMÊ¥L™2eͤYË–­™1W¦`k– œ8pÞ¶·n·fÆLQR¤¨P!E”HÁ:6‡H H&x•9Q¡… À?~$©ÙtËX®fϤ={ÖLšµfÍ”æ Ö°fÙ¼œ¸uëÄIÃeÊ¢B†)šd ×0iϤ¼H³i&MdN\8@jì¡Ã¨KUÍ~=Û–Íš5iϤY“¦L™2cÂÂÖÌÛþ·oÞ¼mËvÍš4c¦*dÈQ%J¤pY“f-[.O¤¼yâ'L8ÀA$P™Ô°Q•‹Õ±lפ536̘²fÍš={Ö̘0cÒĵ{g­™²cÆŒÃEJQ!CŠ(‘ªdªY¶l׬‰cUÅO‚GZxØsDÈ 2ð<Šä‡O+U¬XeË&mY2cÃr –¬™µlÙ¤I“– \»wÇ„Á–¬Y2X•9R¤È!EŽr5»–í¸vÆp @ChzÌF:t%ª“Ëš7oÞ®3–lØ0cÆ5ËöMÜ7pÛ®y#K®fÖ¬)ƒ %D…Ú°aSˆ®aþÉšk7OV ˜(’FÐ!3‚¡ÃÇÒœgçµk÷î]»lÖ¤]»&-™0cÓ¼‰[·\¶kÞpËæ-›´fÒŒ¹rÔ† ›-lÚrDJÕ1pëÜá ¦A€€.Z´˜BçHŒ$‘ZýÚ¶>|ûöá{·N8qà¤%36LZ¶oâÀyóæ-™4oÙ¬eó–Í)EmØxÙ²…ME•†5³– Ü»zéî(€uÆ´‡Y¼zõöá«Wo?|÷àÁƒ·Î[¶eÆ”5»v-›7oßšeçÜ:oÇpQ2Ô†/lÚrkX²cͲ‘s÷n^9B=Ô¨²¥ #^éâþÅ«G¯=zôêíÛ‡ïÞ½{ïÚekfíšµkÙ¼yó&¹uðÞ‘3‹’¡6l¼°iSH%S°p¹Ê•ì™7€âÖµ›W¯Þ¹têÒÅ£/Þ¼yôâÑ£/Þ¼zøöáǾwìÄ­kGNœ8qâȽ»wï]»f¤()jãÅ ›9ˆQ"eJ,Sªp)³æMœ¸vóêÕ«/^½zõêÑ£W^¼xñâÅ«W¯Þ>|ûøñÛ‡ïÞ½y÷Þ½{×nÝ>~øÞ}ÃEÊQ!/[¼°™cÈ)R¦L™2EÊ•1eÒ¬m×n^½zõèÕ«W¯^½zõêÑ£/^¼xôêÕ«‡oß¾}üøíÃþ‡>|óÞñÓwO\3a¤µñ†M›BŠQ¢T‰”)R—H©fLZ6píæáÃW¯^½zõêÕ«W¯^½zôèÅ‹/^¼zôèÕ³·oß¿}ûøáÇo¿{ë¤ sE À6lÚ´iSH‘#E†)šT©Ò%S®„=³Fî>|øðáÛ‡_½zõðÕ«W=zôâÅ£G=zõöíÛ÷o?|øðáÃ÷m,S¤jÃfN¡6… *ThÎCŽ(‘R˘5qïæáÇ>|øðᛇ_½zôèÕ«W½zôèÑ«gÏÞ¾}ûöíãÇo?kÂ`¹2UIQ¡6lÚ´iS¨>P›6mÚ´™cÈ)Xìµ›w¾}øðáÇ>|øðá«G½zõèÑ«W¯^={öìÙÛ·oß?~üøñ !ù€ ,Dd‡  "!%$)!!###$!!&$$&"")%%*&&.##,)).**-&&1&&4**1--2--5++5..9++;00622422922>66>55:99?//H66A33C55K99B::E==F==C::I>>I>>M99M==T<<[77R??i>>dAAJAAMEENIINAAGBBQEEQFFUBBUEE[IIRJJVMMVIIYII^MMYMM^RR]XX]DDeAAnBBoEEjLLcNNmLLjFFrCCpHHsJJuMMwNNvMMqOOxRRaRReUUbVVeTTkYYf\\eZZiZZm]]n]]jVVuSSrQQzSS|VV}UUyZZrYYu]]q]]vXX^^y\\{aalffiaareevccsaazbb}ffyee}jjumm~ii{qq}vvxZZ]]ƒ^^ƒ__„bb†eeff‰ccˆjjjj†mm‚nn…ii‹kkŒiiŒmmŽnn‰ooqq‚qq†uu…rr‰uu‰vvqqŽ{{…yyŠzz}}Ž}}‹rr‘uu“vv•uu”yy–zz—~~‘zz’{{˜||™~~š……‡’‚‚•††–……’€€š‚‚……ž††™‰‰–‰‰“ŒŒ›’’œššŸ†† ŠŠ£ˆˆ¡ŽŽ¥ŒŒ£‘‘§’’¦””£’’¨––ª——¬šš£šš­œœ¯žž®ššªžž°¡¡®¢¢¢¡¡²££´¥¥´¦¦µ¥¥³©©·­­·««¸©©¸­­º®®»¬¬¹¯¯¼°°¼³³¾²²½´´¿µµ¾²²º¿¿¿¼¼½ºº½´´´··ÀµµÀ²²Å»»Ã¹¹Á½½Â¾¾Å»»Ä¿¿ÉÃÃÃÁÁÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÇÇÉÆÆÊÄÄÌÈÈÉÉÉËÊÊËÊÊÌÌÌÍÄÄÐþQ½B5ê‘!C† Jƒ*Rš4iÒ¤I“&Mš4iÒ¤I“&Mš4i2…Š F£z ¶ë£P¯võê• W.^½z[&M›8qâĉ'Õ¨Q£<52dè¡@iÐd¡"EJ“&Mš4iÒ¤I“&Mš4iÒ¤I“&MšPɈÑ(O˜ ò„ زbÀxñâÅ«1fÒ´m§M›8qåx¡ õÉÓ#F† 2$( š,T¨H‘Ò¤I“&Mš4iÒ¤I“&Mš4iÒ¤É)X² A“PA£ˆ9[V X/^¼z CæLš6mÚ¶•+W.,S£ByjĈ#F†¥É’Å )R¤þ4iÒ¤I“&Mš4iÒ¤I“&MšL™"… *T¨d„ 4€Î–ëÕ«/`ÈœQÓ¶MܶråÊÁB…ÊT¨O1jÔˆ‘!@Y¨P¡"EŠ)Mš4iÒ¤I“&Mš4iÒ¤I)R¤HÁB… •4€=ƒm0`À€+æŒ5mâĉW®.X¨F å)R#F ”&‹*R¤L‘Ò¤I“&Mš4iÒ¤I6˜4‘" *T²¤y”«˜3gΖ+VŒ±eÒ®i'Nœ¸mÚ´Ë •©PŸByòô¨‘!B€Ð ÉBEÊ)Sš4iÒ¤I“&4òPbõk 5šP¡þB!XÄœIƒÍÙ²bÄŠ-s&íš¶mÛ´i£&M2b½rÁ2e Õ+T£<=bDPš4Y¨H‘2¥I“&Mlœð‘¨@F²’é9°`ÁX²BÕË6mÔ 9+v X1fËœI£Fš4gË!s¶ŒX/\°båâ• Ö(O ô)R¦4™bƒÆ… MºTÆ”8( @aI P¼–Q£FÍÙ²bÈ!CF 3gΖ!+FŒ2jΖã•+W/`½rÁòÔÈ¡@o²P‘"EJ“)*Œ¸³È%1f–¼ @‰ ! 4jÔ¤9“vÚ2bÄ–9sælþY1dËœAÓFš3dÀ€+VL/T¡<5"M+T¤HQq@A/]¼ÔÉAaAŒ'& °`¨–QÓ¦M›6qå´9[¶Ì™³eË–-ƒFš´mâ¶QƒælÙ2gР-– `¬Q ”& šÆt)„èÇ“+(P e(^ @`È&€&ô‰@bÄ¢PtÑÃæ–7oÞÖ­{gÏž={öìõ‚Ö [7lΊõŠ…+V($ PðàV’:)0ᇅ&*-ú `ˈD$á㊎ 2BaK¥J“Ryó¶nݺwöìÙ³gÏ^¬W¹ríêEì°\±`Ê¡€€ ™%gÖøðè¤c$,±Ê#I ’.=$P €@DP”Z4f7oÞÖ­{GÏž={öìá‚õÊÔ(X¼€ã•+W,"(p@¦Ž:{Xµ0þ BQJ™î(袀M±Rµê\2s§GlÁ´bD8]äxóæÍÛºuïÞÙ³gÏÞ.^¼p¡‚Å °]¼€õâQB[&i8Å @K^´éS‹Ž)(ˆÙ×i¥>[ð< @€>¥h¨TèE‘oÞ¼y[·îÝ»wïìÙëÅ‹/\°P™2…*¯``º|Q@GKŒ¸Ù¢@Nþ{†5zäÉÓ§P¡F¡2…Dƒ‰8haAA‹YzVu)BªÍ‡?$ùI’,Ø,W—ÂDxð€‡!µz]ª5IK„Þ½³gÏž½{÷îÙ»Gˆ!CŒ5jôÈS¨OuL¼ˆ`À.ˆX¥©VEpÄÀÀÆ•¥!¬jmú%gƒ¼¨EfAŒ KÌtêÂ!]Jì©#dÕ¬M•.å óE“¦ZV‘`ÑÈ!O£b[Í™3)R¤H‘"EŠ*T¬ 1Ò£¢E,^@äåŠYzäP±Ä My&á¨#BÄ–'8øÌŠ’¨˜›#›urA$™Ž‚2ôU.dÒ 1“2EŠ)T¨P±‚&  ;ФšÄaˆr(|˜Õ)™.l–iÁ‡ÄŠ:8î$²„‚ "3¤µÈ!«Ž$>~ü”È!BPsFM›6)RJÁB…Š•,h:„çƒþ…I–P0aÁÄ }HÁ!1Œƒ™&¬ÈTçK¢Dzb(bÃj«$JÝñ!fŒ 35jÔÈÓ+^Å–9£F…J4hÒ¤ˆ¡F˜øèR$@ (0€c -,ܱ`a…[Jò@ºäÆ„%D¤X­ú´ ‘%EE¶¬ê¢†P¤P£L¡‚•‹¯\hÒ DÈ£FžPÅ‚Ej ‡/8`ð!ÂÀ„l-Ú‚"FG(ÙJBÏ'VI,èÁUKÏ"18ÄXºó@ƤMl™‚•+W,X£yòˆ!CŒ=ò„ª2b¥ºˆ `gD"$BVÍšõEG-6cBèˆ ~LB´`ÁƒZPÅÅÈ#S£B“Å!C"y j*T£BEá GEv¬°cáE˜>š¶PÐ3ÄÒ¬U&ÈôñÂ!B(/h!áI¥;°˜ðâS¨@iР!äé +XyòäÉ“Z,ãÃKV;6ù‚(ŠD+&Õr%B‘ !&ä¸ó€Ã¤.Ü”aó@ƒ,þ½Aƒ @‚¡ÉBåS¨P¡F*T¨PŸ"Å!`…¢>{^|˜õe(ú,êÓÂÒ*€¬Ž\±a„-yøèbDC!,z|  âE–,YШDˆP 4Y¨x… *T¨L…òô)T$F”4<“CD Iê€yð&tZä% $Øl‰Òç†/$^xqrç fdA“& BŒJ“K£P°pÅ‚…*Ô£F=Âc郀:(P(ØÀ‡Ot° `Cª"(áPЃM6m4èå£M(Š,PˆÐ 4i$P4Y¤4 ,Tž2þDèP£OvF¢…I$µñ1aŠ"ŠÌz!• > xafYHp™©SÉ„"¬d±’M4V²X±B…Š'S¨B}òdˆ!B†= ¥ÀEP€xÁƒ†$›,P8â%À–K †Øjá`K!6eð1Óc 0-Gº”ðáà*V¬X±B… *T¨Pej”'O1jÔ(R¨P£*ý€„Ç!4ŒÐÀaÄ}™DǪ uîÄ)ÄÆ (,ưraÇŠ dP±’ š,Y¬d±B…Š”Q¨L…òäÉ“§P¡BŠ• :ˆhÑbƒ øXñ…þÀ‘U-0ÈêÄj6nŒxÁ”Ø+ŠöDp0áI–,iÞ(M4hÐXy –©Pž>5*T¨P£^uá@àÀƒ H¼A¡Ž¦>&IUDAŒ;—°˜‰cdC]±0õÑ%‚ dèQ£FŒB“  7½xÅB5*T¨Q£PÁ‚ V,J:ˆ±ÁÁ ?’̺ƒhU6¬î´ØTËU¥Z¤¼lXñª‹ G8p `E.T¡F¡‚ •'C€ÒJó¬°\¹bÅŠ /^½zsÕ% ,&Làð…ˆ«Yp6uá“'ϤY¤YBôÄÁƒf~°hÁþ2+F¬×®\¸`¡BÊ 4Ò¤As¶ 1bÀråâlµd}ˆ p€Â„ ,ZÌbUGË=C†ŒYÅjÓ&MA6XØ@BD $Ù3gÏŠã ,\¹P="¤MÛ¶mÛ¨9C,.^Ũ‰kgi (˜€!‰DdŒx1BK•,M²ÔG"äxPä@ƒælY1b»`¡z+W,S¡Ð¡+Wnµe½bÁÊÅ«µrñ’i1€ÂXå 4(È#O!7Šz¼pñàA €x0a5hΖ#Æ Õ¨Q¦`ÅBe \¹mÚþ –+¬X¹€QkG¯¢H  À6Š’¡ â)à b£èŠ(P@@›|žE“æŒX¯^¹`™ å)”)S£ Aƒ†Œ1`¼xñ†L:zôèÕB"á ˆèTkR AҠ̤2ldX°ð€Vèaóì4hÎx¡… ,T£L¡2eбc½€ 1gÛÐÅ£×®¶(8˜P €ÀLØäHá…y0DYdÆÈˆ>1"D B<¡æE/QÚˆXÐCàe’DMΔ9“èÓ(bÄŠCFlÙ²bÄ€õÂ… U.bΤQ£Fš¶mâ´‹õ‰P @€bä V.dÄ–8b$H Œà°"@ Dp~ubÇK"Y¥>sælÙ2dÅ-+ 0^±¢ÂULþ5jÒ¤As¶l²\¡ $ÈP£F`-C¶ÌY-&)€°AA AZ°3i"ÊÅ«Ø2iâÚÑ£÷îÝ»wïÞ½{÷îÝ»uëÞ­[·nݺwïÞ½³gÏž={öîÑ£G¯Ý½xâˆáÅ(À4hÒ¤Iˆ!B‚jôè‘§P¨b[¦ =zôè½{GÞ»wïÞ½{÷îÝ»uëÖ½[·nݺuöìÙÓgïÞ={ôèÑ£G-ªPž Jƒæ  4€ èÍA†y…Š×2måÚÑ£G=zôÞÑ{÷ŽÞ»wïÖ½{÷îݺwïÖ½[÷Ξ={öôÙ»wÏž½e±P¡ õˆÐ4iÞ¤I>Pš4iÒ¤y#È'T¼˜‰k=zôèÑ£÷Ž=zôÞÑ{÷nÝ»wïÞ­{÷îÝ;{ïÞÙ³gÏž½{÷îÝ !ù€ ,Dd‡! "%+!!###$!!&$$&"")&&)&&.""-)).))*&&1))1**5--2..5..:,,;11622:22=55=55:99>//H66A66E22B55K99A==F::E;;I==J>>M::M>>R==\66P==e??i@@EBBMCCKHHMBBREEQFFUBBUEE[IIVKKTJJYJJ]MMZMM^QQ^SS\XX_PPVDDcAAnBBoEEkMMcLLkFFrCCpIIrJJuMMwNNvMMqNNxQQbUUaTTeQQnVViTTlYYf\\eYYiYYm]]j^^mUUrSStQQzSS|VV}UUyYYv^^q\\tXX^^z[[{aamcceaaqbbueetaa}ffzff~aaziivkksjjzii~mm|qq}xx|ZZ]]ƒ^^ƒ__„bb†ffbbƒff‰ccˆiimm‚nn…ii„ii‹kkŒiiŒmmŽmmŠooqq†ssƒrr‰vvŠvvqq{{†yyŠzz}}Ž}}Šrr‘tt“vv•uu”yy–zz—~~‘{{’{{˜||™~~šŽŽ’††•ƒƒ”€€›‚‚……Ÿ††ž††˜ŠŠ–‹‹•ŠŠ™š’’””œ——œ‡‡ ƒƒ§ŠŠ£‰‰¡¤¥ŒŒ¢‘‘§””¢““¨——«••©——¬››¤šš­œœ¯žž­››ªžž°˜˜²¤¤­©©¬¢¢³¡¡²££´¥¥µ¦¦¶¤¤³©©·¯¯µ««¸©©¸®®»­­¹¯¯¼  ¼±±¼²²¾´´¿µµ¾²²º¿¿¿¼¼¼¹¹¼±±±··ÀµµÀ°°ÃººÂ½½Ã¾¾Å»»Ä¨¨ÅÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÈÇÇÊÄÄÎÉÉËÉÉÊÊÊÌÌÌÌÆÆÑààèþW­"õ©!B„ù)CfL(Mœ A‚ $H A‚ $H AâŠE¤| æ«S£N«xý⥠—.^¼xsv[¹råÊyó†ŽÔ'R¤8-"DˆP ?eÆPÒ¤ $H A‚ $H A‚ $H@¡ÒGÑ'N›ÚDj˜³cÁxñâÅë—1h׸™+gŽ›·rèx‘êÔ‰S£E„"ä§Ì*Q 4i‚ $H A‚ $H A‚‰“&O¨ŒS†M™?£„QsflØ/^¼~ S&-7nܼ¡C‡NתQŸ:=Z¤H‘"B„þ”¡% ”&Mšþ A‚ $H A‚ $H8iÒä (P PñCJ5€Òœ ûÅ‹¯aʤeãÆ­\9tèЭZEêS§M)Z´HQ >T @Ò¤I“&H A‚ $H A‚ ’&Mš4yòJ”2†M£FÍÙ°` S&íš6nåЕ+W®U¤>}ê´éÑ"B‹òC& (Mš8i‚ $H A‚ ’2d iÒäI(P¢Y¤ë˜4iÓœ3v̘1g×´q+W®\9oܸÓÕŠÔ¨Nœ8mÚÔh‘¢@}ÈŒ¡¥I'H A‚ ’$gæ„’¦@ 0š@þ…Œ¢UƤe£FMš³cÆ”9“vM·rå¸qËvš2cÁt­5ŠÔ*RŸ65R¨O™2T p”2@(!A Xr¦† hHÃCƒ Z\xB -¿ŒFl˜1b¼x 3æì·rèÔ]£v-7nܸ•C§îÝ»wóêÕÃG©G‚ $€P ÀƒUÀ°(àAkμXf‰Ž :x`!É™3iΔ)þsæÌ˜2hÒ²¡{÷®^¶kÙ¸qãÆ›7tèÔ©S§NÝ;o+$€PÀÀƒ .äX’¥‡†(€E‘ H¥H¬Ñò€W’eãÆ-ÛµlÚ®eãæ Ý»zõÞeÓÆ7sÞÊy+‡:u輕»á„<(àeË![ZÀáAZ^éPvF! < Ð”ºyïÞ©S‡N:uïæÕ«ï7nÙ¸•+‡]¹rèЩCç-[²hyP „ Ä3„E $Hp ËÕ@ü`âÁƒ}õêÍ{÷n^½zõâÅË–íš6nèС+Wþ:uè¸I³S€F›HVayÐ <À ‚T’ ÉÚ‚ƒKŽ (¨Ò“@A€r@˜ƒÈ‚‡†IšƒãV¸pîܹ‹'>|øð£æí›7pÒŽýÂÕªÕ'|0xÐAG‚’²è‘ R¤zÌŠ¥çM 0z>P  kL$P1Óš46ø„ λxøðáÇŸ®UºtéúelØ0]­V}ZQ„>r€8PÂ…u~\ÈçÍ,IÂ.ÅÑ)’„%øFË…‰$ÕÑ‘ÃM¸páܹ‹Ÿ<|øðéZµŠÔ§U¼† ó…KW+ h ÑC—P1þÐÅ…"™šé’Z²0ÅÊTçJMp©þ*DsÍ‘ÄǃfáÂ… çÎ]¼xñäá#õiÔ§OŸ:="D¨©KDP¨HÀ ‡$ .äùBU­9gäøª+V-`–dY1• @†uj©‚dˆ’!I‡P<¸Î;wîàÅ‹Ÿ¼OŸHúô `§M‹mú$é‚ hØB"˜<@ ĆIÌšPÇbÕVÌ”¬/xð@H­}êÔ©Ó(R` 0x€"EA$I’Äâ@›W²01AdK­W³Š‰ªò€(Ф’Š¦,äÐx ^þ|„-j´‰§NŸ>‘úTå\D$0$–¤:$Dš… Q&A²’Ͳe Ø,}øðáÃ(P @Š-ZÔhS'NB:x°åÂB IS _.}I©–­bÅlóAB†-’bÕ–ÉP-I(2|øþü (!B„-j´ ˆ |¤ a Í¬Lq<$Р¡F*"š^ÕVKV±Poô´‰”IUªX¶RQ’ƒÏ›"Å«W¯>|õðéÇïÏŸ@ (!BŠT 0ÀDŽ6 þô‹)O{<¨ò ˜¤[³0ͳ…•HˆBÍ™#)U&4’$¡xðà¾zõêáÇŸ>}úþüùóÇÏŸ@þøñã§„†:äÀSÀ’­"{¶<ˆt©€žL±æø²…É[-¾H’„ID˜$Ùò+…ìÔ«‡>|øðíÛ§¯OŸ>~üøùó§O™2e¦\ Ⴧ8 ÀÔò1„K‡bšĉU, 0JŠÙˆ'¦X©ÀdŠ3G’,Bù€ðBœzõðÕ«‡¾}ûö•)S†M6eÊŒ3fÌ„9tÔ€$ICŠZš6øÈ‘ U›/©ŠÍ²•ªV1`´jEþš•iV­A2 ©Bˆ*´©‡>|øðíÛ·o*T¨P¡B%J”(Q¨,ÐfK=’¤ E+Õ À(‚°eV±b̘٠õ*”ªY¡¡Ê´••xðBuêÞÍ«W¯ÞÔH±¥G‡ *TAq†­8"e#« ¢80áȘ1eØøñã§™1Qš,úDjÕ*Rœ þˆÐ¢N*ðÑFÏ`ªxÀÂ[Hˆxð€Âš,kH-Z¢B‡09Ú$ò€žP‰BeL™1T¨D‰åɦQ¤:qz¤(P @„5êÔ@)R|ø‘JÇ•°èÑ¢€„P†…Ap¼DÊ$¢3]T@`‚(Q¢P‰ (P 4ùôéÓ¦M-Z´hS§NÐØ°ADª@(@BÇ $jXxð  &X*YƒF’ !B zUÅ,J@‰Be *T¢D‰J“O¤FuÚ´iÓ¦N:uêÔi„ (ÀB6Te£6ÍÙ1cºV‘ZÕ W+RÔ¥C‡Î[6g¼p­Â¥Ë˜6uóŠe(@ y$ÅaáEB2¥Z#I ‘õɘ1a¿† l˜1iÞÔÍ«÷î¸\`aÁR¬H.`HAB5™21`€„B ”r&MÇŽs&ÍÙ°U›:‘ZµjU«V­ZµÂ…K¯_¿~ ƒ–MݼzõÔ©›×¦F Øþ©+Î…,,©Ë– .(0¡Ë–Cu.½rvì×°aÆŒ Ó5êÓªUºpµÂ¥‹©V¼xéÒ¥‹W0gÜЩS§7iÌLh€!ˆ¦Y±T} àAšs0‰ùÑφ t´ˆC -j¼‚lX0\£>Z¥K—.^¿†µâ5,¯_Ɔ SF[¹rܨñ&-Ï.hh+–— +–ä¸Ò‘4†2éQQÂ_’;†kرcÊœ9 FjS£N­tývLš1cÊœIãvíš4eÆœtv,بMtÑr±C‡‰¾Ì‚”fÍ ¡ ­YƒI’¡Y$Ü$þʤc¿‚ 3æLš´lÙ†­zÔh”®aήq£&Í™´lܼy»6 רOŸ ´hS©9G¢Á €¥X‡Î ¥ÎDµÒ¤„ªÇœ5k(QúlذaÔ9“&í˜/RVñ& ·lÒ¨eãæ­\6c¼8 ÈOŸ@‹6­úeF† =H\ÀƒI < ­‘SìÌ™:aΘ9ÃiU+cÇ”)3fL™³cƆñj5Š”.cÒ®eË–-7oå¸[Õ‰Ÿ>~üüQÄi•.eÇŽœPbBÇ bæÈA+ÖJ¨Î<9#fL¢E¢“&Í™3eÆŽ);6lØ0^­’ÒuìZþ¶l×®Q“æÌ™2_ùéã‡P£EV9SæL-:Ž@ØÀ–%{b¡’éL%L̈bSi‘/iΔ㥋W°aÆŒSfŒ—.^Ƹ¡C§Ì˜±_¼xñZÕ(?mjDê˜4iÒœeÓ A[j,A”**Cg˜0Qòdª5•ZI£¦lØ/^ºpéÒÅ˘3iÒ”S&-[9u¿Z‘ÒõkX°U‹ èŸ@„ps&Í7tw0aÅKŽCôHªsE %cÎDaìÚµkÒ ýúŒ/^ºx“¦·lÒœ]ó¶êÓ*cΜ[5ŠÔ¢?}ÈŒ)ÓgÓ*]þÃŒ]C÷ŽO -†`ùáÃG5< `ÃFÌ`ç¡C§î:iΜ9sv,.^ƨq+WN›4gÔVñr&Mš2eÆx"Äf •(cÊø!´éÓ¯låÔÕ+VLtô¨1Ñœ%SĬ¡†¯^½zøðÕSWŽ[6mÙ”ñÒ¥Kµlܲ]»v-˜2jÒœIËæŒ§@eÆP¡BeL™@ts&-›ºxßÜ$Hð‚ *tàX²fÕ»xõêÕ‹‡¾zïÔ¡CWîš´a¼‚sæ µkÚŽI»v­\¹k¿V-òS† •1cÊøQDJׯ_ƤyK÷îݸX‰Äð8²ÁÆZãÜþ¹‹/^|õÔekµIQ*T¨Œéã‡P£Mœ:}êÄé¯aÊœIËVî]½xñâÅ‹/^¼xñâÅsž;wñâÅ‹W¯>|øðé«þW¯^½yïÔá«7›±V›•¡B…L™>-RÔˆS§M:}ÒÅK™³kèÞÕ«/^¼zñâÅ‹/^¼xñใçÎ]|øêÕ«Wo¾yåŽáµèÀ2cÊ”)Ó'¡@~ R´¨Ñ£N£ZsæM]½zõêÕ«W¯^¼xñêÅ‹/^¼xðâŃ^¼xñäáÇ>{õìÙ«—M©O›ù)3† ›2}üôéÓ§?„múDŠ—3nèæÕ«W¯^½zõêÕ‹W¯^¼xñâÅ‹/¼xñâÅ‹O>|øðáÇOŸ=i­H‘ê´(PŸ2dú”)Ó§>›2eÊ”aó‡Ð£Qº •{7o^½zõêÕ«W¯^½zõêÕ‹/^¼xñâÅ‹/^¼xñäÉÇ>|úôé !ù€ ,Dd‡  "% #""###$!!&$$&"")&&)&&-""-)).**,&&1))1--2..6**5--911600322922=55:55=99?//A33A66A66E22F55L99B::E==D>>J>>M::J<qb´¨Ð¢E†‰¡" ”&Mšþ1bĈ#FŒ1bĈ#FŒ0iÒä (P Pùc*™5€Ô 6 0c̨iófΜ9tèн2e Ô§N-bÄh‘ ?T @Ò¤I“&FŒ1bĈ#FŒ1bĈ‘&Mš4iòŠ1ŽŠI³f Z±aÅ‚ KF-›6oæÐ™3‡¯W¦@úÄ £EŒúF (Mš4abĈ#FŒ1bĈ#0biÒ¤I(P¤ˆaÔ+5jÔ !C– 2hÙ¸y3gœ9p༠ëË©O>qâäˆQ!A~€¡¥ &FŒ1bĈ‘&h&í0A /@þ%Ì¢WȨe³f´dɘ1£–›7sà¼yÓ–-3dÁz½2EÊÔ+S 89Z$È1` 4iÂĈ#FŒ|Y´¨Àp€¡P¨ø15Lš6oÚ¬QKV¬X²hШeÓ¦M›6kИ1£ Y°^¯`õêÕë(N‹ ä (M˜ab¤H™AkÔÌA€ (€á  NÀ iÓ¦´d̘1c†Œ5jÔ 1K† ³lÔ ! Ö«W°bÁz½êĨ @h¨@yÒ¤‰&'Ê ¢Ä 0Q€`À€&Ìô©˜5mÚ²Y³¦M4dȘQ£F þZ²dШQó¦M5fÅŠ!K– 0SŸ81ä' (Pš49‘£Œ2e!ªR¡Cƒ @€`@,¦ ióΛ7pè¼Qƒ5hИA£¦-[6pæÀi£ 5jÙ²A+Ö ,RŒ ò#F ˜:!‚SÇL!=²°@0` `à 5oàÀyóæM[6jÔ¢AC†Œ³hÙ²Q£æ œ9pÞ´e˦͛7mÖ¨AcV (NŽ )a±&.DI’äÈÒaF„ 2€„‡XÒæÍ›¶lÔ Aƒ†¬X±bŘ1ƒ5kÞ¼3‡Î›6nÞ¼iÓæÍ8þpÞ´%CÆl5eV©Z"eD•½ÆÌš7pÞ´yóæÍ8pàÌ¥Sç®^½{÷ðá«gj -^Ø\èeÉ<$ @0À¨)3¢EX¬/X°`õ2õê0cÔ¼y.›6mÚ¼yóæ :uîêÕ«WïÞ½tuhXð X¦ô‘ H `Á2U(8A‚«+f¬2cÀ€C-›7pèÔe³–M›7oÞÀ¡S§Î;wõêÕ»—é€ ~B‘PÀ@,”tHwß>|õêÕs箞  ¸ðA’ @ÐÄþV”¡4+Ë€~ôÀáàƒ<:è8£ Ï¸qãÆ7n;vìØ±ƒ‡Îœ¶hÌ€âÊ(R°€ «1c ¬ô@€@2!P  Ãœ3”"! C 4pàÀ…<lŒ7nܸqãØ±{¼zèг– ,P 8qâô T§ ]º€€0 ȆDP0áÒ„+.QjaK 3[D 1  (ÐaáA·qãÆ7Ž;xðàÁ«—.»tÞ¬%fŠÑ"N @™Qñ&Ç€ÌX0@(.M° &½¢¤`@€$@%%VÇ(eâQ× 5K°`鲂’0%Â$jþ’(BX&ÍIÁÁgãÆ7nÜ;xðèÝ3EÊ(P >9*TÈ©<ÀÑ%@*Teºsé,lP©b§V0U P0ÇŽšD¸šÓåÑœ9 86ŽÝ8vìØ½ƒwïÞ=P L‘ à'NŒqeæÂ€„0%LªÚT™a厮KxÙR• Á€°Ì™³ S¤Dh’¬Pƒ…ºؽ{=z÷îÝ»Çé(P @úô )SB&Xi3 @ †Ô²ÕJŽ T“䬖°C‘V 0Œ(LµZ‰²ChK‡9ˆ 8P |øýè A‚ýùh„“âD¸”‰Í…\ËÔ ëЃˆ2—Žå¯«\­(UUF( ¶ôÀÐCA+"Õ»wïÞ½{÷îíÛ·Ï?þüÈ1b4DhA)ËJAâð°eë˜.Uª±%ÌÖ2,ö.͘ “*Qs€EU„ 4`ÀžzõîÕ«wïÞ½{ûö‰#1bÄ€Œ†=2ÁÉÀfÅ€*’.Ã5KTVÇŽ V&Ñ%U“2þBbO«Kq¨¢  fè©wïÞ½{÷îíÛ·o0T¨P¡BŠ)R¨ˆ¨ÒCÒ!lh H!IR®X‘lÙÊ5+×1LpfÍjuˆÒ d¨²cI†$ 8pÐ`ÂuêäÕ«w-›7sèÔy³– \“&Mš4iÒ¤É(P ˆ(¤Ê!VDì€"G°Z„2%²„…Œ VzPÒsª%DvptA¤*Ó6 ¡Â!¦xÁ‚þ š¶lÔ²ykÒ¤ “&Mš4iò K‚T‘Ôaˆ$ )0h«UK¦ 4 tÀÓ"Ï<^( SE ‘&L­0rà`Š. Ô¨Ãh#N ^‹f5&Mš4iÒ¤I“&P¤€Ñ „…63h̪b†„0>xle¹0áM¦ZX"Eò2CU­;†lÁD)! Ž½Ù¢ÀÁ†.~ *äT/hÙ¬AcÒ„I“&M @FÌŸXXh’#B&D[†Ëò@E‡C‚Eš„èŒ%+¶ZÙÊ$gHVvQÊ"LÀH AŽL £¦M›·&M6yŠ0`ü2´#€þ 4® D©œS>2ÐX‘eO¦J2uñѪ.Q—æêt©Œš2fº`ºà`„9rĈ“«`É QËE 0`ÄøñãGP!Fs²Xø‘"I³*ü˜ÕC†!u$UÁqCÕ%­šcçÕ£J”T=z¤Ѥ z4¨QH'P¦L™‚Õ X°^`Äø$¨Ð¢EœLÁz…¨GÎ`ÀÁ ÑœL9lñ¢FÎCpÁ©!ìX­Hs@¤F‘,2_$a ò¡ÇŒ‘zÕ ¬WŸqâäG BŒ9âd*3d‘0à¹SÁ¬TE¢Ôƒ ¥S‘æ$˜žþ§t½IDèQG‘(©Q‰Õ›.ñðqPV¯`À`ëÕ‹Ó?~Tˆ‘#GœHõ6¬×ƒKs<`˜0ÄG+‘ˆT&Š!x¼àÉ#§G›]ÇT™‰tÈ–ºV)V䉄b 2hÖd*sH:d”DhpèÓ'@hÄ€ĉ*M8qrĉÓ'RŸ:qâĉ‰8B$€Èr„=x®°Éul–’$ph­ËâÇ!!<9dJU«3‡.Ap d „I þùL4€ü€‘…¨OŸ@õéÓ§OŸ8íÀ ‡B<€¨ñÀÃ]»h©Á’I.€u<ÜÈtA†C‘\µšU&Ÿ .8PPƒ*`ÀˆùÈÐ1T peÊ”)S¦H}âÔ©$2=<è9Eƒ  Ð`£k×.IdT±Jô ;4ºL8T&%[‘æÔqРtP #FÌA…ýC剣O¯xÁzeê$GŽ9šƒƒ6[‚±š!C KºtåÊEiÖ,"&@€3Ë5jÖTRUk”œ ô€ ` ˜0büüùóÇ0Rš0õ Ö+Sœ*þ$H£O8V°A ÇV&2¬”‹’ª\»hÍÉtáB%Wº ÉaÖœIÁl]iÐ`œ ¦P‘B%Œ0T¨H‘"å 'R¦@}‚TH A…1úÔ¥@/ðüHÁ††„™–Í9ÄJ—ª9“z|ذ¡C—*a‘“I•$ \ q(P¤P‘ (M 4E 'N-bĈӧOŸº<¨¡ ÇŠ! ˆ@IW¤3’"Í™„ç .€èÀ¢NŠ ™VêÁ„\@‘ *R¤H‘¥IP¦H}âĉ§OŸ>}úôÉ΀Hé€à†|fRóeþ Lo®œâ Ž]ªLQKQ¢\øa0bÐøñãGL0`¨Hqõê©Oœ:êÓ§O :¡ðð¡‰-ÞàAG&J¹pI‚# , ®˜¹ÐãÆ… ˜âÌÉ`þüùSˆ#F‹ù# ?Á€Á2ê(P L½zõ ¬$, °¡Ë•.V,Õš• —°K5(éP£f‹,( x°³AÒ„PbF/SŸL™råʧB~Ä # Z1^½xÁ‚õŠ0`Á†“4#Âä©Òg–®,¬léš5g ™N˜Z]Ø@ÂL)J10 @þ,-K†,°^¼^™2õ©0Ú²Y£2dÀõêU Z6iV"ˆ¡C&–fõÀÑÅÖ![ªÌ˜¡¤ Ó  8h`† Ø@£™4iÒ’ëÕ+^°L9Λ7oÞ´ec6¬W¯`Ì´¡SG$‚€¶\ê iˆyò$iEéÌYuºtp@‚¤%°€0‚!U4i³F Z²e½^™rõ ,SŸÔ¥C‡Îœ6hÀ^½ê ™6uõt € ›K4¬t˜ÐED‘Š,ù¡ – \Xue– 4ãCš7kÔ %CÌÔ§O¤\Á2E :pÞþ¬A3Ö Ö«W½ŠisW/†"¹‚Oˆx`:£ Æ‘ôº @ÁIJ,a1`ÀŒK§¬iÓ& Y°`½\úÄ©)S ¬m³Æ ²aÀ€+ÆÌºzõêµy`  9š®LøP &J—ÌÑqiB—(è‘aÄ’ 0¨Z–Lš5kÔ€™"eêÕ+S H™2 ²eÁŠ!+6¬2jàÔÕ«çÎ]³ $ÀÓÃR Zàx)S,.ð|X1¡8ÜPsèF`Ò %ƒF ²Wœ>™zõê,^°`õêÕ«°aÁ€‹Æ ¼zõÔ©sge€ wp¨þÂÑÁ I³h•9ÓHŽ ].8@P`€Uv¹’¶,X±eÈë ”)X¼`ÁâÕ Ø+^À€õê X0hÞЩS§N7jÍŠ”À0¢J¦8àÐÄ S™2 2ÐÀ@æÕQuˆR3k½†!+¬Ø0^ >‘zÕ«W/`ÁŠñV¬°aÈŠcFÍ›9sÞ¬íÑ  $ÄaU"‚%[§(͉N3°40ЖC„€I[ÆkY²dÉ A+fŠ“£N°z+–Œ2dÌ Qã–-5hÈ ŒÆ¬)H xõZóÅ™"IšÅê”&L”Xašƒéž. P3þçѲdÁ‚-K&š5mÚŠ½âäˆT¯bвy³F 5mÞÀËV )RŸ ´ˆÓ+GO”¡áZªXERƒi¢C‡D¥xà¡ ‹:kF¹ 6¬X±bȘA£F 0SŸ^CFÍ›7mÖ¨ióΜ6dÀ:-*$ÈAŒ8½ 6Æ !‚DÀ‘%"$„lER“‡Ð™3sÊ”)3È,dȘ1c†Œ´dȆãeÊT/dÔ¬ió¦M›7pæ¼%{õ©Ð? ZÄÉT¯dËnÀ !¤B€"*3Ï¡%eæ¨Ash 4!£F 4fÌ’1CV¬Ø0`°šz•,›þ6mÙ²Y£ 3`Ÿ ýñ¨#FŽ^AƒZ¦ TÉ@b‹(BK¥øòÌ—'HÆ ªÔIQ°hј!Ö X1dÈ’1cV X/`ɼ¡CÇ 2`Á€{ÅIП?‚qr*5jÔ y»#@B 24âœÊtH2k¦LA" EjdQ£ÆÌØ0`½xõê 4jÔ !cFM:uÁ`™â¬Ø°WŽ$èÏA…`!ƒF š7tm¼x¢¤Fˆ7”ê4ØP£Ì”)R¾1S+[¶lÖ 6 X¯^½z!‹ÆÍ›7mÖ¨egêÓ+dР!3eê#@~€󇓩^þÃeCç®O‚%°Øðq¥%¦HóÍœcÝ¥S§N:jÑ 1cÆl/`̲y3gÎ[4hÖ^£f 3fÉ€‘*„ )TÄü)ÄéS±læÔÕ;6!€†"5f P²CÈ)c¾ ÙV¯^½z÷ðÕSΛ6nÚ˜ Ö‹5nÞ´eË–m3kÔ QËF-X'AbÀ€¡BŒAz%ƒf›ºzäÚŒ˜$E€Wxy2&:xðêÕƒï¾{òÔ¡Cg.3cÀ†ƒ-Z¶lÚQÓ–Íœ¹lÁ^1ú# *`ÄüYdª×°`ȨySçκ`‰réáÃÌ$\åØþ±{÷Þ»wïàÕ»WOž}úÔÉT¯eÉ YÓÎyæ˜õ"Å@1`ÂøãGP!A bÄÈ'P¦x!ƒN]½zõêÕƒW¯1~ĈA¨$R½¢¡s'¯^½zõêÕƒW¼zõàÕƒ÷îÝ;xðÞ½ƒ55:99>..E66A44C99B::F==F==C::I==J>>M;;L66J>>R>>\77T>>gAAGBBMCCKIIMBBQFFREEUDDZJJVKKTIIYMMZNN^II]QQ^TT\UUZEEdAAnBBoFFmLLcLLlCCpGGrEEqIIsJJuNNrMMwNNuOOxRRbQQeUUbVVfTTlZZe]]j^^nZZkQQqVVrSSuQQzSS|UU}UUyZZqYYv]]v^^qXX^^y]]{aamiinbbreevddsbbzbb}eezee~iitjjzii~nn~mmzqq~tt}xx|ZZ]]‚^^‚__„cc‡aa…ffccƒff‰ccˆjj‚mm‚nn…jj…hh‹jjŒmmŽnn‰ooqq‚qq†uu†uu‚rr‰uuŠvvqqzz…yyŠzz}}Ž}}Šrr‘tt“vv•uu”yy–zz—~~‘zz’{{˜||™~~š}}šŽˆˆŒ’‚‚•††•……’€€›‚‚……Ÿ††Ÿ††™‰‰–•ŠŠ™šŒŒ‘‘••ž‘‘›””—‡‡ ‹‹£‰‰¡¢¤ŽŽ¥§’’¦””¢““¨––«••©——¬šš¤šš­œœ¯ŸŸ®ššªžž°°¢¢ªªª«¡¡²¢¢³¡¡±££´¥¥´§§¶¦¦µ¥¥²©©·¬¬´««¸©©¸®®»­­¹¯¯¼°°¼³³¾²²½´´¿¶¶¾²²º¿¿¿¸¸»´´···ÀµµÀ¹¹Â½½Â½½Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÈÆÆÊÆÆÍÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÊÊÑþK•*õiÑ Aƒþô9æ ”&KŠ)R¤H‘"EŠ)R¤H‘"EŠ)¢¤ÉE¥‚13Æ‹Ó"O­x Æë/`À€k¶M\ºtéÒ¥K·nÔ§O£6)4hÐ?a¾Hi²dI‘"EŠ)R¤H‘"EŠ)R¤H‘"EŠ4‘r&ѧM‹ ÚTÊX4eÁ‚,X2jÛĉK'Nܸtëx•òä‰Ó¢Dƒ Ô'Ì)Mš,QR¤H‘"EŠ)R¤H‘"EŠ)R¤ˆ’%K¤|æL˜>Ÿ˜Y‹¦ÌX0`À€kfm›8qâÆ­[·Ž—«QŸ}ò´©‘¢DŠ òFJ“&K–(QR¤H‘"EŠ)R¤H2dY²dI“&M¤„QÄK™5kÕ¢%S¦,Y²hÛ¾‰K—n\ºqâÄãõªÔ(Oœ€H(€B ðã‹NÀ¢mëÖÍZ4eÊš5k–¬5kÖ¢5S–,Y³nÖ¢% Æ‹W0cÁxµÚ¤hР?a¤4i²d‰’"P‘Rè ;xð@ PúãɘµnݶYËÖ­[´dÉšY³f-þš2eѬY×­›µfÆŒ%k¦,°Vž6)ú³Œ(M–(9‚ˆŠŠ:o|H ±€@(P@€À„7¥¢u'Nœ¸téÄY‹ÍšµhÑ¢E³¶mÛ¶qéÆuË-Z4kÛ¶E3Æ ¯O‹ýés&ÌWØ’ƒ†Š‰  @€€ ð€Ž5qãÆ‰'®[6kÖ¬EK–¬Y³hÛ¶Y³&n\:qâºmÛÖMœ¸nÛ¬EKf اM‹qébˆÒ+[¦ÄqÔƒ  Èê&\·lÖ¢E‹–ÌX2bÆ”5‹fÍš5kâÄK·N\7qâÄuë&Nܸþqâº%K¦l2o’AB`F¨Lq  € Bx ð Âdݺe«Ö,™1cÁxñâìX²fѬmÛ&NܸtëÒ‰7®[7qéÖ¹sçÎݸnÑúoŒÌ`Éò`Ç+NÜq„ᇆ (`á   @Ã"j0``ÁDŽ$H0("OžL @ƒH !AA6` œH’à Ðà™3Ïœ9xðàÁƒ÷î20PvÐr£ B… ( á (jˆ@‘‹$®$ÉAÃ9sæÌ™3Þ;yòäݻǎ¼uà²%ãUjQ¢MŸ>1Šƒƒ€¡ ­´Üˆð€9è‘éPÊ› Xò¬ø"EªU¡´I…É8Q‹€ ¼ È &}úôËvNÜ8pÖ”{µk×'$0 SÅ55æ°ªReÕªTS~dyÀà4jѪã@œU¢¼XÉ€¤Â d™3gÞ;yúôéÓ§Oß+W¼xñ2ÆŒ1^¯\}ºÁà‚6f²d16¥C‡)yæ8ÂaÅÑ 0PPC•¬P[0ÈIň ˜¬X`ÀàŽ9sæàÁ“§OŸ>}þô½råªÔ'WÀŒ¶‹×+ ÀÁBÍ[tDTÈþ¢JÒ¡Pup°aðàÁUl­JU‰’¤Zþ C©Lj˜3g`»^¹rUÊÓ¢A‰6½¢„A‡:ÌÙ@Š+rX˜Ð¯P:”(`ð#”œ#]j1BF þ£B”$‘€ \æÌ™3Þ;yòôé+õiÔ§OŸ<-4hQ©64<˜ ÀÆŒ7@¨¡å¨„y‚i¢DG:ÐJò&X-Z¡Ð°)„¦P0°ÐeÎ}úôéÓ·É“§OŸ>}úäéÓ¨RSLLÐÀ€7*\BvkÕ °ÈªµjU -ØÔ¢Ä%”-L«V9B#S¦ °@‚ê<}úôùóׯ_?þ}ƒ)Z´‰'OŸ>••cÇŽ9DRƒAA:¶haò ‚«Y«NÕbÃFÖ*9d0Iª•«¥@«QZ $§ÞéÓ§OŸ>}úúéÓ÷ÇÏB‰%R´h'N,fà 0E2"` µŠV(§nåšEÉЬa«BÕ¡„ L…T¢„iT  @P¼{úôéë§O_?}ýüøñóçÏ Aƒ)j´éˆ êÑ”%´ìÐÂ…ÌÖ*YÏ.Qª¥í%Vwn¢Ê›`†ÚaÅ$I,Ý»§OŸ¾~úúõë§ÏO?þüùóçÏ A‰>`Q3¡!šþ2ÚÊ­aÃl¥Âïß-dÈ(9ªâæÎªT¡ÌhPuhGœ @ð¡#>}úôéë§O_¿~ýüôéã§Ÿ?üôéÓ§„GèØ’ç+Z®Ð²k•­g÷ªÕº„I’¦<¸"ÑÉ” S ð0„H²Ü»§OŸ>}úúõóçoÏž=}úôñãgO˜0a.àˆaJ!UjYRã#N­PªTº… ×-L©òð˜ ×”V9‚ðà @È`"–{÷ôÝ»§OŸ>}þü… &L˜=aÂ|ùòå ©v 3åƒ[ÈÞÔÁ¤J•*GªXÕÊäK†9´VUþ ‘ʦ<ð Þ ¹§OŸ>}úúùóçÏŸ”/R¤H‘"E (P¤xY±#ˆ•.TN˜ÀEK‹(I’¥‚dÇÍ©,:`1–È.¥¢ÁàÁƒ)&B@€PAKwîâÝ»wï^=wîê5iÒ¤I“&Kš4iŠ˜@~©c%YŽÊt¡Q(5ÔdÊ á 7€X’é¥9 0 ¤‡ ðmÛ·të܉³–MÜ’%K–,Y²dI“&Mš|é1áFŽ•rÅ 0^_ÂìñógÐ E›F½reˆ‹|°º”©Î¥a¡¼”ù€‚ L¡háB† Ù­L·ä ("2…2dÀb‚Q•rŋ׫WžqÚ´çÏŸAŠ-ÚTŠX³d”ЉðÁ„¦K« eB† ͘wa’”ª.dþÈje¢T‹ 4©¢”Œ†6=<Ø!J¯`À^ñâÅk“Ÿ>}úüù3HÑ¢E›Fñ FìÕ+ ø`C©$Y¸V±„+U&VˆhݺU«Ö,V«$¡ Di•#4e˜1cȃ-±Dñ•h¢OŸù"eПAŠmòäéS©R£Fm±¢A!XÑ™…k‘8Z´:TËV.L^TÉJ•*P B¡†±* ‰†<ˆtg“'?gÀ|ñ³iQ(M6mZÔh“§OŸ}úôÉ“'Ož6õ8±cÆ 4 6ˇDà8Â!%€ÌÞq 8…0e*tÈÑ¡:V*0¨ ¢„)_¾„ÙÓçŸ0Ršlú4ªT©R¥FyÚÄÉÓ¢84|t¨`…7³ð<˜¡ãJ—.uЬ’cŒ–#^È¡!(!8’àhÉÐÁƒbH &Ìž?ƒõ #¥‰"O®^½zUÊÓ"EŠ-‚c"R4°PsË!Wà\Yõ¦:«d­ v¨K4dI¢$‡J0È €È—0aÎôéÓgO˜/R–(úäÊ•«R› úþóçO¢M4x:U+ †,²fDðqåÍU]Ð*Ã¥K*ZWÈÀQ MªP’4,ðÐÆšH"åK˜/R¤HҤɦQ¥>qZ4èÏŸ?ƒ-òôÃÀ¡hYq§V– '®\q”é—@o¸¼¡…† JŽä„ªU¨Ž (ÚLa  G“&P HÒ¤I“&Mš,ù4ê§M‹%R¤h“'Ož¦x˜q 5jÍ1c J˜®¼#§P¡ThÞ`²‚„RšU‡¦˜¢†… ^4"å‹)P @ҤɒO¥FyÚ´iÓ&Ož¨2ôÀ € ]$qÙˆÓ³`®ˆ%3F̱WŸ>}rÅ‹/`ÁŒ¹f ¯`ÉŒkfM\ºqâ²fÓ‘fâ” q &2š]Écè86P r¤Ë8•^1kµË˜2eÊ¢E3VjÓ"O®x3¦,[²dÍ¢YëÖm[¶fÉ¢ŒÖÌØ¨MŸvñ„¤Ä4ljÉv$CY]qC ±DŠ5þêÓ+Z¼‚1SÍšµnÝŒ•Ú´h/cѶ‰ËfÍšµnâÆëflרOŸýù“h“«JbXPPqÂJ*\¶,U¡då¥1(4ôx#§ŽJ•Tñ ̘1cÉšE³f-°Rž\3f œ¸nÙ²u7.]·dÀ8%úãgÏž?Š6¹"v%†Š6€X•  C\êñbÅ 3fÊÀiň­dÉš5S–¬Y´dÉŒ{õ©¯dÖ¶uëÖ­›¸qéÄ%{ÅiPŸ=}úøI´É/eÁFl²Â2”R‘ óÅ‹8ieBç%Q*%³f-š²fÉ”ESfÌ1`¯–Ú¥l[þ·nÛ¶m³­™2^žíÙãgÐ"E‹\5kÍš¦.ºüh#“¡=ž!çÉ—7p‘%*P0kÑš% Æ ±dÉ”5Kf /`ÊÄ­s×,™1`À€sµÉOŸ>5ZT*™5kÖ¢‰›3â– ¡AAƒÌ“'P’4y"­XqbY³ÖÌX0`¼vñâ¬Y4kÖš%kF­Û:wÁ^•Ú,™±V‹ úó§OŸ?ƒ^%£fÍZ·usFÀÐáK849JÓ¤É(Wä°±bÌÚ¶mÖ¨ f 0`¼x%³öMÜ·nÖ¢mWÊ“«dÑ¢kUª”"?{À| ³§Q+^þÆ’Y[OO€*:LñPÂP¡$PžxAs…JhÝ­sçÎ;kÑ¢E‹ÖŒ/`ɬ‰K—hÖ\‹–ÍZ³fÊ€}tæ‹)_Âô´éS°léÜÝÓ5 +>”øqæË.€ždѦïÞ½{úôÝs'î[7qÝš¬Y¶nâ¾mÛ¶X³lÖ¢YÛF-˜§?a¾H‘"åK˜?‹x%³fMœ;yçb%91Ç‹)V¸|òE;yòîÝÓ§O_¿{õÜ­s—n[³dÀˆkFÍÚ¶mß”eë¶-]ºmÁ\)êæ‹)_ÂôITб`ɬc/;[U|¬@‚䋤`çàþÁ“'Ož}÷Üu{µiÐ)P¤„9ÓgЦMž<}òÄ©/cÍ¢eë¶.Þ=yòäÉ“'Ož}ýôõ»þwïÞ½{ñÜõ»WO\²W›þ„‘òåK˜3-R´hÓ¦M6}⬙µnëâÝ»'Ož¼{÷äÝ“wOžƒmúT X4qéâÝ»wïÞ½{÷îÝ»wïž}úôé맯_¾h¯Jò´èÏž0a΄ ³g>O˜0a„9ÓgЦRÀ¨­‹WïÞ½{÷îÝ»wïÞ½{÷îÝ“'Ož<}òäÉ“'Ož>yòôéÓ§OŸ?}úúõ !ù€ ,Dd‡! !""% #""#""%!!%$$&"")%%)&&-))-))+&&1**2**5--2..5--911622:22=55:66>99=//D66A33C99A::E>>F==B==J>>M::K55J==S==[77P>>b??iAAJAANEENEEKCCJFFRFFUAAREE[IIRJJUMMVJJZMMZNN]II]QQZQQ^UU]DDdAAnBBoFFkLLcKKlCCpGGrEEqIIrJJuMMwNNuNNqNNxRReUUbVVeQQaSSkYYe[[cZZi]]m[[kUUrVVuRRrQQzSS|VV}UUy[[sZZyXX^^y__|bbniimaauffrffvbbraazbb}eezff~jjuii~nn~kkzqq}wwzZZ]]ƒ^^‚__„bb†ffccƒff‰ccˆjjmm‚nn†ii…ii‹jjŒiiŒmmŽnn‰ooqq‚qq†uu†uu‚rr‰uu‰vvrrŽzz†yyŠzz}}Ž~~Šqq‘ss’ss‘uu’vv•uu”xx–zz—~~‘{{”{{˜||™~~š„„ŒŒ’‚‚•……–……’€€›‚‚„„Ÿ††ž††™‰‰–ŒŒ—ŠŠššŒŒ’’““œ››Ÿ‡‡ ‹‹£‰‰¡ŽŽ¥ŒŒ¢‘‘§’’§””¢““¨••ª——¬››¤šš­¯žž®™™ªžž°££®¦¦ª¡¡²¢¢³  ±££´¥¥´§§¶¦¦µ¥¥³©©·¬¬¶««¹©©¸¯¯»­­º¯¯¼±±»°°¼³³¾²²½´´¿¶¶¾¶¶»¿¿¿¸¸»´´µ¶¶ÀµµÀ¶¶Æ¹¹Â½½Â¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÉÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÍÂÂÐþ_½:5ŠÑ Aƒõ)C†Œ”(Nš A‚ $H A‚ $H AÒ$JŸD§€#Ö«“¥P¯€ëÕ‹W¯^Á‚-c¦ :tèСC‡îÔ(S¦:)4h ?eÈT‰âÄ $H A‚ $H A‚ $H@‘ÂGQ©N%êtŠ˜µdĈõêÕ‹Ø2iÚÂ…C.ºuëz Õ©£Dƒ Ô§ ™*R¢8i‚ $H A‚ $H A‚I'P¤T!S&M™>§Œ]ƒ¶Œ±^½‚cFM[·páÄ­[·®W,S¡B9R”hP¢Dƒþ”©"EJ'Nœþ A‚ $H A‚ $H4qâÄI”(Q¢Tás*Ù5€Ô -#F¬W/c̨i 'NºuëÖ½zujT¨NŒ%R¤( >U¢D‰âĉ'H A‚ $H A‚ 'Nœ8q%J”2ŒˆY»v 1bĈKF·pèСC·n]¯W§F ÕÉ‘¢DŠ úSFJ”(Pœ4i‚ $H A‚ ’2d qâÄI”(Q¤QÔ+µkÖ -[ÆlÙ2hÚ‰C‡N:qâÂë딩PBuêÄHÑ @|ÈT©ÅI'H A‚ (`4P° ÂT¢D‰þ…Ì X˨]»Fš4f˘A£¦-\8tâÂ…ã¦M³eÁz½2eêÔ«S£:1JˆO™2d¢8qÒ $Hœ¤ÑÂ@ 8`@€ Adªô9EŒÚ·pÜ®QcFÌ3iÒ¨iãÆ›6jИ1£m1^¯bõêÕëÕ¨N‰êS†Œ”(Nš A‚$J1 0 @ C Hø)ÑŸP½ qãÆ´dɘ1c¶Œ5j× 1K¶l3mÔ¤- Ö«W0bÄz¡ê¤h ?iªDâÄ $RúªÁÀ>TÈñ…ˆŠØ5nÜ´QÓÖ´e˘Q£F þZ2fШQ ×Û5fĈK–lY¯S¡:)ćL)QœD‘Ò!, 0 €€ @ÀC§ q '.\8qèÂQ“š4hРA»ÆM›6qèÄq£ š4jÚ®A3Ö `¬QŒꓦL2g˜ð`âà @€( °¢µpâÄ… Ž›¶kÔ¨A[¶Œ3hÚ´Q£N:qá¸iÓÆ-\8nÚ¨IKF¬—©NŒ¥YbE˜ †8`À€B0 @€>(ã.7mÔ I“¶Ì˜1bÄ’1c&µká‰C·.·páÂqã.œ¸þpá´%[Ƭ4w&uáFŽ @€@€ `ñ‡kܸi£Æl1b½zõêÌØ2fШiÓ.\8qëÐ…'Ž·pèÖ¹sçÎ8nÐÒ(¬S$6­¬0 ÀÀ€ À€@‡9>@¸òµdÄz½BuÊ”©S¯zõZ5jÚ‰C‡Ý:tëÖ…ÇÎ]¼{÷îÝ‹‡î”:‚ŠY)Ç``  Œ@Áâ‡%6q£F,–©P:uê*”)^Ä QÓÆ[8tèЭ[·nÝ:vñêÝË—_¾{ܤÌA#;0 @€þ`@ÀˆŠ lP€ààƒ1c½N ªS¨NB½êµìZ¸pá¸q .œ8qâбsïÞ½|ùøå»WÊŒ!-‚ )Á€ @€ô|¸BËŽ *ø¬W¬X¯bõ:õŠW¯eÔÂ… 'N7nÜÂ… »xñîÝ»w/_¾o¬î¼™#ÈME&Ppà  p!Ä #ޏXašŒ#FŒØ2c½ˆ[&M[8qëØq»¦[¸pá¡cç.^¼xõîݡËÍ5^¢à… °ùJe`ÀÀAˆG Rd¢„,px !‡%>°0@ÀŽ;wñêÅsçÎ;wñêÝ»/^¸pÜ¡[·n:tëÖ¹c'Ž[²Alá@¤ ”P¤‚…Bh"`@À@.äá°Ä… ”x—_?~÷îÕ‹ï^½yóæÅãÆM[·pëÖ­C‡þn;wë¸QÓÀ(ŠÔ0À€ 8À’© P°àÀ› L0˜È@€@Ž]ùòåË—/ß½yóæÍ›7oÞ;mÔ¨iã:tâÄ¡['N4 r|@ñã  @`@€ƒ<9 @ÀK  $؈³¤… @à2oÞ¼yïâ½{÷îݼwïÞ½ §´eÉ QãÆ›6nܸûÀ×# `À€L€„…ØàÀF¤ :´,1A€@ÎÞ•+W®Ü»wïÞ½{÷îÝ;wèºQ[ÖëÕ«^Á[– µK)òØzà  ý @ þ ^,`À€ƒrÔi¥¥È’#C à`O¹råÊ•+W®Ü»wïÞ½›·7jÌzêÊ”©S±z»òáJ&X à%¥  20°P(Ä›<@ˆäaò‚¸”+W®\¹råÞ½{7oÞ¼{ëÖ…»–ÌX¬Q£:uêjÔ©"<„àÃ"‡î¬€@€0pðƒjºtà€ 42,X€ÀàùråÊ•+÷îÝ»xóæÍ›ÇŽÝ»uܨ1ëuŠQ¢N£FuêRÁ V4ðR‰C€RT @€€¤VaàCM#©èBt þè*W®\¹r˽{oÞ¼y÷¸]û¶Ž8nËz4H‘"@+0†…w(`€!H«0ð@©+2„¸2ìP&JL:ð `„6åÊ•+WîÝ»yóæÍË—4jââ± gmÙ²WŽýÄ0ØB‰„ uriBÁ€€ƒ·(µ¢A7³()‘£  xøQ®\¹råÞÍ›—/_¾|ù®q[7o;qÔ–#öj” 2ع’"ÄC¬Hi’)’ @¸réP¦<2 s†Œ#GxTààÁAˆçÊ•+Wîݼ{ùòåË—ïZ¸wóæþ±ãƬ¯^¼F¡a$ÄZwV‘¢ÕŠHš4¡ €€„3—2òBà%€“ŽÈ@òÅ’;h@@ÁâX¹råÞ½›—/_¾|ùò»&ŽÜ¸oטãūר%ˆÄ)‚åÐ!J“(¹Ád'6 (0pPcU°I™J€ 5I† &(,h©Á (n•+÷îݼyùòåË—¯_¯W½€õ ¶l1`±^ÒáÀ¤o4eºS‰Ò#;4ä°qS¢(X%à ׬J‚˜„aBaI @ ð!O¹råÞ½›w/_¾|ùòõzõêÔ¨W½ˆëÕ«×+ P¼!ò¨)J¬Þh¡þ”)K6^d`Ø•VÇü©k5çÐ!5g´œùÀ¶”+WîÝ»wóæÍË—/_¯^½b½zÕ‹±^½ˆ ã à ššÔŠ@!P|ðqæX¼â dV.VÃ& Z#ˆR!7$H€PcIsåÊ•{÷nÞ¼yóòå Ö+X¯^±N™:uªW/\% ø°R!Aanq @ ÂZg }˜ð…–&À´:TH4• ’sA‚,€X0W®\¹wïÞ½›7/_¾^½bÅzu*£D‰:ÅÊ”!@€Y¡‘Sˆ¡u©V^ šÀ@K¦Isæ t¨þP;!$H€€‚…såÊ•+WîÝ»yùæå;UÊÔ¨Q£B14ˆÑ©;&4HÑ¥PLl80À€@$=Î\Y €ÅPÀàÊ4I˜3™æz´äƒv8ØUîÝ»rïÞÍ›—/_¾Q£N™5 `¨NŠu2E'H‚ cU‡C‰>pÈD*×#(¼´j•‚M”X Bóf¢C…l‘ÁÄ ªÞ½{7o^¾|ùòåË×)T¨Q£F jÔ©S_8@ÀF.Vh‚0àaBV¤nÑÊóÆ•®L” 94¬ÑšC…45:4ÉÊ †0ájÞ¼yùòåëÇ_¿þ|ƒ)bÔ©S§P£F2%$@€B`jU‡Mƒ ¼D*×-M¤hA‚t©˜B™&MÒ´ª• ;yæ¬0B•ºÞÍË—/_>~ùøåË @ƒ)RĨS§Ng`ÀÅBM´òT` Á‚&Z«rÝr…m›ôP"%h%LZA:sH (v,¡ðÖ¼{ùòñËÇ/¿|üþüРAƒ)bÔ‰E‰6~pèñF—& B„ ÕêX®a±X‘òÀáŠc¬ šT ˜!4sÕá !G%†Í»w/_¾|ùòõã—ïÏ@€ A‰€`YALjƒyþri*òŠUšŽQÊÔŠY„phCIK!V‡¶pHQèrɂӽ|ùîåã—/_¿~üþôùó§Ï@€úôéÓG ^ìP`pé¤ p¹uë%LvìHØ‚‹•#«ÞPÊÔŠRY<`!ÁCŽ/!ôÜË—/_¾|ùòåë×>}úôùó‡O™2eXtAàÆ #VM¢@€R¶ŽÝ¢!ÁBŠM”ŽÕøF’-;­Ðdê…$8rä›{÷òÝ»—/_¾|ýú•)S¦Lš2eÊ!S…ŒŽ,( a€"Cž0àÂ*“+=liÕŠ«cvجþÒCÅ¡.>H A‚ƒuBp¹—/_¾|ùøõëׯ_•*UªT©R%J)RªðØ’£P B„©ˆ\‡ Ù!E$]…ÂrõÃ)Lg¼ÉCÁ…TPðÐå‚wñâÝ»wï^=wîâE‰%Š“(Q¢D‰"E 5äd©€¥  M– ×* F\ÂEj%==Ø|щÕL†,É! \,téM[7tëÜ…£¦-œ'Nœ8qâÄ ”(Q¢‚‚É£ C LA¡C¦U”(M âÀ.«P¤É›y4á@'ÄK$Hp@ÁCˆ.§x½ŠÕþ 7mÚ´…s⤉'Nœ8q%J1YPÈé‚‚G©Îr“ÇÐ p¢‚/7zH¢áC¥-!B| ò…(8q¡ÐA•ÒTHK¦Bhæ@²Á!‡(hñÂP§P¦LâÕ«W°^dÊðùhP¢DNÅzÅhHŽ´0ABA€€+!Þø¡ ȈLyH!¢DIP«[´hÙ*thR˜ ò”€E«8`zÕ«¯X¡uêÄРAŠ1êt*´e£´d@‘Ò#0x£©Î u4Õɵª¤CþuÀØZ•'×±[™JÑá`áF h–gR¯`½bõêÕ«S>}þ4ˆ#FNõJF¬ RHrÅÁy´,iÀ +MÀ`*IJynÕÒu‹«,|²ªfAJõ25P¢S§ñ!Se AŠu 5jÔ©S¦B±ø€¢ÄM+B4 `«H²¤:VG“šB… ±Z•«•®\¶Uj$§  ,lʵ¢S¨?eÈÔ‰Qš*P:ubä¨S(S£:uêÔ©“9Ñ áƒ`@áŠ+\‡r­*TÇ–­TÇŽéÊD)Ó,WBP`À Ä+ þþ¤!C† ™2}ø‘¥S¨P¡F*T¨P¡:- âŠH[0€`Á¶Ø¡äê$€…¬:¦ë–.Z¤æd‚TƒÆ xÈRÁD)UÈ”áÓ 2U¢tuêÔ©S§L…êÔ)#5D.dÈa‡   `!.´4Q¢4G­cÇ ÑZ•)/aÕñ@€A bT!S¦L@ƒý)SÅ £P¯xñz…*#EŠ1šãƒA®0ÀÀ€ 8°ƒK ˜:‚äkÖJ˜0h2i¹Å Ð`àà2eøôéÓ‡O2Qœ(õêÕ«S þˆ"K0¡è¢Â80@À€6š2b²*Ó1[`а“ÉÖ!jä¹Â€! T‘R…L2UªH‘%J'S§F…r4ˆ @ƒ1 U£ @L]l° @`‚ p âØ›H`ŽáZL˜0aZµšCÂŽLo0pD”(R¤T‘%J'P¢@ejT§NŒ%R¤¨S¨P£´„ÈSâÒ¥0@À¼d4éØ-1` ƒÆV¦C¬ðr%LD‰B†L•*R¤H‰%Š“Q§L…êÔ©S§P¡B… Í„‘V|€ n8`à€þBL³JåRS¨U¥F‡Veº’£B48P€påH2eÊðáçL2dÈHyõê•©P:5jÔ¨P£F5Ððˆ@€  K pÈ&Ì$4j&Ù²5iN¡`Îé‚ ñé#H‘"F‰ñ!C`š4ÁzÅze*Ô¨Q¦N½zõê/¼T @@€2¤à@ºl-©fŽ [¶¾XAóAGH#‚0pÀ D¬S£NzõêT§A|Êð)-1^½zÅŠõŠW¯^½‚cS¡È„ @©à%C À%ˆ`Ψñ¢cE—:+8°äþ ÞK–,°^½^:Õi2×®]£ Ú²eÄzñf 7gŠ4@ È#8Tèá€.*0(r† !,X83€#€p¸`d˜5kÖ’ëÕ«^¼N1ô-œ8qá¸]c¬W¯^ɸ¡sg#C‘¶¸z$$ƒ@`ÀB-VV1ÀŇÐà0 /rq»F ³eÀ^z‹W,S¡Ü±[·N7h½b½êÕ+·u÷RÀ”JVÞdX‘! †|ÑA‡…›;¸à  tÎhyC$Ù·kÖ -[ÖëÕ¨P£NÅ:ejÝ:qáþ®A#֋׫X½ˆq‹wÝ‹7”ÞB“…R Þ À`ÉŠ<=dA€ƒ& ÀR¨ˆ›˜¨qãfmY°^½^ Õ©Ó¨S£®a»–l™1b½z#ÆL›»{÷îÍ "'S!Jo(Aáã\è Á °ˆY‚-RDÊcÌÚ5mÖz2uêÕ«S§F2ej™1cÁˆ-#FŒØ2jâÜÕ»/ž¸3‘ ­ÐR./Z Ah ƒ 88ƒ–0Z¼Lø0‡ÒHÊ’%ƒfMÚ²WBzõêU¬X±bÅŠÕ«W0bÁzƒÆm]½{÷ܹsÇjG-J@þÖjÉ¡°ppÀ€„€ c"@-…ÔÌ),1cË–ëejÔ«W½bÅêի׫X½zõêÕ«W0fáÖ¹sçÎ]8jז죩V¶¼,YÂBÐáL!9/vX©ÓèP©R¼ˆ-#Œ±^£F™zÕ«°^ÁˆÅêEŒX/bˈcF-œ8tâ´õêEQ &JдšEÊN‹[^´˜@€@jΠY„‰œ9±J1*Åk³dɘA#vª£P±€#–ìÚ²eÌ ] §MÛ5fË „ÆŒ˜©N£xëÃÆ:´X]ÊB©È™BC¨°DL#G´@Tþ X"D½‚[&5n܈½êÄÈT/bЮ…»F5náĉãF,–©Q£¤¨Ó«JL&4Ðp†Õ%‘t|¨SCL˜ ÐrfÎ$@YzE̘1b˘A£F-Y¯S¡^õ"Fí[8nרq 'Nœ¶e½B)ˆ@Š:½"¶Æ„& ašPÄÐ7h¬ð8¢äÈ%t 5BÔ©S£e˘1[ÆŒ´dËŒõâeÊT¯eÔ´qûÆ[8qèÂ1{jÐ>|úüIÔéU/fÃ`0ÙÑâЭ<ê ‘#&LCuÄ0YSHP¬W,£F 4f˘A[FŒ±^¼ŽâµLþ·pÚ´]£³^¡ñáóg#EŒ^AcÆŒš¦#LìhÊ…Å3bÂP³FŒ4J¡!UQ,iИ- Ö«±eË’AcF¬W¯^ɸ­[m™±`ÁzõzÕ PŸ?€ubj5jРqÃ$ãEL=2t FŒ%L˜ÌcÆL§0b^Q£ÆŒX°^½xõêÕ‹4jÔ˜%cÛºxÁbꌱWŽ%¨O@ƒx£F·uzHàäÃJr”(Q¢ 79Âh©ƒKš6nפëE¬W¯^¼z-£Ö-\8nÔ iCwjÔ«eР-;uꔢ?iÈ)çө^þÄ–q[ï’ >âxTˆ (PÄqs† ¤fÝ­[ç.Þ:jÔ AƒÆŒX¯^Ì®‰C‡®›4h×^õ¢¦3fÌz™T†L)dÊôÔiT0mâØÝ;†D ,² #EÊ-Kx\"—ïÞ½{÷òÝs‡.·nÚ˜õêÕ‹5nݸiÓ¦´kÔ QÓ­W'@eÈT©"…L@Œz%£Fí›»yñl½(‚5bÄH¢…Ö»yóòÝ›w/_¾|õÜ­[‡N3c½ˆƒMš6mÝ’]㦠:mÁ^)êS†L•*dÊôItª±`ɨ‰s/»T^B€8ÂÄ ¢aæÞþ½{7oÞ¼wïæåËw¯^½zîÖQc&4hФiÓŽ›8tî܉ëuŠQŸ2dª)Óç£P§^ŠE,™6€áб‹7oÞ;sçÆ½{÷îݼwóÞÍ{÷îÝ»y÷òÝ»—ïÞ=wá¡[‡.\¸pṋÏݺe*C¦ ™2})êÊÔ©P¦^ƒví[¸uñæÍ›÷îݼyóæÍ{7ïÝ»wïÞ½›7oÞ½|ùòåËw¯^¼xñܹs·n]¾|÷Üq‹Õ)Q2UªIÓg£N¡B… ÕéT/bÉ ]ã6.Þ¼yóÞÍ›7oÞ¼yóæÍ{÷îÝ»wïæÍ›7ï^¾|ùøå»þwïÞ½{õÜñÃW/ܲX‘©B† >€)JĨS§NŽ:êÕ+™4nèâÝ»7oÞ¼yóæÍ›7oÞ¼wïæ½{÷îÝ»yóæÍË—/_¾|ùøÝ»w/^¾zè–õ2¥¨À2dÊ”)ÃÐ @}þ R¤ˆQ§Q§x-ƒÎݽ{÷îÝ»wïÞ¼yóîÍ›7oÞ¼wïÞÍ{÷îÝ»wùòåë—_¾|÷îݫ׭׫Qõ)C& Ÿ2|úôáÃ'Mš>ƒu2uª´pëâÝ»wïÞ½{÷îÝ‹wïÞ¼yóÞÍ›7oÞ»yóÞÍ{7/_¾|ùúåã—/?i¼N ÅŸ2eÒ”)Ç>Oš2eÊ”IÓgP§S½¤¡‹WïÞ½{÷îÝ»wïÞ½{÷îÝ›7ïݼyóæ½›7oÞ¼yóòÍË—/_¾|ùøñ !ù€ ,Dd‡! !""%)!!#""#""$!!%%%&"")%%)&&-""-)).**,&&1**1**5--2..5..9..=11622511:22=66=55:88>66A44E66J99B::E==E==C>>I>>N::K==S<<]66Q>>b??iAAFAAJAANEEMHHOBBRFFRFFVBBUDDZIIVKKTIIYMMYLL]PPURR^TT\XX\CCdAAnBBoFFjNNaLLdNNnKKkCCpFFrIIsJJuMMwNNtMMrNNxQQbQQfUUbVVfVViSSlYYe[[dZZm\\kRRqUUrVVuRRuQQzSS|VV}UUyYYv^^u\\qXX^^y[[{aamddfbbrddtbbybb}ffzff~jjvmm~jj|ss~qqwZZ]]ƒ^^‚__„bb‡``…ee‚ff‰ccˆiimm‚nn…jj…hh‹kkiiŒmmŽnn‰ooqq†ttƒrr‰uuŠvvrrŽzz…yyŠyy}}Ž}}‹pp‘ss’tt“vv•uu”yy–zz—~~‘zz”{{˜||™~~š}}š‚‚‚‚…’‚‚•……’††–€€›‚‚……Ÿ††Ÿ††™‰‰–”‰‰šŽŽšŽŽ‰‰’’œ””—‡‡ ‹‹£ˆˆ¡£¤¥‹‹¤‘‘§••¢““¨——«••©——¬œœ¥™™¬››®œœ¯žž®ššªžž°¢¢®§§¨¡¡²££´¥¥µ¦¦µ¥¥³©©·¨¨±««¹©©¸®®»­­¹¯¯¼±±¼³³¾²²½´´¿¶¶¾²²»¿¿¿½½½¹¹¾³³´¶¶À°°Á¹¹Â½½Â¾¾ÅººÅ¿¿ÌÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÊÊÕþKµ*õ‰Q¢Aƒýac¦Ì”(Pž A‚ $H A‚ $H Aò$ E¥‚+¶«“¢N­v ¶K×®_¿‚k†›9sæÌ}ûfnÔ§Q¥4)J4h ?gÊX‰Ê$H A‚ $H A‚ $HžD±Â'Q)Mš ÒTª4eÂýúõ+2hظ™3ÇÛ7sèv•êÔI£Dƒ äçL+S¢@‚ $H A‚ä $H A‚É(Q¬X)sæÌ?ŸMƒ†¬X°_¿‚k6 7nܾ¡C‡n׫QŸ:iR”hP¢A„þœ±2%J(P þ A‚ $H A‚ $H<J”(Q¢XáSªY5€Ó  ìׯbͦiãfΜ9tèйjUjT'NŽ%R¤(Ñ >V¢D‰ (H A‚ $H A‚ (P @‰%Ê”3ŒŠY«V Z±bņS6 ›6næÌ™3g.W¥>}ê¤I“¢D‰ úsÆJ”(Q <‚ $H A‚ ’2 %J”(Q¦œQ´K™µiÓ !C¦ 2hظq3gΜ¹oܸ ÛõªÔ¨Nœ:iÒÄˆÑ @|Ì”± ”'H A‚ $18``a`Be¦D‰þÅÌ WȦa«Vm´fÈ”A›†m7sæ¸qÓ† [3dÃv¹*5ªT©RŸ41JˆÏ™3V¢@ò $H 4a1Á@ ˆðQaÇ¡Oe¬ø)5Ì7nÚªMkV¬X³hѦaÓ¦M›¶iК5› Ù°]®^íÚµËÕ'M‰òs¦L”(Pž A‚$J ”pÁ€,P ðiNÁ aÓ¦m4eÍš5k†¬Y´iÓ 5k† ™2lÓ¢!ûµkW°bÁv•Ò¤hР?g¬D‰ ’(SµAH‹ °l)ÁI ºPÔ©X5mÚ°Mö 4dÆ M›6 þš²fЦMã¦M[µfÅŠ!S¦ Ù¯R4)ħŒ+Q DAãF ƒBl¤ØáÂ ðØ¡¥†F¥ iãÆ7sè¶EkmÚ4hРA›¦M6sæÌi› Z´iذA+¶ à®OŒâÃÇL™2hÆÌ1`€Š 0`€! 8ðÀ$X5nß¾qãÆM[µiÓ¦AS†¬Y³hذU›Æí›9nÜ´aæ7mئASVì×'MŒ±™BÆ 00€ `À @„ îTÓÆ›6lÓ Eƒ†¬X±aÅ”5ƒ6mZµjܾ}3‡Ž›6nܸiÓÆ·þoܰ)C¦lT˜F˜60```€ 0`À€6`À !ChÚ´i›Ö Y±b¿víÚõ˲fЦaÃÆ7sèÌqûöM›6næÐ¥S§NÝ7mÐÎ$j„…† Ô`! 0P€ LLÐÂMÛ4eÃvµjUjÔ§R¯výBÚ´iظ}3gÎ:sèÐ}û†NÝ»yõêÕ{GnT Jn^T`À€† rD0À€ \Ø`£B… "2i›6ÌÕ(Nš4iÒĉÓ']Å aæm7sæÌ¡C‡:tïæÕ«§ïÞ½zܦˆÚ…… 0àÆ þ LÀÀ@ˆ@00 ƒ2d»J}êÔ‰'Mš:µú…¬7nÜ´iãÆíÛ·oßÐ¥S÷®^½{÷ôé«G Ñ.J\@¼ébÀ€ 0P! ¸`$‡ \ùµk—.]®\í*UJ0dÓ¸qãfN›6mÚ¸qãÆ :uïêÕ«WïÞ=rgXYóó¥‚ @©#aÀ"H€1'JH¸a@ª+fl˜±b¿~C ·oèÔiÆM7nܸ™C§îÝ»wóêÕ»ìK¡]ht °¤E2¡T0À ‚ $±Áå…‹W&D0´iÑš)þƒ Y³iÓ´¡{÷®ž6lÚ´qãÆÍÜ7sèÔ©S§NÝ»o[‚¼ÅEƒ ‘ Q2dK’`ÀÀB "@2¼HQâ‚„iãÆM6mÛ¦mãfnÝ»zõÞiÛÆ7nßÌ}û†:uèÌ™ƒd£† N 0PˆUP¡B©0PÀÀ ¼ñ1`@‹/LâŽ:uïÞ©S§N:uïæÕ«÷î7nܸ}C‡9tèÒ©CgN›³®hI3À€ròLÉ*0À€‡B_€D¸ÀÄäp§OŸ>}õêÕ›7¯Þ¼zõâÅÛ¦ ›6nèС3gþ:uè´MÃC`€,6 00àB q„Õ1`@C ˆ E§ † ¸0 „T÷îéÓwï^½xñâÅ‹/^ pÌœ6¬V=ò aˆêÔ™ÐeÍ9(‚))Œ˜ $0P E9qâĉçÎ]»xñâÕ«‡.;tÚª)ûUŠQ"MŸ>QªÀ€À€]êDŠƒ§–¬.&LØPçQ$$ùX&Õ#At”ô¸`ÀþDä'Nœ8qݹs/^¼xõ´iû†.Ý7mÈv}4ˆ‘¢4 @ &ZnàbeÉ@xXQÊ#‚X=jÉБ'H``À€8âĉçλxñâÅ»wo´ißÞ¥ã6 2WšBƒ äPÂF -V0ذ*–3J˜$À#ÉF†BcŽÉP ˆ !Nœ8qîÜÅ»wï^¼{÷ªiC/ž»oÖŠ+öªÓ 64ðÁâÑ(C†B©Ò“D€²T…¢•犤PbxˆI#†“+ 0`À€Å†åĉçÎ]¼{÷îÝ»w¯Ú7wñâþ¥Ó¦ì׫]»>ibáãœ<]$©2$)”$Yb2pX“+” Ux€àI#ãˆ!€c\`8r„€PÑã˜8qîܹ‹wïÞ½{÷î«ö9nÓ”{õêÕ§CW²taEKC©ðȱ$)!:rj…ª ÓK‘`p1)Ç GP0¨PP‰'λx÷îÝ»wïž.W»ví †ŒX±]¯\S ˜H”â0˜ÓÄ# –0¥bqåT$s¯0aŠ…H&U‘œðPr¤ 6Ô`C8qâܹ‹wïÞ½{ûîírUjÔ'W¿‚û¥k—.B€`Ês¦Å’, þ²EÖ¡uêÔéS©R_8 xcËC !DØ -Z˜d©r6C—C¬Úˆae¨!Z˜ê°ð† 0(‘«Ý½{÷îíÓ§OŸ¾þ{ƒ)b¤‰§NŸ>ú¤€‡JÂj(`C‚"ÁX…ÂÅÏš¥7"Dt¡!)ÍDˆ"Ù¢e¨9( ØH` §âÅ»wïÞ=}÷ôÝÓè A‰)RÄHS'MBÔ¨uÌÇA #ìV¤Gµ0ù¨„˜I¢s+¢B’êD²$Š@HHpV¼z÷îÝÓwïž¾{÷þüùhРAƒ)r¤) –„u0À€«„ᢅk‘DŠØ "¦9‡X¥Ò¢âÐA…j@PÃáH u‚Õ«WïÞ½{úôíÓwïÏ@€¡A‰€ÑQ$T—!þ|`° W­6qR¨@ã>Þ}úþøùóÇÏ@€þøñã‡G‰7>"á1¢Ä zޱbbƒ xB㘈U’¸øxÔKU‡ ÅA‘Á @NÕ»wïÞ½{÷îíÛ§>~üøùó‡Ï™3g¾\Ȇ& H¨ çX-D¨`>p1( Œ"yt€ññEK JˆIá!Å©zõîÕ«wïž¾}ûö9sæ Ÿ3gÌ”)S¦LŽK¶¨Âc Â€NáÊA„  0€PCN¥ DÀìþÈr¥ D‚€```– XÜ©wïÞ½{÷îíÛ·oŸ•2V¬X±beÊ”)S¬`±ÁEH( PAÕ£"$DháÁ€{r±ê"âHXTéRLJ¼¨PA‹uêÞÕ«W¯ÞB„0` Ë#aqêHÊD¦T´D „ .1RÄH“«`Ê MÃeŠ•2eΜáÃÐ Egäd‰cCYêÔÑÁÀ@,@ØÀ„ÅA²`ŠsȘ :,ÂD+ °,Á¦NŸJ•zµëׯ]eÎðùhP"EœJ½rEéŠGda!GÏ#" H€À€‚ÂT˜€Â¦B²$¥ÙC‚L’y€ \•rµë׫WŸiÒÄ AŠQÒT*4dŸ6lxÉ€„ Aha Ä ThRÇ þ] åZe«P'bD@³Å„  #¢áЮ`»\íÚ¥K“>~ü4H#FšFý*6ìÕ0Eô0 âÍ#"`‚€`À@ y¸`)rGL­\¬p…𓦠[R0`Ä™³.(é•hРR¥±)ce BŠiâÔ©S©RŸ:Ù°a ’7Hl(¢GR < p¡‹=Nå¢U “¤P”Öt ¢ÅY„Y*¡S'?lΔ¤‰Ñ™)P4ibäHS§OŸ8iÒÄI“ ™* ˜PŒ5[¡tH`À Ë¡9sä YÑ׬Zµ$±*†Ž `PG‹þ±)S¦L6~ø˜±…S§N>}úÔ©S§N4©æÔ€%R(#²j– "NYzÇG€"XÕ’…)%U’ Õ©Äê€aà„•2eÊœáŸ3V¢púTªT©R¥>uÒÄ©“£-RÔR0`€„C"|TºÁ€„L§| Èä”%Y†X±²E§s 0À È ^X)s†@ƒý9c £O®t½zUª#EŠ1R3`‚,0ذ  4©”+È%´Ô‘µ*U*Aa µQ’FT 0`ÀI™2gøüñã‡Ï™2V (úÔÊ•«Rš þP"NZ2ØÂ € 5Z`@@ƒ‚rJÐg‹¡Z©è`’¤$’!:yR00€"ªX™b¥Ì™2V¬L™%ЦQ¥>qr4 @ƒ1ê«ÀL AÄ7 0 ¢Ä’Rµ¡%ëQ˜TªÄ¼ R‡ÖPLØ!C”(S¦X™%J”(Q¢@ù4ê'MŒ%R¤ÈQ§Nv€ ø`ñæM„:€ñQË–!\”$Á*Rž8‡dÉ1@Å„8\D™R¦L+S¦L™% ”O¥FuÒ¤I§N:uêÔi ‡  ¡‚Ž •peÀþȵên0°ƒÉ, |`Z †h«f Z3d»\•*åJ׫QÔ¥C‡î›6hÁ^•Ú Ù6u󄥈`€…ª7(С`ÀD–¨@.˜ÀH`0“4.Ø@„•¡,rꈰDlÚ4lÓv•UÊU«RŸF•U 2dÁŠ+6l²ißÔÕ«÷î7-]a”ÅņèÄ@š#(„Ð9„'R›;»”)ƒ6 2Wš:µråÊÕ+]¯^éÒ¥kׯ`Á~ƒ¦MݼzóÔ©›‡©ŽšC©ÞLþ¸¢…… 000 @¡6b¶paL“:†ètÁµ+X±bÈÛ5êS)W¯^½ÒµëW©W¿víÚõëW0hÜЩS§n·iÓÄD”*• bêÄaâ˜Ð$‰ =ƄٲC‰V¯†!+¬Ø0]£>}rµk×®_ÁнúU,دbÈŠk6›9sܰýúMA…buá‘OŠ9[^ˆÄÉ1†”¼HC§NžC; `¡ôª˜2eÊ A+VJ£N®€+¦¬2dРMÓ†M›¶fÊš„†¬X)MŸtýbˆ˜G@€`‘ )’‹šÈ€!ãH:…Ò„ATþÇŠ:»‚CmÚ4mÚŠ•ÒÄhÔ®bаq«6mÚ4mܾqÃ6ìÕ¨O”H“«N%"¤ Ä˜= Í ñB UŽˆyTç 'Nb@Ì¡4¬X±bÅšA›6 Ù¯R\ý*67mتiãöí6d¿8%ˆ@Š4•ÆF 0à9ãK'Nœqr¦Š“~þJÄÉÕ.dÍÈÌ …ÂEŽ4h¸Ô9T§Nš6tš´¡Ó¤Q«A…è «6 š²fÈšASV¬Ø°_¯–Ò¥ ›þ6mذU› Z³_ñáóg#EŒ\AƒmÚ-%;ôØpRMš:gÈŒéG¡BcМi4h‹ªhК!ûµë×°bÈ)S†ì×®_ʸ¡K Y±_Á‚s¥ ?€iRT Ù´iÓ qÃôÂFŠm¶pƒ¦J•6†êЩ‚¦Í5\DM›Ö¬X°]»^éÚõ ´iÓš!kM:uÁ^•Ú¬Ø0WŒ È@ƒ^!‹6 7t–LäࢦÎ%U¢(‰2%&:g Ñk6lÕ¢ ûl×.`º€!›Æ7mÕ¦aûVê“+dÓ +5ª£?|Ì”9ÃG“«]þÅaC÷®Ö Jò"SeJ”*i´´1Ô¦M!gÕ¥C§îºiÍ Aƒ¦lØ®_Ȱq3gnÛ4hÕ\ý‚VmZ³fÊ~}ĦL+eÎø¤éS0læÔÕ³æ£Å "iÆ ©ÂeM.tê„w¯^½z÷îÕSgŽÛ6nÚšýú¬Ù´mܶaÆmX³jÓ¢MÃí'@gÊ”±b¥Ì@Œv!‹6m›ºxéRmé±… ™)dªŒùfUºxõêÕ‹wïÞ=}óÔ¡Cg[³b¿†ƒ6m6lÛMÃVÍœ¹jÁ\)òs¦Œ•2eÎøTj×°aȦ}K÷î9T]x8A… "aâÜþ¹‹/^¼vñâÝ»WoÞ¼zêÌMkmZ´hÓ°aÃÆM·oèÔ} VJÑŸ3eÊ”9ã£N¥\•r5 Y5€ÜÌ¥{/ž;råÀ¹‹çî]¼xñÜÅ‹çÎÝ»xõîÕ«W¯^=uܸ™[gŽ·mܸ©{÷N:dš:SÆÊ61ÒÔéS©OŸ\‹†M7tïâÅ‹çÎ]¼xñâÅ‹/ž»víܹ‹/^½zúîé»WoÞ»wóÔ©S‡¾{õÔm{¥)+V¬œaãg&Mœ>}êÄéÓ¯bÍ MÓ†î]½xñâÅ‹/^¼xñâŋ׮;wñâÅ‹W¯Þ½{÷ôÝ«þW¯^½zïÔé³7²Wš)S¦Ì61RÄH'Mš8}Úõ«Y4mææÕ«/^½zõâÅ‹/^¼xñâ¹k×Î]»xñâÅ»wïÞ½{úîÕ«WoÞ½yæ½*¥ÈÀ3eΜ9ÃÐ @~þJĈ‘¦O¥^!ƒÆM]½zõêÕ«W¯^¼xñêÅ‹/^¼xíâÅk/^¼xñîÝÛwïž>{öìÕ«Ç X©Nšù9Sæ Ÿ3|üøáÇ ?ƒiúTê4nèæÕ«W¯^½zõêÕ{W¯^¼xñâÅ‹/^»xñâÅ‹ïÞ½{÷îí»§Ïž>hºJ⤟3gΜ9Ç>Ï™3gΜaãg¦R¿¢¡{7¯^={õêÕ«W¯^½zõêÕ‹/^¼xñâÅ‹/^¼xñâÅ»wïÞ=}úôé !ù€ ,Dd‡! !""%!!#""###$!!&$$&"")&&*&&-##-)).))+&&1**1**5--2..5..9--<11600322922=55=55999>66A44D66J99A::E==F==C99J::M==I>>M==S==bAAJBBNEENIINAAEBBQEEQFFUBBUEEZJJVMMVJJRIIZNNZNN^II]RR]RRWCCdAAnBBoEEjNNaLLcNNmJJkCCpGGrDDqHHrJJuMMwNNuMMrNNxRRaUUbUUeRReQQnVVnTTjZZf[[dZZiYYn^^j]]nRRrVVuTTsQQzSS|VV}UUyZZrYYv^^r]]vZZyXX^^y^^}bblddgbbvffvccqaayffzff~bb}kkujj~ll{rr~ttxZZ]]ƒ^^ƒ__„bb†ffbb‚ff‰ccˆjjmm‚nn…jj„hh‹jjŒiiŒnnŽnn‰oorr†ssƒrr‰uuŠwwqqzz†||ƒzz}}ŽyyŠqq‘rr’tt“vv•uu”xx–zz—~~‘{{“{{˜||™~~šƒƒ‡ƒƒ’……’……•‚‚•€€›‚‚……Ÿ††ž‡‡˜‰‰–ŒŒ•ŠŠ™œ’’š‘‘ž••’’•‡‡ ŠŠ¢‰‰¡¤ŽŽ¥ŒŒ£§••¢““¨——«••©——¬››¤™™ªšš­œœ¯žž¯©žž°¥¥¬¡¡²¢¢³¡¡±££´¥¥µ§§¶¦¦µ¥¥³©©·¬¬´ªª¹©©¸®®»­­¹¯¯¼°°¼³³¾²²½´´¿¶¶¾³³º¿¿¿¹¹»³³´··ÀµµÀ¹¹Â¾¾Å¼¼ÃÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÅÅÉÆÆÈÇÇÊÃÃÈÈÈÉÉÉÊÊÊËÊÊÌÌÌÌççèþeÉJU*"Dˆ JƒæÌ)OŽ9räÈ‘#GŽ9räÈ‘#GŽ9âDJ G¨„1K&,T$Q²„ì0aŠ5£æÜºuëÖ•+·.U)T¨B=B„Q¡AiÐX‘òäÉ‘#GŽ9räÈ‘#GŽ9räÈ‘#GŽH±ÇQ©P‘! •*5gÇ„ &¬X3kÞÈ‘[GŽ\¹uï„¥%*T¤Gˆ!B4(Í+S¤èСCžh“LÑ¥X— ñÀ…LŒ:qâÔHG€rን+V1""4±$‚ŠéСC=zûöíÛ·o9xôèþ¹;ç¬0`¿JÅ‘@"1¹8Åâ«ÍŠ.)jÄëÖ+S\¸0àÐÃÏ€±bÝÊÅ!BƒVX°a:tèàÁ£·oß¾}ûöÛvî\¹sÛ¢ûõëª5$^0 °¯X¦(ÅzƒQ,?‹8ÝÂ…© ˜8<±úÒÇÓ+; 4à b„ *V¡C‡=zûöíÛ·oß/YÀ€+ÖŒY2`´d•ÊC$E.éÀ"ÄP¬Wœ,™â AO.X†.qh°á–©.d˜€Ñ AKRdè:tèàÁ£woß¾}ûö“%+U*YŠ ­;b8l`0*¸ÜâþµgÑ jäÒ¥Gš„#ná!ÓdN4Á¥ &¾ C‡¼yôèÕÛ·oŸ0a€ɒ%,Y1`Â’%kƒ¥G!$ä± B@S¼nuà W–6JfN,CLšd‰!B„:ج !tèСƒ7=zôèí+&¬˜°_²R¥B•ê—0a°Œ @À„„ !îøá´ 'ðþ±Â§Ä"•:*C¦‹Š.€h0„B 2¨H‡:xðàÑ£GÞ>a¿hÉJ•JT$GBÉJ¥Ë4ñ%/N»ŒqR!­„ xj|`•‹£8d˜i!þB„B$h@ ièСC‡Þ\ !dÌc”.™2ĆIŠ&"H¸@ã ôhF˜à‚‰B€ x4ú=zûöíÛ·oß¾}û *T¨"Dˆ=ŠjÇc5$HàÇ.?mبH¡A†$Jð™sç–ž2–]Š…çN'œ8bä†K‡ B$¸Q¦È½{ûîíÛ·o_¿~û 4HРB… 4–X_ø  A0 Hø!B )ˆð’fa.¬Æø#Ä%Fu€4è@‚’CæÜ»·oß¾}ûöùóç/P @‚ 4(Pš4iPŒÁ"f €QÒÀ†4h`¡Ò­eWXUÏ.¾pRÄ©OX ÁA‡˜{÷öÝ£·oß¾}þü¥I“&M 4iÒœ9s挎:Jî„ À€@€%4DhpABƒ ,¼ŠµÌ§ }þÁÃȘ!JŒø$àðâC/h̹·oß¾}ûöùóçÏŸ+V¬X±bEÊ”)S¬À£$ˆP"Aƒ7,4hРÁXËÀà¢áŸ1±êÔQd)O 4¨¡EÈwîäÝ»wï^>wîäI‘"EÊ)R¤H‘2eŠ!W$àð"ÄV Dˆ`ƒOˆ"Ì€U,H¥+FØùbÅ•>˜âÀà`"Aƒ"4–èF͹rïÜ‘Ãæ­Ü“'Ož˜€ñèÑ£P©h%£¶ 6'Nž©"EÊ+h *„'þ :‚ðÑ1Ç@‚+|4h`ERØ©kÙ2O#À„pË "¤ QãFƒ. =Šô(”¬bͨaû&eŠ•3gÒ ¨¢GŒtñáðåŸE5ˆ$ Abà 6$ æ……,¬éñ¤b„Š!DhôXÑ ‚ *8¬0°£P¨R©R¥¢L˜0`gÒT‘£G¡RÑ’e)Å!Bð15gW |(Ñ ‚w8øxÕ'–©Nvj¼Ø@„ƒ ÁAäE]•’LØ/Z¥&… ¨P!D"E •ª˜³f˜FÌ¡ ˜E?¾p á‚ >Dh †¦1þ”.™Š³èà !pøÑ „.wÄ `°bÂh ,” A‚*„(R¤H¡RvŒ X¬¸QƒH.|¸¢Aƒ?òÄŠµë§KŒtèàòâ am N+åÑ£R©":cQ!D&…%ªTªT¥BéÐô!Á‡y²`!@BBƒ,\øQI‘¦WËpÁR¤§ ›%p¨hÐ XœÀd°!”(AÒ¤)*R +OB…Š4)”(T¢B… *”ŽJ!Høò§Æ,hР—Wk:ù赌×%2eâĹôeEƒ Œù‹Fƒ- þ:sæLš@‚¥™"%”(Q¢D•*%J”(Q¢&3‚=V¬P1¢ ¤¸uk€½–-3‡Í%Em„$H@ …:•zHHÀƒ+VΤ$¨ 4V¤„•*UªT©J‰ JT$05F ¡ÁŒDHH¸ziÂÅ«×.FŠ í)“d‰ d²ÂD‚ PX9“& BŽ Jc¥J$Q²~Ñ¢•JT¤G"E’¤ÂF€$ ‘%‚…(HP«Ò®^½váRÄèÍ2e∠` A‚H0‘ É4i (Pš3Rž8*%K–¬T¡!*þT(Ñ£Rch@àCvF0 @‚s(àêÕkÙ­=qöäÊ¥HÓ‹ $H`…ªX™båLš3V¬L™"¥J(T©D… å¨P¡Bˆ=¥kÀ4hàÅ@€€ ^½v-‹¥(Ž)[°ôèR'È BÔIAƒ)S¬X™"EŠ)R¤<)…ªT¨P¡9zô(”(Q¢´P ƒfÌIà :ÜYöê¯KöèŠeЉ¢1cò¼¸Ò€—PH™båŒ+V¦L™"åÉ“R©P‰ *T(Q¢B‰%J’†„@ Ä+"Bà þ®e_*åbd(/cžYª³‚ ViÐ ‰+ià (Mš3gÎXQ%K*Q¡D‰*UJ”(Q¥Ne8 @…Ÿ (h“ D $øôâsÌ«EŒpéÉ¥gÍ"E3leI „ŽÁ„(Ò£GŽ :ƒ`š4Å„ÑJUJT©R¨RÉ’%‹-˜pq‚"}|X`q+Ÿ]ò¼¢Ôˬ.q`$¨T Œ© 4 ¡†®T¢RÉ’%+U(DpÒJ£ÍY2`À~Ñ¢%ë—0aÂŽ%ó„!Àz4S©Ÿ\ÕD¨xu‹/JŠÊâЀ@>œÖ\J AþÄ0sÖ¬˜0`¿d¥J% Q 3Û¶mÛF-Z³fÇ€–ŒÚ7m ¡ y.ubvŽ@=”8Q¢´£ — Hè婌" 4Ѐ6lÚœ%FK–,`¿JE*DŽ\¹rä¾a£– Ø/aÍ­“G$€€&$X‘%B wdðÄI—.<†ˆ¨cÀ€>ŠºèIPBƒl|Û†š3fÀdÉ’Eë-T¢Ü¹{÷®Ü7jÂhÉ&¬Ù·w÷p @@ê˜H @‚;wâÄ*uJ…` ¬øÑcÉ=?.DH@Ó¹mÚ¨9K&,U©R¨dÉJ…*Ý»räþ¶QK&Œ–,YÀ’yËwÏ !à1 Ž0ðSB'J\P``BE1”€\Rô£AW¨}Û¦­Y1aÀd•*T)T¥¶mÛæ¬Y³b„ KÍ›»|÷îiÚ¡Dˆ!!¸ˆ GžX"’„bÄÄÈBp¡K‘ž8)x bKÛ¶oØ„¥*•J–¬T¨J¥J…ªY³fÅ’5Kv,Y3läÜÝ»—OÞ¹}L\áÂ@C np)È#C’&M’ìP!€S¹réagC]—œ9£¦M3Y¡D¥’%K­_´hÑ X±bÅ„%£FÎ]¾{÷ܹs—'JŒôþqÃ&®Nvȉ!#Ip•ëU§8l´ÌXT¬X2fÍš%†ª”¬_¿hÑú X*Z„&LX±háÞ¹sçî9lÔxàéT‡Æ¢+‹ô”aÒ¥ ›8IÉhÓa “=zÚÔÁà ]´Ž5KV,Ù1`¥D¡’ 0aÅ’Ñ–L˜°dÍ’%‹†Üºuä¼ f­N=A8´qÅTIÊiÒ%ŽŒ7MºÄÁ³fŽÄ¡õ+™3gΨQ;–*T$Q´€Km[3gÔ¨mûæÍÛ·hͨ¤íXªP¥~ CAÌ CNÄÒc$I#F’è)#£ %7nÜÄ Òþ€CCŠ%sF ¶oß’É ©°dÔ¾‘Û† ¶oäÊ­û–ŒªR¥*äh’¬L1:œ Q§‰Jx˜È`cÄHELÖÄ1O L,Iu,Y²dÌ¢QÆ͙°T¢d c†í[¹oÛ¶m#Wn·fÂD9*4(P BBÉ*v¨Ï]ª0qËM&FdT‰ã¦!=o.¹BŒžfÍœ9sÖŒ5gÍ’ £…ª°fؼ}ûöíÛ·rëÈ9“% ‘ @ r$J°hκ ‰Á¦L.yØ€aƒ§ 6léQ¤8â$ƵhÍ¢Qs–,Y²b´¦’ÕÌÛþ·oÞ¼mÃF-Z4a¢ $Q¤G‘dQ£F ›®-t°)SÆ ™28¸€Y¤H'<{,YZ¦Œ,lÔ¢5LØ1eÍœ9s–L0aξ½s­Y³bÅ„ “ªP A……Š”ª¶mب‘‹ub %7oÔT™R¦#7Šô$±'ΕnPaÃ-Y1aÀ~&¬5lØ¢9‹FíÛ;wÅh¥v,Ù1Y‘!*TH Bˆh)£†¹wžZÄÁóæÍ”*M’TÁÓgϋިQs¦Éš6zâ°a#Œfݽ{çÎÝ;lÖ¨Q£Ö¬0aͼ‘[Wî›5jÞd £¶ [´hÑ„•B茕)gÒBJT1lëÜÑ“F¤ —8rÔT ’EG&”úPâ¶ïÞ½{ûöÝs·.Ü7rߢ,¶oä¾yÛæ-Y´mÛ¬aÛFMX¨BiΜ±2åLšB‘€5öí›;zîVáè§Ì™7q¸ä©”…œ4iÒ¤#Ñ$TÀ¨½“—ïÞ½{÷îÝ»wïÞ½{÷îÝ£G=zôèÑ£G=zôèÑÛ·oß¾}ýúõ !ù€ ,Dd‡  !"%(!!#""###$!!&$$&"")&&*&&-##-)).**,&&1&&5**1**5--2--5..9--;11611:22=55;55>88>66A66E22B66L99A99E==F??@::J>>I>>M::M==S<>bAAFAAMCCKJJNBBQFFRFFUBBUFF[IIRJJVMMVMMSJJYNN^LL[PPWQQZRR^UU\[[^DDdAAnBBoFFiLLdJJjMMlCCpFFrHHrJJuMMwMMvMMrOOxRRaRRfUUeVVbUUjSSmZZeZZj\\mRRqUUrVVuQQvQQzSS|WW~UU}VVyZZqZZv]]q]]vXX^^y[[{cclkkmbbuddsaazffzee~bb}kkuii}mm~kkzss~||~ZZ]]ƒ^^ƒ__„cc‡aa…ffdd„ff‰ccˆjjmm‚mm…ii„ii‹kkŒiiŒmmŽnn‰ooqq†ssƒrr‰vvŠuuzz„yyŠzz}}Ž}}‰qq‘ss’rr‘tt“vv•uu”yy–zz—~~‘{{“{{˜||™~~šƒƒŒ‚‚’‚‚•††–……’€€›……Ÿ††Ÿ……š‰‰–•ŠŠ™šŒŒž’’••ž‘‘š’’—‡‡ ‹‹£‰‰¡ŽŽ¥ŒŒ£‘‘§””¡““¨——«””ª——¬šš¤šš­œœ¯žž¯™™ªžž°››´  ­§§ª¡¡²££´¥¥´¦¦¶¤¤³©©·ªª¶­­´««¸©©¸®®»­­º¯¯¼±±¼³³¾²²½´´¿µµ¾±±º¿¿¿½½¾¹¹¼²²µ¶¶À¹¹Â¾¾Å½½Ã¼¼ËÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÇÇÉÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÊÊÕïïöóóúþS½JuJÒ¡C‡:c¦ •)Q (Q¢D‰%J”(Q¢D‰%J”(QeÊG§|3æKT#Q¯‚ æ«—¯`Á„1‹¦Í:tèÐ…C—.Õ¨Q§>9:tèР@gÊ\™%Š%J”(Q¢D‰%J”(Q¢D‰%J”L¹ò§Ñ©O•‚”ªX5eÄ„ Œ3iÚ¼yCçͺté‚¥%ê$G‡:èL™+T¦D¢D‰%J”(Q¢D‰%J”(Q¢D ”(R¨\)sæÌ@£˜Q‹Æì˜°`ÁˆkFM[7oèÂ¥K—άQ£D}rÔèP£C‡¹B…Ê”(Q¢þ(Q¢D‰%J”(Q¢D‰%J”@‰%Ê”)S¦\”J™5€Ô¢1,X0cͨió†ºtéÒÁJ•jÔ(P5rä¨Ñ ?W¦L™%J”(J”(Q¢D‰%J”(Q¢D‰’(Q¢D‘"eÊ”3ŒQ³f-š1cÆ„SFM7oèСC—.]/X©FõI’£CŽ t†Ê”)R¢@¢D‰%J”(Q¢D‰%J¢(‰EÊ”)S¨œqäK5kÔ¢)cÖŒ³hÚ¼yC‡ºpá¼ó+Õ(Q D}ú R£AÌ”¹2%J”(J”(Q¢D‰%2PP˜b‡!H„¦L™þ2ÅÌ¡X̬e³FZ4eÌ”E£¦­›7tè¼yã¦M[3fÄ|ÁJu*¬T£>Aj4èÏ3e¦D‰E‰%J”Ĉ0AÀ  àeQ¤CS®JEŒš7oܬUSf̘2iÒ¨iãÆ7jÑš5£™°^°bù æ Ö¨OŽ t¦ •)Q (Q¢d† ˆ0à ¨hbèP QÁ¢qãÆZ4eÍš5kƬ5jÔ¢EkÆŒY3mÔ¢1 æË—0cÄ|ÁåèР@g®L‘%Š%2"``B„&€ØP‚0X½$ʘ5nÜ´QÓÖ[4fÇšQ£F-þš²fѨQóƵfÆŒ1S¦ŒY°T¢>9ôÇÌ•)S¢Da!B B¼È`À€ B¡DzT©¢qóΛ7tè¼QkµhÑ¢E³ÆM›¶pèÂq£V-Z4jÖ¬E3æ  ¯Q úsæL*(Èð ‚>y@0@ÁC'<4<(‚,–5oáÂyóæ›5kÔ¨ESƬY3iÚ´Q£æ ºpÞ¸iÓÆ­›7nÚ¨ESf,بOé2¡ˆ ~غ”ÉÎF\ˆÑ¢ƒ 8ìãæÍ7nÔ¢E‹v̘1bÇš5‹&š5kÞ¼…C—Î7oÞ¼qãæÍ[¸þpÞ´)c¦,!0)°DPÀ‹®=#jdØa`€‚’„1Àeܸi£Ö̘1cÁ|ùòì³fѨiÓæÍ[8téÐy Ž7oèÒ­S§N]8nÑ@]*‹ zöl¢dk‡ !‰ L0â5eÄ|Á‚•êÔ©T°|ùb05jÚ¸…C‡]:téÒy —NÝ»yôèÑ{‡î•• 8èÈ0¡T¥=z)˜àcÀ€ PhÒAÁ%Vq£f,V*QŸ>}úô Ô©^Æ¢YÓÆ­›7tèÐ¥K—.]ºuïæÑ³g/Ÿ=zæà$0@A%~(±¡„„".þ2(xðÀˆ D1c¾R%J”¨OŸD½ ÖŒš7oÞ¸yóæÍ[¸páÒ©S÷Ž={öòÙ³ÌÌ&¤0aB–&@ˆƒ#B…  ¸  @€` ¬W¬X°bùJ+V0fÔ¼yó†N7nܼyóæ-:uïèÑ£GÏž=of¸| 0`Àƒ$°1¡Â:8&Ð1‚e@88d8 À€ ±˜#f̳c„c&M›·péÔi³¦›7oÞ¼¡K§îÝ»wôèѳ7 Œ: ˜páÁ.L´ÀAGOŒ ФÄJdˆ0'Z4jÑš)þ‹MY3iÔ¸¥S÷Ž7nܼyóæÍ[8téÔ©S§NÝ»t†ÆààÁÀ€ Ô`cÀÀƒqöh%ˆ‰T Ä1˜qóæ›5nÝ´uó.Ý;zôÞqãæÍ›7oèÐ… ‡.:uéСcŤÉ 0 €, èÁR*Qˆ–\´“(‡``ºwïÞ©S—.:uïæÑ£÷î7oܼ¡K—.ºtéÒ©KŽÛ³9R°tP``À8 ´Ôc€ [šZiÒpÂ;cØ(ˆ0@Á  ”(—OŸ¾|ôèÍ{7=zñâÅã¦M7oéÒ¥C‡þ.Ý:ué¸QÔe Ž `ˤ/C,Y²eY®%,}2fM&œ``@böìé³gϽxñâÅ‹/Þ;mÔ¨iãæ :tá¡KŽ5k‚„0ð`À€ (ÙráãM¥Rqé2aNLxêàˆ E„˜/^¼xîÚÅs÷.^»xñܹó¦Z4fÊ¢QãÖ›6nܸ!Û ÈѨ DÏ šØÉÅJÑ­& ±3F < `À€‚çÜ‘#GŽ9wîܹsçÎ;uèºQc Ö+_ÄcÖŒš5:=|„(¡`À4l00`…þ‹,­vÝZÅ#Ã0•Æ0IÂÃÐ0‚9räÈ‘#G®œ;wîܹ‹—7jÍ‚ú$êÔ¨S±‚ 3ƒƒ!ZTذeÂ.&@ØÑ¢G‘š'& ð±éM x Â€<~#GŽ9rîܹ‹/^äÈ‘+çÎÝ»xñâųgZ´jéÜ­ WM3X’ 2³£¥V­JѲÆÎ¢7›MÒÃåK¢U•Ö$*”ˆU¥0kqyðÇ TdB޹rîÜÅ‹gÏž={ö¬qK/ž»pÕŒ3KÔ &+6äšt+Q«D¥4Ùyc©V«K‹pô¹µêÒ1VŒL]ªTÉ—"˜ˆæÊ‘+çÎ]õ…ÅÄ€j`éãêV®/&Hà—\¹rµÂ³jئM¬H0`!þH  xâÇlåÈ•+çÎ]¼xñâÙ{•êÔ¨Q£DA:tRªJ=  `Ä­aµVÑú1ÀE;pÄÑ5,²I¶†Ù™4'Å ²Hx‘ÁÀ.†H@FÎ;wîÚÅ‹GÏž½Q£R5  ¨OŽ }:Õ¨‡L˜“+×®a=¬00 À—Vº!3ÅèR"K…&ý€ƒË^(00ªÜÅ‹/ž={öìÙ³÷I”¨Q§F‰%jTªT…ŽD00`À"ÈtµÚ”ÁÀƒØÉ¤kØ0[‰4²3É’vրɢ„Y à§]<{öìéË—/_>þ{‡9‚ôéÓ'Q¢F:UˆD† 0é–­/8HP`€/–hÝZeËÒ;t\lø`)S8.x±æ’~ÚųgÏž½|öòÙ³7hРA‡9réÓ'P…~lx` 6‚¼˜``ƒ  qÉ ¥\¶ì$*õeÈ ”†P‘%Àƒ&‰.ÍùPN<{öìÙËgÏ^>{ù 4hСC‡9‚ô©P‘ 0°A„ $HpÀ`Å#+(ù¡E Y¥E·Lé’g•‘_²¨PhÍ—E"Ä£gÏž={ùòéËg/P @ƒ 4hСCÞh© Á þ  À‚…zäÑ”©Î¥L™ˆéY´ˆ•&5•*᠆˅•°hø¢=zöèÙËgÏž¾|ù P AƒHL H`ÀÀÀ€äx áC]–ìB¶ND«ìTÒTI– `u(qI6BnØ£gÏž={öìéÓ—ïÏŸ?€þ èÏ™3gÖìØ``À€  À Ž $X¸E«T.dèhÙ¨¨Ô¢RvV°áÓ†"†d0ð%ËzôìÙ£gÏž=}úô9sæ œ3gΔ)S¦Ì P€ Ô’ð€}–åÒõLW‘9‹Zµþ*4GË—VØ‘`AÄ‹j°Ð gÏž={öôéÓ§Oß•2W®\¹r… *T®˜  @€0`À„>@`g™ª8È|Hð¡çKEvæ¨Q¡ Vøh2 uïÞÑ£GÏÞ¬°a`À€0`ðÀ€„!uVÕÊTGO !&Þ”ˆðÀ€ sM²ÃÆ LùÕèСT© ý)CåРCŽ$}%JTªT§D0 H1À"LØT‡Õ®I–6Ù™”…˃ °ÅÒ*6* Œð”(@gÌ”ôÉœ+Q>}‚$铨S£@}úôé*Œ0P`À%2`À„S‹,ÝZ•kž7mÀ¨á0`€Fn±aÓÁþÁ)S¦L™3€þ”¡2Ô(Q¢F5J”(Q¢>ey`€pPa`ƒ*jPªSjX.€“ Ù©&Q ( ¤Í—8s l00àÄ•+WÊœù3hP 3W¦€•*UªT©N‰úJ$5 0`À@ &l0  U“úìÒUÇÉ“'‹ž4™``À€léÁ!Šb\)sæÌŸA‡ :sE $Q°zÅ‚•J$GŽAZc À€ ¤È ÀÀ€DHˆC‰×.]aœ8qRªM  ( „„$ü0àI™2gþèÏ™2T¢8õ ¬TŸþ4‘£Q`@ ô¨``À†>œtíÚæÉ1‹ÔØé ÁF‡ > `ÀÀ€¬\¡r¥Ì™2W®P¡BEʧS©D}‚thРAˆA…eÀàP!C€ 0ÐG—.]·ÄØ¡•hÒE>º¼©cgƒ 0`”)T¨\¡2eÊ”)R¦Duj¨O5räè“(Q¢À ÀØbÀÀ€´réÒeÉŽV«Y”…;80APH¡R¦Ì•+W¨P¡2eJ”Q©N‰õéÓ'Q¢D‰%ªN€#:0``@ *”¨Pkþ2]oÂ,ÊEkÓ"S‹Œð²A 0 É•2gàüùóçÌ™2e®P Ö(PŸD5J”(Q£@E¤‰ 0Há…F®téÒ¥è­a¹J)ú’ÈΘ €``À€+ýùcÈ‘#Hý)sà8Ä‚õJ5JÔ¨Q§RÁ‚+V¬šˆù’Á@…^¾d‘ÅN¦ašZ%¢UÊ’E+|(ò€ ` H¯T£F½zõ*Õ§CÎüSM™±`¾zÅŠ«W°`ˆÛ ‰J *à°AG .=2éB¦§•-EbÞ(Úc ‚40A‚þ(1SÆÌX0_±`¥J%êП2Ö¬Y³-3fÄ|õòe,šµgxXTBB“6›Ö0kñ%—.]«n­ZÓÄŽ¢<F4ɃY5jÕ” ë¬^±RAäÍ[¸pá¸YkFÌ—¯`ʼ¡SGc@‡9>"¨Pcç±o íZµ©’-&è‘À‹!`P…|p³F-š²b¾`¥‚+V¬T¢Ô­K—.·hÁbÁòL™·tôTa"H -02Ì™¢Íª]·Z½i’a@…9#@(úâe >HPA7kÕ¢)+ìÕ¨Q§^ÅJu*]ºpÞþ¬53,,X¾˜q{GÏ\ \”ÀÑ$@€'ºÜºUKQ00"H¦Dxšà€ ¡IžiÓF™°`¾`õ Ô©T¢¬Y³ÖŒ™1aÁ‚ 3ÖL[:zôèÅ1Ð!B&0 EŒ%Z™žt1 {6ÍIÔåM †¤Àâ…š5mÔ‚¥:• Ö«T£F¥J5Š3fÂŒ3FŒ3máÔÍ£÷î]6N\££I‡]˜0XGO’7 øriR'NÆ„©`À…un)kFM3XŸD¥‚+V¬^±bõêÕËW0aˆ‹ÖMÝ54èÏŸAŽ>Á†ç'VÞ$jóeR&'NÚ̱e —7uœdÈÀƒÇ)fÌ”)kƬY4eÌŒ‹uê”/fÕ´qóÆ›·pè¼)‹ê ? r$ –¯fÍš4 c剚0CÔìÑ“D «Rx }±S§‹ vœ£F-Z´fÍš5Sf̘1a±¦êÅLþ7oÜ´Y£­Y³`¢úè$G`E‹š­&sÌXyBfŒ1”)šT¨M6šñà°#Ì+jÒš1#æ+±c̘5Sv,˜¯`ʸ¥K™±`‚ƒ%i @ƒI‚”Š5jÔ¢qsõå 3oÌXI´¦N5C`<±£©ÉˆEkJQ³Ö̱`¾zùòEŒY4jÔš1kF[ºwÂb¥ê%̱W4 A‡z1‹F·u´ôTzS† )O¸4ù‚C{óÔ¥[‡N[³cÁˆ1k&š6mݘQÓ¦ :mÂ`9t¦Ì•+eÎ:”J1ąy[§î9UŒžH±ÒÄ%dæÜþ¹‹/^¼xñâÙ³GoÞzôèÑ£ÇÍWªQŸ:SΟ3úóÎ@ˆ}•ÊW4oéÞÑ£Gž=zôèÑ‹G^¼xñâÅ‹/^¼xñâŋϞ={öìéËgÏ^¾h½RiП3fþœ9óç>Ï™3gΜèЧTÁ¤¥{7=zôèÑ£G=zôèÑ‹/^¼xñâÅ‹/^¼xñâųgÏž={öòå !ù€ ,Dd‡  !""%( #""###$!!&%%&"")&&*&&-##-)).++-&&1**1**5--2--5..9--<11644711:22>55>55:88>//@66A55D55I99B99E==F==B::I>>J<>Q;;U;;Y>>a??iAAGAAJAAMEEMBBQEEQFFVAAUFFZDD]IIUJJSJJZMMZKK]RR]RRWEEdAAnBBoEEjLLcLLkGGrEEqCCpHHsJJuMMwNNwNNpOOxRRaUUfTTcVVjSSlZZf[[cZZjZZn]]lRRrUUsQQzSS|WW~UU}VVzZZrZZu]]r^^uZZyXX~^^y]]}bbl``gaaraaueevffsaazaa}ffyee~jjuiiyjj~mm|ss}ppwZZ]]ƒ^^ƒ__„cc‡aa…ffddƒff‰ccˆjjjj…mm‚nn…ii‹jjŒmmŽoo‰oorr†tt„rr‰vvŠttzz„yyŠzz}}Ž~~Šrr‘tt“vv•uu”yy–zz—~~‘||”{{˜||™~~šŽ€€…’ƒƒ•……’††•›……Ÿ††Ÿ……™‹‹–ŠŠ™šŽŽž‘‘““›˜˜Ÿ‡‡ ŠŠ£‰‰¡ŽŽ¥ŒŒ£§””¢““¨••ª——¬šš¤šš­œœ¯žž®šš«žž°°££¬««­¡¡²££´¥¥´§§¶¦¦µ¤¤³©©·¬¬´««¹©©¸®®»­­¹¯¯¼²²´°°¼²²¾´´¿¶¶¾²²º¿¿¿½½¾ºº½¶¶ÀµµÀ³³Ã¹¹Â¼¼Ã¾¾Å»»ÄººÈÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÈÆÆÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÅÅÓÓÓÞááéøøûþQ¡Be*R¢D‰ 2S† )O¢(Q¢D‰%J”(Q¢D‰%J”(QEÊ H¥~%öë¤P¯~Æk¯_¿€Sv͹säÈyóvΔ(S¦>AJ”HQ¡AfÈ\‘"å‰%J”(Q¢D‰%J”(Q¢D‰%J”H¹çªO‘=ú„J˜³cÀ~ö ˜1g׸qóÆ›7rç~¡ êS¤G‰%J4È ™+R¤<‰¢D‰%J”(Q¢$Š%J”(Q¢DI”'O®!cŽ™A¦’EsfL°_¿€ sí7nÞ¼;wŽ,Q¢BM‚ô(Ñ£D‰™¹r…Š”'Ožþ(Q¢D‰%J”(Q¢D‰%J”D‰òDŠ)R¤\ „ê5€Ñœì×/aÊ¢]ãæ¹sçÒÁB…ÊT¨O‘ =‚éQ¢@W¤H‘"åÉ“(J”(Q¢D‰%J”(Q¢D‰’'Ož<‘"EŠ3‘„M£FÍ™0a„ ;íZ6näΑ#GîÜ.X¨D‰ õi¤G%TæŠ)RžEzTh3W¤HyòD‰%Jn¬Ø@À@ xÌØâN¢HW® B%,7nÙ¨E;&LرgÏ¢]Ë–-ÛµhΔ)‹æÌ°]°bñâÅ –¨Od†Œ)Ož(Q¢¤† ÐÀ ,¨x,Ñ O¿œ]Ë–-š³cÇ”)SfLY´hÑœ);f̘²kќƋ0aÂxÁú)Q¢Af®H‘òäI%7 À€Â 0`Ð@ ¥˜‰*JX´lÙ®Q»†íš3cÆœE‹ÍþÙ1e΢Eã–-[4e„S¦ÌØ/T¡>A*¨Ì*RžH¡A B¸(2‚AŠDš` bÓ±O¨œeãæ7oç¸Esæ,Z4gΜ9‹–-Û5rä¼e‹6Í™³h×®9Æ à.Q‘ dÆ ™ 0ࡃ(|ðÅÑ!#üðs©T4nÞ¼qãÆ-Û5jÑž9;fL™²g×®Q‹ÆÍ9oܲ]»– ·l×¢9;&ì—¨O¡¹@€ %"t"‹‡)Ôàyƒ ubËÆ[6jÑœ9{fL1a”)s-5jܸy#wŽ[6nܸaËÆ7þnܲ3¦  „ AB‘JN0Hˆ°AG*ŠÄhÀ É¡cà²Q‹¦L˜0a¿xñâL˜1e΢]»ÆÍ›7rçÈqóF[6näΡC‡·lÎŽ Aaä!€„,F¤àƒ#,YÄ-[´cÂxÁ‚…J”(S±xñ2ÐÙ³h׸y#GŽ9rçÎy#‡»zõêÕCGî ,$ @ J¤ À@\šX@@€€*fe‹&,–©PŸ&Múôé“©]”Q»–-7räÈ;wîܹtîäÕ³gÏž½zäÄ|hЀÁúeŒ7nܲqãÆ9oÞΡCç®^={öòå«Wª  @ÁCJu\Q€ÐAX @€ˆ 6Üùõ‹×®]°bñBõ Ö/cѸqãF.[¶lظqãÆí:tîêÕ«WÏž=ppÖx PbZhòÓè’;²`ð@€H ˆH€Bƒ ¤Œ &L˜1a¿€ 3öì7oçÐ]»v-7nܼC‡Î;wòêÕ³Wª‰ @Ÿ[•ü„‰¡HŽ%<¼!ƒ  ±Å™³hÏ”)þsöL™²hѲsç®^¶kÙ¸qãæ›7rçйC‡;omR@€tlšÅêK–#ºôÀRdK %J€@Ñ‚2‚eãÆ-ÛµlبeãFN»zõÜaÃÆ›7oÞ¼yóvî:tçÈ‘‹…¥ ðp F›üTšC¡Gš,Ž$A@€Àw6¨ ¢:tîÜ¡Cw:tîäÁ«çÎ7nÙ¸‘;wî¹sçСCG.Û58$P`€€,u<4æR-W®(Œhôe¦EE°@ˆ $4—/Ÿ¾|õêÉsç®^½zõàÁÖíZ6nçÎ#wþî:tç°E ††… 0(a‹šJz*5â´Æƒ.š(³ÔÇB d‚ ZöìéËg¯^=xðàÁƒ¼kÑ¢]ËÆ9rÞ¼‘#ç-[´Ml4 @‚?G0€±µÊ-[k€ å'-W—‚HØ ÃÇ8>`!S¸páÂ… .\»víÚµƒwÎ[¶hÊ~‰úÊ”(T±~«ƒ@ "„ €ÅƒlVq V©‰ &‹­Áå*X0<ÈЀǾ„ .\¸píÚ½ƒ¼zç¾y»¦ÌX¬P¢>}úôI”¨&,ôñ „–Z0p±hÓª?tˆ”`ò¦É[ÅpUj²!E ¨ð ǶpáÂ… ×®Ý;xðàÕ«—.]»tà¢ã…*Ò£O¢D‰BË%?!rxpÄÊÏ-M*Uâ7KŸE‹èÜYµ©Ö%<)$ @  þ`à .\¸pÛµk튵ƒElårÕ…>ô´¨Ô*U±[¹Ô¸²UŒ§zlÉþA€tãqáÂ… ®Ý;xðàÁCeÊ”(Q¢BEJ”(*G! ÐW±b.4 P¤ÅˆJ¸vä ¦ ת[¸VmŠB Xh€¥A‘6!$HhÖ®]»víÞÁƒgÏž=Q¢P™%  ¨O }eéúà*æÊC  b”в ×]ÁrÙÊåÊ«J„4Ê#ê`¹t ƒ„ÌÚÁƒž={öìÙ³÷)”(Q¢D‰ *”)Sy8ÀÀ.[©(l  …~‚¥*¦Ç®,¶‚‘â„!N\X`0‚SG6DÀ ž={öìÙÓ—/_>þ{‰AŠôéÓ§P¡D™25‡ Äñ#D,¸hÒ—+\jáªä*ئT=êôiA¡ q49ZôeD„´àÁ³gÏž½|öòÙ³WhP¡B‰ A‚éS¨O_@ˆ  @€‰.Z¹Â#†”-W·.…©¤¦Ñ" ;æ  eÓ"KzÖ`¨Ð¼zöìÙËgÏ^>{ù *T¨P¢D‰Ašô) *`!Pð‚A ,yÆ4Ú„gÕœBôôiÂà‹Ž üXb# ' âÀ«gÏž½|õòéËg¯Ð A… *T¨P¡DÂ0€¡C þ0`À€#„°èR‰Ñ‘J¤Š«tIÓ"#:é À@Ó¢ xè)Qa½zöêÕ³gÏž¾|ù 4hРB… 4 !b``@€ @À&MÅŠ¥²ÄÉU°Z¬6-j1Ï—Vm¡À‹£*Ù«gÏž={öìéÓ—/P @ 4(3ff `„ÀˆIƒëÖN›8]芔+:ràC€:-f`¹T¤B¥zõìÕ«gÏ^>}úô™1cÆ 3fÌ!C†Ì H€"TˆÀšC¸²¹jbë’«Ej4]þ¢Ã S%" H(Ò$†GB0ø©gÏž={öìéÓ§Oß2W®\¹r… *T®¨  À B ¬qD3'®V5Út¨Q N€"¡N¸¬Á&CtîÜÕ«W¯ž‘"E •+e *4þ80|@ƒ#0`!ƒ[«* ÃÉѪEŽ*ñ`@€„#™jÕÊ"AEI EŠé¬_ÆœE»&…Ê2eÌÀ 4¨P"H†0€ÐÂ--(„#E6ìéTiÕ*Ò£‡H‰$ä(±#G"H@à¤Ð'Q¢L¡ŠÅë×/^dÌT(Ñ#HŸPÅzu‰Á? @0ÂH0¼Ø‘#‡¥/w*­rÁeÑ¢JzêD °!˜"G„tðÁ m"™‚ÅëW¬X¡ }ú¨P¡D"Mú„ê—2cÁ(èÀ€ `€¤ËEêTµ#O±þ,zèYT$B:òt‰“§†?0` AÔ/`¿bñâÅëÓ @ *”(R¤HŸLñŒ 0`Àà€ Ll!ÇÕªJ•2Uª„ˆ5%$@`À K£Es²¬áBPí•(Q"S¢"Á¹r%Q¡D"} **T¢B± @€ 0`P$–4éY¥§X19~èÌ Bà%|ôqDŠŽ,$H8°!T¨AfÌ)ô)R +O&MŠ4éS(Q¡>}úôéÓ@€pàÀ]|ÁáåRŸVtî,rµh8p¤G%G[¶)€$ þÁ!C† 3•¹"åS¨P¡D‰*T¨P¡&Å8@€ °!† r85j5fŒ€›8é‘ñC ÀÐÙ‚… –C@ÀÄ•+WȘ T¨Ð 3W¤| e *T¨D…úôéS¤& €À 6t)áá„&W©Ô¨Ùté͘& @ Ji¶0Ø0ä h\)cÆÌ B‰ 2sEJ¤P°v튅*T$H Eºƒ€ @ ECvÔÉÅɉ¥M—œ8IB@ Àä±ÓBƒ'08p I™2e 4(2Wž@+,TŸ %JþT($L  @€ °a­\œ8iZt‡Ë54ÀౡŸ $@P‚À¤\¹r…Œ2W®P¡"EÊ'S¨D}šô¨P¡B‰ E E@ ˜ …‹–+.süÜ©äçøäÑA aƒ)R¨\¡"EŠ)R¤HeJÔ§O“ =‚éS¨P¡x  ‚Z¹rájÔ‰RªV—°`Á‚«O‘ "@` ¡EVH¡B†Ì•+W¨P¹"EÊQ¨L…úôéÓ§P¡B…jˆ<  DÐÂE þW§U^p,â´j.`` ,8! 2eà dÆŒ2d®H –©PŸ>…%*T¨P¦01xCƒŒðàãD§?®hIÅ)“?`8Ý‘!ÄC !"@`@€ ”R¤H‰ *c` 3Â~íB%*”(Q¦PÁ‚+V¬MlP @€1b|)²GÓªœôôY„G˜7:ùÁÀ D E,T¢P½zõ U¤DÌÀ13혰]¼xÅŠkׯ_À„ ³" ‡J0À¢‰ƒ‹8páúcËVŸ7?PØä㈠D€‚€þü;v Ø/^±^¡B*Q 2Ô¨Q‹æÌ™1cÂxíâ%ÌY¶b’øƒˆ;™@hIµÇÖ*\®\5ÂB!@ Nlúø¡°À"Ø´hÓŽ û ¬]»LEÄ›7oܲEs&Œ×®_Ǹ‘C‡dˆ4±ä"@Z¸6¥²U©O—$ áÔ¨ D° ^d£ÍÙ±d¼`½‚kW,T¡Ð¥;wÎ[6g¿b½ŠõË·sõTiÑ€@:0R¤¨ÄÊ–-Wo’ñ²!E“Lœ*aé" ÐÑP6jÓœö •(Q¦`ÅBeêÜ9oÜþ¨9ö+Ö+X¼„esWïÛ‡:R€!Ñ G­\¹º´ËŒ.,ü¬rõEÏK H0Á@",˜]Ë6Ͱ_¼`™ õé“)S¢¨Q£¦Ì˜1a¿~ý¦ìºzõêÉq ‚È4"ÅÉÕ¥;IfÐ(ÂÊÖªK[*1ùA‚„"$`èÑ%µlÓ~¡2… ,T¢D¡2eÊX2cÀ„&L˜±hÞÐÉ«çγ+ülºM¥8mèJM’$`Zqz£æR1D@àCF \smš±WŸB¡‚ V¬X±bÅŠµ‹×/aÀ€ s–휼zõСs‡Ä"&¤üPþаÉÏ%=š%3†”¥1NÆ´qB# XdlØà˜0cÆŒ ãeJªX±bÅÚÅ‹¬]¿~ñâõë—0gÜÔ¡C‡·hÌ`8QÒÆÏ,—¾lr´©Qzî´á¢çÎ.lz´QdÆ–¯„K&L˜°]¢B™‚ŋׯ_À„Åú•ì×/aÆ„ S9rä®ýúõ,Ï&Lô€©T§ËªM¤89jt Ϙ&_†`ÐÁ…‡Œ"EÒÂ´ËØ±cÇœ9†êS¤P±xvŒš1cΜEË–íZ4eÆ”t¦L˜©I¢vñ2FɘF•°„ cËÒ%Rkš`ÃÉ‘ž/N˜ˆ!¢þˆ¡R¼€ ;æ,Z´lÙ„½ú4É/aΨq£ÍY´lܼyË&,*Q¢*ôè,G<˜0yÓŒž5.‰y³¨Q£E•Ò8q’$‰š-= aú%,™0aÆ”9‹ÍØ/T¡`ý-›·lÔ¢eãæ\6c¿BAJT(P B>¡–æ1jœl9ähÓ›<›ôèY¤f‘ètaf¯^½zöòÕCç[6nÙ” ûõKÙ5lܲ]£vM˜2jÑœEËæì×§BfÈ\¡r…Œ™B“x{-:xß8YgK.yî€é±¥•8xðìÕƒgÏž½zòÐSGîš3c¿„sæ,µkØŽE»v¹kÀ`Ad†Ì•+dÌ J„Š—0`Æ¢yK‡ÎÝ·`ŒÚ$âdÍž\ßÚþµƒ¼wðàÙ³WO^½zèÎESæì™³gÑ®]»Æ-›·sèÐqûe Ò 3dÈ13hP¤P¨`™Š%ìØ5€Ü¼¡s^»oÕÆµ{÷ΙÚõKY´lçÜÕ«{öìÕ«WÏ]=yäŒí2i@3d̘1¨P¢Bƒ J Ò§P¦bsæ ]½zõêÕƒW¯3f̘3(Ñ'T¿ž‘s'¯^½zõêÕƒW¯¼zõêÕƒ55:88?..D66A44D44J99B99F==E>>J>>M::K==R77U==dAAGAAJBBNEEMIIMCCQEEQFFUBBUEE[JJUJJYJJ]MMZNN^RR]TTZEEdAAnBBoEEkNNaLLdKKkCCpGGrEEqIIsJJuMMwMMtMMqOOxRRaUUbVVeQQeSSiVViTTnYYf]]fZZj\\lVVuTTsQQzSS|VV}VVyZZrZZu]]r]]vXX\\{bbmaaebbuddsaazbb}ee~eeyjjujjzjj}mm|rr|xx{ZZ]]‚^^‚__„cc‡``…eeƒff‰ccˆiimm‚nn…jj…ii‹jjŒiiŒmmŽooˆooqq†uu†ssrr‰vvŠvvqqzz…yyŠzz}}Ž}}‰ss’qq‘tt“ww•vv•yy–zz—~~‘{{”{{˜||™~~š‚‚’‚‚•……’††•›‚‚……Ÿ††Ÿ††™ŠŠ–‹‹•ŠŠ™šŽŽŠŠ’’ž““œœœž‡‡ ‹‹£‰‰¡¤¥£‘‘¦––¢””£’’¨••ª––¬››¤šš­œœ¯žž®™™«žž°œœµ¢¢­¤¤¨¢¢³¡¡²££´¥¥´§§¶¦¦µ¥¥²©©·ªª²««¹©©¸­­º®®»¬¬¹¯¯¼££º°°¼³³¾²²½µµ¿¶¶¾²²º¿¿¿¼¼¾ºº½³³¶¯¯À··ÀµµÀ¹¹Â½½Â¾¾Å»»Ä¿¿ÌÃÃÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÉÇÇÊÉÉÊÉÉÊÊÊÌÌÌÌÔÔÛÌÌÖþI©"õIQ @üð!3FL”'M˜9räÈ‘#GŽ9räÈ‘#GŽ9Âä‰DŸ|!Æk“¢MªtùÚ…‹•®]»v Kv­[ºtíÀ¥K׎Ô'Q¤2! (Ÿ>dÆPyҤɑ#GŽ9räÈ‘#GŽ9räÈ‘#GŽ<¡¢æ©L™ÊDJ˜4cÁvíÚµ+2g׺¥×­¸vít‘Ú´)“¢C ćŒ*Qž4aräÈ‘#GŽ9räÈ‘#GŽ9rä“&O¨PCF >ŸQsfL˜¯]»| K [·nÝÀµk×N+Q›6eBtèС@‚ú¡%Ê“&L˜þ9räÈ‘#GŽ9räÈ‘#GŽ0iҤɓ'OžPáCÊ5€Ñœ!óµk×.aÉ¢]ë–.¸píÚ©REêÓ¦LŠB„è =TžDyÒ¤I&GŽ9räÈ‘#GŽ9räÈ‘&Mš4yòäI2Š„I£FÍ™0_‚3 ¶néÚ¥K×®.U¤D}Ú”‰¢CˆêC†Ê“'Oš0iräÈ‘#GŽ9räH“(MšaҤɓ'O¢A¤Ë˜´hÑœCf 2g׺uK—\:pàºË…K•¨M›6eʤÑ!?zƈ¡ò¤ “&LŽ9räÈ#2>,)ÃçÏ>~ÄꀂR‡ 5RÙ‰°cÍ7s\H`!bЙH׈p™ªK5BLdAŽþ"`˜#7nܸqáÁƒ7oÞ¼y÷°aëÖn8lÈt} H¢3°šà"’¥H6HØ0ãfH ªlYs¨†,qÁä!E‹ àqDbãÆÞ»yóæÍ›—/š3iëâ­ë 2UŠõáQ'Õ w I*dÉÄœ "xàaI‘"ÜÒu’*pU`x "@À$d5nܸqðàÍ£—ïÞ¼|ù¨a 7oÞ:pÒ ÆjS  092•ÊR*I±ÖÀ"@‚HÍAGΜP§\¡q×hK :˜s¡ÁŽHäȑ޼|ùòåË—8xóæþ­Ãæl+]¸>­ÙÉŠ£Z—=‚d©ÑBts ˜"~üøñãÇO @‡\4hÐ`BþFx€,‚\²t VS±¸4á:KEA‘”tñCÖ½|ùîåË—/ß¾}ûúðéÓ‡O?~úðáÃg  À` ˆ44 ˆ‹5kÖ XÌ!¡ƒ¬:±)Ò…:JÝ»—/_¾|ùòåã·O=|øèéÓG2dFð 44РA€€(µs –¬Y°R58Hn¸c)Dƒ:,YºPc›{÷òÝ»—/_¾|üø‘!C† =dȈ#FL…L@€Áƒ@fx.¥ŠE+U!!xþpeA„ЬˆpᎺи—/_¾|ùòñãÇ1T¨P¡B…J”(Q¨T À h€à€à‘VKV)X¡@ÉqA‚_<¸ Ã A” ÒáKvìîÝ»wï^=vìê=yòäÉ“'MžzúøñH‘"F›HéòµK€ 4Ѐ -*ÁBeJÖ¥3©ºˆI‹ &`™cƆ9D˜ðjƈñ“ ‘š(M2eRÄ(Ó&QŸ2mÊ”)S€@ Alý’KV­Rµdê‚‚°t(§Q– JÙñZüþè#FŒ2|ôŒ¡ò$Ó¦M›6}ú´iÓ¦M›¥ @€^ü¸B1[¦.¡ª•*R!€/ìH 7^¼hI’B‚  h€@ *bÄáãÇO2TždÚ$Š)R¤>mÊ”i£$À7]†˜’ÊT%S¦.¥j#‹ÈqㆋØ€ AƒbPCF ?ñ!C¥‰¢Oªp±REj“"Dˆ):ƒ@ì(õKx`¥:5L-SJFlØ€Ë%g”ôЀ ƒ‘"õ 2d¾„!,²kàØÝ»/^µ"e yp€‚P¨`™Hȃâl#gË…ôè!!‡ ;€[M2U™6‘R¥J+\¬X±b¥K—¯`¾| s†­]½{õر‹÷eI ,PTþ¹4Ò%S@Õ²æÌŒ0`ä옄™/H„˜àÅ—0dÈ Ó%J”*V¸X±Ò¥‹)U»véÚµkW0gÝÚ±cÇŽ]·hÀ–Ì@Ã`ÃRrÀ\JU ”¥8gŠ)⌕*^(ùQ¢‘|!LX0]¢>‰R¥K—®]¾„©Ú%l×®`È„ K­¸tݨíÚåì#h~ذÒè ¬YÀ.Å4'Ë,æx˜À›I4`˜„K˜1cÉœ9F*“¢M¬vùfŒ2dÉœEÃF [´dÈ’t–,)FŸtùšcDÊœJ±,™ZIÖ!næØ‘cM!3rz qþD 5´| 3&-Z4lØ„©Ê¤ˆ”.aήu‹-Z4lÝÀu»& ©O›ùñƒ(“ªPGŽ,™*¨BY`54ˆ8s@ŠtËŽqœ L˜°`Â’9‹ Ù.R›TíB­[7lѨaëÜ5d»6!òÓG?Š2‘ ¶æÈ“%ƒ Åi¤…4äl ˜3K’`Qr¦Ì'dÈ’K6,™3dÈ„íbEŠ”.dÑ®aÆ [7pàºSµ)P=|úø9´I•.d΢,9r¤ˆ4Yì`ÑàfB–-)ÒE•0e–øŠÍ™±dÈ’93&LX°]¬’Âeìþ6l×®Q‹æ,Y²]›éÑÓç"DŠT9sæ,Ú®(R¤Hq3‡P¬´x ÄN¡"KAód ¨gÎ’!Û•kW°aÈC&l—®]ɺµkç 2_»|íRÅÈ>~1R´ µkÑœuÓU¦Ì0)j\ñ@À æ(¡ Å•KE‹fLX°\ºpáÒ ™³hÑ’K [;vÁp‘ÒL˜0UŠòã‡?X!{ÍY·u³Ê¨Qƒ¦ì˜`ã Š-^ðPB)ÚµkÔžùÚL—®]ºt!‹¶­[·mÔ¢]Gê“*dΜ #EŠ¢>zƈ!£'“*]þÂ]k¯T‘2hìá`À@ìô¸a†‡[Ùµ[Ç.^»hÏœ9{–,˜®]È®uK—n[´g×TíŠF-Z²aÆv‰ ¤GŒ*bÈô ”铯kéØÝ[¦&Ìš9^pbÇJC\Ø`–ïÞ½{ùòÝc—®¶n،۵+Ùµmݰ]»†-˜³kÔœE»mW&?dĈ¡BE ?™p!{ »{ëT© sÆËœ9Cj°Q¹yóîÝ£7/_¾{ñصk—îZ´aÁ‚!KöìµkÛŒQÃv-]ºkÁTâCF *bÈð9DJW0_È¢[/^8`’xÉ‚¢Yåàþ½›÷nÞ¼wóæÝËw¯^½zìÚECö,Ú³gÏž]»Ö ¸tíØuÛEJ2bĈQ£Ç¢M¤T}RÌØ5€ÝÒµ‹7oeúDj—³nìâÝ»wïÞ½{÷îÝ‹wïÞ¼yïÞÍ›7oÞ»yóÞÍ›7^¾|ùòåË—/_>g¸H‘Ú¤È2dÈ!£G>2dÈ!Ã'#Rºœµ‹WïÞ½{÷îÝ»wïÞ½{÷îÝ›7ïݼyóÞÍ›7oÞ¼yóèÍË—/_¾|ùöí !ù€ ,Dd‡  !""% #""#!!%%%&"")%%*&&-"",)).**,&&1**1**5--2--5..9--;11611:22=66>55:99>66A66E33B66K99B99E==E==B::J>>J>>M;;L>>Q==U::YAAKBBNEENDDJFFKAAQAAVFFREEUFFYCC\IIUMMVJJRIIYMMZNN^JJ]QQ]SSVEEeAAnBBoDDkJJaNNaLLeNNjMMmIIjGGrEEqCCpHHsJJuMMwOOtNNrOOxRRbQQfUUbUUeUUiRRlYYfZZcZZjZZm^^n^^jVVuTTrQQzSS|WW~UU}VVzYYv^^q\\tXX^^y\\{aam``eaaqffvcctaaybb}ffzff}iiujj~kk{qq}~~ZZ]]ƒ^^‚__„cc‡aa…ffdd„ff‰ccˆjj‚mm‚nn…kk†ii‹kkŒiiŒmmŽnn‰ooqqqq†uu†uu‚rr‰uuŠvvqqzz„zz}}ŽzzŠqq‘ss’rr‘tt“vv•uu”yy–zz—||’{{˜||™~~š‚‚ŠŠŒ’‚‚•……’……•€€›‚‚……Ÿ††ž††™ŠŠ–ŠŠ”ŠŠ™šŽŽŠŠ’’œœž‡‡ ‹‹£‰‰¡¤¥£§’’¦••£’’¨––«••©——¬™™£™™¬››®¯žž®››ªžž°¥¥¬¡¡²££´¥¥²¥¥´¦¦¶©©·¬¬³««¹©©¸®®»­­º¯¯¼²²µ°°¼²²¾´´¿¶¶¾²²º¿¿¿¼¼½¹¹¼··ÀµµÀ¹¹Â½½Â¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÍèèéþY±buJR¢D‰ R“*Q’$I’$I’$I’$I’$I’$I’$I2…J G©Œ1[ŒÔ#S´†¬V°aÃŒ1›Ömœ:uêÔ‘#§NÕ)UªFAJ”(Q!AjÐd¡%J’$I’$I’$I’$I’$I’$I’$I¦PÉèÑ©Qœ%ÅjY5hƆ 6̘³jÝÆ#7n9u삱2ej”¤G‰%R$H š,V¨D™’$I’$I’$I’$I’$I’$I’$É”(Q² A£FŽAªœe«m™±aÆ-«–­Û¸qãȱcÇ.-U§LQ‚ô(Ñ£G‰©Éb% •(Q¢þ$I’$I’$I’$I’$I’$I’L‰… *T¨dÄjš6€Ùª936lذeÓ²uGN:vìØÑbÅJ•)R’ =‚éQ¡@Y¨P¡B%J”)I’$I’$I’$I’$I’$I’(Q¢D¡B… •4’–]Ó¦­Ú2cË’%ƒ–Í›·qêØ©S§Ž0Z¬N25ФD %¤Æ *T¢D‰’$I’$I’$I’$I”$Q¢$‰% *T¬¨ Z¶lÙª9s6Í™³jÝÆS§Žœ:rãÆ% V‹•*S¤L% Ò£BÒ ÉB%Ê”)I’$I’$I$J¨2„¨ N…ÐP¡þB%M"ZβuÓ¦-[5hΦUËÖ Ü8uäÆóÖ­Û4gÆ‚ÑR¥ŠÕ,V§FIzT(5h¨D‰2%I’$IÄè!ÀDâ|i"(³SY²b•ìš·qÞ´]ƒÆl4kÖ²uóæÍ›·lÕ¦MËVÍ™1`´jŒÖ©Q¤*Q¦$™2EF $20àÃŽ0Ñ‚ÆìQ!Sêyóæ-[5hÓ¦M›ælZ¶lÙªUƒæÌÙ´nÙª9,˜±eÉ‚±)Q!Aj²P‰%J’)'&8È0  ~(ÁˆœTÔ ‘*dj™6oÞ´iëæÍ[5gΪeË–­þ´iÕ²eçÍ[¶iË’9›Í™1V¦FA*M+T¢L91a†4tì CFË *ð²)5¬ªy7nÜ8rêÆe«V-[¶jÕªUËæÍ[7rêÈyËV­šµlÝ´U[ `°S’ ¤F š ˜Ñ‚†-~~€òóAB‘ ´ØÄ†S6qäÈ7Î[·lÙ¬UsælÚ4kݺiË6Žœºqã¼uëæmÜ8oݲUs¶lØ©Q9ႊ 8Tpa§K @ð a„;†Ìó&Nœ7mÙªY«æl³e˦M«–-›6mãÆ‘SÇnœ7pã¼yó6n¹þqãºAs-U  ˆaÀ!b~´Ø²¡‚ 4¡¡’hÞ¼iË6Í™³e 6Œ™³iÕ²uë6n9uìÔ#GΛ·qêØ½{÷î9oÕP€X`À‚ H¤ZÔÇO‘F@@p°¤Å‚ / ’$Î[6hÉ‚ÑbÅJÕ)Vµ‚ s°Z¶lÝÆ‘S§Ž:rìØ#×î<{ùòå{§î΂ È€cHŠ.;þ 鳇ƒ 6`X@ã 9Bdy»¶¬–*S£F5ŠÔ)`˪eëæÍÛ8rêÔ©cÇŽ;vòìåË·oß¾|Û" `bÂ;u@tq0¡Ž";þ80p`Á @”PÒ´eÁX2EŠ”©Q£LÑæ,Û¸qã¼y7n9r䨵{'/_¾|ùöíÛWgÀ€B¼,S䇆îÜY@"€ ,ÀB„#O6,X­Z´jcE«Ö0gÙÆ#G®›7oÞÆ7NÝ;yòòåË—oß>o$"XP©K%?dì,Ø€ÁF  8°aƒ ,ØCIµœ-K¶,Ù²eÆ-sf­Û8uìÞuÓÖÍ›·qãÆ©k÷NžCðì ’c‰)J02oÞ¼yðàÁƒOÞ¼yóäÁ×-[5gЪeëæÍ[7oÞ¼]£GÌ dtÐø±À™O p0`€„\´xÑëP/9,X° ˆáàÁ;wîÜ9xðàÁƒ¼wê¼e[Œ­`É.s­Z6\vúüáà‡hð“þƒ øÑ)ߌ!;´¼9“§Ñ†ðÈÑйsçÎ;wî0€@   ¢„bRí’µƒC„;d†h9äEÏ“6N"œybæM8tç΃oÞ¼yúôí36ÌØ0`µh±bŠذ^?Ríâ%b0ˆ0`€D¼€˜` Ï«7\ (‹£EBî¨9ÄãÀ—3gÀlKwîÜ9xðàÍ›7ož¾aÀjÑ¢ÅÊ”¤GHÓ$dO³N< PñჄ:>ÐÀŠ×,‰qaÀ€Z©‰ƒçþБE;dȵpçÎ;Þ¼yóôécuŠÕ©S§LQJ”H+;?65›³E„&,` Ä€™ì0b¢Éφ1 X Ö‘6°Ì@ñ”aÀ qŠ\ûuüÉ·oß¾}ûöùóçÏ_4Y²dÉ’%‹+V²P°`Aƒ Xp`À„°^邵i“.^—´ Y``Z^¥Ò£¡Á€>žúŒùñaŸwïäÙË—/Ÿ½wïìQ¡B… *T¨P¡bÅÊ…TX°`Á€LXðjQœ8šRÉzE†Ž|h°b†'Yž@ŒÙÒHÏ \Üv­Û8rìÚ‘ëÖm\”(Q¢D‰… *T¨d80À@ `À€<ÅÑ´'“'Y¹dÍqá@Â…Xò”ªÉ:h,i"¨P¡BX%ËæÍÛ¸(QF¡B…Š4j R”cCþ ,бAZ´ÔðªKO¼Ä±d Eƒ 8(¢eÁ€ hhЀ*T¬d±B… *T¨P9¥ê©Q’ A‚i”)S¦E,8`Š• W.Y²|YbôÄÉ–6`x XРƒZ$|` C… zP±‚M–,Y¬XÉB…J”S¬T™5jÔ(S¦L™:eДޏp!Ÿ\¸påÂuéþS¬8PÚì1ÃÄ€ 4PAƒ† HX Á š,jä HM4hÐP¡E‹–*S£H:uÊ”)S§Nù`À€ð‰• .\Bâ0útä‰".,€`Á‚…?608РAƒ „H’$I J£` 5Ɔ£¥ÊÔ©SªXÑ¢E‹0M,p@â€.­rá’…ëÏ%?¯ö<‰£¥É,Xp DG À4X0@E0V§XÍ¢5‹¥DÔÈQs Ú²aÁ€ÕªE ذaÆŒ-ÓõaÀ EptÐò*.Y¸d}Ú„ë<žÎ€Xà@B`†Јþø8ƒæÌX°`Àh±be*Q 4Ú´eËV­4gÆ‚ ¶¬Z·m,p‚Ä¢1¯báÂ¥k¬L²^-ú„ËL… 4øÓ₃ôH0P!Z¶l× 1V‹-`ÀXI*4nܸqã¼i›–,°aÐÆ©{7&‚?)>xÊ´È.\°vÑŠ+²]?@4hàÀŠ7% pƒŒxÓ–­4gÁh±šU X-U¦ÚµcÇŽœ·jÆjÑ Ì™7vù|ñ¨¡…K„6ž4ÅÚ¥ë®N­péò³èÄ‚ @cC€ vÐȰ “8mÙª9[ŒÕ©SªhÕbÅŠ;râþ´U[¬-ZÁ–y{—O^=v âéÕ«]»ô F×'w.IXЂ/,ØÁaG„¢móvÍ™1cÁf©25Š”*U§´iÓÍ3cÆ [6­»|ùò¥2´ƒÌ©diµëŠ6åY¤iÑ |€‘À0`À%›¶nÙ†ÍRÅŠ-V§T±b¥Ê™³eÆ–-[¶,™3mêÞÙË'ÏÞ63{fLpñ‰V¬O©ü´8€Lž8JŽà² AƒR0€AdA‹:ZtA«–íš3Z¤L±¢E‹V-`µjÕªU+Ø0cÆŒ-«6î]¾|öÞ½{׈ :ü´þÙ„gÑ%!úä9Ê%; Tp°€E! ùñcØ2gΜ- ¦ê«ZµjÕ,«ZÆ 6l˜±jãØ½{÷îݸlÕ’4™ðÄ!M©eºÓ§Ç—1Jèñ2§B  š,Ñ2DH ›’9[–lY2`§L¢,X°aÆ–Õ¶,Ù0cΖ-›–mœ:uä´ Kfí’8]&hÚã)Õ'0òª[·nÙ¬3–,X°`Á‚9³nÜ8oÚ¬u#Çê-gÕª-cÅŠ•¤BÒ Qh«`þÉœyc'/–8Z@0`À@'K$)!ÄE—\å±c×î;mÕªU«æÌX°aβS§\¶jÝh «¦-Û4gЂ©JM–,hÔJ4Ê”1oêÞåÛ&GΘ Zh±£‡ˆ -CZüض/_¾|ûöí{§nœ7pÞ %6lZ7pã¼uëÖ-Ù4mÙªeófmبBjРɒšB’‚9«¦mÜ»|íh©Ñ²£,È€áϹyóòåË—oß¾|öÞ±{§®Û4fÆ’9«VÍZ·nàœeó¦M:mÆhA¤M4hÔ‚Ä X2cβ‘k'O^»fs´hÁpAGWáàþÁƒ7oÞ¼yóæíÛ—Ïž½|ïØe›V-[6kÖ²uë6ÎÛ8uïÞ‘¦ ’ 5hРQ#¨$Sªh±¢•lš7€äÔµ“—o¼páÒÁ›7O{ê cI@5hÒ¨Q¨P¢B‚z$IÒ(S¬jM«6î]¾|ùòå›—/ß¼|óòÍ›7oÞ¼yóæÍ›7oÞ¼yúôíÛ·oß¾|ùòåË7.«S£ RƒFN 5 HŽA‰ :5+XµqìäåË—/_¾|ùòÙ›—oÞ¼yóæÍ›7oÞ¼yóæÍ›7oÞ¾}ûöíÛ·oß¾jÀX©"©P 5j©Q(>5jÔ¨‘#(%V챓g/_¾|ùòåË7/Ÿ¼|ùòåÓ7oÞ<}óæÍ›7ož>}óôÍÛ·oß¾}ûúõ !ù€ ,Dd‡! "%( #""%$$&"")%%*&&-##-)).((+''1**1**5--2..5..9--<11611922=55>55;99?33A66B66E66K::B::E==F<>I>>M::M==T>>]44P>>b??i@@GAAJBBMEENEEKHHNBBQEERFFUAAUDD[JJUKKSIIZJJ]MMZMM]QQ]RR[YY_DDeAAnBBoFFjNNaKKdLLkCCpFFrHHsJJuMMwNNwNNrOOxMMxQQaQQeVVbUUeVVjVVmQQlYYfZZdYYjZZm]]j^^mRRrUUrUUuQQzSS|VV}VVzZZrYYv^^r^^uXX]]z\\zbbmaarbbueetbbzaa}eezee~jjuiizjj}mm~mmzrr}ssvZZ]]ƒ^^‚__„cc‡aa…ffbbƒff‰ccˆii‚mm‚nn…jj…ii‹kkiiŒnn‰mmŽooqqqq†uu…uu‚rr‰uuŠwwqqŽzz…yy}}Ž{{Šqq‘ss’rr‘tt“vv•uu”zz‘yy–zz—~~‘}}•{{˜›}}™Ž’††’……•‚‚•€€›††™……Ÿ††ž‰‰•ŠŠ”ŠŠ™šŒŒ‘‘ž““‡‡ ŠŠ£‰‰¡¤¥ŒŒ£‘‘§““¢““¨——«••©——¬šš¥šš­œœ¯žž®ššªžž°šš¶¤¤­¢¢¥¢¢³¡¡²¥¥µ¦¦¶¤¤³©©·««³ªª¹©©¸®®»­­º¯¯¼±±¶±±¼³³¾´´¿µµ¾²²»¿¿¿½½¾ºº¼··ÀµµÀ³³Á¹¹Â½½Â¾¾Å»»ÄÂÂÃÁÁÁÁÁÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÉÈÈÉÉÉÊÊÊËÊÊÌÌÌÍþY±buJ"DˆBsÆL”'Nš9räÈ‘#GŽ9räÈ‘#GŽ9Òä G¬„!CFl”$R³ˆì0aŠ)ƒÆm\ºtéÒ¥KÇnÕ©U«B=B„¡AhÌPyòÄÉ‘#GŽ9räÈ‘#GŽ9räÈ‘#GŽ<¡âÆ«Q¡! Å YµfÇ„ &¬³jÜÂ…K.\ºt성"E*”$Gˆ!B*Qž8qräÈ‘#GŽ9räÈ‘#GŽ9räH'O¨˜1ƒÆ š@«˜]«Æ Y1aŠ!ƒv[¸páÆ±cÇ­U§H…zä‘#D‰¡¡%Ê'Nœþ9räÈ‘#GŽ9räÈ‘#GŽ4qâäÉ“'Ož˜ Ä Z6€×ª1+&L˜0dЮqû–.]:vìØÑbµêÔ©Q“9zôÈ"@TžDyâĉ'GŽ9räÈ‘#GŽ9räÈ'Nœ8yòäI4’YË–­²bÈŽkvÛ·péÒ¥K—ŽÝ/Z¬N"jÒ#D! d&Ê“'Oœ8qräÈ‘#GŽ9räÈ‘&OœqâäÉ“'O¢ y¬™µkÖª1cÖŒ³jܾ…K—.]ºqáÂf‹Õ*R¡H %I’#B€Î˜¡òÄI'MŽ9räÈ‘#OÜ*S&¦M›Ì|Þ>¨ 1 @!ŸèèêÔ£Ë þ<ˆ¸À )Ní1BÂN3dÀX"5*Ô¨P¡HÑÆ,[¸pá¼} .ܸqãÒ¹s'¾|ùøåǃ05°”C¤„1E‹L¨Ààá@  Hh@££%À,*F د_¬lcE‹0f×Â…K7Λ7oÞÂ… .;wòðáÇ/_>i'T`(A'È8¼êôæÇ€>áSãƒ%r¼f ¶˜!C† 3e„!cV[¸qìÜyËÆÍ[¸páÂ¥cçNžzôèÉûæÍ›·pìØ±K—þŽ];wì¼]³¤bNJl0 x‚;\–dÈð€„,Â`a$ … TlÙRÁiùòåË—/>zôèÑ£G`–,(Aƒ6þkì€3gΜ9sÍÁƒ7=zù¼e Ç®Ý8oÌ€‘B„èÑ£A܉ƒÅ  0h‰£¢±7F 19 F“¡=Š<ô`@ƒQ‹ ØÁ¨QoæÌ™3gÞ¼yôèÑË—ÏZµkãൠg2Z“¤‹.:'ôYð€Ñ¢>zzùªôFÖ©^Õ1Ö©M…%0u`P"Cd*Ù‘fΜ9sæàÑ«W/_½|ù²eCG^»q×!C&ŒÔ!/':éR”G†*î„éÅ©W/c‹Rí¡‰Q kžà˜`@C‰ bDhi1fN%gèÌ™3½zùòåË—/:xôèþµ M0`ÀN½éT)U*O=T`XÐ%Î¥ZqpõRĈDŠ;ìäඈ €;îZqBÍ I˜,Òõ 9sæàÁ£—/_¾|ùòË6ݸpך³eËÖ)Uµvñ¡ã‹CÄÔð„‰¥5dLÈ¢HË›7Ùê¼)ófÌ¢%$¸ˆ˜SæÍN»Ð™3×a¿hњŊÔ#DŽBÙ’Ë™‡$(àÊ™s*T`ƒÁÓ":@$Õ©T§d•IbçþŽ!L5ÂD£–tæÌ™3gÞ~ùòõã—oРA„"Dˆ"DŽ080€ƒþ 0 N%M03«˜,ìZÖ©Ë9Aâ|PD†Ì˜1vî@èk¾|øòåã—/_?~ù4(Ð B„ ˆÂ080`À|dRç¯]”Ö`(¡dÀ.^±ˆÔQ„¥GSŒÖ¬!cç΃qpáË—/_¾|ùòñëÇ @44h"X°áÄ€,8ð@E˜^á¥燅ThhlWC™Nô¢K—LöÌap€ˆ.|øòå×/_¾~ýú¡AƒÆ 7hИ1cÆL„ $I0`À€d,Ús'S§Lž¬ 8À Ì….Æ:åþéÁ&‹”4Ù±óæN§ &T×/_¾|ùòõëׯ*T¨P¡B…J”(Q¨„`À`<8p,DîhZäIÈZaÈðåÕ«9hhy€¡&;Š2u¢Ä††1wòìáÇŸ=wîì=yòäÉ“'OžV.øqgN U¬lѲUþ¬š7oܼ…sâĉ'Nœ,€È-V¤N±bÅŠU(D€Ðrc­2[À~Ù²Eë—0aÂŽ!ã €D¸ŠK®\½‚ËÕ>—4XÀâK@NÐØ"¡@þú kæ¬1`¿h±ZE  3Ù²e»f­3fÇ€ý†¬Z6k²ˆFªW±,ñ‰ÀÃÓ£L±bUÒK _V¤ˆ¢ƒE" P`™5kÖš!#f‹Ö¬_¿XI".ܸqã¼]ƒv 0aͼ¥“×å'-™^aê„Ë|ùòás—.œ·pÞ ! Úµoá¼qãÆí´lת]ãVMX(BhÌP¡BÅ B¡~1»vÍ›;zòn©PFĉx0ÁQâ:zôðá£G/_>|öÞ±{—Ž4dÃŽ1ƒFí7nߘ]ã–m\ºlÇh= „Æ *fÐBÄ Ø±bÌ®k'O^»]^hd0¡¢D‘?èàþÁ›7½yóèåˇϞ={òØ]ƒFíÚµj׸qãÎÛ¸qìܶJR 4f̘Ah$R¬h­¢u š7€áÒµ“GwáÂ¥c7.\¸pṓ'Ï]:f¡BcÆ 7ƒ= Eê+R§h!«Æ-\8vòèÑ›oÞ|ùòåˇϞ|òÜñÃ'/3[“¡BÅ @„=r$)Ô¨P¡F­& Ú5oéäáÃG=zôèÑ£G=zóæÁƒ¼yóæÑ«—/_¿|ùòáÇÏ?{é˜ýZõh@4fРAˆ"Bz$IR¨S¬l1«6Î>|øðáÇ=zôðÑ£GoÞ¼yóæÍ›7oÞ¼yôòåË×/¿|øðáÃç «S¡BsÆ 4€È›@ˆ$…:ÅJXµpìäáÇ>|øðᣇ=zóæÍ£GoÞ4hРqQ(VÀª¥“g>|øðáÇ>|øðá£7oÞ>N99M==R==[??jBBMEENAAJIIN@@GBBQBBVFFRFFUEE[IIVJJSNNZKK\RR]QQVCCdAAnBBoFFjLLcNNnJJjCCpFFrHHsJJuMMwNNvMMqOOxMMxRRaUUbVVeRReVVmTTkYYe\\dZZiZZm^^n]]iRRqVVuTTsQQzSS|WW~UU}VV{YYv^^r]]vYYqZZxXX^^z^^}bbmlloeeqffvbbtaazbb}eezee~jjvjjyii~mm}mmzrr}uuwZZ]]ƒ__„bb†ffdd„ff‰ccˆjj‚mm‚nn†jj…ii‹kk‰jjŒiiŒmmŽnn‰ooqq†uu†ssrr‰uuŠvvrrŽyy…yyŠzzŽ}}Ž~~Šqq‘ss’tt“vv•uu”yy–zz—~~‘{{’{{˜||™›}}š‚‚’‚‚•……•……’š‚‚††™……Ÿ††ž‰‰–ŒŒ–ŠŠ™™ŽŽŠŠ’’ž••‡‡ ŠŠ£‰‰¡¢ŽŽ¥‹‹¦‘‘¦••£’’¨––«••©——¬™™¤™™ª™™¬šš®œœ¯žž®©žž°››±¢¢­©©«¡¡²££´¥¥µ¦¦µ¥¥²©©·««³««¹©©¸®®»­­¹¯¯¼±±¼²²¾´´¿¶¶¾±±º¿¿¿½½¾¹¹»²²´¶¶ÀµµÀ¶¶Æ¹¹Â½½Â¾¾Å»»ÄººÎÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÆÆÈÇÇÊÉÉËÉÉÊÊÊÌÌÌÍÕÕÝÅÅÑÚÚåôôöþO:Š‘ A‚þô Ì’$HŽ $H A‚ $H A‚ r$IE¤z#¶«£N§zë¥Kׯ_½„!‹†Íœ9sæÌ™3—Ž(P¤8)$HÐ?aÀ8I‚I A‚ $H A‚ $H AŽ$“(NŒ âtŠX4e€õêÕK˜3iظu3×­›¹tézêÔ‰#E‚ Ô' 'I’ 9$H A‚ $H A‚ $È$I–€&L˜>§Q‹†¬X¯^½€kF [·nݾ¥K—®—+P N’$I’ $A‚ $H A‚ äH$H I’$É’0ŒˆU³f-1aÄ„ SF ·næÌ™3—..W§@òĉ‘"DŠ òfI’$I A$H A‚ $!HA‚$I’$I–„Q´ Y5kÔ¢!CÖ ²hظu3gÎÜ7sߺÛë)O:qâÄH¢?|À€q’ ’#A‚ $H$KÀ,Y²¦)XŒÀ$Iþ’Œ WȨa³fZ4dÊšE£†[7sæºuÛ† [3dÂv¹"EꔫS 81Bô‡O˜0`’ Ar$H A^C¦@/MÖ ªôêÙ³NKœô9%ŒZ·nÛ¬QkFŒX3iѨaÛ¶mÛ6jÑš5£ 0]®`íêµË(NˆýéÌ’$HŽ ÄE"\ÈAåO#F*»LŸN½¢mÛ¶Z´fÍš5k†¬5kÔ¢5S† ™²mÔ¢!¶k0bÀvâ¤HÐ?|œ$I‚I @J ˆÐAÀ p:Så ¡[˜zú㉘µmÛ°Qöm[4dÅ¢Q£F-þš²fѨQëÆm›µfÄ„!S¦ °Sž8)úÃŒ“%I!ÁÁA‚P0ìøPÓ%Tn´`‘äFU§?§¢mëö­[·oæºQ‹µhÑ¢E£¶m¶oæ¾q³&-š4jÖ¬E+¶  .PŒùá& ˜""|8‘À +…&Å)4‰V--’ÌX²Uiµnß¾uëÖm6kÔ¨ES†¬Y3iذY£ÖÍœ¹nݶaö[·mÖ¨ECF¬(NŒ‰PF T8€òhÒ7xÔ©…©Q/R•`ÛÖ­Û6lÔ¢E‹†Œ1bÄš5‹Fš5kݺ}3—®Û¶nݺmÛÖ­Û·þoݶ!CÖlÔ 7" 8ã@‰I7phQ1ÀAo.IjwKÒ.eÛ¶a£Ö 1b½víÚÕ«²fѨaÃÖ­Û7séÌuûömÛ¶næÒ±cÇŽ]·mÑ> Ðð`À€"Nˆµ…›D€aǨ"^ÎüŠÓm5eÂv¹:uŠ(Rºvõ*0š4jغ}3gΜ9séÒuû¦Ž¼{÷îÝcg΂XXÙaeHªR}èÐãà Hé§Ì†8„^m£FÌ)Oœ8qâÄÉ)]ÄšQöm[7sæÌ™K—.]:uðîÝË—/_¾{×T|x°ƒVžtpÀM€(¼ìaåDÞL’dˆC‚ °IM“ ¬§OŸ>}÷î݃Gï½{÷äÁã¶mÛ¶næÒ¥3gþ.:vé¶QÓ³ãD„°yPŠ—"YX`è ‡¡I“f`°àà€C€y©0AfùòåË—ïÞ=yòäÉ“'OžP¤N‘  'NŠq"ÕËR‚ @ð˜ A¦T˜0•Áå&Hù îŸ?cµV™!DªÑ9hâŒBcS­`¨ÞÉ“çN^¾|ùòåËÇÉ“'P¤@åÉ©S¶|Hà Æœhš4ê&[—V͉“ƒ¦+ü®¥Ëµ “šJ€Öxi2ä/“$á ¶Gž}ùòåË÷çÏŸ?‚!RĈ“§N&8`À`‚Œ v¸Á„ Ž­TµrHù€VŒ¬V]²e&Z€Œ1bdˆš«h1 }úüôñã§Ÿ?üôéÓç  H``œJ©02D+J‡KÔá‘gÒ(@ÔPу+•$U•Ô"ä@<½~äË—/_¾|ùòéÛ·>|úôñã‡O˜0a*0˜à @‰HšDÇšB˜:¨Ètg›`™&‘ˆ¦P¡8Z©zEK•šCq$H°ÖŽ{÷òÝ»—/_¾|ûö… &Lš0a€ãL… p0`9QÔH*$‹•— $°d+Õ*=Êþ¢3eÒª[’h­2dÈ„ˆ=nù¸—/_¾|ùòíÛ·oŸ0Nœ8qâÄI’%Kœ°p`À LÈÃf!L¬f¤²TÃÆV¸råªUGFS ¥%IÒ*I’1aB•vìàÝ»wï=vìè%I’$I’$I’$I²dI pà ƒ î˜u ,Mˆ(ˆ…V*Z£VÙÁqˆ¦U«R*4IR&+*AêUmÛ¶oéÔu£f­$H A‚$I’$I’°Hð A dàÀ:“¢3¶çÀ† DÙQëÍœQ˜V2„çQ™I,â¨!äÃÄ+W§tÁ‚Õþ+Ú6lÖ°uC‚ $H$I’$I’ H€ƒÄÀäEKªIl páF;² øx%‰ L<&%øà`Š@xN´"¤H N¤\£†Íš5$H A‚I’$I–€!1`€‚ $8Q¨Ã [fèBµcÀ€>pAâ‘…ÇŽU¯Œ©åãÌ,Ð94éÄ+/}üüÄÔ.iبICr $I’$I&LÄÀð`À < ©R…éŽ6 ˜€ÅP•ì0Ô¨R°Tx@˜`@C„v¼"ÓçÏŸ?ŠN £¶m[7$H"I’$É'`øøùcÀþ<& €B«$ù€A‚R0aš2ÅÄÔ<e,LP#‡NU^þ(R¤ˆ“+`Ê¢QÖd‰0`¤áÃç E9øà#B‰ܸS— l0`p#U*L†z IM&CrV‰€À 99¨Dú“æ#O Nrµ«°]`ÂðñóG"EœNÁrUÀ€°*1à@„;¶Ô‰Ä†A“RM‚ÓÈÆ« ©¡SeR ˆˆsÁȤ8‚‘rµk—.WžqâÄç AŠ1âtªW3d“ 8ð@B&(xƒËT; ¸q Kþ†L èA 5^âœÀ ÁA *PÁÓÃU/a½`õÚµ‹S>}úü$H#FœNí&ì• xÀ¥ÅÀƒsèÐÑ¢bE…PÌŠô&Ø”‘qáR¤¡ :8àðÈ€K1\Á%è"R§ñãD Aˆqò Ô©S :€ZlJXxgN*PD$€¥È#gÉ)ôÈË#F¼dqÀ`€˜Î ©Å£'?|€ùÃIQ˜%I89b䈓'P :uâĉ†h@5 O‡9s"áÁ€@‹2;bäŽT^Èá¢f $à1ÊP%V+þþðã ˜0}ø€q’„“'Ož@Ê“'Ož8±0ÀC„H“¶|…K–– .ذEŽ€T´ÐBUÈ‹œI•daAz**ãÆ†'NÀ„áãçŸ0N’pòtêÔ©S§HyâÄÉ£ ”P‡ÍLµlÉÂ#bȈvìhÉ’ãL-Y˜ÔÂ4 ¡ ˆ`CÒ.WZ8&LŸ?‚ý ã$‰"O®vÁruÊ#EŠ1"3 p.YJ•ª®UZéçR$8t¥šÌ˪5hxÜøÀÀ‚  y±‘Á0aÒôéÓ‡O0K(åÊ•«Sœ þôç¢J¨`‡U-Y´jÕÂ…K–K—â*”*“¡BÁè¬ò’%Ë $øàÀ‡–8YâL0Nœ,Y²$ §S§@yr„èÏŸ?‚1ò„aÀ=°ÌªU‹ÕK¶ÈЩ,6 i2R(Õ£GsÊt¨r¢Dvp€ÀCC’$K–8Y’$I’$I’$E 'NŽ)R¤ˆ“'Ožj À¢Æ,Y³X x€ª¡G“èÜ`PÇ–¬)tp¥¢ÃƒÈ‡2D0p ãÃŽ |Èp‚T@ر#¬S NjÕê'AiÂðISM±]»tÁ‚åjW¯^½„c3` yR‰Ð àŒQ£Ry`0AzÈ`’áA e¨DHPbGþ'êS† X¯]º\:åI0Ö¬Y£-2dÀzíúu,¶g"aeT¡ðh4ªP‡ bLà gÕ% zXPAFކ1>D¸¡ÂX5jÑ”ëË•+]°N1úÓ­Û·oß¶Qk&l×®^ʺ™cÇ7“ ©Â €L´RÙyÀÀÊ„o.0ÁƒÇqÔ`HÐÄÜl³F-š2d»\rK¬SžØ©K—îÛ¶h½`ÚÕ Y·t÷ŽíP`é’¡T )Õ*H#0\qÀæ,4aa`à :!"Àƒ4žmÛF °^»\‘òÄ©(R ¬m³ 2a½z#Ö »{÷î©ÊE$I ØYXò@`°¥ Dx0¤JDDÀ‡šµmÔzuÊ•«S H: ²cÀˆ!#&Œ2jßØÝ£^·)+ÈàQq`‡›HDr\¸ÅÄ:¬`!!@„%â” AÄ…Ø@aÑ£‡‰v|°é±bDbÈš5k†¬Y4eȈõÒEêÔ.dÔ°mÛ¶m[7sæº)ƒÕIP>}úüAäÉU¯fÈš,Y"b`”ˆäæÎTjð˜ð¡É\D£F-Z´fÈšESFŒ1`ºžr¥ Ûþ¶mذY£&-Z³]žñáãG#EŒ\E‹Z/#,¼l0Àƒ z2d:sƒGFŠ4ÉÑbȨjÑš!¶«—0bÈ5SF¬×®^Ⱥ¥S 1a½€õrÅèŸ>qbtJ5kÔ¢u»%aC8èÉ ­2%JX!C¤  MHQ£ÖŒ°^»téÚÕ Y4jÔš)kFm[:vÀ`ÚŒ˜°SŒ úó§O?‚t!“F-Ú6u·6d0`ÀA‚.2Ä!Œ*DDXpq 6lÔ¢ ë%l×®^»z!£Öí\·mÔ¤aûæ ”+dÑ¢;uê#?|À€ Ç“«]þÂQK/ ÀQˆG *e²L€``ÀŠ`Ù¥KÇ^:kÍ¢I‹ÖL˜®^Ȳ3gŽ›´hÔ\õŠf-Z3dÊz‘Œ“%NÂôÄÉ0kæØÝ»g‡”)SîøÀã ‘12ܸ–ïÞ½{÷òÝc÷­Û¶nÛõêõ«5nݸaÆMX3kÖ¢QÛF­'?aÀ8Y²L˜?Œv!“Fm»{ê4YZ±C„YrìøP¢8yòîÝ“w/_¾{ôØ¥cgµb½„‹F6lÛQÆ͜9l½\)êŒ'`Âôtj—0`Ȩ}Sž:TWXà¸Q"ÆTäÞþ½“'Ož}÷ØmƒÅI'Nœ€IÓG#N<åéT/dÍ¢YÛfÞ=yòäÉ“'Ožzæé"¥¨À0`„ Ãç ?}þüAĈ‘#P§`!‹Öݽ{÷äÝ“wïž‚quª—´néàÝ»wïÞ½{÷îуwOžO˜0a„IÓG§S»¢™ƒGïÞ½{÷îÝ»'ï½{÷îÝ“'Ož>I>>N::K>>Q>>\66P>>aBBMCCKGGLBBQBBVFFRFFVEEZIIUMMVJJRIIYII]MMZNN]QQ^TT]VVZEEdAAnBBoFFjMMbNNnJJkGGrEEqCCpHHsJJuNNqMMwMMuOOxRRaUUfSSdVViRRlYYf[[dZZi]]n[[kUUrSSsQQzSS|VV}VVzYYv^^q\\tYY^^z\\zbbm``deeuccsaazbb~ffyee~jjvjj~mm}kkzqq~tt|||~ZZ]]ƒ^^ƒ__„bb‡``…ee‚ff‰ii‚jj…mm‚mm…hh‹jjŒiiŒmmŽnnˆoorr‚qq†vv†vv‚rr‰uuŠvvqqŽzz†yyŠyy}}Ž}}Špp‘ss’tt“vv•uu”zz‘yy–zz—~~‘}}•{{˜||™~~šŽƒƒ†’‚‚•……’……–š††™……Ÿ††ž‰‰–ŒŒ“‰‰™šŽŽŠŠ‘‘””œ‡‡ ‹‹£‰‰¡¢¤ŽŽ¥’’¢§’’§––¡––¥’’¨––«••©——¬šš¤™™ªšš­œœ¯žž®«žž°¢¢¬ªª¯¢¢³¡¡²££´¥¥µ§§¶¦¦µ¤¤³©©·««²««¸©©¸®®»­­º¯¯¼±±¼²²¾µµ¿¶¶¾°°»¿¿¿½½½¹¹»²²´¶¶ÀµµÀ´´Ä»»Ã¹¹Á½½Ã¾¾Å»»Ä»»ÉÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÆÆÉÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÍÉÉ×þG­åéП?øè  ”&JŠ)R¤H‘"EŠ)R¤H‘"EŠ)¤‰žB£t#†+Ó¡MªtùÚuë®]»|c–Íœ9sæÌ™3gn”§P£2úóç=aÀHi¢DI‘"EŠ)R¤H‘"EŠ)R¤H‘"EŠ4‘‚§(L˜Â4ŠØ³dÂvíÚµKرhÙºuû†®›¹tévÚ” Ó!Bþüù£' )Pš(QR¤H‘"EŠ)R¤H‘"EŠ)R¤%J¤HÆL=£ŽY{vŒ˜¯]»|c6-·nݾ¥K—W«P›6%*Dè!Bô„‘J%J”þ)R¤H‘"EŠ)R¤H‘"EŠ0Q¢¤I“&Mš€Á3Š™5€Óžæk×.b̦eëöíÛ·téÒ­RÊÓ&L‡ *TˆxÀ€‘ÒD &EŠ)R¤H%Mš@1ó‡“.U‡¤4iþÒÌŸVǬ]³fmÚ3fǘ=›–[·oߺuÛ–-³cÂp­jÔªQž0"ÄO˜0Rš4Q¤H‘"E”41#¦ À'}"ÊÔkY/=M¤à%lZ¸nÛ¬McFŒ³hϦYÛ¶mÛ¶iϘ1›ö옰[«ZáÚ…k•'L…þðÑc ”&J˜)RÄ.+ª£'P4„XQkvêžM»žeÛ¶mÚ³dɘ1cvŒY´iÓž1Kvì³lÓ¢ó… —/bÂpÂTè=f¤4Q¢DI‘"C,<8 @„ V¸p4hЉ:É–y:´‰Ø´mÛ²M³¶-Û³cǘM›6íþY2fϦMë¶mÛ4fĈK–ìØ®Q›0⃌”&Mš()ÁÀ lÐáòFŽ EgÙÁæÓ1O£žmëÖ­[·oæºM‹mÚ´gÏž=›–-[¶oæ¾m³íÙ´iÙ¬=+† .O‡þðÁ& tp™Ð¡Ê§I¦¹ydÊ ¨Ssè‹Ål•µnß¾uëÖm[6kÓ¢=KvŒ3jÙ²M›ÖÍœ¹oݶe˶[·mÙ¦=KFl—'L‡ ¡QÅFƒ Ö¼䈒ŸG¨fqñ¡jÕ­GèZÛÖ­Û¶mÓž={vŒX1bÄ’1{mÚ´iݺ}3—®Û6nݶmÛÖ­[·þoݲ;ÆìS'8 ƒ %SoÊP‰PA…#;–RÑâИgÛ¶e›Æ¬1b»pᵫØ1fϦeËÖ­Û7séÌuëömÛ¶næÒ¥[·nÝ·mϪ<°pÂ@l€P±Rf"êõhM‡ TN‰ÔmÛ´dÄp­5*”§Q­pá:ðÙ´iÙº}3gΜ9séÒ}û–n]¼z÷îÝ[g.MƒL¤)P .4ä@âÑáÀ9©ÑPA‹¢+CXm›F¬U¨M˜a” S¨[ÅžMËÆ[7sæÌ¥Kg.];vñêÝ»—_¾{×&°pB„ Õò1P +þàÒk’ *$IRÃK2b¸FyÚ” Ó&L˜6­ÚuÌZ·nݶqëÖ­Û·oßÌ­[ïÞ½|ùøåË—å@\àÀ°5ƒd¥ªràÀ´€ÍQ¤ã %ž¬Ù… W«V«VáµjÕ®cÓºuëf.Û¶mÛºuëÖÍܺuñîÝ»w/_>g°&Ž9lRQbóé•)F*dt˜P U,.©µÈA’+©Ž#FŒØ1b»v;-[7séÖe³–m[·nݺ™k·.^¼xõîÝË—&ƒ6lt¨C)F*6±$胈\.(šÅ’£! Œ€òæÙ³iј1þ{ö,³iÓ¸¥‹ïÞ¶lÛ¶u ×­Û7séÖ­[·n]éøÁÃÁ V&)‚„æ…VŠÐˆ©Ç¯?~÷îÝ‹ï^½{÷æÅÛ–-Û¶næÒ¥3gþ.»ué¶Qct ;¸°‘å¦G6Å('Nœ¸wïÞÍ›7oÞ¼]·Z­Z5jÓ¡?„2µ"¶c„ à‚ Ž#+¤L)ª"ƒ :¤è­^x‡þƒŒA²X=4 R‡fâĉ'îݼyóòååi”'Ož6úóçÐ(_64˜Á Rà RôŠÔ) ÒØT @fÍÌùㄨ 1hªdpcj%S±b]€õNÜ»wïÞ½›—/_>OžF…ò´ à&L…a 5‹Á… 2˜€j JÇ(Mª¤B‡ D¨ÓÌ­V޼z…ÆÏœ h>9ô(V¥¥Þ½{÷._¾|ùòåˇi“'OžÑBÊ‘£Gn]ù1èѧA±bÕêpç]¾yùòåëÇ_¾þ|:„)S¦M›<òĆ `À@ˆŸ4•b½9Pá‚ Å9åÈÔ¬Y´’}úÄŠ’N€ rô‰0iòåË—/_>~üòñãLJ> *tS¦L*0`À€Á°(ªôhŽ‚ldœè "– 1mÒ(BUëÕ«Wn*JÊÍ O}êPȼ|ùòñËÇ/_>~ùôèáÇϟ?þ:„é 08°A‡,8©MªPà‘¤tÈÑ‚…‹"’€¡zõ Ò§*W’”iCªŠŸO „Ì»—/_¾|ùòõËÇ>|øðáÇϟ?„D€8pà@ƒ )þ°LzôhP*&ÍùÑQT€¼@Òñè;¯LMJaå@ll”"N¾|ùîåã—/_¿~üôèÑ£G>|ôèѣdž ÁÀ† Hnذéð€ƒŽ&½1ÇË©3¨Ž=«Åå„#ËÐdˆsâ'N„äË—/_¾|ùòñë×QJå§Ç4~éØ-[·oéÖ}Ë–­›%J”(Q¢¤I“&Mšh8"…<À‹,F–v(Ë,8¶j½’UËV¬O©}¢ôè8Ž­8ÐæÏ £ZµºåþëÙ¶lÙ²uS¢D %J”4iÒ¤I @t`pàƒ:>ÉÑ‘FF¤±™KNšTµlÅ¢”*SqäÔ@3h e =¢QèÏL£V‹–mÚ4&J”(Q¢DI“&M¤€Ñ` A*(С’i@``Ì* 6¨Ä0ËV­Y•ÖP9Î7!Ò£zôð!tÈ®gÙ¦=S„‰%Jš4& ž8P @>Ø0°á‚’d¡ªð㈠F¨lÕªõHK* BäÇ6¦©¡‡>‡F ³¶m[7%J*iÒ¤ )`ðèáÃâþ‡ 0hÐ LPdƒ¬J´Ô `¥–-YŽÙ#—*ŽÐŒ9óF%+Wþ*TÓ*_ÉžMËÖŠ0aÂàÁƒ‡ÏŸB= ˜(PÀªŒ(pˆ Ee™r)Õ Zd¥’•êÓ A;ì@Ș1oà8â‚„¦MžBj…k—/\`ÂàÑÃç¡B™FµZU@‡Š2<(pàD&€Øè¡ÐGàØ¨ÀÅT¬J³Xá dçÀ‡2}¼ A4}Z…K×­V› a„‡Ÿ?…Â4ʳcŠD0‡JDø`óʆˆZæ´ÀáhL 6þŠP53V+UXu0g ‰+ÅL:ƒ¨Õ.a»ZáÂ… “=xôðáó§Ð¡C˜Fáò% ¸ð`E•Adˆ°c͘6WÞŒ1!(•)cÆbQbëCäÀápe  Tµ EèÏŸM£á#åŸ?…aÚ´iÓ¨Qž0)(@'&É9‚U¨tbÄÊ•9ƒ^™2f,ÖJ¤l|8àÀÊ 3n½i0iÓ&>aÀ€Ñƒé(M0a:”Ó&Ož2a„ S‡ØÈ2‘‚)6eªˆÄŠ/CÊT4)V¬W¶&¡T¥Ëƒ ôèÑ•Šøþ˜ ˜0zð€‘ÒÓ¦M›bÔ8P£Å OV.<èÁ`)RÀ„Ñ£‡ž0Rš`Ú4jÔ¨Q£Bm”)Ó!ø “Å¥Z¤Lñ˜ b,1UNPꢨÎ+.Vp)Ã!„ cÉy$G‡ÎH&Œ>þè #EI¡M«nÝZ5jÓ¡B… –X¯™’U«–,.:^­Qô&Õ#-&ÒÄâÁ ƒ   áH,JnÐPÁ 0`ÌèÑ£O0R”ò¤jÕªQ˜ýùþÇ¡H ø0¥¨£J²=ÒJ– 2hˆQ †©+'àø8À€A4mÒ4FÌ 'ÀH"L0R¤@Ò¤ ¦P£ ÚT¡@¯º<:AcR¬Wµb1jPà† œÅ¦• jäfm(R1G“&P HÒ¤I“&Mš4ñÊ&L‰ *TÓ¦M›hÑè#T¤š%+—X°©À€ K€pÐc¤.ƒ™¨äƒ¸4iŒ)P @Ò¤‰O£BmÊ„ ¦M›6mÚ´©L UI²Q À›S¯L8P€þ 0 ðX£HÇcÜøã(ÆŽ؈Á¡0aÂàÁƒ' 0`À@µjU¨M˜2yòäiÓ¦Mž")°`ÂTª t tJÑè|°Ä€AX °' ’#6,|²a—&áÑó§Ð¡C„øà ž0¾vµåiÓ&O¡F­ZµªU+&*TRt @ƒ‚Ù0pÀ„ ¨3ç?B2¤ @€àÂ!N«Q›<­R5j¦?xÀ„ C-1\¸nµjµêÖ®]¾ˆSt‚ —W €ê”‰ &ø`p‚‰J?XàaEQ%.‰h%H•þW$KvÌ×.\·Vµé0Û¬Y›öŒÙ±c¾pÝÂE왵f"$a©Ä¡€uRu(p`‚…l XzdCA\§Ê…=8”9ñµiÔ’ÛÕJÕ*\·FâÓ-Ü·oݶMc& ×­]ɶ™‹‡EE¥5:ä¨P%Å#E*F(P.h.¤X°C²l³FíY²c¸VZÕêV+P›Ø±K—îÛ¶g»n­º…+Y·u÷`U¨Äƒ €¤B¥£@ Q‡‹ŠbL:§LŠ „Ô6kÔž%;¶kÔ&OžFµR \ºoÝþ¬%#¦ëÖªU¸ˆu[w/ž9l2 #Î E'œàP €Jkj€ Y©€d @…2še³6í˜/_¸VyÚ„)S¨Qž¬Y³Æì1_»vù"ÆÌZºz÷îÉÂ!‡€6¡I¥€ˆtTb… Ø<ÔfD€8˜Ø@gš5kÓv© 5jÕ¨QžB êØ±cˆ#æKØ1kßÖÕ»W/Þ7]ÞPPÑÆ4VX ‰#W®T9ÀÁ† @hD(P@Š :f%{6Ú±U˜6ZµªU«V­Zݺ… —/_¾v {¶m]½{÷â­‹'gÌ@U†¸þ€cÈ@(P㈠¨…0­fæI , 0¸` @-6Fˆ$‡ô8ÂCcǘ%cvŒ³cLjíjj®cÓ²mÛ¶m[·oæº1k•én‹6íÙ6v¬88`D*92èØxÐáÊU2tHj[6kÓ¢ùò% .\¸p›Æ­·mÓžeû6ÊÓªdÏž5jT!=xÀ€ £Ó*\þÄŽeK ¼©ÃCÑ$&ØQ¡Ã“`ëµK—n]ºiÏž={ÆLØ­]Ǧu3gŽÛ´gÙZízfm3fÉv…úŒ(RÂèùƒÉ“¯læÖÝsfƒE AV:¤áR%†…: ¡–ïÞ½{ùòÝ[g®Û6nÙ˜ùÚ…‹Ù4nݸeË–M3kÓžMË6m×&>aÀH"L>‡n{6­Ûº{ëìtÐð :\°p¡»yóòÝ›w/¿{õÖ¥kg.³b»„‹mZ¶lÛŽMۖ훹l¾VÒFŠ)`Âè!4 —/_Ǧuc/¸Wtbd0±aÂŒRäÞþ½{7oÞ¼wïæÝËw¯^½zëÒMcmÚ³iѦeËÖmÛ7síÖ}óªž0`À€ £GÏ¡M£V…j%,Y6€ÝÌ¥‹7oÞ»råʽ{÷.Þ»yïâÍ{÷î]¼y÷òÝ»wïÞ½uݺ™K÷­[·nݺ­«Wo¹c˜ ñ F ˜0zþ´ÉÓ¨MžV{–­[7sñæÍ›÷îÝ»yóæÍ›7oÞ»wïÞ½›7oÞ½{ùòåËw¯^¼xñÖ­[—Î?~÷Ömk…‰)R¤€1£ç¦L›zøü)tè&O£n{Ömݽ{÷îÝ»wïÞ½yóîÍ›7oÞ¼yïÞÍ›÷îݼyóòåë—_¾{÷îÝ‹Ç ×¨M˜þè ÆŒ™0xôèуnj= aò4 ׳néâÝ»wïÞ½{÷îÝ›wïÞ¼yóæÍ›7oÞ¼yóæÍ›7/_¾|ùòõã—¾g­FÊTˆž0`„ ƒ>™0a„1£ç¦Q»ž™‹WïÞ½{÷îÝ»wïÞ½{÷îÝ›7oÞ¼yóæÍ›7oÞ¼yóæÍË—/_¾|üøñ !ù€ ,Dd‡ !%+!!#""%$$&"")&&*&&-""-)).)),&&1**1..6,,3..9++:00622:22>55>55:88?66B66F22B66K99B::E==F==C>>I;;K==R>>]66T??cBBMFFNAAJHHOAAGBBQFFRDDUEE[IIVJJTJJZNNZNN^JJ^PPVSS]CCdAAnBBoEElNNbKKdKKkGGrEEqCCpIIrJJuMMwMMuNNqOOxQQbUUaVVeRReRRnUUkZZfZZdZZjYYn]]i]]nQQrUUrVVuRRuQQzSS|UU}VVzYYv^^r]]vYYrXX]]y\\zbblhhoaarbbuffuddqbbybb}eeyee~iiujj}mm~llyrr~xx{ZZ]]ƒ^^‚__„bb†ffcc„ff‰ccˆii‚jj„mm‚mm†ii‹kkŒiiŒmmŽnnˆoorr‚rr†uu‚uu†rr‰uuŠvvrrŽzz†yyŠzz}}Ž}}Šqq‘rr’tt“ww•uu”zz‘yy–zz—~~‘~~•{{˜||™~~š‚‚††‰’‚‚•……“††–š‚‚††™……ž‰‰–ŠŠ“ŠŠ™šŽŽŠŠœ‘‘ž’’œ””—‡‡ ƒƒ ŠŠ£ˆˆ¡¤¥ŒŒ£’’¡‘‘§––¢––¦““¨‘‘¨––«••©——¬™™¥››¤šš­œœ¯žž¯šš©žž°™™±¨¨­¡¡²££´¥¥µ§§¶¦¦µ¥¥³¨¨·ªª¶¬¬´ªª¸©©¸®®»­­¹¯¯¼±±¼³³¾²²½´´¿µµ¾²²º¿¿¿¼¼¾¹¹¼°°±¶¶À¹¹Â½½Â¾¾Å»»Ä¬¬ÅÂÂÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÉÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÍþ[µ*JQ @üô9æË%G€ @€ @€‚D‰žC¤x={Æ‹Ó!O­| óÅK/_¾„%ƒÖܺuëÖ‘[Ç®(R¤8! (Ÿ>g¾8Qrä @€ @€ @€(qræP)Nœ¢TêØ´fÅ|ùòåK³iÝÂ…[.9vì|•ò䉓¢C Ä'Ì'K”9 @€ @€’#G–8ùæL> že›Æì˜/_¾„ƒf­¸páȱcÇŽW+P gœ(Irä +jàp³£Hœ2TÌüAƒá‚UÓˆ)òãé˜5oÞºYËæ­Û4fÌ Y³fmþZ³fÓ¬Y Î[6hÇŽ1kÖŒ™°Rž8!ò£'Œ“%JŽia¡7P䤺DCc*pèIU0J¥¦y .\¸uëÂY›6ÍšµiÓ¦M³Ö­[7rëÈËFmÚ4kݲM;Æ /PŠùás&ÌtTØà”Z–0±iS¢Ñdà|jK•µpäÈ… Î[¶lÖ¬McÆ 4jݺY³ŽÜ:rá¼uëæ-\8oÙ¬MkvÌ(NŠqÙ€A–Ü`úôgÌ–?ƒ íÀцÌ.CT)ó.œ·lÖ¦M›ÆìX²cÇšA›FÍZ¶lá‘[Ç.œ·páÂyó.\8þráº1cíˆ €%RBŽ.ÅáBË 4vi:XÀà£À TfAzlPC†&Éa`‚M0XMŠx¸EH­˜%;vìX²c¾|cF­[¸uìÜuËÖÍ[¸páÈ­cçnÞ¼y÷òåÛw§Ã% Ð¸¤Å¤S³jñòçO›OnH4 6 P.ƒÒ)BfÚ4kÓš5þ›64jÖ±›7/Ÿ·nÞ¼… .¹uìܹsçÎݼm0 ÄPcåE£6Yx+Ø4µÑ2èÉ,eµ>mqô'—$Ež…#®[7oàºy GŽÝ¼|ùæyó.\8rëÖ‘#ÇŽ;wìÖ±Ãó€„:n0E±#åÒVWTŠsë“rä| V«VšOƒ Òä“;w÷æ¹sÇŽ;wóîåË7o^¸pÞ‘cǎݺuìØ¹cGÎÛ4`XÉ’ÉÑŒC&¼Ä ¡IŸR}ºtáɤ`Ê‚Ùúd©Î§H\–™·Ïß?ùòå›7/_¾zõêÍóæ­›·pìØ±[·þŽ];wì¼a{ô À8b•‘2"CªI«$ÁùÄŠ¡ Ôɤ,X0U©âü1”¦I\ûöíÛ·o_¾zõêÕ«W¯^½nÖ¬uónݺuäÈ­cGΛ508`%Õ§T\FLº”ÉÐ*‘ ¡QQ7µ‚ –*ÒUX¼4ñQ¯^½zõäÉ£W¯½zõäÑ ×ÍÚ4f̦YóæÍ›7oÞ¼=“P@mÌ p‡š3j±)ÉVœ"T,Ø(d)X0Z©M1ËP"Òä;wîÜ9yòäÉ“'OžM’ä#Ö¹sçäÉ«·oß¾}ýöñjÕŠ(X¾„ó‹,e HðâÀqhСþ‚gÎ ¬dÒré­Z¸¬¤ÙÂ%Ò¤Y¸Rý‰3çÒ'Ijèœ;wîœͨTG5³pÅJ B!R³–]š5éR0e;<|HwîÜ9yòèÑ«Woß>_¼Zµ*UÊ“¢@‡8Ábµ Á $ÔX 3g+(pt°° qRYzá×­8P䘌þ–¡KŸ"±ú¤¥ÁiçÎ;wNž¼zõêí+EŠ(P <) HQ)G ,xð`ƒ•A…”)SsÀM‡g.æ¸ÈB‹Ž#:tîÐÒ²*VœA°V]2ôIÒIrLÈuîÜ9yòèÑ«·oß>P H‘  'NˆqÅF‚„ Xð1(Ó2<3p|"©H–§d¥JuJG…S± e¡âˆU¬Z†&ÝJ% Rƒ ²äÑ£Woß¾}ûöíÛÇÉ“'P @yòä ©RQH8°À@…ŽpÑZsàŠ v.á¸# W&l³Pø€cC€.Ū5è!X´RY€Š^½}ûöõëçÏŸ¿þ}!Rĉ'Pž@•"…cÁÈÂê’%®D±ò‰V¬X¸‚Å¢%é’HX(°‹¤X³>Ešt SyèíÛ·¯_¿}ûüíóçÇ?!B¤ˆ'N(Ø€£ÁÁ,òàD 5jbÅŠ%éQOŽ.õ¨”àÀÈ)2ç’¡?·ä4ÐO½|ûöíó·oŸ¿}ûúôñãÇO @!RÄ©Ã&,8àãÖ­6 PààãέT˜XÅòi”\ÛRd8@‚ÆœAcR©yÂåSNÕË—/ß>ûöýû·¯O?~üøñãÇO @‡P0h°`þhá‚“…  3Ná²ô ͬ;h@HxpGt 9Šó#Žƒ"ZРR½}ùòùÛ·oß¿þúðéÓ§O?~úðáÇ  ,˜Q –!8´8ª`%Ö¤:—"aª¤ŠƒH` #Ž*C? A¸iΜ0åÛ·oß¾}ûöíû÷O=|øðéÓGO˜0a8,°°áA2ª ­¢sÀ@* ,`úDËÑ'L—*e¸`Aƒ J‚5ë¦ý#a¥|ùöåË·oß¾}ÿþ &Œž3aÂ|ùòåË…6Ìxp¥Ì£U™˜ÐRàÀ<’$9ºtéϬoHþ°BË-Z³f¥ñ`Š—? @Ê·oß¾}ûöýû÷ïŸ'Nœ8qâdÉ’%KœPXpàÁ æTJuêž0¨tëšAeÆÌaå¡‚‡fÌtSÆjÖ¤' lpñB€wóæåË·/_>wîî)Q¢DI%J”(Q²d  X°°a’%;  D9PIÖ K´,©B3gÖU·$Õ¸òI’!fЈÙÒR`K.u,ò5­[¸uìÜ‘ëÖ-Ü‘#GŽ9räH%J–\Ѐ¢°„‚ÁFjbݲCËÎ%9´”)#dèÒ²IƒMŠ4)¼H3Àá²åÒI¥`µ‚åþkš·nÙº…;räÈ‘#GŽ(9’D‰’ ` HðA d"´*–£K©nsÄ*Ø2U—>siŒ!,d©JsCB‘4‘âTp„(P N Z›–Íšµ#GŽ9räÈ‘#J–|ÉÀ€D‚D(p`AH•VÙ©T(Ø2L¬hÝRVKY-nÌp¡© ¤4i@ÀcÈQ‚H|ü ¤”¯iÙ¬Y;räÈ‘#J”(Yò% ŸzÂ|éÃIÑ™%G8qRĈ“'Pž8qâĉ‡,ÐAË‘$9V X24fÌHPRÜÂÅŠÐ'Lé¨Ðæ+Im®82óƒL°üþœùòåË—0zô|Y¢„“'Ož@"åÉ'Ož(e†7´nÝ’ƒçQ#LŸ¦XºÔaÐ-€¸>¥Š”#&8þDŠ$iЄY`¹hI‘'_¾„ÑÓÇŸ0N”pòTªT©R¥Hyâĉ“"¥ºÅ*®eŽ|X²d© ¦S: |ZÆjdb¹(€#Ò$IŸÈ,8PB•‹9ùæ ?õ ãäˆ"O­xéjeÊ#Eˆ)2S€Ž,\´b‹å#K¥Phh0¡%eËhé°‚iFX¥Štk (‚Y0@З/aÎôéÃçÌ—/KŽ ÕªU«Rœ þäÇÏ¡H¢¤¢ÕÆÒ2Zx0½(PàÀ”Áµ,•…TR(8€áh+C— }ôÓƒ¾8YâäK˜/Nœ,Y¢$ §R¥@ybtH?)òdÀX¬p̸t‹U,  (P @€´nÑyTI &G©j±2”&š4c$°ª°’%K–8Y¢D‰%J”E 'NŠ!B„ˆ“'Ožn@`•j„·h±:P Àƒ HéVj$ B“ š4qÆ IÃC&)Yòå‹'N–,Y¢DÉP¥Hyâĉ'Ožˆ=kÆL˜/^ºZ•*å)ž/Ù²e³6m3fÅ|ñòulš·ePXù(€A* X°p @ §ÈAãhÎ<ÆÐ"IÊ-v|”ˆ%6kØšó¥«U+^ºJ)ò.\8rá¼e›VŒ/_Í­›gEŽ–Äb• @rÐ"KR!L´âlÈÓ#’¡K¬fÁ‚°Q %yˆmZ3f¼Z™j¥K¬RžÜµcÇŽœ·i¾`µâå«Y8w÷–Ù¡âÀ‡Z¬L(P ‹dÅŠÅ*Vœ,j¬p™ôGÕ'7³®@ÐãV¸lئ5cæ«(P¤ZÁ*EŠ;ráþ²M;Æ V«V¼Žy›—opt R€ ¨KV,V†bÅÁd‚H—î°ÑB(… 8°yû†™0_¾Zòĉ¨R ²uË63a¾|ù:­»|ùòÝá…‹1Eˆ pàÀF´hŚÅKOfH2E   Ð [6oÖŠµ*UªU+S¤H•"EŠ3fÂŽ=;V¬3këÜåË7o^¶ETüàR„…hˆåÓ,VEŠ\š ’%I;, p @9„5›fmÚ±Vœ<•jÕª,X°`Á‚¥‹—/a„%£æÝ½|÷ܹ›·¨Å-Šþ¹R €„ Špáòãš1sÊp1à„.€bGرg̘ãE T)XºtÁâÅËW©V¾|ñâåËW±iáØ¹sçî]8kÍ~üh±BÁ<¨ Ã-ZüR 9¡+¤„1;VìX1]¤<‘jÅ‹/_ÂŽÁòuÌ—¯cÌŽƒf-Ü:rá¬ùò5íÐB( €ŒøQÄ‹cŠl$)‡:ÔybëX³fͦM+VŠ“"O­x ;ÖÌ3fЦYëÖÍ[6h̦œÖ¬)F tñJ"DH† QbŠf¤Àðà RlL¡Bþ%Å•(¤„c6Íš5oÞŽµâĨ¯cÓº…ËfÍš5oáÈ‘ëv )P ùñƒˆS+EIŽ´°@‡)êØ¡À*F$¸PçÒ 4*@Ôi#ìØ±cÇ M³f™¯RžZù:f-9oÙ¬e Gn7f¾8!òã‡?ˆ8™Æ'‰ \,8`áŠ@€Àp @hää R"‹–cÌšAƒÆ Ú4fÌŽù‚Uª¯gÖºyóæÍ[8rëÂ5ƒå)P=zúø9Ä©¯fÍš PÀ€E)0‡$,è@„Ê h̲fmÚ4hÌšAkvìX1_°¶âŬ›þ7oݺu³6m4_žéÑÓ'"DœZM›6ÍZ*(` „:0BH HQ@„%kÓ 1óÅËW1f̘5kvÌ/_бk73a¾|ùjÅÉ>~qRä©™5kÔ¦…[…BY:|ÀâB 6‘`‚…*ìX³íX1_¼`éâå‹Ù4kÖ AƒfÍ;wÂ`•â%ìX±VŠòã‡?t1›fÍš7v•( EŽ+Z*TàA  °aÇZ·nÙ¨ó%Œ/_¼|1³.\8oÖ¨u#W T+fÓ¦+Uª¢>zÂ|£‡“)^þŘec7‡ñ`㦠‡T¤xh¢TݱcÇÎ;kРM›­˜._̲…[G5jÝ`ùš–Í4fÌ|‘ æ‹“%NÂð ÄÉ“°lëÜåËåb‘ QܸÒ„ ŠpY¶/_¾|ûöås·.œ7pÝšãå Z7oà¼uëæ­´lÙ¨Yë6Í'?a¾8q²äK?œx5³fÍ›»|ç*¥¨Aeà $ÀPÖ¹zõòå«·oŸ¿}÷ܱ{·®4f¾Š1›6ÍšµnàšYó–mݺnÂZ!êæ‹'_Âð TŠW1a̬…k7o^;Y=,0¨P@CŒSæäþÑ£G¯=zõêíÛ—ïÞ½|îØYƒ6͵iÖºuëÎ[8vîÜ‘V Ÿ0`¾| ç"O¥Z‘jU Z7€áȱ›W¯Þ9uÒÔ£GOžwá­c.\¸pá¹›7Ï;fœù ãÄ ˜3|!âä T)P x›ÖÍ[8vóêÕ£G=zõêÑ£W=yôäÉ«W¯^¾|ûöíÛ—ïÞ¼yóܹsǎݾ}ùÜykÅ)Ð'Kœ€9Ã'"Nž<å©”¯cЦYóÆn^½zôèÑ£W¯^½zõêÕ“GžÏ™0a„9Ã'§R¾¦±»w/_¾|ùòåË—/_¾|ùòå«G½zõèÑ«W¯^½zõêíÛ·oß¾}ûüù !ù€ ,Dd‡ !%,!!"!!&$$&"")&&*&&-""-)).**-''2**1++5--2..6..9,,:11611:22=55>55;99>..B66B33C66I99B::E==F<>I<>c??hAAMCCKFFJBBQBBUEEQFFUDD[JJULLTJJYNN]LL[RR]SS\PPWDDeAAnBBoEEkNNaKKdNNnJJkCCpFFrIIrIIuMMwOOvMMqNNxQQaUUaVVeRReQQnUUkYYeYYm]]m\\jVVuRRrQQzSS|WW~UU}UUyZZv]]sZZyXX^^z^^}aamaafaarbbveeveeqaazbb}ffyee~jjujj~nn}kkzqq~ZZ]]‚^^ƒ__„bb†ffdd„ff‰ccˆii‚jj„mm‚nn…ii‹jjŠkkŒiiŒmmŽnn‰ooqq‚qq†vv„qq‰uuŠvvrrŽzz‡~~‚yyŠyyŽ}}Ž~~Šqq‘ss’rr‘tt“vv•uu”yy–zz—~~‘{{‘{{˜š||™‚‚’‚‚•……–……“š‚‚††™……Ÿ††ž‰‰–ŒŒ–‰‰™šŽŽ‰‰‘‘ž““››‡‡ ‡‡¢‡‡¤‹‹£‰‰¡¤ŽŽ¥¡’’ ‘‘§••¢——¤’’¨––«””©——¬››¤™™ª™™¬››®œœ¯žž®žž¨žž°ŸŸ·¤¤ª¡¡²¢¢³  ±££´¥¥µ¦¦µ¤¤²©©·­­²ªª¸©©¸®®»­­º¯¯¼££»´´¶±±¼³³¾µµ¿¶¶¾±±»¿¿¿½½¾¸¸»··ÀµµÀ¹¹Â½½Ã¾¾Å»»Ä»»ÊÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÇÇÈÆÆÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÍÒÒÚþE‰ÕéPŸ>}ôàñÒ¥ “%I $H A‚ $H A‚ ‚d‰C€!#¦KÓ Nªtãuë–.^¼x%s¦m\ºtéÒ¥K·.T§P¡2êÓ§<^º}ðxa„ɒ$I’þ $H A‚ $H A‚ I’DÉ’%K–<±#j6€Ö¤Æ‹/bάió–.]ºuëÖ©JªS'M‡ *ThP;O–,Y’$I’$A‚ $H A‚ $H$I’$Q¢dÉ’.‡ˆYÓ†M±bÄŠ[fM›·péÒ¥K—nÝ-U¢:uâ”)Q¡>…õÁÓ…É’%J’ I$H A‚ $H$I’I’DÉ’%K˜x)¤k™5kÖ¤%K–,Y2iÚ¼…K—.]ºqáÂÓÅJT(Nš8iÊ”èÐ =vºta²$I’$A‚ $H$I”lÁƒ¨$&N”,Yþ²¤KUȬiÆ͚´eÉœI£¦Í[¸téÂ…ã¦M›³dÀt¥ J”*Q2¤ÇŽ/O–$I‚$H A‚ YÒ @2|ø Z ‘™#JžàUÌ·rܰY[FŒ˜3kÒ¬iãÆ›6kÒœ9³&-°[ªXéâ¥KU§LƒúèÁ㥠%IA‚dH’!J¶€ƒˆO#f ¥šE NÀ¤qãÆÍš´eΜ9s–Ì™5kÖ¤I[–,™3mÖ¤%ã¥K°bÅt©ÊT¨Ný Œ Iþ*Ä‘‚Ð)X°ÜlÒ†4bºDuâÄ)“¦L™8©â•ÌZ¸pá¸q nܸqãÖ±s'/_>}úúõÓ—åÄ <È2V°`„ê´CJG«bÁ‚%ËÑ%$04â¥K×­[¬XÝ¥Š¯dÖÂ7N7nÜÂ… .;yòòåË—OŸ>h'`ðPáÀ:&ÉzK­R:pô˜dj•¥RŸ`íèȳ’+fŒX2b¼€KFM[¸qëÜiæ[¸pá­[çNž5D‹–¬ `•Ù³eH‘èàÁ3gΜ9xðàÁƒ­z´¡ÁœI‚¶˜a2%–9sæÌ™3gÎFÒ˜3gΜ9sðàÁ›7oÞ¼|ëÖ…ã¶ŒØ-N2eÊÄ)T§8°#‡IŒXB Ž=cL¹Ú²%M‡O¿~ýiÄHFG¹áãd :sæÌ™3g¼yóæåËÇŽ}úôÃ6ݸrÖ–cÅêV¨T)x˜@àÀ‚?{à´ivj‡‡ µ‘,Ž 8§LÅ¢µŠ,7{Ü8ê$èÓŸb^™3gÞ¼yúôéÓ§O«Tºt醌X1]¬X…ÒÕãÁ™ °™tŠÎ$Kij\)q`ÎW®dÐIãHV)YŸ‚ÅTFG:9Ša’9sæàÁ›—OŸ>}þôÝR•*T'U¼ˆãuK«H68°àǧR§¦dÁþ!EŠÒÀ¡cA:Ž`Ñ¢E‹Ö§=‚ĸùô¨‘” Θ3gμyóæáÓ§O/^¼n¥RÅ‹X1]¼ˆ³2!Ʋ8Š5©@Œ a€-‘À±ãŽ)ŠbY2å¦Ô‡)“‰¹Ð AtæÌ™ƒ7oÞ¼yøô鯋¯[¬D…%ê/b .x8p€C :¥ÜH¹  R´# *¤h§”#X¥VØñÇÑš ô@gΜ9xðæÍ›7Ÿ>]·X©%ŠÓ¡A…2±ú´à‚t´)G†<Ø!åC›9 ܨÃ1YN- 6ÉþŽ*Zþº0á pæÌ™3gÞ¼yøðéÕ)T§N8%êÓç¨4 @ôh@`Š"Z'@L9°`”0a®|úq!B‡* 0‘†–©S‚- 3ÆÍ'l€}úôéÓ—©S§N¡:qâÄ©S(Q;, @à-ah*èH±`A)–N•!%Å 8PìOnjÔHЧc9d<Ø lÞ<|øôùóׯŸ?þ}} :”IS¦N:…ê„ãÀtÔª5GÆŒ (ŠE«V¬p¤X bš V‚™2åfÒ©Iþ8rTăÇæáÓ§OŸ>}úúéÓ§G=} *t(“¦L&,X@@Š«9rÖˆ¨°G¬Z´dMr‹Ä€ »À¦Y,Z{>ÅšÔ ?4È0ؼ|úôùÓ§OŸ¾~úðàÑ£GOŸ>}ú:” Æ‚œ 5©  ŠkÒ$KhqÀ°à‡c`A;vìØ*Xíù´Ç„ V‚ÍË—OŸ>}ýôùÓ×=zôèÑ£GOŸ>ƒN}ùòéë§OŸ¿~ýðàÁƒ=zðàÁƒ'Ã…(˜pTkÖ¢)JÄrôÇQ©R¯æ¬±ç4,“9úëÓ¤ ÊÚ³ÇÂXåÓ§OŸ>}úôõóçÏŽ;xðàÁƒÇŽ/^`ĸp`Ç:¥ØLJSA ©Ra•*å*V-Zq|àxŠÖ¤1Ÿh¹š4cAeöx8p Š®|ùôå˧OŸ>}þüyñâÅ 2^¼tyÒ¥K+HéT*ÇŽ@5”ˆ!kÒ"T¥\ªlŽ˜®hþ›ô§Ñ§OW*˜0ãÆMЦÈʧOŸ>}úúùóçÏß“'Ožwîì-Y²dÉ’%K–,Y„I‡ 9"XƒcÁ†R8.\Øp&MšOL…¢%L˜¥n[öÈ)`€l¤ÐâF‹ E°˜â%M[¸qéÖ¥Ó¦-\’$I’$I’$‰’%K– ùàa‡ ¬a)›81æä!g­Ie\Ų&†J˜F¬Í‚elÜì™ôé€]¢X±RþL7mÚ¸…K’$I’$I’$I¢dÉ 'œI‘à>b0*µHФZk-šTæ­ZkíùçÊ»Åí8±GÐ#AÐAV¨Ï LT³¦Íšµ$I’$I’$I’$K˜t1 @ &,¨±æG E޹™tªT)S“bs%gÒ¤RŽˆìøVhL)m=z$f#]xðèéS¨“.gÚ¬QK‚$I’$J–,aÒÅ 8°ÂÁ'æ,²´Ž8Ÿ\š Ö/#¤œšäfK•@Z¶ì§¢I‹:|’…G=…D³æÍ[¸$I&I²d “']ìàé£"ÀþFÀ€cŽ@Œà1"hG¬,¦dÅ:u$‰Ra&}º!¦L™=cuÚcêS•Y«ô:T(Q*`ɤYÓ¶„É“.]¼±ƒGOŸBS0$  €‡,Àh#¨Ô#Z²Dê¡– OG$CV àüé䦑¥Fjˆ¡JO¦N¢D‰b¥‹/]]¼ØÁ£§Ï B™D±R•¦‡ð€#P AJMÚfŒ9Œb=Ú³…Â"Z`Ù(!†N In9Ú芕_ …R¥‹+UœeÊdGOŸ>ƒÊ$Š—³d‹t`Á‰86ÜÔ™´¥¥-X>X0I±Eþe8 ¸F‹Ê¤cd‹-ÁBŒ•®b¼XñÒu+;vðèéӧСC™BéâU,Õ…eâĉ“(QB™Ú1àÄ"p\•¨§ œE.¸úŪӪdª,èâÆžO%Ä}òÜ­s—N›3bÀˆ%sFÍš6mÞ’Yã¦-]:mÅT²Ó¥Ë“']¼à$JW1`ɬcçN:I1* °ÃZèàþÁ›7oÞ¼yóæåÓ§Ï^¾|îÖYs&Íš4jÖ´iÓŽ[¸tîÜ…ãª/]žt!ƒÏ!N¢T…bEÌ7€áƹ“7oÞwáÂ¥s—.\8oṓ'Ïݺd™ éñò¤K2xúÊÄ©“¨N¡T“¦[¸uòæÍ›Þ¼yóæÍ›7o}úôéÓ—Ïž}úúéËþ—/_¾|òÜõË'/\2VšôxyÒ¥K2z*tH“¦L™4uÒÅË™4néäåË7oÞ¼yóæå›7oÞ¼yóæÍ›o¼yóæÍÓ§OŸ?}úôåË—Ož>{é’±U@/]¼xñbGO=xôðtèP&N¢X%“Î]¾|ùòåÓ7/ß¼|óòÍ›7oÞ¼yóæÍ›7oÞ¼yøôéÓçO_¿|ùòåËÇM—¨N™úàñÒÅ /vðà±c‡ <}eê$J—´pëäåË—/_¾|ùæå›—oÞ¼yóæÍ›7oÞ¼yóæÍ›7Ÿ>}úôùë§OŸ>i¬D…âtH.]¼xñb‡>Œ/^¼xñ‚§O&Qº¤­“g/_¾|ùòåË—/_¾|ùòåÃ7oÞ<|óæÍ›7o>|øðáÓ§OŸ>}ýúõ !ù€ ,Dd‡! !%)""%%%&!!""")&&*&&-##,)).))+''3**1--2--5**4--:11622411:22=55>55:99>66A55E77J99B::F==F<>J<>cAAFAAJCCNIINBBQBBUFFRFFUDDZIIVLLTIIZNN]LL[QQ^SS[XX]CCeAAnBBoEEkLLcNNnJJkCCpGGsEEqHHsJJuMMwMMtNNpOOxRRaQQfVVcVVjSSlZZdZZm^^n\\jRRrUUrVVuRRvQQzSS|VV}UUxZZqZZv^^q]]vZZyXX^^z]]}bblcceaareevddtaazbb~ffzee~jjujjzjj~mm}rr|uuxZZ]]ƒ^^„cc‡aa…ffccƒff‰ccˆii‚jj…mm‚mm…hh‹kkŒiiŒmmŽmm‰ooqq‚qq†uu„rr‰uuŠvvrrŽyy†yyŠzzŽ}}Ž~~Šss’qq‘tt“vv•vv•yy–zz—~~‘||“{{˜}}™š}}š‚‚……‰’‚‚•……’……–€€›‚‚……Ÿ††Ÿ††™‰‰–ŒŒ•ŠŠ™šŽŽŠŠ’’““œ••™†† ‹‹£‰‰¡ŒŒ£ŽŽ¥‘‘§••¡““£““¨‘‘¨——«••©——¬šš¤™™«šš­œœ¯žž¯žžªŸŸ°°šš³££­¤¤©¡¡²¢¢³¡¡±££´¥¥´¦¦¶¥¥²©©·¬¬³ªª¸©©¸®®»¬¬¹¯¯¼³³´°°¼²²¾´´¿¶¶¾±±º¿¿¿½½¾¹¹º¯¯Ä¶¶ÀµµÀ¹¹Â½½Â¾¾Å»»Ä±±ÎÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÉÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÍÇÇÐþE©Å ÑŸ?öèù⥠%IŽ"Dˆ!B„"Dˆ!B„"D‰C¢v¶+¢Lªvõâ• W.^¼x[–-:tèÐ… ‡'P .úóÐ=_º~¸Ðˆ`¢3c¹DqÊ”éR¦K—2­âeìÚ·oß¶}ûöí[¸páЭkïÞ½|ùøå»—R*X¨dç×)B6Pô#¥7gq²EÌ”SˆôáÅ++\«X奊/cÕ¾} nÛ¶mÛ¾}ûöM]»vñîÝ»w/_>l&@Xc†I³fýòŠ”PL-ŠääÓ)BoœHå‘(´ˆ 6 ذa¼z 3-Û·pêÚm»vmÛ·oß©k×.^¼xõîÝËWå (::@ùðH­Y³~M©aP#Gµ\©:å*Ö#F€!3´jÓ–!þƒ Ù2hÕ¶©‹ïÞ¶mÛ¾}ûöí[8uêÚµ‹¯]Å¢T+Ö)+dN¹B…Ä74Œmûö-[¶mݲm ÷m]¼{ñâmûöí[¸oáÂ…C§N]»vê¡“ƒÁ€ ˆ0 G±bŽ>¥øãQ(³â0ú ¢,"Cˆ° ¢£N»vñâµk×®]»vñâÝ»/Þ·oß¾¡S§N:uêÖµ[n2 "ÔЃA€ Ÿœ5+Ò©'j<¢D(UœLxñf 4¢ˆÇ_?~ùîÝ‹¯Þ½{÷æÅÛ¶-Û·oêÔ©C§þN]»vê¶Q“s °X âÓ©XžÁYdAŠœF®LêÀ€ƒF†”ÙrƒbùòõË—/ß½yóæÍ›7o^¼lÕªeÛö ºpá¡SîZ5 pØð #Å€%frE©ÒšA0rÈ95(£ 0€ò(K"7ˆL™4oÞ¼yðÞ½{oÞ»yóàÁû–­4cƦUÛ¶mÛ¶mÛ¶ùá”DÀ D¬YŸ™ú䡇ÑyÁ€ƒÊÑq£ÇŽ0æàÁ#GŽ9xðàÁƒ¼vèºU–k•¨]À3† Z59X°#"0Bõ©Òþ›IŒ°4Âà £8=Ș0¥Oœ>ƒ¢(Á¥9räÈ‘#GŽd¤ÑçS$O:¢¤AŽ9rëàÍ›—/_¾|ù®mS7o¼pÔŒ Æ*Óž ðàa’, rÜ©ã,ItP}ØÂÔ§H‚=Š$Eª>‘(}:%¥ÃŒ æÈ‘#Þ¼{ùòåË—ïÚ·uóæþ­û†Œ®\¹8•)€Á€9!ÈŒ ¬0úd ƒ…U|:(Ò,€¿$a1õ(!B}ªp`#ã9rðàÁ›—/_¾|ùò»fî[¸oÕõbÅŠ'7 (€ ÎŽ @ÁBgÚ¤H!¥Ž)Y¿*9úE–S”fÅÑâèJƒsJ‘#·Þ¼yùòåË—¯®U¹råfl°\¬Vq¢ÃÀ!d]ÁàÃ…"Ty³EÊŽ1œŠT‹¬T‘*aaC)’£,dpP pÃ9räàÁ›—/_¾|ùòáZ¥ §U¼€ ã•+«48 Ð¨QŒ @(þ0©,Ž¥Ø)RŸ3Ÿú‹%ËŒŒ9‚ó¡… :Ø#G¼yóæåË—/ß.^¼p‰ZÅkØ0^¼† 뱂ŸLM€Q@ HgR 6”€²#Ð#_¦>¥Â ‚P¤O;4h@Á†säÈ‘ƒ7oÞ¼yóòåëÅ‹/\¬D‰% ¯a26PåÓ¢ 8`c„X“¬ pÁJ› âøªå¦,ÞÈòÕ£Aƒ1pˆñFŽ9xðÞÍ›7o^>^¸X­%*¢B….±:µBcQÂA'Lˆe§Ç€ L°0àQ±Yb™ê bþŠ)Yl4h âƒgäÈ‘ƒÞ¼yóæåÅ 'Nœ2!úóG‘¨8 ÐñÈRZ) @€£„ 7W `Á}ŠEÉ%:ƒˆ8ªåè‡.0*NœDâÄ `¦K† ]µ¦AWRåø0F‚Í"Ä(‚" tˆ±Â#JŸbÍrõIV*B±½¸¡ˆF¶àÍ›7o^¾|ùòåËw)S&Nœ8qÊ”‰(Qc (`)–5: x`¢OB6, À:'rÄB•ÊÕ©@Ÿj:E‰RP@kÞ¼yùòõËÇ_¾þ| Bt)S&N™8¥¦LÙ©Ña‚+dú˜B5¨ (sê„™råY*Y²(½qtjÖ§8nmhÐBŽJ¤æÍË—/_>~üòñã·gÏž= 2„èÒ¥K8|x`ÇTˆhËV*Y¾jUÚQå 6µì¤‚e‹P X§RõéÓÇ͉ 6H"ÐÒ¼yùòñËÇ/_>~ùôèѳgÏŸ?þRt)‚ä ZT`À)jªÈZË–­5V xˆÐUS’f½écj†©OŽ"²Ò 8‘ÍË—/_¾|ùòõËÇOž={öìÙ³gÏž?…> °ð`*Rþ S£Ñ…”lÕ äh‚BЙDê‘#G°HòC)Ò 2PˆC©Ñ¼{÷îåã—/_¿~ùôèÑ£Gž={öèÑ£‚$Å©Óc‚*a°¦Ö#;u ÁŽ-I•¡¡dJD @„>¹A€€Á…7ÝË—/_¾|ùòñë×Mº—/_¾|ùòõëׯߓ'OžSR0@ &Ž-uíâÝ»—ïÞ½víê)Q¢D‰%J”(Q„‰ R€˜à㇃ ?z¬K–-[µdÉ’$‰¶b±RÕzdÊ‘[Μés†Ò ‚¡â-[7têÚ…Ë–í[’$I’$I’D‰%J”x¨aBÀ†6taB2dÁ’eË–,Y²Œù:çËÙ©TŸN¹"ãÍ4o™JƒÁT¢X­bÅþ Ú¶lÙ²}K’$I’$I’ Q¢D‰ D`€bÂsb<€€–,X¶|Áš5+Õ4U„êaó‹– 80ΜyãH©*(Éñeè¡L V «–íZµ$I’$I¢‰%J˜tÑzL€°æÑ¢&Õ‚eêVª@±Rõ9ˆˆœj¿|9rÔ&P,4‘ááS¥^zöì)¤T®eÙ®AK’$I’$J”(yâå ž0àDpQ2…eM,X©~Q äHÌ F4 hTìT¢2„`ú)Ò#4Rý¢¥çÏž=†@«¶mÛ·$I&Q¢D “'^ðèÙsc€þ0èÀÎ$2ŒlH‰uêÔ§GŽÈ9%f‰WŒ5ó³ÅO±8o"}z$æQªbªö 2dè’(^Æ U˦„É“.]¾˜ÁƒgÏCSNÄ Ãƒ-"ÄHCY©NÁªD)8©<°@ʱsoÄ‹D(RBqdYr–iÏ¥L¢D‰b•‹W¯\]¾àѳçO¡B™D­ZçC@iT«’FsX€ëS¬XqÃ(ÅdzõA”eK-_¦Î¼‰S$©k— Z•k.V™]º„gÏž?…!º$Š×2cŽ ¸ ãÊ6²`ÅaD€ˆIŸ*¹Jeê‘+þ±¥p ƒ 7z²Dr4ȩ̈O?}*flU.^¼Xåʕ뒔>M‰2ÂH"H0CÃcÈ–!C6l4dÆ€ñb%JT.cÕ¶mÛ¶mÛ·pá¾![•éoÞ¼Áƒ/Þ¼yóàÁ›^¼y÷òÝ»wïÞ½v龡SîÛ·oßµ‹¯:c— íùòä‰3zþº”‰“(NœV ƒ–íÛ7tñæÍ›Þ¼yóæÍ›7ïh¸DÊdh/^¾àù‚>Ï—/_¾|1£çÏ%Q¹¦¡‹W¯Þ½{÷îÝ»wï^½{÷îÝ›7oÞ¼yóæÍ›7oÞ¼yóòÍË—/_¾|üøñ !ù€ ,Dd‡!!%$)!!#""%$$&"")%%*&&.##-)).))+&&2**1--5,,3..9++:11611922=55>55:88>//B66A44C44K99B99E==E==J;;L==T==Z==fBBMCCKFFKEERFFUAARDD[IIUKKTJJYJJ]NNZNN]RR]RR[UUYCCdAAnBBoFFlJJbNNbLLeLLlCCpEEqGGrFFqIIsJJuMMwNNqNNxRRaRRfUUbUUfRRjQQmVVjVVnYYf\\dYYj\\lVVrSSsQQzSS|VV}UUyYYu]]r\\tZZyXX^^z^^}bbncckffiaaraaveeueerbbybb}eeyee~jjujjzjj~mm~mmzrr}zz}ZZ]]‚__„bbaa†ffee…ee‰ccˆii‚jj…mm‚nn†hh‹kkŒiiŒmmŽnn‰ooqq†ttƒrr‰uuŠvvrrzz…yy‹yy}}Ž}}Šqq‘rr’tt“vv•uu”zz‘xx–zz—~~‘~~•{{˜š||™‚‚„„‰’‚‚•……–……’€€›‚‚††™……Ÿ††Ÿ‰‰–‹‹”ŠŠ™ŽŽšŽŽ‹‹ž‘‘ž““––›‡‡ ‹‹£‰‰¢¤ŽŽ¥¢’’¡‘‘§––¡––¥““¨——«••©——¬™™¢››¥šš­œœ¯žž¯››ªžž°¢¢«««­¡¡²¢¢²££´¥¥²¥¥µ¦¦¶©©·­­³««¹©©¸®®»­­¹¯¯¼¦¦¹³³¶°°¼³³¾²²½µµ¿µµ¾±±º¿¿¿¼¼¼¸¸»¶¶ÀµµÀµµÆ¹¹Â½½Ã¾¾Å»»Ä¾¾ÍÃÃÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÄÄÉÆÆÈÇÇÊÂÂÏÈÈÉÉÉËÊÊËËËÌÌÌÍÔÔßÕÕãþC¥J ÑŸ?øèéÂe‹$GˆéÑ£G=zôèÑ£G=zôèAIC¡|)† “!N©tùÒu‹U.]º|[ví›9sæÌ™3g.'P .úóç=]¶0Arä‘=zôèÑ£G=zôèÑ£G=z a2¦P(L— ý¹”jØ3dÁ|ùÒ¥+رg×¾}÷í8sér…Ò„é"Cþüù“§Ë&J9B¤G=zôèÑ£G=zôèÑ£‘#G˜lÙÒ¥K—<œ”M{vl˜/]º| [6íÚ·oßÀ¥K—.W*Nœ4]2TèO¡Bôta„ ’#GŽþôèÑ£G=zôèÑ£G=z9r $HlÁ 5€Óž)ó¥K—®a˦]ûΜ¹téÒ¥J ”&LŠ 2d¨Ðx¶0a‚ä‘#DzôèÑ£G#G| É3FÈ)| Aþ‚dËŸTǦ]£FmÚ3dÇ-ƒvMÛ7sà¾}ËvÚ²c¾r¥*TªPœ0!*ÄO—.L9B¤G=Ž Q²e @%^Êäñ#¦M H˜ä 5lZ·oÙ¨MC6lØ2hϦ]Ë–-ÛµiÏ–-›ö옯\©XåÒ•+§K†þðÉ3f‹$GˆôèÑã’-[¼”Ù3$ >{ Í¢#d‰L¾ž]Ë–mÚ3dË–=[vl´iÓž=Cvì²kÓžÓ•+—¯a¾r¥ÂdèÏ>c˜ 9rä‘G,ù¢eHmšÀ1EN¦@â£iµlÙ®Q»–íÚ³cÇžM›6íþ2dϦMû–-Û´e C†ì˜®Pš.âƒg %HŒ9‚ÄË—)pxq(ŒJ¦­Á¡‡¡žeûöíÛ7sæ¾M{ölÚ´gÏ–=£–-Û5pæÀe£íÙ³iר=– `.NˆþèÁÓ¥Ë$Cb\ 3¥Í0kN`i‚ ¥!K†8z##дoàÀ}ûö-ÛµiÓ =CvlÙ2h×®Q›ö œ¹oß²]»–MÛ·lצ=;6L§Kˆþˆi’#G)97*pCޤI7f¬æÅ 5YpüÊöí[¶kÓž={vlذaÃ-{6mÚ4jß¾}3gî[¶oß¾eËöíÛ·þoß®!;¶ìцOÖ°¨1eCtf¡Ãˆ’£1Þ‘ñEȧlÙ²]›¶lذaºråÊ¥‹Ø±eϦ]»öí8séÌ}.[¶oæÒ±cÇN¸lÏL`ñâ%N4ªqÅÕ‹@qrXˆÀè‘#BL¸Ùö-Û4dÁr¥JЧP¬rá:ðÙ´i×¾3gΜ9séÒ}§Ž¼{÷îÝc—î ƒ4"À Ä‹D6Ö ó©É€! !c£Æƒ+pe›6Œ(M—.]º„I§[ÞM»–MÛ7pæÌ¥K—.]ºtðèÝË—/_¾{ÜX ñb   “¦M£D°þh A ±mCdÔ ÑF2b¹BqÒ„é¦K—4…ÒuŒÚ·oß²iûöí8pàÒ±ƒïÞ½|ùôéËçÀ‡*¼xâÀÁ VXÈ‘³A€(BˆÙ&㇌+‹¤0ò•+×­[©XÝ •ŠU®cÓ¾}û.[¶lÙ¾}ûö-;xðèÝ»w/_¾ntp@bÀ3ŒP â†G" p‚ʼn!—Ä(äÊ!«ŽFlØ1bºt ;ö,Û7séØ]£v-Û·oß¾™SÇ/0Àà !nRÒHDfùòõÓ—/ß=yòäÉ“'Ož¼kÓ¦]ËöÍœ9sàÀ™K.Û4"Øð¤Á JŒ`U*Å¨Ä Y½hÉÚÄ‚\lá&† !S²y$Ož]·X¥J ¢B….±2µ` JvÈòfÀ€ANn`aq"À…$9êçŒ2YˆcÌþ‰ tHA"P[ãÆ÷îNœBâÄ  ¦K† ]â„eÁ†Rf<ÈæÀ†0raapàÀ F ;Õ‡’)c¿&•¢ô¥Q3Oäx ÄÊ©6¤ÞÉ“'O^¾|ùòåËwI'Nœ8qâ¤I¨PX´pÅf‰)O$l`q¥œ8H˜ù0 D#Y‚VÉ‚åé”+Zp}iòDC kÌxšrGž¼|ùòñë§O_¿þ| Bt &Mœ8…õâ@ Z”nÐÒÂE›S´~•J³àA t`‘eì—¬X”LÑZE¨MPJ4èp*’häÉË—/_>}úôåÓLJ> 2„è’&L' l˜DgM.Øx¢D˪4 ,XpàBcÊ~É¢eÊ”1Y“N¹É& ue‘¼{ùòéÓ§/_>}úôèáÃÇÏŸ?þRt‰Ä€£h  ¤£Ê#J¥^Ñ¢uãÀ‚ NÈeÌ” G“`Éùõ –§FXàÀèÐÊF„vÈ»—/_>}ùòõÓ§>|øðáÇŸ?…8Ðpaç†B.þÒÀ‚eT¤4°ÒBR,[¿<5êó–GÆ€Áj… ' Ú´™(N¾{÷îéÓ—/_?}úøäÑ£'>|ôäÉ“'„ƒg¸cU©R`FUªpÀB£M`(•2fKÖ$S±(©!kU¯@2~Ä(0Ž›Fpìä»—/_¾|ùòõë×üꕦÌ$cÆŒÁHË•`*Õ焈&Hô)3‰Lš{÷òå»—/_¾~ýúuéÒ¥ <]ºlÙ²eK/*èh° E¤I’äPrE§†F½¦L¢õË–²_f$9þªA#-S}Þà81 -ŽÂ丗/_¾|ùòõëׯ“-L˜0a„‰%J˜„@Pa€  XŒŠ4ê #+,¢”àÀ¢ TÆh£EÉÕ)5‚EèKšE§n)C&GvðàÝ»—/=vìà!A‚ $H A¢D .,`À Z´*™¨ÐÑ£6$¦0j$É–-W´hýºƒRŸI}ÄÀ™T*G#2n¬0ÒõìZ6séØ}›FíÛ‘#GŽ9bÄ$HÄ`¡Å\´`b”«8*hˆäÉ*Z±\•²EË”'cŒÂÀÚÔGŒ#F«ÈXâ†Ð™Q¡X±båþëY¶kÓ®};räÈ‘#GŒ1‚ ’(p Â^в¥ã T±J¹ŠuªW©RžÈxúUjʤ@bÄ”!Df†G“ØØYeèÏŸKœR ƒFmÚ´#GŽ9bĈ#H˜lA€`@ B,[9n¸¢EÉ‘1SÇüý¢5iÕ$Z”Ü*ãFL >§‰ð´IÎ(\yôðùƒ(T®eרM;BäÈ‘#H QÂ¥K6Ä¢UéÕ©RƒˆB›–-Û·#GA‚‰’-\ðèá#ƒ‚þ ^¨‘“@€J±h5*5éË)Zøž@‡–-c§NÁ²â¦ DM2UJ’™jˆþ 2dèR*_ÈžM»†D “-\ºŒÁƒ‡ÏCS°tˆPaÍ$BŽ¨ãŠ–«I“´À¢EKаŒý‚e,P)Gnúô™$–)2§èD‚ƇÏ%Mœ@…J•K—¯\[ºàÉÃçO!C—B±J%Ç*ÞÄbTŠÄ€7®ŒÁrô(P©X¦<€Ñî×*B²´0zóRŸDnNÁêsŠÅ+`……J•K×­Tœ]º„‡ÏŸ?†!ºÊײcŸ´ ÃC -W¥JTšDË–,J¦´x‚( ‡þÓŽ¥r3i¡5C„rãÆÑ¤Uauˆõ)•._ºXáÊ•ëRžþäé‰!M©nÝbJ"C† !*U¬ 8¸`¢FO_†”¢ÕH ´qç‘£_ú<š2à@G› !Ò‚@"Dذ(M›@{ÅÊ‚EŒkk*rj’£5“F=j„¥B€j ºAk$J”0Q‚ $HኦKŠ 2dH‘&Mš€0Èq`ÀŒNÓ§”' dPF( 'S&Õ0‘…Ñ*7PJ€…̽.!QÂdË&L˜0Q‚ÉN¡@iÂtéÒ%Mš4iâÄ)Ì'0˜@‚’$'žPMŠþ 8m¤Èˆ`À‰ ”rÓ¨ƒ`ÚX¸ñ‰“-]ÆàÁƒ§K—-[¶(I•*(L—4qâÄI“&Nœ01±aƒ l¬iD©ªSÞÊG80°À„#B“0ˆ Ž:˜ åÉã"D…øàÙÒà˜1¾t± ÅI'N B¥J•Š+!^ 0€A“bÅ*e@N#5¾Œ À€.T°ÁÂÉ€Þ4òäé«Pš8…J*”¢?cºŒÁ3íÙ0]¹X±b•ê–.]º‚ ‹ÃAH…p˜B)–+9NÉáH8à`Á‚88cœþ^À†C†Ì®\·R… ¥©ž-Ô¨MƒöìÙ±c¾råÊ5 5f„Tˆð€Á‰0®P¹ŠtA„EX0`@ P`À„5Z剴iÐ)ÃÅ*Uª[·@!âóíÛ·oß²M[æ+×-]ϲ™ƒ§H$d`T* W3¬XéÅ@8P`À€ ¨Ð œ^ee³í2e¹R…JÅê+PšØ©K—\¶gºX…º¥ Ù7v÷\MÁ0 À ¥<¹™ä*GœÈPÀœ8``aC…™ú”GV7jО!¦+'M B¥ *]:pßþ¨!–‹UªT¸ˆ}cwÞ ÈáiÒ)X®uÐpáM…(Œ‚‚Œ'$0Xp@N*?{že³í˜/_¹RÒté§Pœ¨Q£¶ìØ1_ºtù¶ŒZº{÷î}!`À€pMš+N6&¦ 8cÈ 0<àÀa°Á‚À`*³ 5kÓr…*UªP¡8…JÙ±c¾†,رiàØÑ»^6 *TP±‚¡!‰ÀDØ¢Ä Cà ù†Ç©4†.… ¦†‚€@€Èò%Ì0'D@€ÀÁ,<Àà@MžcÇ![vlÙ3ddžéb*T®cÓ®eë–-[6pæ¾!c…‰Onƒ6mZ6u•dÀ¸¢¥ 'ÀâA¥,('ÛµlÔ ùò,W®\¹r›öíÛ·lÔ ]ŠSªcÓž *•!=x¸lé’çRª\þÃŽMK¯Š'è¬iÃâƒ.H(0 Rá±KÇŽ]ºiО={¶ÌW.]Ç®}3gNÛ´g×XéšvmÚ3bÈtqú3f %[ºäùs‰“.jæØÝcÆâ‚,ÀH” ´`–ïÞ½{ùòÝcgî[¶oÙ– Ó•kÙ5mß¾]»–-Ø2jÓ¦Q»öL—&>]¶0QÂdK>ˆr{6-»{êâ0`à¡ b¼ À 9yòîÝ“—/Ÿ¾|ôØ¥KgîÚ²a¾†{mÚµkÚŽM»FÍœ9jºRÊÓe &[ºä)*W0_ǦS^¹H.$°À;ÜÆþ¹sçNžyøü)„Ñ%N¡n[öݽ{÷îÉ“wïžÏ˜.]ºté’çÏ¥Pº ™ƒGïÞ½{÷îÝ»'ï¼{÷îÝ“'Ož}ùôé !ù€ ,Dd‡!!%$( #""%$$&"")%%)&&-""-))-))+%%2**2**6--2--6..9,,;11600322922=55=55:99?66A66E22B55J::B::E==F==C>>I>>M99J<>[??cAAFBBJBBMEEMIIMFFQFFUAASDD[JJTNNZKK\QQVRR\YY_CCcAAnBBoEEjMMbKKdJJmLLkCCpFFrIIrJJuMMvMMrNNxVVbUUeQQdSSkYYfYYcYYn^^m[[iQQqQQuVVrVVvQQzSS|VV}UUyZZv^^r^^vYYqZZyXX^^y^^}aagccmaaraauffvffrbbzbb}ffyee~iivkksjj}ll{ss}xx}ZZ]]ƒ^^ƒ__„cc‡aa…ff€ccƒff‰ccˆii‚jj„nnnn†ii‹kkiiŒmmŽnnˆooqq†ssƒrr‰uuŠvvrr{{„zzŽ}}Žzz‰ss’qq‘tt“vv•uu”xx–zz—~~‘||“{{˜}}š‚‚‰‰’‚‚•††–……’š††™……Ÿ††ž‰‰–‹‹•ŠŠ™šŽŽŠŠž‘‘””˜˜‡‡ ŠŠ¢¢ŽŽ¥‹‹¤‘‘§••¡””£““¨••ª——¬šš¦››£šš­œœ¯ŸŸ®››ª——±žž°››°££¬¬¬¯¤¤¦¡¡²¢¢²££´¥¥µ§§¶¦¦µ¤¤³©©·««³ªª¸©©¸­­º®®»¬¬¹¯¯¼°°¼²²¾µµ¿µµ¾±±»¿¿¿½½¾¹¹»´´µ··ÀµµÀ²²ÂººÂ½½Ã¾¾Å»»ÄººË¾¾ÞÃÃÃÁÁÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÉÆÆÊÂÂÍÉÉÊÉÉÉÊÊÌÌÌÌÉÉÔ××ÞÞÞïþK™ê¤é?~ôà³E‹’$GŒüøñãÇ?~üøñãÇ?~üøa$‰BhõÚU Ó!K¥náÂE ­[¸p+6m›8qâĉ'®“¦N(òãG<\´0IräÈ?~üøñãÇ?~üøñãÇ?~$Ñb§Ð&Jüø¡Ô©—²`¸pݺu 0eÓ²e—-Û6qånuÂd‰Ò!B~üøùƒ‡‹&J’9òãÇ?~üøñãÇ?~üøñ㇑#I˜hÑÂe <šzES¬®[·pí*æl¶lÙ¶•+Wî–)Mš0Q*DÈ!B~ðpa¢DI’#GŽþüøñãÇ?~üøñãÇ?~räH’$I’0±Ó)X4€Î”õÂ…ëÖ­]ÅœMËFNœ¸råÊ™êÔ©“&J‡ *Tˆ;L’$IräÈ‘#?~üøñãÇ?~üøñ㇑#GŽI’$I.‡v=‹MÙ®]»ví æ¬¶lâĉW®-S:iÂD)Q!?… ùÁÃEI’$GŽ9òãÇ?~üøñãÇ.~ü8r$I’$I’l)D Ø3gÏ” ,0eÓ²e'NܶmÛ²í¢…ªT'L–0Q¢tè!=v¶ha’äÈ‘#?~üøñãÇG”$ñqÃD’$Iþ’d‹SÀ¢E‹Í™²`ÁŠ)s6 [¶mâ²e«6-Z1`»h™êÔ©S©Nš("¤Ç.Z’9bäÇ?’(¹’¤ À.bƔوG˜àé´ËY¶lÕ¢= ¶kW0fÌœM«V­Ú4gÊŠs¦ ®Y¦PÑ¢EË”&J„üèÁÃEK’$GŒüøñ㈒+]®±EÌž2ö¹áD L·”U«VÍ™²`ÅŠ)+¬3gΔ)+ X°iΔ»E‹Ö­]¸hu¢TÈ=\˜$9räÈG’,YÂF…(5lˆ!‹: MуiW´jÕ¦E‹V­š2`À”9sæLþY°bÊœ9ËV­š³b»v  Ø­N˜(Òcg “$IŽü²$£7r`DF…šFSt¬ˆ‚C,”U˶-[¶mâ²9S¦Ì™3eÊ”)s6­Ú´mâ¶UsæL3gÓ¦)ÛE *M‡üèÁÃ…‹–$DȈaÕ¦M¤&_Dˆ°è7¡M™¢cN´lÛ¶eË–­Ú´hΘ) ¬X1eÓ¦9s–m›¸lÙªM›V-[¶jÓœ) ¶ë–&J…‰ñŠQr„Ø`Õʃ‡(‚¦¤¹ÁFŽ$'¥ Ë–-[µiΔ)c¬×®]»ŠSÆÌ™3gÙ²mW.[5lÙ°U«–-Û¶þmÙ¦Vl“E£6E$„€‡@ƒä4’$ÃÀ“/›V¥±¡&].aÕªMsV Ø®]·nÑ¢…k°bÊœE›–-Û6qåÄeÛ¶­ZµlâÊ™;wî\¶jÁx,‚3§‰#9€(DDFÐndáèÆ6Ö,¢“­š³`»h™2Õ©“¦N¨hÝP™3gÓ²m'Nœ8qåÊeÛVî\»yóæÍk'n PXÄ(ˆŠAlÜ X$%R,A²‚R#E¤Aa Us¶ËT'L”Q¢d S'Z»ŠE«V [6qâĉ+W®\9síâͳgÏž½yÈ.”0ÀÄ9—ʸ(1þÒ4±2D67ˆDñâã‰.`´„¤¹u‹Ö¬Y¦PÑêd Õ-`βeË&nZµjÕ²eË–­Ü¹síæÍ›7Ïž½d xp`@nä8Ú´èʼnÔCÆÇ”AnP¸) »€íÚÕk°]·ní¦lZ¶måÎU‹6­Z¶lÙ¶‰+w®]»vñæÍ³gf ¢( A¢pP0``€„,¹c…_x\AE™2fÊŠþ+¦¬X1fΪ•k×n^µiÕ²eË–mÛ6qåÎ;wî\»d¬i²!…Ð bµ©‰ ˜(ð€Â+€%Ç€!*tUË–mZ´jÕ¦U˶­\»yóÚUË–-Û¶lÛ¶mÛ&®Ü¹s嶉3#à„#B„€±HE$Fu 1`@d ÂA‹/pÐx˜àR»víÚµ;WݹsíÚÍ›×®]¶lÕ²m+W®œ8qåÊ+·­Ú1h ƒÃ‹9‹d¤âKØ© @@A+@ˆ`±â…‘ 7&ˆ°a‡>|óæÍk×nÞ¼yïÞµ«VmZµlåÊ•'þ®œ¹såª9£3á‚dD‰°h9¾|éŠÃ D #†È” P„|AÃHXöìÙ³goÞ¼wïÞ½{÷î]»iΜM«–Mœ8qÛ¶‰+·­š2sйЀ ›FÑhòË×1Q9 0` € "A‚\yòe46 ,¡òîÝ»wìØ±{÷îݺwïØ±Ë6Í™2`Á”E›V­ZµjÕªåº ¥+ :ÈJ”š¹|é%… PaD$R/ST8I3%…ÈØyóæÍ›7vìØ±cÇŽ;tâ°9FËT'Z¸îL™³9px`gƒ9‚4Zô–þ/aºÐD`À€…(dÚr´ ,B„˜âä“7oÞ¼yóæ;vìØ±{WN\5fÅni¢„©“¦N¨ná‚aaƒEt˜ CΛ`Åò•k 0°À #GbÚÜôÅË”'xxóæÍ›7oìØµ{÷îÝ»yåÊm‹Vl*Mš(Q¢„©“%JœÀ‘cQÅâQ@Î/X®Ö|`À€ ˆ´'‹&:Õ  E8oÞ¼yóÆŽ»wïÞÍ›gÎ\»rÕ¢»Õé!J˜4½1p!FÐÈG™&¨°ÕŠƒ (`ÀàÄ+‘Ä0¢¥Fƒþ0ÀòæÍ›7oÙ±c÷îÝ»wóªEËÎܶjÁjiòãçP!¤x°hN1$}„Ã@¨F¢`-’` päeŸ( ˆXa`@HÞ¼yóÆŽ»wïÞ½{gÏ™²gÛÚ™Ëæ X/S‡üè1ñ‡Œ4 ñx0'Öª7!R´buŠ$ (`A#G¬m“‚AŒ!àáÍ›7oÞØ½{goÞ;{ö¢U÷î9nÏvíÚu Óž,Ð@sUŽ­FEÄ Ÿ2bmâ A‚s±‚ÅJÔ¨7 $lxr‚Fá¼yóÆŽÝ»yöìÙ³g/Ú6vïÞþ™«¦ì*Z³4}Á!#B“PM\Iš#) 9%ÜXÉâe®E $8`°ÆU.€­X5ôfÇj4aâ—7oìØ±{gÏž={öìí’¶Û¶lÑ‚íB…jV'!Rx0PIW­M^”x‚1F:šx`þ(K"ˆt¥ªÂ€A  ”ðåÊ 0Ø  £7:fxóæ»wïÞ½»wïÞ­[·Pu2uk×®[·vír  (oDmBôÀµÄ(K/AphÒ`À £ZjòA†Q<ÔˆÄèM oÞ¼yc÷îÝ»wïîÝÃu W-Z¨:uêÔ‰Ö­TTi¨¢Eá0À@Õ&Dƒe‹…O ð)Ô¦/$8` # EŒ²˜çÍ›7vìØ­{÷îݽ[³L™2Õ S!B„(¡jÄ`Ž”ŠébÄêMƒÖÐxèT054!U16j¢£þƒ : àX´iŠdÞ¼ycÇŽ»wïÞÝë´©“&Mš0òãçP'9 &Az¢lPŽI®ž ð"Ö\µÄÀÁ QTLl¸b”£9C¬\0ä @Úèˆå;vìØ½{÷Ξ=M:uÒ¤ &J… Qê4Ŭ9‚ÉÁñæ zœQ°¡¬_o<Ä`5hÒ *|øðàÁƒ=zðàÁƒg…€2ry°!€Á¤9´òu.W¬c¬Îläë¬P®5jÄ( *ND!Â'Ð&>Qf̳gÏž={öìáˇώ;xðàÁƒÇ.\&°A†… 4q#§É³E¬ÚÀbåêÓ :¬~…(Ç«7¢ɱЄ՜7dÄð $æË‹yóìÙ›gÏž={ùòqáÂ…Ë.\¸hÑ¢E 8|¸Ð$Š&&flÚÍÑ*V¬DùZµê“¤A*µþzê £4lÚ4(K›Flj¼˜gÏž={öìåË—/&L˜0aÂD‰%J˜dh ÀBŠ2¢äHcfG¨M®Úlòåk+X£H}dã‹(V£5â#† #@ƒ¬ðÉR¤ÆŒrçÚÅ›7o^¼sçâ%I’äÈ‘$I’$I¢DÉ ˜#iЉ) ÔY‰Ï¦U¿|åÚÄjU¬U_61•‹#>¡Þ âÃh‰˜EsḥlZ6qåÊes6-Û‘#GŽ9räH’$I’ˆxÐ`€€9«Â¼Á0V5ŠÄˆ¬\®Z…ú%iP$X¬X*@ƒ‚”q‰!P¡2…þKYµiѪe;räÈ‘#GŽ9’$I   F  hl±aÕªQ|B jkÕ¢\°|DjŧU 6mÚ´q4(ȦHkÖ€ÒAˆ!JLíR6Í™³#GŽ9räÈ‘#I˜h±A\˜£ÃA„ >Ej)–$ABŠô+K£\d‰É"&Ë X’"m’Ôä̱)xðèñsH-eÑ¢);bäÈ‘#I’$Q¢… „ ¤€ƒHL pBR¤V°V­Z+™F‘ZmÔ†L›+W¬ :u)Ò( V{ƒG=‡:írV­Z¶#GI’$ -[ìàшAþ‡)‹‰ ÆD d¬µjU´U­r‘j´h¬I£Äˆa”%K @‘ø4 µ†´T{ô:Tˆ’©[À”9›–D -[¸Œ±cGŸB:ØXÂjу‚:è0P Ç*2¬Èír V+V|Xµ‚ÓŠD{By!BÄŠ«FÎHC„G%Mš:uB5ë.ZZ¸ØÁ£Ç!B”:¡2ÅF‰$¡FÕÐÁªƒd´IŸ®E¿`ÅÊÅ(Ò)VƒµaÔhU#"V¹jba‡0Bš u2uëÖ,TšQ¢dG?…¢Ô W0`ŽZü 2hÕ“n¦Da F£EŽÒ5ú2ªU,Xþ£"ÅZ5¨˜H¡B5‚âe“¨#ðHõ¨Ö­]·PѪEë;vðàÑãçСC”:ÑÂuëT W‚<)!¥œ&0ÄhÈQ¤!)B…ÒÅJÒ¢\­"9j4GR¤PƒEÁ€B¥LÍÒDÈŸNÙÑ¢Ä?…Q„IS§N:¹²DšR0ÈÁ€šP>m²b ʦ\§Fý‚Ef©D¬ ÔhŸFPˆÚã “%c®0QÂD -L˜0Q’$ ¥N0Y:DH=~ ÂÄ!@´ÒEAÈ•MêøÕÓ%¥F”4> ØÀ!J+V¬¼”@ €Ÿ7€š`¥'U’$J”0Q’$I’$I’ÑÔI“%J” *Tˆ&L˜b0€S€R 0Ú”NX«V/ p˜SÂ/|D&L“ Ò%c€…T›J%QÂD &J”(Q’$ÉM:a²D‰%L˜0aÒ„iЉ* ˜ÄbQ(2®X­âþA‡/Ð|0ñåE“FA²8A    ¼¨¥‹-\ÆØ±3†Ë-Z˜()eÊT'L”(aÒ¤ &Lš•(Ñ`@ŒEa6rGW«U:äˆ4ĆD8Xp#FÌ"(0zÒ@ŽT´ÙÁ£çСC„ôØÑÂà˜1¸n¡ê¤ “&M:™2eÊ* à@E”¨M5¤¸jÕ**V. pqƒ„ n¦j"@@>m¦Dˆá¨­Nš4•*Õ©%=v¸Œó,Ø®Y´P¡BejÖ­[·víZ3`D :j¢‰$)gp ’A8p 5&˜à3ˆþ6ŒNõ Ö W-Z¨Luê„É-Ñ¢Es¦L0`»hѪµKYµc0PxЄÑ)Q6ªŒ’ԠĀ @À€% CŸ415ÔHسgÏ‚íª…Ê”)Z¨4Ò“-[¶lÙª9S¶‹­[Á²‰k§fÀ€"J5ˆF¨AT¨ 0`À…¾5@A€ 0`… ˜ ó%É•+7ŽE‹æ¬.\´LiÂDÉR§Nš¢E‹V X/\·náÚ,ºyóæ5B0ÀÇ MŽ"á(! ‡( @Àn¨`À@ 67”º"ÇY4iÎn•êÔÉ”©Nš4uê¤ X¯^¸vÛµk0gÛÎÅ›×®]´ HÙ‰ ’`è(`B!D À f…  (pÃÇK"EpSí0S”0™BeʪY¨P¡¢…ŠÖ-\¸píRV­\¼yóÎk7è%aF9þJcˆÜ(¢Šˆ4pL@`Á@>¡Út¹2×®]À€í¢Õ©“)T¨P¡šE«V)T·jÑ¢uëÖ.eÙÊ;w]6gÁ2ÄðâåÉ 9Hä'—œ@¹ÀÀ€9,@hÃè ‘+›põÚµk×®Yš4u2E‹­[¸v¡ÂµëÖ­]Àví*Æ,›8qÙ¦ÝÚÅ,šD| É€!D†`ÆÆƒ0 á¤9rn„ªW°`Á”)ÛÕ‰Ò!L¨jáÚUÌ0`Ê”9›6mZµbÀ”TlW'JšfÕâS£H ,†„ÁÆ € Dt¬1 Àƒ'):„Ðþè "¨v öÌ™³jÕv™¢t¨­]ʦe‹æì™³jÙ¶m› U'M˜ éÑC(‘)J"(XÁCfˆ˜ aD0a ÔÐ1 ‚4!V ‘³k×®]ÀŠ)sæ,Ø­N˜:ÝÚå,Û¶jÑœU˶m[5`·,҃ǎ=…(™ÚõD DÄ|ñE‡ @@  pC…H`À‚ ¬˜2`ÀvÝBÕ©­^ʦU«V­Z¶mâ²3eÉ;vðè!DÉ­b¾(ŒðÁÂG2o¾P @€ D8ðà ƒ€&bºìræL™²bÁŠ) ¶k×®[³j¢,ZþµlÓ¦Ms¦¬X±Z˜üرcÇÏ¡B”L)+¦Ì« #ˆIr%Ë *  @Hn@ðf -gÏŠ»EëÖ.`À€ ¶ë­[Ų•+W 0\¸nÝòDI|óÎUCEÉ&L˜pcÇ%J–0iÂd©Ô­]À”E«&®Ý¼wïÖ½{÷îÝ»wïÞ½{·Ž;vëÞ½{÷nž={öìÙ›þ7o^¼yíÎá›/0T”ôpa¢E —1z"tˆ%J‰,i¢u+³jâÚÍ›÷îÝ»wïÞ½{÷îÝ»uëÞ­[·ŽÝ»uïÞ½»gÏž={öæÍ›7/ž½xâ€ÑêT@.Z¸pábG=xôè!tèP"LfS&îܼyóæÍ›7oÞ»wïæ½{÷îÝ»uëÖ½[÷nݺuïîÙ³gÏž={óæÍ›WíV'M”üàá²eŒ.vðà±cgÌ<~ QÒÔé–²låÚÍ›7oÞ¼yóæÅ{7oÞ»wïÖ½{÷îݺwïÖ½{÷îÝ={öìÙ³gÏž=e³:uÂtH.[¸pábÇ>Î.\¸pá‚Ç¥N·”•koÞ¼yóæÍ›7oÞ¼yóæÍ{÷nÝ»wïÞ­{÷îÝ»wïÞ½³gÏž={öðá !ù€ ,Dd‡ !%)!!#""###$!!&$$%"")&&)&&-**.**,''1**2..6,,2//911611322922=55>55:99>//@44B44I99B::F==F<>I==N==R>>Z77R>>fBBFAAJBBMEEMIINBBQBBUFFQFFUEE[IIVKKTJJZNNZNN^II]RR]SSXEEdAAnBBoEEkLLcIInKKlCCpFFrIIrJJuMMwOOtNNqNNxRRbVVaSSfVVnTTk[[dZZm^^n[[jUUrVVuQQsQQzSS|VV}UUyZZrYYv]]r]]uZZyXX^^z^^}bbmbbqbbveetbb}ee~cczjjuiizll}rr}xx{ZZ]]‚^^ƒ__„bb‡aa…ffbb‚ff‰ccˆii‚jj…nnmm…iiŠkkŒiiŒmmŽnn‰ooqq†uu†ssrr‰uuŠvvŒrryy…zzŠyyŽ}}Ž~~Špp‘ss’rr‘tt“vv•uu”zz‘xx–zz—~~‘~~–{{˜||™~~š‚‚Œ‰‰Žƒƒ‡’‚‚•……’……•€€š‚‚……Ÿ††ž††™‰‰–ŒŒ–ŠŠ™ŽŽšŽŽŠŠ‘‘š‘‘••ž™™‡‡ ƒƒ ‹‹£‰‰¡¤ŽŽ¥ŒŒ£’’¡‘‘§’’¦––¡——¥’’¨——«••ª——¬™™¢šš¥¦™™¬››­œœ¯žž¯››ªžž°¥¥ª¡¡²¢¢²££´¥¥´§§¶¦¦µ¥¥²©©·¬¬²ªª¸©©¸®®»­­º¯¯¼±±¼³³¾²²½´´¿¶¶¾°°»¿¿¿¼¼¿¹¹»³³´··ÀµµÀ±±À¹¹Â½½Â¾¾Å»»ÄÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÂÂÈÅÅÉÇÇÈÇÇÊÈÈÉÉÉËÊÊËÊÊÌÌÌÌþC© Å©>|ðÔñÒ… “%I"Dˆ!B„"Dˆ!B„‚dIA¡€=3¦ëR¡Lªx㥠—.^¼€-ƒÆ œ:uêÔ©S×î§OŸ* âÇž:^ºdŠd™åÈL¼¤yóæÍš´fРAƒ¶ 5kÖ¤Ak¶l4nÖ¤-ã¥K0cÀt…ª4ˆž;^ž,I’$ !D”l‘2Å !0¨RC– 8|)”ÉX6oÞ¸YËæÍ›´eÆ Y³fMþZ3hÒ¬YçÍ›5hÆŒ-kÖl¯P™* ÂCÇË&K’$IbĘ;Y©0ÅL˜4'Ф!ácÊŽ)¡¤y7¸qêÀY“&Íš5iÒ¤IËæ·qêÆy³FMš4kܸI3¦ à*N…øà©ãÅ %FiiƒEœ BÀi£ U+@ˆÚÜÀÇ•5pãÆÎ[6kÖ¬Ik¶ 4jܸe³N:pà¼qãæ 8oÙ¬IkfŒ§J…ø” RQ'FPà@1‘ j:1’$ ÇŽ6Þ¸ó6œ7nÖ¤I“vÌØ1bÆšA“fÍšµlàÀSל·oàÀyóܸþqà¸5[Í“› JEÊa@‘Ðxø‘ÆJ "c0±GN•gÞ¼q³m™1c¼téÒÅëØ2hÒ¬eãnÜ8uíÔ7Λ7pêÚ¹{÷î8oÐrÈ8¥¦ i"•µFDIS$ŘDȬ˜QΛµfÄt© ЧPªtéZP5kÜÀS§N];uíÚ×îÝ<|øðá{7.Ñ€(4u’cQ›FÈa†Ê‘@‘ÔP™â&Ì‘#Ly³fLÕ§L•*ªTé'\ƤYãöÍ8uêÔµk×®];wóîáÛ·ß>|Ú<¨)R£6Q"íÐá aþ¦ì˜Ò挊!‚bÅ2cºBqÊ”éÒ¥J•2©âµÌ8pà¼yܸqãÚ½{7¾}ûøñÛWeÚåZ ÂL0GŒáP¥U ! ¨á¥K®U«Vé ¥J¯eÖÀŽ›7oÞÀ®Ý»wóðáÇoß¾h hˆ¤ç&Ga"ýppÀB¸9‚¥:a†«Ž#fÌØ2cÀ€[&8uíÞyËÆÍ8pàÀ©k÷nÞ¼yøðáÛ7ÃC Xô˜ÑôçO 0`À1YlœàPJ8B9!Fš4kÒ Aþ“&­4kÖ¼µ›7Ÿ7oÞ¼Ü8uíÞ½{÷îÝ|øêÍóæÍ›7píÚµS§þ®»wí¼Y{Ó¡®RØH˜0a(Pà@.è!CDK‘0p~t²"ˉXûöýÛ·o¾zõêÕ«W¯^^¸V©JõéR!A‚*©‚tá *OË~LÒ ÁþF£(Ä@öGÊmæÌ™3g.^½zõòí Åé'N™2âçP(5o&ÕZÔªM£m¹"¬”(Pp€,”ê„åG¤*Ð, d&ÎŽNdŠÄˆf.ž¹xñèÕ«‡oß>NœB}âÄ `¦J… UâdV©H™Y£àMª?2 åÀ?lP €@@‹þÄah ¢?fêPŠŒ”£âÕ«W¯^¾}ûöíÛW)'Nœ8qâ”)Ó§P=f= ÄFÍŸ $yR´Ãª@Xx &PQ:Ô©”«@gÈ óg *FÄ`ICŠ^½zùöíûÇ¿þ}| *TéÒ¥L™8}úDC–$O‰.”ð°Á S„uú#GP1‚R„„‚G¥:uBtÆ 3zuZd š6sêÕË·oß>~üøñã‡<| T¨Ò¥K‚b!B5‚€1XThaÓ Y§Hs( ñU)T,8P´U ?lÌœÑó'R§H¦àˆŠðQ=|ûöíãÇ?~üîÔÁƒ>|ø *TIЯ?hDIô†ShÑêêG%„Õ²…ÊU‡€uBˆÍ=z-Zi‘TÕ÷oß>~ûøýãÇÏ‚ø$𣄀pþ.ØøUKÖ±dPàAY­X¨N}x‡¬N‘P™ ÔæÏŸ@ΰQ£@>|ûðñã·o?~üîÔ¹s§Î³æ ¸$I&Q²d “'\èÜÁƒ£ˆþ5uxD‹V,XµIŠåêÕ«X¨h‰r…ª2dŒØa£§6†i0B£1Yð *4¨R(`ͤYã¶„É.]¼Ð¡SŸAl´‘ô`Í4§hÑBÕ U,T¥Ñ’ÔèÖ£8lÙ²…JO'=‹ýÑ)M‡ S¨ rsO%NŸ>…Z¥‹/]\¼Ð¹ƒ‡Ï A—>­RUHÉ™R!Hü€qŠ–«H$Å’$i‘©?lj¹Rô*-ZŒ$¹Z¤§ª3°r8°è×1†}R¥Ë®UœUªD>‚ ªŠ´eœ”œÑCB€X\¡aäª*H¨þ„i³È•+Xþ´jÙB†J*Taþ,ÒÇ„KuÄÈ“.`¼VéÒ¥ëP:uîàáÃgP¡B•BéF —’=abä@!‡«qJý)%iQ$Dˆ\Å¢UK²dÂjuJ&K¦EâH€0bQ S°Ráú$ˆ N¡*Ñáò„>ƒUÊĉS¨Pœ>m!fÍŽX§\=:gQ R®J•êÄæO­H¦’)vjÍŸN¥4Z T̘ùõ+Ó¥;eºpÁS©P&I*U*t¨R¦Oœ*UªT©R0ŒlD)UËÕŽ’̘2‹‘0Yþ@Òs•²Zq¨ÃÆ&S¨b8è §M˜`€ðþ”áÂå /uèpa²¤R¦L™2qâ”)Ó¥L™q¹±¡$IÂhÅhcjQ,W°PMJ&Œ-€ERfKL$FÆüaÔIVŠ!þüAËÍ“'\¸x¡ƒO/O–TÊô)T¨P¡8eªtéR¡:Ef•ˆ(–«@¦"™Š+–4´l!‹…jQ'=¦ÚtŠ¢€ ‘?‘L‘8 BÏ¢@‹ø<áâ¥L<‚Õñò$É Lªp­R*S¡BƒÒCÊSpD©‘Ä,T¶NaAS ™²dÂ:!ÂëŠ,b¨–5Ø„1c¦.^èÔ©S§ .L’ â¤J•ªP•ñÁþƒ‡Ï K,tè¤Æ”@`ÁªE+ ¯ÅJ†ªÓ‘#J-Úp#FYÅ8p%P˜=žeªT©R¥J™2eÊ” Ö 8Be*T’:Z“þÍ, ^¬9³åÏ‘Q"PsK ®S¦¬Î“'^ÊСCÇ‹.\¸0 ¥J§K•2eâÄ)S&NœE  ’"Sâ b$é”$(¢bíÐp Â‡6a¡ÒÃ@‚0kHD9AÑ/e©øÔ©ÃgРA|ð”áÒ`™2Àx­ Å)'NŸB©J¥jÕ*"ØÄ”H‘$• 4éT©D °1EÒ‘#=Bxp& šv´d*Õ¬PœB…J•*T%>t¼”)CMš1]ºp­Z¥ /^¼€KDÀ *DÔ`´•(Fq!jé‡2m SA€ a´À³a„þ8|-k¶ ˜/]¸T… •‰.Ù²e³&MÚ²eÄtéâõLš·l¤(B£…Fl!b) œ AÚp8p NnЍ(bDÌ"@kÒ°!†š5kÔšóµJ•*]¸BÂܸqã¼YƒFL.^ÍÀµ›w…‡)5(˜²‘¤6?̸¨qBK D¨ÅI=fFØ DS®xËfMZ³eºT…Jµ תO™Þ¹k×nœ7iÀT…Ò¥k™·vø`)XÑ(Ä !ô‚EB†›H¸9€€XÃ&†8N¶üSA–·lÔ¤53æ+'NŸR­ õ©]»qåþ²I3ækU(UºŒq{‡¯Šg(¨©PÍŸN)…` €Àþ`qãäO1¨eÓfm0^ºRqÊTé§Pœ²eËÖlÙ2`¼x3[;|øð%²àdŒ›ÆZc#B @€6Ð†Ì GŽœñÆZ¶lÖx¥ J•ªPœ>… õéÙ²eÀŒ-3fÌØ2kàÞáÃ7o^6.ˆèAô Í”( À(0@Á†*´dÉAÅ‘#;N5“FÚ2U•2…R¥JÕ*\«T­Â¥K/bÄ€“æ­Ý=|øÞ½›÷CÊ2SvÐþ€€€ÎÈPp¤H‘1G¨Q‘˜±gË–Óõ‰S(U«V­Ò¥KW¨UÀxéÒÅ‹1iàÚ½{÷8kÏàlÙ⌠ @€,(Ð!ÍGŠô³Åˆ‘€-3FÌ1\Ÿ2qJ¥K—.^ÀŒ©âeŒ/bËŒƒf œ:uà²ñâEÍT&gZL @€ `€X°ˆÙ%Ð"IYˆd‰ƒËX³fͤI3ªR¡Kª|3ÖÌÚ²eÒ¤Y+ÇÍ›7hˤ”¶ŒØ§JŸpé:¤Ì‘7„ € xp% ‚Š,2Uþ¤Æ–4º€[&Íš5oÞŒ…ªTè“.cи˖͚5oàÆãflÕ'N™áÁ#¨’ªEŒ”aCåÈŠ @Ài0H±¡H NŠY̘1cÏ I³fm™¯P™TñZf­8oÙ²y7n·e¼. Âs‡<ƒ*©†C„ &`¨€@€œ¨¢¬Œé±â–eËš5ƒ¶ š´eËŒñZõ)”®eÖ¸yóæÍ8uêÀ5[•‰O:uêÜ”I•.iÒT¸ ²GP›`q"„Š<à M–1L¬,³fMš4hËšIkf̘1^«†ÂÕŒ›þ7oܸe³& 4^™øÐ¡s‡O¡A…TI“&Íš¬ .ˆ”!³"DP€¹qàA…\aóåË/jÒ -㥋0cË–5ƒfŒ—.^ËÀµs'mÙ2`À€ñRUé:xU*j™5kÔ¤›E„&Jjìà`á‚'T(B@€”#JRY³Í1^ºVáÒÅk™4kÖ -ƒfÍ[»wÀV…Âl™1U…ñÁƒ§N<|p-£fM8w©”àØ‚ƒ %VT¨!†”ôŠ7nÖ¨ãEŒ—.]¸t-£ö 8oÙ¨qŠÓªfÒ¤ *Ô ;tºpñR§R(]þÆ–qk7/–  8  ʼn p@`ÅŽdï¹k÷î];kÔ¤I“ÖŒ.^ˬS§î›5iÙTñ²fÍ´eÍxqâã…Ë“'\¼ÔáS‰0nãÞá»UB€ 'œàPP@j`‰¶>|ûöá{§œ7pÞ Ó¥ Z6oß¼qãÆ´lÖ¤YãFW%<^¸pyò„‹<•p-³fÍÛ»zææl â  $Œaãºzõðá«Wo?|÷Þµ{§Ž›5c¼ˆ“&Í7nßšeã–M:nÀT ªã…Ë“'\¼ÔáJ0`ˬs÷n¹Qh¨ @C•QèâþÅ£G¯^=zõêáÛ‡ïÞ=|ïÚYƒ&Íš4jÔ¬qãθqíÞãªP/\¸pñRO¡L¡T}RE¬7€àÔµ›W¯^|ûöñÛ‡ïÞ½{÷Þ½{×®?~øÞy[U‰'Ožt)S‡O¥J•2qÊTé¯eФYóÖn¾zõêÕ«W¯^½zõêÑ£G/^¼xõêÕ«Woß¾}üöñÃþ‡>|óÞíÓw\3\•ðxyÂ…‹:x T¨R¥J‡.qÒÅ«™4nêæáÛW¯^½zõêÕ«W¯^½zõèÅ‹/Þ¼zõêÕË·oß¾}üøéÓ§ï¿{ê áú4è@/\¼xñB|øðáÛ‡_½zõðÕ«W¯^½zôâÅ£G^½zõöíÛ÷ïß>~úôé›çMW(N•øÔñÂÅ /têÔ©C§L™:|U┊—4píæáÇ>|øðᛇ_½zõêÕ«W¯½zõêÕ«W/ß¾}ûöýãÇ?i«B…ÊT/^¼xñB‡>Ž/^¼x)S‡O¥P¼¨µ›w¾}øðáÇ>|øðá«W¯^½zõêÕ«W¯^½zõòåÛ·oß>~üøñ !ù€ ,Dd‡ !%%) #""###$""&$$&&&)&&-""*))-**1**6--4..9..=%%111511=55>33988>66B44D66J99B::F==F==B>>I;;L<>\66R??bAAGBBNCCLHHMBBQEEREEUBBVDD[JJVKKSMMZNN^JJ[RRURR^SS\YY_DDcAAnBBoDDlMMbKKdMMjKKmGGrEEqCCpHHrJJuMMwNNuNNrOOxUUaVVfRRcUUiSSmZZf[[dZZi]]m[[lRRrVVrVVuRRuQQzSS|VV}UUyYYqZZv^^q]]uZZyXX^^y^^}aalhhmbbraaueetbbzbb~ff~eezjjuiiyjj~nn~mmzrr}rrvZZ]]ƒ^^ƒ^^„cc‡aa…ffccƒff‰ccˆjj‚jj…mm‚mm…ii‹jjŒoo‰mmŽoorr†ttƒrr‰vvŠvvppŒzz…yyŠyyŽ}}Ž}}Šss’qq‘uu“vv•uu”zz‘xx–zz—~~’~~•{{˜||™~~š‚‚††‡’‚‚•††–……’€€›‚‚††™„„Ÿ††Ÿ‰‰–ŒŒ–ŠŠ™šŽŽŠŠ‘‘š’’••ž™™ž‡‡ ŠŠ£‰‰¡ŒŒ£¤¥‘‘§’’§––¡””¢““¨––«••©——¬šš¤šš­œœ¯žž®ššªžž°¢¢­­­®¢¢³¡¡²££´¥¥´¦¦¶¥¥³¨¨·ªª¶­­µ««¸©©¸®®»­­º¯¯¼°°¼³³¾²²½µµ¿¶¶¾°°º¿¿¿¼¼¾ºº½³³¶¯¯À¶¶À¹¹Â½½Â¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌ××àþK•*ŠÑ AƒþôAæK&H‚ $H A‚ $H A‚ ¢„IŸD x53Æ‹“"P¬|ûÅë¯_¿~!s¶í›:uêÔ©S·n'P£2)4hÐ?a¾@a‚I A‚ $H A‚ $H A‚0‚&¨L“%ÊTª™´eÅ~ýúõ+˜2iÛ¾©S÷훺uëx•â´)£Dƒ Ô'Ì(M˜ Q$H A‚ $H A‚ $H$Lš@ù š> ”]“¦ÌX°_¿‚sVmÛ·oâÄ­[·ŽW«Q 8eR”hP¢A„ü„Ò„ $Hþ $H A‚ $H A‚(Q‚„ &L˜@ÙSjÙ5€Õ¤) öë×/cΪmû¦NºuëÖµbUj¨LŒ%R¤(ÑŸ=P˜0a‚ $A‚ $H A‚Q$H$H AÂI“0ŒŒY»vMš±`ÆŠ[V­[·oêÖ©S·nÝ®V¥@┉‘¢DŠ ê¦ &L(A$H A‚ $H‹C†A‚„ &Lš„QÄkYµkÕ¤)S¦L™2iÛ¾‰§Nœ:qâ¾ãõªÔ(N›6eÊÄHQ¢?{À|‰$A‚ $H!L˜\(¢B E†0aþÂÌ VÊ®i»V­š´eÊœI«¶ÍÛ7qâ¾}ë¶m›3eÅxµ5ª«R 21JôgO˜0_˜ A¢$H A”4aòä À&{ÎŒQQEHšô)U¬Ú·oÝ®Y[fÌØ²iÒªmëÖ­Û¶kÒœ9«&MY°]­^ñúÅ«¨L‰ýéæK&H” I¢&GŽ0ñòGPc¤|H@aˆNÁ¤uëÖ­š´eΜ9s¦ÌYµkפ9[¦L™³nÕ¤)ûÅ‹W°bÅxµÊ¤hР?h¾0A‚I H¼<ñbDE%ªP)a†ShùÃÉØµnݶ]»æ­›4eʤU«VMþÚ2gÒª]ûö­[5gÆŒ[¶LY0Vœ2)ú³' &L AÒdGTZB”¨§ ,´fPI"‡Œ*¥¤}÷íÛ7qê¾U“&­Z5iÒ¤I«Ö­Û6qêÄy»6Mš´jÛ®I3Æ /PŠùÙ&Ì&LÎ<ªƒª†eRÙYäèÍ#8;2° SµoâÄ}ûö­Û¶jÕªIS¦Ì™³i×¶]«öM:qߺmÛÖíÛ·nתM[fì¨MŒ¡Ùq&M¥¦¸ÁR↛:³PYª!‚‚ ô\ëöí[·nÕ¤M“¦Ì˜±bÆ–9“V­Úµkß¾}S·î[·oß¾uëöí›8þqß¶-S欔—<Ý€¤#KªtÀbQ™D` *Tfeݺu«æL™1c¿xíâõ˘2gÒªmÛöíÛ7uëÔ}'®[·oêÖ±k׮ݷnÒ°H¸áêŠ9v¤|p ÁNšB¥XQ#Í“#G`„ô­[µeÅxµ*U §R¯xñRPZµjÛ¾‰S·N:uëÖ‰·®]¼z÷îÝ‹'ÏŽyðôÈÄnd±1&"*=àlbÙ F^u³f¬Õ(N™21Ê´‰Ó¨]ƤUëÖ­›8uêÖ­[·nÝ:vñêÝË—_¾{Ú`¬©óÆUªHD€à`Æ”eþº2bÂC.!Ž1¡Ê²f¼JâÄ)Ó¦L™8µúµìÚ7qߺyûöMœ8qâÖ±kïÞ½|ùøå»÷Giõxó¡„P1RˆÊ˜#%"¤8ÒÃŽR$úõ‹×«W¯^ñ*Õª/eÕ¾}û&n[·nݾ}û&n]»vñîÝ»w/_¾g.0Y‚t¤Ð"P @†8U°\˜b£‚ 38”XÅ #¯”+f̘2c¿‚S&mÛ7qëÚm»¶­Û·oß¾©[×.^¼xõîÝËÇ£ ®G޶â2ÁÁ (P#Î0d쀢  )Vˆ¨aHš´jÒœ)þ“&m™³iÕ¼­‹ï^·nݾ}ûöí›8uëÚµk×®]¼d&L5K5«‹$P @䌣ˆŽŒ˜!A„‹ "FŒuûö­ÛµnÞ¶uû&n]¼{õâuûöí›8qâĉ§n]»vëÔ­»BU³K<9ªp À @pCR EâP‰à`¤CŠÙ±ÂS»xñâµk×®]»vñêÝ»/Þ·oß¾©[·n:uëÖµ['®Û2k`ØÁáÈÍ  ä€á|XrDä8x®X€äÉ Šì˜Ç?~÷îÝ«ïÞ½{÷æÍóÖm[·oêÖ­S§þn»vëºUÃs£GìLyÓ£@8ˆPA‚…TvŽpÑrG3z\Ê@…‘dùòõË—/ß½yñæÍ›7oÞ»mÕªmëöM:uâÄ©['®[5+v`ÔzA Ov$à! 0¤`A¥Ê7bṃåÑ%"F‘3oÞ¼yïÞÅ{÷îݼyïÞ½û¶­š4eˤUëÖ­Û¶nݺ [s©N­$ì̲D¥€„@ˆð†¤Cª$¹éqÃÄ#\±²(1 èÞ½+W®Ü»wïÞ½{÷îÝ»vêºUCÆ«U+^ÅS¶LZ5<3Ñ¢C¢„•2q²8ÁAþ„~äAUÈÒ¬T:&@(jG7. d8SÄT¹råÊ•+W®Ü»wïÞ½›·N]·jË~ÊÄi¨R­~saU:%B\ªsÈ“…Dˆ! G$ÙòÉ `¼¡qa@8F²”+W®\¹råÞ½‹7oÞ¼{ëÖ‰»¶LÙ.N 2eÊÄi”'ÄTáÈÒc®½(à B„ TXƒÈÒ0Oˆ¦´)Q @J/ È’¢Æ¹råÊ•+÷îÝ»yóæÝ»·Ž] +d¤ˆkähÁ’j–*I®‚ƒBV¹råÞ½›w/_¾|ùòÙjÕ ¨V¿Šóµ‹×«XfMqäèMĪþp ‚ƒ88-9\ŠA% ‘%C¸fy‚”ÊS•-G*•+W®Ü»wóæåË—/߯_¿^•jõ«X0_¿ŠóQ'X–C ÕpÁÀ588pÀ¸È“Ζ.˜èàj–lX Tžj© D†Æ›råÊ•{7oÞ¼yùòå ö+د]¯Z*UŠ×/[>îˆJ R.3L8¨ဃ8pp @P JÅ §LŠe%iXOˆÚx æ Q  8pÁA8ˆ@ËR \ºr]ò„ëRš@†~ùøåË÷çÏŸ?ƒ)RÄ(§L¢¥™àኔZ³<9pcÂ% y²Sဗjá’ R¡GÉM‚$)¢EqÜì˜Ö¼{ùòñËÇ/¿|üüøñóçÏ Aƒ)j”éU!°ÜÀ2Œ¢ Þ8pà \–¨DpÐѧ\¸ ‘ÙRh˜!I’ òÇPw\Ý»‡ï^¾|ùøñã—Ï?þüùóçÏŸA‰þ² …•7Ãþ0Q!„JHÊU Rê\Ê•K•#G—,¹’„¨ HqÜdñR>|øîåã—/?~üüôñã§Ÿ?üôéÓÇ’#Pô¸T(C8pa *\ðx¨£Ò¬\¸b©¢…ÊR­TžÅQs&”Öä»—/_¾|ùøõëÇoÏž=}úôñÓgO˜0a\=:  ÀUm 8p.¡J+O ”fá˜+-\ÃjIJåÉ’ 8qÒPÁr@B{÷òÝ»—/_¾~ýú… &Ìž0aÀ|ùòå‹+ @xƒëPz xÁ*S±L¥2åBÖ0bÃráþª)Î,\ª\RÓå‡ ¼¸—/_¾|ùòõëׯ”/P @…I“&M Ø’" Ä)±{üüù3ˆ#F™Jñúõk“.(*ÕQ‹Ö)¨j¥¢…Ë‘*\¸ ÑÊ•j­Kµ† 6,Y-"@ä U*J½•hРQ¥íùÒdПAŠeâ T©R£8)4Õ%TªhArK•ªX¸p©’déɰTÉd=Š¥ —,Iˆ†Õ"Q¡‚OžbÁ€dgÓ¦?hÀ|ù³‰š&HebÔ('P 8eÊ”)Ó‘R.9ð±*ÇH• ©† •§B…žÐR•ŒŽ•C…,S¥j˜§ nX*TŠ2TþþìùòåË—0}ö„iÂ$'Nœ@âĉ'N›2‘YS SWJ˜+V®dà IZ´å "€³’i!“FN K´bá²!BV´.YjSg(P¾„ÙóçOŸ0P˜dâ4ªT©R¥FqÊ”iS£3:zäùðèÃ.•páÂ5 ×–4[Ž9rR2EF¤QëR-7$Ü‘¤@•A &LŸ?ƒõ …‰"N¬v½jUŠ#EŠ1úS@@\‡¨pSI±aÃT]:rdˆ -]ZeBT´ ¹ÂRAHqª)TÍ0aöøéÓgO˜/L(ŪU«R™ýùþóç¢M̸££Š£Kw\áÊ…‹-.FŒ9DNžX0L±DKN¡5xò”ÆH †¾@iåK˜/P 4i„I¦Q¥@mj4èÏŸ?ƒ1âäaÀ 4Fl1µK¡X¹P¥‰gŒ9dºTª)Eˆrår$EO 5&Mš@i„ &L˜ 5 T¦LŒ%R¤('Nœh€ÐK<0T:„+–%.dÒܱtd •;e È`¦Rž)u 8PÉXªakþ0iå (Pš4i„ P¥FqÊ”)S&Nœ8qâÄ)M4€È±T‰ ´h¡*„¨þP,3q¶À©RD€ \ЏèÐGT¡zá( ”/aÐìÙ³' ˜/_¾4)ÕªÕ(N™2Š'N 6e° O±hA:DKÕªY³¶´‘c¤‹§4U•¸F†ƒ@x¤Ê)žíéóG#F‰þìù 4Á~í*Š'P£JµjÕªÕ+J\Ø ªTdP©šµ Õ– ª ª”fŠ…ÈéÑÞyÊciÓ®R J•*UªT¦A{  cm™1^¼x½zÕjׯ_¿‚»sÅZ``±T-\ªPUºAi.2FFP‚Ë–*(`@x4¥Ðþ’D)[¶,/^¯Z•*Å)Ñž/ݶ]«&Mš2eÁxíâeLZ·g.F@Ð!K.G Í R ¦<\ê²¥J EÈ ²tç ‡pªH)³é™µjÖ–óõªU«]¯J1ú#îÛ7qߺUsVŒ¯`˾©«'å…ÜH‘CÒ%U•Õ™‚ –#cŽTIÓåÌ+=ê¼)ÐHˆ%u»VMÚ²f¼Z±bõj׫QœÚ±[·N\7i¿vµâõk™·v÷LÑ D•A‚‡Ë¡Tcr”°SÆG yÊq‹8vàÔ)¢Ù·kÖ¤-3æ«(N£X½*5jݹsßþ®I3ÆëU«V¼”ukw¯]# ”è’¦£4,F¨Ô&†m¤È‘p%Ö¡,.*©BÆM‡¤uÓf­Y°`¼Zâ”)¨Q ®]»æL™²`¿~ý2ælÛºz÷îY²ÂÂ…*d,Ù8 Àm @Å Rêz$¥9 ¸á«Ú5mÖ~•UªU«R @•J™²fÁŒ)3¬˜²jâÚÕ»/ž6/‚ÄŒ€3BÅ€ €ìðМ'ŽÖpá§C3†-“VMš2V™8±jÕªÕ«W¯^½âŋׯ`Á~“Ö­]½{õâÅ‹·(‘ 20Fþ @€ @ J01äiJ•.\€„0‘#˜±fÊ”ã5 T©W¯^½âÅ‹W©W¿~ñâõëW0ißÖµk×nÝ·j˼HRC#A€ @€%|¸A$Å£8/ÆI“FEŠ)3VÌX±W£@jÅ‹¯_Áš½úe¬Ø¯`ÊŒsVí›:qß®ýú5­NC] @€8€Ç‘Žu¨láB¥P9dƘȲ«™³eΤI+V*#N­xý2¶ìš2eΤUë¶m[7gʤ”æ¬X©I v½2òEL‘ €êì¨"ÇŒ8iââ²þ%Ž9¾‚)S&­ZµnÝŒµÊÄh/cÒ¶}»V­ÚµnßĉÛfìÕ(P ýù“(«:@Ä,"¢cÀ€ @ÄÍ…ê2 ’”GÒha̘±bÆœI«VM¯Q›Jý2VíÛ·n×®uû&N\7e¿2%úãgÏž?Š2µ*fdH¢ETd$"§ÌŽSB(0ÁŽY …`¡¢Ì&eÊœ-s¦Ì™4eÊŒýzª¯fÒºuëÖ­Û7qâ¾-kµiPŸ=}úøI´©¯eËŽ5bTjYµjÒ¤}su„É ,jt(0A„ˆ”(AEŽ1ˆ|U»æÌX0^¼^ñâõK™´jÕœ-sV­ÛºvÁ^•Ú̘±RŒ úó§OŸ?ƒ^)“VMZ·u³dˆÈ$  Tè`¤„€ u¤¤yªZ·mÕªý fìׯ_¼x)«æíÛ·nתmW Ô+eÒ¤+Uª•"?{À@ ³'S)^þÅ”m[Ï”‡2¨¸  À ¡…œ`ã¹s×.^»kÕ¤I“¶¬¯`Ê®‰S§Î[5iÕZýªv­š4eËxæË(_Âô” T°mêÚÝÓõb‚/O,(` @Z.”Ñ–ïÞ½{ùòÝk§î›·oÞ–ãõËYµnߺmÛ¶­˜³kÕ¤UÛ&íW¦?a¾|åK˜?Œx)›V­[»{çô”è"&…0x(±ƒ»yóîÝ›w/_¾{õÚ­k§n›3d¿Œ!s6­Ú¶mÞ”Uë¶MœºmÁZ)êæ (_ÂôITŠW°`ʪ‰c/^¹\‡Š(pŽSçÞþ½›7oÞ¼wïæåËwïÞ½{íÖUs&­ZµiÕ®]Ûö­Û7uëÚ}û5Š‘Ÿ0_¾| Óç#P¥XzUlÙ6€ßÔ±‹7oÞ;tР½{/^¼wóÞÍ{÷î]¼y÷òÝ»‡ïÞ½vß¾©[§îÛ7oßÄÅ‹¯Ý:e›ýJ4~)ÊÄ T)N£Z“¶íÛ·uñæÍ›÷îݼyóæÍ›7ïÝ»wïÞ½›7oÞ½{üøñËw¯^¼xõÚµk·n?~÷Úu{•)(M „AÓg£L›8âÄiÔ/c˪Uë¶.Þ¼yóæÍ›7oÞ¼yóæÍ‹÷îÝ»wóæÍ›wï^¾|ùøå»þwïÞ½{ñÚå»WW™þ€òL4)RÄ(S¦L™2âõkYµnêâÝ»7oÞ¼{óæÍ›7oÞ¼yóæ½{÷îÝ»yóæÍË—/_¿|ùòÝ»w¯^¾zꔽ*¥ÈÀ0_„ ³çÏ ?}ü RĈQ&N¥^-“ö­Ý½{÷îÝ»wïÞ¼yóîÍ›7oÞ¼yóÞÍ›÷îݼyóòåË×/?~÷îÝ‹×W)P™õ óÍž0{úôé³ š>ƒeUê—´oëêÝ»wïÞ½{÷îÝ‹wïÞ¼yóæÍ›7oÞ»yóæÍ›7/_¾|ùòåã—¿j¯J•âÄèÏž0a„ ³g>O˜0a„AÓgP¦R¿¤­kWïÞ½{÷îÝ»wïÞ½{÷îÝ›7oÞ¼yóæÍ›7oÞ¼yóòÍË—/_¾|üøñ !ù€ ,Dd‡ !"%!) #""###$!!&%%&&&)%%-""*)).))*&&1**1--2..6**5..9--<11522:55>33<99>66A33C55K::B::E>>F==C==I>>N::K<>c??hBBNEENBBJBBCBBQFFQEEUAAVDD[IIUKKSNNZNN]JJ[QQ^SS\QQWDDdAAnBBoEEmLLcJJjLLlCCpGGrEEqIIsJJuNNrMMwNNxQQaRReVVbVVfSSlZZeYYiZZm^^n]]jRRqVVrVVvRRvQQzSS|UU}VVyZZv]]v\\qXX~^^z[[zaamffkbbrffvccsaazbb~ffyee}kkvjj~mm~kkzqq~pp{ttwZZ]]ƒ^^ƒ__„cc‡``…ffcc„ff‰ii‚jj…mm‚nn†hh‹jjŒiiŒmmŽnn‰ooqqqq†uu†uurr‰uuŠvvssŽzz†yyŠzzŽ}}Ž}}Šrr‘tt“vv•uu”zz‘yy–zz—~~‘}}•{{˜||™š}}š‚‚Ž……ˆ‚‚’‚‚•††’……•€€š‚‚††™……Ÿ††Ÿ‰‰–‹‹”ŠŠ™™ŽŽŠŠ‘‘š‘‘••ž••›ššž‡‡ ‹‹£‰‰¡ŽŽ¥¢’’¡‘‘§––¡••¦““¨––«••©——¬™™¢œœ¥šš­œœ¯žž¯››ªžž°¤¤«®®¯¢¢¦¡¡²¢¢²££´¥¥´¦¦¶¥¥³©©·­­´««¹©©¸®®»­­º¯¯¼¢¢¹±±¼²²¾´´¿µµ¾±±»¿¿¿¼¼¾ºº¼±±³··ÀµµÀ¹¹Â½½Ã¾¾Å»»ÄÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÐÐÚþI‘"%*Q @úì Ì&K’!B„"Dˆ!B„"Dˆ!B¤IžC¤z9;lÓ¡M­z ëÕ«W¯^½„-{Æmœ:uêÔÇN”'O¢2 (PŸ=aÀ@a²d "Dˆ!B„"Dˆ!B„"Dˆ0“Ç)M™ÊDê5fÅzõêÕKزjÜÂ…S.Ü8uìz‘Ò¤)S¢C ´' (O˜,I’„"Dˆ!B„"Dˆ!B„H’$K @ÆL˜=ž–e£¶ìX¯^½„{v[¸páÆ±cÇ®W+O›6e:d(¡@}ö„òä “%K–þ!B„"Dˆ!B„"Dˆ$Y²„ &L˜@ÉCŠY6€×¨9ë%¬W¯cÏ®qû¦N:vìØµ"%Ê“'M‹:tÈPŸyÀ€ÂdÉ’%Iˆ!B„‘%Mštàpâˆ-Š0aþÂŒ¡VË®qË–í5fËžQ«Æí[¸qêÂ…ÛÆ-Û³eÅxµ%Š+Rž2%2Ô'O˜0`˜,Y’„"DˆiâÄ @1\¢´0‚K ì!UìZ¹pÛ²]cvì³jÕ®qÛ¶m·lÔž=»Fm™0^­^õêÕ«•§L†õÙÌ“&K’!BdI“&EŠ4#æ&dÐpBÈžM½¨qÛ¶í5fÌž={ÆìÙµkרQ{¶lÙ3nר-Ö«—°cÂz±Êt(PŸ=f 0Y²d "Dš8AR¢F .W¤Ì1‡‘*&é³éX¶mÛ¸e˶mµe˨]»vþ3fÔ®] ·mÛµgÇŽ-cÆlY/V›2ê“ ”'L–,)âåL£S¨Àr#‹Žnn€À@a„¤¨m7.\¸qìÂ]£FíÚ5jÔžQ»Æm·qêÔm»F¶kܸQ[Ö à+O‰íÉ& &BØÌ1òàJ,TÚ`‘q… x(@bÖµpãÆ… n·kתQc¶ìÙ3jܸe»Nºqá¶qã¶í[¸mÙ®Qcv¬—§M‰ …iƒ8R® ˆâ£’ª\‘n€AˆÑ #ìÛnܶmרQ£¶ Ù±cÇž=£VíZ¶láÂSÇ.ܶpáÂmÛ.ܸþqá¸-[ö,”‘1tt€ ãÃ.ÍÂ%(GG–Úd‰¡!ËjÛ¶mËöìØ±c½zõâÕ Ù²gÔ®qã.\¸qìÔ…7nÛ¶pêØ½{÷îݸmÔ¦LY¥Ã,| DÈQ'B‚Œq’ 8 Xx TnÛ5fÅz‘"EJ”'R¯zõZÚµkÜÂS§N:uìØ×î¼|ùòå“§îQ›+i~È1A‚BŽ"#è4HJTREÇ„N^m»v¬•¨M™eʤi“'^ǨeÛ¶mÛ8uêÔ±cÇŽ»vòìåÓ§OŸ¾|ÚÒ´±£…ŽL0’㊓7HþŒ<ˆQ¥Å‡*9nÎêի׫W­^õ"ÕêU¯e×Â7ŽÛ¶måÂ… ŽÝ»wòòåË—OŸ>i(d²$Èxp¥K™ ÊÜ(¡Ãˆ‰ (®hàF1¯–+vìØ²c½z[F[8uìÞmËÆm[¸pá±k÷Nž„œÉׯ_?}ùòå“'/_¾|ùèÑ ·Û¶pìØ±S§þŽ]»wì¶]“3àÂ¥K& € B4NU8‘Š*n°ªðàƒWFŒ a‰múôùë§O_>zôèÑ£Gž}ú²mCGž¼qØŽ;Öj 4ÁL¥hc  € Âl¤²ŠP•+ŒHP¦V­7³jMªRâ„ -èÌ™3/=}úôéÓ§/Û¸xôèþµ+Ǭ¯^½}úôÛFŽÜ¸rט{õê•'#¨‚ñ@ñCŠ@@€|@%ˆ.AW"Ej$hU­T RÍZEè„ !?Ò™3/^}úôõjÕJ”§V½ŠëÕ«¯k>4ºdãÁƒ<@þ@ B̘õÒ*PV –+×HMš…Ê,„’™3g.^OžH‰òä à¦L‡eòÄêʤF¶RqAB €àÁƒY2¥*W.]» Ô ”˜H@EÒQÁǃ4æâÑ£ž>}úôéÓ—i“'Ož:”(“¦LØ Ð ‡P¤ :Tx€à† 4}úúõë§oÏž>}úôéÓ§OŸ@‡&}0%R þ @€€À B‚æ x€@† ;YbÑ•+Y°U´f¥"4é!AhªŒÑá#H>}úôéë§OŸ?ýöìÙ³gÏž>}öìÙ³'•?:ÐBÄÀÔ%ʃ®\R¥ —2eÊ’%› (W‚ΜùÓÅ 1fä˧OŸ>}úôùóç/Ož<{òìÙ³'O˜0a. ðxÈxðÀA±¨xP¡®[¸’)¨L™2g³ ªåêÏŸ8QÆœxð Ô|ùôå˧OŸ>þü… &Lž}úôùóçÏ0P @Ê“'O dQð€&´Lð¡U±ìÌ¢ô@Â¥d–‚)KÌR£Y‘.­RÉÍ%-l¨H ÄšwïèåË—/_¾wïä1a„ &L˜4aòäÉ%~¨Š%‚’'hÈ…K•ªGÊEK™¥ZÉfA¢E+Ò%\‚ÜÔ²"§J&\éEmÛ·qìÞ…ËÆ-Ü’%K–,Y¢DI&Lžh:1CËS´h¤EI4É’Ñ„ƒ‚(·váC(׬U¹.‰'N9tô0¥AŃ2¤^½jÕþ‹Ú6nÙ¶…[²dÉ’%K”(YÒ„ “&mtÈy´j­X¸0I™•+Y®U¨dP@E+×-W³r¡J•ì H޲Pâ‰H»¶m[¸%K.i„ 0aòìé#f þˆ(³v0bTƒV¬\Áh%Kv LÍB¥JP'HŠ@sô B TÉi“eăsú$Jt(S«^̨]ãÆä 0`ÂäÉ“§O C{œ|¨±J&#TͲÊR®\´t<ðÀ®H–ÆŒ™ôÆR06 "DÁ… +elè¸2¦O¦M›<‘jÕ«W¯^`ÂäÙÓ'¡C™D½jÅꌎx ¢AU,H.ÝÂEkƃ Ap ¦¨‹˜`³háª!A‚BgB])3çŠBo‘jÕ«¯VžeÊ”§OŸ@‡%ÊDJ5f¯Ì\a©Ç+ib­Z5 ¨X´tÈ1%çV#ZþoÞœùì¦$Èhô'• F×øÐ0‰°c½^õêÕkÑž=yöôéèP¢D™Dõ*VŒ×rQ’£ÅÎ*T«:EJ5k£[ªTáŠei­U„P©zT!‚mR³ÔèC)®Hñ¨O O¡2å%PŸ>‡eÚäi)Rž6qQ±àÊJT]ZµÊ• T³,±±ƒkÕªX hÍŠ•ë-9$H r‰Õ¤Us@DéjÓ¦=aÀ€é£)Q(K2eJ´(Ó&Qž4iÊ”)SŒ4ð T#Zµluê” ” «h­™³ŠV.\¸hYêBBB‘:¥B…+úþä ˜0{ö„Â$Ó¦M›6yòäiÓ¦M›2U‰‚ঠ® Š T*BŠÎt‰C•€>Eu‹-P3tˆÐª(T±Í ÃÃ(PÀ„ɳ§Ïž0P˜dòDŠ)Q¤DmʤIS")4È€€ P¨Aª$è͘1[ÆÌñ1çÍ F±hÝôCЮR5R¥êM%;Œö@ &Ìž> í …I"O­x½jEjS¢C‡%B#@Å2¬e©R%–,¥Jui‹œ 1.¡!DëV$.Y@X˜âªUªY¢ƒj˜0aÌìÙ³'0O–òÔªU+R™õéþÓ§Ï!MPü À`ªKU¥‘Ë” :„­¢CÇ B¸hE"dD‚…,³VEª4©“Œ5ÁÀ@y 0P Ú´À ´Á„iK#;”.]Â4¨Km¦,Ø€†Ö%# 2<¨À0KoR±Qå &Ož‡2µfÆË Œj$HÊ„ | s¢QœYRF y³b̤e˘-{¶ì5fËŽõâEŠT¯e׸mÛ¶m[¸qêÂ={¥©Ïž<{öô1”©U¯gÌŠˆ1ÓA€ŠHqb@`@‹6¹ASa‰2eú,ËvµgÌžQcvìØ±^¯’ⵌÛþ¶rÙ¸e»FÚ³^›åɳ'P¢C™ZQ{Fíš­"MÆ áÀ`  bé2Nœ8±°kÔž-Ö«W1dË–1cv¬W¯^϶±k÷lÙ2a½zõj•©Ož=}eJ´‰ÙµkÕ¨…³U$G—# P1…*‚°èräÉ,œ]»öìX±^½^ñêÕkµkמ1{vm;yÂ^‘z%옰V‰ êÓgÏž=x-£vZ¸v±~Œ0‚cBNø¨ÒˆL ,d¼tqòêÚ6nÙª V¬W¯^½z-«ö-\¸mÙªqGÊS«eÔ¨#%ŠÔ¡=y€“g©^þÅ–]c'O†bXP€€‰ nâPÁcÌ`ßµ{÷î»lרQ£Æì¯^Ë®S§.ܵjÜZõ¢–­Ú³eÌzy  ˜'`Âì ”É“°lêÞåƒf£ˆ pƒŠlüÙ¦/_¾|úôé{7.ܶpÛ–õêÕëÙµmá¶qãÆ­Ø3nר]ãV­W¦>aÀ@yL˜>™x-»v-Ü;zèLê2B}úôéË—Ïž=yòÞ½{׎]¿~ùÞm{•é(P „1³'P¦L›zôèÑ£G=zôèÑ£/^¼xðèÑ£G/Ÿ>}úôõËþ—/_¾|òÞõË'/ܲW™ö„L3} :”H“¦L™4yêÕ‹µmììåËG=zôèÑ£G=zôàŃ/žyã–ñuhÀ0`„ “§O >{úô1”(Q&O¤^-{î]¾|ùò壗/=zôòÑ£G=zðèÑ£=zôôéÓ篟>}ùòåË·­©M™í ÆLž0yöìÙ“ÇŒ™=eòDªµpïäåËg/_¾|ùòå“—=zôèÑ£G}úôéë§OŸ>j¯H‰Ú”¨0`Ì„ “'>™0a„ ³'Ð"Q½ª±“g/_¾|ùò壗ž¼|ùòå£G=zôèÑ£G=zôôÑÓ§OŸ>}ýúõ !ù€ ,Dd‡  "%!!#""%%%&"")%%)&&-)).))+&&3''9**1..6,,3--911622:22=55>44:99>//C66B44D66J::B::F==E==B::I>>I>>M::M==R>>Z>>c??hAAGAAJBBMEEMJJOBBRFFRFFVBBUFFYCC]IIUKKTIIYMMYNN]II]RRVQQ]SS\DDcAAnBBoEEkNNbMMeJJdNNnKKjCCpFFrHHrJJuMMvNNqOOxMMxRRaRReVVfUUbRRmVViVVmQQiZZdYYjZZn]]m]]kVVuSSrQQzSS|UU}UUzYYqYYv^^r]]vXX^^z[[zaanbbkddgaarbbuffueeraazaa}ffyee~jjujj}ll{rr}{{ZZ]]ƒ__„bb‡``…ffccƒff‰ccˆjj‚jj…mm‚nn…ii‹kkiiŒmmŽnn‰ooqq†uu†rr‚rr‰uuŠvvrrzz…yy}}ŽzzŠqq‘ss’uu“vv•uu”zz‘yy–~~‘~~•{{˜š||™‚‚Œ‰‰Œ’‚‚•††–††’€€š‚‚††™……Ÿ††ž‰‰–‹‹”ŠŠ™ŽŽ™ŽŽŠŠ’’ž““œ™™Ÿ‡‡ ŠŠ£‰‰¡ŽŽ¥¢‘‘§––¢““£’’¨——«••©——¬šš¤™™¬šš­œœ¯žž®››ªžž°¡¡­¥¥§¡¡²¢¢²££´¥¥µ§§¶¦¦µ¥¥²©©·¬¬²««¹©©¸®®»¬¬¹¯¯¼§§¸±±¼³³¾µµ¿¶¶¾²²º¿¿¿½½¾¹¹º²²µ¶¶À²²Á¹¹Â½½Â¾¾Å»»Ä¶¶ËÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉËÊÊËÊÊÌÌÌÍþO½:eê‘!C†bS†L(Nš)R¤H‘"EŠ)R¤H‘"EŠ)Ò F§„;ì£P°‚ æ«—¯`À€!{Æ-œ:uêÔ©S§îÔ(S§>52dH @fÈLâÄI‘"EŠ)R¤H‘"EŠ)R¤H‘"EŠ@™Â¦Q©Ož òtêØ4fÅ‚ ¬Ø3jÜÂ…·.Ü8uì‚ ÊÓ#F† 2È ™)P 8qR¤H‘"EŠ)R¤H‘"EŠ)R¤H'N¢L!c†@£”Y›ÆìX±`Á‚!{fÛ·páÆ±cÇÎ,S¡ByjĈ#F†™™% 'Nœþ)R¤H‘"EŠ)R¤H‘"EŠ4qâä (P LùsêY6€Ö¦)+V,0dϬq §N:vìØÁ:ujT¨O1jԈѡ?S @âĉ'EŠ)R¤H‘"EŠ)R¤H'Nœ8yòJ3ŽYã–mÚ±bÇŠcf[·pêÔ©SÇŽ/X§F å)R#FT& (Oœ4iR¤H‘"EŠ)R¤H‘".^qâä (P¢˜iä‹™5kÖ¦)SÆL™²iܾ…§nܸqáÂó%딩PŸ>yòô¨‘!AÊ™ʼn'EŠ)R¤H‘#D*ÔB„ ,Ž@þ…Œ!XʲyË–ÍÚ´gÊžM£Æí[¸qãÂ…ëÆ-Û3eÅ|Á2eêÔ©S£<=b$è3d 8qÒ¤H‘"EŠaÂd ÀKsª8` @ƒG¦:UÌZ¹rݲY{vìØ3jÓ¬qëÖ­[7kÓž=³6M™°^°dù æ Ö(OŒ ĆL”'Nš)R䈓'Q¢Ññeƒ‚P !J PÁ¦qëÖÍÚ4fÏž={¦ì5kÖ¦=c¦LÙ3nÖ¦)æË—°cÅ|ÁòÔÈ @lÈ@qâÄI“"Nž<3æKp6¤P’CD B°ô阵nݸYãÖ­Û4eÊžY³fmþ³gÓ¬Y ×­›µgÇŽ)cÆLY°S¡<5ô‡Ì(Pœ8qB†I2ÙQSCž, ð %§¦u 7.\8uêÂY›6ÍšµiÓ¦M³Ö­·qêÆuË6m5kÙ¸M;æ  ¬Q úcÆ ™#Yòdà°ÇÒŽ6hÙ’A  (`°©”µpãÆ… ®7kÖ¬MS¦ìÙ3jܸY³nœºpáºqãÖí[¸nܬQSv,Ø(O ™Qñ%O 0%¬X©a¥-.nHC‚Ð ë.\7nÖ¦M›¦ìرbÇž=›FÍšµláÂSÇ.\·páÂuë.ܸþqáº=Söì‘sVq À <¸XIBóÃJž4s$”8"ÊÍfݺe³öìX±cÁ|ùò ™2fÓ¬qã.\¸qìÔ…7®[·pêØ½{÷î]¸nÓ²ä)¥‹)H!Ú£IÒ¢6’ò¤YÃÄ J EI®›5fÅ|Á:uÊÔ¨S²|ùBpš5kܾS§N;uìØ×îݼ{ùòå›§Ž0(v,P@ ɘD„i±‚O1y1ÙÀ@–Bddu³v –©PžlÐÑp (À°Éþ¥f­4ÁaÅ$¤V¥ØÁaÏ&L–(‘BF—9sæÌ™3gΜÉbFRž&À!@€€ 40` „T«<‰.IZä†P%R¹tÑÚcÉþ+\‹ÒT겆hæÌ™3gN^½zõêí;eÊÔ¨Q£BE2dèÑ)MrXÅZ¤B`À€$lÑ“§ ¡~ûöýãÇO A‚ $H!CŒT£E‚>þÈ ¨qs&1QÉpIZ¤«.[’ZéBDè®1Š¾ØøG>}úòñã·oß¿ü P A‚€92`Èôƒ—´PÀ€Až6¢ˆ%kkØ¢UɆ•²e‰Ö®Eyæ$ZBä‡+ÂäË·oß¾}ûöñû÷ïÏŸ?€ è3fTPBÁ:0(¨‚¨  „,I3l˜­]Æ!¨‰)\´Z­Ò”¨’š%Dˆ0P ‚Ÿ|ùöåË·oß¾ÿþ™1cÆ 3fÌ!C†L p$0ð°Ë‡]HqªA€@1‹†ÙÚ5lØ.Ii,±þ*µ«'W^,ñ™SÈ…dÊ·oß¾}ûøýû÷ïß”)S¦L™2%J”(Q¦ààã}êè™!d˜­ìhÕjذTÃxíšdg“­J¶tYÂ5‰“$!,ИˆABF«wóæåË—oß½wïîAÊ(P @%  BàÈÁbbŸzlA A€€ NÃví g×.Eˆhíj•G“šI'vX"a‡jh 6[¸qìÞ…³Æ-œ'Nœ8qâÄÉ(P éò D«UpHÔƒÁ–®aˆaXª>B&ÐÚuk“,´àÈÙ†ƒ=?R)¡ÁŠX§zÉêþlÚ7nÙ¸…sâĉ'Nœ8qò ”31v}òäÉ‚tAsiS+V­.iŠÀ‹®U«6ÑÚÄiÕ­]&M`)¯\–HÙÑ¡K8„þ±!C†L6€•™ÅS¨P¡F*T¨P¡"¡€Æ K¤V­ c‹–­öLº çG+€’,ÙQ”ªD¢$• &j¢4_æp"‡Ð”)dȘùHP 3S x uÊÔ©S¦L…òôéÓ£xˆaéRŸ0$HáJ…'Å¢MsH!ZdiD®LØ11cI,R‹&iÊ“ÈG• —ÐL)cÆ A† 23åI£P°zÉ‚u*Ô£F=JC`EX4­Â€@Ž&t,©dI«=š6åQ4‰ƒ 34‘²%‰Ö*D—Xm’Tê2fþè2Qœ4õ ¬Sžþ$H#L<ähãà X b‘Dšª¤AÔŠS; |‘à…U0V”!²¤ .RÃÊL‰2…Œ2S¦L‰ʼn'S§B}ŠÄH A†5úÔAÀŸàHø!! 2hjcI“ˆZ¥ÒÔC‚5ä¬Q¦©’¦\”bXÙ+(Q¢L‰ (P 8ejÔ'O1jÔ(R¨P¡z¨‚©›2tØCK•$¡É³d§5s‚(°2Á†—aÐX±²f˜I¥0A‰2…Ì”)Q¢D‰Š“Q§L…òä)’§P¡B…  MˆVzÓjÏ%Jd@´hþDi4ÑáSk†9d¤ˆui'/{:ÌÙóJÐ2fØüùóÇL2dÈD Ö¨Ož>5*T¨Q£0!¹Q¢,±,UZ¤Ç;šH$!"ÅR—]LT²3ƒ 8àbýðÉœ²T¨Q£FŒý)c 6Å‚É:5*Ô¨Q¦NÁ‚K–,BZH °ž/DDˆpBHQ6DˆXêb@Kj00ÁŠ”¤¬„’D‘¯S£F:õê”§CÌü1ƒÙ±`¾zÉ’«W°`ÁŠ“µˆ…)ø0…èy8a’‡H¢=t(` @‚D©,‘S§Êžþ0Iô(cƬ˜/_²`:ÊÐ2ݸY³6mš2eÅ|õòulZ7lŸ¬” ‡QK­$¥É²IS ÒT²…‹G ª ‚³‰Î«/*쀳£6lؘ ë¬^²N=.ܸqáºY{vÌW¯`Ì©›÷ MvåYÕJ¢,›2)ùdQ0;„Pâ3ƒD‰*{öˆ2ÐŽ$-cätËfm3e¾`‚%«—¬S¡æµcÇn\·iÁdÁêå‹Y¸wù˜¹ñ’#"I–4¹šdi•<‰Ö´Q¡/pêd¢#ÆŠ†6zló…V¹lئ13ìÔ¨Q¦^É:eŠ»qáþ²M;æK,X¾”u»—oÞ'4VÒaÂd§I­4¡¹4©F ª(È`IÒž4cì\¨Á@BX qëfM™°`¾^ åé“)S£²eËÆL™2aÁ‚ ;ÆŒ»|ùòK¤…Ò Ze' ~ùÞu“åÉÐ2S¦”aÈ'O¡F õéT°c̦eëÆn^¾zõèÕ«W¯^½zõêÕ“7ž 3f̘aȧSÁ¨©»wï^>}ùòåË—/_¾|ùòå«W¯^½zõêÕ«W¯^½zõöÕÛ·oß>~üøñ !ù€ ,Dd‡!!%!!#!!%%%&##)%%)%%-"",)).++-&&1**2..6,,3..9++;00611:33>55>44:99>,,@66A44D55K::B99F==F==C==I>>M::L==S<<[77Y==cAAIAAMEENEEKIIN@@GBBRBBVEEQFFVEEZIIRIIVNNVMMRJJYMMYMM]JJ^QQ^SS[XX_CCdAAnBBoEEjLLdJJjNNjMMnJJmCCpFFrIIrIIuMMwOOrNNxQQaUUbUUeRReRRiQQmVVjVVmZZeZZn]]j[[kSSqUUrVVuRRuQQzSS|VV}YYrYYv^^q]]vXX]]z\\{aanccmbbqaauffuffqbbzbb}eezee~jjuiizmm~kk|rr}ZZ]]‚^^ƒ__„aa†ffdd„ff‰ccˆii‚jj…nn‚nn…ii‹jjŒmmŽnn‰ooqqqq†vv†uu‚rr‰uuŠvvrrzz…zz}}ŽzzŠrr‘uu“ww•uu”zz‘yy–zz—~~‘~~•{{˜||™~~šƒƒ‚‚†’‚‚•††•„„“š‚‚……ž††™‰‰–ŠŠ‘ŠŠ™ŽŽ‹‹›’’™™›‡‡ ‹‹£‰‰¡ŽŽ¥ŒŒ£§’’¦––¢““£““¨——«••©——¬šš¤šš­¯žž¯™™ªžž°££«££§¡¡²££´¤¤´§§¶¦¦µ¥¥³©©·­­³««¹©©¸®®»­­º¯¯¼££½±±¼³³¾´´¿¶¶¾±±º¿¿¿½½¾¹¹¼´´µ··ÀµµÀ¹¹Â½½Â¾¾Å»»Ä»»ÊÃÃÃÁÁÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÈÆÆÊÃÃÎÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÏÏÛÕÕàøøüþ]¹2%ªQ¡B…ý9c¦Œ”(Oœ1bĈ#FŒ1bĈ#FŒ1â$ŠŸE¥|)#Öë¥O®zùê¥+—®^½|[vÍ[¹råÊy+WΔ(Q¥81*T¨ @gÊP‰òä‰#FŒ1bĈ#FŒ1bĈ#FœD¡âf‘)N” -âdª˜3dÂ|õêÕË×1g׸q+Ç›·rçz™úÔ‰S£E… *ôçL*R¢qb´hÑ¢B…¡"EJ”'Ožþ1bĈ#FŒ1bĈ#FŒ8yòJ”(Q¢”ùc 5€Ñœ)óÕ«W/bË¢]ãf®\¹sçι:eJÔ§O-bÄh‘!?T¢D‰åÉ“'FŒ1bĈ#FŒ1bĈ‘'Ož@%Š”3ˆM£FÍ1aÄ„[-›6nåÊ•+wî\.W¦J‰úÄé£EŒúcFJ”(OžzjƒË¡U‡°0p0ƬRm`e‹&ÌU©Oœ8qâô铨\ÄœE»¦M·råÊ;wîÜ9tîäÑç>zÕ¶à@qÁÁ"LêÜY’äG¤Cwþ8làRgÓ˜*A íÑU%Í1eºL‰úô‰Ó§Oœ>¹êµŒ7nܲiãÆ›7oÞÊKçŽ=|øðᣗGŽ ?øcg &_| iƒÃ5&áár#G–*i–òÕKW®\®`é2eÊ•®cѸqãV.[¶lÙ¸qãÆ­\ºtîèÑ£G>fYp(P ÀcŠði“æ¢58.$à BI%EJ¬ñ¡„RºtîÜ¥K—.]ºtîÜÑ£çÎ7nÙ¸y;wî\¹rçÎ¥;ç-›3)|ŒÊTi“²ö4¡$Œ¢:k”ØðQ¥@8FÙjS¤HŠ%8ÆLq§OŸ>}ôèÑs'=zôÞ¹ËvíZ6nçÎ+Wþîºtç²EÛseGE”¬IÀà‚¬+J¶´Ù‚‚\ÐC‹­&Eа("”[øðáǽwïÞ½{÷î»kÑ¢]ËÆ­\¹rÞ¼•;ç-›3s~dÊÔ!A‚ 4T¢Õʇœ pE¦Q´ì¤A‚I$%44ÑóîÝ»wìØ±cÇŽÝ»wïܱãv-š³cÇœE»–-ÛµlײûQC¦I HÐÒ[À„0` E›ödº¡g %E´!“¤‹%䨅 .\8vìØ±cÇŽ»tå´E;¦Ë•+]Â;†ÌY´<{Lð¸E"A‚6Éò²êVþ%ZÁq ©Už!À`I¢…L &c˜pQ‘$U¸páÂ… .;vìØ±{wÎ[¶gËz•âôÉ”(S°zùú²ÇAM $HP@0·XáiÕjÔ(V"})á@P‡¸øhƒ„I,E¾„ .\¸páØ±s÷îÝ;zç¾yˆŒ¬O¢8=âôI¬ t™s @‚ èìÖ!VY‚(ªrGŸ 8´l³„èPšCˆ´(áãÆ¸páÂ… ÇŽ»wïÞ½£w;tܨëeŠQ!N¢DuŠÑ§À ! ,(À€Áž9·V%š“ÄÊ,”ÖXŠTÇž?JxÚÈ‘)Æ•$þ<à .\¸pñc÷îÝ;|ø¸Qãv·lÇt‰ZTˆ#G/6°b¢A‚0èc««V´øpñÑ*E|øõó'JKšJ" ¹€å*TáÂ… Ž»wïÞ½{‡oš³hÞÜ¡ã6 Ù1W â£c+3$(PàÀ=­4E’ÕjS;vѲtM˜¥uˆÆŒ±„ÃŽžW^ ™.\¸pèØ½{‡Þ;|ø¨eC÷î:oÓˆ #æêS!:p, ¸2$A˜4*¤[™ZÙùb‚•%V×hEi•";£ðPÚóÅLáÂ… ŽÝ;zøðáÇš7tïÞþ¡Ë†¬W.]ºJ ÚB81(p A‚8™ %ª”i¥-{nÑZ¥mÆ&€ FÙfÉ"P™4 ™ d\¸páØ±{‡>|øð«ÆÍÛ7nÑ Ë•K—(G&¾8Ø §K$HÐe$5`ÀÔ’•i”%E´$IB‹V¦J¬()…hÔ4Æ… ŽÝ»wøðáÇ,WºtéòuŒ1]¹\•rôá Œšx(P A‚]XE’©Õ-X™FQ¥èÆ_FYB”i”,I,%Ú¡¡Y¸páØ±{G>|øðår媔(W½„ Ó•K,/w,|IA Hþ@‡+M”jÝ¢d T&J‡t,`À O0K´`¥iƒcT¢Œ… .»wïÞÅÇ_¯^½r¹rÕ‹˜/]½ˆÛ!ç *8/ (p À à(²«+V”VÙbÕ¦Ë E)‘¢JuÀ ’ƒc¦páÂ…c÷îÝ»xñðáÖKX/]°L™*eJ—¯^?àðØaÅA$HÀ‹,G hÝbUH+Es(¸Ò€AœQ•V[•FN45èø.\¸pìØ½{ï¾^¹r¹reêS£EŒ8Á¥Nr(p Á‚àЪ´ ¥Lmn­ô£@6<&$bE©þ-PkÔ á$AráÂ… ÇŽÝ»wïâÅ3Uª”(QŸ>5*T¨‘)J•°`'A 8€Ç C«µIŠÙ(;1 à¨Cç­Vvh!²ÔF868ÀÅŽ;vìØ½{÷>Q¥L•% à'NŒqUŠU• „8P @lEiU°Q£€ÝR´&N•1[$íYëÐ*AŽÒìaPÅ‚©Ø½{÷îÝ»xøðáÃÇéÓ'Q¢D‰õéS)S F}Á‘€DHPàÀDa3 XA&ÂÉΡ5À, 3¦•`$ܰÐç]¼xïðíÓ§O>þ|…1jĩӧOŸD™*e)Ò  6$HpA@ , Ó¤ 0cÀ2A(ð­pôdjÕ ‘68ªèH²¤ƒ ©Þ½Ã‡>}øðáÃ'H B‹1bÔˆÓ'N_äà¹à F‚*V(8ÀA4mh,’„pŒãÁ`’¥L«Ú´±äC‚ˆAm6”(0Ï»wøðáÇ>|ø$HP¡B… 1zÄ / ^èp ÀF 0À(ͨ[À€ÍIÐ3KWNÜ™“©R›4”°¼æ ò¼£‡>|øðéÇO A‚ $H B‹PÈñÀ`Ò‹ þÆdqà€…;ŠÚJ³ªUY¶,ʤcˆ­áIsE‚V–tà >|ôèáÇŸ>}úýè A‚ýùóGÄxÀˆQàKŠ tH3j «D7~¼ 4¨ žQ’¬tØ¡H‘¢5« é d ¾Ð£‡>|øðéÛ·Ï?üüÈÏ™3g(¨q0„ !4i)P€A &°Ip`A[”FµH«–žÔØN&<@¬ð±À zôðÑ£‡>|ûö9s挛3gΔ¡R¦ † ~\¹`áB%; \𒦫 „,ø²*0Z« ÕþâÑ€Ç(c;„B³ Œ ~À¡‡>|øðíÛ·o•2T¨P¡BEŠ)R¨dØ0Aƒ, /nɲ#¢€‚/’nÝrÐÓ…”Zf§¤4eâSEH¥JÔHøa"téÜÑ£Gž¼téäE‰%J”(Q¢D‰"E  0ÀùçÖ­V°£Õ‡ 0éˆÁjOž[µ4ѹà!„‰9>ÀDê²ÇDƒ!4íéåì7oçÒq£vÛ“'Ož‰%Š*eü2D¦ƒþ€<š2µºu Ž€ ‚@€ÈÒá@Ȩ=0LÜÈc‰Vœ "$(ÀÀÊ K1bĈ“+_Ç¢E»E •2fθñãGP!F‚<²*“¬V¬0  `@Zpà €,^Pº !N¢V”ò|‰´ä…&`Ù0F§O¢J™‚¥«W/]eÎø$¨Ð¢EœLÁråèGµV±Õj7L0¨%K€h²° Η7`eâeO¤Lz¶€±ð#ˆk™r¥«,W¢8qâäG BŒ5âdʲc  ˜‘i”¦J¬$!€`A[²8P À¦ þ2ýp°g+ŠXÙb¥¨+Qpñq£T/a½`õÒ¥‹ ?~þT¨Q£FœLéêÕ ƒ4UbiÔøAË–‰ .è%A¨ $‚ƒR%Z•qÙÀ%,!Lå*µ¨P!Q¦ù)C¥ BŒqú$J”)S¢DI8@CR¥U™(Ñ @@YÁlÉ¢±g%Z „¸j0AÑ¡9`)bE … ‘:ÜA¢Ó§?nΔĉ‘*O8qjôˆÓ'Q¢:uâĉ“…CUjµjU8`E«–¦ ®qe+Q«Q«(ªSIÎ[¥ÊP‘B¥Ì™2T¨H‘ §R¦D}â´H A…1út À; „È#Á‡€;(eÂ3¦ž=‘2}y!gÂ!°Êe¢´ª$ ä완ŒR”(R¤P‘%J”(Q¢@UJT'N1bÄèѧOŸÉIT pHÐAÑ¡1k2µŠTÉΡ*è ñ¥²V°ýððeK¤`ÌE‘B¥ *T¤H‘%ÊQ¦J}úĉ§OŸ>}õÉ• ¾»PÀB‰ ;ð(*æþ,I–UÙgBƒVŽùjÓæpj(‚å«•2gÜøñãçÌ™2eÊPqåÊU©Oœ:‰*UêÓ§O¢\) -IlÔ@P§Õ(Zb¥æÎšLxL`ãN´4J´AѧJ^ÆùùS¨Q£F‹ù)c Ÿ3¾zår%ê“(Q¥N¹rå V.P(pX¥éN5:êŒj¥" ­L_æ´Ê‘† `Ìq'Á…HW Yða©—.SŸL¹råʧB~θ9 1]ºrÁ‚å*W¯^½„뵦@"Hì †I&V•,µšƒ©‰¸ èpc,J1HÜ2F‚þ+&‚CvÌW/]¹\:õ©Ÿ2Ô¨Q‹6ÍÙ±cÂzåêu,Z¶l£H@`ÑdJ$9”È©¢©U«9š6 ùÂàžA‡i•"‘•*`nHÐØ´hÓë•Ë•+]¹L5Ä›7oܲEs&L—®^˸s«K†"LØÙƒCÒ(=L˜(Á#…ž:{råÊ,X°`ÁÊ¥KW/_¾|‹Æ-‰r¥«—®^¾ˆ¹êEÌW/aĈ[[¹rܨõê­S“,LVxaD€ì$I4鯆5cÚ0Á$&Y¢¤‹2dÈœ9fŠS£O°tùR†ŒÚ1dΜEËvíZ¶eÇœ\†ŒX©G¢tõú£¥‹$›RD B’%¨®ø€ÃäP›0!Ô\Hþ€„š,®|;æ,Z´lÙˆ¹âÔ¨”.bήq£-Z´kܼy»v,W)Q¢ ´ˆ“«N‚F°£B‚BÔð"ȦD‡Ò¤³ä‚A’¬q%Œ1bÄ–9‹íX/SŸLõ"-·lÔ¨eãæ­\¶c½:-$èAŒ8¹òµÈŽ %%( @€0°¨ƒ'Ëš&Yl©"¥cÇ–![vl™3dLjõÊUÊ”®cήeË–-7oå¸!ƒõ©Ð? ZÔÉ•®eÈÒZ±BA @@4‘äŒQ²ÁÇŽ&"!‹í²cÇ–9CFŒ˜°^¹šÒuìþ·l×®Q‹æÌÙ2]Ÿ ùñ¨P#F\=sæ,š.(HF$€ €À`§„€%hôÀ‘IرhΖ󥫱cÇŽ![F¬—®^ȲK·ìØ1_ÂzõrÅIП?‚qjd µhÑœi£åbD pÈ¡5i´$ár…D”ˆE‹¶Œ˜¯^ºréÒÕ똳hÑ–![æ,Û¹t¾`™Ê%Œ˜0W2$ A…`s-Z6t¬ŒŒ€ à‚…(HÔ†Œ&$ëÙµkÑž ó%¬W/]¹z‹¦·lÑœ]ófJ¬cΜ;Uê#@~Δ9㇓+]þÂŽE;ç”" XØpC€€ r0ÉR"ÅaÝK—.ݹhË–9s¶L˜®^Ç¢q+WN[´g×\õzv-Ú²cËz•*ä¦L*eÎü)Äé“/jåÒÑ›ÖfJš?pX à@%cƸ¡†=zøðÑKWŽ[6nÙ–õÒ¥kÙ5mÚ²]»–MزkÑœEËæ¬×'AgÊ”¡B¥ÌAt!‹F-[ºwîZ ¹ã‚ƒ6Ø@BºwïèÑ{G>zòÒSWîZ4b½„sæÌµkÜŽEËv­œ7j¾\1ús¦ *eÎüYTJ—0_Ç¢qC—ÎݸT3B\À@…£`ߨþ±cÇîÝ»wïÞáÃGOž}ôÒeƒÅi‘*T¨˜ñó§Ð#N>‰úôÉT/bÈœEËvνwïÞ½{÷îÝ»wïÞ½sÇŽ;vïÞ½{G>|øðé£þG=zîÒé£'Û1Xœ¡BÅÌ?‚1bÔˆ'Nœ:•ÒÕ똳lçÜÑ£÷îÝ;zôÞÑ{GïÝ»wïÞ±cÇŽÝ»wïÞÅÇo>|øèÑ£WO>yåŽå*ÅèÀ3eΜ9ãGP!AbÔè§O¦rs¦-=zôèÑ£GÞ»wôè½{÷îÝ»wïÞ½{÷îÝ»wñðáǾzôêÑ£§M—)Qœ ý9cÆ›3~þüñãÇ›?…q媗3nçäÑ£G=zôèÑ£GÞ»wïÞ½‹ïÝ»wïÞ½{ï>|øðáÇOŸ>g¹L™úÄH3fΜ9ãÇ>›3gΜq¨'Sºœ“'=zôèÑ£G=zôèÑ{÷îÝ»xïÞ½{÷.^¼xïâÅÇß>|úôé !ù€ ,Dd‡ !%(!!#""%%%&"")%%*&&-##-)).**+&&2))1--2--6**6..9--;11611422922=55>55:88>//@66A44C55K99E==F::B>>I>>M99K==S==[??i==cAAFAAJAAMEEMIIOBBQEEREEUBBVEE\JJVKKTJJYMMZLL]QQ^RR\VVZDDeAAnBBoEEjNNbNNeJJcKKkCCpFFrHHsIIuMMwNNuMMqNNxQQaUUbVVfRReVVjUUnRRlYYe[[dYYjZZn]]j^^nRRqUUrVVuQQuQQzSS|VV}UUyYYrYYv^^q]]vZZyXX^^z^^}bbm``gaaqbbueesaazbb}ffzee~jjvjjzjj~nn}mmyrr}ppwZZ]]ƒ^^ƒ__„bb‡aa…ffee†ff‰ii‚jj…mm‚nn…iiŠjjŒmmŽnnŠooqq†ttƒrr‰vvŠvvrrŽzz„yy}}Ž{{Šss’qq‘tt“vv•uu”xx–zz—~~‘||“{{˜||™~~š‚‚ŠŠŒ‚‚’‚‚•……•……“š‚‚††™……Ÿ††ž‰‰–ŠŠ“ŠŠ™šŒŒ‘‘ž””œ‡‡ ŠŠ£‰‰¡ŽŽ¥¢‘‘§••£““¨––«••ª——¬šš¤šš­œœ¯žž¯™™ªžž°¢¢­ªªª¡¡²¢¢²££´¥¥´¦¦¶¥¥³©©·¯¯°ªª¸©©¸®®»­­º¯¯¼««½³³¶°°¼³³¾²²½´´¿¶¶¾±±º¿¿¿¼¼¾¹¹¾¶¶ÀµµÀ¹¹Â½½Â¾¾Å»»Ä¸¸ÌÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÆÆÉÇÇÊÉÉËÉÉÊÊÊÌÌÌÍÏÏßÓÓÖÝÝèääïññõþO½:%ê"DˆjS†Ì'L–!B„"Dˆ!B„"Dˆ!²ÄI G§x)öëÓ£O®~ûÅk¯_¾„[vÍ›9sæÌ™3gR§<9B„¡@mÈHq„ "Dˆ!B„"Dˆ!B„"Dˆ8‘¨‘(Oœ!ŠtJ˜3dÂ~ýòåK˜2h×¼yóæÍ›9tè~úôÉÓ£Fˆ!BÈ )Oœ0aB„"Dˆ!B„"Dˆ!B„È&QžH!c¦™@¢”Is†L˜0_¿„[&-›6oÞÀ¡C‡Ž×+Q¢>qrÔQ£Fˆ™‘òä‰&L˜þ!B„"Dˆ!B„"Dˆ,YÂ$Š'NœH t 5€Òœ&ìׯbˤeóæÍœ9tèн:UJ”(N‘5rä¨"@Rœ8q„ &Dˆ!B„"Dˆ!B„&L˜0‰ÂÄÉ3„M£FÍ™0a„ C&íZ6oæÌ™3gÝ®W§J‰úÄ)’£FŽ! Tæ‰'L˜,aB„"Dˆ!B„‘0^aÂ$Š'Nž˜qÄK™4jÒœ!S¶L™2g×¼ygœ9pÞ¼ ãëT©Ož>qâôÈ"B€Ê‘â„ “%Kˆ!B„"&2Lp€ @ƒ -Œ8qþâ„ ¢WʤQ£FMš³eÊ–9ƒvM›7sà¼yËvíÚ2eÂx½:UꔫS¢8=jD3RœDa²„"Dˆˆ¹a@ PàA…O¤:%LZ7oÙ¨MC&LØ2hФ]Ë–-[6jΖ-“æL™0^¯bñâÅë•(NŽ Ô†Ì'L–!B„‰Et @PÀC),è¸ðAI OÀœ]Ë–Mš3dË–-[¦l4iÒœ9[¦LÙ²lÒœ)Æ‹×/aÂx½âä¡@mÈ8‰Â„ "LžD‰‚£ppYQ@Á ;P¬!ôIµlÙ®Q»¦-›3eÅœI“&Íþ²eΤIó¦-›´e„)[¶LÙ¯SŸ89"¨Œ'Nš09sæIIì°°¢KsVd(Ð…0B§œuóæÍ›7sè¼I[æLš4gΜ9“–-Û5pæÀe“Í™3i×®9ö /QdÆ ™6äÌÙc£ ° aT)%“2Ë“4oàÀuóæíÚ5iÒ 9C¦lÙ2hײQ“æ œ9pÞ®]»–M›·lפ9C&ì—(N²ÄG—Hì™"'¥J™íñ€"'Q”,Ëæ­[6jÒœ9ƒ¦L˜2aÅ–-s&M5jÞ¼3‡Î[6mÞ´eËæÍ8þoÞ²!S†Œ©J; ¨@qA«Q•)ÙSI=`õ‘«!dÙ²Q“æL˜0a¿xñâõ«˜²eΤ]»æÍ8sèÌyç-[6oæÐ­[·n¸lÎ UÚÄ—_¸dÚ4 Œ<‹Tͱà㎗`Êò@jä-›4dÂx½:uªÔ§S»xýRЙ4i×¼3gΜ9sèÐy—nÝ»zõêÕ[ÎU¦´è¹³c’¦Q¬X­Á±§•ª=> ùB‡9l\e“&ìU©Oœ8qâĉS©]ÅœI»–M›7sæÌ™C‡:tïæÕǾzæð™ žw”Ü`d¨Ò¨ZnþZÐQe 4­üð9’ä 2e¼N‰úäÉÓ'Nœ>½úµLš7oÞ²ióæÍ8pàÌ¡{÷®^=|øðá«ŒŽš9_”(ITÇŠbFšdK‰Œ=C*ÀÒÅ;JÆ úÅ‹W¬X¯bí:uêÕ/eÒ¼óîZ¶lÙ¼yóæ ݺwïêÕ«W>nt¸Ü!Á…S*i²’ˆQ%XµÐhi¡ÁD‰;:®Ä¸êG–3¼Š &L˜2a¿~Síš7sèÖ]£v-[6oÞ¼™K·îÝ»wóêÕÃWëF—;|0êa£G¦USÐXZC V%<-H|ø!II ,®VX‰rÉ™3iÒ–!þsmÙ2hÒ´¡[÷®^¶kÙºuóæÍ8sèÖ½[÷nÝ;n•¦0š4#Ä•*±Â£Ã…¥Dª*åÈñ€D‹L\° qAé&lœeóæíÚµlÚ®ióÝ»zõÞeËæÍ›7oàÀ‡ݺuèÌ™ FEÍ¢Ir&pQãC#I‹lH•iJ…¬ 1„dÎWä1¢$Ó»uïæ­[‡ݺuïæÕ«÷î7oÙ¼™C‡9tèЭK.3:S¦¨‘c¡F¥ uФd'Œ¤.zº(`‹%Jð$"b¤…=:”$y—/_>|øêÕ{÷®^½zñâ½ËvíZ6oèС3gþ]ºuè²Ió‚( ¤@…bÍFXttyP @ƒzF%QæV&-”¸p3%Š’\øðáÇ_½xñâÅ‹/^¼kÒ¤]ÓæÍœ9sàÀ™C.›4.@ð@ÂB/•öôØ£AªøðªÒvXáÐQ …Ž08”/^¼xîܽs÷.^»xñܹóvMš3eÊœI»¦-ÛµlÙ²ëÁA;xÈd —Š P¥(€ã†ªZz*%y“iÒ$&  sƒÅÜܹ7nÜ8wîܹsçλuæ²ISÆë•+^ S†Ì™´Z?€ @àÁ[SXáR¥!Fþ°-7º0ZĨʑLdMš‚ VnÀ¡׸qãÆ7nœ;wîܽ‹‡\6iË~‰âô©”¨S±~ »“â ÜÐD¥V+JšTÊä£#I“öT¢d‡#\)A’$Ì (øŒ7nܸqîܹ‹/^¼zèÊy˶LØ®O¢8qâô©Ô¥ @Pà€…>l±ªDiÎ*j¹q“O0JcÄZqG‘%LS®ü°À`·qãÆçλxñâÕ«‡.»tݤ)ûuêQ#N¢Dáéaƒ‚ 4ØÂW-=~ìÔÁs¤UµláÊtIÌ(J•$Á£ þ R7nܸqݹs/^¼xõ²Qó†.¸lÊx‰B„ÈÑ#+>daP @prábÅ =s(©ZD‹¦V°ØY²T)‘J~Rô !ƒ‚‡VãÆçλxñâÅ‹‡Oš³ièÞ¥ë6M™²X‘"$c‡ @°%—­L™6m¡„ÑœE£&13ì_¿_–T±t‹J•1bt¸5nܸqîÜÅ‹‡¯^<|ø¨eC/Þ;pÓ” öêS#*d€(P^lÙÑ„ëÖ­L‹FÑei3~ÔüùÛ7 V%K‰͹"¢CƒMãÆçÎ]¼zøðáÇš·tñâþ¥Ë¶ì×.^¼DAÚQ @0@g+V¶¼³ÅÊR¥LShQ¨aŽš,€oFI‰R¥;rPt„Û¸qîܹ‹‡>|øð £Ž[¹nÒ– Ûkש52 (P@À´dbEË«QªleEiBÐ2f £QŠÒŒÊÄÇŠŠ¸çλxøðáǯW¼xñ¦L™0^±^:²8€@ žV´rÙ R)Ó*Jr.4ø‚‚‡8Á21Jä¦ \šv¤!‚Ö¸qãܹ‹‡>|øðízõêT©W¿„ ûµ‹×.Y)nLJ! @ªT²þdk¬™V­â2áF:4pà‡U"I2Òܹ¥ ˆ 5‚Œ7nœ»xñâÉÇ߯_¿v¹zõK˜°_¿„ “3Ë– (P` @U¸X±¢Ue•"<`РÁ ôXJdgŽ7ŒaÀDˆqãÆs/^¼xñâáöëׯ]±N*uj—/X@n ¡@ ÌÉÄ*“$[‰ñ˜qá‡Ô"“!<†°°f L¨6nÜ8wîÜÅ‹/ž¼_»b½:uêÓ£FŽ<íZuŠ* 4hP@L–äÔÑôÆÍ…$&\0ÄÅA•tXáÁcGþÌ0J®ÜéÐÀ]ãÆçÎ]¼xñäá;Uª”(Q¢>=B„èÑ)S@PQ! ƒ L©ÔÅÁC†@ (P€Á7‰Dh‡’Cn ˜£Ã "\HåÎ;wíÚÅ‹/>Q¢J•% à'NŽqå È*(pàÀ‰¬@¸€¤‚fȈ¡ Èœ;šà ãFL kX¬¹0Á‚ ©ÜÅ‹Ož<|øðáÃÇé“(Q¢D‰õéS©S¿´€ØqAÀ˜"†Í…(A-&Ùªt+“0bÀ(É‚GÇœ P€à§þ|ˆ9zÄÉÓ§O¢D•*e ÍP $vÞ°(P @3 0pà EŸEšV± “fL%Js²t¹paE¨âÅ“‡¾|øðáÃGˆ!Bˆ9rôˆ“'N²Ô0˜A€ X`ñ†Ò 4HÒ¥A R4øÒ%“˜4?ÀŒ2ô†M 7øÐO¼xøðáÇ>|ø"„ˆ"Dˆ9z Ñ [RÈb¢@,¹QS @Zh4`À€SP0r“h†Š lp0Jôà‚ (üÄ«W¯>|õðåÇP @„"Dˆ!D(uÂã†+þ °  !ƒƒ!0(pƒžD”d„H‘…70ˆðC>|õêáÇ_>}ø (P B„ (‘ˆn  @w2U(!B0h vÌȱf‚2Tȱ³‚¶à«‡>|øðåÓ§ @ 3fØÈèP@€€ @áæÖ üÐ@€‹~8˜©^²¤p@¡Ã -·v0h€âJzõðÕ«‡>|úô™1c¦ 3fÌ!C†Œ @ð°æCjæôA€ `PàË¢ •ôþááeR‡@ÐìÙQ)Ä©‡>|øòéÓ§OŸ2R¤H‘"åÉ“'O¤”qA[•t(À#ô@ÀlTò’)Mrj…‘(S"n0 ñEŸuïÞÕ«W¯Þ¼uëæ9qâÄI'Nœ8qòäɈ>@€È5)‚@8p9 `€@AŸ>tÖ¤Q‡Ö/ªXÕÒ«àlúåìš6sèÖ“v &L˜0a„I'Nœ” €œ }P @(ö( ÂZðørÎ"¬0b4jÒ¤:_.¤"CpjؘäÈ‘#N¥b “víš4&L˜0a„ &Nž1Q@K«<((P €¨t(€àATÆpª$‰)R°èdºP ¼LèqGFƒJBôH¯eרMc²„ &Qš8qBÆ  T­"¡%C„x¡@ ,.xȤ*Q­`‰  R Τ@p WDéˆ!BŽJ“–-›7&L2‰âÄÉ)d"täþ&U¸hù @€€7.PBG†‹2ÙZµŒ($i‘ÓàB °qd x=zäˆÓ)`ȤI£æÄ‰2dÌ´ˆ"GH ðQì(Aë‚7®\˜!‰.>@˜§9u=PP ]d¤@aˆ§O¢JzÅë0^dÌ DQ#GžNÅzŨ@IšFqA `@ «vÀQ%>­T“€ˆI¦è©3jUŽ "àx0§Ã•zÅë×®W¢qâˆ!DŽEâtê×2e‹ ÀITI" €` ˆ.k4IÒ¤ÊÖ(þ$~Ñêƒ` «V¶ZÙ9be ÑôP3#/a¿býâÅ‹S @€"„èÑ£GœNñ V/‰FÑÊ󠄇@2ùApƒÎ"I˜F1ÓRĨ.AHde W%J3ެA€âÊ*\bí*Õ¢R§8"#"D"qú$êÓ©S¢J5ÀTi•­I ˆÐŠU&-_hQÅg”-z¬’aF&M¬heªÓ‹›(Ô`ùáåÓ§@€Ì!ÄéQ›'L8qzĉӧRŸ8qâĉ Uš´ÌXT B´j±U¥Á…M“XÑj€ÀÇ-J£,YEK•¡5 eš‚  š]þµ!C† 3•yâ„Ó§OŸD‰õéÓ§OŸ"ýÈÄ… ÌA ŠU-Zn"4𳨀 4èK›)E”Fr#¥QjÈØã¡‹)RȘDˆP 3RœpúTêÔ©S§D}âäéÓ#+‰ @Teje+‰Zh©ªá€BŠ\)rSI-E:êdJ„GÅ=*ìH!cÆL B2#%Š£O¯vízuêÓ£GŽ=2´æ  ( `Ò¨V´®„U%T .0èàÊ!+Œ$ѲDIÕ*J”¦Ôù2f ¨ 2N˜8õêÕ«Sœ!"þDˆP#NW(pB&©ZE«VUbÕÀ€©“‰‘*1†Ødú¢bÊIÁÌHy"…Œ2R¤Hyâ$ §R¥D}℈!Bˆ=úô£@;hhi @V£F1ÒaÍ+J·D0@ ˜+1¢~eª„¥GF]ú0à¢Ê’'OžHyâĉ'Nœ0%J”'N‘5rä(Ò§OŸ ¸ËÇ haµj”".‰\¥É‹FÔ(Û†š©<*hX¹“H[– 9y"… )Ož}úô©‘‚™~X ¤UªFÚ”èþ›ZÁâ@ppaS×*ù ¢Ã¤*’¾ÈÀeª‘2eÚÔÆŒ2dÈ‘@à†  ¦°R5jÔ*M®F2ÆŒ  䤡d ‚ R:&ô‘“i _¿ „È‘#Gˆ"S  6Â~Å:UêÓ'Q¥N½zõ*V¬Et¼¹$ÈM´V­b5É £UÁF¡qà +}‚ hÀ¥ÎM3¸à!ÅLÙ®S¢D¹zuê'B€Ì˜13 ™°_¿bÅڋׯ_À„ û%À žDi4Ù“©V­)p¸|a$©  xpe‚_ªÈ¹Åþ9¸)C† Ø/^±^:õ  2Ô¨Q“æÌ™2eÂ~íâ%ÌÙµlp¬(‚ 6jjÕé‚Ç$7{ªTJÔc %Ux.ô˜Ôc…$"¨ð0iÚ4iÓ ûëÕ«]»N= äÍ8pÞ²I[&Œ¯_Ȳ¡[·é†š5Cêd©£ zTÀ჋ zõ*V¬]±bíâÅ‹0a€ ƒ¦mݼzõÖ­{gé!aætþÉ0@€2¬ Ñ K% °ÐâÂŽ.{ÙaÔ˜0eÊ” ãUJ”«X»bÅâÅëש]¿~ñâõë—0gÞЭ[·n7iÒÒ°@ã†Ï,(xP@… W¤Q"@@xÔta¤̪U²€)L˜°]¢>•zÅ‹¯_„½úUì×/aÊ„ sF œ9sà¨ýú%ÍT J2±€@@y¼hùpÅP˜$-ü`ÁÅ C£(Q¢Ã«Ø2dÈœ9vŠÓ#O¯x¶Œš²eΜIó–íZ6gÈœt†LØ)N¢vý*t‰ a/z¸àÉ’dˆ¡þ$Q5®„)CæLš´lÙ„½âô¨/aβy»& š´lÞÀ»&,V)Q¢"Ô(’+QnZH¸P.옴)Ó"#JÖA€ A?°pÑLX1aÊ–9“&MÙ¯SŸ^ýR&-¸lÔ¤eóÎÜ5e¿>9"D( BŽ8É  0@À“Tá‚ÇŽ*<`åÎaÊ-[Vl™3eÊ„ýÚUê/aÒ¨eË–-›7pæ¼!{Å Q @€jäé¯eËØ(Éñ À ðP)Qš4aìháÀ‰X, “&Í2eË–9C&L˜°_¯žŠ¥ìZþ6o×®Q“ælÙ2^ŸÑ#G^9sæL/"&4 ¡€äˆaÄÈš5€€B 0gΖ)ÆëW1eÊ-[&ì¯_ȼ¡[·L™2a¿€ýzõˆP @„EztJ™4iÒœy‹å¢„" p£R7o¬|AP 7ˆLI“†L°_¼vñâõK™3iÒ–!C&ͺuÀbÚL™°SŽ!"D(P Bˆv)ƒ&Í™·t®ŒDYQ‚ 4¹Ã :7 ”KÚµkÒœ&ìׯ_¼x)ƒ¦Í›·lפ]wJÔ+eΠ ;Uꔣ@€Ê1ˆÓ+^þ”]C÷îW%(ºhx `†š1sºÀ‰PÀÂ`ß¡C·n:jΜ9ƒ¶ì×®_Ê®y3gN4gÔbýrFMÚ²eË~•Bd†Œ)dÌ"ÄI”°læÖÕ›&æˆ .`AgѤI’°¡†¯^½zøðÕ[Î[6oÙ– ûÅkÙ5mÞ²]»vMØ2jÔ¤I»æì×'BfÈ‘"…ŒBœx)“&-Ûºzéü€°0Áƒ”(1rfUºxñðÕ‹W>|ïÖ¡CgîÚ2aÀ„ [MÚµkÚ”Q»vͺkÂ^5 d†Œ2dÌjtŠ—0`ʤ[÷î]¹T[:4(€… ¤_ãÜþ¹‹/^¼xñâÕÃWoÞ¼yëÐI[æLš3gÒ®]»æ-›7pèÖ™ûuêQ 3dÈ1ˆÐ£O§^Š% Ù5€àÌ¥{/^‰úÄIÔ/aÈœQËî]½xñâÅ‹/^¼xñâÅ‹×Î;wñâÅ‹¯>|øðá«þW¯^½zïÖá«7Ï›²]œ™‘B†Œ™6„9rôˆ“'N‘<•âõK™³læÞÕ«/^¼xñâÅ‹/^¼xñÚ¹k×Î]»xñâÅ“‡>|øêÕ«Wï]½yæ”Å*å(@3d̘1ˆ"B!rôè§O§v)[æm]½zõêÕ«W¯^¼xñêÅ‹/^¼xíâ½k/^¼xñðáǾzõêÕ«—×)Qœ2S¦M3€Ô¦M›@ˆq*õê4oèæÕ«W¯^½zõêÕ‹W¯^¼xñâÅ‹/^¼xñâÅ‹/>|øðáÇ>g±Núôˆ 3e̘1>P3f̘i§S¿ ™›7o^½zõêÕ«W¯^½zõêÕ‹/^¼xñâÅ‹/^¼xñâÅÇ>|øòå !ù€ ,Dd‡  "% #""###$!!&%%&"")%%*&&-"",)).**,&&2))1**6--2..5..9--<11666722922=66>55:99=//B66A44C99B::E==F<>M==J22J<>eAAJBBMEENDDK@@FBBQEEREEUEE[IIUKKSJJZNN]LL[QQ^SS\TTYDDdAAnBBoEElLLcMMlCCpGGsEEqHHsJJuNNqMMwOOuNNxRRaQQeVVbUUeRRiVViTTmYYf[[dZZjZZn]]m]]jVVuTTrQQzSS|VV~VVyYYv^^q[[tXX]]yZZzbbmjjn``faarbbveetbbybb}eezff~jjviizjj~nn~mmyrr|{{ZZ]]ƒ__„bb†dd‚ff‰ccˆjj‚mm‚nn…jj…ii‹kkiiŒmmŽmm‰ooqq‚qq†uu„rr‰vvŠvvŒrrŽzz†yyŠzzŽ~~Ž}}Šss’qq‘tt“vv•uu”yy–zz—~~‘{{’{{˜||™š}}šƒ’……–ƒƒ”š‚‚……Ÿ††Ÿ……™‰‰–‰‰™šŽŽŠŠž’’‘‘”‡‡ ‹‹£‰‰¡¢ŽŽ¥‹‹¥‘‘§••¢’’¨––«••©——¬šš¤šš­œœ¯žž¯šš«žž°œœ´££®­­¯¡¡²¢¢²££´¥¥´¦¦µ¤¤³©©·ªª´««¹©©¸®®»­­º¯¯¼ªª¼°°¼²²¾´´¿¶¶¾²²º¿¿¿¼¼¾ºº¼°°³··ÀµµÀ¹¹Â½½Â¾¾ÅººÄ½½ÌÂÂÃÁÁÁÂÂÆÄÄÅÅÅÇÆÆÇÃÃÈÅÅÉÇÇÈÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÍËËÚëëðþO¹:ª!B„2S¦Œ”'M˜ A‚ $H A‚ $H AÂä E§€) Ö+”¢O®vûµ Ö®_¿€[†­›9sæÌ}3g®T¨P¡8-"DH @fÊPyÒ¤ $H A‚ $H A‚ $H<)³FQ)O)âtŠØ3dÂ~ýú رgغ}3×­›9sè~òä‰S#E„"ÈL*Rž4a‚ $H A‚ $H A‚ &M¤”)cf@¡”M{†Œ°_¿€[6 [·nݾ¡C‡n—«P¡>qZ¤ˆ"E„™¡"EÊ“&Mšþ A‚ $H A‚ $H iҤɓ'OžPùs Y5€Õž)ì×/b˦aëfΜ9tèй:U*Ô'N)Z´H¡?TžqâÔ¨‘"AÊ”‘ò¤I$H A‚ ’#04HhÀ€ 2’\„ȀŒ O¿žaÓ¦mÚ3dË–-[vlY´iÓž=[†ì2lÓžûµk0bÂv¹â´ˆ!@kÊÒ ªLœ8nšÙj!ÇÒeÚ´a›¶ì1b¿víÒõ‹Ø±eϦaÃÖ­[7sèÌuûöM›¶næÐ¥S§N]7mÕn}Q!D i2áÙ0Ò¡:-((Ñã#KJ2µÔMÛ4dÂv¹:u*T¨S°vý:ðÙ´iغ}3gΜ9sèÐ}û†NÝ»yôèÑSgî™— '†œÈ2f”- lÀ)Í %:.ù8áEÇGd`i›FÌU©Oœ85âôéS(]ÄžMÓ¦­[7sæÌ™3‡ºtïæÑ»wOß=zßòTÁBÉ+h&±š° Avþ ÅpaDÈMÝÒtØsfÌ1b»N…úôéÓ'Nœ>¹ú…¬Z·oÝ´uëÖíÛ·oßЩS÷޽{÷ôÝ£7jÈMw¾°$Q¥* 4Hð%Ë‚ w²ìÀ‚)“‹QÄLúµk—.]°`é:åJׯcÓºuëöM›6mÚºuëÖÍœ:uïèÑ£GïÞ½ot°È!E' ,=‘²3$—4J2ˆÐ@§Ê™Fµ$ 6½Ž#FŒX1b¿~;ö [·oèÔa«†M[·nݾ™C§îÝ»wóèÑ»7jN$/‰¼lˆ´ M$VwZÍ‘T  †áX° ¥4ŒDcèÙ³iÑ!þ{öìØ²hÓ²¡S÷Žž6lÚºuëÖíÛ7tèÔ©S§NÝ»o`TDˆV˜ØàÐdÈ«LA$`Pb„ ‡ª rÔBÉ‘@iëÖM6mÙ°iëfÝ;zôÞiëÖ­Û·oß¾}û†:uèÌ™«e#Å!6Y¬`±EéŽVÁjIJ¡Â4K²0`ÀFCQž$1¢ƒÖ»wóæ©S‡n:uïæÑ£÷î]·nÚº™C‡9sèЩC÷MÛ4.8øà2¦"\´2Dsˆ$V@bóå‹PØhÁÅP”$2Tdy§Oß>}ôèÑ{÷޽xñâÅÓ¦ ›¶oèС3gþ]:uè´M“ÅaÁ‚xÒèX¢©J86É'¢;wâ0 B #(Éê D‰ c÷îÝ»wï½xñâÅ‹/Þ;lÓ¦aÓÖÍœ9sß¾™C÷MÛ´ @ÈðR•š¸XH± Å/”2㣆*Ä´ÓbO@t@p/^¼xîâ½s÷.¼xñܹû†mÚ³cÈžUÓ¦M6mÚ´5[ÑÀ€fÑÚ1 ¼PÊdä¢.+ 0ÐBÌ™3[äpè D‡å܉'Nœ8wîܹsçÎ;uæ´M+¶Ë•«]Â;†ìÙ4L ,ðფYv(thFÈþ$VltꃃÁ‚ Ù‚Æ %<²œÈ°a–8qâĉ'Î;wîܹ‹‡î›¶iË~…âô©T¨R°zÃ!Ä ›$AÒÉ‹’‡aÒéМ900b‡Š,_VÑAE‡ 6ˆ'Nœ8qîܹ‹/^F0HcˆÍ !>˜pÁ8qâܹ‹GïÞ½{ùîÁråêT(W¿„ë¥k—®9 0 aCŽ;¬p…Xþ0ÂG 4ð± ƒ`v(S4_ìäá±"„Šˆ'Nœ»xñâÕ«wï^¯_¿`rõ‹˜°]¿ˆó±€>†¬Åj@BR\X°@È‚~@xðàÁ…Q–He a…Í,6>lháqâĉs/^¼xõêÕöëW¯]°\•:ujׯ^ ø`@È*š&éPÁgCƒ ,hpEƒÜ5jR% @Ø|Á²ƒDŠ ”'Nœ8wîÜÁ‹¯^½_º`¹ruêÓ"B‹8ÁºeC VÔð‘ L X4@``Á‚ >\ØpáÁV´EÂþÍ:J&XÀàbÃgâĉ'μxõêÝsUêT¨P¡>5"D¨Ñ©Q,00`„”v4@€`Á,XX€ Á ¡Ä Q¦#Ðdb…#F<À%Î;wîÜÅ»WïÞ½P¡N•  à'N‹q 5jA ,@€ ‡ 4Èc‚ 4€0¡„<“†Ü±“Ë+>,lÈ aÁŽªÜÅ‹/^½{÷îÝ»ÇéS¨P¥B…úôéS©S‘6À€Ð@X¡/ Œ ñ`„!X˜´*ÏŠ 6&EùRb(¨€ð&^¼zõîå˧Oß¾þ{„-jĉ“§OŸB•*5  Àa ƒ H°À@ƒ$4€°`Á L‘FÀ‚#Ó56 LPÁˆ*oâÕ»wïÞ=}÷ôÝ»'H A„-ZÔˆÓ'O­6„À +ÐP0`À€ ¼Ð±3"È, dPÐOv‡H–4 \DqáY€ "ÔèÔ®eÚªMkÂ$I“&Mž<‘RÆÌŸaˆ°€ƒ#8вUkˆ„!Æp±’”¬WnViÂÀ€ì¨Ñ È.°!ˆ AN ›¦­[·&M6yòä‰*eþä"Ìþž<p0À¡.µfÙ`ƒ®>8dHÐ ¤>> ŒXa…/'zXaóá"Ž5Z´ˆ“+`ȦMÃöD •2eÌüùH¡EJ¸Ìª•€#0M°¡)Z>‚#aÀ@€ ,ˆHÚ“% œ#†, 4ÀRGУO¡Brµëׯ]eÌü$ˆ¢EœNÁrÇG&Z'` ÏŽ0«~ ÅØ¥ lð±âAš=†jÕR²ÀB%.B rqÁÍŠ Žrµ«—.W¡qâôG B‹5âtêײc‡|ÊT IÚqéÐ\Œi€Oþ&TҴʦL1 RÃa6Ó¸±qÖ.`¿`õÚµë ? "D¨Q£FœJíL– c¸°¸‘` «9$ì±`Î¥ ôI5aBˆH”&eªµê‹’Y=B´ÈBG7˜\Á ¥ˆ¡S§ý)#…P!B‹qúô)Ô©S¡<Ù˜S%,~kU€ ]ºÐÀ@*Z+ ÉĪV0\¬Ôx™…eˆÕòbë'@fʔĩÑ)MqjôˆÓ§PŸÑJuaA>*ÉrÔ¦’!L“&MJ4 Í!!@ÒÌá1GL™2fÖè™2Rš, åÊ•«Sœþ$¨"O Hà¬HÅ0$Ë­`8@€g"CmÄŠÔ採%l&eÂRc¦.µÊP‘B¥Œ™2T¨H‘òä §R§BqjDH A„5ú$À BÌJQe+H\ø DKȃtd¹3ˆÙ®JwÐ`ÑÃÆ,spÌaÅŠÔ“'R¤P‘òäÉ“'Ož4 U*”'N)Z´ˆÓ§OŸ‚@aÀÀA0±bUƒ‚9X} õ)Q;!$,È iÕ*V8¼ @° þA 6蘔HO¤nNl(AgŒH;ÆèiÅfL™2fÖüùóÇL™2eÊHqåÊU©Oœ8…*õéÓ§O¡\YÀ´‡BJ™±áã æ4xÐ` c£4m°1ɉzذ¹ãB’§QiýDhQ£FŠý)Sàš5Â~é:êÓ§P¥N¹råʬYØØÈ0G¥/njT©ÂÀM*,à'M˜°TRD›;tvàr%©’®S¡N:uê§B̬13í±]½`Á‚åjׯ_¿€ƒ¤f‰.@(± ;w"ÑÚs (4L€0ÁƤ¸äìàaçK˜þ7sJ)Cv X¯]»\:õ‰ÐŸ2ذU›öìÙ±cÂ~íÚEìYµjJ–9tÇH¥ ²ha%ÍJJèh±ƒÍ>âì¨BiYÀ¨Yr¨™4iÒûË•+]ºN5ô­Û·oß´U[l—®_Ⱥ¡{7iŒ6lŒ B t( C*,ƒz,ÈÂF…6c|˜Ð‡4sXi«6í²c»\rK¬RŸÔ¥C‡î›¶g¿`Úõ Y·tôˆYÂfŒ44èP {nå!–vd¹ÄŠ#xð °#Y·jÒž!#öËU¨O¥NÁ:U ¹oÝþª=S¶ Ö)W»ˆi{GïÝ™$†"õØâA‚„,0àf«H£v|£BG¤CA†°¤ÆB5¤UÓ6 °_»\…úÄÉS©S¡ªU«¶ìØ1`¿~ý"¶ Û:zôèyJ‚ˆŒ!% ¡Âs6±J…† @Æ ÉÂÆÍ0V2XIZ5lÓz¹*uÊ•«S¥J:UêØ±cÀˆ#&ŒØ±ißÔÍ£÷î]µ'mê(QX €&L‘ØDQ2F #@„€QAiˆ€!{6í™2Wœ>¹‚åÊ,]°\ÁÚµk×/`À€{¦ Ý$èÏA‹8¦¨GHpÑ«Ylä݃ƒ /¶À,ø’¥FžcÇ!;VlÙ³cLjý‚uêÔ®cÓªiÓ¦M[·oèº!ƒå© ? RäÉÕ®eÇ–Àà € .Ñ5æÎž<¾ØÀ‚H5"„(›6í²cÇ=CFŒ±_°žÒ…L›þ6mÚ°U›ölÙ²_ŸýùˆP£Eœ\={ölÚ-2  ¤YF–¨¹ãÅ€ 80ÐB ¬iÏûµë—°cÇŽ-[Fì×®_˺¡C·ì1a¿€ýrÕH @‚qjô騴iÓžusuDFBdÊEÌž:zdm0ÐÁ KNM›¶Œ°_»tíÚõëØ³iÓ–[MºwÀ`ÚŒ˜0W‹$ A„t{6-š6u®’ô’@ Vcİ¡ã#R ²H!ãj¶jÕžû%ìׯ^ºv›Ö­[7mÓžaûv*¬cÏžsu*Ô"@Ê”)ˆÓ©]þÂŽMC÷.X5(Ða§¦,)F @bЙ`ß¡C—NºjÑž={†L˜®_Ǧ}3g.Û´hØ\ýšVmÚ²eË~…"´¦ )eÌ*Ä)°iæÔÑk6‚‡4¨©5§Æ’¬±F=z÷îÑSg®›¶nÚ–ëõkÙ4mÝ´aÆMØ2lÕ¢MÃí—'AfÊ”‘B¥ŒAv!›6M›:zâÞ@@€Š1†ÄˆA¥UºxñèÑ‹ïÞ½{óÔ¡CgÛ2b¿„[ö,Z5lÚŽUÃVí›9lÀ\-d¦Œ”2eÌRtj—0`Ǧ}K§î¹T?Ht`sFL¢`äÜþ¹‹/^}ôÔeƒÅiÑ*R¨”Yˆ'OŸ>…úäéÔ/bÈžUÓöí½xñàÅ‹/^¼xñâÁ{Ï;wðâŋ޽{úîÝ£þG=zïÔé£7ïÛ1Xœ•¡R¦L™?‚-ZÔˆ“'Nœ8…Òõ Ù4mèÞÑ£/^¼xñâÅ‹/^Ï3f̘1ˆ§S¿ž¡{7=zôèÑ£G=zôèÑ‹¼xñàÁ‹/^¼xõêÕ»wïÞ½{÷ôé !ù€ ,Dd‡! "!%%( #""%$$&"")%%*&&-)).))+&&2**1--2..5++6..9--=11644711922=55:66=99>--A66A44D99B99E==F<>I>>M::I66K>>Q;;S>>b??iAAFAAJBBMEENFFJJJNBBQBBVFFRFFVFFYDD\JJRIIVMMVJJYJJ]MMZNN]PPVQQ^SS[\\_DDcAAnBBoDDjJJaMMbLLlCCpGGrDDqIIrIItKKuMMwOOtMMsOOxRRaUUbVVfRReTTkYYfZZdYYj^^j^^nYYnTTsQQzSS|VV~VVxZZrYYv]]r^^uXX^^z\\{bblddhbbueevbbqbbybb}eeyee~iiuii}mmzmm}iizrr}ZZ]]ƒ^^ƒ__„bb†dd‚ff‰ccˆjj‚mm‚nn…kk…ii‹jjŒiiŒmmŽnn‰ooqqqq†uu†uu‚rr‰vvŠuuŽ{{…yyŠyy}}}}Šqq‘ss’tt“vv•uu”yy–zz—~~‘}}”{{˜}}šŒ……ˆ’‚‚•……’††•š‚‚……Ÿ††ž††™‰‰–ŠŠ“ŠŠ™œ’’””—‡‡ ‹‹£‰‰¡¢ŽŽ¥‹‹¤‡‡©‘‘§””¢’’¨——«””©——¬››¤šš­¯žž®™™ªžž°¢¢§¡¡²££´¥¥´§§¶¦¦µ¥¥³©©·­­´ªª¹©©¸®®»­­º¯¯¼¦¦¹²²´±±»±±¼²²¾´´¿µµ¾··¹¿¿¿¼¼¿¹¹¼®®Â··ÀµµÀººÂ¾¾Å¼¼ÃººËÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÆÆÈÆÆÊÈÈÉÉÉËÊÊËÊÊÌÌÌÍÔÔßþU©R•j"Dˆ R“ +S¤0a„ &L˜0a„ &L˜0a"ÅÊ Gª†5;ÖKÔ#Rª~ ÖkV¯`Á†5s† \ºtéÒK—Δ©T©B=B„‘¡AjÐl±2e &L˜0a„ &L˜0a„ &L˜XA#È‘ªP¡!š¤ê´eņ ¬X³hØÀ©Kܸtë‚©"%*T$Gˆ!B4H š-X¬L‘„ &L˜0aÂD &L˜0a„‰”)S°lA£ŽšA©šMƒÖìØ°`Á‚ƒ6 8pàÆ­[·®—¬T¤H…zä‘#Dˆ©Ù‚‹•)S¦þ0a„ &L˜0a„ &L˜H‘2eŠ+V¬l¤j™5€Ó 5 6,X°cΦa—.]ºuëÖÉR¥Ê)Q“9zôÈ"A[¬X±2eÊ”)L˜0a„ &L˜0a„ “)S¦L±RÅ 5‘ŽQ³f Ú±aÇŠ[6 7péÖ¥K·n/YªR™"jÒ#G!„‹+U¦H™Â„ &L˜0a„ “3f0™2eŠ+V°¨yÔ«Ù´iÓ -kæ¬Y3hظK—.]ºqàÀë5KU*R¢H… )’#C‚Ò ÙbeŠ)R˜0a„‰'2.0@`…1ªX±þb% "YͦY³fm´eÍœA‹†¸tãÀÓ† ›³fÅzÉJ•J•,U¦BErdh5[¬L™"… &L˜Ä1„@ Lh @`„'V¶RulÚ7pÚ¬M[v옳hѦaÓ¦M›¶iМ9›­Ù0^²fõ ÖK–©P¤+S¤0aÂÄ ‹D(ÀES›'PX˜ðQ‡Í QàaÓ¦m´eΜ9s¶ÌÙ´iÓ 9[Ö¬™3mÓ¢5 Ö«×°cÃz© õ‘¡Aj¶X©2e &MvX@Áǧ4¹ÊäJÏ/X¸zŠDêØ4mÚ°MÃN´fÍœM›6 þÚ2gЦMÇMÛ4gÇŽ5s¶¬Y0U¤B=2$(Í,V¦X©²ÆO2ñÁÃ'X\¸;UKÔ¡Aª i¸tëÀMƒmÚ4hРA³¦M¶qéÆi›6 Z´iÖ¬A;Ö à,S‘¤F Gy† ¢U«VP¸D@RÇÇ©a}`0:¤ÉÔ4pãÆ}N¶iÓ¦A[ÖÌ™³hذY›n\ºqà´aæ8mÖ¦A[v,˜©P‘…Âå%@Š0u•锉E‹¾,ª¥hÁŽ_ŠDûœ6lÓ Eƒ†ìX³bÈœ9ƒ6mÚ4kàÀK·œ6pàÀiÓ8þpà°-kæl–.â„§…KÜáR¦…ICLè°ëKžeÚ´a›æ Ù±cÁzõê Y3gЦaÃܸtëÒ7N›6péÖµk×®Ý8mÐð @€B'E'4h°”© !¸ðˆ’¡F‹"¸ÒNÛ´eÅzÉ’¥*•)U²zkÚ´iØ´K—.]ºtëÖ·®]<|øðák—î—-Pxé´èÄJ¸\eºñå‰"7"´òÁ" *6m\i›vLV*R¡BM %ŠT*^È Mæ¸téÒ¥[·nݺvñêáË—/_>|늰¡R'EzNÀÑÅȘ"\þœ„(3Äß1)ÌàÙÁ†Ç²f½T™"%*”¨P¡HÉ Öl¸qà´ܸqàÒµkW¾|ùôéÇk#_ˆ(j“b"xœ ¡‚Í sÂì9¥‚Å"yˆô¬/^±fõRKV°fÓÀ7›6mÚÀ.]»vñðáÇ/_>mFØ(ªÄÆL™=&† Ò£ƒ}ð˜˜áFŸíyÅ z–i6mܬi—n]<|øâiÓ¸qéÒ·n]»vëÆ¥Û´  ›6fðhÊ#¦SCÈÔùsj‘,X€b.F?šh¸`äU»vñâµk·n]»vñêáÃ/8nÚÀ[·n]ºuëØµc7NÛ4 ƬÙQ)O%FFˆÄ…‚ÀNn¸è €`A„Œ¬ZÖlÇ P”‘§O_?}øðዯ>|òäÉÓ¦ ›6péÖ­K—þn»vë´Q£´`’5Cظʅ« <"îdZ$&Ä !yøäÉ“'OžàZLÁB0þPB<+W®\¹ráÁƒ'Ože4D˜aŒŽ "|8W®\9xðäÉ“'O^¾`¼fÉ’¥ŠT$GŽBñ²¤a*,YÀÀÄ"DXPˆ»_G¸D¡ áÁaÄ©±ˆþ…… .¼0ƒråÊ•ƒžS¦R¥2e ©P"…2U‡ðH…†9¹B!@ @2! °C E† 4p$9¢‚—,xÀâA„»àÉ“'O^¾|ùòåËŠ)S¦L™2EÊ”*Uv@… _2Y²eKC}ú 2”È"Dˆ=ŠJ&, ž=ÉÄ, @€ÀÐfq©£aQˆ.*jx࢒$B ñ°` #¼ÉÇ_>}ùòéÓ§ÏРA† 2dÈ"DŽL8±þ0ð´)D<ðÃæØO9RaT‹Ìƒ>Œ:í©¡¢ Ø ¡ã¾|øðéÓ—/_¿~ù 4hÐ C† 4ˆÀ]b@`A„fš4:DD›>:8US&S"ŒÜÐࡈ— žáË—/_¾|ùòõë×O Aƒ 4H5jÎP@ƒ Æä" X–Ì•"\Hº<èç‹E;ÊœjeÁBŠ(ìP 4$Â-|øòá×/_¾~ýú©Q£5jÔ AƒÍø‚`Á?¶„ °€@€ Ä’éÊ”ë’6–ö,þ‚2'OlÔbÃÏ›Oc"l—O_¾|ùòõëׯß4[¶lÙ² ,X¶lÀÀ(Øè´h~PA,±eàÜÐ`Ä)“™ æXÒ£Cƒ H>ñ¤GŒuíäáÇ_½víêY±bÅŠ+V¬X±‚K 0€ƒ'K}`P§bÉ’abĦ?«0Y*‚aÕ¢ElL°hÑ%B—9$‚  ·qëØ›† Ü”)S¦L™2eŠ+V¬ŒQ@ƒ¬d‰ƒ›Jxbµa”,™®N§N±"©.]—мZÄU nB Hb!Ä1ªfÍš5þ š6lØ´›2eŠ”)S¦L™bÅŠ•A °J>xñ¬ªOº’e:+S;°rå‚•+W§3k$¥ðB†’"’àòò¢P©d›†mÚ4)R¦L™2eÊ”)V¶ ÑqÀ‚Pppâ‰J˜rÙAÆÓœ5N™yELŽ_ZÕ9s†Q7ŠnPºáÁ ¥/ƒBÉT/gئA›"eÊ”)S¬XÁ‚F /:Hˆ@!ÀìÔ‰˜… |t%Y° ]”@€ÇŽ5‡*iè£ÈÆ› €¬‚2È!CT›N¸)SN©bÅ 4j J4ÆNþˆ Ñ€€èPZ@G„‡ 2#ƒ+…x’ç xyÁ%‚ ?;=zä(”¬aË MÃfË4hÔÀ$È¢G¢Z!€ !E”è ÌU’ (°Àê0Q*Ùj¥À‚(r2ñ¨QG‘^HÔà’'Q(RªT©’Õ+X°^hÔd‘£G¡TÍ’Ë™„à3ÆÁ…¨^Yˆ0aŽØàÒ –-]w(¸Ë .{ÌØ±3d…‡¥’ի׬Y¤B… %È!D"E ¥*˜³f`ÙA‚‚‰>(4pàÊσ’øÉaANþ¶81Zd §S–"x@ˆM&6uØèBiV°aÁfõêÕ+Ô Aƒ2„èQ¤H¡Tõ 6Ì•0tü,¨‘‰… 0PÝY0AÄ?", Ó†Sž=Œ`Í9ñ£…/^µqóS ;œPÍJå"Sª" B³‘!D"…"eÊ”*U¦DY ãT 1…`àå˪øÐÉ5gÁƒ?k,ÉÉôª’†‹¾dàAÍ©9_¥ÀÕI”¨ApР1$ê,SB…Š4)©T¦H… *Tˆ <ù ¤‹Œ ÄŠ@c!žÜèt(Ï¢Nžsª’AòH ‘ÇVbx þÁAƒf 8‚à¤Ùb%)R¤H™2eŠ)R¤Bµ Õ)!vŠœI˜pDX@Fƒ€¨eòd % —^½êÂL5uJÌ–-hШdÈ!5[¬„2¥J•*UªR‘ %ŠT$(BœªeÁŽŽ °4Á‚…  éÃ(Ž¢VžpÁ²c V'F)j€©ƒBHÀlA£FÍ Cˆ R³eÊ#S²xñš¥ŠT¤G‘EbC@BX(‚9À#,XXPÀ„—N°xåa³'“&O¯Nµ’‘.|¸„È& 4j 4H4X¦<2%K–,U¡!Bþd(‘#M„ȤÁDˆ2P‘aB„0p²Õ*V$EŠ2)b“É,EzTxaS«‰!ªlÁ²4[¶lÁb¥J¨TªL‰šäÈ!CˆE"¥Àujl`á‰,ˆ°€@ ®0ÅÒÔ ¢3QÚt’óåO$6jÕ1ò…‡+X°lÁbÅŠ+V¬L1•ÊT¨P“9zô()R¤†p"DˆS@PD(°`A„Ü(ׯN‡È|Ñ1Ä“"!ÊÌyÐb—"EžXÁ² š-X°`ÁbÅÊSªR‘jR(R¤H‘"EÊŽB€édƒE<ˆáþA HŽàòSC 5<ñ ÐÅ ‹J\ä¸z£ã š-jà$H4hÐ`‘%KV*R¡D™2eŠ)S¦DqñBÀŽž7B±`Á‚"\"d•˜*,…XàÇŒfúð¸óFQŸ:\ t(R¤HŽ B£ 8ÂÍR•Š)S¦TÉ’%kÖ¬1u2é€Å €¬ˆð BBYðàÁZzyz…M¦•EbSdÌ,U¦LÅ’KU(DpÔÀQCmÙ±^½xÍâ%«W°`ÊsõæNN$¼‰ÐBO™\s",0 À…"d¨åÇ–'?ÚüÁGO™þ;e.5[Ölد^¼d©RE ‘ 4Ö¬Y› Z³fÅ‚ñêu 6kŠÀ,’£AŸjtÉt)„pð0Á—EG:U2ó Š1Fn„xƒ'5jÔ– 6K–,^¼RE2¸qà´MƒV¬W¯`ÎÀ¥k×+Ê“/}@é‚!#zpY‚"çK‹_2y ¡‡ › ˆ€©ÐÍ6Š8i³6 Ú²f¿d©Š5‹×,U¤Ú±[·nœ6hÁfÅâÕ«8vø¨­‘Sæ wŠd0 ¡'=!ê„É bOf2=c Ø¸ÓI×7kÔ -kL•)R¦dÍR•jÝ:sàþ¬9;öK–,Y½Ži‹‡/š8QbIâƒEØhu‡ÅE•ˆ´pÕ*0C¸´Ð`#„ Œ i»6­Ù°a½d™"ŠTªT¦¬Y³­Y³aÁ‚;¶ÌÚºzøð¡šÂ †,ˆ@@ǘ\”¢¸°0!›6œÆ„°Áå ”",Hኚ5mÓ‚©2¥J–,U¦L©J•ªY³fÃŽ5;VìX³iãÚáïž6-N, @A P¬h V&60v8‘EÎ ¸TârbŒ_†-ƒ6 Z³X¡HÅ’%KÖ,^³fÍâÕ+X°bÅŠƒÆm]=|õⵋWiI (pþ ±@N·lqѦ 2vÀpáCÎL˜€iرcÍšãeÊ”*Y¼fÍêÕ+X¬YÁ‚õ ,X1hàÖµk×n¸iÔ†t À ,  t‹S !ö,‰¥J•1ªSiL"³Š5;6ìX1^¦L¥’¬W¯`ÃŽÍ v¬X°bÍŽs6 \ºtà¬ë­h ¨H ;~>ñq¢M”;Ö°)“)S«VœV¬úÃ똳eË A;¦JT$R³z ;æÌZ³fË Yûf 6gÍ¢„æ¬XªI¦xõ"‚À –.ÍñCi %=K¢p <ÆØÊ…þGG†2½Šk6mÚ4mÚŽ© )U¯cа³6mÚ4màÆÃÖŒWªT¤Jô(”,S-†Hð€@G%J~<é‘%F€FBèHñd\u4¨p5ìØ±cÍœA›6­Y0U¤bk6M8mÖ¬i7.¶fÁH!2dH CB©*‡ 6‚˘?–¸´PÄÈ =:(hH‘¢žfÍš-sÖÌ´eÍŽ›eÊT¯fÓ°iÓ¦M¸qéÀ-“E Ñ A‚rDJV0hÍœ4 Å1[§9é“éÎ E ÐÁ%„  Ì›6 š3gÍœEkvìØ±`³ªâåL›þ6mذY› š³`¤ 4Q¤G‘dAƒmZ/.  ¨Óš&o8 3¡@ 5L @aȯiМ5+,X±fÍš9s†,X¯`ÍÀ­[ç¬Ù±aÆ“5É A†MФªÙ´iÓ ‹å„C€bEió¦Ò˜# P0Aa„1fM›æìX±`Áxñ V¬´iÓœ-s6MÛºvÁf©âìØ1Y‘!2dhÐ Cˆf5‹6-¸u³œœ@К*ŠØ ñaAˆ5oܰAƒË6lÓ  v¬W¯^¼z5›Æ 8mÖ¦aK§Ê”¬fР“•JÕ£A‚ÐlQ#h’¬^þÅšM[ïÕ‹$ ÙÃÉ ,ÀsŽ–cë­[×.ÞºiÓ¢Aƒ¶¬¯`ͦ©K—ŽÛ4hÓf£†mš3gË‚™BÍ–-hÔ BÊT0kéØáKƃG:‰ñP€hªÀ±–>|ùòák—œ6pÚœëÌÙ4nà¸a³†­˜3lØ¢MÃ-˜(CjРٲC“z5‹6M[;yåø`XÀ¢Í¡7DR°X‚Å|õÚ­k—›³fÁŠ!ƒ-š5lÜšMÆ-]:lÁd=¤Í–-hÔ r¤Š×°aͦc/Þ9VG|À£¦cæàþÁ“'Ož|úô鎝^¼xñÚµk·n>}øÚi› ‘ 4[¶¤3Q¤P¢H™"ÊT°cΠMÓ–.>yòäÉ“'Ož|ñÚéÃW\³Y¡ ©Ù‚&8†=r)©P“D™êÌ4méâáÃ'Ož|øðáÃ'Ÿ|øäáÇOžh¼T©"õÈ 4iÔ¨Q#H>5jÔ¨3ѤT½ ¥‹W>|øðáÇ>|øðáË'Ož¼|òäÉ“'O^¾|òäåË—/_>}úôé !ù€ ,Dd‡! "%(!!"""%%%&"")&&*&&-##-**.))+%%1**1**5--2..5..9,,;11622422:22=55=55;88?//C66A66E22A99B::E==F<>I>>M::K==R;;X??d??hAAGAAJBBNEENDDKHHNBBQBBUFFREEVEEZIIRIIVMMVJJYMMYNN]II^QQ]UU^QQZXX^DDdAAnBBoFFlMMcNNnKKkFFrCCpIIrJJuMMwMMvMMrOOxMMxRRaQQeUUbUUeVVjSSlYYf[[eYYjYYm]]j]]nTTsQQzSS|VV}VVyZZu^^r^^vZZrXX^^y[[z``fbbmaarbbueeqffvbbybb}ffzff}jjvjjrjjzii}mmzmm~rr}ZZ]]ƒ^^ƒ__„cc‡aa…ee‚ff‰iinn‚nn…jj„hh‹kkiiŒmmŽnn‰oorrrr…uu†vv‚rr‰uuŠvvqqŽyyŠzz}}Ž}}‹xx„rr‘tt“vv•uu”xx–zz—~~‘||•{{˜š}}™‚‚Ž‚‚’‚‚•……’……•š‚‚……Ÿ††Ÿ††™‰‰•ŠŠššŽŽŠŠ‘‘ž””——š‡‡ ‹‹£‰‰¡ŒŒ£¤¦‘‘¦••¢’’¨––«••©——¬šš¤™™¬››®œœ¯žž®™™ªžž°¢¢­¡¡²¢¢²££´¥¥µ¦¦µ¥¥³©©·¬¬´ªª¸©©¸®®»¬¬¹¯¯¼°°¼³³¾²²½´´¿¶¶¾²²º¿¿¿¹¹½³³¶··ÀµµÀ³³Â¹¹Â½½Â¾¾Å»»Å¼¼ÉÂÂÃÀÀÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÉÇÇÈÇÇÊÂÂÌÈÈÉÉÉËÊÊËÊÊÌÌÌÍþU©RU*R¢D‰ Bsæ •)P¢(Q¢D‰%J”(Q¢D‰%J”(QeŠ G©„%+ö‹T$Q±‚öË×/a„%ƒ¶M:tèСC‡.U©T©D=J”(‘!BhÎ\™"Š%J”(Q¢D‰%J”(Q¢D‰%J”L¹‚Æ‘*Q›%Ф Ù´fÆ„ &ÌØ2jÛÂ…C.œ8tî„©"EJÔ¤G‰%J4Í™+T¦@‰¢D‰%J”(Q¢D‰%J”(Q¢DI(P¨œ9ƒÆ šA¥–Y›Ö,™1aˆ%ƒfm[¸páÄ™sçî—¬R¥H‰zä(‘#G‰¡¡B…Ê(P þ(Q¢D‰%J”(Q¢D‰%J”DEÊ”)S¦\¤ª™5€Ö¦-3&L˜0dЬm '8wæÜÉR¥*)Q“9zôÈQ"AW¦L™ (J”(Q¢D‰%J”(Q¢D‰(P @‘"e •3‘YÆm2cÈŒkf·pèСCçÎ/YªJ•"%jÒ#G%t†Ê”)R @¢D‰%J”(Q¢D‰’Jd(EÊ”)S¨ yô«™5kÖ¦-[¶lÙ²iÛÂ…C‡N:qáÂû5KU*R¢H‰é‘#C‚Μ¹2 ”(J”(Q¢D‰&I,  @„ 0˜L™þ2åL"YˬmÃfÍÚ´fËšA£¶Í[8tèÂ…ã¶ ´eÆ~ÉJ•J•*U¥DErdH4W¦HE‰%Jd< ¢€@%(P ž2S¨ ReÌÚ·pܰYk† ´iÔ¬mÛÆ7lÓ A³6m™0_²fýúõKV)QŽäæÌ”)P”(‰¢ä‰ &‰%†ˆ,Yˆˆ¡sG!Q¦mãÆÍÚ´fРAƒ¶ 5kÖ¦Ak¶lY3nÖ¦-#öë1dÆ~Éõ(‘!CnÎLŠ%1&˜B ªS¹µ’*UªX¹1D 6nܶYÃÆÛ´eɦY³fmþZ3hÓ¬Y Ç›5hÈ-kÖl™0U¤D=2$èÌ•)S @a¢A KyèP˜sêÓ.‘‰aTjÓ/Cª¦q .\8qèÂYƒ6ÍšµiÓ¦M³ÆÛ6qèÄqÃFmš5kÛ¶MCö à¯R‘äÍ*9ˆétjK.üˆY¤(%f1zg(•µpâÄy ŽÛ6kÖ¬Mk¶ 4jÛ¶a³Nœ¸p߸mÛÆ-\8nÛ¬Mk†LX)Q‘‰Z£€ %WŸÈ ™P"Ó­0né  AQ°]ÔÜã.·mÖ¦Y›¶ Y2cÈšA›fÍ6láÂ…Cç.·oáÂqã.œ¸þpá¶-[mV& *ìTÚ±¥Õ!4„dâ¢å‰-9xÀJLX›fܸm³m2dÂ~ýú%,Ù2hÓ¬mÛ.\8tîÄ…Ž·pèܹk×®8nÓÖ XÆ MZUÚâcC1BLŒà±ÁGbxi Ž›µfÆ~ÉR¥ªT)U²~ýZpš5kÛ‰C‡8qîÜ…ç®<{÷îÝ“‡U‰ 2‰¹€¡É¢Ny´¨1q*L†øðQD‹-=Zq³†LV*R¢&‰%ŠT*_ȦYÛÆÍ[8tèйCçÎ;vòèÝÛ·ß¾{ߺHÑeQìøÓçÍaþ, ¢ÉN 6:ÙyòÂ2d¿T•"EJ)Q“Hɶ [¸pá¸y .œ8qáйk'ïÞ½}ûøñÛG)E2M @„N2•Á0A‹“1™þ” ¨KMît"&ì׬Y³fùR%k–°eÛÂ…'n7nÜÂ… λvòîÝ»woß¾om´´i2çÔ„.p¡C§Ó› ^¸¨SgQ` ܸC-®–!3†Ìزdˆ![F[8qîÚqö[¸pá¡s×Nž[Ó)EEZ(4ÐÐÂŽ  8°éE /,PtÐ’£V \ûöýÛ·oß=zôèÑ£G¼mÖ¬mã:tâÄ¡s'Ž›µðàñÓ V§s¸œªdCAƒ ŒŠQ @‚ ™tPàB…†2´ñA=zðàÁƒÞ¼yóàÁ ·ÍÚ´e˦YãÆÛ6nܸ)‹à•TÊ¥èIyеb©•† hhЀF!þ%ÄD+W®\¹rËÁƒG=zû¸aûfŽ8nË„•J”(Ò# ÐÀÅHÑFÀ4P`ÖX®ž0qQ¢D­bŠ0ùâàÁƒ th¢¦žlåÊ•+Wž¢•+=zûöíÛ·ïß,Y¿~ý"¶,²_³d•jA`ÄF¯BPРAƒ-Ñpå*V V"/jæ´¢¬ @ÐÙác 8xAY¹råàÁ£·oß¾}ûöù’%KU)Yˆ æë׬( iµÇ„ "P°þáÎ.E»:)zãdh%Ä๑¡Ç˜pÐÀ… X•+W®¼yôèáÛ·oŸ0aÂ|©’̱`Â!‹@€À–L>Ph°‚ À >õêuO&Lm˜8y¢ 7Gr´i‚<ˆPÁÁŸråÊ•ƒG=zôöí#&L˜°_²d¥R¥Ê—0]@Ð AA4l)Ò€ÀÈ;eŠŠåZÓcÑ&š`±pò§C’ 8p ÁA…Œ1W®\9xðàÑ£Gß>a¾dÉŠ•JT¤DŽDͲD`ˆ@)(°×tš†éÓ.MŒ*9yÃÈLŸT|ñÑÁþƒ(8xásåÊ•+W=zøðíSU*U©R¥HEJ”(’*< °âB »ÂÉQ@€—Z~\{ƒ§S§5•ÌÁSIEž?DBC‚(Ð0W¶hÐ@Á>V(ØÄNçèÑÛ·oß>~üøñãgÈ!C‰=zI)Q-6®^ØÐm3Ò¡A˜ݪ„ǬDD`QFÌdèB„sPÐ0½{ûöñãÇoß>~ü"dÈP¢D‰=š$Ê…¤¨U+Y4#d( ð‰Q’Nxn…ÐZQš@ÁÆP!b a²ÑÛ·oß>~ûöýãÇÐ B† 2dÈ¡DŽLèP€2ºþ>©( @ É~½¹uëˆ\”lÉEÇ. (ht‘Æ&ÊÐ`1Çܾ}÷îíã·oß¿û "Dh!C† 4È„ ÄW8ò'1XŠ€¨ØõéË;x2Áj‚⃂ 4´é$Ó—\ØíÛ·oß¾}ûöñû÷O A‚ "DH4h0ÀÀ-Ä(A!”Š9ƒ+ ŽW”@äX+W–Z,P€bD—S°à Cǹ{÷öÝ»·oß¾}ÿþ¡Aƒ4hМ9såŒt@Øñ%Ú àãÖŒ]·”¹ dkLXŸæÐþéeICˆ >tz£FN#@È캷oß¾}ûþýû÷ïß•+W®\¹r… *T®X@Ô}Ò@£Ï”êT0¢ÉU+eÅü´bÔJÑŸ\t| ¡BË©2Z(m1rĘvíäÝ»wïž¼víìM™2e ”)S¦L™B… СÖ.°túÓ©Ã0”eª£Ï›5xÞ(ÊõêCƒC2ÝÂ¥“sT 6m7qîÚ…³¶M(P @Š”)S¦ð@À‚,À¤K… :(¢V+X/ð0RÔ©Xšp…¡ð¡Ó' :ÙâÃÒ<ªfÉ’Eþl·mÛ¶…ƒ (P @"eÊ”&Xà€€¨|D P`ä´*"æT.\¸r)J„éV%,}©t >Zù`ô(Q"Q©d!³¶ ›5(P @ (S¨œÑ¢`BÈR,KP@ÁHŸ°Z᪴W«7ZQje0‹„<‚ÇO–.ƒJ$JÕ/hܰY‹ (R¦L™rÍ & Tè€:È:E  € @Ñ!s«Ó+2X´¹ÓêÕ s1¢QÉLj‹,Íi3È!CT³æ-\8(PB‘2e •+g2ÔBþ[P(a–  @ÂPNÙ²eÀ5™lÁÊòÁÒ"EY¸|‘a‹2.O EzôH”,bЦYã6…Ê•3gиq#ÈP¢G’R @ÃÇ rmp@@"xØCi—­L™.@¸³«¬!)þ$bôEÈ 4Pp¡óĨR¥R©’õK˜°_gÐ"d(‘#G¢TÍ’• !Æ\ à†(P@¡‚ErnUb´h‘ŸN»”UBAƒU%TÈÈQ¡áËJb"©Rõë×,Y¤D‰%È¡D"E•J´eª†üq0ÂN ;2i€@ (ðóÖ)Lþyõ¡ó꓆a,)b„ E‡Ð ñ%Ó/bÂf ûõK¡A‚J”èQ¤H¢Rý"&lÖ‡?( PÒàÃ# С šÞ0bĈLŸ Ð#O+L’(]¨´ÃΘL(Rý*å(Q¢T©" :s%‘¡D&‰"EŠ”*U¥D)à³%D 1 .Ø@+2(ЩÔ+Š: A“A:ýa„Gކ/ Zeò³C)CnМ1$*’*P"MŠ$J©T¥D‰%J 99Š ¢`B PŸ)rÂ=:õQÐâˆF’hD`‘•Ÿ59 þ¹9såÌ4‚¹2E)R¤H•*EŠ)R¢Du)’…E@ d(‹Ñ€‹:Ubá.X{"ðhÂh“ºrù0ÄÅ•+TΠ4ÈÐ 4W¦ˆ*¥J•*UªR‘%JT$1BŒ| €Xà A{>UªT©S&? láÊô*Ö.ŒN ùrG…E^\9ƒÍ C‰ BsEJ$R²|Í’¥ŠT¤H‘Ejó‹b(€€‚.Pp×§JŠ2Á²ë•-EŠ€„!S&“œ9BD#äÍ™3h 4Hš3T <*K–,U¢%2þdÈ#Qh!°8PÐ ƒ B`Ýb”iQ&F¶^½Ê¤"vðÜêDEŠ#4ÎP¡rå š3W®P¡2EЍTªH‘š”È!B‰="…"@9„Q4p`d®Oxð¬a¢h׫V¸*)ò!GHŒDŠhø ãÃÅ”)T¨P¡2eÊ”)S¦H)•ª”(Q“9zôH)R¤v P€hÁ5sèt tj 5aâàzõ&G.3†0I¢CA A^L™ræÌ™+T¨P™2e ”RªR‘%j’(R¤H‘"EJL"4xÁÅþÄK>v ÐТ¥EYhhù&K'ZÂì ³ãÉ•3hЄ͙3gÎP‘%KV*R¢D•*Uª)R©DùPGÁApà ¸P@L"MYÊ¡a Aüˆ)“©–  dèQ¤HŽ ¹9“ 7Ą͊•ŠT©R©TÉ’%k–¯E訠à (P@€À‰DØñ V§N..`à1DG§!mÂ(Ê!….U¥J©R¥J•¨D‚ÐBcm²_¿~Íš%Ë—0aÂŒ!#fçIŽE4&|è“ Œ PÀÁƒ}0YúDcƒ—,Zvtr ažþ1>ê,k¶ŒØ¯_¾d©RE*‘ 3ܰY³fmÚ²dÆ‚ýú•lÚ6nŒ’ôDÃ…]ù耂€<4ðñÇ¥OM^¨)±&D![šø©„¢˜5kÖš!6K–¬_³JE2.\¸pâ¸Yƒfì—/aÍ¡k§ Nð ÁŸ<~’ø@! #1Æ´Âób“ZÈpÙ0E1Ž|ÃfmZ³e¿b©’5Ë׬T¤Ø±sçN·iÄfÅò%lY¸v÷¦z¢€0”“©Îœ(t*R‚Ë)øa”ÉšµmÖ„©*¥J–,U¥R©J•*Y²dÄ%CfÌØ2kâÚÝ»'O^6' €@2Ÿ>e¨&‰—'fÚt²ã§„–5°X˜à ¡A„;wr5›fÍZ2Y¢H©’%KÖ,_²fÍš¥ë—0bĈ›ÆÍ½{÷Úµ“·h… b4þÅG&L•üÜI’¤ œE&ÂTÂÓ |h£ˆ²eË–!û•ª”*Y³fÍúõë—*_„ýú%L±iáܵk×Î]8kΠも AÈ|at‚Ã$ZžàYdä8-JähRŠ6¨Œ-Cf 2_¥H©’ì×/aÄ͆L˜0cÈ!ƒf-:tá° C6í ráÂeNJOʨÑ2ÄE¦E(µyÒ#E %`ùHä Y³fͦMC¦JT$R²‚CÖ Û²eЦY ·m·iͦœÖ YªI¥| àa‚#™È|š“ , ‘d<Š>ÑÙ¡þaÈ1¿ˆ![6Íš5nÜÅ)Õ/dÓ¶…ÃfÍš5náĉۆlV©R¥2ôH”,L&6LhaÉÒJ¸`É!&OZzL ðe— 4hРq3(‘(U¿¨¹“gÏÞ½{÷îÝ»wïÞ½{÷îÝ£G=zôèÑ£G=zôðáÛ·oß>~üøñ !ù€ ,Dd‡  "%) #""%$$&"")%%)&&-""-)).**-&&1**2**5--2--5..9++<''811611922=55>55:99>..A33A66A55E99B::F==F<>M99J55I==S66P>>gAAJBBMEEMAAGFFRFFUAASEE[IIRIIVMMUJJZJJ^MMZNN^QQ]SS[UU[DDeAAnBBoEEjKKcLLkCCpFFrIIsIIuMMvMMrOOxRRaUUaVVfRReUUiSSlYYf[[cYYjYYm]]n]]jUUrSStQQzSS|VV}WWzYYu]]q]]uZZrZZyXX^^z]]}aankkoaarbbveeveerbbzbb}eeyee}jjtiizii~mm|rr~ZZ]]ƒ__„cc‡aa…ffccƒff‰ccˆjj‚nn‚nn…jj…ii‹jjŒmmŽnn‰oorr†vv†ss‚rr‰uuŠvvrrzz…yyŠzz}}Ž}}Šss’pptt“ww•uu”zz‘xx–zz—}}‘~~–{{˜||™›}}š‚‚Ž’‚‚•††•……’€€›‚‚‡‡™……Ÿ††žŠŠ–ŒŒ•ŠŠ™ŽŽšŽŽŠŠ’’ž““˜˜›‡‡ ŠŠ£‰‰¡ŽŽ¥ŒŒ¢‘‘§’’§””¢““¨––«••ª——¬™™£››¥™™ªšš­œœ¯žž¯žž©žž°°££­££¦¢¢³¡¡²££´¥¥´¦¦¶¥¥²©©·ªª²ªª¹©©¸­­º¯¯¼°°¼²²¾´´¿¶¶¾±±»¿¿¿½½¾¹¹¾³³¶¶¶À¹¹Â½½Â¾¾Å»»Ä¼¼ÌÃÃÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÈÇÇÈÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÌÌÌÛÒÒÝ××âþM™2jÑ AƒþôQ#& 'M˜9räÈ‘#GŽ9räÈ‘#GŽ9ÂÄ ŸD¦~%öËÓ"O¦~ûÅk¯_¾†s¶íÛ¹sçÎ;‡Ž(R¦4)4èÏ?cÂHqҤɑ#GŽ9räÈ‘#GŽ9räÈ‘#GŽ8 Ã'‘)Nš Òdj˜´eÃ|ýúåkX2jÛ¾}÷í¸sè~™òäIÓ¢Dƒ ÔgL)Pœ4iÂäÈ‘#GŽ9räÈ‘#GŽ9rä“&N¤„3F͘> ’Y“¶ŒØ0_¿†sfm·oßÀC‡Ž,R R 8qâ¤I“&GŽ9räÈ‘#GŽ9räÈ‘&Mš4q⤠”1‹†]ÆMÚ°aÆ [fm[·oçÎ;‡Ý.W¦@ò¤©‘¢DŠ ê#Š'Nš4aräÈ‘#GŽ9räÈ‘#3fiÒĉ'N¤ŒQÄk™5kפ%Kæ,Y2iÛ¾}wÜ9pß¾ ãË)Oœ8iÒ´HÑ ?|„‘⤠“&LŽ9räÈ'`JäxP`ÁFš8qþâ$Ì WɰuÆÍ5gÉœI³¶íÛ7pà¾}ë¶m›³dÃx¹2EÊT+S 4-Jô‡Ï˜1Rœ4iÂäÈ‘#GŽ,9±à@ 8 Ä‘%P¤ô15Ìš7oݰ]sFl˜3jÔ¬aÛÖ­[7kÒœ9³&-°]®`ñâÅË(MŠýé3& 'M˜9r$I‹ ‰˜€cË:ˆ"]*T¨ÏN¿¤uëÖÍš´eΜ9s–Ì™5kÖ¤I[–,™³nÖ¨%ûÅ‹°aÀx™â¤hР?c¤8iҤɑ#KR`a‰­Ig¸,B$蓪9£ úãi¶nݰYÛÆ­›´dÉœY³fMþÚ2gÒ¬Yûö­›5gĆ%[¶,Ù/Sž4)úÃgŒ(Nš41‚!Ä=[âr… ¢):v5Š— D¦¤uóæíÛ·sè¾Y£FÍš5iÒ¤I³ÖmÛ6pàÀu³FM5kÛ°IÆ ,PŠýéÃgL#v`‚”E!/àú#âM :޶¼ÚÅF•µoàÀyûö­6kÖ¨I[–Ì™3iÛ¶Y³ö ܹoߺaÃÖÍ›·nÛ¬I[6ì(N‹±¡ CÕ-zä!¢Š 0"„äPRH’4Î ÙêæÍ7lÖ¤I“–lذaÜ9“fÍš5lß¾;‡î[·nß¼uëöí8þpߺ-KæŒW‹‘ðThƒÇ‹?X¬É bˆhØ$›dÅiݺa»æ,Ù°a¿xñâŒX2gÒ¬aÛöíÛ·sèÎ}®[·oçЭ[·n¸nÒêLˆgCK[ðÒ¥ ŽL¤Ñã ;K[R(yã­ÛµeÃx¹jeŠ(S®xñJP5kÛ¾;wîÜ9pèЇnÝ»zõêÕ[wîR„x( çÒ”:/ªt¡òA'lü¸óæÌF_*u³Ì•)Oš5ÒäÉ©]ÄœYÛÖ­Û7pàΡC‡ºtïæÕ»wOß½zÞ2D˜$AJ¦8ú‚áPK^þðâ𢊗d]ÐH¨óÅŠ´d¼Lòĉ“'Oš<¹ú•ÌÚ·oߺuóöí8pàÐ¥[÷®^½{÷ôÝ»÷(ÅQ$ b£41št‡&&à´Á6©Ì<_°Xùŋ׮]®`í2åjׯdÖ¾}ûn[·nݾ}ûöíܺwïæÕ«WïÞ½l@vXª @f,IJBÔ*Dk|@Ê1a ¤~ª.<˜… š—’ 6lØ0b¿† {FmÛ·sèÖmÆ­Û·oß¾K·îÝ»wóêÕ»wK<5LñãŠQBÀIìž:@RÔÀÄïІ )$â0Dš3kÔ–%þ“F-™3kÖ¸¡{÷®7lݺuóöí¸sèÖ½{·nÝ;nKÀz$ À‹3‡zÄÙRá¦Q—ÒdèAç‡3ìÌ<(P Î—’uûö­Û¶nܶqûvÝ»zóÞuëÖíÛ·oàÀwݺuèÀ›äL<Dˆ’4§Š-ò¬Š¤J‡)‘êp©c%à R¤³¡ÒºuïÞ­[·nݺuïæÕ«÷î7oݾC‡ݹsèЭK®´%`Òˆ’"œ©‚”°“$Q;¸¨âB”*4@~D‘¢@,_Bèx§OŸ¾{õêÕ{÷®Þ¼xñâÅëÖ­[·oèС;wþ]ºuèº]ÛS†Ìœ? Åyð¦Krl‰ú„¡œ5ÚÁ!E… xq†C\÷îÝ»wï^½xñâÅ‹/^‘!)ÕªZwjLÈuìþ-Q’2}úüôñã§Ÿ?üôéÓg …S~LÈÃCO ,xóåR!Q©hɪ4¤J™ à0´£4…ìôà"©8´ÒÕ«wïÞ½{÷îíÛ·>}úôñӇϘ1cÀ” "H$G, €[¸V¥ªu ‡L€|8 G’€,xS¨&4ÙòUºzõîÕ«wïÞ½{ûö3F Ÿ1cÆ„ &Œ“&%D¤H%‹E›Ì,pÇ$IÇôh±ácCZ¤þèÁ#„2iÊ`‘P¡#4«wïÞ½{÷îíÛ·oŸ”0R¤H‘ (R¤89Ò!À \«ò8Zõ¨† T’$+ (qÄ G‹*\ù²&MŽn´™²AC›uëÞÕ«Wï^½uëæ9qâĉ'Nœ8qJ ¤ÈdÍ:W&(P`¦Zm~œ0£cÂG—rLbÊ—5iu¹SdË<'@ù%m[·sèÖ}³†í[“&Mš4iÒ¤‰'Nœtà@aXR,P @ Ø U);²ì(©‚FžRÌ™dhÒœ.zˆØ1óé„•¦`Á‚õþ‹Z·mÖ¶}kÒ¤I“&Mš4iâĉLHÀà ˆ (P T=ðÈ:”ÊÖ*=©d9¡ £@8ptÑÂeÊ$<˜~Ô±¢hP"M¤\ “† ›µ&Mš4iÒ¤I“&N „AQ À†ò¸XP @´’¥Ö¬Y²jáª%KV-ôàU‘UÚØábèÇ}üü´/gÛ°Yk¤I“&Nœ8q"f XÐ ‘âÇ  x° A¬páÂ%K–­Z²dÙAR*\‘"aº’¢‚$G~ QÒçÏŸ?ŠLý²Ö­Û·&M6qâÄ )bøø!´£þ‹!là  À‚¸C¤–,Z—Vá²U Ó3"†°*#ŠV¤K8,xãÒ!Jþ,Z¤H“+`ˤYÛæŠ”0aƨáÓçÏ E_ H Âá ,X°`Tp­²´FR-Y—Î|‰ÄG¥QˆDMš$Bœ.B¶¼Á±ä&O @™‚Åë×/^aÆðñógP"EšLírŨ€6 „°Q À‚ , Ñ$G_òÐ)ôeN ‚$›tè¨,6j¨š2âQ*™rÅ‹×.W iÒÄçÏŸAŠ-Òdê—³d“ ÄJ™ ,XP @sâÌ9$) ¤þf$µy°£ ‘K‡èLªÑ&H¡*S°p”/`¿`ñâÅK“Ÿ>}üüù3hÑ¢EšLñö«U=lüø’¡À‚ XPaÍ•9˜,…ÀÐ@Ä# :t´!òé¨O)ºd±T%O<)`í5èO"R¤ñ #eПAŠiòäÉ“)S cÆ„ù£i‘)N4iZ¤I“'R 8iÒ¤IS x±@À‚ (!Ë™2iQÐBÒ!)‚`òr'¥[¬ Äi%ÉÎSþþ¨ &L5}øˆ‘â„“'Ož@Ê'OžÕ!‚¡@ ,x°`²Ì³„Ž€r\ReèLˆ˜5ŠU„K“Rüà²A‰)RÂŒéÓçOŸ1RœheÊ”)S¤@yÒĉÓ"8Dj´(€"„€,p@ÂÆ8h°8bõCÒªU0¸Ð§Ž8¢ É‘óæÁ–vH 3FMŸ?ƒù#ÅÉ"O®xÁreÊÓ"EŠ5:”¢ &PXð`Á {h¨"©#V«VÕJ… †+mÎ옣JÕ% 4Ôø±ÀH˜0cøôñӇϘ0Pš(åÊ•+Sš úþó‡"N<‚` D€ ,xÀcA…T“9JE§Ð*L…,M©²gË—£TMÂA¢Æ- H‘"%̘0R¤Hʼn&S¦V­êñ( N™sEHŽ tì”™3!È®V LµjeÊ”¦A|ÆðsmÙ0^¼`Á‚åjׯ_¿†ûE' „èIQ @‹T€ð`O/µ¨˜!I?jòåKþö$[– Ø/^»\™2åiŸ0ذa³&ÍY²dÀxñâ5ÌZ·n&8"B—8,jLP„ ,P½Y%+E/^ˆxƒãG.Wæ` Q¡Ù5k×– ûËU«]»L-úóí8pߺas6Œ×®_ξ¡S÷J9&l0“'Õ• *ÜAõ&ÄT²j¼Ø"Å” 9‚ä(0È•/²tÃfMš³d¼\™rk,SžÒ¥K‡î7j¿`¹Úõ+Ù·uõ°µH€aƒ² ªSAÈUq ÉTk•,JÞ2©+s¦`™B–7lפ%KöË(O¤\Á2E :pßþ°I#Æ –+X¼†u[WïŽ8.€!…¥ ¨¨2³ÁǬZ¸âäX²¤ %hà<²ÄcC™9\¤uãv-Ù0`¼\ò¤É)S °aö,Y²a¿~¶lºzõêY*ð2Àé¡#Ã…^*ÉÚ“©–™pê0 À @URº"ê¶nÖ~™"eÊ•+S H™"E*Y²dÀ† 6lX²màÖÍ«7ï]· x0aƒLX¾ ˆ…Î#YY¼T‚”'RœX`Àœ@‘€-“fMZ2Wš<™råʬ]°`ÁâÅ‹0`À~ “Ö Ý¼zóÖ­{ç† RàþH±JÒ!Lv–$qÄ Cˆ uʸÀ` ”rô ذdÉ’ ÛE ”)X»vÁâÅ‹—)X¿~ñúõë0gßЭ[·Ý7kÉ@p¨AcÈBV¥*³ÄH’B©r¤@5GÈ bLp`@‰‘7¼†%6lذ] <‘rõë¯_À†Á6lدaɆ s†íÛ¹sà¶ýú%J„ÞTɤÃÒ¥*1:¤p$ IpÀ CŠ<$”|1´k˜³eˤIfJÓ"O®x¶ [²eΤmû¶m[7gÉœ”¶l©F vÝ q‘6x¦ÈQ¤@„5¦PȰe •-*L±ƒþ£Ëœ:¼†[vÍšµn݆¹Ò¤‰¯aζ}ÃfÍšµnßÀÛ6 –)Pžýù£HS+;’âK!Io~ÜzÀÄ \a!¡Ž sÚ˜ù4,Ù°aÉœI³f-/Sž\ýJfÍÛ·nذuóî\·d¿<%úó‡Ÿ?Š4™¦#8 |á‚È`° € ðø€Ã¢aÉœ9KFÌ™´dɆýÚeʯdÖ¶uóÖ­›7pà¾9ƒåiP>}úüI¤ÉÕ/gÉ:`#ŠKC @€ ¸ˆp°À‡ [¾ ³fMš3gΜI[6ŒØ°_»šÚ•l[þ·nݶY³&Í™3^žñáÓgÐ"E‹\I“&ͯ Ö@‰"ID€ (PË >&xÀ% 0kÔœ%ûÅË×0bÉ’9sFì¯_˾¡Cç,Ù0`¿€ýr¥éŸ>iZ*™5kÖ¤yKÕ`Ã’(‡$(`À€#4,¨PÅÀƒ-lŠY³æŒØ°_¼víâå+™4kÖœ%sf­ºuÀ`™Ú5lØ0W‹ úó§OŸ?ƒv%“fMÚ·t«8œø D Ðh!ÄFŠ%s@ì´ Û¶mب6Œ/^»x%£ÆíÜ·nؤm;× ”«dÒ¨%3EÊ•"?|Ä„ç‘+^þÃ’YC÷Ž•ˆfhT€PaÁ,J°|‰‚ ™dߥC·n:kÒ¤I“æl¯_ɬ;wŽ›5iØ\ý’†Íš3gË~‘¤&Œ)aÆô¤ 0lçÖÕ‹&âÄ›*Wê`XpbI0iÔ°Év¯^½z÷îÕ[wî·oÝœ ûÅËÙ¶nߺmÛ¶m˜3lÖ¤Yë&í—§?cÂH‘"%̘?šv%“†íÛºzéî(a³&Í+f €Q#èUºxñêÕ‹wïž¾{óÖ¡Cwn›5b¿†%s&ÍÚ¶mß’YÛ¶ ܹmÀ\)ê3&Œ)aÆøIdŠ×0`ɬK·î]:\ŒÈ€‰¦Ï¤bãÜþ¹‹/^¼vñâÕ»WoÞ¼yëÐYK&Í5jÔ¨mÛö­¸sëÖûeJQŸ1a„ÓçÏ"O¦\™‚lÙ6€àÎ¥{/ž;sÙʹkçÎÝ»vñܵ‹çλxõîÕ«g¯^½uß¾CwîÛ7nß¾­{7oºdšý#EŠ5})Òä ”)P¦\ “¶­Û7pïâÅ‹×Î]¼xñⵋ¯»víܹ‹/^½zúôé»WoÞ»wóÖ­[‡>}õÖqƒ¥))P¤ˆQÓg&Mœ<ò¤ Ô¯aˤYëî]¼xñÚÅ‹/^¼xñâŋ׮»víâÅ‹W¯Þ½{÷ôÝ«þW¯^½zïÖÝ«7ï[2XšþŒ &Ì5-R´H“&M4‘âõkµnçÞÕ«/^¼xñâÅ‹/^¼xíÚ¹k×Î]¼xñâÅ»wïÞ½{÷ôÕ«WOݽyçœí2¥ÈÀ1aƨÃçÏ ?}þüI¤h‘&P¦v%“öm]½zõêÕ«W¯^¼xñêÅ‹/^¼xíâµk×®]»vñîÝÛwOß=}õìÙ«×—)Pšõ#F Ÿ1|úôéÃGš>ƒi"eêµoëæÕ«7¯^½zõêÍ{W¯^¼xñâÅ‹/^»xñÚÅ‹ïÞ½{÷îíÓwOŸ>i°L‘ò´èŸ1bÆŒÇ>š1cÆŒQÓg&R¿¨›7o^½zõêÕ›W¯^½zõêÕ‹×.^»xñÚÅ‹/^¼xñâÝ»wïÞ½{úôé !ù€ ,Dd‡  !"%$)!!#""%$$&"")%%)&&.##-)).))+&&1%%4**1**5--5--2..9--=11622:22>55>55:88>..C66A33C44L99B::E==F>>C::I==I>>M::N>>Q<{X„qDŠØ4mÚ²M³¦MÛ³cÅ–M›6íþÙ±eϦMÇMÛ´eĆC†ì˜¯U¤D=24hM–*U¦HI1 ƒ¦N~ŠÀ@fŒ‹Ìì±…JT«ži8têÀM{ölÚ´gÏž=›–M[6pèÂi³íY´iÙ¬=#Æ ¯R"$§Íš îà)“ƒBˆ8s˜°(“cŽ;¨ ;!D&i˜ @¡éÙ³iÏ–!þ{¶ìزhÓ´©kïž¶lÚ´q\8uêÚŋ׮]¼q‰Àšw(t ÄhN§;F4aÀN¥\PØÀä‰ s”i N[6mܲiN]¼{ñâiÓ¸páÂ… ‡N]»vê¡C%§Ç€\<‘±cÁˆ¥4ˆæ0¢”•#ŒÌˆ `@‚ (0ÐU»xñêµk×®]»vñêÕ»/8pÚÀ…S§N:têÔµ[NÛ39O, `±çÕ/:Œ•ÆT•^àA Œ6xH0Á€Â@1§OŸ>}úîÝ‹ï^½{÷æÍÓ¦-›6pêÔ©C‡þNݺvê´M{%çƒvrÄÊ1¢2zôh²•©ˆ¥CŒ‚¬0€Ã $1ˆ]úôõÓ§Oß½yóæÍ›7oÞ¼lÓ¦eÓ:tà¡S.Û3MrbøØóãM=\åÐÁ“­NzÎY±¨Lˆ:¼XÑEC&V¤á3oÞ¼yðàŃ7oÞ»yóàÁ—mÚ³cÈžMÓ¦M›6mÙ´Cåf8„­ðƒÉˆX±:áɱÂÀ=Vp˜àA/VtŠ"ƒ¬(çà‘#}úôÛN\¸qÓ£µk)(œæ„xð£;y 0À®W€Œ¼`0`@&ž@LÀ@‚:J"<ˆðà‚ŽV~Œ‘#¼yúôéÓ§O-Y¼xñ"vLY0^´f•Z) ˆ-®éB"Á€ ÒÊ„)O‰ dr…ªÄ€ ð’)D„"€è´'9räàÁ›wOŸ>}úôÑš5kU©Y¾† óŋ׮#ˆDøˆÀɘ.. þ áМ9™Þ é# *c™x!‚e^DˆðàÁJ˜:‘#G¼yóæÝÓ§O/_¾v­šåk1_¾ˆ[!GC„%Öš)I³"@8b„)N QbÌéä Ѓ:$€b„<ˆ°(–räÈ‘{7oÞ¼yóîé æ+˜¯]´V¥ZµjW0^?¢$è H˜+2#NLH°Ã•œiÊ¢ äDLiMˆ@b Ž<ˆ0Ä$]byGŽ9xðÞÍ›7oÞ=_»hÍ’•ŠT¤DŽ@ÑÒãÄ%±\1rÕÁ‹.+Ey… 0@Á¤fŽŽp(y`þ@‚ :Ì$°%ÖgäÈ‘ƒGÞ¼yóæÝ“•*U©R¥HMJ”(Ò*E(^ tÁžL9’$YD Í\8ÔÙ3€?|öŒˆÀ $H`1¦D„@l™ÑE}úôéÓŠT©R¥J‘"EŠTªUqPhÐaÀ§\Œbá²3•\™ ÑÃF`Vþ}‰=Š ¨R¥H¥JõÀ€’Àʤ—¥]e–ËU¬CJt”‚ôð`Bž.€x¢*\·æÝÓ§OŸ>}úôéÓgÈ!C‰=z (PQLà,Fi:­0ÐS¬N¹æèò´Â .  „‹ ~TÒ!B„8òø¹Ö¼{úôéÓ§OŸ>}ú 2dÈP¢D‰=Š "Vè‚å)Ó§ð`2–FÏ\‹pa0äA„xX"A‘J%"X3ÏœL×ÖÍ»§ïž>}úôõÓ§¯P!C† 2dÈP¢Dލ˜0 K¬[xþêà00ÂX³\zÒ¤Q”ËR‘ 8lHÀ 'ÂòC‚ŒL>ò(òtÞ½{÷îéÓ§O_?}ú *TˆP!C† "DhJ  ,ùùÔëD@|ªK˜®\°Z݉`E‚$8¡(¦=DX‚•¥Jâ®Ý»§OŸ>}úôéë×oРA„*ThP›6m¬È ÂÕ‘cÆ\3À@L¸téÒUG‰ $˜ Aœ„:”©ÃˆK·†øð㩚°{÷ôÝ»§OŸ¾~ýúµiÓ¦œ6mÚ¬Y³f(ŽÀ:ãÊ“ˆ`—1Nuêäøác€$þ ”CfŒéÓêÈOvòðº§OŸ>}úôõëׯ_–5Y²dÉ’ÅŠ+V²Pa’Ã,W®t1``€vŒ jqFˆ"v\„H Á]¨Š„ÑÄ¢ª7ü”s$‚§vñâÝ»wï^½víêU©R¥Ê”*UªT©bÅÊ&!„X2Â"É„ ˆKИ!~`¸s'“†XtrՉϢF ¼(â³G (òõ,·pêÚ›– Ü”)S¦L™2e •*Uª<™ÁÀˆ 0 A‚ ­#È€°:¡ÊÑa„—X•ÒØ²…‰‘ž9ŒÂT‚dÄ€3«hÑ¢þì™¶lÙ´›2eÊ”)S¦L™B¥J4p4`À€$qKžX¹`uñÓ*‰'0'^pB…ë#0‹:éIã L®;#Æœ óèÑ#P©f›–mÚ´)S¦L™2eÊ”)U¬¬A‘BB;!  ÁDìÜ‚å)V%]ž¸d²óB‡ %Â012S©S'=P2¹‚³!Ó (ƒ J©”¯gÙ¦M›"eÊ”)TªT±²¦ !1F¸Ä"@‚ DÀÓE×-X¨réÊåiO¦;/º´r¥+“ž<šÕѤÈ.?b`R(‘!CR ›¦¸)SN¡R¥Š•,k2$Eþ‚^ˆ ‚u”èªÇ•+T°2eêtfžV¨bábħ¦.|Š0Ê„gÈ¢j EŠôÔ¬`ÇžMÓVÅJ–5kÚ´DÈP¢G\(ˆP$Ä€ PgL®@~ø(ʤ(S&3rø!q)S®XŠ2eâƒJJ#tx1ǨR¥R­¢ÅË—/^kÚ *d(‘£G¢VÑš…‰Â‘PP ` B‚]ÈÄò£hŸKzPYâ0Œ —áŠÕh NŒ<¼0 „K—†"­šÅË-Z¤"5È¡D"MµÊ×±c²V9GÄ€:0ÎJ=`lÀ€cÅ‹þ=Ð(‹‘.YºtÁtè… ñܱg/_¾hñâÅ T!BƒJ”(R¤H Rñ ŒW&öŒ@!B‚F ¸ÃÇŽ4x8ÁÁŒ%/:ÀÂS ?sæp‰ã… ™Ví*•(Q"R©" Z“%‘¡D""EŠÔªU©HøÀ!É„ Ø0€Ã.zà áaƒ0eê‚#‚ !~hÅÙ„ K–ŒJÐI”¨BƒÚ¬1*R+S&Š4 ©T¥H Ô‹<   /"ä€2'Ï"Vxò¡áˆ§$B(A¡ˆW·]¹80RtgŒ—¯ þÉY³fÍš6„±ÉR)R¤J•*EŠ)R¤&ýƒ† pÁ 4wøäùÃK€f€adçÁcÆ È0q¸€)ÁBR–,kÖ´TÈP¡AYª€*µjÕªU«R‘ T¤7\HŒ A‚>¼ ðfŸN–`øAá‡Á 8yÆñò /aÂô”™Pæˆ#ÒdYÓF!C‰j“…J¤R³vÍš%‹T¤GEÒ“DLj$ð0aÈ€\:ñ1ãU%@•’`à2§K%$Våæ‹ÑDtp1P"Êš5m"Dh›5V¦<*µjÖ¬U %JþdÈÐ#QdXP 0 Á +r$xà 2Hüä ‚iš5kÕ|­*µj–¬U¥R­Z•êØ±cÁˆ#6ŒØ1káÚÕ»W/ž; b|ùÑ¥R(p´ˆŠ 2üxâ4!„ˆ ,¬ àŒ'?P„!{6íÙ±Y H­š5k­]³hÑâÅ‹—¯`Á|{¦M]½{÷Úµ‹ç‡ (™¼ÜÙ4Œ1bÇ–=›6혯U¤VùRVM8mÖ¬i.\¶c¾D92dˆÐ C&­ †BB*Q8aÀà‡$BxðâçªcÈ–-CvìÙ³cLjù¢•j/bϲiÓ¦MÛ8pèÀ-£%*¡A„r$j¯eÊÄ BÅÌ€´à4aÀ P)›6-Ú³cÈ–-CFŒØ0_´®â…,›þ6mÙ²Y›öìÙ2_¤D(Q¤G‘f={ölZ,L¨0ŠÀ€dLÈÁE ¯iÑ–óÅ˱cÇŽ!CFÌ/_Ç´©S·ì˜²`¾|ùšÉ!B†MŠ´êØ´iÓžqËTÉ! Hˆ0À€BÆp0` Â9ˆM›¶ŒX0_¼víâåëØ³iÓ–[M›ºvÁv­Úì1Y%2dˆ!C‰h{6í¸u‚JD1`Àt€ˆÀÍ ¼¸UM›¶lÓžó5Œ/^»x›Æ 8mÖ¦e·ªÔ¬cÏž[µjÕ£BƒØdiC”,^þÃŽeS7Ï…#>&L0``‚…3_ÐÜ‚Dœqëµk×®ºiÑž={†l/_ǦC‡\´gÖfùz–mÚ²bÈ|•J$gM+kÚJŠT°lèÚÝs&Oˆ`á'$Fi¬Ú¦ïÞ½{úôÝk‡Ž›6pÚ–óÅkÙ4mà¸eË–mØ2kÓ¢MÓÍ—(CmÖd±’eMC‘x›6m\»{ä<ÉÁH9sÔÌ‘#ǼyóîÝ›wOŸ¾{õÚ©k‡.Û2b¾ˆ{-Z¶lÜŽMËf ºlÁf="ÔfM–,kÚJ´Š×°`Ǧ…[/žº`’ÔPQ#ÇÍ&aæàþÁ›7oÞ¼yóæéÓw¯^½{ñÔM[ölÚ³hÓ¦eËN8tíÚó•*¡6lÖ¬iC¨Ð#R«f¥¢5lY6€àЩ‹7o¼kçÄÁ›Þ¼yóàÁ›ï]¼y÷ôÝ»wïÞ½vàÀ¡S‡8nàÀµ‹¯ºc j³&K9„=EªÔ*R©d{–M8uñæÍ›Þ¼yóæÍ›7o¼wïàÁ›7oÞ½{÷ôé»w¯^¼zõÚµk§>}÷Úi£*Ñ ,V²°‘C((Q¤H•"j•/bËžMÓ†.Þ½yóæÍ›7oÞ¼yóæÍ›÷î}úôé»þwïÞ½{ñÚéÃWÜ1Z  µÉ²fM›A†=z ”(P @•âåkY4mèâÝ»7oÞ¼{óâÍ›7oÞ¼yóæÅƒ÷Þ¼yóæÍ»§OŸ>}úîÝ»‡¯ž¾zèŽíJõˆÀ6kÚ´i3ÈP"C„ r)Ò¤R«h!‹®Ý½{÷îÝ»wïÞ¼yóîÍ›7oÞ¼yïæÅ›÷îݼyóîéÓ§OŸ>|÷ðÝ»§×ªR j³¦Í 6ƒ"4HŽB‰*µÊ×3pèâÝ»WïÞ½{÷îÝ‹wïÞ¼yóæÍ›7oÞ»yóæÍ›7ož>}úôéÓ§O¾g»R­"õÈР6lÚ´i3h>œ6mÚ´‘C(ѤU¾ž©«W¯Þ½{÷îÝ»Wï^½{÷îÝ›7oÞ¼yóæÍ›7oÞ¼yóæÍÓ§OŸ>}úôé !ù€ ,Dd‡  !"&$(!!"""#""%%%'"")%%*&&-##-))-''2))1**5--2--5..9,,<11611922=55=55988?66A66E22B44K99B::F==E::I>>J==N::M==S<<[77S??i<{áÆX°!§Ï+?lÀ3$Ä/_þ,‰9+Ššr @P D³cÀT¥"EJ©P¡HÉúåÌ8pà¶q\¸páÔ©cÏž½|ùòå³÷É A©ðÒé ¬-*î´h!ÆÕ«SA2 è IS ¸dö ˜/Z²hS%‹Ö¯fÕÀnÛ¶mÛÀ;vðìÙ³g/_¾u! (ãP L:4ºsåKˆ;èäêƒ@E† ŽmˆÁš4Àš+vìX³c¿†k 8têØm³†m8pàÀ¡SÇ}öìуÏ={öäÉÛ¶ Û6pèÔ©C‡þNÝ:vê¶U£åhȆ<š¾8Z€BG™:9Úf p°p‡Ê  ¼XbçÉ“VùòåË—/Ÿ=yòäÉ“'OžOÚ ò¨9räÈ‘#GŽÜ»wïÞ½“§.ܶjÎ~• E*U)U´„ ;†ˆ ª,²L°P$„.G.šp!¦Spƒƒ&2ctér³’¥6n¾#GŽ9rïÞ¹“'Ož<{êԅöì-R¥H… Eª”ªhÂDí¡eƒ¦JäÄRã‚HtN…@` @Dh9”Õ$G±6e:uÈÉ9räÈ‘#÷î;yòäÙ³·nÝ;uÛª-û¥ŠÒ£P¥Hɚ֌Ն FRt:%‚Ω l4é±% @aD=™Pe‚Õ –.XþŽð´"GŽ9rß½{'Ožlð”k“£"æÈ‘#÷î¼|ùòåË—ïZ¸wòäþ­çì—/`ÀJMÒ…¨È1rîàqt.G™Æ8ŠuÉQ.-Z €€ò ""…@\õáõç9rïÞ½“—/_¾|ùòÛ.\¸qÕ– óå‹)G™\@ð#†—6X¸¸ÊåÊ‘Gœ4y:E¤ (ñ…¦5D¬¸ Ó¥[™p‘#Gî;, hrªV›5¼ÞÉ“'O^¾|ùòåËŠ©R¥J•"Eª”*UvDX(`é’#OŽà0€àC€uÆd:u©ÓÈÐB.JÀ©ñ#„1™~9“Lž}ùòåËWhP¡B‰"EŠ$)©Pd&øq(͘N¼à 0P ‚pà|q¤ãP@„!j~ˆ€ ƒ}ù 4HРB… $è L*ááÅ«Žüdªä¨O ?B@„YŠˆÑ劘—Mvä±ÓÇ“¦C\èØ³—/_¾|ùòéÛ§/P @‚ $(Й3gž„xe£,V8V@€!—£L¼XȰcB,HøCLšu¢sÁGrÚt²Ô†L{öòÙ³—/_¾|ûö9s†M 3gΔ)S¦Ì/¼¼pòD§ è9•+Ù‘(`@Gb¼\þ S$S¦1^.ܰãè%9B|ø±—/_¾|ùòíÛ·oŸ•2V¬X±b¥J•*U¬<Ù£«Ó+^F @á§SZ8Õ(`Á‚.ÐÑB'Ì…0W"ÃG…–C‡aÙ ‡&xìàÙ³gÏ=vìèM™2eŠ)S¦L™R¥ 8¼¼|âµAätjÁ@€8`P …8ŽŠlHÑÇ‘£4i29r”ÉG†Ôú ¸pêØ«†-(P @Š”)S¦PáåJà ž úd @' ؃«’˜Jz’#Fæ N°ž¸ € @[²hÑ¢5þ,Ú6lÖ¶ƒ (P @"eÊ”%p*‰‚ @Xe2AÍ-:°hÀâÃVpVÐQñ*Y.br.háE¬ÓŽ è@õ¨P¤P¥h‹f­Z5(P @E (Sª”¡¢E— (ð¡È­ þèrEDˆ‰(€ˆC篺ˆ#V©+^º©øA…H‚ )J$©0gتUƒ (R¦L™RæŒ 2MX…)P ?¼À’£&Ó©[}:¨BL:®t%“ãŠX²S§49òtK“‰E2l@$(Q¡B’T«n8(PB‘2eJ+e R4æŠþ—" (€ˆX•ìpr$§Ò  ôò¡/]œnñJ ÖGŽnU‘NˆI’)”¬aË¢U³6¥Š•2fΰ ¨P¢Hc„Àù @†dùäÇ‘£KjZ¸Ð`áÂ' Vè⥫W2^°. ٤ɑj²€ƒ¨P¨R¥R©¢ì×/aeÎT(Ñ£H¡TÑ’…LJ'"(P@ÇL}~°€qGCˆ âÀ¡ á‚^{ŒèÒ•IN&òdÂ'Œ Gm$©’ ˜/Z¥$… ¨P¡D$I ¥j˜³fš–ÔÉRA8`¡§Ä0 Ã“þjxz•AŽ#WšäL£Á…9ưb¿| ,” A *”(’$I¡TVÌÖC ¸P €…^蘃ðpj–(Ðñ¤Éž¸4±†Ó9.PùJõ(Ñ£RªB*c%Q¡D‘$…"Eª”*U¥J¡º2D Ð!æ /L¢§ @ÀÑK-&8qÒ&Ö¥[~d±ä")AΔ)*›*RB…’D)©R¥H… *”(5 (‚“=¨ðùÁ¢ÒXÚ‚„?t €Š'™òœfÅ•Z= þ)S¦L6‚•©2%)R¤J•*EŠ)R¤(Úò…‚+´p"„ ž>&Np #€Ž. ñj 0ñ„Œ0–ä\°¡Ë‡+VÊœ T¨P¡3V¦„"¥J•*UªR‘ J¥G&®p@P€ %¼X²d K‰ —,T£É¯Š@€`AGZðQc „§žX)s† B‰ :cEФR²€ù¢¥Š”¤H‘"I’Ô£N‰lˆÀ HG‡îX’ã*ÇŽ<\T ¸+ ì°AG¥W¾@ȰçI™2g $(Й2U D*%K–,U¡%RþT¨Ð£P[~Ô(P€ d(Ò%Oš>©ØBG„0®è@ðÒ‡:¶p!GC¦X©b¥Ì™2VªT©2EJ¨T©H‘¢ô¨P¡B‰"E"Å%@ P €!4¨q䉣Kj®´±¡Žœ-j¾8:T£Æ "è@¸P‚Å”)UªX©2eÊ”)P¦@)•ªT¨P’=Љ)R¤äÜ(€B ¤ÐAÇKG–9*"§G27þÔùÂàƒ£>Y,eØq%ÌšL©b¥Œ+UªT©2e ”RªR‘ *T(R¤H‘"EjR 0¡€•\]1bIþŽ ZœqÄÃχ0DhÂãˆB+ZVl€‰+gØ ÄæÌ™2eÊT‘%KV*R¡B•JUŠ©Q©PåÈÂAc‚€$K‹ŽthðĆ}öØq“*R +V¬˜a#(¥P¢H‘*EJÕ¯c΢YÛ¦ž=yòäÉ“'Ožxèš+IÀ3eΜ9¨P¢B‚z$IR(Rª|5“Æ={öìÙ³gÏži¾T©"©P 3fΜ9ˆ>Í™3gΜa#(Q(UÀ¢©£GÏž={öìÙ³gÏž={öìÙ“'Ož55:88>//D22A66A66F55J99B::E==F==C==I>>M99J<>hAAEAAIBBNEEMIIOBBRFFRFFUBBUFFZDD]IIVKKSIIYJJ]MMZNN]RR]QQVDDcAAnBBoCCjNNaNNfKKcNNnLLkCCpGGsEEqHHsJJuMMwNNqNNxRRaRReVVbUUeVViUUmQQkYYfZZbYYjZZm]]j^^nUUqSStQQzSS|VV~UUxZZqYYu^^r^^uXX^^yZZzbbleekaaraaueeveerbbzffyff~bb}kkviizjj~mm}mmzss~xx|ZZ]]ƒ^^ƒ__„bb†eeƒff‰jjnn‚nn…jj…ii‹kkŒiiŒmmŽll‹ooqq‚qq†vv†vv‚rr‰uu‰vvqq{{…yyŠzz}}Ž}}Šss’qq‘tt“vv•yy–zz—~~‘||“{{˜||™š~~šŽ……‡‚‚’‚‚•††•……“›‚‚……Ÿ††™‰‰–‹‹•ŠŠ™ŽŽ™ŒŒ’’““œ˜˜š‡‡ ‹‹£‰‰¡¢ŽŽ¥§””¢““¨••ª——¬››¤šš­œœ¯žž®šš«žž°šš³¢¢­¨¨©¡¡²££´¥¥´§§¶¦¦µ¥¥³©©·ªª´««¸©©¸®®»­­º¯¯¼³³µ³³¾±±¼µµ¿¶¶¾²²º¿¿¿¸¸»··ÀµµÀ¹¹Â½½Â¾¾Å»»ÄÃÃÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÇÃÃÈÆÆÉÅÅÉÉÉÊÉÉÊÊÊÌÌÌÍþ_Ùz…Š#FŒb³F +T¦,Y²dÉ’%K–,Y²dÉ’%K–,Y2ÅŠ¡Hª†AK6Ì%S¯Š6 ×°aÇŽ5‹Öœ:uêÔ•+§Ž*V¬HIbĈ‘¢ClÔh±B…Ê”%K–,Y²dÉ’%K–,Y²dÉ’%K–XÑb(Ò+S¤1"õ Z5gÉŽ 6ìX3kÝÈ­SGŽ\9u솽2eŠ%IŒ1btˆ-X¬P™²dÉ’%K–,Y²dÊ’%K–,Y²dÉ*T´¨YÆ›C¨ša«Ö,Ù±aÆA‹†­9räʱcÇnØ-T¨L‘’‰Q¤HŒ±Ñ‚‹*T¨þ,Y²dÉ’%K–,Y²dÉ’%K–L¡B…Š+V¬h1ôÊÙ6€ØªA;vlذdѰu#§N:vìØÝzõ •)R–$E’$)#CZ¬`±B… *K–,Y²dÉ’%K–,Y²dÉ*T¨X±bÅ 6”’iÛ¶­Z²dÉ’%k†­[8rêÔ©S§Ž°[¯P±2EÊ’¤H’$1:´‹+V¨L¡²dÉ’%K–,Y²dÉ’5j,¡B…Š+V´°‘4Ì™6lت5k­Y³jÝ‘S§NºräÈ%†ë+S¦L‘²DIR$E†Ö¨Ñb…Ê*S–,Y²dÉ’%+2D00`J°X±þbe £[Ͷ}Û¶ [µhÍ¢U³Ö-¹rêÈ‘ûÖm[´fɆÝb…ê•­W¨HQФÈ6j¬P¡2eÉ’%K–œ˜à`À p4ÂÁ)V´z• 9rß¶is–,Y4lÖ°uûöíÛ·mÕ¢EÃV­Ù1a·p 6ì*R’)JdH +T¨,Y²„Š/?P™³'ƒ޶´ðàCM"SǪuûö [5g΢U‹Ö,6lتU‹Ö¬Y´oت56lرddž½2%‰£Dt´X¡B…Ê’%4D´@a 4~6ùà€¢Ó,Lp¶4Rd*¶oߺaÛöí[µfË¢aÆ­þš³hÕ°a#î¶hÉ’5sæ¬Ù±W¦HIRdh+V¨L¡a%m¼˜A£Î## ö„5ì U¯ª}#GŽ9uêÈa«V ¶jÕªUÃö­[·rêÊ}Æ­Z5lݺUK6 .T”%2Ćš ,€ÒR”èÁ”Ç…ª^²0ñ*¶‹6råÊ‘#Gî[·nذUsÖ,Z4kÛºmÃFN:rä¾uëö¹oݰUs–l*S”"Ñ©@„“&V ¦‰A´zÉjôÓ,ZŽz<ûFŽÜ·nتU³Ö,Y²dÉ¢E«f 6läÈ‘SÇŽÜ7räÈ}ûFŽ\¹þräº5kí•$PÌh²É„FÀÉ$«¯E´díñÓ§‚˜jß¾mÃ-Y²ddž 6lY³hÕ°uëFŽ9uìÔ‘+WîÛ7rêØ½{÷î]¹oÕÞ hÑ¢ }ÊXÀ‰N›v䚣K§@*$hèCî6gɆ¹ºõŠªW¸† k°6lÝ©S§N:uìØ‘+Çî¼{÷îÙ“§WŒHŒ´0‚I ˆH9#K‘PT©z‡CAd}ÖìÖ+S¤H‘"eÊ*aÉ¢aëö-9uêÔ©cÇŽ»vòìÝ»—/_¾{å~¢§ ‰;n¾ 9Fœ:²þö„’"%T¨YiÀ´p3L2hÃ^¡2eŠ”)R¤LÙÖl9rä¾…#GŽ\¹råÔµ{'ïÞ½|ùòå»§ÊÃ@0ˆŒᥠ$œ\DË‹‹YT­ò5gÏ Þ<Vl˜0a·p {u ×°fØÈ‘#§îÛ·oßÈ‘#GŽÝ;yòîÝ»w/_¾rEã⎋ FÀˆ£AÈQ™",’&²d¡Hl¤I“F¾š-K¶,Ù²dÃŽ%kfí¹rìÞuÛÖí9räȱc÷Nž† C‡:tñâÑ£G½{ìØ•ëæ,.T¨L‘"eŠÕ0[³ é"ÈÅ‚„,ÐðG•*@8`B˜ra:¢ª˜#L¢T­zD„8tèСC/føâäˆY9T5z$#:tñâÅ£W/_¾|ùò%ûVÎ\9rØœÃ%LØ+J‹Ô)ÓBDÉâ%K—¨\oœÀ¡``A‡ rà $Â… !8Ž´8‡S¯LDv¡C/^T¨^½B…  )R”(‘bI—.Œˆ€aÁ`<êShKŸL™‚p0 @xxl ³éR' Dè ©Ïœ'±âуG¯^½|ùòåËGÊ”)V¬P¡2e Õ«W` ð˜Ð¢…,0 ‡] æ¼1bE€ ÃÃKŸKqùÁ -iúHó‡½zõòñã·/_¾þ|Œ"I¢DÊ”)T¦P±bÅe@€ . XှôéÅK•ªŽòL0€\ø¤‹–®Pª˜é’¥+SŸ=—Z´(!‚Ã<ŠI’‰”«cΪaëf‹5kØÐ1dH#ItdqX°`Á1ŸþÀ âåH`A²jõÆL•,]¿DÝát'‚ 8ÈB"E)S¯^½Â5lرajØJ¤ˆQ$I¤^áºEé“  ,eF 8,P&- @£ŠS(ZȪL”N:"l¹ Á(h(½º5¬.\¦$‘"eH#F‘,Y"õjX´f¨ààX BA€pþQÁƒ8B jB„:þ´.UÆŒ,LÀ¾ ¸#¡CÁiä¡Ó°dÃp 6ŒÔ!C†)bĈ%J¤^ K6lØ \h0€ãˆ¦ (8<0€#= Œ@€P‡—& šz»å—¬3g ,(cP4L C‰‘$T¬,R£…Ñ"F’,‘2…ÊÔ«W¨X…Yp€‚$HÌá! d…*´`Ëbhõê ƒ°@A~!£µgÁ.HÎôBÁ”©C†Ø¨QdJ-TH‘¢d‰”)V¨L™"EŠÔ" 9ãÆœL>P&Ux„!2¨W¯<€p“µçW(N½88Ø2FÐ*"#þR£FÍ:‡ ©Ñb…”)S¦P¡BeÊ”)S¦(-:cÀ€A FÌ‘õé-ò(Á¤ÃE€]@e‚õ¨–B6õÓlj† 0 ìÙóD…-jÔ°9”H‘"6Z¬BõêÕ+V¯X™"EÊ¥J€øƒ$Àˆ=œ@娠ÀǺP¸d„'ZÀ`½Ù#‡#wÂ0òâ Ph²haÆÍ!EŒ%b£… %T·páºõÊ%I’$Q¢´‡‚.>T@áèÒ™ PÙófÐ2Éê¥+Pœ<¢$HT$Æ‚<.€âFŠ6l :tÈ5X¨HBõêÖ­W¤$1Rþ¤HQ$Se&€A"@… ˆ4 ddKŒ2_Þ,€à¢-^´™¹äåB™/O<”hÔaÁ‘3e°hÑ¢E 5Z´`ÁbÅ ©W¯P™¢ÄH‘"EŒ$Q2%dÀŒ pà£L 8RÜ\ÊT ì¸ÊŽKª0á¸#BÄ<.h8Â#+X°hÁbÅŠ+V¬XAÅ )R”$E’$‰”)S¦àh0° O‹$ðàÄÅM&<ƒ¾a2Œ8PÛ¶nØŠ½BõêÖ­W¨X½zŪY³fÇ’5K–,Y³mêÞÝ»'ÏÞ46jص –› 4 xÇ —  àdBšˆ8¨È€ x9«†M[³[¤L½ºuë.a¸pá&lرdÇŽ%«ö½{öä½{×¥I@ þÚS&‘=[Plé$e út’`ƒ†KG4¸ äX2hÍš%†ŠÕ-\¸pá6l˜-\Æ 6lX²j䨽{÷î9lÈVÔ¨ÑgƒŠK™ˆ”qa„ aæÌÚ´§“°F8¨0À€¶’5K–,Y2\¨P±º5lX±aÇ’á–lذdÍ’%‹†œ:uäº † I`,à @|ÀL{qÒ"@€"ˆà!,™3gѪUKöŠ%S·†Kæ [³fѪa#×­Û·jΪ¬-Ù+K¨†åRÒD €D0 !€ˆ>pP€‡{6pX þb‚†#¶ŽAsV ¶oß’Ý"EéÕ0hÕ¶‘Û† ¶oäÊ•ë– *T¨$)R$‰Ô­@MÒ  @€d)SÆK€ ,ðC…Fhpt,Y²dТUÆ­Ù°W¦n k†í¹oÛ¶}#WNÝ·fÃLER”È!E’HÝ¥I‹`D0„Œ8``À/2*xÑB‰˜fÍ¢9sÖ,Z5gÍ’ ÃÅêÕ°fغ}ûöíÛ·rêÈE»eJÑ!C‡)ŠdêÖ°hÉš  @Øp$F€0PD™3MÂ8ÆÍZµh΢Us–,Y²a¸¾ÖlÛþ·oݺmÃV-Z´a¦¢sˆ%I¤nU‹V Û¨ PX` @€``@*< ‰“&K2lÖª56lX²fÍœ9k–lذaξ±{­´cÃ’ »EJ‘¡DŠ$‘¢„Ê6lذ‘4ãÀ À€(Á¡È4oŽaÃ-Y²aÄ v¬Y5lØ¢5‹Ví»wÇ„½v,Y²[”$1R”èÐ!EŒp5«†Í9v°fˆ0pà€0 Ž/öÐY¤\·nج–lذaÆ5ÃŽ¹oÛªu+gËÔ-gÕª%{ÅꕤD†Ö¨asˆÔ­aþÉš}c'Yœ "D0°"rôÁ’FQ1rß±c÷î»mتU³-Ù°aͰ‘S§.¶jØn «Ö [´fц±bDG,jØbD Õ°oåÞÝ㦈ƒT4jô”,iÒäJ—ïÞ½{ùòÝ{WŽÜ7rߢ%6,¶oäÂuëÖ-Y´nÛ°aëVm˜)ElԨѢE E”†5«†íÛ»{í|I™!E 7YÚ´I“fV;zôîå«G/_¾|òÞ±c§®[´fÃ’-«f [·nášaë¶­œºmÇnI:ÄF-jØŠôjX²cͰ•k'O^»dÒdÉ’%Í&`æâþÅ£G=xôèåËwÏž={ïØm‹V [5kÖ¬mëFî9uïÞ•öJÒ!6jÔ¨as(%S¯n±º•ÌY7€äÔ±“G^{ê¢ {%é@6jذacH#E‡1’DI’%T¯p5«Fîݽ{÷îÝ»wï=zôîÑ£G=xðàуG6lذ¡“ˆ©W걓gïÞ½{÷îÝ»wïÞ½{÷îÝ£G=zôèÁ£G½zõêÕË—/¿|ùöí !ù€ ,Dd‡!!!%(!!"""#""%$$&"")&&*&&.##,)).))+&&2))1**5..2..5..:..=11600322922=55>55:88>,,C66B55D55I99B::F==F==A>>I>>N::J==T::X??h==f@@FAAJBBNEENFFKIINBBRFFRFFUAAUFFZCC\IIVLLTJJYJJ]MMZNN]SS]QQVCCdAAnBBoCCjNNbKKdLLlCCpFFrHHsJJuMMwNNuMMrOOxQQbRReVVeUUaVViSSlZZdZZjYYn]]n]]iUUrSStQQzSS|VV~UUyYYv]]u\\qXX^^z[[z``gbbmaaqaaveevffrbbyeezee~bb}lluiizjj}nn|ss}sswZZ]]‚^^ƒ__„bb‡aa…ee‚ff‰iinn‚nn…jj…ii‹jjŒmmŽnnŠoorr‚qq†uu„rr‰vvŠvvqqŽzz„zzŠzz}}Ž}}Šqq‘ss’rr‘tt“ww•uu”yy–zz—~~‘{{“{{˜||™~~š}}š‚‚‚‚’‚‚•……’……•„„Ÿ††Ÿƒƒš‰‰–ŒŒ•‰‰™™ŒŒ’’””›™™Ÿ‡‡ ‹‹£‰‰¡¤¥ŒŒ¢§’’¦””¢““¨––«””©——¬™™£™™ªšš­œœ¯žž¯ªžž°££­¥¥¨¢¢³¡¡²££´¥¥µ¦¦µ¤¤³©©·®®µ««¹©©¸®®»­­º¯¯¼¥¥¹°°¼³³¾²²½´´¿¶¶¾±±º¿¿¿¼¼¼¹¹½²²µ¶¶À³³Ã¹¹Â½½Ã¾¾Å»»ÄÂÂÃÀÀÁÁÁÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÈÇÇÊÄÄÍÈÈÉÉÉËÊÊËÊÊÌÌÌÍþSÁJEÊÑ¡C‡ jsÆL•)R–,Y²dÉ’%K–,Y²dÉ’%K–,YeJ F©~);ö ”#Q°~ ûÕ‹W¯_¿„!{¶mœ:vêÔSÇ.©S©<5:tè!AhÌ`™"EÊ’%K–,Y²dÉ’%K–,Y²dÉ’%K–L1Ó¦Q)Ožò”J™4fÅŠýúõ«˜2iÛÀÜ8vì~¥%Ê“#F‡:™*U¦H‰²dÉ’%K–,Y²$Ê’%K–,Y²dI)S°`1ƒ¦ š@¤”Y“Æìد_¿~“fm8pàÆ±c×®,R¤DAjÄè#F‡¡ÁR¥Ê)R¤þ,Y²dÉ’%K–,Y²dÉ’%K–D‘"eÊ”)S¦˜ ”Š6€×¤)+öëׯcϬm§N:vìØÁJ•Š”(O1jÔˆÑ!@X¦L™2EŠ)K–,Y²dÉ’%K–,Y²dÉ)R¤H™2eJ4Ž]ÆMÚ±bÇŠcfm7pêØ©S§Ž/X©H‘å R#F t¦Ê”)S¤H‘²dÉ’%K–,Y²dÉMh,‘"eÊ”)Sª iÔK™5kÖ¤)SöL™2iÛ¼S§nܸqàÀë+Õ)Q DyòäÈÑ!B€Î˜Á2EJ)Q–,Y²dÉ*2d`0aBP¤L™þ2ÅÌ!XʬmÆ͚´gÊžI³¶ 8uãÀã¶mÛ3eÅzÁJu*¬T¤<9bDš3f¦H‘eÉ’%Kš¨hÀ`À´°QL2U°JUÌ8pܰY{vìØ3jÔ¬mãÆ7lÒž=³&MY1^°bõêÕ )OŒ „ÆL•)R–,‰²dF œxùðaƒ;’­IĦ !Q¤qãÆÍš4fÏž={¦ì5kÖ¤=c¦LÙ³mÖ¨)Ö«—°cÂzÁòÔèÐ!B€°L™"EÊ’%3¾Ä€R%š;<€yr§•¦R‹œ´!$ê˜5nܶaÛÆm›4eʤY³fMþ3fÒ¬}Ç›µgÇŽ)cÆLÙ¯T¢<5"è –*S¤H9ñåG™; ®€iŦA.šX±Ò´‰ ˜D©¤q78uìÀY£FÍš5iÒ¤IömÛ¶qêÆqÃ&Mš5kÛ°I;Ö `,RŽ Ô%:(YãÁÒ/¯Ö0ÈѪ®R¥4eªDì›5pãÆŽÛ6kÖ¬IS¦ìÙ3iÛ¶Y³nœºqà¸mÛÆ 8nجQcvì)OŽAAJ2Ø”i²%B„8¥î(6¬•&Ew¶9ã·mÖ¤I“¦ìرbȘ={FÍ6làÀSÇ7pàÀqãÜ8þpà¶)SÆ Ö‹$v¦¡›&[2EBb‰.\Έ•êÂ…Ìbܸm³öìØ±c¿zõê%옲gÒ¬mÛÜ8uìÔ7Ž7pêØµk×®8nÒÀpH¢¤L" :ÀØB§’&1³es¦ˆÒ&6YÊ bŽ›5fÅzÁJ•ê©T±xõRP5kÛÀS§Ž;uìØÇ®<|øðák§®”‡zf´¡s! r½“HS«c¹Z)RÃfÍ/w2q³V Ö)Qž yòä Ô)^ȤYã8uêÔ±cÇŽ;vòìáãÇ>|àæX¸‘d .0ØÂgÓ:šþJáz•+Y)[(€ bÇ‹2e½R‘ ”(OžDÁú¥Ì8pà¸ܸqãØµk'>~üøñÃWIH#F¾8єŃ;}^ia±¥­Wš†YºãÁMȈö‹/^±bñJ+Ö/eÖÀ7n7nÜÀN];yòðáÇ?pÒ¨aqƒD;‰äàC'Q ‰Y*…ÈV%6(24èÆ ™'­”!;vì˜2e¿„SFm¸qìÚqö8pàÆ©{×Nž=yöðáã§,‘'\ à‡0`ö€aPᕦWÊ~a«´E‹‡ –ò@q#Fš4kÖž=þ“&Ù3jÖ¼±“'·mÜÀÜ8uìÚµk×®¼q™¨ñ) #B.Œ`A‡ X)BD —$(–òR† 2)Žq7nÛ6nà¶y[§Ž<|øäqãܸqãÆÇŽ]»vìÔ±›¤Á“9t’Õ)5)FDhˆ€ÄT¥Mšpµ²eª"Iwº(zN;yòäµk÷®];wòìáÃGO8pÞÀ©cÇŽ:vìÚµk7Ž›µ› ÑaGœR™h¼Á‚A‡ æ¼Â5Ì”©V¹pi*…È›;jzøèÑó¶8pìØ±S§þŽ]»vï¸Y›…›-è˜ðÃ*’$ˆˆAL)eÄpÙÂõj.\dliÓ…LüøýãÇ>zôèÑ£G½mÖ¬mãN:uãÆ©c7Ž›µR¤Ñ1²âV.W¹8½˜Ô‚ ê°ÊõŠ’9w½²å¦T¥Jv:|б=zñâÅ£'Þ¯øÄqõLž<™ t`áA’.t)Q¢‹˜ ,HBTÉV) V™3/Þ¶(™²´¥C sæÌ™‹7o=zôöíöë×/^±R:•Š×¯^E¾Xxð€@ÜÒ¤ˆLMYYñƒÁ‹(Y AB‘.DhâÔ*¥Vb,ˆHgΜ9sñæÍ£GÞ¾_¼`ÁJuJ”£CŒ<ÅJedK„ 0``@íV’$Iê"L  XÈ㎄ŒÄbþÅ­U­h²tgŽhæÌ™3gÎÜR¤R"%  (Oy"…HŒ€0xÀÀ@…\˜P¸±Åg%À@ÐB’œ;•ôX£…#¥¾qÊeˆŒ·âÍ›Goß¾}üøñãçI”(R¤H‘"%ŠTªTb `àÁ ”ÈEç—\¹^QÚ``¢-X¤P¢D Ž &ðÈÔêØ&W•ÈÜYq‹½}ôöñûçÏ?þ~‡5räÉ(Q¢N¥:Åc… <@`À€M“*m*Uê XÌ!Á"Ë%ˆ ØiÀÀ‚Z³†å’„¨Œ›»èÑã·?~üøñãGˆ!B‡5jäÈ“(P|øðñãÇŸ?ü$( B„  ! VTzÑ¡«\»h¹bE+—.]; ørëˆZ\ðrgS)[:äˆÔ/iÛ¬I“EŠ)S¦L™bM J""XBBΫ;{ )SáÅ$ É¥+×—8¹tíÚÇȹrµxð`…š„øp#è!BN³Ž8)RJ‘2eJ,g "DÉDþ7pÄÑôbNIc:Й„@A‘néB¢‡Õ­d»tÕZ!$ p1ÂæŽ ¦9rÔÈS*a̤Yã6¥ 3fРˆÐ¡F‹n`XÁG.40òe ­>FÇ,} ¤H–I-PÀÁ!+X i¡ 3hÚM3f°T Ö)Qž@‘"EJ”(R¤J•)ÂÂt‰DƆ-Jå#Œ“VUꀀ€ FˆÈÄ¡…= D¨‘#GŒ2ƒ`4Â~ÅJEJ”(R§RÁ‚+V,5dXh0ÁÀ„5@ŠI!cÍ&:-0ÉYÁjÄ œàAÄ/E* ó`R¬T¢R¥J•*•§C€Ð´AcÙ±^½bÅŠ«×¯_Š3•Æ 9HàPÃf ‹<Ø´ÒÒAN< Dˆ  A† :XðÀAH‘þ"%¤)c¦Lد^¼`¥J%ê 3ذa³&Mš2eÅzõêuLÚ6gSÖ€РDtplá‰&>,,¼(B€`àB„XÀ(ÄÙ5kטû ,^¼N9"¸qà¸Y{V¬¯_ÌÀ±“g¨L&"<Ô¬Êô$ƒ‚ )pp™³¥K‘ PhH‘ ,0`Ð@âpÃvM3e½`¥‚‹W¬T¢äµcÇn7i¿xÁêõ‹™·vø„M!£e+6?RÄØ°A‰“4# CDaÀÀƒ:¬x±b8lפ1Sö+)R§`ÅJ•Šºqàþ°ICÖ ,X½Žq“‡O“)n2qZ³¡)æÂÇ / Vd0ÀˆLxQAC9œqãvM™0a½`åÉÓ©T¤°aÃöL™²b¿~ ;öl;|øðQbRŧJD&Lø…Ï“ ZÀ¬)b€HŠ9OLh €@(°Ðç6nÖ~¥:• ¬T§H¥JuJ™2eÂŽ);V¬˜2lêÚáÃ'Ï^¶5Èpڔƌl^h¸!HE(< ¢Â€ dˆ @€ %\1“fMš2XžD¥‚+V¬X±bÅêÕ«×/aÅ~“Æ­=|öäµkw§F]\‰þ)¢Å„ ¸3«T¥ ‚ Ð@€€ (`€DØ1eÊ”ëEЬX½xÅâÕë¬X¿~õêõë—°gàØµk×®¸oÎj(  0<ð0 €!®²ì @ÐC€–Š);&ìX1^¤H¥‚õëW¯_ÂŽÁúu¬Ø¯bÊŽ{f œ:uë°ýúeÍ Lذ…E °%Æ  @€ 0ÓëØ3f̤I;–Ê“#P°~ SöÌš2eϤYã¶m·gʤ”ƬØ)H¤xõbòA€:h!R„…X0 A€€þ€ƒ ¸Š!S&Íš5nÜŽÁòäèT¯cÒ¶Ãfíš5nàÆÛv V*R¤"ÔȬG3 @À'`ìØÑ @€ lð€ lF àSìØ±cÊžI³fMÙ¯T¢`ýRf Ü8nجm7N7e¿D1"D( B<Á*FfƒhРÈ0À€@  È’…ÄeÊž1{¦ì™4fÊŠýŠ•*U/eÖ¶qǸqêÀ=‹%êP @ b V/iÊ‚pHA€&LP@L À@Ž5`x0³fM³gÊžIcv¬X1a¼¦â¥lþ7nÛ¶a³&M³^¢è£FŽ`I“&Í®²!À @@ƒ:ˆà1ƒÈ1kÔž)ûÕëW1dʘ={†ìW¯_ÏÀ±c'MÙ1a¿„ý‚å‰P @„yr”J™5kÔ¤›UÇH @€L°@‰‘ j Y³öìX±^½xõêõK™4kÖž){F»vÂb¥â%ìØ1XŽ"D(P B‡x)³f¸v¶6Üà"äÂ``E0sºy$mÛ¶mبûU¬×¯^¼~)³8nؤm—Š,eÒ¤)ƒ•JT#A€Î`AÈSª^þÅ”mc'ïØ,^0@ Á\Ô¸qSÆ)på±k×®;kÔ¤I“Ƭ¯_ʬ­S§Î›5iÛ`ý’†3fÌ~‘:ÔÆ –*fÐ:äIÔ¯mêÚáÃÖeBD‘qã…L™2e,µJÇ>|üüák§7oÜžëÕëÙ6nà¸mÛ¶íØ3lÖ¤YÛFí—'Bh̘Á‚Å Bz)³f[;zòf]rEM™+eÊT¹RFY~üüñ㇟=yòÚµkÇŽ?øÚyƒå‰ ,X° Aè$O¢D‘*Õ¯c̤Yã6N=zôæÑ£G=zôèÍ£o^¼yóèÑ£G?~üøùÃþ‡>|òÚùÃgœ2^ž¡1cÆ š6„5j (Ož<êõ‹µmêäáÃG=zôèÑ£G½yóæÅ›o^¼yóæÑÛÇ?~üøáÓ‡Ï?{ê”Å:ÕH@4fРAˆÐ!BjäÈ‘'Q©x)“®>|øðáÇ=zôðÑ£Go½yóæÍ›7oÞ¼yûöíãÇ?øðáÃç­W*Rž Bc 4€¨M›@‡y"•ê5pïäáÇ>|øðᣇ=zóæÑ£GoÞP4hРiè§T¿¨©“g>|øðáÇ>|øðá£7oÞ55:99>//@55A66E22B66J99B::F>>F<>I>>M::K>>R;;Z==dAAFAAMCCLIINBBQEERFFVAAUFFYDD\IIVJJSJJ^MMZNN^JJYRR\PPWEEcAAnBBnDDkMMcNNnLLjCCpGGrEEqHHsJJuMMwNNtNNqNNxRRaVVfSSdRRiRRnVViUUnYYf\\eYYiYYn]]j^^mRRrVVsTTvQQzSS|VV~VVyYYv]]r^^vZZqXX^^z[[{bbleeiaareeucctaazbb}eeyee~jjujjzii~mm{rr}uu{ZZ]]‚__„cc‡aa…ffdd„ff‰ccˆjjmm‚nn…jj…ii‹jjŒmmŽnn‰ooqq†uu†ss‚rr‰uuŠvvŒqqŽzz…yyŠzz}}Ž~~Šrr’tt“vv•vv•xx–zz—~~‘{{“{{˜~~š„„‚‚’‚‚•……’……•€€›‚‚††™„„Ÿ‡‡ž‰‰–ŒŒ–‰‰™ŽŽ™ŽŽŠŠž‘‘••ž’’𙙇‡ ŠŠ£‰‰¡¢¤¥‹‹¤‘‘§””¢’’¨––«••©––¬››¤šš­œœ¯žž®ššªžž°žž´¡¡«¡¡²££´¥¥µ¦¦µ¤¤³©©·««³««¹©©¸®®»­­º¯¯¼°°¼³³¾´´¿¶¶¾²²º¿¿¿¹¹¼³³µ··ÀµµÀ¹¹Â½½Â¾¾Å»»ÄÂÂÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÇÃÃÈÅÅÉÆÆÉÇÇÊÉÉËÉÉÊÊÊÌÌÌÍÔÔÜþQ½BE "Dˆ JƒæÌ”(Oœ A‚ $H A‚ $H Aâ$Š G¥„!K $P¯„öKÖ/a„1›¶ ܹsçÎ;—©S§>=B„(¡AiÎX‰òä $H A‚ $H A‚ $HD±ÈªO™9ú„*ÙµfÇ„ +&¬3jÛÀ \¸sé„¡ê$Gˆ!B$(Í™)S¢ArDHPš4g¢="茕(Qža& Ž›µfÇ~½z…ê)T²~ cp5kÛÀ…;wîܹséÒ… —ŽÝ»zõêÕcŽ’†5™ºHhC 9„ôÁu‰‘+L“úÐÑ!J0}ú )_ɦYÛÆÍ¸sçÎ¥K—.]:uïæÕǾzß`ˆ)# K.åòB„ͤ\þâ”*5i  Žø¸Ä%³d¿P‘ê(PŸ@½* 8pà¸y\¸páÒ¥c÷®^=|øðá«Çg‚œ:}°„ÀðƒŽ0:À`â„§IN¥®`0ÐaÑ¥I›xôöë—/_¯dýBõê•0fÖÀn7nܸî»wïêÕ«W¾odvÌùóC– \°ð RdŽ”™´©ˆ}è`ȈQ²˜%K–ì3eŠ%c6m¸séØmö8pàÀKÇîÝ»wóêÕ«‡lÍ $ÀøÉa€Ž†E4Tr¢Kœ5–,¹zÑ#×$VŒ19A‡Ú4kÓ Aþ›6­4jÖ¸¥{÷®Þ6nܾqû\¸s騽{ÇŽÝ;uÉð¼hÐ`Ȱ€ba%Zš4œ¨kÒ*F¹h•ªë—šqnÛ6nÞ¶q.Ý»zõÞqã¸páÂ… w.;véΥÖ‹‹èŒQ0â  „|Y±ŠŽZºråbåêV,/±,1 à;vïÞ±cÇŽ;vïæÕ«÷î¸oÜÀK—.ݹtéÒ±SŽÛ6dÀ8‚R <`@­UZ´ªu‹—±eÆ&¹buÉ’!'$`p‡/Ÿ¾|øêÕ{÷®^½xñâ½ó¶m7pçÒ¥;wþ.:vé¸Yk–KÏ Š,Z$FðiUGÏ-W·xá2†K"S®XE:¢å„UøðéÇ_½xñâÅ‹/^¼mÖ¬aã.ܹsáÂKŽ›µf¥°D0``Ÿ0uN@8`@ƒŸ?¹â\Ê•kW©N®r)Ê¥+X£)| 0/^¼xñà¹s/¼xñ๷ÍÚ4fͦYãÆÛ6nܶa“&B/!þP A‡Ë èè”ËÐ¥EŒmR4©”!V±0-šÄ¡É æÜ‘#GŽ9wîܹsçÎ;vç¸acöëÕ«`Ç&cíšµf¹n Q Ny®ÑÁ€þ upÑbdi•®[|&5²d S©KŠxäð‘A9räÈ‘#GŽœ;wîܹ‹—î7kЄú ©S¯„3¶çF€\„Œñ‚É  4€À…§8–JÅj¶©HKœâtâ„É-*‘#GŽ9rîÜÁ‹/^¼xéÒ…Ã Ù+P¤>}úŠ)d@ àÅÕ*FtÄ´è¡‚#°*µj%;;¼ÜÂÆÐ&CiAæÊ8räÈ‘#çÎ]¼xñâÅ‹—N:uß°5v ’£O¤H¡26ÁÀ›áÚÁ§ˆœ" (P|TAhР,h¸ñãÀ6>aÄ Ï¢MºHPð¢9rîܹ‹‡>|øðãî[¹oÖš“%˨W5@b“Ÿ0PØrÉË* h‚‹'Pø`჆;kð\ÚE« ‡‘#çλxøðáÇŸ¯W¿~ý*Æ Y²_²^‘zõA^\ Fž:t:áºÑ  h!ÆŠ hÈÇ-^Æ‘°b9rêܹƒ‡>|øðùzõê©WÂŽ% æë—/>00`@ž#tXêþ£Ê’! (PÐàƒ… N\QaE,—:¹bD‹S €#GÎ;xøâáÇ_0aÂd¡z%ìX±_ÂŽ%s‚ Œ‰ÓFÀK•,M£„4”Ð@‚†%Œ`ä‰Ñ¤Kx Yú a„ räÈ‘s^a¿d½z… $G>É*uEA (Âj‘¥.Wr‘ñ3„ƒ‚6®„€‚.0ØÈåªþ«]«)ⳂiäÈ‘sG޼xñâáCE Õ)R¤@IB„ªX/4P À€v.Mâ%ž\”†hÐàÊ è°CÃ^´X]ÚU‹Ñ¦2a 4XFŽœ;wîàÁ‹>R¤N"E ¨O }"5i‚ PРH%./ê¬R”Ë $Àˆ¡H K0`¨HS¬JªVµZ¥§.ÒàŃ>|øðáÃ÷ ¨S¤H‘ŠÔ)TX 8Ð@Á4õ¹¡'Œ¢EmÑ™`ÁÈ‹2q)R€AÂŽNEÄ»åéÒ.Wœy ²,^¼xøðá×/>þ|ˆ=‚ô (P H¡:•#@€ (PàÇ›V®.µ³¦& +´œPԊץ $èiUc‘®^ËvÝb„çŽ :ÆâÅ‹‡>|øðáÃGˆÐ Bˆ=zé(P2D8Ð@A ­xñºµ*N+9& ¤ ¥M·vÛ¤À E­Š¨š´j’«5Zš”ØÐX¼xøðáÇ>|ø Dˆ"Dˆ=‚ôiG†4hb•N´ ééô‚R $€„!ë•®U¥DhèRH Mw|øðåÇoÐ B„"Dˆ"D®èp Aƒ!þ\ý¡d©Ìš5®Äˆ¹D‰MªE«\íºä*Š8e ù±£“¡5kˆXhé¾zõêáÇ_>}ù 4HÐ B„ 4ˆƒ†4hÐÂÕ¥Ixô\š´ÉÏ*Jž¼Èá„—1]«dLàAFÏ&:z0Å*ófEŒ¾Õ«‡>|øðåÓ§/P @‚ 4(Pš4iR0  Aƒ5nq"£‡’:`lT¨QB‹Iœ8騋Š"ð๴çR.Wd˜¤°ÀCѸzõðÕ‹‡>|úô¥I“&Í›4iÒœ9sæŒ (8`@-F‹J]º’ÁÀ %,xqÁ+•Ÿ[¼´þYÁ6uð\ñÓf‡*©«‡>|øðéÓ§OŸ+V¬X±2ÅÊ”)S¬p‰`à€+¼¸â´éÄ"+ 0`D­EÙµK§<ôà‰sK ¶4éRF.vìâÕ«W¯^=vìæE‰%J”(Q¢D‰2eJžDðC‹ÖªK¬ÈÄù!GÁ æÔÒôAA J½xé*²ƒL©U#(P€á&KxÈP6m¸séÒöí\”'Ož‰%Š•3h "¤EÁþ L"@ W.JE„Èq%'B#,hâµ+Ï.$tÚ5d1›~Üør ‚‹MwA‚ôèªb̦YÛeŠ•3gÒ¼ $ˆ¢Gl&¸À²&ƒˆ |\¹¢¤Ã@„tËê0âBAZ{Fð2bÀÂ*='¶ô1ôGÈW¥H¨ÓˆÐ'R¤H¡zõK˜°_gÒD‘£G PÉzÅ Ãw~HXÀgÕ-=?üHؗ͆ @ LPµ§E-@@ÀÜb⢠VžÄxZÕG1¦ ¡zõë—,Y¤$}úˆ!D I…ªX3f¯,ˆ3ÄÀ‡ª\¹R´â†vª T ‚Mþ·nÝ¢E«Sœ;[èèaU©”+<Ç(0 DدbÂdûõ Ò A"„è$H Pý*vìW„:Fèh0° –«N´€TÂ`ŒVƒFT]ñ¢Ê•«[»T1"sç+NŒ¸¹C뇆Bdù:…‘#R¨ ½9c¡DŽ }Š*T¤@ ó£ÏŠþäêÄIޱjAh G%UµV¹¢Å‹V˜Nz&]*Å*K¥B@€ ¨AoМ!ô Ò›)O$}‚$é(R¤>úôéÓ ,:Øü¸¡€ÎªV“êÙskˆ4hàgÕªZ­T娴hÓ?y&aÂeèJƒ•þ½AsæÌ™4¡™(P H‘" (P $í°3BG €¬š´‰Ò dÚþ4€¡A€ äÐZEkȪŒâp ±"H©M¯–hh“+gΤ$ˆ 4V¢|"u *T¨Nú ¤./Z` sg‹:k&Mº±,Û 4ò¥Õ¦V4ðùp©Í äèÉ%kÉ?2Y9“æ Bˆ Jc% $P¯|ù’… $HA*Ó ‡yˆ„qEž+~tÕ0p@ކ9š\„èaÁ‹"‹°8P¤ˆ¢<¦ÊÐù0Ñ™3i $(Pš3Sž<"õêÕ+TŸ%JþD‘#P4Ó§†" x¬¹DÂE ü¬šÓ :üÜX3IG `ì¼’e)Ï“ÎX±båLš3V¬L™%ʧS¨H‚„ˆ!Bˆ=ubÀ=u6]‰@$B„.œøŒØ£é¯±V…鑯?t „Ò'Hˆ:ƒ`š4Ç„ùzE )R§P½zõJ–,DK$h bÉ;v0Òd ‚£E@0嘤cH—-MbÑaI‘"!/4€€‹,T¤H½z… Õ'DÒ¤Is­Y²_¿dÉ’õê—0aÂŽ%#EfÅ 0Z&¹ÁŸN",üÐ@E€/b4‰ÓdÆ6q ³ãІþ›\1kÖ¬X°_¾^¡BÊQ 3ܰY³6m3fÇ‚ùú•l¶ioèÑâé‘ ;rQÄæ† Lº‚…Ã#*–!S&N˜½:Öã…„ \èÒ…B€X€!Ì%#e,ìPC‚fÌ AkÆ Ú´fÌ’ “E U0fÖ¶qãÆÛ·pçÀ5“ ‘ @‚rêÕ/hÍRì€q!@€(DÀ@°TR aH #Œ0³fmÚ4hÌšMk–,Ù1a²¢úÕlþ7pÛ¶a»6m4a  $¤G^Mƒ6ÍÚª<Ž €0” á2kÓš1öKرdÌšAk–LØ/aÍÀ¥c7Y2aŠ {%‰ A„I‚„Š™5kÖ¦S¥aG“ ®h‘ €" x1äÄ"^ŠY³-Y1a¿|ùúUŒÙ4kÖ 5ƒf[:vÅd¡úU,Y2T!"Dh Bˆ|1›fÍ7už8ᢣEˆ¸°1‚?®”a…ÍÚ¶mب+vì1a¿ˆ1³¸mجm ‡ŠÔ+fÓ¦%Cuê¤AМI#èÓ«_þǘYK÷î‡&KFXˆ¡âFŽ.x&Åi§Q®oÙ±c§Ž]:kЦM›íØ/a̬;ΛµiØd ³†Í4hÌ„Bô挕)VÒBŠT1lçØÕ˶&É‘&dÈT!cÆŒ™3„L¹ú†¯^½zøðÕc7oÜ  ö Ú6nܸmöí4lÖ¦Yã6­Ø'BiÎX™2åLB~1³f »zêb‘aR…Ì”)dÈ1ë¹xñêÕ‹‡¾zóØ¥cwn´dÂ’1›6šµmܘYã¶íܹmÅ^=”æŒ+gÒr„ê×±b̬…S÷îºdÈT©R¥ VæÜþ¹‹/|øðá«þW¯^½zïØá«73YŸ¥±rMš@„=zé¨O@‘ú% šµmçÞÕ«/^¼xñâÅ‹/^|øêÕ«Wï¾wçšù"åhÀ4gÒ¤Iˆ"B‚!z Ò'R¨d1›Ž]½zõêÕ«W¯^¼xñêÅ‹^|øðáǾi¾P¡‰P 4hÒ¤y(>Л4iÒ¤y#Ñ'T¦¥›7¯^½zõêÕ«W¯^½zõêÕ‹¼xñàÁ‹/^¼xðâÅÇ>|øòå !ù€ ,Dd‡!!% """%$$&""*&&*%%-##-)).))+&&2**1**5--2..5--:11622:22=55>55:99>//I..A66A44D55J99B::E==E::J==J>>M::N==R==Z55U==f>>h@@FBBJBBNEENHHNBBQBBVFFRFFUDD[IIUKKSJJZNNZMM^II]QQ^SS\PPVDDdAAnBBoDDjJJfNNaLLdKKkFFrCCpHHsJJuMMwNNtNNrNNxQQaRRfVVaVVeVVjSSmYYf[[dZZjYYm^^n]]jQQrUUrVVuQQvQQzWW~UU}UUzYYqZZv]]q^^uYY~^^y[[zbbmiiobbrbbvffrffuaaybb}ffzff~iitmm~jj{ss}ZZ]]ƒ^^ƒ__„bb‡aa…ffbbff‰ii‚jj…mm‚nn…ii‹jj‰kkŒiiŒmmŽmm‰ooqqqq†uu†vv‚rr‰uuŠvvrrŽzz„yyŠzzŽ}}Š}}Žpp‘ss’rr‘tt“vv•vv•zz‘yy–zz—~~‘~~•{{˜š||™‚‚€€„’‚‚•……’……•€€›‚‚……ž††™ŠŠ•ŠŠ™ŽŽ™ŽŽŠŠ‘‘••ž‘‘š˜˜‡‡ ‹‹£‰‰¡ŽŽ¥ŒŒ¢‘‘§••¡’’¨••ª––¬››¤šš­œœ¯®ššªžž°¥¥¬¢¢³¡¡²££´¥¥²¥¥´¦¦¶¨¨·ªª¶¬¬´««¹©©¸®®»­­º¯¯¼¦¦¸²²´°°¼³³¾²²½´´¿µµ¾²²º¿¿¿½½¿»»¼¬¬Á··ÀµµÀººÂ½½Ã¾¾ÅººÅÃÃÃÁÁÁÁÁÆÄÄÅÅÅÆÆÆÇÃÃÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉËÊÊËÊÊÌÌÌÍÅÅÒþS¥JEª!B„õ!SfÌ“&K˜!B„"Dˆ!B„"Dˆ!¤IŸE©†13ö T#P±„ öËׯ_Æk–M\ºtéÒ¥K—)R¨<-"D >dÆHiÒd "Dˆ!B„"Dˆ!B„"Dˆ4³&)O—ò”Ê4eÃ~ýúõkX²hÙÂ….\ºtë~¥ÊS£D„"Ô‡Ì)Oš,aB„"Dˆ!B„"Dˆ!B„‘%KžŒC† ™>¤’Qƒ¦Ìذ_¿~kF-[¸páÄ¥[·î—,R¤@yZ”ˆP¢D„ú‘òäI“%K–þ!B„"Dˆ!B„"Dˆ0Y²dI“&MšŒá“JY5€Ô 16ì×/cͨeã.]ºuëÖÉJ…Š(O%Z´(!>Rš¨h8†‹Ž Øôè§Ð:+Rèöë×,_²fýJ%kÖ¯dÔ‰'N›6mÚÂ… .;vñîÝ»wOŸ¾kèäâ‚BpèÊ„ÃÇ€ HàX9 "’—J–2eHçJƒ+³’+fÌX2c¿†K-[8qëØe«–M[¸páÂ¥sÇ.^½x÷îÝÓ7*F&$pnèÀQ¢D„)\ªèqcK&z¤ek”#[´ê$(4jÑš%þƒ­Y³hÔ¾­cïž¶lÚ´q .œ¸tëØ±‹ÇŽ]}úô «FŽœ¸oÔ” ûåË):BD£¤Vºä±²@Á h°àÀ èˆfÔ¨H‘né‚•‚Á‚ !X•+¼yúôéÓ§O߬X¿~ý–̘1a³d‘ºr`À1lYA‘EÏœ p°âÁ„ (P `A•B…2½Òµk¯Q7,ÜXpS¹råàÁ›7O_¾|úôýš%+)Y¿Šæë×, (¦Ž=:ôÌ9þp@ äQ¢AĨ# š ·xí‚Cà >Ü”+W¼yóæÍË—/Ÿ°_¿|Å’õ˘1a¿Œ3¡ À€zàÀ3cÀ*,(PpàÀ_Р !áÀ–6…9´éÖ®WhH0°ᆕråÊ•ƒ7oÞ¼yóæéökØ/_³P¥B•Êׯ_ÜP@A “B´êBà @‚%œ 1êH¯Vñjň æ”ðV®\9xðàÍ›7o^¾_¾fÉ’• T#B‹<Í¢ÁB‚´B–GF<R¤R¡"E (O‹y"Åe€ (ÈTéB<7Øp `…(Xà€Á‚ ‚né•gÏ«L»l¹ŠÇÃWÈàÍ›7/Ÿ>}úôéÓç (T¨H‘"ŠTªT<*dQ @I>ª‚3…  ”ˆà%Ïpl˜q ¤Q·6ÑÂ…ËV¥;n2СDlÞ¼yùôéÓÇOŸ>þ}„-jä (P H¥BUãÁ hS"R%;†Zp`F¡sheÒàÃÐVµb²µª-K¶\Š”ÅÃ!CÄæÍÓ§OŸ>~úôéÓ @„-ZÔÈ(P!HP ÀÃ-;HÐT¢T'S$ B ¹rè–-+îDÊÄj§[‘Ze¢uë":(<ªÓ¼yúôéÓ§OŸ>}úúô!B„-zäéD„ ì0a‡ËJuFm)q@A /zêd‚Õ%… 5êà Â‰ŽžJ£`é²Â!BiFÍ»wïž>}÷ôñÓ§P@€!B‰PPÀ@Á iþôTBÄIR‚hÙ¡gÈ¡Z•Ü9€M¡,WÀT*”©Õ¨ \)´E×=}÷îéÓ§O?~úúôéÓ§O@€úôéÓÇÆƒ ÈðaçŽ 2n h ‡ º(ÁÒU Q+ pÊÄ…Ž!Z”2J±àH¡:h`Ý»§OŸ>}úôñëÇ>|úôéÓ‡2d@8p`€Œ.‘*¹ Ѐ‚+&ª,ÐB Ï*^¶Zñ(iA •²T¢DlÔ¨H"D©̨{÷ôÝ»§OŸ>}ýú‘!Cf Ÿ5dÈŒ3fŒ R©8Ä€„AÀ‚BvuXàFמZ«þ8ЃS¦UnÑÒSáÄ 0lÐTº§OŸ>}úôõëׯŸ”1R¤H‘"åÉ“'O¤œ0`€€•ZQÒ#`àÓZ„`â5Iƒ t¤9Ñ€,J`Ø Sè %vìâÝ»wï^=vìê5iÒ¤I“&Mš4iò䉀ɓ –¡<bÈYaÁ€M "(pPËͦ]µh, ¡aŽBTÇÐ 4z€ú-[¸tëØ…£–-Ü’%K–,Y²dI“&Mšˆ@"ÓªW®8ÔEÀ  X0iÆ‚hÑ…l œvPà€A„L êŒ$è4©|Í’5þ š6mÕ²…[²dÉ’%K–,iÒ¤I ÎXéR Î6<:  `À™^YX†…VÄza"Q)Í :LADI AºFe¹’ˆP"O¤d%£–µ%K–,Y²¤É’&MžŒQƒÈ„["ÝAc¥ƒ ðæ‰4wL$Èr«×¦°FqÒ¡4_”„©3ª$}"Ô(Õ/hÙªQ[ÂdÉ’%Mš4yR†LŸw^Œh ƒN¤: \ÃtàÂ…]h`µjU©Äztí1ÁéÎ(^:ÜŒ æš:†Øà Ó‡ @P£¦M[¸%K.iÒ¤É)eøôtÆþ‘ B€áÄ)Æ=Òˆé"vÒ…V™lQ ÑàG•Y2}…lžWh°i+Ó!+h5Z´È“¬_ʨQËÖ䉔1cÈðááD…¨Q¡šL•"ìpÃŒ¯^Ärq$iD8‰dÈ‚(HæË.zp@Ú 'P©R¥šõë×°_cÈðéˆP¢E PÍ’5j $b´²Uˆƒ-ÈvÑÚ„§Ò!dwü0Á@ J¶h B†Œ‹DhÕÉsƒ¬<©¥’õë—¯Y¤yòÄ B‹=ò”jX³d¿Îèù0 ,]·t ÈÀìž H´"–ÉDZþ^tÜeédˆêàªc©Ž!<c,ˆäE˜°a¿fýúõËS>|úDhQ£FžRý*öë%L,T¹e«•œbÐêp`@]¼ä¼aPkS6lÂÀRâJÉ4… Y¢dÁ.«dýB•ˆ!T©<ñ#… B‹y TªT¤H9âd¦X°ZYà!F 32Ùµk¯=ºj飤N+0z8q8M!D ,(¸á¨>kÈŒéãiÑš'Mx  .l†(I‚Ì™,Ì€S̘1cÆšA£F-Ù¯T dýbFí[8mÕªiÓ&.¶d¿<ˆ@‹<ÉúÅaÀL$X†‚Pä°`£RŽ|L±°À$cÉš5S–¬4eÉŒýò…*Õ¯dÔ²iÓ¦M[8qëÂ)› P>}úJä)Ö¯fÄ4`@ƒ\ 0 †ž )Àˆ@‘ƒŠ æ(£F ´fÉ”AKf̘±_³Æò¥,›þ6mÙ²U£ Z³_ ñáÓ‡P£EdAƒÚª)*¬¸äÀÀÐÁåF vàP80@Ç0jÒš%ûõëW1cÉ”5Sfìׯ_É­c×,Y²a¿~ý’ÕPŸ>€yj”*5jÑ …Û$ @ .S0€Â   I ‡;„Q«ÖÌØ°_¿fùúõ«4jÔš%kMÛ:vÃf¥ò5̘1Y‰¨O@„|%‹F š6v«Œ¸²eÁ%t0±Â€\¦ô˜dŒZ6mÕ¢ Vìׯ_¾~%‹Æ-\8mÔ e— ”¬dР‹•*Õ¢>|ÊH!ÃçQª_þÆ’Q[W˜ª(ÉA…Š1ip”ðfÔ°kë¹cÇ.ÞºjÑ Aƒ¦¬Ø¯_ɪ…K'Ž5hÔdý¢VZ3eÍ~‘"Df̘'cÈô!ä‰Ô0jéØÝ«¶æK6b̬1cfÍ3†\ẦïÞ½{÷ôÝc—.œ6nÚšûõ«Y5mÜ´eË–­X³lÔ QËí—'@dÆŒ‘"e @ž~%£F-»{ìr‰yEŒ4f݉uhÕ¹yóôÝ›wOŸ¾{õØ­s—.[³cÊkZ¶lÚ’QË–-]ºlÅd-êCfŒ”1cÈôI„ÊW±aɨ…c/»aˆÄ|Q2$‡[åàþÁ›7oÞ¼yóæéÓw¯^½{ìÖQkZ´hÔ²eËN[8qëØ…û•jQ2cÆŒ!ÓP#P©b‘òULY5€áÒ±‹7oÞ~÷Øi›å‰Ð)R¤YÓ‡'P @‘"ŠÔ¯dÍ QÓ¶.Þ½yóæÍ›7oÞ¼yóæÍ›÷}úôñ»þwïÞ½{ñØé»/\²Yžú”‘2f >€-ZÔÈ(Ož@‘úõK4méâÝ»7oÞ¼{óæÍ›7oÞ¼yóæÅƒÞ¼yóæÍ˧OŸ>}÷îá»w¯ž¾zé’ù"•¨@2cÈ!Ã!@}JÔ¨‘'R©f%ƒŽÝ½{÷îÝ»wïÞ¼yóîÍ›7oÞ¼yïÞÍ{7oÞ¼yóòéÓ§OŸ>~øðá»§íW*Pžõ!3†Ì2}úôáÃgÍš>„y"•ê´pëêÝ»wïÞ½{÷îÝ›wïÞ¼yóæÍ›7oÞ»yóæÍ›7o^¾|úôéÓ§?h¾R¡Õ2eÈ!Ç>Ï2dÈYӇУT¿ ­‹W¯Þ½{÷îÝ»wïÞ½{÷îÝ›7oÞ¼yóæÍ›7oÞ¼yóòÍË—OŸ>}üøñ !ù€ ,Dd‡  "%)!!#""%%%&"")%%*&&-""-)).))+&&4**1**5--2--6..9--=22611922>66=55:99?//D66A44D66J99B99F==E>>J>>N::J<cÀDa²d "Dˆ!B„"Dˆ!B„"Dˆ0‰2æP¨L˜Â4jX´dÃ~ñâÅë²jÚ¼y3çÍ›9sèxÚ” S¢C‚ Äg ˜(N˜,QB„"Dˆ!B„"Dˆ!B„ˆ’%K¢€3&Í>Y‹– Ù/^¼x cVM›7oÞÀ¡C‡Ž«N›6aBtHСC‚úŒ‰âÄ “%K–þ!B„"Dˆ!B„"Dˆ(Y²„ &L˜DÙ3*™5€Õ¢ ûÅ‹¯a̪iëfΜ9tèЩ5ªS§L‹B„èŸ=Q˜0a²dÉ’%Dˆ!B„"Dˆ!B„‘%K–,a„‰“1‰†Q³f-Ú°aÆ KV[7oæÌ™3g.U£:uÚ„i¢Cˆ ê3& &K–,YB„"Dˆ!B„#0bY²„ &LœŒA”+µjÕ¢!C† Y²hÚ¼y3gΜ9pÞ¼ ËÅjT¨M™6a”(Ñ!?{€‰Âd‰’%Jˆ!B„‘"Ir¸Èa‚€‹IŠ0aþÂ$Œ UȪY³f­Z4fȘE“¦­›7sæ¼yã¦Í3dÃr©j”ªQ0%:ä‡Ï˜1Q˜,Y¢„"D–$É!ç @%V˜`áGŽ$N¢ð5Œš8oܬUK6lX2iѪiãÆ›¶j̘1« Ù/\ªXåâ•KU'L‡ùá3Œ&K”!BÆ9r°Ü9²ÁD *"qª¤ÈOŸL¼¢iãÆ­Z´dɘ1c†Œ™´jÕ¢1K† 3mÕ¤!ã•+ׯa¿r„HŸ>i¢0a²d "&n<*£Æ›+r© Ð…§S8z ñ“iX5nÜ´Y³Æ[4dŘU«V-þZ2fѪUóÆ›5fÆ!c– /U›0!ò³'L'L–,i1$#@¨h@à¦E‰UNøÀÇ$£¢qóæÍ›7pæ¼Uc­ZµhÑ¢E«Æ›6pæÀq³V-Z´jÚ´EC– `®N‰ùÙ3f ˜/‘ÖÐaçÈ lБ¥‹+z<°p @N5oàÀyóæ›¶jÕªEK†Œ3iÖ´Y«æÍœ9pÞ¸iÓÆÍ›7nÚªEK6ŒW'L‰J“ §GS @t*K6ÉÉ1%K— RÄêæÍ7kÕ¢E‹†lذaÃ’1‹&­š5kÞ¼3‡Î7oÞ¼qëæÍ8þpÞ´%CÆL'?ª½ñòÁ2ŒîPÙh UêØñâÀD!cܸq«Æ Ù°a¿råÊÅ«2fѪiÓæÍ8sèÌyŽ7oæÐ­[·n8nÑ*)2ª#|ÐpE€$+H<‚c‡‘«*3R|÷èÉsçŽ=zôÞ¹ãÆM7oèС3gþ]ºuè¸U+¦€ w4DÈ "[²ÈáqÂ"q «ª7°ä|8Qâ c÷îé»wï½wïÞ½{÷î;mÕªiãæ œ9pàÀ™CŽ[5WpsD ²(8 ¢SYTœPbªT…ÔÄC†Î -†|ôîÝ»wìØ±cÇŽÝ»wïØ±ó¦­š4dÈ¢UãÆ›6nܸi³`Á•/**@Ȱ¡‘ŽP¥²4è*¼qèQ%N\rÜ ð!I’$ØØ¥7nÜ8vìØ±cÇŽ»uæºUC–KÕ¨\ÃC–,Z5c BÆÑ3fT:à€Rþ¥I?ýbƒ’«)9(E’„Š‘ 3 I2$Ö¸qãÆ7n;vìØ±{‡Î7iÌxu´)T§Q¬xýª"Sxð°Øp¡B–@ÞÜÑs V0<…N{4š8œNå¸3CA 9q 7nܸqìØ±s÷îÝ;zèÐÓÆ «M›0aÊ´©+ØPòâhŠdq£&ËG:bqÂÈӾJ–f‹–‰#t4”ád&I¹qãÆÇn»wïÞ½£—.;tܪ%Û5*Ñ!L:ò°Õ?>8Ð@ƒ;ƒlèø‘ªR–<…Zñ£ÕŠS¤H°N© 2HŽ:þ_¾Ø7nܸqDZc÷îÝ»{÷¸YG8nÉvm$¢)Þ0²b£Ã Pॎ*üp‚S+yÁPŠ©ªF_¾˜ÙråHŽHãÆ7ŽÝ»wïÞ½{wZ´jàÜ¥óV Y1U‹ùÑÁÑ 7*Já@LUPàà´T²&ŒS!E‰*Y²3ÈÌ W¨h03nܸqìØ½{wÞ»{÷¬qC÷î]:pÔ† ¦jÓ¡(¹’Ã…P‡f4xààÁ#cÁN âÄÉP!NÈLzÂM…äÆ7ŽÝ;z÷îÝ»wÏ8vïÞþ¥ã–Œ«\¸:©Q°ƒQ2Nè¸áà€8pAƒ„-x9U)Î#€=¢ÄÈÒ®I B Ê°ÁÙ¸qãØ±{wïÞ½{÷îýÂ9qÕ’ Ã… W'* 2DðQ% G(P @(‘¢ƒ-œ8¡RuÊ’«W®8iQp *‚—Ž»w÷îÝ»wï+U¹r冬ذ]¸TuBCÁ.'d̨’¢  @Aƒ 48¸3U*XµôÔqõ*Ö ¤à±Õ¸qãØ±{GïÞ½{÷îåR¥jT(U¼† Û…+«4x“ÂËK þ@€ 4p A‚<´HªekRZ®*…Pà Ã+p7n»wïÞÙ»wï/^¼r©RÅkØ0^¼† “!ÂAGȸaã@@ à@B8P€‡–5¯ô\"E Ï68ÈBç œqãÆc÷îÝ»wöìÝûÅë/\¬F5 ¯_à„hРœFY @€À `PÐ Ä ”`¡:”ÊVTuêàøRˆÂƒ*pÜÈ)7nÜ8vìØ½{÷î=^¸X©5j"Aˆ6©ª”áQ… Úäqç @`B… *üP«•1:“l½ÒÄþÖ$WBdðb¥Ë£gãÆÇŽÝ»wïìÝSjT§N6%$(Ñ(7'8ehÀæÑ*”N p@‚t ÙPÐÀAƒ¨N¹Úõ&Ö#KÆ‚ ‹•ÇËpî<²ÅŽ;vìØ½{÷îÞ½NF…êÔ à&LˆaêtE  ì8baÆ%(€à&N¡B4Pà&ª ͬ Ä)˜°J…ðÐéðæ5NÆØ½{÷îÝ»{÷îÝ»‡iS§N¡:uÚ´©Ó¨Q>ªTyРQŠ nTš€* ’£ÂAƒ…Œ]ÂÓJÏ$9´Š™z g ©ádëÝ»wïîéÇß½þ{‚!J„)S¦M›:… u#HŠªô¸ñƒNœ @ðñˆ 9jxàAU)U9vÞLâ$ÌY¬S­Ný¨ÐUœHµÞ½³wïÞ=|øîÝ»çÇ?‚!B”Ó¦L7DTˆ‡‡™G–qQ Â‘8f̘p3¨'W¯:ܹ‰QNœ„ƒ«Ò‰”ɉPÏ;z÷îÝ»wïÞ½{÷úðñãÇ A‚!Z„©G‡ýT) @(ôˆÖ£;…re •ž|÷úðéÓ§O?~úðáê˜rC ‚©"¡¢%'V Zb¡²dŠL,@zLU24(-ZXÁbhPœ/r8Ñ£wïÞ½{÷îéÓ‡oÏž=|öðéÓgϘ1c0 àÈ# 8(‹›*…L] àR,F´ÌÜx)H!F§bÙ²U+N’$.Ö QCå'zôîÑ£wïÞ=}úô3fÌž=cÆ€Œ.˜bdG€´P¥‚$' ÄBe)˜+W¦h¹þâËU,Z¨ ùòåË4r q¢wïÞ½{÷îéÓ§O_0Q¢D‰%Š“(Q¢X B*WW¨ –¥ Hq@€€#Jœl³eË£X“ª âÄÉš5jРáb¥ §uîÜÑ£Gž¼uëä1a„ &L˜0aâÄ ?lä‰uÇÁ‰`®²¼9¡@B„äad‰–±ZyØØ©‚£G€ä¨A(P$J:xÜáEM[7sèÖ³¦ÍÛ’%K–,Y²d &L˜˜ Q¨ JrÔQ'… S)ª€8Q'Ç =°*Ù2Ʀ‚ )dpNÔœBEæÇ7ªX©bÅþ+7nÖ¸y[²dÉ’%K–,Y„ 3EžÈÁÃèJ44ì(DÊV!8lmycʘ1cU°!ƒW_$q’#)N¥Ggl4 ‚H L¡T ‹f­Zµ%K–,Y²dÉ’%Lœ€IDÄHK”|ÐCË‘R¶h¡B•ªŠƒ)_h3v‰€€ ¬PBõEÒ©@€q²rHŠ+|úø9´h¯hÖªE[¢dÉ’%L˜0‰f EFb¡T‡ [ÇbÕ!e‹–+X´Þh™”ƒ”­Z´f”¸3£Q¡`ñ2gÍ#8ràœ@ÓG?‰F «Æ›·%K.a„‰0cöôñsÈHþ–8é ð£)Z±‚ VKO*Z°p¼‰E+•Aœà\2ëQœS†â¬yôÆŽ•8ü$J„“ª_È¢UãÆÄI0`Æ¤Ù³Ç D†ˆ´°Š“ 4¡‹–°cƪ¡EÊ ¨<4B¥F ,Xœ qšÅ‰Ò£Hœä¼©È¦MBR•‹×¯\`ÆìéãGÐ!D˜FáR…‰’±8é!pà/ljѪdʆK;4èðåª5ƒL‘¢¥H˜°VÆ 9âò¨›K‡…R•+.Ue´ÇAˆ%Ê4Š3d£â´b,Ø  "8"‘"ˆ±A²ÐrÓ *þI0dùˆMcÁ Í2IÍ™ªkT.^¼XåÊ• Ÿ={øøñ#(Q¢D™Fåâ5Œ—¡/U„Ñô› *T9Æ)­`lN<¸„ƒ‚EL‰øQ¨'V 8ÉÙÑàM<ÁF±êtÈСN£íEAˆaÚ´©Ó¨Q¡2=Jã­F!x!ñhÃ;P;FË”—I4DH’ÃQˆ r8Uâd –£ €ð 4k¦>i€ñ“ Ñ'K0-J´Ó¦P›2a„ “ @gL‹åàœR âG0cÆŒÑÂ0¨EŠ!ªIa…Ñ GÎbÑhÐ@A Rüþ¤ ˜1|ö„‰²$Ó¦M›:u µiÓ¦M›]tÅN°`*@t±+¼3f,-€+™ÀÇTT®!G˜# "Pù‚Ç 6¦ÆD‰Ì0Q¢8q„ ¦P£:mZtÈ?‚%Ú”ˆ@+Ì )s…†LE«r@9à8bt@Å8µâÑÃU† &TèPðŠ &NœDq„ &L˜,éªS&L‹B„Ó¦M›9 €$Ð:…$|À‚!…Hع‚ÆDŽBèà$ŒJ!Nî¼Y%‰™?Ì0qL”(Nœ8q„ɒN£BmÊ„ ¦M›6mê´I• -Ö$¹Rh‹†$) @ذ!þU¡;>H0£àÑ,WÌP¹b M’!_]Q0M0aÒìÙ3fL0`¢8Q¥JU¨M˜6uêÔ©Ó¦MT™ÑÃÉ—)¤@̘ñf‡©G´8™ò±*3†ñ²¢æJŠ’$ùÉR?ñÙc("D‚üì3`š4Ãx±jS§N¡F©R¥Š«@Cü€aR¢Q[6XD§£G$H²C4c äpñpAÑ,˜´ÍÚRáG®Q:R¥j&AiƤC-Ú°\¹p±b¥ /^¼† kæP##º˜ÚrÄFr :³áÆ.MÉ¡‚‘ Ö|0Äl#þôK–ì×®\¸TµIÐ0Ö¬Y³2dÃ|åÊ5,š6k ¥)âb'.9>`pó…“›àX€šfY©Ð@N¡S¬°¨ø‚µjÔ’ ãÅJ•ª\¸B%òãÍ›7pÞ¸U‹6,.^̼™[7Ë&IzXzÓ‚Ç…#\ä\ D Öíûõ„‘• RDâP• 7Þp³V-Z²a¹TRÅ «P›Ö¥C‡·h¿X©ÂÅ‹™·uòœ Ã$É-&<Ú"‡Å a@ Á­}§äÈ©’¡p… rƒ7kÔ¢%+ÆkT§N¡T± :pâþ¬1–‹•*V¹ŠqsGÏÝ'F†p`ð‡9t®à€À„¼T€c«œ+]@<¨p£PS¨qãF Ù/^¹TuÚ„)S¨P¬a³Æ ²_¼xý–L:zôèÕ† ,0a¢… †@€IÁ¼lqó…‹@RÔ¸¢…š5mÔv 5J•ªQ¡B  2d¿†6l²jàÖÉ£'ÏÝ3g¨˜@8bA  @@ XQÐÀ›R%‹V-2U˜6b¥J+\ªX±b…+¯_¿~ ‹Æ I¾`ˆ £…†!ökذ\£6uR•+W.^Ʊâ5l¯aȆ cVÍ:sÞ¬ñ&€\4@¨°` |IâbH °dˆ‚|¼±‘«X²dÉ¢E6 S¢Mªrý–¬2dÌ¢Uó¦M7fÈ¢Œ–lX(Lr"@ Â…,Nh@ €€Ô ²A=¨˜ þÇ+³†K­Z5n܆©Â„)T®aÑ´y³V­Z5nÞÀÓ6ŒU¨N›ùñs(‘*/Rx€€#Ç "áCŽ!ƒ 4üˆõkذaŘE«V ¯Q›Tñ*VMœ7nÖ¬qófÎ7d¼2 òã‡Ï?ˆ0ú"‚+\’àX  p€@dȘ1K†ŒY´dȆñbjT.dÔ´qãÆ›7sæ¼1c•IŸ=|úø9”IU.fÁ”¸‚A*$ÈB@ 4p @@h$«V-Z4fÉ’1K6lØ0^¬ŽÂ…Lþ7qÚ´Y³3^›íÙÓGP"D‰TEc­Ú$8L °@n¨¸òAƒ›)8ÈAήjј!ã•‹×°bÈ’1K6ŒW.^ȼ¡[Ç ²_¼†ñR•¨Ï>~aJ4 YµjÒ¢‰Ó#Á(@‡*)h<ŠT¡‚ gZU«ÆlØ/^¹påÊÅ Y´jÕ˜%cVºu¿pbõkØ0U‰ òã‡?‚p!‹VM·t¦\ !¡áBŠ *(8p Å$G hÀóK7nÖ¤ýú5Œ¯\¸r!«æÍ›7nÕªi7ª“*dÑ¢S5j¢>{€ÃÓ¨\þÃYCçNØ—#r¾¨I’dE NTRseR¡cס[·ÎºjÑ¢E‹ÆìW.^Ì´y3g®[µhÕTñ’f­3dÉxuò3L”(`Æð„©Ó/kæÖѳ(Lš/_¾| óå –0’Z5zvï=z÷îÑ[Î7oܘ Ë•‹™6nÞ¸iÓ¦m³jÕ¤UÓ×&?cÀ€‰Ì?‰p%«VMܺwéZ}aâ$ š0`ÖÌzÄå¹wïèÑ{GïÞ=zòÖ¡[gN³b¼†!cMš5mÝUÓfÍœ9m¼T!â3L”(`Æð4êׯ_ȪKçÎ]:aа‚aê4ÊW4oèäÑ£G=zôèÑ£GÞ»wïÞ½{÷îÝ»wïÞ½{gÏž½{÷îÝǯ¾h¬FÚ”ÈÏž1cÆŒ³g>Oš1cÆŒIÃG¦Q¹¢¡“'½zôèÑ£G=zôèÑ{÷îÝ;{ïÞ½{÷ÎÞ»wïÞ½»wïž>|øðá !ù€ ,Dd‡!!%(!!#""%$$&"")%%)&&-##.)).**-&&2**1**5..6,,1--:11622922=55>66;99?,,@66B44D99B::E==F<>M::J55I>>S==Z??h@@EAAJBBMEENDDJHHNFFQEEUBBSCC[JJVKKTJJYMMYNN]II]QQ^SS\XX_DDbAAnBBoEEkLLbLLjCCpFFrHHsJJuMMvNNrNNxQQbUUbVVeRReUUjSSlZZeZZi]]j^^mZZmSSsQQzSS|WW~UU}VVyZZrYYv^^u]]rZZyYY~]]z^^~aanbblaarbbveetaazbb~ee~eeyhhuiizjj~nnzmm}qq~tt}wwzZZ]]‚__„bb‡aa…ffdd„ff‰ccˆjj‚jj…nnnn†ii‹kkŒiiŒnn‰mmŽooqq‚qq†uu†uu‚qq‰uuŠvvŽqq{{†yy‰yyŽ}}Ž}}‰qq‘rr’tt“ww•uu”xx–zz—~~‘~~•zz‘{{˜||™~~š‚‚†’‚‚•……’……•š‚‚††™……Ÿ††žŠŠ–ŠŠ™ŠŠšŽŽž‘‘›’’ž––ž””›˜˜ž‡‡ ŠŠ£ˆˆ¡¢ŽŽ¥‹‹¤’’¡‘‘¦––¡––¥’’¨––«••©——¬™™¢œœ¥šš­œœ¯žž®ššªžž°——±££«§§©¢¢³¡¡²££´¥¥´¦¦¶¥¥³©©·««³ªª¸©©¸®®»¬¬º¯¯¼³³¶±±¼³³¾´´¿¶¶¾²²»¿¿¿¹¹½¯¯Â··ÀµµÀµµÃººÂ½½Ã¾¾Å»»ÄÂÂÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÃÃÈÅÅÈÇÇÉÆÆÊÂÂÌÈÈÉÉÉËÊÊËÊÊÌÌÌÌÊÊ×ããçþG©Å ‘?~ôàÙ¢%‹$GŒ $H A‚ $H A‚ b žBœ€1cÆkS!Nª|󥫕._¾€%‹¦-ܹsçÎ… w.§P¡2òãç<[²0AräH A‚ $H A‚ $H A‚ ar‡Ð¨L‘üøÉ4ªX4eÀùòå X²hÚ¾};÷í[¸sê|Ú´)"B~üøÑƒgK&J9$H A‚ $H A‚ $ˆ‘#H˜dѲeÌ<¡˜]‹¦¬0_¾€kVMÛ·oß©S§N—*Nœ6e*DÈ!B~òlaÂD ’#GŽþ $H A‚ $H A‚9r $H0¹3ªÙ5€Ö¢1Ì—¯bͪiûvîÜ9uêÔ©Š§Lˆ *Tˆž;L(A‚äÈ‘#A‚ $H A‚ ÄH#GŽ A‚ ’-ˆŠY»v-Z±aņ SVM[·oçÎ;§N].U£8qÚ”)Q!B… ùɳ… $HŽ1$H A‚ $H,‚9r $H˜l)¤KYµjÖ¢%K¦,Y²hÚ¾};wîܹpß¾ óÕj§M™6eÊ„¨=w´da‚äÈ‘#F‚ $H$ET„8C…6Ž Aþ‚$ !Uɪi»v­Z4eÉšE«¦íÛ·pç¾}Û¦íZ³dÃt©jÔ¨Qœ2!"¤çÎ-Y9b$H A‚á±@VHyB„ˆ—>J˜à¬Ú·oÛ®USV¬˜²hѪiÓ¶mÛ¶kÑš5«-0]ªZéò¥K§L„üèÁ³%‹$GŒ d‘"a6Œ¨`2€!rbLžLÀ¢mÛ¶­Z4eÍš5k–¬Ù´jÕ¢Ek–LY3mÕ¢%¦K°bÃt©ÊTÈŸ<[˜ AräH @Ö,Ê‘FÊ"dBP˜Aá)Hѳ©ØµmÛ´]Ó¶m[´dÉ¢U«V-þš²fѪUû¶m[µfÅŠ%S¦,™¯Q›2ÒsgK%HŽÂC£6pñ´ÈD£Ef*\¢€£¢mûöíÛ·sê¾U‹­ZµhÑ¢E«¶m›¶pçÂm»-Ú´jÚ®E+¦  .N…üäÁsgK,K Pj£ÁÁ "äàq‚Ê@`.( P„JµoáÂ}ûöm›¶kÕªEK–¬Y³hÚ¶]«öíܹoß¶iÓ¶íÛ·mÚªESV̧Lˆüô9$fÑ¢ à€ PÜLrH‡mˆXÚöíÛ¶kÕ¢M‹–¬X±aÅ”5‹6­Úµkß¾…;§îÛ¶oß¾mÛöí[¸þpß´)KÖ,מ%K½80 À;rÔ€SÅÄ‹6dR‰Àá© `Û¶]«Ö,Y±b¾téÒå«X²fѪ]Óö-\¸sêÎ} nÛ¶oçÔ­[·n]¸mÚ8íaÊ ƒ`p"Áˆ)S¦ˆD –¤NÜ´ôm[5eÃt©5*§Q­téJ0ZµjÚº…;wîܹsêÔ… §n¼{÷îÝ[wا1§R¹P0Ń *8à ™J¨jÉ‚uCÄ‹5_`m«6LU¨M™eÊ”i§\Å¢UÓÖ­Û·pçÎS§NºuðèÝÓ§OŸ¾{á@ÅBkÒ"LQj`À€7þQš”†Q%J46l¸òe2fºFqÚ”)S¦L™6©ò•ìÚ·oß¶uûö-\¸páε[GïÞ=}úôé»ÇK$`•<À(@Ò#pÁˆ•0màJC‚a¦KW®V­Z饪•¯dÕ¾}ûvNÛ¶mÛ¾}ûöíܺuðîÝ»wOŸ¾u‡”í!uãÁŒ“<©@á@AatbsèÑ$" <8 Áš"±Œ+V¬X²b¾|KMÛ·sêÖi»¦mÛ·oß¾k·}úô»&N\¸oՔ˕K'0.ÐèpÃÂ'80à+N0Ð ëT2>‘<™:öK– O8p`J›0;j‘#çÎ;yúôéÓ§O_.Uºté–ŒY1^¹T…2¡À 36 xsaÀ€< aáɯLáƒÅ®Z¯^ÉZôÀÀ:9’òD9räܹ“'O_¾|úôéj¥*§V¾†ó¥KW® jpqãA (þ0`ÀD¼0󈕥YÿŽÑª…«’"8D(p`Æ%7h‘#GŽœ»xòäå˧/Ÿ/_¾r©j嫨0^¾ŠË à‰‡3 ˜ÑÃÀ `ÂI†–N¥Jà -Zµjɲƒ n¼I•fräÈ‘sOž_¹Z©R5j"B…2µbä$‚‚PAŒ 0F'–fã&رkÇ‚ Æ(þÎ ;tй!ˆÒ qäÈ‘#GÎ]NœF…âÄ à¦L… e …F„i, 0`‰ `‰óÀ€sQz¶f O³@šë, ZrН'ÞÜÉ“O^>}úôéÓ—i'Nœ8qÚ´iS¨Q;èD0“£PPpá 14Ð hÑ,3`¨¨¡” V°Zµø¤r¢Á¥G|ÄœºrKžþ}~B”)S¦Mœ8… •£J*Ðq ƒ‘àåDG`ÑQÔÆ9¦XÁúE‰U­7ÌPâ3h$/¥äÉË—OŸ>}úôéÓ§G?„ *„(Ó¦LD^0¨À ƒÜ°ŠÐŽ}úòàÑ£G?~üJ”iF3pj á€‚ž Jei£@µdáÀñ†’§otXÍ Ä‡U-O_ÔP:äÈO`ŽÉ»§OŸ>}÷ôñÓ§OOž}úôñë×ïÎ;wðàÁ“çΖ-[& èÁ€9RÁ’,Ø«z°!3èÕ+YoªÔxJ–'YŽ ÉÂR‹§CƒÈq£fD¥{÷ôÝ“§OŸ>}ýúiÙ²e˘-[¶dÉ’% 3½`ÀÀ“¬g’f±±äÀJ©ÚТU‹T©Z²L½þzE«V-1|RÁâC†8“^ º§OŸ>}úôõëׯ“,L˜0a„‰%J”TàbQŽ`É¢Ub¥`:à¨uŒ­cÏŽÕ‚…ŒÒ+SµR ªä‰Ï /b Dq…¤uëàÝ“wï½uëè!A‚ $H A¢DI 0Ý@­ZUä CkÆZÈ(Ñ:&kQœJŒ&)JU‹>m°°Á‚¥G nÀñMÛ¶pêÖ}«¦íÛ‘#GŽ9r $H Ya¢ ©è$UëX-SÈ,=Š… ,YµjUêÅŒ Aµ(-rk™C]¾È¹Ñ‚A+£Zµjåþ+Ú6m×´};räÈ‘#GŽA‚ ’#A¤"Æcj££‹a°3… Y-JT¬ÌyU Ò G<•ae ’)1ø€RÈŸL¡Z›víZµ#GŽ9rä$H”d¤ )ŽÉ²ô*Ø1:ÅBö)2dÈn½z‹L*O”ذDf§XÁ)R„#Âxòèñƒˆ“®fÚ®U;bäÈ‘#H Q¢e ž,A=‚ãX-4ŒH! † ”K¬„!CvŒÖ+Yµ<Áò”Ê›Jd°8‚ÄJ’œ*“¦t@G=…F «¶mÛ·#GA‚‰’,Zîäѳeˆþ'S&À%J•cÇ^Ó#’0JµŽÕªõ«N­ZÈŽñaÇ›=lN5²âFÐ Rô B„(“*_Ê¢UÓ†D “,Y¶l¹ƒGŸBx¤ªÕc€Œmr5 vŒ,9$Ú,z"K–)XgÐ †l>€ø´aCÆÑ(‹&Ýp€EO&N¡BR¥Ë—/^Y¶ÜɣǟB™FåR…h¬c¤xæÅL°`jØ@¡¢Ê²R=bä@Y§N•a© 2ƒÚ ‚óèM„(„…R¥ËW.Uœ eÊt'?„!Ê4 X³d£†d fÊE„FU~U‘åC ¨ªÊÔ£8þ8h$«Ì)X¬ „jÒœ'«ÌaЦ•.`¾Zùò¥*Ó;wðäÑã"D™Bé6ŒWOÁdéˆ@âÌ,–h¨Ò£Q(Qz¤¦€‹(= VK–#H”*99CBà ZåâDÈŸQ£2ÝÉÂÄ?…eÚ´‰Ó¨Qœ>í$,X\¨©„J‘šT¦L™ºåÑ GO@Ö«…ˆ h˜”ê×/ETÀ¼z5b+Xt:ˆ a!VŠFÀ8õ„Á1ɲe =~üäÙ ¢MªrµR5j"D… !"Ä ˜EP2tØàÀ†Zh¬Ð Ê+'®Ð8ujÊ &µaS„Í)G* aªO-[ÆàÁƒçΖ,LŽâ¤J•ªQ™ ùÑþ£ç¡M6lôù§Šˆ4@šÄ …9*™r1‘Ú`8AAD1C†œ‚Ó#‡Iµ¶0QÂ$Ë–,L˜(a‚I¦Q£8mJäG=~  …À>_Ô¼0PÀ ‰J3  ¢B%SD|â•î”0A&ðp AJ.ðä$J”0Q‚ $H áŠS¦L‰ *T(Ó¦M›®€À(Îp @0à@ 5À̱4`†'T©ÍQ¶C¥.,˜ÓãÀ$T!QÂ$ &L”(Q‚ÉN£BmÊ”)Q¦M›6mâ´©O%{Í1€#NxºQþ%E®jbk¨ÔªÔÆ–!`PàQ&[ÆÜ¹sg‹–,Y²(Q¥JU¨M™2mâÄiÓ&N¡6Á3Æ‹)&@Xñ„f‘*ФÁaކ*/`p%¬/X‘1…åÁrÝÁÓ§P¡B~ôÜɲà˜-À|µÅi'N¡F©R¥ªU®HeÊH™$hÄQhxÂ#J ê4šEA… nÀ¢Ä&У@¬@°ÐU+Uœ8©R¥jT&?w¶lÙRMY1]ºtµj¥*—/_¾†1SuhÌ(h  x‡ …GE(-Ú@aGS @1 ',_µóåÅþ %S– /]¹TµÉÏ,Û´]«-Z²dÃtéâU,Úµk‡ÆŒq³H n ªa£M” ©˜©ð²a@ (ÌtH×"/P0ÑÃZµjÖ”óÕJ•ª\¹B!ÒóíÛ·pß¶]‹6L—._ʾ©[§jL—"`@@ÙѦˆX¢„ï DÔ(À@ƒOÉbQð‚,m»V-š2fºT©Õ*W«P›Ö­S§.Ü6eÀZÒ¥+Ù·u÷¬uÉRaŠ_ŠHyð‚ ” p`™ûÀ”'40è§X$)%8±ãÙ·kÖ¢)+æk§M¡TµJ:ußþ®5+¦K•*UºŠmƒw¯\‘!6$˜ CE¥ê ëS«Q 0ù"% .tÄâ€(t®aÃV-0`ºTqÚ”iS¨Qœ®]»Ö,Y2`¾|+ÖìZ;z÷îÉ)¤A @c:¼qV…"VÖŒ`AC†(P`©ÚµmÕtâ4jÔ¨Q¡B*Y²dÀŠ%+6lX²jáÖÝ»Þ3 k0Â<¨€]þFM*f„— 0 âBG~)‹VÍZ2U™6R¥JU«\­ZµÒ¥K0`À|‹¶M½{ôà­ƒ‡c‡ :¨þ€Â†:XÐÑXš79*@ဋ'µœPX1fÌ’ÓŠÓ(U¹rµÒ¥KרV¾|éÒå˰hßÔ­[·NÝ·jµÜðä`NTÁ„ ª€`( 1kJž€%+¬X1]¡6…R¥‹/_ÀеòU ˜¯aÌŠkVíÛ¹sß®ùòUMF ‚Bj Á°Cl˜0€‰© °’«˜2eÊ¢E+6*¢Mª|+¦¬Z2eÍ¢]û¦MÛµfÉ¢ŒÖ¬X¨Lœr¥bp"(ä  00ñþBJ¼€S­ZµmÛŠ©Ê”(”®bÑ®}»V­ZµmßÂ…Ó–¬U(N›éÑS(‘*'0v™ À 0a ƒŽ*0`@†0äP¬X±bÉšE«V-™¯Q›Fù*fm[¸mÚ®mûvîܶd¾6Ò£Ï=…2òÕ!Ô1À©ˆTp²8p0àŒbÉ”)S–¬Y´dÉŠùÊj”®dÕ´mÛ¶mÛ·sç¾)SµÉž;xòè!”I•®f ÀŒ :è £–0àÀ€:«V-Z´fÊ”EKV¬Ø0`­ŽÊ¥lÛþ¶mÚ´i«-Z3_›ü܃ǢBˆTE‹­š© 80àÀ€ @ãEÃ8ÐáB­hÑš%¦Ë×°dÉ”)SVÌ—._;©[×,3`¾€ùR•I}úôé»þ'ïÞ½{ðÖñ»ï[²V™ôlaÂ$Ë–;z*„(S¦L‰2…Òå«YµmçàÝ»'Ož}úôÝ»wž>zçšåRU(À-Y¶lÙrG=xôø!TQ¢M£Z%‹ömݽ{÷îÝ»'ïž}÷îÝ»·M×(N™üä“e˘-wðà¹sgÌ<~ eâ4JW´oêàÝ»wïÞ½{÷îÝ“wOž}úôéÓ§OŸ¾h¹F…Ú„HÏ-Z¶lÙrç>Θ-[¶lƒÇO¦Q¾¢©ƒGïÞ½{÷îÝ»wOž¼{÷îÝ“'Ož}úøñ !ù€ ,Dd‡! "%*!!#""%%%'"")%%)&&-""-)).)),&&1$$2))1**5--2..6..9**;11611922=66>55:88>,,@66A66F22B55I99A::F==F>>J;;L==S::VBBGAAJBBMEEMJJNFFQCCTCC[JJUKKSJJZMMZNN^JJ]QQ^TT\YY]DDdAAnBBoCCkKKcLLlGGrEEqCCpHHsJJuMMwOOuMMrNNxRRbUUeSScTTkYYf[[dYYiZZm^^j^^mRRrRRvUUrUUvQQzSS|VV}VVyYYv\\rZZyXX]]z^^}ccmffhcctaazbb}ee~ffzjjtiizmm~kk|rr}zz}ZZ]]ƒ^^‚__„cc‡aa…ffccƒff‰ccˆii‚jj…mm‚nn†hh‹jj‰kkŒiiŒmmŽnnˆooqq†vv†ssrr‰uuŠvvŒrrŽzz†zz‰zzŽ}}Ž}}‹rr‘uu“vv•uu”zz‘yy–zz—~~‘~~•{{˜}}šŒ…’‚‚•……–……’€€›‚‚††™……Ÿ††ž‰‰–•ŠŠ™ŠŠŽŽšŽŽ‘‘ž••ž›˜˜›‡‡ ŠŠ£ˆˆ¡¢ŽŽ¥‹‹¤’’¡‘‘¦––¡––¥““¨––«••©——¬™™¥››¤™™ªšš­œœ¯žž­œœ©žž°££¬ªª«¡¡²££´¥¥²¥¥µ¦¦¶©©·­­²««¹©©¸®®»­­¹¯¯¼ªª¼¦¦¾µµ¶±±¼²²¾´´¿µµ½²²º¿¿¿¼¼½ºº¾««Á··ÀµµÀ±±Å»»Ã¹¹Á½½Ã¾¾Å»»Ä¾¾ÊÂÂÃÀÀÁÂÂÆÄÄÅÅÅÇÆÆÆÃÃÈÅÅÉÆÆÈÇÇÊÅÅÏÈÈÉÉÉËÊÊËÊÊÌÌÌÍÑÑÛÂÂØþK•ꤩО={îÔÓ…‹$E€ @€ @€rÉœAp†«R!K¥píÂU‹V-\¸pcFm9räÈu#w®“¦N( Ú³çÎ;^¸4AR¤ @€ @€ @€ i2&P'J”öä)T 3c¾pá…˱fÔ¶•#·m[7rçju²T‰R¡@{öìÙSÇ —&J) @€ @€È‘"HšpáâÅ‹—:ˆAcf Ø.\¸výJÚ¶mÛº‘;w®–)M–,QhO @{ìxi¢D ’"EŠþ @€ @€)R $Hp™ÓÉ4€Ð˜Û… .`É Q»FŽ9rçΙêÔI“%J‡4(Ÿ9M(AR¤H‘"@€ @€"EŠ A‚‰/…€9‹0_À|ù2ÚµmäÈ‘#Gî\-S4i²DéР@ƒí±ãE $EŠ) @€!BŠ)R $H”xTË4hИ#FŒ1fÔ®m#G޹nÛ¶ùª…ªS'K•,Q¢ThP ;sºpi‚¤È‘"@€"B~üPaAƒJ” Aþ¢¤ËSÄ U‹ 3cÆŒ1ƒFíÚ¶nä¶m«FZ2b¾j™êÔ©“©Nš( tgŽ/\)r @€ü(1Â@&j8‰FL"HšÌéÌYµoÕ¢A3 ˜±fÍ Q«V­Z5hÌ’%ƒÆŒØ.Z¦PÕªUË”&Jöܩㅋ$EŽ$.{Û4 ÕƒÁ›E}9A€@¢E‚þÞ ’Ô¨Q  rÂÂD‹1bµ:i²dÉ’%J”,™ÂE Ú¶mÛª]Û¶­[·nÛÈ[÷Ξ={öòå³gÌ«O ^*³(ŒŠ0þ8J³#J•*hÜX@àႊ4[ˆ<Á…«-Z¦PÕêd .bжm#×ZµjÕ¶mÛ¶íܺuïìÙ³g¾oÄüŒ‚à @®b0x ¥‘!X¶ˆñÓ¨ … H¡Å!¢ˆ °_¸pý"ÖŒÚ6rçÖU‹F­Ú¶mÛ¶[·îÝ»wóìÙÇKT&, ŠL š(O" !AÆ Q~±‚pÁC(üøá†3hÌ’%þcÆŒX2hЮ{÷Î^µjÕªmÛ¶m[7rçÖ­{·nÝ»n•*Iq.\Ö¬ˆŒ ‘N‘i$)O#)htpP @ !N]Û¶µjר]ÛÖíÜ;{ñÞU«¶mÛ¶mÝÈuëFîܺuçÈ‘kUJ TeòˆÌ&AkÔ¬QáJšF‹úl ÅaŠVD!C$κuóÞ­[wîܺuïìÙ‹÷îݶmÕ¶‘#wî9rçέ;×­´@­Ö¤ðàf "£À“§C +qT5r"éO£5¬xÈaPÅŸF¯Ô\y—/¿|öìÍ{÷ÎÞ¼xñâÅ«VÚµmäÎ#Gþîܹuçª9Û”çT4ú¬á€a 0œð¸áÊJ&V"õ‰)Ê4ô šYøðñÇŸ½xñâÅ‹‘”ñj´fM«H86½IôÀI4Q£ÒlŠDÃÕ*D8¨’¦‰5U8pàÚµƒ/^<{çºu‹fŒ*K–(Q¢dIS& §â$(àÁ€‰Úxx¤*Ô0Y¬6- ã&L¨QWdù …&F( H@&6pàÀ®]»xñâÅ‹wî\»sÕ¢«¥iP J–,…éÐ&€ f0Š*^o6e&jÑša…rõ&RŸE7Võ(€`4þh¶8pÁµk/^¼xøªEÛvî\·jÄjYÚ³§Ð 'PfPàÄ *9Ð@õD¢H’áCÄI#@­B"³I ‚0ð°# ‘NàÀ®¼xñâÅÇÏ3hÝÞÛæŒ1S‡öÜAsƒHøô Å  ˜‘4jT§5kú¤¨L$@£þ¬ð E0TDY8pàÚÅ‹'Ÿ<|ø¢U;/Þ¹nΈ†ËÒ3'` PÁ x€ãA¢W²dýéF›Ee©Z$ ÀÈÀÀ±&J˜NàÀ®]<|øðáÇ/Z·vñâþ«– ­Zµ4éq"F ,XÀ ƒ…Bð˜tŠ«0Z5Ú¤Æ,€Ý@€AÒ¦4kÂà AF8pàÚµ‹‡>|øðõªÖM[¸oÑŒí¢E‹–%4àÌHð‚åu*»~ÄÈTsæFÔ T$ª† Uœw®]»xøðáÇ*SµjÕÚE 0\¨LiRÁ` F@(PàŠR^ 0‰L£W­X3‡Í3I"¡A° Å *< 5r¢‚8pàÚµ‹g>|øð¡2eª“&S¸|ÃE«ª@ÌP €8(þ#E¬"#ÕJÖ"V’ºmrƒÀ $84ààͦH8”®];xñâÉÇ.\¸hu2… °Z¸€“ÀàÁ ( À°‚HÖ0aSú°Æj“,Q‹$hXàÀNÄa5jÈ*pàÀk/^¼xòðáÛ… ®Z¨LuêÔ‰®V @ / БàŒO’F­¤¨QŸjÆ^ÖÈÉ•4RÜ0ƒæ‚^£H¼ 8píÚÁ‹Ož<\´L™2ÕÉR¡=ƒ(¡j„`AèÐ!@nðx³)R@‰Þ¨ Õ¨•ŸH¬^éÊaþHÞ¨zUʃiàÀ¼xñäá뤩“&Mš,Ú³§P'7@ :(r`Œ)‘þ ‘äÆM¦S¯E õJ¯ $rÕ(.c‹p ®];píàÅ‹'>Kš:uÒ¤  %JƒQêôD(0ÃŽFo ‘â¦Ñ(5›Â¸ÅjS«Ekd9be†ÁH‘DZ´ ²ÚÅ‹Ožþ|{ *D©R%K–4uÒt ÒaD?€¡é(Ò+4Sd…z ^§dñ&‹Ç)]}ŠÔç•™gäÉÇ>|ùòåËwÇÎ;{ Tˆ’%JlB@a`ÁÀ+oÜôi´H 5[Bõè!KÔ¶§x‰ÒuŠÕ¨W²¥&O£(¯t™ ðL<{øðáË—¾|ùìØ±sçΞ={ö *D)Ì 4ÐÐ&@›F©!CPŒf\…z%K˜0V›½Æj«V¬ÔªBC/3|ij‡¾|øðñË—ÏŽ;wìܹsçÎ= \R€hþôj$æÊ+@€^µa`M$@±D…Õ(«W›D±:)J0; {´À‡={öìåˇ¿|ùìÔ©c§Ž;wìÔ©SGÅ›@ ÒG ™M‰,ˆr%fS¬SR,ŠL¨Fj±Úé+V§þô‰äæT"E1nØÃ‡>|øðñã—oΜ9sêÔ±cgŽ/^(¼1SÀ€›QªB-ŠE‹«Syú çÄ(I"¹èJ+V¼^é:uj 0QÐDR&‡ {öðÙ³‡>~üøyñâÅË/^¼páÂ…Ë4< t˜ñ Ú+@¯¡qE†Õ¢FˆHMâj ]Ä þ 5ŒÕ¢E‘å‰ò„ "hf݇>|øðñãÇ_.Mš4i¢¤‰%Jšl°Â€Š ‰^½zÅ‹ØRjNñÒòªWšaÂTñâÅ+–¬F›ò`Ù²H”š09¼èðèEuëÞÙ³gÏž½uëæ!A‚ $H A¢DÉ?7(zô ’"YÄ^Y©‘°N¬djDQ$Y§bEZ„eË,~üôyd戉\´ÁŬÚ5rçÖu‹F’"EŠ)R $H”Aƒ«^¼”Ä%‹Ø+R¯ú¬k”˜E£B‘AÄJ˜«EdÊl¦  ?qz¼qãM 6P™Bµþ‹Y5jÔªm+RäH‘"EŠ )‚ $€¦@HdF¯h¬F5jÅjÑ"Y±…âåJ–$WÂ^5Š´†L2jòl‰óâ…¨)7^xÐ2hÏJLùbF-´"EŠ)R¤’"H”pA²ÆŠ‡WÀ<ä˜  W²ü¸r%ŒU¬X±xÅŠjD}ü”Ó«+fЈçÄuìÜÙSHS­dÔ¢5;r¤H‘"E QÂÅK%d¬t˜q¥€+ˬx8ÅŠ—,Y±„Åâ%L˜,Y¬^±ÔhS§<€‰jcÅM£M<8¨açÎ;ƒ:ù‚V­Ú¶"EA‚I“&\æØáÓ%þ.Ðx ÕÆ*h$É’+–,W”ŒåJX¨F€ò,#& ?håHÔ dî ˆR©]Æ A£†DI.\¼Ì™3çΞA±z±à4mx¨iÔ)W±b­’µ*Ê®X®d ∠-ZòôQ3ÅJŽVo@01æÎ!Kš4u2U ×®Z\¼Ì±sgO @”:¡2¥É«  c•ŠQ#¨a“È•*YV ä %KU¨5jþ¨É“)OžE‰tÄ€fåA'y i2U *SšU¢4çÎ=ƒ ¢ÔiW2bšÊè23ACIodÝ¢âA ªd¹r5ƒ†'þªXEj´¨Ñ«P€¶ˆiÔ¨À bU (¨®]¸PáªE«P9uêܹ³gP¡B”:Õò…‹VYq$xÃà 0hpX±B–¬X®T ¨QcÑ¢P’"5j$ @jÖ\¸q†‡>¼LÑÒhÏM ÍáÒdÏ>ƒQ²dIS§Nš,‰a¥ÈCHÀPcÊ”CtÉrÈÂZ*!Šô©Q£M„ù µHÒh¨ÈäÌ’¥:c¼t¹CiМ&H(Q*D‰’%Mš*U¢D‰’A¬(P‚onðrµ&”,VU,Xа†F`EÕj¯W¡° ¡@bÄîþŒáÂ… /uæti‚„’%K–,iҤɒ%K–éÑÃë‰  â&«W€ÉEÅ € Ò` …Ež2€ñÒÕŠ— €díT“&M¸x™SçŽ/MPÒÔ©S§N:Y¢TÉR!=L6™y ‚ *r¸jHW‘4¨êÕ OLŒÈJK4d4(p²bA` 0PÁ‚7Fc 1S”,u2eÊ*Z¨P¡ªU«®]»pcvíÜ<{óÖ­›7ÅŠhXþˆPC€*Ù~D¢& hÀÁA‚`X e0`Ĉ«ÕIS'Z¨P¡ªU«V'T¸pÕª… ×.fÛέ[÷nÝ6h¼ ¸€ €x¥Ñ#ž¨àà‚°¸QÁ‚ |¶ ˜/Z,u2U«V-\»€¡Â ._Ä€Km9rÝ¢áÂí… rÌ0PBP,hà*\ÐA ˜1cƘ1Ö‰R!K¦pí–,1c̘EÛFZµdƘdf X§Cšh‰‚@‚A(€@$(€PˆþéB›|3Æ ´jÕ€™¢D©S-`̨m‹ ´jÛºu£FŒV'M–ݹˆR©+ € XP ¡Â+h¤X€À…M/@ã 0`Ä’1ƒ®N–Já"­Z·jÑ¢UÛÖ­[5b¸*ºcgΜ;ƒuÚ…@†@aE”DÒ‘Rc ÜÈñ bÄ’%KF,3cÄ€áBÕ©S-bΨU«V­Ú6rä¶£eiO9uìÜ DÉT­dÆ< PE‚f !¢bH 4Q: @P @.¼‚­3bÄ’%3 ˜/\¨vªeŒZþµoÔ¨QƒÆŒY2\–öÌ™cgO¡A…L1cÆ .P0ÀÀ…5Ø4ò0F P@€ $gÌ’ÛU —¯_Ä’%K W­\ɶ[—Œ±]¸vá2uèΜ:w*Ô‰4hИ};UcÅ @à 4Q,`€àB”:$A‹– Ø.\µhÕª…‹³fИKÖ¬Ú¹u»hu¢µ‹˜/S…í¹s§N;{hk­Yµs¨À0!‚b¸ 3àl¢Ñ¦µjКáÚå«V-\µjkvmÛ¶jИQ#×I“)b̘ëÔÉÔ ;sºpñ2ç)\þ¾ˆA;÷®&J¶ Ñ`€„' X°CPß[·nݺhИ1k–ÌW-\Ä m#G®Z³fÔLábF Z²dÉpiÚã… —&\¼ÔÙCI.häÖÙ‹V† ,LˆÐ³e Qˆ@™…Ïž={øðá[GnÛµm×’ËU+µkÛªQ£FÍW2hРA‹Æ —¥;^¸4iÒ„‹—;‡hkFmÛºxïZuQ‚K—E°èybáL¸xñäÙ‹_>|óÖ[GŽ´_¸~cÖ 5j׈A‹9j¸L ªã…K“&\¼Ô Ô©–/\Ä u;÷îÝ9]l†„a³BB9ÚÚþµƒ/|øðá³þgÏž={ïÖá³÷n1T…îtáÂ…‹—9wö TˆR%J”(uª…+´jäÞÙ³/^¼xñâÅ‹/^¼xðàµk׮ݻxðàÅ“‡?|øòÙ³gï]¾yäˆÑÒ4È@/\¼xñ2çΞ;uîÜT¨%Mhc¶m={öâÙ‹gÏ^¼xñâÅ‹|öìÙ³W-W'M”öÔñÂÅË/sêÌ™3g̘:{QêÔ ³mçÞÙ³gÏž={öìÍ‹Ï^¼xðàÅ‹¼xðàÁ‹'O>|øðáË—Ï>fµ:u²TèÎ/]¼xñ2g>Î/^¼xñRgÏ¡Nµ˜{7Ïž={öìÙ³ÏÞ<{öâÙ‹¼xñàÁ‹/^22=88>..A44B66I99B::E==F==C>>I>>M::K==Q==Z??aBBJBBNEENEEKGGJFFRFFVBBSDD[IIVKKTMMYMM]JJ[PPWQQ^SS\YY]DDdAAnBBoEEjNNaKKeKKkCCpGGsEEqIIrJJuMMwOOvNNqNNxRRaQQfUUbUUeVVjSSlZZf[[cYYi]]m[[lRRqVVrVVuRRuQQzSS|VV~VVyYYv^^v\\qZZyYY~]]z__}bbmeehbbrccuaazbb}ee~ffyiiukktii~nn~kkzrr{vv{ZZ]]ƒ^^ƒ__„aa†ffccƒff‰ccˆii‚jj…mm‚nn…ii‹kkŒiiŒnnŽnn‰ooqq†ss‚rr‰uuŠvvrrŽzz…yyŠzzŽ}}Ž}}Špp‘ss’rr‘tt“vv•vv•zzyy–zz—~~‘}}–{{˜||™~~š‚‚’‚‚•……–……’š††™……Ÿ††Ÿ‰‰–‹‹•ŠŠšŠŠšŽŽ‘‘ž””——™‡‡ ‹‹£‰‰¡ŽŽ¥¢’’¡‘‘¦••¡––¥’’¨——«••©——¬šš¤™™ªšš­œœ¯žž¯œœ¨žž°¢¢­ªª¬¡¡²¢¢²££´¥¥³¤¤µ§§¶¦¦µ©©·ªª´««¸©©¸®®»­­º¯¯¼°°¼²²¾µµ¿µµ¾²²º¿¿¿½½½¸¸½´´´··ÀµµÀ··Ä¹¹Â½½Ã¾¾ÅººÆÃÃÃÁÁÁÂÂÆÄÄÅÅÅÆÆÆÆÂÂÈÅÅÉÆÆÈÇÇÊÈÈÉÉÉÊÊÊËÊÊÌÌÌÍÃÃÑÜÜæêêîþK±*JQ @üìAL&I"Dˆ!B„"Dˆ!B„‚„ÉžC¥~-#¦k¢M«týÒ¥K—.]º„ƒ–íœ9sæÌ}û–®¨Q£2! (Ÿ=hÀ@a’$‰!B„"Dˆ!B„"Dˆ!B0¢¨L’ÊTŠ´dÂtéÒ¥KرhÙ¸u3×­Û7sét•Ú´)“¢C ´G ˜&L˜$A"Dˆ!B„"‰!B„"D’$I €#˜=£ŽQƒvŒØ/^º„cF-[·nç¾¥K—N+P 6eBt(СCöˆÒ¤ “$Iþ"Dˆ!B„"Dˆ!B„ ’$ &L˜@ÑSŠ™5€Ô &L—®b̨eãfΜ¹téÔ±*U Ô¦LŠB„è =P˜0a’$I’$B„"Dˆ!B„"Dˆ$I’$I²„I1ŠˆI³f 1aÄ„ cFM›¶næÌ™3g.].V¥@Ú”I¢CˆÚ¦ &I’ I"Dˆ!B„"Dˆ!B„I’$ &Lš„A¤ë5jÒ ;vìØ1hÙ¸u3gΜ¹oݺÓåªÔ¨M›6eʤÑ!?z€Â$ ’$B„"Dˆ$KŒ˜ØAÁ‚ 4h˜$aþÂL VǨY³fZ´dǘ1‹–[·oæºuÓ–-³cÂt±5ªÔªR 2):äG˜0P˜$I‚Dˆ!B„¹!Ç@5°XqcQ‘K ì)%Œ·nÚ¬QcVŒ³hѨeÓ¦M›6kИ1£혰\¬\éÒ¥‹¨LˆùÙ# “%I"D 4a¡„ #&làÀá€ÈžMº eÓ¦´d̘AcvŒY4jÔ AKvì³lÔ¢Ó¥K—.a¿t±Ê„( =b 0I’$‰!IŒdˆRÅK7–º°Hñ€„,5Øð³‰5mÚ²Y³¦M´cŘQ£F þÚ1fШQëÆM5fĈK–옮R›2!ò£' &L’ár¤K£"UŽh‰UÉË  xa楠iëö­[·oæºQ‹5hРE£¦M[¶oæ¾i£F 5jÙ²E#¦  +PŠíÑ#F ˜/;ŠD’T$M9•ܨyd…A<ÒYá@ µnß¾uëÖM[6jÔ¢E;vŒ³hÙ²Y£Ö훹nÝ´e˦­[7mÙ¨QKFLרLŠ¡©ãæ,T¨’ÓáE!8i² 8a©"7F\ÒÖ­›¶lÔ EƒVŒX1bŘ1ƒ5kݺu3—®›6nݺiëÖ­Û·þoÝ´%;–ŒUG%N¡ªT)•#*ÔøC¦K^ü9rĈ [Ú´e£Æì1bºtéÒ¥«Ø1fШeËÖ­Û7séÌuûöM›¶næÒ©S§NÝ7mСòÐF–¥H§¨œ0 „/GÎÔX°`œ/GªÁÑMµdÂt±*U ¨R¬té:5jÙº}3gΜ9séÒuû–NÝ»zõêÕSgn•!G'NÝ:¥åD† FáBæÈ‘"<ÐçÈ#:Li£FŒÕ¨M™eÊ´)Ó¨\Å QËÆ[7sæÌ¥K—.]:uïêÕç¾zéyzÑÆ“-7TqãL#8µþ"•ÁÁ? ý!BåC0bºJÚ´)Ó¦M™6±ÒÅÌZ·nÝ´uëÖíÛ·oßÒ©S÷®^=|øðá«7ËS„Ê ZÃÀ„ /‘¢lC¥N¡2 àÀ 3e<´Ñ¥+—+W¬\å*Å*—®cÔºuûfN›6mÚºuëÖ-:uïêÕ«W¾w‹}õêÍ{÷®Þ¼zõâ½Ó¦-›¶néÒ¥3gþ.:ué´EÓÕ*Ê‹V‹ Š´hP%C9hEƒJ–¥AmERQ€#ž"=Úò!‹ZøðéÓ‡_½xñâÅ‹/^»lÔ¨QãÖÍœ9sæ¾}K÷Mµc‘<ÜAåæEi,-S…%œV§<¥ŠdÃΩ2X¨Q)’¤*LTq/^¼xíÚµk×î]»xñ޵떴cÇ QÓ¦M[6mÚ´5[æÆŽ"*D‘áG«T¿$ò”ªR$Y5¶ ztÅ„)†dãÂ2äÚµ'Nœ¸víÚµk×®];uæ¸Q;¦‹Õ*]Â;– µVËb À‘7iDy$ þ*OâTB%ËFGžÒEA`ÃS¤Tâ˜AUG–8qâĉ'N\»víÚµ‹—Î\6jÌtʪ¨R®t óë®ØTãªH¾d¥ªsg ­Z•xTz# UœJYPUºÁ“.O„‰'Nœ8qâÚµ‹/^¼xéÒ}³–Œ˜+P 2eÊ´iÔ¦Is äxÂR¡X(Qò4«U¥:;tÀ©%ëN¥Sµá°ã(ŠÔ)ãi 9qâĉ×®]»xñâÕ«—NÝ»tݨ%Ó5 Q L @™V"îdq# 0O¢R‘iÓ‘T–"5ŠcÆC€:¶kÀ€7þÎ,'Nœ8qŵk/^¼xõ´YûFNÝ7mÇtm "“:° ;Àì¬ñ„j‘2‘Z¹:2¨US©l 0 Á%<ذ‘°¥ÑYâĉ'®Ý»xñâÅ‹‡4ißÔ©ëFíØ1VŒíùЀ tè(ñCG…T³â š•#‹Co™b£¥ à 2aC‰8Þ˜2$Nœ8qâÚÅ‹w¯^<|ø¬i#/žºoÒˆ#ÆjÓ )'°`A…1€Ø¸Të‘—y?^ðt Ž¡J: @°KXd™pÂÌ£4äĉ×®]¼{øðáÇÏÚ·vñâþ©ÓÆLW.]¹@IŠÑ!€ |Ða#E;´ Åñ4ÉV¿~ó$y9õB€uJplÎJ@~T)T§™8qâÚµ‹w>|øðÛö­Û·nÔ˜ýråÊÕ¦7@¨ÐA/ì´Ù‡Ö©Ho ÉùÕÊ¿Ež `Ðb‹JvplhEé…*:ʉ'®]¼xøðáÇŸ+Vºtéúul™0]®XÊr!€  JF±lɪU«–¬Z­‚1³EÁ T©Ü\@° Á…[´TQ2ñ‚œ8qâÚµ‹>|øð¹bŪ(VºˆÓ•K—«1*Àa@€´8òþ¤ª’![Æ€ùj…JV­Sp<¨dèÔ‹Z$0PuËV£9ȉ'N\»vñâÅÇŸ.]º\•b¥‹1]ºˆãP€ƒ€PAÀ9t(ŲdË0`µdÉŠEkt €¥ ¶nAÄÂÆ$qâĉk×.^¼xñâáû¥ë—®\®J•*U*—.] 0DHP¢‚ÄØâÁ-¨dEò$k!K¶RBU"Àv<9rd+˜¬2¢¬)'Nœ¸víÚÅ‹/Þ=]º\±Z5j“¢Cˆ6¹ò´ÀÄ $0à ƒ5tlõ(TɪJ‘*Uª”Ê0Y?0Àã)þR¥HP¥¢Â# gâĉ'®]¼xñâÝ+j(P 6) HQ©BpP  ˜«ª2©^øª”&N%Z•Þ&G[²<ýq U«7ƒl0ÀÕ®];qíÚÅ‹>P J à¦LˆeeFGœÈP¦† Ž*EâaÇR…Tƒ"ÙqË“'C¶Nµ±#+U¤H²þ|!R”iÓ¦M›@•eJ0°ñUœA†"U9£Y0U§ìà(d«P$Z²nQªÕÊÓ£JËQqàAƒ yîÅ»‡>}øðáÃçÇ?!B„(Ó¦MQÖPBÇ–,¨P„ªRª5:ÜÐrdçTCqâøjL*Y¨<=ŠÔ(Í œ8M¼xøðáÓ‡>|øüìñãÇO @!R”ÉrlI%«V­J‘þxº"a CµRªôÆŠ,`ÆPɪå©R£Hž$q”‚Aƒ €Ä«‡¯>}õðéÇÏÏ?~üøñãÇŸ@‡Î¤Ð„ŽB©þdÉzôȪ t¤iÔ °S‘àDBÌ–,Y¨ê\©H 8.4ˆQ"G½zøêáÇŸ>}øöìÙãgÏ?~öìÙ³çˈ²Ti)–ŠAƒþqôA£F§²•ªU«GÀhÉ¢%ËS*ƒ¨Äxó#1rÔ«‡>|øðéÛ§O={öìÙ³G1bÆl°ƒ 7rdÙy4¨RšT—42É™4‘lèÉS%8²d©IS"E*¨Ü„hâzõð᫇>}ûö‰#4bĀ̙ ª¥ª-[E: •%O‘lE2F˘±e©yþŠ”êÔ8l„ÐñˆÎ„ `©‡>|øðíÛ·o0P @¥I“&M <ÉCSe*¨Bå©Ò#cÀTÝò4°_¿–ÕªeLV*T´"=2³ACY^lhÐàœtêæÕ«W¯Þ0`С’'iËüþ  4{ô„iÂdÓ¦M›6jÓ¦M›2í“"Á€ @Ô8U©Š­T§l\2d¥€W¬L@à&°`‘ =Š$ÁF lPªu­(`ÀˆÙãÇÏ1P˜dUªT©R¥FmÊ´i“¢A_¨8@ÀC‚6•u‘•Ê—UÀì¼pc%ÕqÒøò$‹K; @°€Š£IÒ$A #Í?í%‰¢M¬råbUj“"Eˆ):&Žƒ ^@HAGZ­bP0tËV *…bM*Ò"DEÊ‘ ¦´9%-˜0bôìÙ³G0M’ ÚÄŠ«R™ þäG¢Mƒ$åxp%0l‰DË„S´ní âAˆ-p9R+Õ…p @€`Ë”`×À@iŒ0P 4iÒ$I¦Q¥6mbtÈ?!ÚTjÀ- 8ᇠ7‘,E€@)•,G5¨¸¹P„ ™3GŽÀ)Rå‚L´¹Ól&Mš@i„ &K˜$5 T¦LŠ!B„(Ó¦M 6-ú1ÀÄWJP±ôÈ‘ÁfYòBæ •Z~ØhC„*mª@@P!E–YÖD1i (Mš4i„IP¥FmÊ”)S¦M›6mµI .)l¸ù@ƒ*S§t`¨“lþY¤'UªhÐ)¬dh°æ.D©%í(aÐèÑ£G 0` 4aÅŠÕ¨M™2jÓ¦M 6Bsä ŒPJ넊BÔ=AK‰Lð0ÒE–¡6ìÔ`€Á”`ËíÙ3"E‡üè # 4Ât¹ZjÓ&P£J±bÅÊ•«Uƒö,9RÄD™J•(%Ø’•—. |°bÁÈ.„¡²„ãÅ- 0³LW®R J•*Uª”¢@zÄ -1]ºt¹rÅ*—.]ºˆ›EhϘ']Œ2”æ Y§ÎpÁP`À€fÁñbãŒ#&&„( ãÂþFÒ|-Kvì—.]¹X•*µé0Ö¬Y£ Ú±cÂtéÒU Z6keÌiQ%KšA‘j9e   r¤’¡G6Î|qÁƒ\@E ˜4jÒ’ÓåŠ+]®F)òÓ­Û·oÝ´Qc&LW.]ɺ™S'É ,ä42DÅ@ŠH§d½@€`‚FÒxñ2(M 0(‚ƒ§Ül³F ³cºX•Zå*—«R›Ô©K—î›6h¿\•Ò¥‹Y7uó–@9…F 0` U*  @À@E—G•}õÔqs•)(M ˆÑ³'P¦L›6mÚ´ ”.bÉ YÓ–î]½xñâÅ‹/^¼xñâŋ׮]»vñâÅ‹W¯>|øðá«þW¯^½zóÔé«7¯Û±\™üˆŒ=~!:¤hS¦LŒ2Ò¥+5mææÕ«W/^½zõâÅ‹/^¼xñâ½k׮ݻxñâÅ»‡>|øêÙ³go¾yæ˜å…h@1`Ĉ£ÇO ?{öø9¤ˆQ¦M¥rƒÖM]½zõêÕ«W¯^¼xñêÅ‹/^¼xñÚµ‹×®]¼xñîáÇ>{öìÕ«ÇMW©M™íA1zöìÑ£ š=eUJ´néæÕ«W¯^½zõêÕ‹W¯^¼xñâÅ‹¯]»xñâÅ‹/Þ=|øðáçϞ¾h¹J•Ú„È1aĈ£G>1bĈ³'P¦Rº ¥{7¯^={õêÕ«W¯^½zõêÕ‹/^¼xñâÅ‹/^¼xñîÅÇ>|úôé ;!þwhirlgif 2.01 (C) kadokev@msg.net. 60 imagesMemchan2.3/doc/zero.man0000644000175000017500000000257411500515232014412 0ustar sergeisergei[comment {-*- tcl -*- doctools}] [manpage_begin zero n 2.2] [moddesc {Memory channels}] [titledesc {Create and manipulate zero channels}] [copyright {2004 Pat Thoyts }] [require Tcl] [require memchan] [description] [para] The command described here is only available in a not-yet released version of the package. Use the CVS to get the sources. [list_begin definitions] [call [cmd zero]] creates a zero channel which absorbs everything written into it. Reading from a zero channel will return the requested number of null bytes. These channels are essentially Tcl-specific variants of the zero device for unixoid operating systems (/dev/zero). Transferring the generated channel between interpreters is possible but does not make much sense. [list_end] [section OPTIONS] Memory channels created by [cmd zero] provide one additional option to set or query. [list_begin definitions] [lst_item [arg "-delay [opt milliseconds]"]] A [cmd zero] channel is always writable and readable. This means that all [cmd fileevent]-handlers will fire continuously. To avoid starvation of other event sources the events raised by this channel type have a configurable delay. This option is set in milliseconds and defaults to 5. [list_end] [see_also memchan fifo fifo2 null random] [keywords zero null {in-memory channel} channel i/o] [manpage_end] Memchan2.3/doc/random.man0000644000175000017500000000223210060101206014672 0ustar sergeisergei[comment {-*- tcl -*- doctools}] [manpage_begin random n 2.2] [moddesc {Memory channels}] [titledesc {Create and manipulate randomizer channels}] [copyright {2004 Pat Thoyts }] [require Tcl] [require memchan] [description] [list_begin definitions] [call [cmd random]] creates a random channel which absorbs everything written into it and uses it as a seed for a random number generator. This generator is used to create a random sequence of bytes when reading from the channel. It is not possible to seek the channel. [list_end] [section OPTIONS] Memory channels created by [cmd random] provide one additional option to set or query. [list_begin definitions] [lst_item [arg "-delay [opt milliseconds]"]] A [cmd random] channel is always writable and readable. This means that all [cmd fileevent]-handlers will fire continuously. To avoid starvation of other event sources the events raised by this channel type have a configurable delay. This option is set in milliseconds and defaults to 5. [list_end] [see_also memchan fifo fifo2 null zero] [keywords random {in-memory channel} channel i/o] [manpage_end] Memchan2.3/doc/null.man0000644000175000017500000000331211500515232014374 0ustar sergeisergei[comment {-*- tcl -*- doctools}] [manpage_begin null n 2.2] [moddesc {Memory channels}] [titledesc {Create and manipulate null channels}] [copyright {1996-2003 Andreas Kupries }] [require Tcl] [require memchan] [description] [para] The command described here is only available in a not-yet released version of the package. Use the CVS to get the sources. [list_begin definitions] [call [cmd null]] creates a null channel which absorbs everything written into it. Reading from it is not possible, or rather will always return zero bytes. These channels are essentially Tcl-specific variants of the null device for unixoid operating systems (/dev/null). Transferring the generated channel between interpreters is possible but does not make much sense. [list_end] [section OPTIONS] Memory channels created by [cmd null] provide one additional option to set or query. [list_begin definitions] [lst_item [arg "-delay [opt milliseconds]"]] A [cmd null] channel is always writable and readable. This means that all [cmd fileevent]-handlers will fire continuously. To avoid starvation of other event sources the events raised by this channel type have a configurable delay. This option is set in milliseconds and defaults to 5. [list_end] [para] A null channel is always writable and never readable. This means that a writable [cmd fileevent]-handler will fire continuously and a readable [cmd fileevent]-handler never at all. The exception to the latter is only the destruction of the channel which will cause the delivery of an eof event to a readable handler. [see_also memchan fifo fifo2 random zero] [keywords null {in-memory channel} channel i/o] [manpage_end] Memchan2.3/doc/memchan.man0000644000175000017500000000502711500515232015037 0ustar sergeisergei[comment {-*- tcl -*- doctools}] [manpage_begin memchan n 2.2] [moddesc {Memory channels}] [titledesc {Create and manipulate memory channels}] [copyright {1996-2003 Andreas Kupries }] [require Tcl] [require memchan] [description] This manpage documents both the overall package and the command [cmd memchan]. The package itself provides a number of in-memory channels which can utilized to [list_begin bullet] [bullet] capture stream-like information in a natural way instead of using [cmd set] and [cmd append] to manipulate strings [bullet] or to transfer data between interpreters, in the same thread or not. [list_end] [section COMMAND] [para] [list_begin definitions] [call [cmd memchan] [opt "-initial-size [arg len]"]] creates a chunk-oriented in-memory channel and returns its handle. If an initial size is specified the system will pre-allocate [arg len] bytes of buffer space for the contents. This is no restriction on the ultimate size of the channel, it will always grow as much as is necessary to accommodate the data written into it. [nl] The channels created here can be transferred between interpreters in the same thread and between threads, but only as a whole. It is not possible to use them to create a bi- or unidirectional connection between two interpreters. [list_end] [para] Memory channels created by [cmd memchan] provide two read-only options which can be queried via the standard [cmd fconfigure] command. These are [list_begin definitions] [lst_item -length] The value of this option is the number of bytes currently stored in the queried memory channel. [lst_item -allocated] The value of this option is the number of bytes currently allocated by the queried memory channel. This number is at least as big as the value of [strong -length]. [list_end] [para] As the channels generated by [cmd memchan] grow as necessary they are always writable. This means that a writable [cmd fileevent]-handler will fire continuously. [para] The channels are also readable if they contain more than zero bytes and the seek location is not and the end of the channel. Under these conditions a readable [cmd fileevent]-handler will fire continuously. [para] Note that writing to such a channel usually occurs at the end, thus suppressing readable events. This also means that users have to take care to [cmd seek] the channel to a location before the end before trying to read data back. [see_also fifo fifo2 null zero random] [keywords memchan chunk {in-memory channel} channel i/o] [manpage_end] Memchan2.3/doc/memchanapi.man0000644000175000017500000000313110144265214015530 0ustar sergeisergei[comment {-*- tcl -*- doctools}] [manpage_begin memchan n 2.2] [moddesc {Memory channels}] [titledesc {C API for creating memory channels}] [copyright {2004 Pat Thoyts }] [require Tcl] [require memchan] [description] The [package {memchan}] package provides a C API for use by third-party extension writers. This is exposed by a Tcl stubs library table to reduce version dependency as is available for Tcl itself. [section COMMAND] [list_begin definitions] [call Tcl_Channel [cmd Memchan_CreateMemoryChannel]\ ([arg "Tcl_Interp *interp"], [arg "int initialSize"])] [call Tcl_Channel [cmd Memchan_CreateFifoChannel]\ ([arg "Tcl_Interp *interp"])] [call void [cmd Memchan_CreateFifo2Channel] \ ([arg "Tcl_Interp *interp"], \ [arg "Tcl_Channel *aPtr"], \ [arg "Tcl_Channel *bPtr"])] [call Tcl_Channel [cmd Memchan_CreateNullChannel]\ ([arg "Tcl_Interp *interp"])] [call Tcl_Channel [cmd Memchan_CreateZeroChannel]\ ([arg "Tcl_Interp *interp"])] [call Tcl_Channel [cmd Memchan_CreateRandomChannel]\ ([arg "Tcl_Interp *interp"])] [list_end] [para] Each of these functions creates an returns a channel exactly as described in the Tcl command pages for each of the [package memchan] commands. The Tcl commands internally call these functions to create the channels. [para] The [cmd memchan] channel accepts an [arg initialSize] argument to permit pre-allocating space for the internal buffer. Normally this may be set to 0. [para] The [cmd fifo2] API function looks a little different because it must return two linked channels. [see_also Tcl_GetChannelName] [manpage_end]Memchan2.3/doc/manpage.css0000644000175000017500000000763510144247202015065 0ustar sergeisergei/* * $Id: manpage.css,v 1.1 2004/11/09 23:10:58 patthoyts Exp $ * Author: Joe English, * Created: 26 Jun 2000 * Description: CSS stylesheet for TCL man pages */ HTML { background: #FFFFFF; color: black; } BODY { background: #FFFFFF; color: black; } DIV.body { margin-left: 10%; margin-right: 10%; } DIV.header,DIV.footer { width: 100%; margin-left: 0%; margin-right: 0%; } DIV.body H1,DIV.body H2 { margin-left: -5%; } /* Navigation material: */ DIV.navbar { width: 100%; margin-top: 5pt; margin-bottom: 5pt; margin-left: 0%; margin-right: 0%; padding-top: 5pt; padding-bottom: 5pt; background: #DDDDDD; color: black; border: 1px solid black; text-align: center; font-size: small; font-family: sans-serif; } P.navaid { text-align: center; } .navaid { font-size: small; font-family: sans-serif; } P.notice { text-align: center; font-size: small; font-family: sans-serif; font-style: italic; color: red; } A.navaid:link { color: green; background: transparent; } A.navaid:visited { color: green; background: transparent; } A.navaid:active { color: yellow; background: transparent; } /* For most anchors, we should leave colors up to the user's preferences. */ /*-- A:link { color: blue; background: transparent; } A:visited { color: purple; background: transparent; } A:active { color: red; background: transparent; } --*/ H1, H2, H3, H4 { margin-top: 1em; font-family: sans-serif; font-size: large; color: #005A9C; background: transparent; text-align: left; } H1.title { text-align: center; } UL,OL { margin-right: 0em; margin-top: 3pt; margin-bottom: 3pt; } UL LI { list-style: disc; } OL LI { list-style: decimal; } DT { padding-top: 1ex; } DL.toc { font: normal 12pt/16pt sans-serif; margin-left: 10%; } UL.toc,UL.toc UL, UL.toc UL UL { font: normal 12pt/14pt sans-serif; list-style: none; } LI.tocentry,LI.tocheading { list-style: none; margin-left: 0em; text-indent: 0em; padding: 0em; } .tocheading { font-family: sans-serif; font-weight: bold; color: #005A9C; background: transparent; } PRE { display: block; font-family: monospace; white-space: pre; margin: 0%; padding-top: 0.5ex; padding-bottom: 0.5ex; padding-left: 1ex; padding-right: 1ex; width: 100%; } PRE.syntax { color: black; background: #80ffff; border: 1px solid black; font-family: serif; } PRE.example { color: black; background: #f5dcb3; border: 1px solid black; } PRE.sample { color: black; background: #f5dcb3; border: 1px solid black; } DIV.arglist { border: 1px solid black; width: 100%; } TH, THEAD TR, TR.heading { color: #005A9C; background: #DDDDDD; text-align: center; font-family: sans-serif; font-weight: bold; } TR.syntax { color: black; background: #80ffff; } TR.desc { color: black; background: #f5dcb3; } /* TR.row[01] are used to get alternately colored table rows. * Could probably choose better colors here... */ TR.row0 { color: black; background: #efffef; } TR.row1 { color: black; background: #efefff; } /* Workaround for Netscape bugs: * Netscape doesn't seem to compute table widths properly. * unless they're wrapped inside a DIV. (Additionally, * it appears to require a non-zero border-width.) */ DIV.table { border-width: 1px; border-color: white; width: 100%; } DIV.menu { /* Wrapper for TABLE class="menu" */ margin-top: 10px; margin-bottom: 10px; border: thin solid #005A9C; width: 100%; margin-left: 5%; } VAR { font-style: italic; } /* For debugging: highlight unrecognized elements: */ .unrecognized { color: red; background: green; } /* EOF */ Memchan2.3/doc/license.terms0000644000175000017500000000260706731255153015446 0ustar sergeisergeiThis software is copyrighted by Andreas Kupries. The following terms apply to all files associated with the software unless explicitly disclaimed in individual files. The author hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated on the first page of each file where they apply. IN NO EVENT SHALL THE AUTHOR OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHOR HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE AUTHOR AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHOR AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. Memchan2.3/doc/INSTALL0000644000175000017500000000643107614311654014000 0ustar sergeisergei# -- CVS $Id: INSTALL,v 1.2 2003/01/24 19:27:40 andreas_kupries Exp $ # Installation and compilation instructions with regard to the Memchan extension to TCL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This extension requires plain tcl, version 7.6 or higher. If you don't have it installed, do this now. The configure script (-> UNIX) will check the version of the installed tcl. Prerequisites: Tcl, Tcllib (The latter provides us with doctools and textutil::expander). 1.) Windows =============== The current distribution features a makefile for MSVC++ only. Just copy 'makefile.vc' to 'makefile', adapt the paths at the top of it as required by your setup (= directory structure, see comments), then type inside a DOS-box: > nmake > nmake install The 2nd command will place the new dll in a directory being a sibling to 'tcl\lib\tclX.Y', as required by the package loader. 2.) Mac =========== I don't have a Mac, nor do I have access to one. Because of this I am unable to provide a Mac port of this extension. I will most happily integrate any required changes, makefiles, et cetera into the distribution, if they are send to me (a.kupries@westend.com). 3.) Unix ============ o That you are reading this text means, that you extracted the gzipped tar-archive in a directory of your choice. This operation should have created a subdirectory with the name 'memchan'. It is refered to as "source-directory" from now on. o 'cd' into the source-directory, e.g. make it your working directory, then start the automatic setup by typing 'configure'. If your system does not understand the '#!' notation of specifying script-interpreters, you have to type 'sh configure' (or '/bin/sh configure', ...). o The configure script searches for tcl.h in the following places: -1 $(TCL_INCLUDE_DIR) -2 ../tcl8.0*/generic (b1, a2, a1, in this order) -3 ../tcl7.6/generic -4 ../tcl/generic -5 ../tcl -6 $(prefix) -7 /usr/local/include -8 /usr/include By default $(TCL_INCLUDE_DIR) is empty and $(prefix) points to the location of an installed 'tclsh' or is /usr/local if tclsh could not be found via $PATH. Use the following options to overide the defaults: --prefix=DIR -> $(prefix)=DIR --with-tcl=DIR -> $(TCL_INCLUDE_DIR)=DIR/include --with-tcl-include-dir=DIR -> $(TCL_INCLUDE_DIR)=DIR o To find libtcl.a (libtcl.so.??) the paths -1 $(TCL_LIB_DIR) -2 ../tcl8.0*/unix (b1, a2, a1, in this order) -3 ../tcl7.6/unix -4 ../tcl/unix -5 ../tcl -6 $(exec_prefix) -7 /usr/local/include -8 /usr/include are searched. $(TCL_LIB_DIR) is empty by default, but can be set via --with-tcl or --with-tcl-lib-dir. --with-tcl=DIR -> $(TCL_LIB_DIR)=DIR/lib --with-tcl-lib-dir=DIR -> $(TCL_LIB_DIR)=DIR $(exec_prefix) contains the same value as $(prefix) by default, but can be set explicitly via --exec-prefix o Another notable configure option is --enable-shared whose appearance commands the script to configure the Makefile for creation of shared libraries (as required for dynamic loading). o Now start the compilation by typing 'make'. The makefile will then compile the sources and build the library. o At last type 'make install' to install the generated library. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Enjoy Andreas Kupries (a.kupries@westend.com) Memchan2.3/doc/fifo.man0000644000175000017500000000453511500515232014355 0ustar sergeisergei[comment {-*- tcl -*- doctools}] [manpage_begin fifo n 2.1] [moddesc {Memory channels}] [titledesc {Create and manipulate u-turn fifo channels}] [copyright {1996-2003 Andreas Kupries }] [require Tcl] [require memchan] [description] [list_begin definitions] [call [cmd fifo]] creates a stream-oriented in-memory channel and returns its handle. There is no restriction on the ultimate size of the channel, it will always grow as much as is necessary to accommodate the data written into it. [nl] In contrast to the channels generated by [cmd memchan] a channel created here effectively represents an U-turn. All data written into it can be read out, but only in the same order. This also means that a fifo channel is not seekable. [nl] The channels created here can be transferred between interpreters in the same thread and between threads, but only as a whole. It is not possible to use them to create a bi- or unidirectional connection between two interpreters. [list_end] [para] Memory channels created by [cmd fifo] provide two read-only options which can be queried via the standard [cmd fconfigure] command. These are [list_begin definitions] [lst_item -length] The value of this option is the number of bytes currently stored in the queried memory channel. [lst_item -allocated] The value of this option is the number of bytes currently allocated by the queried memory channel. This number is at least as big as the value of [strong -length]. [list_end] [para] As the channels generated by [cmd fifo] grow as necessary they are always writable. This means that a writable [cmd fileevent]-handler will fire continuously. [para] The channels are also readable if they contain more than zero bytes. Under this conditions a readable [cmd fileevent]-handler will fire continuously. [section NOTES] [para] One possible application of memory channels created by [cmd memchan] or [cmd fifo] is as temporary storage device to collect data coming in over a pipe or a socket. If part of the processing of the incoming data is to read and process header bytes or similar fifo are easier to use as they do not require seeking back and forth to switch between the assimilation of headers at the beginning and writing new data at the end. [see_also memchan fifo2 null] [keywords fifo stream memchan {in-memory channel} channel i/o] [manpage_end] Memchan2.3/doc/fifo2.man0000644000175000017500000000442111500515232014431 0ustar sergeisergei[comment {-*- tcl -*- doctools}] [manpage_begin fifo2 n 2.2] [moddesc {Memory channels}] [titledesc {Create and manipulate pipe fifo channels}] [copyright {1996-2003 Andreas Kupries }] [require Tcl] [require memchan] [description] [para] The command described here is only available in a not-yet released version of the package. Use the CVS to get the sources. [list_begin definitions] [call [cmd fifo2]] creates two stream-oriented in-memory channels and returns their handles as a two-element list. There is no restriction on the ultimate size of the channels, they will always grow as much as is necessary to accommodate the data written into them. [nl] In contrast to the channels generated by [cmd fifo] a pair of channels created here is connected internally in such a way that data written into one channel can be read from the other. All data written into them is read in the same order. This also means that the two channels of the pair are not seekable. [nl] The channels created here can be transferred between interpreters in the same thread and between threads. As both channels in the pair can be transferred independently they can be used to create a bidirectional connection between two interpreters. [list_end] [para] Memory channels created by [cmd fifo2] provide two read-only options which can be queried via the standard [cmd fconfigure] command. These are [list_begin definitions] [lst_item -rlength] The value of this option is the number of bytes currently available for reading from the channel. [lst_item -wlength] The value of this option is the number of bytes currently written into the channel. [list_end] [para] Note that the two lengths are switched for the channels of a pair. In other words, the number of bytes written for one of the channels is the number of bytes readable from the other end. [para] As the channels generated by [cmd fifo2] grow as necessary they are always writable. This means that a writable [cmd fileevent]-handler will fire continuously. [para] The channels are also readable if they contain more than zero bytes. Under this conditions a readable [cmd fileevent]-handler will fire continuously. [see_also memchan fifo null] [keywords fifo stream memchan {in-memory channel} channel i/o] [manpage_end] Memchan2.3/tclconfig/0000755000175000017500000000000011500516253014135 5ustar sergeisergeiMemchan2.3/tclconfig/tcl.m40000644000175000017500000037603211500515232015170 0ustar sergeisergei# tcl.m4 -- # # This file provides a set of autoconf macros to help TEA-enable # a Tcl extension. # # Copyright (c) 1999-2000 Ajuba Solutions. # Copyright (c) 2002-2005 ActiveState Corporation. # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # RCS: @(#) $Id: tcl.m4,v 1.10 2010/12/08 21:44:56 andreas_kupries Exp $ AC_PREREQ(2.57) dnl TEA extensions pass us the version of TEA they think they dnl are compatible with (must be set in TEA_INIT below) dnl TEA_VERSION="3.9" # Possible values for key variables defined: # # TEA_WINDOWINGSYSTEM - win32 aqua x11 (mirrors 'tk windowingsystem') # TEA_PLATFORM - windows unix # #------------------------------------------------------------------------ # TEA_PATH_TCLCONFIG -- # # Locate the tclConfig.sh file and perform a sanity check on # the Tcl compile flags # # Arguments: # none # # Results: # # Adds the following arguments to configure: # --with-tcl=... # # Defines the following vars: # TCL_BIN_DIR Full path to the directory containing # the tclConfig.sh file #------------------------------------------------------------------------ AC_DEFUN([TEA_PATH_TCLCONFIG], [ dnl TEA specific: Make sure we are initialized AC_REQUIRE([TEA_INIT]) # # Ok, lets find the tcl configuration # First, look for one uninstalled. # the alternative search directory is invoked by --with-tcl # if test x"${no_tcl}" = x ; then # we reset no_tcl in case something fails here no_tcl=true AC_ARG_WITH(tcl, AC_HELP_STRING([--with-tcl], [directory containing tcl configuration (tclConfig.sh)]), with_tclconfig="${withval}") AC_MSG_CHECKING([for Tcl configuration]) AC_CACHE_VAL(ac_cv_c_tclconfig,[ # First check to see if --with-tcl was specified. if test x"${with_tclconfig}" != x ; then case "${with_tclconfig}" in */tclConfig.sh ) if test -f "${with_tclconfig}"; then AC_MSG_WARN([--with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself]) with_tclconfig="`echo "${with_tclconfig}" | sed 's!/tclConfig\.sh$!!'`" fi ;; esac if test -f "${with_tclconfig}/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd "${with_tclconfig}"; pwd)`" else AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh]) fi fi # then check for a private Tcl installation if test x"${ac_cv_c_tclconfig}" = x ; then for i in \ ../tcl \ `ls -dr ../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ `ls -dr ../tcl[[8-9]].[[0-9]] 2>/dev/null` \ `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ ../../tcl \ `ls -dr ../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ `ls -dr ../../tcl[[8-9]].[[0-9]] 2>/dev/null` \ `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ ../../../tcl \ `ls -dr ../../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ `ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \ `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do if test "${TEA_PLATFORM}" = "windows" \ -a -f "$i/win/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/win; pwd)`" break fi if test -f "$i/unix/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" break fi done fi # on Darwin, check in Framework installation locations if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ `ls -d /Library/Frameworks 2>/dev/null` \ `ls -d /Network/Library/Frameworks 2>/dev/null` \ `ls -d /System/Library/Frameworks 2>/dev/null` \ ; do if test -f "$i/Tcl.framework/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/Tcl.framework; pwd)`" break fi done fi # TEA specific: on Windows, check in common installation locations if test "${TEA_PLATFORM}" = "windows" \ -a x"${ac_cv_c_tclconfig}" = x ; then for i in `ls -d C:/Tcl/lib 2>/dev/null` \ `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \ ; do if test -f "$i/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i; pwd)`" break fi done fi # check in a few common install locations if test x"${ac_cv_c_tclconfig}" = x ; then for i in `ls -d ${libdir} 2>/dev/null` \ `ls -d ${exec_prefix}/lib 2>/dev/null` \ `ls -d ${prefix}/lib 2>/dev/null` \ `ls -d /usr/local/lib 2>/dev/null` \ `ls -d /usr/contrib/lib 2>/dev/null` \ `ls -d /usr/lib 2>/dev/null` \ `ls -d /usr/lib64 2>/dev/null` \ ; do if test -f "$i/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i; pwd)`" break fi done fi # check in a few other private locations if test x"${ac_cv_c_tclconfig}" = x ; then for i in \ ${srcdir}/../tcl \ `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \ `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do if test "${TEA_PLATFORM}" = "windows" \ -a -f "$i/win/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/win; pwd)`" break fi if test -f "$i/unix/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" break fi done fi ]) if test x"${ac_cv_c_tclconfig}" = x ; then TCL_BIN_DIR="# no Tcl configs found" AC_MSG_ERROR([Can't find Tcl configuration definitions]) else no_tcl= TCL_BIN_DIR="${ac_cv_c_tclconfig}" AC_MSG_RESULT([found ${TCL_BIN_DIR}/tclConfig.sh]) fi fi ]) #------------------------------------------------------------------------ # TEA_PATH_TKCONFIG -- # # Locate the tkConfig.sh file # # Arguments: # none # # Results: # # Adds the following arguments to configure: # --with-tk=... # # Defines the following vars: # TK_BIN_DIR Full path to the directory containing # the tkConfig.sh file #------------------------------------------------------------------------ AC_DEFUN([TEA_PATH_TKCONFIG], [ # # Ok, lets find the tk configuration # First, look for one uninstalled. # the alternative search directory is invoked by --with-tk # if test x"${no_tk}" = x ; then # we reset no_tk in case something fails here no_tk=true AC_ARG_WITH(tk, AC_HELP_STRING([--with-tk], [directory containing tk configuration (tkConfig.sh)]), with_tkconfig="${withval}") AC_MSG_CHECKING([for Tk configuration]) AC_CACHE_VAL(ac_cv_c_tkconfig,[ # First check to see if --with-tkconfig was specified. if test x"${with_tkconfig}" != x ; then case "${with_tkconfig}" in */tkConfig.sh ) if test -f "${with_tkconfig}"; then AC_MSG_WARN([--with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself]) with_tkconfig="`echo "${with_tkconfig}" | sed 's!/tkConfig\.sh$!!'`" fi ;; esac if test -f "${with_tkconfig}/tkConfig.sh" ; then ac_cv_c_tkconfig="`(cd "${with_tkconfig}"; pwd)`" else AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh]) fi fi # then check for a private Tk library if test x"${ac_cv_c_tkconfig}" = x ; then for i in \ ../tk \ `ls -dr ../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ `ls -dr ../tk[[8-9]].[[0-9]] 2>/dev/null` \ `ls -dr ../tk[[8-9]].[[0-9]]* 2>/dev/null` \ ../../tk \ `ls -dr ../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ `ls -dr ../../tk[[8-9]].[[0-9]] 2>/dev/null` \ `ls -dr ../../tk[[8-9]].[[0-9]]* 2>/dev/null` \ ../../../tk \ `ls -dr ../../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ `ls -dr ../../../tk[[8-9]].[[0-9]] 2>/dev/null` \ `ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do if test "${TEA_PLATFORM}" = "windows" \ -a -f "$i/win/tkConfig.sh" ; then ac_cv_c_tkconfig="`(cd $i/win; pwd)`" break fi if test -f "$i/unix/tkConfig.sh" ; then ac_cv_c_tkconfig="`(cd $i/unix; pwd)`" break fi done fi # on Darwin, check in Framework installation locations if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tkconfig}" = x ; then for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ `ls -d /Library/Frameworks 2>/dev/null` \ `ls -d /Network/Library/Frameworks 2>/dev/null` \ `ls -d /System/Library/Frameworks 2>/dev/null` \ ; do if test -f "$i/Tk.framework/tkConfig.sh" ; then ac_cv_c_tkconfig="`(cd $i/Tk.framework; pwd)`" break fi done fi # check in a few common install locations if test x"${ac_cv_c_tkconfig}" = x ; then for i in `ls -d ${libdir} 2>/dev/null` \ `ls -d ${exec_prefix}/lib 2>/dev/null` \ `ls -d ${prefix}/lib 2>/dev/null` \ `ls -d /usr/local/lib 2>/dev/null` \ `ls -d /usr/contrib/lib 2>/dev/null` \ `ls -d /usr/lib 2>/dev/null` \ `ls -d /usr/lib64 2>/dev/null` \ ; do if test -f "$i/tkConfig.sh" ; then ac_cv_c_tkconfig="`(cd $i; pwd)`" break fi done fi # TEA specific: on Windows, check in common installation locations if test "${TEA_PLATFORM}" = "windows" \ -a x"${ac_cv_c_tkconfig}" = x ; then for i in `ls -d C:/Tcl/lib 2>/dev/null` \ `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \ ; do if test -f "$i/tkConfig.sh" ; then ac_cv_c_tkconfig="`(cd $i; pwd)`" break fi done fi # check in a few other private locations if test x"${ac_cv_c_tkconfig}" = x ; then for i in \ ${srcdir}/../tk \ `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]] 2>/dev/null` \ `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do if test "${TEA_PLATFORM}" = "windows" \ -a -f "$i/win/tkConfig.sh" ; then ac_cv_c_tkconfig="`(cd $i/win; pwd)`" break fi if test -f "$i/unix/tkConfig.sh" ; then ac_cv_c_tkconfig="`(cd $i/unix; pwd)`" break fi done fi ]) if test x"${ac_cv_c_tkconfig}" = x ; then TK_BIN_DIR="# no Tk configs found" AC_MSG_ERROR([Can't find Tk configuration definitions]) else no_tk= TK_BIN_DIR="${ac_cv_c_tkconfig}" AC_MSG_RESULT([found ${TK_BIN_DIR}/tkConfig.sh]) fi fi ]) #------------------------------------------------------------------------ # TEA_LOAD_TCLCONFIG -- # # Load the tclConfig.sh file # # Arguments: # # Requires the following vars to be set: # TCL_BIN_DIR # # Results: # # Subst the following vars: # TCL_BIN_DIR # TCL_SRC_DIR # TCL_LIB_FILE # #------------------------------------------------------------------------ AC_DEFUN([TEA_LOAD_TCLCONFIG], [ AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh]) if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then AC_MSG_RESULT([loading]) . "${TCL_BIN_DIR}/tclConfig.sh" else AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh]) fi # eval is required to do the TCL_DBGX substitution eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\"" eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\"" # If the TCL_BIN_DIR is the build directory (not the install directory), # then set the common variable name to the value of the build variables. # For example, the variable TCL_LIB_SPEC will be set to the value # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC # instead of TCL_BUILD_LIB_SPEC since it will work with both an # installed and uninstalled version of Tcl. if test -f "${TCL_BIN_DIR}/Makefile" ; then TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}" TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}" TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}" elif test "`uname -s`" = "Darwin"; then # If Tcl was built as a framework, attempt to use the libraries # from the framework at the given location so that linking works # against Tcl.framework installed in an arbitrary location. case ${TCL_DEFS} in *TCL_FRAMEWORK*) if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then for i in "`cd "${TCL_BIN_DIR}"; pwd`" \ "`cd "${TCL_BIN_DIR}"/../..; pwd`"; do if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then TCL_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TCL_LIB_FILE}" break fi done fi if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then TCL_STUB_LIB_SPEC="-L`echo "${TCL_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}" TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}" fi ;; esac fi # eval is required to do the TCL_DBGX substitution eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\"" eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\"" eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\"" eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\"" AC_SUBST(TCL_VERSION) AC_SUBST(TCL_PATCH_LEVEL) AC_SUBST(TCL_BIN_DIR) AC_SUBST(TCL_SRC_DIR) AC_SUBST(TCL_LIB_FILE) AC_SUBST(TCL_LIB_FLAG) AC_SUBST(TCL_LIB_SPEC) AC_SUBST(TCL_STUB_LIB_FILE) AC_SUBST(TCL_STUB_LIB_FLAG) AC_SUBST(TCL_STUB_LIB_SPEC) case "`uname -s`" in *CYGWIN_*) AC_MSG_CHECKING([for cygwin variant]) case ${TCL_EXTRA_CFLAGS} in *-mwin32*|*-mno-cygwin*) TEA_PLATFORM="windows" CFLAGS="$CFLAGS -mwin32" AC_MSG_RESULT([win32]) ;; *) TEA_PLATFORM="unix" AC_MSG_RESULT([unix]) ;; esac EXEEXT=".exe" ;; *) ;; esac # The BUILD_$pkg is to define the correct extern storage class # handling when making this package AC_DEFINE_UNQUOTED(BUILD_${PACKAGE_NAME}, [], [Building extension source?]) # Do this here as we have fully defined TEA_PLATFORM now if test "${TEA_PLATFORM}" = "windows" ; then CLEANFILES="$CLEANFILES *.lib *.dll *.pdb *.exp" fi # TEA specific: AC_SUBST(CLEANFILES) AC_SUBST(TCL_LIBS) AC_SUBST(TCL_DEFS) AC_SUBST(TCL_EXTRA_CFLAGS) AC_SUBST(TCL_LD_FLAGS) AC_SUBST(TCL_SHLIB_LD_LIBS) ]) #------------------------------------------------------------------------ # TEA_LOAD_TKCONFIG -- # # Load the tkConfig.sh file # # Arguments: # # Requires the following vars to be set: # TK_BIN_DIR # # Results: # # Sets the following vars that should be in tkConfig.sh: # TK_BIN_DIR #------------------------------------------------------------------------ AC_DEFUN([TEA_LOAD_TKCONFIG], [ AC_MSG_CHECKING([for existence of ${TK_BIN_DIR}/tkConfig.sh]) if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then AC_MSG_RESULT([loading]) . "${TK_BIN_DIR}/tkConfig.sh" else AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh]) fi # eval is required to do the TK_DBGX substitution eval "TK_LIB_FILE=\"${TK_LIB_FILE}\"" eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\"" # If the TK_BIN_DIR is the build directory (not the install directory), # then set the common variable name to the value of the build variables. # For example, the variable TK_LIB_SPEC will be set to the value # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC # instead of TK_BUILD_LIB_SPEC since it will work with both an # installed and uninstalled version of Tcl. if test -f "${TK_BIN_DIR}/Makefile" ; then TK_LIB_SPEC="${TK_BUILD_LIB_SPEC}" TK_STUB_LIB_SPEC="${TK_BUILD_STUB_LIB_SPEC}" TK_STUB_LIB_PATH="${TK_BUILD_STUB_LIB_PATH}" elif test "`uname -s`" = "Darwin"; then # If Tk was built as a framework, attempt to use the libraries # from the framework at the given location so that linking works # against Tk.framework installed in an arbitrary location. case ${TK_DEFS} in *TK_FRAMEWORK*) if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then for i in "`cd "${TK_BIN_DIR}"; pwd`" \ "`cd "${TK_BIN_DIR}"/../..; pwd`"; do if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then TK_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TK_LIB_FILE}" break fi done fi if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then TK_STUB_LIB_SPEC="-L` echo "${TK_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TK_STUB_LIB_FLAG}" TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}" fi ;; esac fi # eval is required to do the TK_DBGX substitution eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\"" eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\"" eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\"" eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\"" # TEA specific: Ensure windowingsystem is defined if test "${TEA_PLATFORM}" = "unix" ; then case ${TK_DEFS} in *MAC_OSX_TK*) AC_DEFINE(MAC_OSX_TK, 1, [Are we building against Mac OS X TkAqua?]) TEA_WINDOWINGSYSTEM="aqua" ;; *) TEA_WINDOWINGSYSTEM="x11" ;; esac elif test "${TEA_PLATFORM}" = "windows" ; then TEA_WINDOWINGSYSTEM="win32" fi AC_SUBST(TK_VERSION) AC_SUBST(TK_BIN_DIR) AC_SUBST(TK_SRC_DIR) AC_SUBST(TK_LIB_FILE) AC_SUBST(TK_LIB_FLAG) AC_SUBST(TK_LIB_SPEC) AC_SUBST(TK_STUB_LIB_FILE) AC_SUBST(TK_STUB_LIB_FLAG) AC_SUBST(TK_STUB_LIB_SPEC) # TEA specific: AC_SUBST(TK_LIBS) AC_SUBST(TK_XINCLUDES) ]) #------------------------------------------------------------------------ # TEA_PROG_TCLSH # Determine the fully qualified path name of the tclsh executable # in the Tcl build directory or the tclsh installed in a bin # directory. This macro will correctly determine the name # of the tclsh executable even if tclsh has not yet been # built in the build directory. The tclsh found is always # associated with a tclConfig.sh file. This tclsh should be used # only for running extension test cases. It should never be # or generation of files (like pkgIndex.tcl) at build time. # # Arguments # none # # Results # Subst's the following values: # TCLSH_PROG #------------------------------------------------------------------------ AC_DEFUN([TEA_PROG_TCLSH], [ AC_MSG_CHECKING([for tclsh]) if test -f "${TCL_BIN_DIR}/Makefile" ; then # tclConfig.sh is in Tcl build directory if test "${TEA_PLATFORM}" = "windows"; then TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" else TCLSH_PROG="${TCL_BIN_DIR}/tclsh" fi else # tclConfig.sh is in install location if test "${TEA_PLATFORM}" = "windows"; then TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" else TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}" fi list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \ `ls -d ${TCL_BIN_DIR}/.. 2>/dev/null` \ `ls -d ${TCL_PREFIX}/bin 2>/dev/null`" for i in $list ; do if test -f "$i/${TCLSH_PROG}" ; then REAL_TCL_BIN_DIR="`cd "$i"; pwd`/" break fi done TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}" fi AC_MSG_RESULT([${TCLSH_PROG}]) AC_SUBST(TCLSH_PROG) ]) #------------------------------------------------------------------------ # TEA_PROG_WISH # Determine the fully qualified path name of the wish executable # in the Tk build directory or the wish installed in a bin # directory. This macro will correctly determine the name # of the wish executable even if wish has not yet been # built in the build directory. The wish found is always # associated with a tkConfig.sh file. This wish should be used # only for running extension test cases. It should never be # or generation of files (like pkgIndex.tcl) at build time. # # Arguments # none # # Results # Subst's the following values: # WISH_PROG #------------------------------------------------------------------------ AC_DEFUN([TEA_PROG_WISH], [ AC_MSG_CHECKING([for wish]) if test -f "${TK_BIN_DIR}/Makefile" ; then # tkConfig.sh is in Tk build directory if test "${TEA_PLATFORM}" = "windows"; then WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}" else WISH_PROG="${TK_BIN_DIR}/wish" fi else # tkConfig.sh is in install location if test "${TEA_PLATFORM}" = "windows"; then WISH_PROG="wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}" else WISH_PROG="wish${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_DBGX}" fi list="`ls -d ${TK_BIN_DIR}/../bin 2>/dev/null` \ `ls -d ${TK_BIN_DIR}/.. 2>/dev/null` \ `ls -d ${TK_PREFIX}/bin 2>/dev/null`" for i in $list ; do if test -f "$i/${WISH_PROG}" ; then REAL_TK_BIN_DIR="`cd "$i"; pwd`/" break fi done WISH_PROG="${REAL_TK_BIN_DIR}${WISH_PROG}" fi AC_MSG_RESULT([${WISH_PROG}]) AC_SUBST(WISH_PROG) ]) #------------------------------------------------------------------------ # TEA_ENABLE_SHARED -- # # Allows the building of shared libraries # # Arguments: # none # # Results: # # Adds the following arguments to configure: # --enable-shared=yes|no # # Defines the following vars: # STATIC_BUILD Used for building import/export libraries # on Windows. # # Sets the following vars: # SHARED_BUILD Value of 1 or 0 #------------------------------------------------------------------------ AC_DEFUN([TEA_ENABLE_SHARED], [ AC_MSG_CHECKING([how to build libraries]) AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build and link with shared libraries (default: on)]), [tcl_ok=$enableval], [tcl_ok=yes]) if test "${enable_shared+set}" = set; then enableval="$enable_shared" tcl_ok=$enableval else tcl_ok=yes fi if test "$tcl_ok" = "yes" ; then AC_MSG_RESULT([shared]) SHARED_BUILD=1 else AC_MSG_RESULT([static]) SHARED_BUILD=0 AC_DEFINE(STATIC_BUILD, 1, [Is this a static build?]) fi AC_SUBST(SHARED_BUILD) ]) #------------------------------------------------------------------------ # TEA_ENABLE_THREADS -- # # Specify if thread support should be enabled. If "yes" is specified # as an arg (optional), threads are enabled by default, "no" means # threads are disabled. "yes" is the default. # # TCL_THREADS is checked so that if you are compiling an extension # against a threaded core, your extension must be compiled threaded # as well. # # Note that it is legal to have a thread enabled extension run in a # threaded or non-threaded Tcl core, but a non-threaded extension may # only run in a non-threaded Tcl core. # # Arguments: # none # # Results: # # Adds the following arguments to configure: # --enable-threads # # Sets the following vars: # THREADS_LIBS Thread library(s) # # Defines the following vars: # TCL_THREADS # _REENTRANT # _THREAD_SAFE # #------------------------------------------------------------------------ AC_DEFUN([TEA_ENABLE_THREADS], [ AC_ARG_ENABLE(threads, AC_HELP_STRING([--enable-threads], [build with threads]), [tcl_ok=$enableval], [tcl_ok=yes]) if test "${enable_threads+set}" = set; then enableval="$enable_threads" tcl_ok=$enableval else tcl_ok=yes fi if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then TCL_THREADS=1 if test "${TEA_PLATFORM}" != "windows" ; then # We are always OK on Windows, so check what this platform wants: # USE_THREAD_ALLOC tells us to try the special thread-based # allocator that significantly reduces lock contention AC_DEFINE(USE_THREAD_ALLOC, 1, [Do we want to use the threaded memory allocator?]) AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?]) if test "`uname -s`" = "SunOS" ; then AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Do we really want to follow the standard? Yes we do!]) fi AC_DEFINE(_THREAD_SAFE, 1, [Do we want the thread-safe OS API?]) AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no) if test "$tcl_ok" = "no"; then # Check a little harder for __pthread_mutex_init in the same # library, as some systems hide it there until pthread.h is # defined. We could alternatively do an AC_TRY_COMPILE with # pthread.h, but that will work with libpthread really doesn't # exist, like AIX 4.2. [Bug: 4359] AC_CHECK_LIB(pthread, __pthread_mutex_init, tcl_ok=yes, tcl_ok=no) fi if test "$tcl_ok" = "yes"; then # The space is needed THREADS_LIBS=" -lpthread" else AC_CHECK_LIB(pthreads, pthread_mutex_init, tcl_ok=yes, tcl_ok=no) if test "$tcl_ok" = "yes"; then # The space is needed THREADS_LIBS=" -lpthreads" else AC_CHECK_LIB(c, pthread_mutex_init, tcl_ok=yes, tcl_ok=no) if test "$tcl_ok" = "no"; then AC_CHECK_LIB(c_r, pthread_mutex_init, tcl_ok=yes, tcl_ok=no) if test "$tcl_ok" = "yes"; then # The space is needed THREADS_LIBS=" -pthread" else TCL_THREADS=0 AC_MSG_WARN([Do not know how to find pthread lib on your system - thread support disabled]) fi fi fi fi fi else TCL_THREADS=0 fi # Do checking message here to not mess up interleaved configure output AC_MSG_CHECKING([for building with threads]) if test "${TCL_THREADS}" = 1; then AC_DEFINE(TCL_THREADS, 1, [Are we building with threads enabled?]) AC_MSG_RESULT([yes (default)]) else AC_MSG_RESULT([no]) fi # TCL_THREADS sanity checking. See if our request for building with # threads is the same as the way Tcl was built. If not, warn the user. case ${TCL_DEFS} in *THREADS=1*) if test "${TCL_THREADS}" = "0"; then AC_MSG_WARN([ Building ${PACKAGE_NAME} without threads enabled, but building against Tcl that IS thread-enabled. It is recommended to use --enable-threads.]) fi ;; *) if test "${TCL_THREADS}" = "1"; then AC_MSG_WARN([ --enable-threads requested, but building against a Tcl that is NOT thread-enabled. This is an OK configuration that will also run in a thread-enabled core.]) fi ;; esac AC_SUBST(TCL_THREADS) ]) #------------------------------------------------------------------------ # TEA_ENABLE_SYMBOLS -- # # Specify if debugging symbols should be used. # Memory (TCL_MEM_DEBUG) debugging can also be enabled. # # Arguments: # none # # TEA varies from core Tcl in that C|LDFLAGS_DEFAULT receives # the value of C|LDFLAGS_OPTIMIZE|DEBUG already substituted. # Requires the following vars to be set in the Makefile: # CFLAGS_DEFAULT # LDFLAGS_DEFAULT # # Results: # # Adds the following arguments to configure: # --enable-symbols # # Defines the following vars: # CFLAGS_DEFAULT Sets to $(CFLAGS_DEBUG) if true # Sets to $(CFLAGS_OPTIMIZE) if false # LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true # Sets to $(LDFLAGS_OPTIMIZE) if false # DBGX Formerly used as debug library extension; # always blank now. # #------------------------------------------------------------------------ AC_DEFUN([TEA_ENABLE_SYMBOLS], [ dnl TEA specific: Make sure we are initialized AC_REQUIRE([TEA_CONFIG_CFLAGS]) AC_MSG_CHECKING([for build with symbols]) AC_ARG_ENABLE(symbols, AC_HELP_STRING([--enable-symbols], [build with debugging symbols (default: off)]), [tcl_ok=$enableval], [tcl_ok=no]) DBGX="" if test "$tcl_ok" = "no"; then CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}" LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}" AC_MSG_RESULT([no]) else CFLAGS_DEFAULT="${CFLAGS_DEBUG}" LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}" if test "$tcl_ok" = "yes"; then AC_MSG_RESULT([yes (standard debugging)]) fi fi # TEA specific: if test "${TEA_PLATFORM}" != "windows" ; then LDFLAGS_DEFAULT="${LDFLAGS}" fi AC_SUBST(CFLAGS_DEFAULT) AC_SUBST(LDFLAGS_DEFAULT) AC_SUBST(TCL_DBGX) if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then AC_DEFINE(TCL_MEM_DEBUG, 1, [Is memory debugging enabled?]) fi if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then if test "$tcl_ok" = "all"; then AC_MSG_RESULT([enabled symbols mem debugging]) else AC_MSG_RESULT([enabled $tcl_ok debugging]) fi fi ]) #------------------------------------------------------------------------ # TEA_ENABLE_LANGINFO -- # # Allows use of modern nl_langinfo check for better l10n. # This is only relevant for Unix. # # Arguments: # none # # Results: # # Adds the following arguments to configure: # --enable-langinfo=yes|no (default is yes) # # Defines the following vars: # HAVE_LANGINFO Triggers use of nl_langinfo if defined. # #------------------------------------------------------------------------ AC_DEFUN([TEA_ENABLE_LANGINFO], [ AC_ARG_ENABLE(langinfo, AC_HELP_STRING([--enable-langinfo], [use nl_langinfo if possible to determine encoding at startup, otherwise use old heuristic (default: on)]), [langinfo_ok=$enableval], [langinfo_ok=yes]) HAVE_LANGINFO=0 if test "$langinfo_ok" = "yes"; then AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no]) fi AC_MSG_CHECKING([whether to use nl_langinfo]) if test "$langinfo_ok" = "yes"; then AC_CACHE_VAL(tcl_cv_langinfo_h, [ AC_TRY_COMPILE([#include ], [nl_langinfo(CODESET);], [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])]) AC_MSG_RESULT([$tcl_cv_langinfo_h]) if test $tcl_cv_langinfo_h = yes; then AC_DEFINE(HAVE_LANGINFO, 1, [Do we have nl_langinfo()?]) fi else AC_MSG_RESULT([$langinfo_ok]) fi ]) #-------------------------------------------------------------------- # TEA_CONFIG_SYSTEM # # Determine what the system is (some things cannot be easily checked # on a feature-driven basis, alas). This can usually be done via the # "uname" command. # # Arguments: # none # # Results: # Defines the following var: # # system - System/platform/version identification code. # #-------------------------------------------------------------------- AC_DEFUN([TEA_CONFIG_SYSTEM], [ AC_CACHE_CHECK([system version], tcl_cv_sys_version, [ # TEA specific: if test "${TEA_PLATFORM}" = "windows" ; then tcl_cv_sys_version=windows else tcl_cv_sys_version=`uname -s`-`uname -r` if test "$?" -ne 0 ; then AC_MSG_WARN([can't find uname command]) tcl_cv_sys_version=unknown else if test "`uname -s`" = "AIX" ; then tcl_cv_sys_version=AIX-`uname -v`.`uname -r` fi fi fi ]) system=$tcl_cv_sys_version ]) #-------------------------------------------------------------------- # TEA_CONFIG_CFLAGS # # Try to determine the proper flags to pass to the compiler # for building shared libraries and other such nonsense. # # Arguments: # none # # Results: # # Defines and substitutes the following vars: # # DL_OBJS, DL_LIBS - removed for TEA, only needed by core. # LDFLAGS - Flags to pass to the compiler when linking object # files into an executable application binary such # as tclsh. # LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib", # that tell the run-time dynamic linker where to look # for shared libraries such as libtcl.so. Depends on # the variable LIB_RUNTIME_DIR in the Makefile. Could # be the same as CC_SEARCH_FLAGS if ${CC} is used to link. # CC_SEARCH_FLAGS-Flags to pass to ${CC}, such as "-Wl,-rpath,/usr/local/tcl/lib", # that tell the run-time dynamic linker where to look # for shared libraries such as libtcl.so. Depends on # the variable LIB_RUNTIME_DIR in the Makefile. # SHLIB_CFLAGS - Flags to pass to cc when compiling the components # of a shared library (may request position-independent # code, among other things). # SHLIB_LD - Base command to use for combining object files # into a shared library. # SHLIB_LD_LIBS - Dependent libraries for the linker to scan when # creating shared libraries. This symbol typically # goes at the end of the "ld" commands that build # shared libraries. The value of the symbol defaults to # "${LIBS}" if all of the dependent libraries should # be specified when creating a shared library. If # dependent libraries should not be specified (as on # SunOS 4.x, where they cause the link to fail, or in # general if Tcl and Tk aren't themselves shared # libraries), then this symbol has an empty string # as its value. # SHLIB_SUFFIX - Suffix to use for the names of dynamically loadable # extensions. An empty string means we don't know how # to use shared libraries on this platform. # LIB_SUFFIX - Specifies everything that comes after the "libfoo" # in a static or shared library name, using the $VERSION variable # to put the version in the right place. This is used # by platforms that need non-standard library names. # Examples: ${VERSION}.so.1.1 on NetBSD, since it needs # to have a version after the .so, and ${VERSION}.a # on AIX, since a shared library needs to have # a .a extension whereas shared objects for loadable # extensions have a .so extension. Defaults to # ${VERSION}${SHLIB_SUFFIX}. # CFLAGS_DEBUG - # Flags used when running the compiler in debug mode # CFLAGS_OPTIMIZE - # Flags used when running the compiler in optimize mode # CFLAGS - Additional CFLAGS added as necessary (usually 64-bit) # #-------------------------------------------------------------------- AC_DEFUN([TEA_CONFIG_CFLAGS], [ dnl TEA specific: Make sure we are initialized AC_REQUIRE([TEA_INIT]) # Step 0.a: Enable 64 bit support? AC_MSG_CHECKING([if 64bit support is requested]) AC_ARG_ENABLE(64bit, AC_HELP_STRING([--enable-64bit], [enable 64bit support (default: off)]), [do64bit=$enableval], [do64bit=no]) AC_MSG_RESULT([$do64bit]) # Step 0.b: Enable Solaris 64 bit VIS support? AC_MSG_CHECKING([if 64bit Sparc VIS support is requested]) AC_ARG_ENABLE(64bit-vis, AC_HELP_STRING([--enable-64bit-vis], [enable 64bit Sparc VIS support (default: off)]), [do64bitVIS=$enableval], [do64bitVIS=no]) AC_MSG_RESULT([$do64bitVIS]) # Force 64bit on with VIS AS_IF([test "$do64bitVIS" = "yes"], [do64bit=yes]) # Step 0.c: Check if visibility support is available. Do this here so # that platform specific alternatives can be used below if this fails. AC_CACHE_CHECK([if compiler supports visibility "hidden"], tcl_cv_cc_visibility_hidden, [ hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" AC_TRY_LINK([ extern __attribute__((__visibility__("hidden"))) void f(void); void f(void) {}], [f();], tcl_cv_cc_visibility_hidden=yes, tcl_cv_cc_visibility_hidden=no) CFLAGS=$hold_cflags]) AS_IF([test $tcl_cv_cc_visibility_hidden = yes], [ AC_DEFINE(MODULE_SCOPE, [extern __attribute__((__visibility__("hidden")))], [Compiler support for module scope symbols]) ]) # Step 0.d: Disable -rpath support? AC_MSG_CHECKING([if rpath support is requested]) AC_ARG_ENABLE(rpath, AC_HELP_STRING([--disable-rpath], [disable rpath support (default: on)]), [doRpath=$enableval], [doRpath=yes]) AC_MSG_RESULT([$doRpath]) # TEA specific: Cross-compiling options for Windows/CE builds? AS_IF([test "${TEA_PLATFORM}" = windows], [ AC_MSG_CHECKING([if Windows/CE build is requested]) AC_ARG_ENABLE(wince, AC_HELP_STRING([--enable-wince], [enable Win/CE support (where applicable)]), [doWince=$enableval], [doWince=no]) AC_MSG_RESULT([$doWince]) ]) # Set the variable "system" to hold the name and version number # for the system. TEA_CONFIG_SYSTEM # Require ranlib early so we can override it in special cases below. AC_REQUIRE([AC_PROG_RANLIB]) # Set configuration options based on system name and version. # This is similar to Tcl's unix/tcl.m4 except that we've added a # "windows" case and removed some core-only vars. do64bit_ok=no # default to '{$LIBS}' and set to "" on per-platform necessary basis SHLIB_LD_LIBS='${LIBS}' # When ld needs options to work in 64-bit mode, put them in # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load] # is disabled by the user. [Bug 1016796] LDFLAGS_ARCH="" UNSHARED_LIB_SUFFIX="" # TEA specific: use PACKAGE_VERSION instead of VERSION TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`' ECHO_VERSION='`echo ${PACKAGE_VERSION}`' TCL_LIB_VERSIONS_OK=ok CFLAGS_DEBUG=-g CFLAGS_OPTIMIZE=-O AS_IF([test "$GCC" = yes], [ # TEA specific: CFLAGS_OPTIMIZE=-O2 CFLAGS_WARNING="-Wall" ], [CFLAGS_WARNING=""]) dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixed. dnl AC_CHECK_TOOL(AR, ar) AC_CHECK_PROG(AR, ar, ar) STLIB_LD='${AR} cr' LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" AS_IF([test "x$SHLIB_VERSION" = x],[SHLIB_VERSION="1.0"]) case $system in # TEA specific: windows) # This is a 2-stage check to make sure we have the 64-bit SDK # We have to know where the SDK is installed. # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs # MACHINE is IX86 for LINK, but this is used by the manifest, # which requires x86|amd64|ia64. MACHINE="X86" if test "$do64bit" != "no" ; then if test "x${MSSDK}x" = "xx" ; then MSSDK="C:/Progra~1/Microsoft Platform SDK" fi MSSDK=`echo "$MSSDK" | sed -e 's!\\\!/!g'` PATH64="" case "$do64bit" in amd64|x64|yes) MACHINE="AMD64" ; # default to AMD64 64-bit build PATH64="${MSSDK}/Bin/Win64/x86/AMD64" ;; ia64) MACHINE="IA64" PATH64="${MSSDK}/Bin/Win64" ;; esac if test ! -d "${PATH64}" ; then AC_MSG_WARN([Could not find 64-bit $MACHINE SDK to enable 64bit mode]) AC_MSG_WARN([Ensure latest Platform SDK is installed]) do64bit="no" else AC_MSG_RESULT([ Using 64-bit $MACHINE mode]) do64bit_ok="yes" fi fi if test "$doWince" != "no" ; then if test "$do64bit" != "no" ; then AC_MSG_ERROR([Windows/CE and 64-bit builds incompatible]) fi if test "$GCC" = "yes" ; then AC_MSG_ERROR([Windows/CE and GCC builds incompatible]) fi TEA_PATH_CELIB # Set defaults for common evc4/PPC2003 setup # Currently Tcl requires 300+, possibly 420+ for sockets CEVERSION=420; # could be 211 300 301 400 420 ... TARGETCPU=ARMV4; # could be ARMV4 ARM MIPS SH3 X86 ... ARCH=ARM; # could be ARM MIPS X86EM ... PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002" if test "$doWince" != "yes"; then # If !yes then the user specified something # Reset ARCH to allow user to skip specifying it ARCH= eval `echo $doWince | awk -F, '{ \ if (length([$]1)) { printf "CEVERSION=\"%s\"\n", [$]1; \ if ([$]1 < 400) { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \ if (length([$]2)) { printf "TARGETCPU=\"%s\"\n", toupper([$]2) }; \ if (length([$]3)) { printf "ARCH=\"%s\"\n", toupper([$]3) }; \ if (length([$]4)) { printf "PLATFORM=\"%s\"\n", [$]4 }; \ }'` if test "x${ARCH}" = "x" ; then ARCH=$TARGETCPU; fi fi OSVERSION=WCE$CEVERSION; if test "x${WCEROOT}" = "x" ; then WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0" if test ! -d "${WCEROOT}" ; then WCEROOT="C:/Program Files/Microsoft eMbedded Tools" fi fi if test "x${SDKROOT}" = "x" ; then SDKROOT="C:/Program Files/Windows CE Tools" if test ! -d "${SDKROOT}" ; then SDKROOT="C:/Windows CE Tools" fi fi WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'` SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'` if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \ -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then AC_MSG_ERROR([could not find PocketPC SDK or target compiler to enable WinCE mode [$CEVERSION,$TARGETCPU,$ARCH,$PLATFORM]]) doWince="no" else # We could PATH_NOSPACE these, but that's not important, # as long as we quote them when used. CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include" if test -d "${CEINCLUDE}/${TARGETCPU}" ; then CEINCLUDE="${CEINCLUDE}/${TARGETCPU}" fi CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" fi fi if test "$GCC" != "yes" ; then if test "${SHARED_BUILD}" = "0" ; then runtime=-MT else runtime=-MD fi if test "$do64bit" != "no" ; then # All this magic is necessary for the Win64 SDK RC1 - hobbs CC="\"${PATH64}/cl.exe\"" CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\"" RC="\"${MSSDK}/bin/rc.exe\"" lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\"" LINKBIN="\"${PATH64}/link.exe\"" CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d" CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" # Avoid 'unresolved external symbol __security_cookie' # errors, c.f. http://support.microsoft.com/?id=894573 TEA_ADD_LIBS([bufferoverflowU.lib]) elif test "$doWince" != "no" ; then CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin" if test "${TARGETCPU}" = "X86"; then CC="\"${CEBINROOT}/cl.exe\"" else CC="\"${CEBINROOT}/cl${ARCH}.exe\"" fi CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\"" RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\"" arch=`echo ${ARCH} | awk '{print tolower([$]0)}'` defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS" if test "${SHARED_BUILD}" = "1" ; then # Static CE builds require static celib as well defs="${defs} _DLL" fi for i in $defs ; do AC_DEFINE_UNQUOTED($i, 1, [WinCE def ]$i) done AC_DEFINE_UNQUOTED(_WIN32_WCE, $CEVERSION, [_WIN32_WCE version]) AC_DEFINE_UNQUOTED(UNDER_CE, $CEVERSION, [UNDER_CE version]) CFLAGS_DEBUG="-nologo -Zi -Od" CFLAGS_OPTIMIZE="-nologo -Ox" lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'` lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo" LINKBIN="\"${CEBINROOT}/link.exe\"" AC_SUBST(CELIB_DIR) else RC="rc" lflags="-nologo" LINKBIN="link" CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d" CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" fi fi if test "$GCC" = "yes"; then # mingw gcc mode RC="windres" CFLAGS_DEBUG="-g" CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" SHLIB_LD="$CC -shared" UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}" LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}" else SHLIB_LD="${LINKBIN} -dll ${lflags}" # link -lib only works when -lib is the first arg STLIB_LD="${LINKBIN} -lib ${lflags}" UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib' PATHTYPE=-w # For information on what debugtype is most useful, see: # http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp # and also # http://msdn2.microsoft.com/en-us/library/y0zzbyt4%28VS.80%29.aspx # This essentially turns it all on. LDFLAGS_DEBUG="-debug -debugtype:cv" LDFLAGS_OPTIMIZE="-release" if test "$doWince" != "no" ; then LDFLAGS_CONSOLE="-link ${lflags}" LDFLAGS_WINDOW=${LDFLAGS_CONSOLE} else LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}" LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}" fi fi SHLIB_SUFFIX=".dll" SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll' TCL_LIB_VERSIONS_OK=nodots ;; AIX-*) AS_IF([test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"], [ # AIX requires the _r compiler when gcc isn't being used case "${CC}" in *_r|*_r\ *) # ok ... ;; *) # Make sure only first arg gets _r CC=`echo "$CC" | sed -e 's/^\([[^ ]]*\)/\1_r/'` ;; esac AC_MSG_RESULT([Using $CC for compiling with threads]) ]) LIBS="$LIBS -lc" SHLIB_CFLAGS="" SHLIB_SUFFIX=".so" LD_LIBRARY_PATH_VAR="LIBPATH" # Check to enable 64-bit flags for compiler/linker AS_IF([test "$do64bit" = yes], [ AS_IF([test "$GCC" = yes], [ AC_MSG_WARN([64bit mode not supported with GCC on $system]) ], [ do64bit_ok=yes CFLAGS="$CFLAGS -q64" LDFLAGS_ARCH="-q64" RANLIB="${RANLIB} -X64" AR="${AR} -X64" SHLIB_LD_FLAGS="-b64" ]) ]) AS_IF([test "`uname -m`" = ia64], [ # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC SHLIB_LD="/usr/ccs/bin/ld -G -z text" AS_IF([test "$GCC" = yes], [ CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' ], [ CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' ]) LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' ], [ AS_IF([test "$GCC" = yes], [ SHLIB_LD='${CC} -shared -Wl,-bexpall' ], [ SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bexpall -H512 -T512 -bnoentry" LDFLAGS="$LDFLAGS -brtl" ]) SHLIB_LD="${SHLIB_LD} ${SHLIB_LD_FLAGS}" CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} ]) ;; BeOS*) SHLIB_CFLAGS="-fPIC" SHLIB_LD='${CC} -nostart' SHLIB_SUFFIX=".so" #----------------------------------------------------------- # Check for inet_ntoa in -lbind, for BeOS (which also needs # -lsocket, even if the network functions are in -lnet which # is always linked to, for compatibility. #----------------------------------------------------------- AC_CHECK_LIB(bind, inet_ntoa, [LIBS="$LIBS -lbind -lsocket"]) ;; BSD/OS-4.*) SHLIB_CFLAGS="-export-dynamic -fPIC" SHLIB_LD='${CC} -shared' SHLIB_SUFFIX=".so" LDFLAGS="$LDFLAGS -export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; CYGWIN_*) SHLIB_CFLAGS="" SHLIB_LD='${CC} -shared' SHLIB_SUFFIX=".dll" EXE_SUFFIX=".exe" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; Haiku*) LDFLAGS="$LDFLAGS -Wl,--export-dynamic" SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' AC_CHECK_LIB(network, inet_ntoa, [LIBS="$LIBS -lnetwork"]) ;; HP-UX-*.11.*) # Use updated header definitions where possible AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Do we want to use the XOPEN network library?]) # TEA specific: Needed by Tcl, but not most extensions #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?]) #LIBS="$LIBS -lxnet" # Use the XOPEN network library AS_IF([test "`uname -m`" = ia64], [ SHLIB_SUFFIX=".so" # Use newer C++ library for C++ extensions #if test "$GCC" != "yes" ; then # CPPFLAGS="-AA" #fi ], [ SHLIB_SUFFIX=".sl" ]) AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) AS_IF([test "$tcl_ok" = yes], [ LDFLAGS="$LDFLAGS -E" CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' LD_LIBRARY_PATH_VAR="SHLIB_PATH" ]) AS_IF([test "$GCC" = yes], [ SHLIB_LD='${CC} -shared' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} ], [ CFLAGS="$CFLAGS -z" # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc #CFLAGS="$CFLAGS +DAportable" SHLIB_CFLAGS="+z" SHLIB_LD="ld -b" ]) # Check to enable 64-bit flags for compiler/linker AS_IF([test "$do64bit" = "yes"], [ AS_IF([test "$GCC" = yes], [ case `${CC} -dumpmachine` in hppa64*) # 64-bit gcc in use. Fix flags for GNU ld. do64bit_ok=yes SHLIB_LD='${CC} -shared' AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} ;; *) AC_MSG_WARN([64bit mode not supported with GCC on $system]) ;; esac ], [ do64bit_ok=yes CFLAGS="$CFLAGS +DD64" LDFLAGS_ARCH="+DD64" ]) ]) ;; IRIX-6.*) SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_SUFFIX=".so" AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) AS_IF([test "$GCC" = yes], [ CFLAGS="$CFLAGS -mabi=n32" LDFLAGS="$LDFLAGS -mabi=n32" ], [ case $system in IRIX-6.3) # Use to build 6.2 compatible binaries on 6.3. CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS" ;; *) CFLAGS="$CFLAGS -n32" ;; esac LDFLAGS="$LDFLAGS -n32" ]) ;; IRIX64-6.*) SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_SUFFIX=".so" AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) # Check to enable 64-bit flags for compiler/linker AS_IF([test "$do64bit" = yes], [ AS_IF([test "$GCC" = yes], [ AC_MSG_WARN([64bit mode not supported by gcc]) ], [ do64bit_ok=yes SHLIB_LD="ld -64 -shared -rdata_shared" CFLAGS="$CFLAGS -64" LDFLAGS_ARCH="-64" ]) ]) ;; Linux*) SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" # TEA specific: CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS_DEFAULT}' LDFLAGS="$LDFLAGS -Wl,--export-dynamic" AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"]) AS_IF([test $do64bit = yes], [ AC_CACHE_CHECK([if compiler accepts -m64 flag], tcl_cv_cc_m64, [ hold_cflags=$CFLAGS CFLAGS="$CFLAGS -m64" AC_TRY_LINK(,, tcl_cv_cc_m64=yes, tcl_cv_cc_m64=no) CFLAGS=$hold_cflags]) AS_IF([test $tcl_cv_cc_m64 = yes], [ CFLAGS="$CFLAGS -m64" do64bit_ok=yes ]) ]) # The combo of gcc + glibc has a bug related to inlining of # functions like strtod(). The -fno-builtin flag should address # this problem but it does not work. The -fno-inline flag is kind # of overkill but it works. Disable inlining only when one of the # files in compat/*.c is being linked in. AS_IF([test x"${USE_COMPAT}" != x],[CFLAGS="$CFLAGS -fno-inline"]) ;; GNU*) SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" SHLIB_LD='${CC} -shared' LDFLAGS="$LDFLAGS -Wl,--export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"]) ;; Lynx*) SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" CFLAGS_OPTIMIZE=-02 SHLIB_LD='${CC} -shared' LD_FLAGS="-Wl,--export-dynamic" AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) ;; OpenBSD-*) SHLIB_CFLAGS="-fPIC" SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}' SHLIB_SUFFIX=".so" AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}' AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [ AC_EGREP_CPP(yes, [ #ifdef __ELF__ yes #endif ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)]) AS_IF([test $tcl_cv_ld_elf = yes], [ LDFLAGS=-Wl,-export-dynamic ], [LDFLAGS=""]) AS_IF([test "${TCL_THREADS}" = "1"], [ # OpenBSD builds and links with -pthread, never -lpthread. LIBS=`echo $LIBS | sed s/-lpthread//` CFLAGS="$CFLAGS -pthread" #SHLIB_CFLAGS="$SHLIB_CFLAGS -pthread" ]) # OpenBSD doesn't do version numbers with dots. UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' TCL_LIB_VERSIONS_OK=nodots ;; NetBSD-*|FreeBSD-[[3-4]].*) # FreeBSD 3.* and greater have ELF. # NetBSD 2.* has ELF and can use 'cc -shared' to build shared libs SHLIB_CFLAGS="-fPIC" SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}' SHLIB_SUFFIX=".so" LDFLAGS="$LDFLAGS -export-dynamic" AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} AS_IF([test "${TCL_THREADS}" = "1"], [ # The -pthread needs to go in the CFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" ]) case $system in FreeBSD-3.*) # FreeBSD-3 doesn't handle version numbers with dots. UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so' TCL_LIB_VERSIONS_OK=nodots ;; esac ;; FreeBSD-*) # This configuration from FreeBSD Ports. SHLIB_CFLAGS="-fPIC" SHLIB_LD="${CC} -shared" TCL_SHLIB_LD_EXTRAS="-soname \$[@]" SHLIB_SUFFIX=".so" LDFLAGS="" AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) AS_IF([test "${TCL_THREADS}" = "1"], [ # The -pthread needs to go in the LDFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` CFLAGS="$CFLAGS $PTHREAD_CFLAGS" LDFLAGS="$LDFLAGS $PTHREAD_LIBS"]) # Version numbers are dot-stripped by system policy. TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .` UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1' TCL_LIB_VERSIONS_OK=nodots ;; Darwin-*) CFLAGS_OPTIMIZE="-Os" SHLIB_CFLAGS="-fno-common" # To avoid discrepancies between what headers configure sees during # preprocessing tests and compiling tests, move any -isysroot and # -mmacosx-version-min flags from CFLAGS to CPPFLAGS: CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \ awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ if ([$]i~/^(isysroot|mmacosx-version-min)/) print "-"[$]i}'`" CFLAGS="`echo " ${CFLAGS}" | \ awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ if (!([$]i~/^(isysroot|mmacosx-version-min)/)) print "-"[$]i}'`" AS_IF([test $do64bit = yes], [ case `arch` in ppc) AC_CACHE_CHECK([if compiler accepts -arch ppc64 flag], tcl_cv_cc_arch_ppc64, [ hold_cflags=$CFLAGS CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" AC_TRY_LINK(,, tcl_cv_cc_arch_ppc64=yes, tcl_cv_cc_arch_ppc64=no) CFLAGS=$hold_cflags]) AS_IF([test $tcl_cv_cc_arch_ppc64 = yes], [ CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" do64bit_ok=yes ]);; i386) AC_CACHE_CHECK([if compiler accepts -arch x86_64 flag], tcl_cv_cc_arch_x86_64, [ hold_cflags=$CFLAGS CFLAGS="$CFLAGS -arch x86_64" AC_TRY_LINK(,, tcl_cv_cc_arch_x86_64=yes, tcl_cv_cc_arch_x86_64=no) CFLAGS=$hold_cflags]) AS_IF([test $tcl_cv_cc_arch_x86_64 = yes], [ CFLAGS="$CFLAGS -arch x86_64" do64bit_ok=yes ]);; *) AC_MSG_WARN([Don't know how enable 64-bit on architecture `arch`]);; esac ], [ # Check for combined 32-bit and 64-bit fat build AS_IF([echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \ && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '], [ fat_32_64=yes]) ]) # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}' AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [ hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no) LDFLAGS=$hold_ldflags]) AS_IF([test $tcl_cv_ld_single_module = yes], [ SHLIB_LD="${SHLIB_LD} -Wl,-single_module" ]) # TEA specific: link shlib with current and compatiblity version flags vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([[0-9]]\{1,5\}\)\(\(\.[[0-9]]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d` SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}" SHLIB_SUFFIX=".dylib" # Don't use -prebind when building for Mac OS X 10.4 or later only: AS_IF([test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \ "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int([$]2)}'`" -lt 4], [ LDFLAGS="$LDFLAGS -prebind"]) LDFLAGS="$LDFLAGS -headerpad_max_install_names" AC_CACHE_CHECK([if ld accepts -search_paths_first flag], tcl_cv_ld_search_paths_first, [ hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-search_paths_first" AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes, tcl_cv_ld_search_paths_first=no) LDFLAGS=$hold_ldflags]) AS_IF([test $tcl_cv_ld_search_paths_first = yes], [ LDFLAGS="$LDFLAGS -Wl,-search_paths_first" ]) AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [ AC_DEFINE(MODULE_SCOPE, [__private_extern__], [Compiler support for module scope symbols]) tcl_cv_cc_visibility_hidden=yes ]) CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" # TEA specific: for combined 32 & 64 bit fat builds of Tk # extensions, verify that 64-bit build is possible. AS_IF([test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"], [ AS_IF([test "${TEA_WINDOWINGSYSTEM}" = x11], [ AC_CACHE_CHECK([for 64-bit X11], tcl_cv_lib_x11_64, [ for v in CFLAGS CPPFLAGS LDFLAGS; do eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' done CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include" LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11" AC_TRY_LINK([#include ], [XrmInitialize();], tcl_cv_lib_x11_64=yes, tcl_cv_lib_x11_64=no) for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="$hold_'$v'"' done]) ]) AS_IF([test "${TEA_WINDOWINGSYSTEM}" = aqua], [ AC_CACHE_CHECK([for 64-bit Tk], tcl_cv_lib_tk_64, [ for v in CFLAGS CPPFLAGS LDFLAGS; do eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' done CPPFLAGS="$CPPFLAGS -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 ${TCL_INCLUDES} ${TK_INCLUDES}" LDFLAGS="$LDFLAGS ${TCL_STUB_LIB_SPEC} ${TK_STUB_LIB_SPEC}" AC_TRY_LINK([#include ], [Tk_InitStubs(NULL, "", 0);], tcl_cv_lib_tk_64=yes, tcl_cv_lib_tk_64=no) for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="$hold_'$v'"' done]) ]) # remove 64-bit arch flags from CFLAGS et al. if configuration # does not support 64-bit. AS_IF([test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no], [ AC_MSG_NOTICE([Removing 64-bit architectures from compiler & linker flags]) for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' done]) ]) ;; OS/390-*) CFLAGS_OPTIMIZE="" # Optimizer is buggy AC_DEFINE(_OE_SOCKETS, 1, # needed in sys/socket.h [Should OS/390 do the right thing with sockets?]) ;; OSF1-V*) # Digital OSF/1 SHLIB_CFLAGS="" AS_IF([test "$SHARED_BUILD" = 1], [ SHLIB_LD='ld -shared -expect_unresolved "*"' ], [ SHLIB_LD='ld -non_shared -expect_unresolved "*"' ]) SHLIB_SUFFIX=".so" AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) AS_IF([test "$GCC" = yes], [CFLAGS="$CFLAGS -mieee"], [ CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee"]) # see pthread_intro(3) for pthread support on osf1, k.furukawa AS_IF([test "${TCL_THREADS}" = 1], [ CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" LIBS=`echo $LIBS | sed s/-lpthreads//` AS_IF([test "$GCC" = yes], [ LIBS="$LIBS -lpthread -lmach -lexc" ], [ CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" ]) ]) ;; QNX-6*) # QNX RTP # This may work for all QNX, but it was only reported for v6. SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; SCO_SV-3.2*) AS_IF([test "$GCC" = yes], [ SHLIB_CFLAGS="-fPIC -melf" LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" ], [ SHLIB_CFLAGS="-Kpic -belf" LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" ]) SHLIB_LD="ld -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; SunOS-5.[[0-6]]) # Careful to not let 5.10+ fall into this case # Note: If _REENTRANT isn't defined, then Solaris # won't define thread-safe library routines. AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?]) AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Do we really want to follow the standard? Yes we do!]) SHLIB_CFLAGS="-KPIC" SHLIB_SUFFIX=".so" AS_IF([test "$GCC" = yes], [ SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} ], [ SHLIB_LD="/usr/ccs/bin/ld -G -z text" CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} ]) ;; SunOS-5*) # Note: If _REENTRANT isn't defined, then Solaris # won't define thread-safe library routines. AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?]) AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Do we really want to follow the standard? Yes we do!]) SHLIB_CFLAGS="-KPIC" # Check to enable 64-bit flags for compiler/linker AS_IF([test "$do64bit" = yes], [ arch=`isainfo` AS_IF([test "$arch" = "sparcv9 sparc"], [ AS_IF([test "$GCC" = yes], [ AS_IF([test "`${CC} -dumpversion | awk -F. '{print [$]1}'`" -lt 3], [ AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system]) ], [ do64bit_ok=yes CFLAGS="$CFLAGS -m64 -mcpu=v9" LDFLAGS="$LDFLAGS -m64 -mcpu=v9" SHLIB_CFLAGS="-fPIC" ]) ], [ do64bit_ok=yes AS_IF([test "$do64bitVIS" = yes], [ CFLAGS="$CFLAGS -xarch=v9a" LDFLAGS_ARCH="-xarch=v9a" ], [ CFLAGS="$CFLAGS -xarch=v9" LDFLAGS_ARCH="-xarch=v9" ]) # Solaris 64 uses this as well #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64" ]) ], [AS_IF([test "$arch" = "amd64 i386"], [ AS_IF([test "$GCC" = yes], [ case $system in SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*) do64bit_ok=yes CFLAGS="$CFLAGS -m64" LDFLAGS="$LDFLAGS -m64";; *) AC_MSG_WARN([64bit mode not supported with GCC on $system]);; esac ], [ do64bit_ok=yes case $system in SunOS-5.1[[1-9]]*|SunOS-5.[[2-9]][[0-9]]*) CFLAGS="$CFLAGS -m64" LDFLAGS="$LDFLAGS -m64";; *) CFLAGS="$CFLAGS -xarch=amd64" LDFLAGS="$LDFLAGS -xarch=amd64";; esac ]) ], [AC_MSG_WARN([64bit mode not supported for $arch])])]) ]) SHLIB_SUFFIX=".so" AS_IF([test "$GCC" = yes], [ SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} AS_IF([test "$do64bit_ok" = yes], [ AS_IF([test "$arch" = "sparcv9 sparc"], [ # We need to specify -static-libgcc or we need to # add the path to the sparv9 libgcc. # JH: static-libgcc is necessary for core Tcl, but may # not be necessary for extensions. SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc" # for finding sparcv9 libgcc, get the regular libgcc # path, remove so name and append 'sparcv9' #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" ], [AS_IF([test "$arch" = "amd64 i386"], [ # JH: static-libgcc is necessary for core Tcl, but may # not be necessary for extensions. SHLIB_LD="$SHLIB_LD -m64 -static-libgcc" ])]) ]) ], [ case $system in SunOS-5.[[1-9]][[0-9]]*) # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} -G -z text ${LDFLAGS_DEFAULT}';; *) SHLIB_LD='/usr/ccs/bin/ld -G -z text';; esac CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' ]) ;; esac AS_IF([test "$do64bit" = yes -a "$do64bit_ok" = no], [ AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform]) ]) dnl # Add any CPPFLAGS set in the environment to our CFLAGS, but delay doing so dnl # until the end of configure, as configure's compile and link tests use dnl # both CPPFLAGS and CFLAGS (unlike our compile and link) but configure's dnl # preprocessing tests use only CPPFLAGS. AC_CONFIG_COMMANDS_PRE([CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS=""]) # Add in the arch flags late to ensure it wasn't removed. # Not necessary in TEA, but this is aligned with core LDFLAGS="$LDFLAGS $LDFLAGS_ARCH" # If we're running gcc, then change the C flags for compiling shared # libraries to the right flags for gcc, instead of those for the # standard manufacturer compiler. AS_IF([test "$GCC" = yes], [ case $system in AIX-*) ;; BSD/OS*) ;; CYGWIN_*) ;; IRIX*) ;; NetBSD-*|FreeBSD-*|OpenBSD-*) ;; Darwin-*) ;; SCO_SV-3.2*) ;; windows) ;; *) SHLIB_CFLAGS="-fPIC" ;; esac]) AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [ AC_DEFINE(MODULE_SCOPE, [extern], [No Compiler support for module scope symbols]) AC_DEFINE(NO_VIZ, [], [No visibility hidden passed to zlib?]) ]) AS_IF([test "$SHARED_LIB_SUFFIX" = ""], [ # TEA specific: use PACKAGE_VERSION instead of VERSION SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}']) AS_IF([test "$UNSHARED_LIB_SUFFIX" = ""], [ # TEA specific: use PACKAGE_VERSION instead of VERSION UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a']) AC_SUBST(CFLAGS_DEBUG) AC_SUBST(CFLAGS_OPTIMIZE) AC_SUBST(CFLAGS_WARNING) AC_SUBST(STLIB_LD) AC_SUBST(SHLIB_LD) AC_SUBST(SHLIB_LD_LIBS) AC_SUBST(SHLIB_CFLAGS) AC_SUBST(LD_LIBRARY_PATH_VAR) # These must be called after we do the basic CFLAGS checks and # verify any possible 64-bit or similar switches are necessary TEA_TCL_EARLY_FLAGS TEA_TCL_64BIT_FLAGS ]) #-------------------------------------------------------------------- # TEA_SERIAL_PORT # # Determine which interface to use to talk to the serial port. # Note that #include lines must begin in leftmost column for # some compilers to recognize them as preprocessor directives, # and some build environments have stdin not pointing at a # pseudo-terminal (usually /dev/null instead.) # # Arguments: # none # # Results: # # Defines only one of the following vars: # HAVE_SYS_MODEM_H # USE_TERMIOS # USE_TERMIO # USE_SGTTY # #-------------------------------------------------------------------- AC_DEFUN([TEA_SERIAL_PORT], [ AC_CHECK_HEADERS(sys/modem.h) AC_CACHE_CHECK([termios vs. termio vs. sgtty], tcl_cv_api_serial, [ AC_TRY_RUN([ #include int main() { struct termios t; if (tcgetattr(0, &t) == 0) { cfsetospeed(&t, 0); t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; return 0; } return 1; }], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) if test $tcl_cv_api_serial = no ; then AC_TRY_RUN([ #include int main() { struct termio t; if (ioctl(0, TCGETA, &t) == 0) { t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; return 0; } return 1; }], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) fi if test $tcl_cv_api_serial = no ; then AC_TRY_RUN([ #include int main() { struct sgttyb t; if (ioctl(0, TIOCGETP, &t) == 0) { t.sg_ospeed = 0; t.sg_flags |= ODDP | EVENP | RAW; return 0; } return 1; }], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=no, tcl_cv_api_serial=no) fi if test $tcl_cv_api_serial = no ; then AC_TRY_RUN([ #include #include int main() { struct termios t; if (tcgetattr(0, &t) == 0 || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { cfsetospeed(&t, 0); t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; return 0; } return 1; }], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) fi if test $tcl_cv_api_serial = no; then AC_TRY_RUN([ #include #include int main() { struct termio t; if (ioctl(0, TCGETA, &t) == 0 || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; return 0; } return 1; }], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) fi if test $tcl_cv_api_serial = no; then AC_TRY_RUN([ #include #include int main() { struct sgttyb t; if (ioctl(0, TIOCGETP, &t) == 0 || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { t.sg_ospeed = 0; t.sg_flags |= ODDP | EVENP | RAW; return 0; } return 1; }], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none) fi]) case $tcl_cv_api_serial in termios) AC_DEFINE(USE_TERMIOS, 1, [Use the termios API for serial lines]);; termio) AC_DEFINE(USE_TERMIO, 1, [Use the termio API for serial lines]);; sgtty) AC_DEFINE(USE_SGTTY, 1, [Use the sgtty API for serial lines]);; esac ]) #-------------------------------------------------------------------- # TEA_MISSING_POSIX_HEADERS # # Supply substitutes for missing POSIX header files. Special # notes: # - stdlib.h doesn't define strtol, strtoul, or # strtod in some versions of SunOS # - some versions of string.h don't declare procedures such # as strstr # # Arguments: # none # # Results: # # Defines some of the following vars: # NO_DIRENT_H # NO_ERRNO_H # NO_VALUES_H # HAVE_LIMITS_H or NO_LIMITS_H # NO_STDLIB_H # NO_STRING_H # NO_SYS_WAIT_H # NO_DLFCN_H # HAVE_SYS_PARAM_H # # HAVE_STRING_H ? # # tkUnixPort.h checks for HAVE_LIMITS_H, so do both HAVE and # CHECK on limits.h #-------------------------------------------------------------------- AC_DEFUN([TEA_MISSING_POSIX_HEADERS], [ AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h, [ AC_TRY_LINK([#include #include ], [ #ifndef _POSIX_SOURCE # ifdef __Lynx__ /* * Generate compilation error to make the test fail: Lynx headers * are only valid if really in the POSIX environment. */ missing_procedure(); # endif #endif DIR *d; struct dirent *entryPtr; char *p; d = opendir("foobar"); entryPtr = readdir(d); p = entryPtr->d_name; closedir(d); ], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no)]) if test $tcl_cv_dirent_h = no; then AC_DEFINE(NO_DIRENT_H, 1, [Do we have ?]) fi # TEA specific: AC_CHECK_HEADER(errno.h, , [AC_DEFINE(NO_ERRNO_H, 1, [Do we have ?])]) AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H, 1, [Do we have ?])]) AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H, 1, [Do we have ?])]) AC_CHECK_HEADER(limits.h, [AC_DEFINE(HAVE_LIMITS_H, 1, [Do we have ?])], [AC_DEFINE(NO_LIMITS_H, 1, [Do we have ?])]) AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0) AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0) AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0) AC_EGREP_HEADER(strtod, stdlib.h, , tcl_ok=0) if test $tcl_ok = 0; then AC_DEFINE(NO_STDLIB_H, 1, [Do we have ?]) fi AC_CHECK_HEADER(string.h, tcl_ok=1, tcl_ok=0) AC_EGREP_HEADER(strstr, string.h, , tcl_ok=0) AC_EGREP_HEADER(strerror, string.h, , tcl_ok=0) # See also memmove check below for a place where NO_STRING_H can be # set and why. if test $tcl_ok = 0; then AC_DEFINE(NO_STRING_H, 1, [Do we have ?]) fi AC_CHECK_HEADER(sys/wait.h, , [AC_DEFINE(NO_SYS_WAIT_H, 1, [Do we have ?])]) AC_CHECK_HEADER(dlfcn.h, , [AC_DEFINE(NO_DLFCN_H, 1, [Do we have ?])]) # OS/390 lacks sys/param.h (and doesn't need it, by chance). AC_HAVE_HEADERS(sys/param.h) ]) #-------------------------------------------------------------------- # TEA_PATH_X # # Locate the X11 header files and the X11 library archive. Try # the ac_path_x macro first, but if it doesn't find the X stuff # (e.g. because there's no xmkmf program) then check through # a list of possible directories. Under some conditions the # autoconf macro will return an include directory that contains # no include files, so double-check its result just to be safe. # # This should be called after TEA_CONFIG_CFLAGS as setting the # LIBS line can confuse some configure macro magic. # # Arguments: # none # # Results: # # Sets the following vars: # XINCLUDES # XLIBSW # PKG_LIBS (appends to) # #-------------------------------------------------------------------- AC_DEFUN([TEA_PATH_X], [ if test "${TEA_WINDOWINGSYSTEM}" = "x11" ; then TEA_PATH_UNIX_X fi ]) AC_DEFUN([TEA_PATH_UNIX_X], [ AC_PATH_X not_really_there="" if test "$no_x" = ""; then if test "$x_includes" = ""; then AC_TRY_CPP([#include ], , not_really_there="yes") else if test ! -r $x_includes/X11/Intrinsic.h; then not_really_there="yes" fi fi fi if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then AC_MSG_CHECKING([for X11 header files]) found_xincludes="no" AC_TRY_CPP([#include ], found_xincludes="yes", found_xincludes="no") if test "$found_xincludes" = "no"; then dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include" for i in $dirs ; do if test -r $i/X11/Intrinsic.h; then AC_MSG_RESULT([$i]) XINCLUDES=" -I$i" found_xincludes="yes" break fi done fi else if test "$x_includes" != ""; then XINCLUDES="-I$x_includes" found_xincludes="yes" fi fi if test "$found_xincludes" = "no"; then AC_MSG_RESULT([couldn't find any!]) fi if test "$no_x" = yes; then AC_MSG_CHECKING([for X11 libraries]) XLIBSW=nope dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" for i in $dirs ; do if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl -o -r $i/libX11.dylib; then AC_MSG_RESULT([$i]) XLIBSW="-L$i -lX11" x_libraries="$i" break fi done else if test "$x_libraries" = ""; then XLIBSW=-lX11 else XLIBSW="-L$x_libraries -lX11" fi fi if test "$XLIBSW" = nope ; then AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow) fi if test "$XLIBSW" = nope ; then AC_MSG_RESULT([could not find any! Using -lX11.]) XLIBSW=-lX11 fi # TEA specific: if test x"${XLIBSW}" != x ; then PKG_LIBS="${PKG_LIBS} ${XLIBSW}" fi ]) #-------------------------------------------------------------------- # TEA_BLOCKING_STYLE # # The statements below check for systems where POSIX-style # non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented. # On these systems (mostly older ones), use the old BSD-style # FIONBIO approach instead. # # Arguments: # none # # Results: # # Defines some of the following vars: # HAVE_SYS_IOCTL_H # HAVE_SYS_FILIO_H # USE_FIONBIO # O_NONBLOCK # #-------------------------------------------------------------------- AC_DEFUN([TEA_BLOCKING_STYLE], [ AC_CHECK_HEADERS(sys/ioctl.h) AC_CHECK_HEADERS(sys/filio.h) TEA_CONFIG_SYSTEM AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O]) case $system in OSF*) AC_DEFINE(USE_FIONBIO, 1, [Should we use FIONBIO?]) AC_MSG_RESULT([FIONBIO]) ;; *) AC_MSG_RESULT([O_NONBLOCK]) ;; esac ]) #-------------------------------------------------------------------- # TEA_TIME_HANDLER # # Checks how the system deals with time.h, what time structures # are used on the system, and what fields the structures have. # # Arguments: # none # # Results: # # Defines some of the following vars: # USE_DELTA_FOR_TZ # HAVE_TM_GMTOFF # HAVE_TM_TZADJ # HAVE_TIMEZONE_VAR # #-------------------------------------------------------------------- AC_DEFUN([TEA_TIME_HANDLER], [ AC_CHECK_HEADERS(sys/time.h) AC_HEADER_TIME AC_STRUCT_TIMEZONE AC_CHECK_FUNCS(gmtime_r localtime_r) AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, [ AC_TRY_COMPILE([#include ], [struct tm tm; tm.tm_tzadj;], tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)]) if test $tcl_cv_member_tm_tzadj = yes ; then AC_DEFINE(HAVE_TM_TZADJ, 1, [Should we use the tm_tzadj field of struct tm?]) fi AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [ AC_TRY_COMPILE([#include ], [struct tm tm; tm.tm_gmtoff;], tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)]) if test $tcl_cv_member_tm_gmtoff = yes ; then AC_DEFINE(HAVE_TM_GMTOFF, 1, [Should we use the tm_gmtoff field of struct tm?]) fi # # Its important to include time.h in this check, as some systems # (like convex) have timezone functions, etc. # AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [ AC_TRY_COMPILE([#include ], [extern long timezone; timezone += 1; exit (0);], tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)]) if test $tcl_cv_timezone_long = yes ; then AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?]) else # # On some systems (eg IRIX 6.2), timezone is a time_t and not a long. # AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [ AC_TRY_COMPILE([#include ], [extern time_t timezone; timezone += 1; exit (0);], tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)]) if test $tcl_cv_timezone_time = yes ; then AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?]) fi fi ]) #-------------------------------------------------------------------- # TEA_BUGGY_STRTOD # # Under Solaris 2.4, strtod returns the wrong value for the # terminating character under some conditions. Check for this # and if the problem exists use a substitute procedure # "fixstrtod" (provided by Tcl) that corrects the error. # Also, on Compaq's Tru64 Unix 5.0, # strtod(" ") returns 0.0 instead of a failure to convert. # # Arguments: # none # # Results: # # Might defines some of the following vars: # strtod (=fixstrtod) # #-------------------------------------------------------------------- AC_DEFUN([TEA_BUGGY_STRTOD], [ AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0) if test "$tcl_strtod" = 1; then AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[ AC_TRY_RUN([ extern double strtod(); int main() { char *infString="Inf", *nanString="NaN", *spaceString=" "; char *term; double value; value = strtod(infString, &term); if ((term != infString) && (term[-1] == 0)) { exit(1); } value = strtod(nanString, &term); if ((term != nanString) && (term[-1] == 0)) { exit(1); } value = strtod(spaceString, &term); if (term == (spaceString+1)) { exit(1); } exit(0); }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy, tcl_cv_strtod_buggy=buggy)]) if test "$tcl_cv_strtod_buggy" = buggy; then AC_LIBOBJ([fixstrtod]) USE_COMPAT=1 AC_DEFINE(strtod, fixstrtod, [Do we want to use the strtod() in compat?]) fi fi ]) #-------------------------------------------------------------------- # TEA_TCL_LINK_LIBS # # Search for the libraries needed to link the Tcl shell. # Things like the math library (-lm) and socket stuff (-lsocket vs. # -lnsl) are dealt with here. # # Arguments: # Requires the following vars to be set in the Makefile: # DL_LIBS (not in TEA, only needed in core) # LIBS # MATH_LIBS # # Results: # # Subst's the following var: # TCL_LIBS # MATH_LIBS # # Might append to the following vars: # LIBS # # Might define the following vars: # HAVE_NET_ERRNO_H # #-------------------------------------------------------------------- AC_DEFUN([TEA_TCL_LINK_LIBS], [ #-------------------------------------------------------------------- # On a few very rare systems, all of the libm.a stuff is # already in libc.a. Set compiler flags accordingly. # Also, Linux requires the "ieee" library for math to work # right (and it must appear before "-lm"). #-------------------------------------------------------------------- AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm") AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"]) #-------------------------------------------------------------------- # Interactive UNIX requires -linet instead of -lsocket, plus it # needs net/errno.h to define the socket-related error codes. #-------------------------------------------------------------------- AC_CHECK_LIB(inet, main, [LIBS="$LIBS -linet"]) AC_CHECK_HEADER(net/errno.h, [ AC_DEFINE(HAVE_NET_ERRNO_H, 1, [Do we have ?])]) #-------------------------------------------------------------------- # Check for the existence of the -lsocket and -lnsl libraries. # The order here is important, so that they end up in the right # order in the command line generated by make. Here are some # special considerations: # 1. Use "connect" and "accept" to check for -lsocket, and # "gethostbyname" to check for -lnsl. # 2. Use each function name only once: can't redo a check because # autoconf caches the results of the last check and won't redo it. # 3. Use -lnsl and -lsocket only if they supply procedures that # aren't already present in the normal libraries. This is because # IRIX 5.2 has libraries, but they aren't needed and they're # bogus: they goof up name resolution if used. # 4. On some SVR4 systems, can't use -lsocket without -lnsl too. # To get around this problem, check for both libraries together # if -lsocket doesn't work by itself. #-------------------------------------------------------------------- tcl_checkBoth=0 AC_CHECK_FUNC(connect, tcl_checkSocket=0, tcl_checkSocket=1) if test "$tcl_checkSocket" = 1; then AC_CHECK_FUNC(setsockopt, , [AC_CHECK_LIB(socket, setsockopt, LIBS="$LIBS -lsocket", tcl_checkBoth=1)]) fi if test "$tcl_checkBoth" = 1; then tk_oldLibs=$LIBS LIBS="$LIBS -lsocket -lnsl" AC_CHECK_FUNC(accept, tcl_checkNsl=0, [LIBS=$tk_oldLibs]) fi AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(nsl, gethostbyname, [LIBS="$LIBS -lnsl"])]) # TEA specific: Don't perform the eval of the libraries here because # DL_LIBS won't be set until we call TEA_CONFIG_CFLAGS TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}' AC_SUBST(TCL_LIBS) AC_SUBST(MATH_LIBS) ]) #-------------------------------------------------------------------- # TEA_TCL_EARLY_FLAGS # # Check for what flags are needed to be passed so the correct OS # features are available. # # Arguments: # None # # Results: # # Might define the following vars: # _ISOC99_SOURCE # _LARGEFILE64_SOURCE # _LARGEFILE_SOURCE64 # #-------------------------------------------------------------------- AC_DEFUN([TEA_TCL_EARLY_FLAG],[ AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]), AC_TRY_COMPILE([$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no, AC_TRY_COMPILE([[#define ]$1[ 1 ]$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=yes, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no))) if test ["x${tcl_cv_flag_]translit($1,[A-Z],[a-z])[}" = "xyes"] ; then AC_DEFINE($1, 1, [Add the ]$1[ flag when building]) tcl_flags="$tcl_flags $1" fi ]) AC_DEFUN([TEA_TCL_EARLY_FLAGS],[ AC_MSG_CHECKING([for required early compiler flags]) tcl_flags="" TEA_TCL_EARLY_FLAG(_ISOC99_SOURCE,[#include ], [char *p = (char *)strtoll; char *q = (char *)strtoull;]) TEA_TCL_EARLY_FLAG(_LARGEFILE64_SOURCE,[#include ], [struct stat64 buf; int i = stat64("/", &buf);]) TEA_TCL_EARLY_FLAG(_LARGEFILE_SOURCE64,[#include ], [char *p = (char *)open64;]) if test "x${tcl_flags}" = "x" ; then AC_MSG_RESULT([none]) else AC_MSG_RESULT([${tcl_flags}]) fi ]) #-------------------------------------------------------------------- # TEA_TCL_64BIT_FLAGS # # Check for what is defined in the way of 64-bit features. # # Arguments: # None # # Results: # # Might define the following vars: # TCL_WIDE_INT_IS_LONG # TCL_WIDE_INT_TYPE # HAVE_STRUCT_DIRENT64 # HAVE_STRUCT_STAT64 # HAVE_TYPE_OFF64_T # #-------------------------------------------------------------------- AC_DEFUN([TEA_TCL_64BIT_FLAGS], [ AC_MSG_CHECKING([for 64-bit integer type]) AC_CACHE_VAL(tcl_cv_type_64bit,[ tcl_cv_type_64bit=none # See if the compiler knows natively about __int64 AC_TRY_COMPILE(,[__int64 value = (__int64) 0;], tcl_type_64bit=__int64, tcl_type_64bit="long long") # See if we should use long anyway Note that we substitute in the # type that is our current guess for a 64-bit type inside this check # program, so it should be modified only carefully... AC_TRY_COMPILE(,[switch (0) { case 1: case (sizeof(]${tcl_type_64bit}[)==sizeof(long)): ; }],tcl_cv_type_64bit=${tcl_type_64bit})]) if test "${tcl_cv_type_64bit}" = none ; then AC_DEFINE(TCL_WIDE_INT_IS_LONG, 1, [Are wide integers to be implemented with C 'long's?]) AC_MSG_RESULT([using long]) elif test "${tcl_cv_type_64bit}" = "__int64" \ -a "${TEA_PLATFORM}" = "windows" ; then # TEA specific: We actually want to use the default tcl.h checks in # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER* AC_MSG_RESULT([using Tcl header defaults]) else AC_DEFINE_UNQUOTED(TCL_WIDE_INT_TYPE,${tcl_cv_type_64bit}, [What type should be used to define wide integers?]) AC_MSG_RESULT([${tcl_cv_type_64bit}]) # Now check for auxiliary declarations AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[ AC_TRY_COMPILE([#include #include ],[struct dirent64 p;], tcl_cv_struct_dirent64=yes,tcl_cv_struct_dirent64=no)]) if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then AC_DEFINE(HAVE_STRUCT_DIRENT64, 1, [Is 'struct dirent64' in ?]) fi AC_CACHE_CHECK([for struct stat64], tcl_cv_struct_stat64,[ AC_TRY_COMPILE([#include ],[struct stat64 p; ], tcl_cv_struct_stat64=yes,tcl_cv_struct_stat64=no)]) if test "x${tcl_cv_struct_stat64}" = "xyes" ; then AC_DEFINE(HAVE_STRUCT_STAT64, 1, [Is 'struct stat64' in ?]) fi AC_CHECK_FUNCS(open64 lseek64) AC_MSG_CHECKING([for off64_t]) AC_CACHE_VAL(tcl_cv_type_off64_t,[ AC_TRY_COMPILE([#include ],[off64_t offset; ], tcl_cv_type_off64_t=yes,tcl_cv_type_off64_t=no)]) dnl Define HAVE_TYPE_OFF64_T only when the off64_t type and the dnl functions lseek64 and open64 are defined. if test "x${tcl_cv_type_off64_t}" = "xyes" && \ test "x${ac_cv_func_lseek64}" = "xyes" && \ test "x${ac_cv_func_open64}" = "xyes" ; then AC_DEFINE(HAVE_TYPE_OFF64_T, 1, [Is off64_t in ?]) AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi fi ]) ## ## Here ends the standard Tcl configuration bits and starts the ## TEA specific functions ## #------------------------------------------------------------------------ # TEA_INIT -- # # Init various Tcl Extension Architecture (TEA) variables. # This should be the first called TEA_* macro. # # Arguments: # none # # Results: # # Defines and substs the following vars: # CYGPATH # EXEEXT # Defines only: # TEA_VERSION # TEA_INITED # TEA_PLATFORM (windows or unix) # # "cygpath" is used on windows to generate native path names for include # files. These variables should only be used with the compiler and linker # since they generate native path names. # # EXEEXT # Select the executable extension based on the host type. This # is a lightweight replacement for AC_EXEEXT that doesn't require # a compiler. #------------------------------------------------------------------------ AC_DEFUN([TEA_INIT], [ # TEA extensions pass this us the version of TEA they think they # are compatible with. TEA_VERSION="3.9" AC_MSG_CHECKING([for correct TEA configuration]) if test x"${PACKAGE_NAME}" = x ; then AC_MSG_ERROR([ The PACKAGE_NAME variable must be defined by your TEA configure.in]) fi if test x"$1" = x ; then AC_MSG_ERROR([ TEA version not specified.]) elif test "$1" != "${TEA_VERSION}" ; then AC_MSG_RESULT([warning: requested TEA version "$1", have "${TEA_VERSION}"]) else AC_MSG_RESULT([ok (TEA ${TEA_VERSION})]) fi case "`uname -s`" in *win32*|*WIN32*|*MINGW32_*) AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo) EXEEXT=".exe" TEA_PLATFORM="windows" ;; *CYGWIN_*) CYGPATH=echo EXEEXT=".exe" # TEA_PLATFORM is determined later in LOAD_TCLCONFIG ;; *) CYGPATH=echo EXEEXT="" TEA_PLATFORM="unix" ;; esac # Check if exec_prefix is set. If not use fall back to prefix. # Note when adjusted, so that TEA_PREFIX can correct for this. # This is needed for recursive configures, since autoconf propagates # $prefix, but not $exec_prefix (doh!). if test x$exec_prefix = xNONE ; then exec_prefix_default=yes exec_prefix=$prefix fi AC_MSG_NOTICE([configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}]) AC_SUBST(EXEEXT) AC_SUBST(CYGPATH) # This package name must be replaced statically for AC_SUBST to work AC_SUBST(PKG_LIB_FILE) # Substitute STUB_LIB_FILE in case package creates a stub library too. AC_SUBST(PKG_STUB_LIB_FILE) # We AC_SUBST these here to ensure they are subst'ed, # in case the user doesn't call TEA_ADD_... AC_SUBST(PKG_STUB_SOURCES) AC_SUBST(PKG_STUB_OBJECTS) AC_SUBST(PKG_TCL_SOURCES) AC_SUBST(PKG_HEADERS) AC_SUBST(PKG_INCLUDES) AC_SUBST(PKG_LIBS) AC_SUBST(PKG_CFLAGS) ]) #------------------------------------------------------------------------ # TEA_ADD_SOURCES -- # # Specify one or more source files. Users should check for # the right platform before adding to their list. # It is not important to specify the directory, as long as it is # in the generic, win or unix subdirectory of $(srcdir). # # Arguments: # one or more file names # # Results: # # Defines and substs the following vars: # PKG_SOURCES # PKG_OBJECTS #------------------------------------------------------------------------ AC_DEFUN([TEA_ADD_SOURCES], [ vars="$@" for i in $vars; do case $i in [\$]*) # allow $-var names PKG_SOURCES="$PKG_SOURCES $i" PKG_OBJECTS="$PKG_OBJECTS $i" ;; *) # check for existence - allows for generic/win/unix VPATH # To add more dirs here (like 'src'), you have to update VPATH # in Makefile.in as well if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ -a ! -f "${srcdir}/macosx/$i" \ ; then AC_MSG_ERROR([could not find source file '$i']) fi PKG_SOURCES="$PKG_SOURCES $i" # this assumes it is in a VPATH dir i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}" else j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}" fi PKG_OBJECTS="$PKG_OBJECTS $j" ;; esac done AC_SUBST(PKG_SOURCES) AC_SUBST(PKG_OBJECTS) ]) #------------------------------------------------------------------------ # TEA_ADD_STUB_SOURCES -- # # Specify one or more source files. Users should check for # the right platform before adding to their list. # It is not important to specify the directory, as long as it is # in the generic, win or unix subdirectory of $(srcdir). # # Arguments: # one or more file names # # Results: # # Defines and substs the following vars: # PKG_STUB_SOURCES # PKG_STUB_OBJECTS #------------------------------------------------------------------------ AC_DEFUN([TEA_ADD_STUB_SOURCES], [ vars="$@" for i in $vars; do # check for existence - allows for generic/win/unix VPATH if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ -a ! -f "${srcdir}/macosx/$i" \ ; then AC_MSG_ERROR([could not find stub source file '$i']) fi PKG_STUB_SOURCES="$PKG_STUB_SOURCES $i" # this assumes it is in a VPATH dir i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}" else j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}" fi PKG_STUB_OBJECTS="$PKG_STUB_OBJECTS $j" done AC_SUBST(PKG_STUB_SOURCES) AC_SUBST(PKG_STUB_OBJECTS) ]) #------------------------------------------------------------------------ # TEA_ADD_TCL_SOURCES -- # # Specify one or more Tcl source files. These should be platform # independent runtime files. # # Arguments: # one or more file names # # Results: # # Defines and substs the following vars: # PKG_TCL_SOURCES #------------------------------------------------------------------------ AC_DEFUN([TEA_ADD_TCL_SOURCES], [ vars="$@" for i in $vars; do # check for existence, be strict because it is installed if test ! -f "${srcdir}/$i" ; then AC_MSG_ERROR([could not find tcl source file '${srcdir}/$i']) fi PKG_TCL_SOURCES="$PKG_TCL_SOURCES $i" done AC_SUBST(PKG_TCL_SOURCES) ]) #------------------------------------------------------------------------ # TEA_ADD_HEADERS -- # # Specify one or more source headers. Users should check for # the right platform before adding to their list. # # Arguments: # one or more file names # # Results: # # Defines and substs the following vars: # PKG_HEADERS #------------------------------------------------------------------------ AC_DEFUN([TEA_ADD_HEADERS], [ vars="$@" for i in $vars; do # check for existence, be strict because it is installed if test ! -f "${srcdir}/$i" ; then AC_MSG_ERROR([could not find header file '${srcdir}/$i']) fi PKG_HEADERS="$PKG_HEADERS $i" done AC_SUBST(PKG_HEADERS) ]) #------------------------------------------------------------------------ # TEA_ADD_INCLUDES -- # # Specify one or more include dirs. Users should check for # the right platform before adding to their list. # # Arguments: # one or more file names # # Results: # # Defines and substs the following vars: # PKG_INCLUDES #------------------------------------------------------------------------ AC_DEFUN([TEA_ADD_INCLUDES], [ vars="$@" for i in $vars; do PKG_INCLUDES="$PKG_INCLUDES $i" done AC_SUBST(PKG_INCLUDES) ]) #------------------------------------------------------------------------ # TEA_ADD_LIBS -- # # Specify one or more libraries. Users should check for # the right platform before adding to their list. For Windows, # libraries provided in "foo.lib" format will be converted to # "-lfoo" when using GCC (mingw). # # Arguments: # one or more file names # # Results: # # Defines and substs the following vars: # PKG_LIBS #------------------------------------------------------------------------ AC_DEFUN([TEA_ADD_LIBS], [ vars="$@" for i in $vars; do if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then # Convert foo.lib to -lfoo for GCC. No-op if not *.lib i=`echo "$i" | sed -e 's/^\([[^-]].*\)\.lib[$]/-l\1/i'` fi PKG_LIBS="$PKG_LIBS $i" done AC_SUBST(PKG_LIBS) ]) #------------------------------------------------------------------------ # TEA_ADD_CFLAGS -- # # Specify one or more CFLAGS. Users should check for # the right platform before adding to their list. # # Arguments: # one or more file names # # Results: # # Defines and substs the following vars: # PKG_CFLAGS #------------------------------------------------------------------------ AC_DEFUN([TEA_ADD_CFLAGS], [ PKG_CFLAGS="$PKG_CFLAGS $@" AC_SUBST(PKG_CFLAGS) ]) #------------------------------------------------------------------------ # TEA_ADD_CLEANFILES -- # # Specify one or more CLEANFILES. # # Arguments: # one or more file names to clean target # # Results: # # Appends to CLEANFILES, already defined for subst in LOAD_TCLCONFIG #------------------------------------------------------------------------ AC_DEFUN([TEA_ADD_CLEANFILES], [ CLEANFILES="$CLEANFILES $@" ]) #------------------------------------------------------------------------ # TEA_PREFIX -- # # Handle the --prefix=... option by defaulting to what Tcl gave # # Arguments: # none # # Results: # # If --prefix or --exec-prefix was not specified, $prefix and # $exec_prefix will be set to the values given to Tcl when it was # configured. #------------------------------------------------------------------------ AC_DEFUN([TEA_PREFIX], [ if test "${prefix}" = "NONE"; then prefix_default=yes if test x"${TCL_PREFIX}" != x; then AC_MSG_NOTICE([--prefix defaulting to TCL_PREFIX ${TCL_PREFIX}]) prefix=${TCL_PREFIX} else AC_MSG_NOTICE([--prefix defaulting to /usr/local]) prefix=/usr/local fi fi if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \ -o x"${exec_prefix_default}" = x"yes" ; then if test x"${TCL_EXEC_PREFIX}" != x; then AC_MSG_NOTICE([--exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}]) exec_prefix=${TCL_EXEC_PREFIX} else AC_MSG_NOTICE([--exec-prefix defaulting to ${prefix}]) exec_prefix=$prefix fi fi ]) #------------------------------------------------------------------------ # TEA_SETUP_COMPILER_CC -- # # Do compiler checks the way we want. This is just a replacement # for AC_PROG_CC in TEA configure.in files to make them cleaner. # # Arguments: # none # # Results: # # Sets up CC var and other standard bits we need to make executables. #------------------------------------------------------------------------ AC_DEFUN([TEA_SETUP_COMPILER_CC], [ # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE) # in this macro, they need to go into TEA_SETUP_COMPILER instead. # If the user did not set CFLAGS, set it now to keep # the AC_PROG_CC macro from adding "-g -O2". if test "${CFLAGS+set}" != "set" ; then CFLAGS="" fi AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL #-------------------------------------------------------------------- # Checks to see if the make program sets the $MAKE variable. #-------------------------------------------------------------------- AC_PROG_MAKE_SET #-------------------------------------------------------------------- # Find ranlib #-------------------------------------------------------------------- AC_PROG_RANLIB #-------------------------------------------------------------------- # Determines the correct binary file extension (.o, .obj, .exe etc.) #-------------------------------------------------------------------- AC_OBJEXT AC_EXEEXT ]) #------------------------------------------------------------------------ # TEA_SETUP_COMPILER -- # # Do compiler checks that use the compiler. This must go after # TEA_SETUP_COMPILER_CC, which does the actual compiler check. # # Arguments: # none # # Results: # # Sets up CC var and other standard bits we need to make executables. #------------------------------------------------------------------------ AC_DEFUN([TEA_SETUP_COMPILER], [ # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here. AC_REQUIRE([TEA_SETUP_COMPILER_CC]) #------------------------------------------------------------------------ # If we're using GCC, see if the compiler understands -pipe. If so, use it. # It makes compiling go faster. (This is only a performance feature.) #------------------------------------------------------------------------ if test -z "$no_pipe" -a -n "$GCC"; then AC_CACHE_CHECK([if the compiler understands -pipe], tcl_cv_cc_pipe, [ hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe" AC_TRY_COMPILE(,, tcl_cv_cc_pipe=yes, tcl_cv_cc_pipe=no) CFLAGS=$hold_cflags]) if test $tcl_cv_cc_pipe = yes; then CFLAGS="$CFLAGS -pipe" fi fi #-------------------------------------------------------------------- # Common compiler flag setup #-------------------------------------------------------------------- AC_C_BIGENDIAN if test "${TEA_PLATFORM}" = "unix" ; then TEA_TCL_LINK_LIBS TEA_MISSING_POSIX_HEADERS # Let the user call this, because if it triggers, they will # need a compat/strtod.c that is correct. Users can also # use Tcl_GetDouble(FromObj) instead. #TEA_BUGGY_STRTOD fi ]) #------------------------------------------------------------------------ # TEA_MAKE_LIB -- # # Generate a line that can be used to build a shared/unshared library # in a platform independent manner. # # Arguments: # none # # Requires: # # Results: # # Defines the following vars: # CFLAGS - Done late here to note disturb other AC macros # MAKE_LIB - Command to execute to build the Tcl library; # differs depending on whether or not Tcl is being # compiled as a shared library. # MAKE_SHARED_LIB Makefile rule for building a shared library # MAKE_STATIC_LIB Makefile rule for building a static library # MAKE_STUB_LIB Makefile rule for building a stub library # VC_MANIFEST_EMBED_DLL Makefile rule for embedded VC manifest in DLL # VC_MANIFEST_EMBED_EXE Makefile rule for embedded VC manifest in EXE #------------------------------------------------------------------------ AC_DEFUN([TEA_MAKE_LIB], [ if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)" MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)" AC_EGREP_CPP([manifest needed], [ #if defined(_MSC_VER) && _MSC_VER >= 1400 print("manifest needed") #endif ], [ # Could do a CHECK_PROG for mt, but should always be with MSVC8+ VC_MANIFEST_EMBED_DLL="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;2 ; fi" VC_MANIFEST_EMBED_EXE="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;1 ; fi" MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}" TEA_ADD_CLEANFILES([*.manifest]) ]) MAKE_STUB_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_STUB_OBJECTS)" else MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)" MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}" MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)" fi if test "${SHARED_BUILD}" = "1" ; then MAKE_LIB="${MAKE_SHARED_LIB} " else MAKE_LIB="${MAKE_STATIC_LIB} " fi #-------------------------------------------------------------------- # Shared libraries and static libraries have different names. # Use the double eval to make sure any variables in the suffix is # substituted. (@@@ Might not be necessary anymore) #-------------------------------------------------------------------- if test "${TEA_PLATFORM}" = "windows" ; then if test "${SHARED_BUILD}" = "1" ; then # We force the unresolved linking of symbols that are really in # the private libraries of Tcl and Tk. SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\"" if test x"${TK_BIN_DIR}" != x ; then SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" fi # Some packages build their own stubs libraries eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" if test "$GCC" = "yes"; then PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE} fi # These aren't needed on Windows (either MSVC or gcc) RANLIB=: RANLIB_STUB=: else RANLIB_STUB="${RANLIB}" if test "${SHARED_BUILD}" = "1" ; then SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}" if test x"${TK_BIN_DIR}" != x ; then SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}" fi eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" RANLIB=: else eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" fi # Some packages build their own stubs libraries eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" fi # These are escaped so that only CFLAGS is picked up at configure time. # The other values will be substituted at make time. CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}" if test "${SHARED_BUILD}" = "1" ; then CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}" fi AC_SUBST(MAKE_LIB) AC_SUBST(MAKE_SHARED_LIB) AC_SUBST(MAKE_STATIC_LIB) AC_SUBST(MAKE_STUB_LIB) AC_SUBST(RANLIB_STUB) AC_SUBST(VC_MANIFEST_EMBED_DLL) AC_SUBST(VC_MANIFEST_EMBED_EXE) ]) #------------------------------------------------------------------------ # TEA_LIB_SPEC -- # # Compute the name of an existing object library located in libdir # from the given base name and produce the appropriate linker flags. # # Arguments: # basename The base name of the library without version # numbers, extensions, or "lib" prefixes. # extra_dir Extra directory in which to search for the # library. This location is used first, then # $prefix/$exec-prefix, then some defaults. # # Requires: # TEA_INIT and TEA_PREFIX must be called first. # # Results: # # Defines the following vars: # ${basename}_LIB_NAME The computed library name. # ${basename}_LIB_SPEC The computed linker flags. #------------------------------------------------------------------------ AC_DEFUN([TEA_LIB_SPEC], [ AC_MSG_CHECKING([for $1 library]) # Look in exec-prefix for the library (defined by TEA_PREFIX). tea_lib_name_dir="${exec_prefix}/lib" # Or in a user-specified location. if test x"$2" != x ; then tea_extra_lib_dir=$2 else tea_extra_lib_dir=NONE fi for i in \ `ls -dr ${tea_extra_lib_dir}/$1[[0-9]]*.lib 2>/dev/null ` \ `ls -dr ${tea_extra_lib_dir}/lib$1[[0-9]]* 2>/dev/null ` \ `ls -dr ${tea_lib_name_dir}/$1[[0-9]]*.lib 2>/dev/null ` \ `ls -dr ${tea_lib_name_dir}/lib$1[[0-9]]* 2>/dev/null ` \ `ls -dr /usr/lib/$1[[0-9]]*.lib 2>/dev/null ` \ `ls -dr /usr/lib/lib$1[[0-9]]* 2>/dev/null ` \ `ls -dr /usr/lib64/$1[[0-9]]*.lib 2>/dev/null ` \ `ls -dr /usr/lib64/lib$1[[0-9]]* 2>/dev/null ` \ `ls -dr /usr/local/lib/$1[[0-9]]*.lib 2>/dev/null ` \ `ls -dr /usr/local/lib/lib$1[[0-9]]* 2>/dev/null ` ; do if test -f "$i" ; then tea_lib_name_dir=`dirname $i` $1_LIB_NAME=`basename $i` $1_LIB_PATH_NAME=$i break fi done if test "${TEA_PLATFORM}" = "windows"; then $1_LIB_SPEC=\"`${CYGPATH} ${$1_LIB_PATH_NAME} 2>/dev/null`\" else # Strip off the leading "lib" and trailing ".a" or ".so" tea_lib_name_lib=`echo ${$1_LIB_NAME}|sed -e 's/^lib//' -e 's/\.[[^.]]*$//' -e 's/\.so.*//'` $1_LIB_SPEC="-L${tea_lib_name_dir} -l${tea_lib_name_lib}" fi if test "x${$1_LIB_NAME}" = x ; then AC_MSG_ERROR([not found]) else AC_MSG_RESULT([${$1_LIB_SPEC}]) fi ]) #------------------------------------------------------------------------ # TEA_PRIVATE_TCL_HEADERS -- # # Locate the private Tcl include files # # Arguments: # # Requires: # TCL_SRC_DIR Assumes that TEA_LOAD_TCLCONFIG has # already been called. # # Results: # # Substs the following vars: # TCL_TOP_DIR_NATIVE # TCL_INCLUDES #------------------------------------------------------------------------ AC_DEFUN([TEA_PRIVATE_TCL_HEADERS], [ # Allow for --with-tclinclude to take effect and define ${ac_cv_c_tclh} AC_REQUIRE([TEA_PUBLIC_TCL_HEADERS]) AC_MSG_CHECKING([for Tcl private include files]) TCL_SRC_DIR_NATIVE=`${CYGPATH} ${TCL_SRC_DIR}` TCL_TOP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}\" # Check to see if tclPort.h isn't already with the public headers # Don't look for tclInt.h because that resides with tcl.h in the core # sources, but the Port headers are in a different directory if test "${TEA_PLATFORM}" = "windows" -a \ -f "${ac_cv_c_tclh}/tclWinPort.h"; then result="private headers found with public headers" elif test "${TEA_PLATFORM}" = "unix" -a \ -f "${ac_cv_c_tclh}/tclUnixPort.h"; then result="private headers found with public headers" else TCL_GENERIC_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/generic\" if test "${TEA_PLATFORM}" = "windows"; then TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/win\" else TCL_PLATFORM_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/unix\" fi # Overwrite the previous TCL_INCLUDES as this should capture both # public and private headers in the same set. # We want to ensure these are substituted so as not to require # any *_NATIVE vars be defined in the Makefile TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}" if test "`uname -s`" = "Darwin"; then # If Tcl was built as a framework, attempt to use # the framework's Headers and PrivateHeaders directories case ${TCL_DEFS} in *TCL_FRAMEWORK*) if test -d "${TCL_BIN_DIR}/Headers" -a \ -d "${TCL_BIN_DIR}/PrivateHeaders"; then TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}" else TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo "${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`" fi ;; esac result="Using ${TCL_INCLUDES}" else if test ! -f "${TCL_SRC_DIR}/generic/tclInt.h" ; then AC_MSG_ERROR([Cannot find private header tclInt.h in ${TCL_SRC_DIR}]) fi result="Using srcdir found in tclConfig.sh: ${TCL_SRC_DIR}" fi fi AC_SUBST(TCL_TOP_DIR_NATIVE) AC_SUBST(TCL_INCLUDES) AC_MSG_RESULT([${result}]) ]) #------------------------------------------------------------------------ # TEA_PUBLIC_TCL_HEADERS -- # # Locate the installed public Tcl header files # # Arguments: # None. # # Requires: # CYGPATH must be set # # Results: # # Adds a --with-tclinclude switch to configure. # Result is cached. # # Substs the following vars: # TCL_INCLUDES #------------------------------------------------------------------------ AC_DEFUN([TEA_PUBLIC_TCL_HEADERS], [ AC_MSG_CHECKING([for Tcl public headers]) AC_ARG_WITH(tclinclude, [ --with-tclinclude directory containing the public Tcl header files], with_tclinclude=${withval}) AC_CACHE_VAL(ac_cv_c_tclh, [ # Use the value from --with-tclinclude, if it was given if test x"${with_tclinclude}" != x ; then if test -f "${with_tclinclude}/tcl.h" ; then ac_cv_c_tclh=${with_tclinclude} else AC_MSG_ERROR([${with_tclinclude} directory does not contain tcl.h]) fi else list="" if test "`uname -s`" = "Darwin"; then # If Tcl was built as a framework, attempt to use # the framework's Headers directory case ${TCL_DEFS} in *TCL_FRAMEWORK*) list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`" ;; esac fi # Look in the source dir only if Tcl is not installed, # and in that situation, look there before installed locations. if test -f "${TCL_BIN_DIR}/Makefile" ; then list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`" fi # Check order: pkg --prefix location, Tcl's --prefix location, # relative to directory of tclConfig.sh. eval "temp_includedir=${includedir}" list="$list \ `ls -d ${temp_includedir} 2>/dev/null` \ `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then list="$list /usr/local/include /usr/include" if test x"${TCL_INCLUDE_SPEC}" != x ; then d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'` list="$list `ls -d ${d} 2>/dev/null`" fi fi for i in $list ; do if test -f "$i/tcl.h" ; then ac_cv_c_tclh=$i break fi done fi ]) # Print a message based on how we determined the include path if test x"${ac_cv_c_tclh}" = x ; then AC_MSG_ERROR([tcl.h not found. Please specify its location with --with-tclinclude]) else AC_MSG_RESULT([${ac_cv_c_tclh}]) fi # Convert to a native path and substitute into the output files. INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}` TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" AC_SUBST(TCL_INCLUDES) ]) #------------------------------------------------------------------------ # TEA_PRIVATE_TK_HEADERS -- # # Locate the private Tk include files # # Arguments: # # Requires: # TK_SRC_DIR Assumes that TEA_LOAD_TKCONFIG has # already been called. # # Results: # # Substs the following vars: # TK_INCLUDES #------------------------------------------------------------------------ AC_DEFUN([TEA_PRIVATE_TK_HEADERS], [ # Allow for --with-tkinclude to take effect and define ${ac_cv_c_tkh} AC_REQUIRE([TEA_PUBLIC_TK_HEADERS]) AC_MSG_CHECKING([for Tk private include files]) TK_SRC_DIR_NATIVE=`${CYGPATH} ${TK_SRC_DIR}` TK_TOP_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}\" # Check to see if tkPort.h isn't already with the public headers # Don't look for tkInt.h because that resides with tk.h in the core # sources, but the Port headers are in a different directory if test "${TEA_PLATFORM}" = "windows" -a \ -f "${ac_cv_c_tkh}/tkWinPort.h"; then result="private headers found with public headers" elif test "${TEA_PLATFORM}" = "unix" -a \ -f "${ac_cv_c_tkh}/tkUnixPort.h"; then result="private headers found with public headers" else TK_GENERIC_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/generic\" TK_XLIB_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/xlib\" if test "${TEA_PLATFORM}" = "windows"; then TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/win\" else TK_PLATFORM_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/unix\" fi # Overwrite the previous TK_INCLUDES as this should capture both # public and private headers in the same set. # We want to ensure these are substituted so as not to require # any *_NATIVE vars be defined in the Makefile TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}" # Detect and add ttk subdir if test -d "${TK_SRC_DIR}/generic/ttk"; then TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/generic/ttk\"" fi if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then TK_INCLUDES="${TK_INCLUDES} -I\"${TK_XLIB_DIR_NATIVE}\"" fi if test "${TEA_WINDOWINGSYSTEM}" = "aqua"; then TK_INCLUDES="${TK_INCLUDES} -I\"${TK_SRC_DIR_NATIVE}/macosx\"" fi if test "`uname -s`" = "Darwin"; then # If Tk was built as a framework, attempt to use # the framework's Headers and PrivateHeaders directories case ${TK_DEFS} in *TK_FRAMEWORK*) if test -d "${TK_BIN_DIR}/Headers" -a \ -d "${TK_BIN_DIR}/PrivateHeaders"; then TK_INCLUDES="-I\"${TK_BIN_DIR}/Headers\" -I\"${TK_BIN_DIR}/PrivateHeaders\" ${TK_INCLUDES}" else TK_INCLUDES="${TK_INCLUDES} ${TK_INCLUDE_SPEC} `echo "${TK_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`" fi ;; esac result="Using ${TK_INCLUDES}" else if test ! -f "${TK_SRC_DIR}/generic/tkInt.h" ; then AC_MSG_ERROR([Cannot find private header tkInt.h in ${TK_SRC_DIR}]) fi result="Using srcdir found in tkConfig.sh: ${TK_SRC_DIR}" fi fi AC_SUBST(TK_TOP_DIR_NATIVE) AC_SUBST(TK_XLIB_DIR_NATIVE) AC_SUBST(TK_INCLUDES) AC_MSG_RESULT([${result}]) ]) #------------------------------------------------------------------------ # TEA_PUBLIC_TK_HEADERS -- # # Locate the installed public Tk header files # # Arguments: # None. # # Requires: # CYGPATH must be set # # Results: # # Adds a --with-tkinclude switch to configure. # Result is cached. # # Substs the following vars: # TK_INCLUDES #------------------------------------------------------------------------ AC_DEFUN([TEA_PUBLIC_TK_HEADERS], [ AC_MSG_CHECKING([for Tk public headers]) AC_ARG_WITH(tkinclude, [ --with-tkinclude directory containing the public Tk header files], with_tkinclude=${withval}) AC_CACHE_VAL(ac_cv_c_tkh, [ # Use the value from --with-tkinclude, if it was given if test x"${with_tkinclude}" != x ; then if test -f "${with_tkinclude}/tk.h" ; then ac_cv_c_tkh=${with_tkinclude} else AC_MSG_ERROR([${with_tkinclude} directory does not contain tk.h]) fi else list="" if test "`uname -s`" = "Darwin"; then # If Tk was built as a framework, attempt to use # the framework's Headers directory. case ${TK_DEFS} in *TK_FRAMEWORK*) list="`ls -d ${TK_BIN_DIR}/Headers 2>/dev/null`" ;; esac fi # Look in the source dir only if Tk is not installed, # and in that situation, look there before installed locations. if test -f "${TK_BIN_DIR}/Makefile" ; then list="$list `ls -d ${TK_SRC_DIR}/generic 2>/dev/null`" fi # Check order: pkg --prefix location, Tk's --prefix location, # relative to directory of tkConfig.sh, Tcl's --prefix location, # relative to directory of tclConfig.sh. eval "temp_includedir=${includedir}" list="$list \ `ls -d ${temp_includedir} 2>/dev/null` \ `ls -d ${TK_PREFIX}/include 2>/dev/null` \ `ls -d ${TK_BIN_DIR}/../include 2>/dev/null` \ `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then list="$list /usr/local/include /usr/include" if test x"${TK_INCLUDE_SPEC}" != x ; then d=`echo "${TK_INCLUDE_SPEC}" | sed -e 's/^-I//'` list="$list `ls -d ${d} 2>/dev/null`" fi fi for i in $list ; do if test -f "$i/tk.h" ; then ac_cv_c_tkh=$i break fi done fi ]) # Print a message based on how we determined the include path if test x"${ac_cv_c_tkh}" = x ; then AC_MSG_ERROR([tk.h not found. Please specify its location with --with-tkinclude]) else AC_MSG_RESULT([${ac_cv_c_tkh}]) fi # Convert to a native path and substitute into the output files. INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tkh}` TK_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" AC_SUBST(TK_INCLUDES) if test "${TEA_WINDOWINGSYSTEM}" != "x11"; then # On Windows and Aqua, we need the X compat headers AC_MSG_CHECKING([for X11 header files]) if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`" TK_XINCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" AC_SUBST(TK_XINCLUDES) fi AC_MSG_RESULT([${INCLUDE_DIR_NATIVE}]) fi ]) #------------------------------------------------------------------------ # TEA_PATH_CONFIG -- # # Locate the ${1}Config.sh file and perform a sanity check on # the ${1} compile flags. These are used by packages like # [incr Tk] that load *Config.sh files from more than Tcl and Tk. # # Arguments: # none # # Results: # # Adds the following arguments to configure: # --with-$1=... # # Defines the following vars: # $1_BIN_DIR Full path to the directory containing # the $1Config.sh file #------------------------------------------------------------------------ AC_DEFUN([TEA_PATH_CONFIG], [ # # Ok, lets find the $1 configuration # First, look for one uninstalled. # the alternative search directory is invoked by --with-$1 # if test x"${no_$1}" = x ; then # we reset no_$1 in case something fails here no_$1=true AC_ARG_WITH($1, [ --with-$1 directory containing $1 configuration ($1Config.sh)], with_$1config=${withval}) AC_MSG_CHECKING([for $1 configuration]) AC_CACHE_VAL(ac_cv_c_$1config,[ # First check to see if --with-$1 was specified. if test x"${with_$1config}" != x ; then case ${with_$1config} in */$1Config.sh ) if test -f ${with_$1config}; then AC_MSG_WARN([--with-$1 argument should refer to directory containing $1Config.sh, not to $1Config.sh itself]) with_$1config=`echo ${with_$1config} | sed 's!/$1Config\.sh$!!'` fi;; esac if test -f "${with_$1config}/$1Config.sh" ; then ac_cv_c_$1config=`(cd ${with_$1config}; pwd)` else AC_MSG_ERROR([${with_$1config} directory doesn't contain $1Config.sh]) fi fi # then check for a private $1 installation if test x"${ac_cv_c_$1config}" = x ; then for i in \ ../$1 \ `ls -dr ../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \ `ls -dr ../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \ `ls -dr ../$1*[[0-9]].[[0-9]] 2>/dev/null` \ `ls -dr ../$1*[[0-9]].[[0-9]]* 2>/dev/null` \ ../../$1 \ `ls -dr ../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \ `ls -dr ../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \ `ls -dr ../../$1*[[0-9]].[[0-9]] 2>/dev/null` \ `ls -dr ../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \ ../../../$1 \ `ls -dr ../../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \ `ls -dr ../../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \ `ls -dr ../../../$1*[[0-9]].[[0-9]] 2>/dev/null` \ `ls -dr ../../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \ ${srcdir}/../$1 \ `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \ `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \ `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]] 2>/dev/null` \ `ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]* 2>/dev/null` \ ; do if test -f "$i/$1Config.sh" ; then ac_cv_c_$1config=`(cd $i; pwd)` break fi if test -f "$i/unix/$1Config.sh" ; then ac_cv_c_$1config=`(cd $i/unix; pwd)` break fi done fi # check in a few common install locations if test x"${ac_cv_c_$1config}" = x ; then for i in `ls -d ${libdir} 2>/dev/null` \ `ls -d ${exec_prefix}/lib 2>/dev/null` \ `ls -d ${prefix}/lib 2>/dev/null` \ `ls -d /usr/local/lib 2>/dev/null` \ `ls -d /usr/contrib/lib 2>/dev/null` \ `ls -d /usr/lib 2>/dev/null` \ `ls -d /usr/lib64 2>/dev/null` \ ; do if test -f "$i/$1Config.sh" ; then ac_cv_c_$1config=`(cd $i; pwd)` break fi done fi ]) if test x"${ac_cv_c_$1config}" = x ; then $1_BIN_DIR="# no $1 configs found" AC_MSG_WARN([Cannot find $1 configuration definitions]) exit 0 else no_$1= $1_BIN_DIR=${ac_cv_c_$1config} AC_MSG_RESULT([found $$1_BIN_DIR/$1Config.sh]) fi fi ]) #------------------------------------------------------------------------ # TEA_LOAD_CONFIG -- # # Load the $1Config.sh file # # Arguments: # # Requires the following vars to be set: # $1_BIN_DIR # # Results: # # Subst the following vars: # $1_SRC_DIR # $1_LIB_FILE # $1_LIB_SPEC # #------------------------------------------------------------------------ AC_DEFUN([TEA_LOAD_CONFIG], [ AC_MSG_CHECKING([for existence of ${$1_BIN_DIR}/$1Config.sh]) if test -f "${$1_BIN_DIR}/$1Config.sh" ; then AC_MSG_RESULT([loading]) . "${$1_BIN_DIR}/$1Config.sh" else AC_MSG_RESULT([file not found]) fi # # If the $1_BIN_DIR is the build directory (not the install directory), # then set the common variable name to the value of the build variables. # For example, the variable $1_LIB_SPEC will be set to the value # of $1_BUILD_LIB_SPEC. An extension should make use of $1_LIB_SPEC # instead of $1_BUILD_LIB_SPEC since it will work with both an # installed and uninstalled version of Tcl. # if test -f "${$1_BIN_DIR}/Makefile" ; then AC_MSG_WARN([Found Makefile - using build library specs for $1]) $1_LIB_SPEC=${$1_BUILD_LIB_SPEC} $1_STUB_LIB_SPEC=${$1_BUILD_STUB_LIB_SPEC} $1_STUB_LIB_PATH=${$1_BUILD_STUB_LIB_PATH} $1_INCLUDE_SPEC=${$1_BUILD_INCLUDE_SPEC} $1_LIBRARY_PATH=${$1_LIBRARY_PATH} fi AC_SUBST($1_VERSION) AC_SUBST($1_BIN_DIR) AC_SUBST($1_SRC_DIR) AC_SUBST($1_LIB_FILE) AC_SUBST($1_LIB_SPEC) AC_SUBST($1_STUB_LIB_FILE) AC_SUBST($1_STUB_LIB_SPEC) AC_SUBST($1_STUB_LIB_PATH) # Allow the caller to prevent this auto-check by specifying any 2nd arg AS_IF([test "x$2" = x], [ # Check both upper and lower-case variants # If a dev wanted non-stubs libs, this function could take an option # to not use _STUB in the paths below AS_IF([test "x${$1_STUB_LIB_SPEC}" = x], [TEA_LOAD_CONFIG_LIB(translit($1,[a-z],[A-Z])_STUB)], [TEA_LOAD_CONFIG_LIB($1_STUB)]) ]) ]) #------------------------------------------------------------------------ # TEA_LOAD_CONFIG_LIB -- # # Helper function to load correct library from another extension's # ${PACKAGE}Config.sh. # # Results: # Adds to LIBS the appropriate extension library # #------------------------------------------------------------------------ AC_DEFUN([TEA_LOAD_CONFIG_LIB], [ AC_MSG_CHECKING([For $1 library for LIBS]) # This simplifies the use of stub libraries by automatically adding # the stub lib to your path. Normally this would add to SHLIB_LD_LIBS, # but this is called before CONFIG_CFLAGS. More importantly, this adds # to PKG_LIBS, which becomes LIBS, and that is only used by SHLIB_LD. if test "x${$1_LIB_SPEC}" != "x" ; then if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes" ; then TEA_ADD_LIBS([\"`${CYGPATH} ${$1_LIB_PATH}`\"]) AC_MSG_RESULT([using $1_LIB_PATH ${$1_LIB_PATH}]) else TEA_ADD_LIBS([${$1_LIB_SPEC}]) AC_MSG_RESULT([using $1_LIB_SPEC ${$1_LIB_SPEC}]) fi else AC_MSG_RESULT([file not found]) fi ]) #------------------------------------------------------------------------ # TEA_EXPORT_CONFIG -- # # Define the data to insert into the ${PACKAGE}Config.sh file # # Arguments: # # Requires the following vars to be set: # $1 # # Results: # Subst the following vars: # #------------------------------------------------------------------------ AC_DEFUN([TEA_EXPORT_CONFIG], [ #-------------------------------------------------------------------- # These are for $1Config.sh #-------------------------------------------------------------------- # pkglibdir must be a fully qualified path and (not ${exec_prefix}/lib) eval pkglibdir="[$]{libdir}/$1${PACKAGE_VERSION}" if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then eval $1_LIB_FLAG="-l$1${PACKAGE_VERSION}${DBGX}" eval $1_STUB_LIB_FLAG="-l$1stub${PACKAGE_VERSION}${DBGX}" else eval $1_LIB_FLAG="-l$1`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" eval $1_STUB_LIB_FLAG="-l$1stub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}" fi $1_BUILD_LIB_SPEC="-L`pwd` ${$1_LIB_FLAG}" $1_LIB_SPEC="-L${pkglibdir} ${$1_LIB_FLAG}" $1_BUILD_STUB_LIB_SPEC="-L`pwd` [$]{$1_STUB_LIB_FLAG}" $1_STUB_LIB_SPEC="-L${pkglibdir} [$]{$1_STUB_LIB_FLAG}" $1_BUILD_STUB_LIB_PATH="`pwd`/[$]{PKG_STUB_LIB_FILE}" $1_STUB_LIB_PATH="${pkglibdir}/[$]{PKG_STUB_LIB_FILE}" AC_SUBST($1_BUILD_LIB_SPEC) AC_SUBST($1_LIB_SPEC) AC_SUBST($1_BUILD_STUB_LIB_SPEC) AC_SUBST($1_STUB_LIB_SPEC) AC_SUBST($1_BUILD_STUB_LIB_PATH) AC_SUBST($1_STUB_LIB_PATH) AC_SUBST(MAJOR_VERSION) AC_SUBST(MINOR_VERSION) AC_SUBST(PATCHLEVEL) ]) #------------------------------------------------------------------------ # TEA_PATH_CELIB -- # # Locate Keuchel's celib emulation layer for targeting Win/CE # # Arguments: # none # # Results: # # Adds the following arguments to configure: # --with-celib=... # # Defines the following vars: # CELIB_DIR Full path to the directory containing # the include and platform lib files #------------------------------------------------------------------------ AC_DEFUN([TEA_PATH_CELIB], [ # First, look for one uninstalled. # the alternative search directory is invoked by --with-celib if test x"${no_celib}" = x ; then # we reset no_celib in case something fails here no_celib=true AC_ARG_WITH(celib,[ --with-celib=DIR use Windows/CE support library from DIR], with_celibconfig=${withval}) AC_MSG_CHECKING([for Windows/CE celib directory]) AC_CACHE_VAL(ac_cv_c_celibconfig,[ # First check to see if --with-celibconfig was specified. if test x"${with_celibconfig}" != x ; then if test -d "${with_celibconfig}/inc" ; then ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)` else AC_MSG_ERROR([${with_celibconfig} directory doesn't contain inc directory]) fi fi # then check for a celib library if test x"${ac_cv_c_celibconfig}" = x ; then for i in \ ../celib-palm-3.0 \ ../celib \ ../../celib-palm-3.0 \ ../../celib \ `ls -dr ../celib-*3.[[0-9]]* 2>/dev/null` \ ${srcdir}/../celib-palm-3.0 \ ${srcdir}/../celib \ `ls -dr ${srcdir}/../celib-*3.[[0-9]]* 2>/dev/null` \ ; do if test -d "$i/inc" ; then ac_cv_c_celibconfig=`(cd $i; pwd)` break fi done fi ]) if test x"${ac_cv_c_celibconfig}" = x ; then AC_MSG_ERROR([Cannot find celib support library directory]) else no_celib= CELIB_DIR=${ac_cv_c_celibconfig} CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'` AC_MSG_RESULT([found $CELIB_DIR]) fi fi ]) # Local Variables: # mode: autoconf # End: Memchan2.3/tclconfig/install-sh0000755000175000017500000000421211477317032016147 0ustar sergeisergei#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5; it is not part of GNU. # # $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ # # This script is compatible with the BSD install script, but was written # from scratch. # # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" instcmd="$mvprog" chmodcmd="" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; *) if [ x"$src" = x ] then src=$1 else dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` fi # Make a temp file name in the proper directory. dstdir=`dirname $dst` dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp # and set any options; do chmod last to preserve setuid bits if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi # Now rename the file to the real destination. $doit $rmcmd $dst $doit $mvcmd $dsttmp $dst exit 0 Memchan2.3/Makefile.in0000644000175000017500000004360711500515231014237 0ustar sergeisergei# Makefile.in -- # # This file is a Makefile for Memchan TEA Extension. If it has the name # "Makefile.in" then it is a template for a Makefile; to generate the # actual Makefile, run "./configure", which is a configuration script # generated by the "autoconf" program (constructs like "@foo@" will get # replaced in the actual Makefile. # # Copyright (c) 1999-2005 Andreas Kupries # Copyright (c) 2002 ActiveState SRL. # Copyright (c) 2004 Pat Thoyts # Copyright (c) 2002-2005 ActiveState Corporation. # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # RCS: @(#) $Id: Makefile.in,v 1.26 2010/12/08 21:49:08 andreas_kupries Exp $ MPEXPAND = $(TCLSH) $(srcdir)/tools/mpexpand.tcl DOC_SOURCES = \ memchan.man \ memchanapi.man \ fifo.man \ fifo2.man \ null.man \ zero.man \ random.man DOC_NROFF = $(DOC_SOURCES:.man=.n) DOC_HTML = $(DOC_SOURCES:.man=.html) #======================================================================== # Nothing of the variables below this line should need to be changed. # Please check the TARGETS section below to make sure the make targets # are correct. #======================================================================== #======================================================================== # The names of the source files is defined in the configure script. # The object files are used for linking into the final library. # This will be used when a dist target is added to the Makefile. # It is not important to specify the directory, as long as it is the # $(srcdir) or in the generic, win or unix subdirectory. #======================================================================== PKG_SOURCES = @PKG_SOURCES@ PKG_OBJECTS = @PKG_OBJECTS@ PKG_STUB_SOURCES = @PKG_STUB_SOURCES@ PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@ #======================================================================== # PKG_TCL_SOURCES identifies Tcl runtime files that are associated with # this package that need to be installed, if any. #======================================================================== PKG_TCL_SOURCES = @PKG_TCL_SOURCES@ #======================================================================== # This is a list of public header files to be installed, if any. #======================================================================== PKG_HEADERS = @PKG_HEADERS@ #======================================================================== # "PKG_LIB_FILE" refers to the library (dynamic or static as per # configuration options) composed of the named objects. #======================================================================== PKG_LIB_FILE = @PKG_LIB_FILE@ PKG_STUB_LIB_FILE = @PKG_STUB_LIB_FILE@ lib_BINARIES = $(PKG_LIB_FILE) $(PKG_STUB_LIB_FILE) BINARIES = $(lib_BINARIES) SHELL = @SHELL@ srcdir = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ libdir = @libdir@ datadir = @datadir@ mandir = @mandir@ includedir = @includedir@ datarootdir = @datarootdir@ DESTDIR = PKG_DIR = $(PACKAGE_NAME)$(PACKAGE_VERSION) pkgdatadir = $(datadir)/$(PKG_DIR) pkglibdir = $(libdir)/$(PKG_DIR) pkgincludedir = $(includedir)/$(PKG_DIR) top_builddir = . INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ CC = @CC@ CFLAGS_DEFAULT = @CFLAGS_DEFAULT@ CFLAGS_WARNING = @CFLAGS_WARNING@ CLEANFILES = @CLEANFILES@ EXEEXT = @EXEEXT@ LDFLAGS_DEFAULT = @LDFLAGS_DEFAULT@ MAKE_LIB = @MAKE_LIB@ MAKE_SHARED_LIB = @MAKE_SHARED_LIB@ MAKE_STATIC_LIB = @MAKE_STATIC_LIB@ MAKE_STUB_LIB = @MAKE_STUB_LIB@ OBJEXT = @OBJEXT@ RANLIB = @RANLIB@ RANLIB_STUB = @RANLIB_STUB@ SHLIB_CFLAGS = @SHLIB_CFLAGS@ SHLIB_LD = @SHLIB_LD@ SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ STLIB_LD = @STLIB_LD@ SHLIB_SUFFIX = @@ TCL_DEFS = @TCL_DEFS@ TCL_BIN_DIR = @TCL_BIN_DIR@ TCL_SRC_DIR = @TCL_SRC_DIR@ # This is necessary for packages that use private Tcl headers TCL_TOP_DIR_NATIVE = @TCL_TOP_DIR_NATIVE@ # Not used, but retained for reference of what libs Tcl required TCL_LIBS = @TCL_LIBS@ #======================================================================== # TCLLIBPATH seeds the auto_path in Tcl's init.tcl so we can test our # package without installing. The other environment variables allow us # to test against an uninstalled Tcl. Add special env vars that you # require for testing here (like TCLX_LIBRARY). #======================================================================== EXTRA_PATH = $(top_builddir):$(TCL_BIN_DIR) TCLSH_ENV = TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library` \ @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \ PATH="$(EXTRA_PATH):$(PATH)" \ TCLLIBPATH="$(top_builddir)" TCLSH_PROG = @TCLSH_PROG@ TCLSH = $(TCLSH_ENV) $(TCLSH_PROG) SHARED_BUILD = @SHARED_BUILD@ INCLUDES = @PKG_INCLUDES@ @TCL_INCLUDES@ PKG_CFLAGS = @PKG_CFLAGS@ # TCL_DEFS is not strictly need here, but if you remove it, then you # must make sure that configure.in checks for the necessary components # that your library may use. TCL_DEFS can actually be a problem if # you do not compile with a similar machine setup as the Tcl core was # compiled with. #DEFS = $(TCL_DEFS) @DEFS@ $(PKG_CFLAGS) DEFS = @DEFS@ $(PKG_CFLAGS) CONFIG_CLEAN_FILES = Makefile CPPFLAGS = @CPPFLAGS@ LIBS = @PKG_LIBS@ @LIBS@ AR = @AR@ CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) .SUFFIXES: .c .$(OBJEXT) .man .n .html #======================================================================== # Start of user-definable TARGETS section #======================================================================== #======================================================================== # TEA TARGETS. Please note that the "libraries:" target refers to platform # independent files, and the "binaries:" target inclues executable programs and # platform-dependent libraries. Modify these targets so that they install # the various pieces of your package. The make and install rules # for the BINARIES that you specified above have already been done. #======================================================================== all: binaries libraries doc #======================================================================== # The binaries target builds executable programs, Windows .dll's, unix # shared/static libraries, and any other platform-dependent files. # The list of targets to build for "binaries:" is specified at the top # of the Makefile, in the "BINARIES" variable. #======================================================================== binaries: $(BINARIES) pkgIndex.tcl-hand libraries: doc: $(DOC_NROFF) doc-html: $(DOC_HTML) doc-old: if [ "x$(srcdir)" != "x." -a "x$(srcdir)" != "x`pwd`" ] ; then \ rm -rf tools htdocs ; \ cp -rf $(srcdir)/tools . ; \ cp -rf $(srcdir)/htdocs . ; \ rm -rf doc ; mkdir doc ; \ cp $(srcdir)/doc/*.man doc/ ; \ fi cd doc ; $(TCLSH_ENV) ../tools/nroff_regen "$(TCLSH_PROG)" .man.n: $(MPEXPAND) nroff `@CYGPATH@ $<` $@ .man.html: $(MPEXPAND) html `@CYGPATH@ $<` $@ install: all install-binaries install-libraries install-doc install-binaries: binaries install-lib-binaries install-bin-binaries #======================================================================== # This rule installs platform-independent files, such as header files. #======================================================================== install-libraries: libraries @mkdir -p $(DESTDIR)$(includedir) @echo "Installing header files in $(DESTDIR)$(includedir)" @list='$(PKG_HEADERS)'; for i in $$list; do \ echo "Installing $(srcdir)/$$i" ; \ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir) ; \ done; #======================================================================== # Install documentation. Unix manpages should go in the $(mandir) # directory. #======================================================================== install-doc: doc @mkdir -p $(DESTDIR)$(mandir)/mann @echo "Installing documentation in $(DESTDIR)$(mandir)" @for i in $(DOC_NROFF); do \ echo "Installing $$i"; \ rm -f $(DESTDIR)$(mandir)/mann/`basename $$i`; \ $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/mann ; \ done test: binaries libraries echo load $(PKG_LIB_FILE) $(PACKAGE_NAME)\; cd $(srcdir)/tests \; source all | $(TCLSH) $(TESTFLAGS) shell: binaries libraries @$(TCLSH) $(SCRIPT) gdb: $(TCLSH_ENV) gdb $(TCLSH_PROG) $(SCRIPT) depend: #======================================================================== # $(PKG_LIB_FILE) should be listed as part of the BINARIES variable # mentioned above. That will ensure that this target is built when you # run "make binaries". # # The $(PKG_OBJECTS) objects are created and linked into the final # library. In most cases these object files will correspond to the # source files above. #======================================================================== $(PKG_LIB_FILE): $(PKG_OBJECTS) -rm -f $(PKG_LIB_FILE) ${MAKE_LIB} $(RANLIB) $(PKG_LIB_FILE) $(PKG_STUB_LIB_FILE): $(PKG_STUB_OBJECTS) -rm -f $(PKG_STUB_LIB_FILE) ${MAKE_STUB_LIB} $(RANLIB_STUB) $(PKG_STUB_LIB_FILE) #======================================================================== # We need to enumerate the list of .c to .o lines here. # # In the following lines, $(srcdir) refers to the toplevel directory # containing your extension. If your sources are in a subdirectory, # you will have to modify the paths to reflect this: # # Memchan.$(OBJEXT): $(srcdir)/generic/Memchan.c # $(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/Memchan.c` -o $@ # # Setting the VPATH variable to a list of paths will cause the makefile # to look into these paths when resolving .c to .obj dependencies. # As necessary, add $(srcdir):$(srcdir)/compat:.... #======================================================================== VPATH = $(srcdir):$(srcdir)/generic:$(srcdir)/unix:$(srcdir)/win:$(srcdir)/isaac:$(srcdir)/doc .c.@OBJEXT@: $(COMPILE) -c `@CYGPATH@ $<` -o $@ #======================================================================== # Create the pkgIndex.tcl file. # It is usually easiest to let Tcl do this for you with pkg_mkIndex, but # you may find that you need to customize the package. If so, either # modify the -hand version, or create a pkgIndex.tcl.in file and have # the configure script output the pkgIndex.tcl by editing configure.in. #======================================================================== pkgIndex.tcl: ( echo pkg_mkIndex . $(PKG_LIB_FILE) \; exit; ) | $(TCLSH) pkgIndex.tcl-hand: (echo 'package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ [list load [file join $$dir $(PKG_LIB_FILE)]]'\ ) > pkgIndex.tcl #======================================================================== # Distribution creation # You may need to tweak this target to make it work correctly. #======================================================================== #COMPRESS = tar cvf $(PKG_DIR).tar $(PKG_DIR); compress $(PKG_DIR).tar COMPRESS = tar zcvf $(PKG_DIR).tar.gz $(PKG_DIR) DIST_ROOT = /tmp/dist DIST_DIR = $(DIST_ROOT)/$(PKG_DIR) dist-clean: rm -rf $(DIST_DIR) $(DIST_ROOT)/$(PKG_DIR).tar.* dist: dist-clean mkdir -p $(DIST_DIR) cp -p $(srcdir)/ChangeLog \ $(srcdir)/README* \ $(srcdir)/doc/license* \ $(srcdir)/aclocal.m4 \ $(srcdir)/configure \ $(srcdir)/*.in \ $(DIST_DIR)/ chmod 664 $(DIST_DIR)/Makefile.in $(DIST_DIR)/aclocal.m4 chmod 775 $(DIST_DIR)/configure $(DIST_DIR)/configure.in mkdir $(DIST_DIR)/tclconfig cp -p $(srcdir)/tclconfig/install-sh \ $(srcdir)/tclconfig/tcl.m4 \ $(DIST_DIR)/tclconfig/ chmod 664 $(DIST_DIR)/tclconfig/tcl.m4 chmod +x $(DIST_DIR)/tclconfig/install-sh -list='htdocs/art doc demos generic library mac tests win isaac tea.tests tools tools/rules'; \ for p in $$list; do \ if test -d $(srcdir)/$$p ; then \ mkdir -p $(DIST_DIR)/$$p; \ cp -p `ls -d $(srcdir)/$$p/*|grep -v CVS` $(DIST_DIR)/$$p/; \ fi; \ done -mv $(DIST_DIR)/htdocs/art $(DIST_DIR)/doc/art rm -rf $(DIST_DIR)/htdocs (cd $(DIST_ROOT); $(COMPRESS);) mv $(DIST_ROOT)/$(PKG_DIR).tar.gz . rm -rf $(DIST_ROOT)/$(PKG_DIR) dist_orig: rm -rf $(PKG_DIR)* ls -d $(srcdir)/* > __FILES mkdir $(PKG_DIR) cp -rf `cat __FILES | grep -v __FILES` $(PKG_DIR) rm __FILES find $(PKG_DIR) -name CVS -prune -exec rm -rf {} \; cd $(PKG_DIR) ; $(TCLSH_PROG) PREPARE -tar cf - $(PKG_DIR) | gzip --best > $(PKG_DIR).tar.gz -tar cf - $(PKG_DIR) | bzip2 > $(PKG_DIR).tar.bz2 -zip -r $(PKG_DIR).zip $(PKG_DIR) rm -rf $(PKG_DIR) #======================================================================== # Definitions to build Pat's chantest code. An example on how to use # the memchan stub library. #======================================================================== CHANTEST_OBJECTS=chantest.$(OBJEXT) CHANTEST_LIB_FILE=libChantest0.1.$(SHLIB_SUFFIX) chantest: binaries $(CHANTEST_LIB_FILE) $(CHANTEST_LIB_FILE): $(CHANTEST_OBJECTS) -rm -f $@ $(SHLIB_LD) -o $@ $(CHANTEST_OBJECTS) $(SHLIB_LDFLAGS) \ $(SHLIB_LD_LIBS) $(PKG_STUB_LIB_FILE) $(RANLIB) $@ chantest.$(OBJEXT): chantest.c $(COMPILE) -I$(srcdir)/generic -DUSE_MEMCHAN_STUBS=1 \ -c `@CYGPATH@ $<` -o $@ #======================================================================== # End of user-definable section #======================================================================== #======================================================================== # Don't modify the file to clean here. Instead, set the "CLEANFILES" # variable in configure.in #======================================================================== clean: -test -z "$(BINARIES)" || rm -f $(BINARIES) -rm -f *.$(OBJEXT) core *.core -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean: clean -rm -f *.tab.c -rm -f $(CONFIG_CLEAN_FILES) -rm -f config.cache config.log config.status #======================================================================== # Install binary object libraries. On Windows this includes both .dll and # .lib files. Because the .lib files are not explicitly listed anywhere, # we need to deduce their existence from the .dll file of the same name. # Library files go into the lib directory. # In addition, this will generate the pkgIndex.tcl # file in the install location (assuming it can find a usable tclsh shell) # # You should not have to modify this target. #======================================================================== install-lib-binaries: @mkdir -p $(DESTDIR)$(pkglibdir) @list='$(lib_BINARIES)'; for p in $$list; do \ if test -f $$p; then \ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p"; \ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p; \ stub=`echo $$p|sed -e "s/.*\(stub\).*/\1/"`; \ if test "x$$stub" = "xstub"; then \ echo " $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p"; \ $(RANLIB_STUB) $(DESTDIR)$(pkglibdir)/$$p; \ else \ echo " $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p"; \ $(RANLIB) $(DESTDIR)$(pkglibdir)/$$p; \ fi; \ ext=`echo $$p|sed -e "s/.*\.//"`; \ if test "x$$ext" = "xdll"; then \ lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \ if test -f $$lib; then \ echo " $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib"; \ $(INSTALL_DATA) $$lib $(DESTDIR)$(pkglibdir)/$$lib; \ fi; \ fi; \ fi; \ done @list='$(PKG_TCL_SOURCES)'; for p in $$list; do \ if test -f $(srcdir)/$$p; then \ destp=`basename $$p`; \ echo " Install $$destp $(DESTDIR)$(pkglibdir)/$$destp"; \ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkglibdir)/$$destp; \ fi; \ done @if test "x$(SHARED_BUILD)" = "x1"; then \ echo " Install pkgIndex.tcl $(DESTDIR)$(pkglibdir)"; \ $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir); \ fi #======================================================================== # Install binary executables (e.g. .exe files and dependent .dll files) # This is for files that must go in the bin directory (located next to # wish and tclsh), like dependent .dll files on Windows. # # You should not have to modify this target, except to define bin_BINARIES # above if necessary. #======================================================================== install-bin-binaries: @mkdir -p $(DESTDIR)$(bindir) @list='$(bin_BINARIES)'; for p in $$list; do \ if test -f $$p; then \ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p"; \ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$p; \ fi; \ done Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status uninstall-binaries: list='$(lib_BINARIES)'; for p in $$list; do \ rm -f $(DESTDIR)$(pkglibdir)/$$p; \ done list='$(PKG_TCL_SOURCES)'; for p in $$list; do \ p=`basename $$p`; \ rm -f $(DESTDIR)$(pkglibdir)/$$p; \ done list='$(bin_BINARIES)'; for p in $$list; do \ rm -f $(DESTDIR)$(bindir)/$$p; \ done #======================================================================== # # Target to regenerate header files and stub files from the *.decls tables. # #======================================================================== genstubs: $(TCLSH_PROG) \ $(srcdir)/tools/genStubs.tcl $(srcdir)/generic \ $(srcdir)/Memchan.decls #======================================================================== # # Target to check that all exported functions have an entry in the stubs # tables. # #======================================================================== Memchan_DECLS = \ $(srcdir)/buf.decls \ $(srcdir)/bufInt.decls \ $(srcdir)/memchan.decls checkstubs: -@for i in `nm -p $(Memchan_LIB_FILE) | awk '$$2 ~ /T/ { print $$3 }' \ | sort -n`; do \ match=0; \ for j in $(Memchan_DECLS); do \ if [ `grep -c $$i $$j` -gt 0 ]; then \ match=1; \ fi; \ done; \ if [ $$match -eq 0 ]; then echo $$i; fi \ done .PHONY: all binaries clean depend distclean doc install libraries test chantest # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Memchan2.3/configure.in0000755000175000017500000002023711500515232014501 0ustar sergeisergeidnl dnl Process this file with autoconf to produce a configure script. dnl AC_REVISION($Id: configure.in,v 1.19 2010/12/08 20:54:21 andreas_kupries Exp $) AC_INIT([Memchan],[2.3]) TEA_INIT([3.9]) AC_CONFIG_AUX_DIR(tclconfig) #-------------------------------------------------------------------- # Configure script for package 'Memchan', as distributed at March 18, 2005. # TEA compliant. #-------------------------------------------------------------------- #-------------------------------------------------------------------- # Load the tclConfig.sh file #-------------------------------------------------------------------- TEA_PATH_TCLCONFIG TEA_LOAD_TCLCONFIG #----------------------------------------------------------------------- # Handle the --prefix=... option by defaulting to what Tcl gave. # Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER. #----------------------------------------------------------------------- TEA_PREFIX #----------------------------------------------------------------------- # Standard compiler checks. # This sets up CC by using the CC env var, or looks for gcc otherwise. # This also calls AC_PROG_CC, AC_PROG_INSTALL and a few others to create # the basic setup necessary to compile executables. #----------------------------------------------------------------------- TEA_SETUP_COMPILER AC_CHECK_TYPE([intptr_t], [ AC_DEFINE([HAVE_INTPTR_T], 1, [Do we have the intptr_t type?])], [ AC_CACHE_CHECK([for pointer-size signed integer type], tcl_cv_intptr_t, [ for tcl_cv_intptr_t in "int" "long" "long long" none; do if test "$tcl_cv_intptr_t" != none; then AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([AC_INCLUDES_DEFAULT], [[sizeof (void *) <= sizeof ($tcl_cv_intptr_t)]])], [tcl_ok=yes], [tcl_ok=no]) test "$tcl_ok" = yes && break; fi done]) if test "$tcl_cv_intptr_t" != none; then AC_DEFINE_UNQUOTED([intptr_t], [$tcl_cv_intptr_t], [Signed integer type wide enough to hold a pointer.]) fi ]) AC_CHECK_TYPE([uintptr_t], [ AC_DEFINE([HAVE_UINTPTR_T], 1, [Do we have the uintptr_t type?])], [ AC_CACHE_CHECK([for pointer-size unsigned integer type], tcl_cv_uintptr_t, [ for tcl_cv_uintptr_t in "unsigned int" "unsigned long" "unsigned long long" \ none; do if test "$tcl_cv_uintptr_t" != none; then AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([AC_INCLUDES_DEFAULT], [[sizeof (void *) <= sizeof ($tcl_cv_uintptr_t)]])], [tcl_ok=yes], [tcl_ok=no]) test "$tcl_ok" = yes && break; fi done]) if test "$tcl_cv_uintptr_t" != none; then AC_DEFINE_UNQUOTED([uintptr_t], [$tcl_cv_uintptr_t], [Unsigned integer type wide enough to hold a pointer.]) fi ]) #----------------------------------------------------------------------- # Specify the C source files to compile in TEA_ADD_SOURCES, # public headers that need to be installed in TEA_ADD_HEADERS, # stub library C source files to compile in TEA_ADD_STUB_SOURCES, # and runtime Tcl library files in TEA_ADD_TCL_SOURCES. # This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS # and PKG_TCL_SOURCES. #----------------------------------------------------------------------- TEA_ADD_SOURCES([memchan.c init.c counter.c]) TEA_ADD_SOURCES([fifo.c fifo2.c null.c zero.c random.c]) TEA_ADD_SOURCES([isaac/randport.c]) TEA_ADD_SOURCES([buf.c bufFix.c bufExt.c bufRange.c bufQueue.c]) TEA_ADD_SOURCES([bufStubInit.c memchanStubInit.c ]) TEA_ADD_HEADERS([generic/memchan.h generic/memchanDecls.h]) TEA_ADD_HEADERS([generic/buf.h generic/bufDecls.h generic/bufIntDecls.h]) TEA_ADD_INCLUDES([-I\"`\${CYGPATH} \${srcdir}/isaac`\"]) TEA_ADD_LIBS([]) TEA_ADD_CFLAGS([]) TEA_ADD_STUB_SOURCES([bufStubLib.c memchanStubLib.c]) TEA_ADD_SOURCES([bufStubLib.c memchanStubLib.c]) TEA_ADD_TCL_SOURCES([]) #-------------------------------------------------------------------- # A few miscellaneous platform-specific items: # # We have to define a special symbol for Windows (BUILD_Memchan in this # case) so that we create the export library with the dll. # # Windows creates a few extra files that need to be cleaned up. # We can add more files to clean if our extension creates any extra # files in the future. # # Define any extra compiler flags in the PACKAGE_CFLAGS variable. # These will be appended to the current set of compiler flags for # your system. #-------------------------------------------------------------------- if test "${TEA_PLATFORM}" = "windows" ; then AC_DEFINE(BUILD_Memchan) CLEANFILES="pkgIndex.tcl *.lib *.dll *.exp *.ilk *.pdb vc*.pch" else CLEANFILES="pkgIndex.tcl" fi AC_SUBST(CLEANFILES) #-------------------------------------------------------------------- # __CHANGE__ # Choose which headers you need. Extension authors should try very # hard to only rely on the Tcl public header files. Internal headers # contain private data structures and are subject to change without # notice. # This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG #-------------------------------------------------------------------- TEA_PUBLIC_TCL_HEADERS #TEA_PRIVATE_TCL_HEADERS #-------------------------------------------------------------------- # Check whether --enable-threads or --disable-threads was given. # So far only Tcl responds to this one. #-------------------------------------------------------------------- TEA_ENABLE_THREADS #-------------------------------------------------------------------- # The statement below defines a collection of symbols related to # building as a shared library instead of a static library. #-------------------------------------------------------------------- TEA_ENABLE_SHARED #-------------------------------------------------------------------- # This macro figures out what flags to use with the compiler/linker # when building shared/static debug/optimized objects. This information # can be taken from the tclConfig.sh file, but this figures it all out. #-------------------------------------------------------------------- TEA_CONFIG_CFLAGS # Needed for the chantest library. AC_SUBST(SHLIB_SUFFIX) #-------------------------------------------------------------------- # Set the default compiler switches based on the --enable-symbols option. #-------------------------------------------------------------------- TEA_ENABLE_SYMBOLS #-------------------------------------------------------------------- # Everyone should be linking against the Tcl stub library. If you # can't for some reason, remove this definition. If you aren't using # stubs, you also need to modify the SHLIB_LD_LIBS setting below to # link against the non-stubbed Tcl library. #-------------------------------------------------------------------- AC_DEFINE(USE_TCL_STUBS) #-------------------------------------------------------------------- # If ltoa is present, use it to convert integer values into strings. # If not, sprintf is used, which is slower and requires more code. #-------------------------------------------------------------------- AC_CHECK_FUNCS(ltoa) #-------------------------------------------------------------------- # This macro generates a line to use when building a library. It # depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS, # and TEA_LOAD_TCLCONFIG macros above. #-------------------------------------------------------------------- TEA_MAKE_LIB #-------------------------------------------------------------------- # Find tclsh so that we can run pkg_mkIndex to generate the pkgIndex.tcl # file during the install process. Don't run the TCLSH_PROG through # ${CYGPATH} because it's being used directly by make. # Require that we use a tclsh shell version 8.2 or later since earlier # versions have bugs in the pkg_mkIndex routine. # Add WISH as well if this is a Tk extension. #-------------------------------------------------------------------- TEA_PROG_TCLSH #-------------------------------------------------------------------- # Finally, substitute all of the various values into the Makefile. # You may alternatively have a special pkgIndex.tcl.in or other files # which require substituting th AC variables in. Include these here. #-------------------------------------------------------------------- AC_OUTPUT([Makefile]) #-------------------------------------------------------------------- Memchan2.3/configure0000755000175000017500000122644711500515232014110 0ustar sergeisergei#! /bin/sh # From configure.in Id: configure.in. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for Memchan 2.3. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='Memchan' PACKAGE_TARNAME='memchan' PACKAGE_VERSION='2.3' PACKAGE_STRING='Memchan 2.3' PACKAGE_BUGREPORT='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias CYGPATH EXEEXT PKG_LIB_FILE PKG_STUB_LIB_FILE PKG_STUB_SOURCES PKG_STUB_OBJECTS PKG_TCL_SOURCES PKG_HEADERS PKG_INCLUDES PKG_LIBS PKG_CFLAGS TCL_VERSION TCL_PATCH_LEVEL TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC CLEANFILES TCL_LIBS TCL_DEFS TCL_EXTRA_CFLAGS TCL_LD_FLAGS TCL_SHLIB_LD_LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB GREP EGREP MATH_LIBS PKG_SOURCES PKG_OBJECTS TCL_INCLUDES TCL_THREADS SHARED_BUILD AR CELIB_DIR CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING STLIB_LD SHLIB_LD SHLIB_LD_LIBS SHLIB_CFLAGS LD_LIBRARY_PATH_VAR SHLIB_SUFFIX CFLAGS_DEFAULT LDFLAGS_DEFAULT TCL_DBGX MAKE_LIB MAKE_SHARED_LIB MAKE_STATIC_LIB MAKE_STUB_LIB RANLIB_STUB VC_MANIFEST_EMBED_DLL VC_MANIFEST_EMBED_EXE TCLSH_PROG LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Memchan 2.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/memchan] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Memchan 2.3:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-threads build with threads --enable-shared build and link with shared libraries (default: on) --enable-64bit enable 64bit support (default: off) --enable-64bit-vis enable 64bit Sparc VIS support (default: off) --disable-rpath disable rpath support (default: on) --enable-wince enable Win/CE support (where applicable) --enable-symbols build with debugging symbols (default: off) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-tcl directory containing tcl configuration (tclConfig.sh) --with-tclinclude directory containing the public Tcl header files --with-celib=DIR use Windows/CE support library from DIR Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Memchan configure 2.3 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Memchan $as_me 2.3, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # TEA extensions pass this us the version of TEA they think they # are compatible with. TEA_VERSION="3.9" { echo "$as_me:$LINENO: checking for correct TEA configuration" >&5 echo $ECHO_N "checking for correct TEA configuration... $ECHO_C" >&6; } if test x"${PACKAGE_NAME}" = x ; then { { echo "$as_me:$LINENO: error: The PACKAGE_NAME variable must be defined by your TEA configure.in" >&5 echo "$as_me: error: The PACKAGE_NAME variable must be defined by your TEA configure.in" >&2;} { (exit 1); exit 1; }; } fi if test x"3.9" = x ; then { { echo "$as_me:$LINENO: error: TEA version not specified." >&5 echo "$as_me: error: TEA version not specified." >&2;} { (exit 1); exit 1; }; } elif test "3.9" != "${TEA_VERSION}" ; then { echo "$as_me:$LINENO: result: warning: requested TEA version \"3.9\", have \"${TEA_VERSION}\"" >&5 echo "${ECHO_T}warning: requested TEA version \"3.9\", have \"${TEA_VERSION}\"" >&6; } else { echo "$as_me:$LINENO: result: ok (TEA ${TEA_VERSION})" >&5 echo "${ECHO_T}ok (TEA ${TEA_VERSION})" >&6; } fi case "`uname -s`" in *win32*|*WIN32*|*MINGW32_*) # Extract the first word of "cygpath", so it can be a program name with args. set dummy cygpath; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CYGPATH+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CYGPATH"; then ac_cv_prog_CYGPATH="$CYGPATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CYGPATH="cygpath -w" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_CYGPATH" && ac_cv_prog_CYGPATH="echo" fi fi CYGPATH=$ac_cv_prog_CYGPATH if test -n "$CYGPATH"; then { echo "$as_me:$LINENO: result: $CYGPATH" >&5 echo "${ECHO_T}$CYGPATH" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi EXEEXT=".exe" TEA_PLATFORM="windows" ;; *CYGWIN_*) CYGPATH=echo EXEEXT=".exe" # TEA_PLATFORM is determined later in LOAD_TCLCONFIG ;; *) CYGPATH=echo EXEEXT="" TEA_PLATFORM="unix" ;; esac # Check if exec_prefix is set. If not use fall back to prefix. # Note when adjusted, so that TEA_PREFIX can correct for this. # This is needed for recursive configures, since autoconf propagates # $prefix, but not $exec_prefix (doh!). if test x$exec_prefix = xNONE ; then exec_prefix_default=yes exec_prefix=$prefix fi { echo "$as_me:$LINENO: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&5 echo "$as_me: configuring ${PACKAGE_NAME} ${PACKAGE_VERSION}" >&6;} # This package name must be replaced statically for AC_SUBST to work # Substitute STUB_LIB_FILE in case package creates a stub library too. # We AC_SUBST these here to ensure they are subst'ed, # in case the user doesn't call TEA_ADD_... ac_aux_dir= for ac_dir in tclconfig "$srcdir"/tclconfig; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in tclconfig \"$srcdir\"/tclconfig" >&5 echo "$as_me: error: cannot find install-sh or install.sh in tclconfig \"$srcdir\"/tclconfig" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. #-------------------------------------------------------------------- # Configure script for package 'Memchan', as distributed at March 18, 2005. # TEA compliant. #-------------------------------------------------------------------- #-------------------------------------------------------------------- # Load the tclConfig.sh file #-------------------------------------------------------------------- # # Ok, lets find the tcl configuration # First, look for one uninstalled. # the alternative search directory is invoked by --with-tcl # if test x"${no_tcl}" = x ; then # we reset no_tcl in case something fails here no_tcl=true # Check whether --with-tcl was given. if test "${with_tcl+set}" = set; then withval=$with_tcl; with_tclconfig="${withval}" fi { echo "$as_me:$LINENO: checking for Tcl configuration" >&5 echo $ECHO_N "checking for Tcl configuration... $ECHO_C" >&6; } if test "${ac_cv_c_tclconfig+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # First check to see if --with-tcl was specified. if test x"${with_tclconfig}" != x ; then case "${with_tclconfig}" in */tclConfig.sh ) if test -f "${with_tclconfig}"; then { echo "$as_me:$LINENO: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&5 echo "$as_me: WARNING: --with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself" >&2;} with_tclconfig="`echo "${with_tclconfig}" | sed 's!/tclConfig\.sh$!!'`" fi ;; esac if test -f "${with_tclconfig}/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd "${with_tclconfig}"; pwd)`" else { { echo "$as_me:$LINENO: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&5 echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >&2;} { (exit 1); exit 1; }; } fi fi # then check for a private Tcl installation if test x"${ac_cv_c_tclconfig}" = x ; then for i in \ ../tcl \ `ls -dr ../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ `ls -dr ../tcl[8-9].[0-9] 2>/dev/null` \ `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \ ../../tcl \ `ls -dr ../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ `ls -dr ../../tcl[8-9].[0-9] 2>/dev/null` \ `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \ ../../../tcl \ `ls -dr ../../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ `ls -dr ../../../tcl[8-9].[0-9] 2>/dev/null` \ `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do if test "${TEA_PLATFORM}" = "windows" \ -a -f "$i/win/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/win; pwd)`" break fi if test -f "$i/unix/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" break fi done fi # on Darwin, check in Framework installation locations if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ `ls -d /Library/Frameworks 2>/dev/null` \ `ls -d /Network/Library/Frameworks 2>/dev/null` \ `ls -d /System/Library/Frameworks 2>/dev/null` \ ; do if test -f "$i/Tcl.framework/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/Tcl.framework; pwd)`" break fi done fi # TEA specific: on Windows, check in common installation locations if test "${TEA_PLATFORM}" = "windows" \ -a x"${ac_cv_c_tclconfig}" = x ; then for i in `ls -d C:/Tcl/lib 2>/dev/null` \ `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \ ; do if test -f "$i/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i; pwd)`" break fi done fi # check in a few common install locations if test x"${ac_cv_c_tclconfig}" = x ; then for i in `ls -d ${libdir} 2>/dev/null` \ `ls -d ${exec_prefix}/lib 2>/dev/null` \ `ls -d ${prefix}/lib 2>/dev/null` \ `ls -d /usr/local/lib 2>/dev/null` \ `ls -d /usr/contrib/lib 2>/dev/null` \ `ls -d /usr/lib 2>/dev/null` \ `ls -d /usr/lib64 2>/dev/null` \ ; do if test -f "$i/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i; pwd)`" break fi done fi # check in a few other private locations if test x"${ac_cv_c_tclconfig}" = x ; then for i in \ ${srcdir}/../tcl \ `ls -dr ${srcdir}/../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \ `ls -dr ${srcdir}/../tcl[8-9].[0-9] 2>/dev/null` \ `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do if test "${TEA_PLATFORM}" = "windows" \ -a -f "$i/win/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/win; pwd)`" break fi if test -f "$i/unix/tclConfig.sh" ; then ac_cv_c_tclconfig="`(cd $i/unix; pwd)`" break fi done fi fi if test x"${ac_cv_c_tclconfig}" = x ; then TCL_BIN_DIR="# no Tcl configs found" { { echo "$as_me:$LINENO: error: Can't find Tcl configuration definitions" >&5 echo "$as_me: error: Can't find Tcl configuration definitions" >&2;} { (exit 1); exit 1; }; } else no_tcl= TCL_BIN_DIR="${ac_cv_c_tclconfig}" { echo "$as_me:$LINENO: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5 echo "${ECHO_T}found ${TCL_BIN_DIR}/tclConfig.sh" >&6; } fi fi { echo "$as_me:$LINENO: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5 echo $ECHO_N "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... $ECHO_C" >&6; } if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then { echo "$as_me:$LINENO: result: loading" >&5 echo "${ECHO_T}loading" >&6; } . "${TCL_BIN_DIR}/tclConfig.sh" else { echo "$as_me:$LINENO: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5 echo "${ECHO_T}could not find ${TCL_BIN_DIR}/tclConfig.sh" >&6; } fi # eval is required to do the TCL_DBGX substitution eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\"" eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\"" # If the TCL_BIN_DIR is the build directory (not the install directory), # then set the common variable name to the value of the build variables. # For example, the variable TCL_LIB_SPEC will be set to the value # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC # instead of TCL_BUILD_LIB_SPEC since it will work with both an # installed and uninstalled version of Tcl. if test -f "${TCL_BIN_DIR}/Makefile" ; then TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}" TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}" TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}" elif test "`uname -s`" = "Darwin"; then # If Tcl was built as a framework, attempt to use the libraries # from the framework at the given location so that linking works # against Tcl.framework installed in an arbitrary location. case ${TCL_DEFS} in *TCL_FRAMEWORK*) if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then for i in "`cd "${TCL_BIN_DIR}"; pwd`" \ "`cd "${TCL_BIN_DIR}"/../..; pwd`"; do if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then TCL_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TCL_LIB_FILE}" break fi done fi if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then TCL_STUB_LIB_SPEC="-L`echo "${TCL_BIN_DIR}" | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}" TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}" fi ;; esac fi # eval is required to do the TCL_DBGX substitution eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\"" eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\"" eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\"" eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\"" case "`uname -s`" in *CYGWIN_*) { echo "$as_me:$LINENO: checking for cygwin variant" >&5 echo $ECHO_N "checking for cygwin variant... $ECHO_C" >&6; } case ${TCL_EXTRA_CFLAGS} in *-mwin32*|*-mno-cygwin*) TEA_PLATFORM="windows" CFLAGS="$CFLAGS -mwin32" { echo "$as_me:$LINENO: result: win32" >&5 echo "${ECHO_T}win32" >&6; } ;; *) TEA_PLATFORM="unix" { echo "$as_me:$LINENO: result: unix" >&5 echo "${ECHO_T}unix" >&6; } ;; esac EXEEXT=".exe" ;; *) ;; esac # The BUILD_$pkg is to define the correct extern storage class # handling when making this package cat >>confdefs.h <<_ACEOF #define BUILD_${PACKAGE_NAME} _ACEOF # Do this here as we have fully defined TEA_PLATFORM now if test "${TEA_PLATFORM}" = "windows" ; then CLEANFILES="$CLEANFILES *.lib *.dll *.pdb *.exp" fi # TEA specific: #----------------------------------------------------------------------- # Handle the --prefix=... option by defaulting to what Tcl gave. # Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER. #----------------------------------------------------------------------- if test "${prefix}" = "NONE"; then prefix_default=yes if test x"${TCL_PREFIX}" != x; then { echo "$as_me:$LINENO: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&5 echo "$as_me: --prefix defaulting to TCL_PREFIX ${TCL_PREFIX}" >&6;} prefix=${TCL_PREFIX} else { echo "$as_me:$LINENO: --prefix defaulting to /usr/local" >&5 echo "$as_me: --prefix defaulting to /usr/local" >&6;} prefix=/usr/local fi fi if test "${exec_prefix}" = "NONE" -a x"${prefix_default}" = x"yes" \ -o x"${exec_prefix_default}" = x"yes" ; then if test x"${TCL_EXEC_PREFIX}" != x; then { echo "$as_me:$LINENO: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&5 echo "$as_me: --exec-prefix defaulting to TCL_EXEC_PREFIX ${TCL_EXEC_PREFIX}" >&6;} exec_prefix=${TCL_EXEC_PREFIX} else { echo "$as_me:$LINENO: --exec-prefix defaulting to ${prefix}" >&5 echo "$as_me: --exec-prefix defaulting to ${prefix}" >&6;} exec_prefix=$prefix fi fi #----------------------------------------------------------------------- # Standard compiler checks. # This sets up CC by using the CC env var, or looks for gcc otherwise. # This also calls AC_PROG_CC, AC_PROG_INSTALL and a few others to create # the basic setup necessary to compile executables. #----------------------------------------------------------------------- # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE) # in this macro, they need to go into TEA_SETUP_COMPILER instead. # If the user did not set CFLAGS, set it now to keep # the AC_PROG_CC macro from adding "-g -O2". if test "${CFLAGS+set}" != "set" ; then CFLAGS="" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' #-------------------------------------------------------------------- # Checks to see if the make program sets the $MAKE variable. #-------------------------------------------------------------------- { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi #-------------------------------------------------------------------- # Find ranlib #-------------------------------------------------------------------- if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi #-------------------------------------------------------------------- # Determines the correct binary file extension (.o, .obj, .exe etc.) #-------------------------------------------------------------------- { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here. #------------------------------------------------------------------------ # If we're using GCC, see if the compiler understands -pipe. If so, use it. # It makes compiling go faster. (This is only a performance feature.) #------------------------------------------------------------------------ if test -z "$no_pipe" -a -n "$GCC"; then { echo "$as_me:$LINENO: checking if the compiler understands -pipe" >&5 echo $ECHO_N "checking if the compiler understands -pipe... $ECHO_C" >&6; } if test "${tcl_cv_cc_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_cc_pipe=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_cc_pipe=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$hold_cflags fi { echo "$as_me:$LINENO: result: $tcl_cv_cc_pipe" >&5 echo "${ECHO_T}$tcl_cv_cc_pipe" >&6; } if test $tcl_cv_cc_pipe = yes; then CFLAGS="$CFLAGS -pipe" fi fi #-------------------------------------------------------------------- # Common compiler flag setup #-------------------------------------------------------------------- { echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; } if test "${ac_cv_c_bigendian+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # See if sys/param.h defines the BYTE_ORDER macro. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then # It does; now see whether it defined to BIG_ENDIAN or not. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_bigendian=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # It does not; compile a test program. if test "$cross_compiling" = yes; then # try to guess the endianness by grepping values into an object file ac_cv_c_bigendian=unknown cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } int main () { _ascii (); _ebcdic (); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_bigendian=no else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 echo "${ECHO_T}$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in yes) cat >>confdefs.h <<\_ACEOF #define WORDS_BIGENDIAN 1 _ACEOF ;; no) ;; *) { { echo "$as_me:$LINENO: error: unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" >&5 echo "$as_me: error: unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} { (exit 1); exit 1; }; } ;; esac if test "${TEA_PLATFORM}" = "unix" ; then #-------------------------------------------------------------------- # On a few very rare systems, all of the libm.a stuff is # already in libc.a. Set compiler flags accordingly. # Also, Linux requires the "ieee" library for math to work # right (and it must appear before "-lm"). #-------------------------------------------------------------------- { echo "$as_me:$LINENO: checking for sin" >&5 echo $ECHO_N "checking for sin... $ECHO_C" >&6; } if test "${ac_cv_func_sin+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define sin to an innocuous variant, in case declares sin. For example, HP-UX 11i declares gettimeofday. */ #define sin innocuous_sin /* System header to define __stub macros and hopefully few prototypes, which can conflict with char sin (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef sin /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sin (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_sin || defined __stub___sin choke me #endif int main () { return sin (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_sin=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_sin=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_sin" >&5 echo "${ECHO_T}$ac_cv_func_sin" >&6; } if test $ac_cv_func_sin = yes; then MATH_LIBS="" else MATH_LIBS="-lm" fi { echo "$as_me:$LINENO: checking for main in -lieee" >&5 echo $ECHO_N "checking for main in -lieee... $ECHO_C" >&6; } if test "${ac_cv_lib_ieee_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lieee $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_ieee_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_ieee_main=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_ieee_main" >&5 echo "${ECHO_T}$ac_cv_lib_ieee_main" >&6; } if test $ac_cv_lib_ieee_main = yes; then MATH_LIBS="-lieee $MATH_LIBS" fi #-------------------------------------------------------------------- # Interactive UNIX requires -linet instead of -lsocket, plus it # needs net/errno.h to define the socket-related error codes. #-------------------------------------------------------------------- { echo "$as_me:$LINENO: checking for main in -linet" >&5 echo $ECHO_N "checking for main in -linet... $ECHO_C" >&6; } if test "${ac_cv_lib_inet_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-linet $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_inet_main=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_inet_main=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_inet_main" >&5 echo "${ECHO_T}$ac_cv_lib_inet_main" >&6; } if test $ac_cv_lib_inet_main = yes; then LIBS="$LIBS -linet" fi if test "${ac_cv_header_net_errno_h+set}" = set; then { echo "$as_me:$LINENO: checking for net/errno.h" >&5 echo $ECHO_N "checking for net/errno.h... $ECHO_C" >&6; } if test "${ac_cv_header_net_errno_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_net_errno_h" >&5 echo "${ECHO_T}$ac_cv_header_net_errno_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking net/errno.h usability" >&5 echo $ECHO_N "checking net/errno.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking net/errno.h presence" >&5 echo $ECHO_N "checking net/errno.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: net/errno.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: net/errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: net/errno.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: net/errno.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: net/errno.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: net/errno.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: net/errno.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: net/errno.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: net/errno.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: net/errno.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: net/errno.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: net/errno.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: net/errno.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: net/errno.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: net/errno.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for net/errno.h" >&5 echo $ECHO_N "checking for net/errno.h... $ECHO_C" >&6; } if test "${ac_cv_header_net_errno_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_net_errno_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_net_errno_h" >&5 echo "${ECHO_T}$ac_cv_header_net_errno_h" >&6; } fi if test $ac_cv_header_net_errno_h = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_NET_ERRNO_H 1 _ACEOF fi #-------------------------------------------------------------------- # Check for the existence of the -lsocket and -lnsl libraries. # The order here is important, so that they end up in the right # order in the command line generated by make. Here are some # special considerations: # 1. Use "connect" and "accept" to check for -lsocket, and # "gethostbyname" to check for -lnsl. # 2. Use each function name only once: can't redo a check because # autoconf caches the results of the last check and won't redo it. # 3. Use -lnsl and -lsocket only if they supply procedures that # aren't already present in the normal libraries. This is because # IRIX 5.2 has libraries, but they aren't needed and they're # bogus: they goof up name resolution if used. # 4. On some SVR4 systems, can't use -lsocket without -lnsl too. # To get around this problem, check for both libraries together # if -lsocket doesn't work by itself. #-------------------------------------------------------------------- tcl_checkBoth=0 { echo "$as_me:$LINENO: checking for connect" >&5 echo $ECHO_N "checking for connect... $ECHO_C" >&6; } if test "${ac_cv_func_connect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define connect to an innocuous variant, in case declares connect. For example, HP-UX 11i declares gettimeofday. */ #define connect innocuous_connect /* System header to define __stub macros and hopefully few prototypes, which can conflict with char connect (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef connect /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_connect || defined __stub___connect choke me #endif int main () { return connect (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_connect=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_connect=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 echo "${ECHO_T}$ac_cv_func_connect" >&6; } if test $ac_cv_func_connect = yes; then tcl_checkSocket=0 else tcl_checkSocket=1 fi if test "$tcl_checkSocket" = 1; then { echo "$as_me:$LINENO: checking for setsockopt" >&5 echo $ECHO_N "checking for setsockopt... $ECHO_C" >&6; } if test "${ac_cv_func_setsockopt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define setsockopt to an innocuous variant, in case declares setsockopt. For example, HP-UX 11i declares gettimeofday. */ #define setsockopt innocuous_setsockopt /* System header to define __stub macros and hopefully few prototypes, which can conflict with char setsockopt (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef setsockopt /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char setsockopt (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_setsockopt || defined __stub___setsockopt choke me #endif int main () { return setsockopt (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_setsockopt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_setsockopt=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_setsockopt" >&5 echo "${ECHO_T}$ac_cv_func_setsockopt" >&6; } if test $ac_cv_func_setsockopt = yes; then : else { echo "$as_me:$LINENO: checking for setsockopt in -lsocket" >&5 echo $ECHO_N "checking for setsockopt in -lsocket... $ECHO_C" >&6; } if test "${ac_cv_lib_socket_setsockopt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char setsockopt (); int main () { return setsockopt (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_socket_setsockopt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_socket_setsockopt=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_socket_setsockopt" >&5 echo "${ECHO_T}$ac_cv_lib_socket_setsockopt" >&6; } if test $ac_cv_lib_socket_setsockopt = yes; then LIBS="$LIBS -lsocket" else tcl_checkBoth=1 fi fi fi if test "$tcl_checkBoth" = 1; then tk_oldLibs=$LIBS LIBS="$LIBS -lsocket -lnsl" { echo "$as_me:$LINENO: checking for accept" >&5 echo $ECHO_N "checking for accept... $ECHO_C" >&6; } if test "${ac_cv_func_accept+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define accept to an innocuous variant, in case declares accept. For example, HP-UX 11i declares gettimeofday. */ #define accept innocuous_accept /* System header to define __stub macros and hopefully few prototypes, which can conflict with char accept (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef accept /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char accept (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_accept || defined __stub___accept choke me #endif int main () { return accept (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_accept=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_accept=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_accept" >&5 echo "${ECHO_T}$ac_cv_func_accept" >&6; } if test $ac_cv_func_accept = yes; then tcl_checkNsl=0 else LIBS=$tk_oldLibs fi fi { echo "$as_me:$LINENO: checking for gethostbyname" >&5 echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6; } if test "${ac_cv_func_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define gethostbyname to an innocuous variant, in case declares gethostbyname. For example, HP-UX 11i declares gettimeofday. */ #define gethostbyname innocuous_gethostbyname /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gethostbyname (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef gethostbyname /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_gethostbyname || defined __stub___gethostbyname choke me #endif int main () { return gethostbyname (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6; } if test $ac_cv_func_gethostbyname = yes; then : else { echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; } if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_nsl_gethostbyname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; } if test $ac_cv_lib_nsl_gethostbyname = yes; then LIBS="$LIBS -lnsl" fi fi # TEA specific: Don't perform the eval of the libraries here because # DL_LIBS won't be set until we call TEA_CONFIG_CFLAGS TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}' { echo "$as_me:$LINENO: checking dirent.h" >&5 echo $ECHO_N "checking dirent.h... $ECHO_C" >&6; } if test "${tcl_cv_dirent_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #ifndef _POSIX_SOURCE # ifdef __Lynx__ /* * Generate compilation error to make the test fail: Lynx headers * are only valid if really in the POSIX environment. */ missing_procedure(); # endif #endif DIR *d; struct dirent *entryPtr; char *p; d = opendir("foobar"); entryPtr = readdir(d); p = entryPtr->d_name; closedir(d); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tcl_cv_dirent_h=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_dirent_h=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $tcl_cv_dirent_h" >&5 echo "${ECHO_T}$tcl_cv_dirent_h" >&6; } if test $tcl_cv_dirent_h = no; then cat >>confdefs.h <<\_ACEOF #define NO_DIRENT_H 1 _ACEOF fi # TEA specific: if test "${ac_cv_header_errno_h+set}" = set; then { echo "$as_me:$LINENO: checking for errno.h" >&5 echo $ECHO_N "checking for errno.h... $ECHO_C" >&6; } if test "${ac_cv_header_errno_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5 echo "${ECHO_T}$ac_cv_header_errno_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking errno.h usability" >&5 echo $ECHO_N "checking errno.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking errno.h presence" >&5 echo $ECHO_N "checking errno.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: errno.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: errno.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: errno.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: errno.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: errno.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: errno.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: errno.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: errno.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: errno.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: errno.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: errno.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: errno.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for errno.h" >&5 echo $ECHO_N "checking for errno.h... $ECHO_C" >&6; } if test "${ac_cv_header_errno_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_errno_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5 echo "${ECHO_T}$ac_cv_header_errno_h" >&6; } fi if test $ac_cv_header_errno_h = yes; then : else cat >>confdefs.h <<\_ACEOF #define NO_ERRNO_H 1 _ACEOF fi if test "${ac_cv_header_float_h+set}" = set; then { echo "$as_me:$LINENO: checking for float.h" >&5 echo $ECHO_N "checking for float.h... $ECHO_C" >&6; } if test "${ac_cv_header_float_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_float_h" >&5 echo "${ECHO_T}$ac_cv_header_float_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking float.h usability" >&5 echo $ECHO_N "checking float.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking float.h presence" >&5 echo $ECHO_N "checking float.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: float.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: float.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: float.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: float.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: float.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: float.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: float.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: float.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: float.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: float.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: float.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: float.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: float.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: float.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: float.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: float.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for float.h" >&5 echo $ECHO_N "checking for float.h... $ECHO_C" >&6; } if test "${ac_cv_header_float_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_float_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_float_h" >&5 echo "${ECHO_T}$ac_cv_header_float_h" >&6; } fi if test $ac_cv_header_float_h = yes; then : else cat >>confdefs.h <<\_ACEOF #define NO_FLOAT_H 1 _ACEOF fi if test "${ac_cv_header_values_h+set}" = set; then { echo "$as_me:$LINENO: checking for values.h" >&5 echo $ECHO_N "checking for values.h... $ECHO_C" >&6; } if test "${ac_cv_header_values_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_values_h" >&5 echo "${ECHO_T}$ac_cv_header_values_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking values.h usability" >&5 echo $ECHO_N "checking values.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking values.h presence" >&5 echo $ECHO_N "checking values.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: values.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: values.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: values.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: values.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: values.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: values.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: values.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: values.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: values.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: values.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: values.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: values.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: values.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: values.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: values.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: values.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for values.h" >&5 echo $ECHO_N "checking for values.h... $ECHO_C" >&6; } if test "${ac_cv_header_values_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_values_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_values_h" >&5 echo "${ECHO_T}$ac_cv_header_values_h" >&6; } fi if test $ac_cv_header_values_h = yes; then : else cat >>confdefs.h <<\_ACEOF #define NO_VALUES_H 1 _ACEOF fi if test "${ac_cv_header_limits_h+set}" = set; then { echo "$as_me:$LINENO: checking for limits.h" >&5 echo $ECHO_N "checking for limits.h... $ECHO_C" >&6; } if test "${ac_cv_header_limits_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5 echo "${ECHO_T}$ac_cv_header_limits_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking limits.h usability" >&5 echo $ECHO_N "checking limits.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking limits.h presence" >&5 echo $ECHO_N "checking limits.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: limits.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: limits.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: limits.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: limits.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: limits.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: limits.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: limits.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: limits.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: limits.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: limits.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: limits.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: limits.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: limits.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: limits.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for limits.h" >&5 echo $ECHO_N "checking for limits.h... $ECHO_C" >&6; } if test "${ac_cv_header_limits_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_limits_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_limits_h" >&5 echo "${ECHO_T}$ac_cv_header_limits_h" >&6; } fi if test $ac_cv_header_limits_h = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LIMITS_H 1 _ACEOF else cat >>confdefs.h <<\_ACEOF #define NO_LIMITS_H 1 _ACEOF fi if test "${ac_cv_header_stdlib_h+set}" = set; then { echo "$as_me:$LINENO: checking for stdlib.h" >&5 echo $ECHO_N "checking for stdlib.h... $ECHO_C" >&6; } if test "${ac_cv_header_stdlib_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5 echo "${ECHO_T}$ac_cv_header_stdlib_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking stdlib.h usability" >&5 echo $ECHO_N "checking stdlib.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking stdlib.h presence" >&5 echo $ECHO_N "checking stdlib.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: stdlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: stdlib.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: stdlib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: stdlib.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: stdlib.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: stdlib.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: stdlib.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: stdlib.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: stdlib.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: stdlib.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: stdlib.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: stdlib.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: stdlib.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: stdlib.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for stdlib.h" >&5 echo $ECHO_N "checking for stdlib.h... $ECHO_C" >&6; } if test "${ac_cv_header_stdlib_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_stdlib_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdlib_h" >&5 echo "${ECHO_T}$ac_cv_header_stdlib_h" >&6; } fi if test $ac_cv_header_stdlib_h = yes; then tcl_ok=1 else tcl_ok=0 fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "strtol" >/dev/null 2>&1; then : else tcl_ok=0 fi rm -f conftest* cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "strtoul" >/dev/null 2>&1; then : else tcl_ok=0 fi rm -f conftest* cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "strtod" >/dev/null 2>&1; then : else tcl_ok=0 fi rm -f conftest* if test $tcl_ok = 0; then cat >>confdefs.h <<\_ACEOF #define NO_STDLIB_H 1 _ACEOF fi if test "${ac_cv_header_string_h+set}" = set; then { echo "$as_me:$LINENO: checking for string.h" >&5 echo $ECHO_N "checking for string.h... $ECHO_C" >&6; } if test "${ac_cv_header_string_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5 echo "${ECHO_T}$ac_cv_header_string_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking string.h usability" >&5 echo $ECHO_N "checking string.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking string.h presence" >&5 echo $ECHO_N "checking string.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: string.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: string.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: string.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: string.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: string.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: string.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: string.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: string.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: string.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: string.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: string.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: string.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: string.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: string.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: string.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for string.h" >&5 echo $ECHO_N "checking for string.h... $ECHO_C" >&6; } if test "${ac_cv_header_string_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_string_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_string_h" >&5 echo "${ECHO_T}$ac_cv_header_string_h" >&6; } fi if test $ac_cv_header_string_h = yes; then tcl_ok=1 else tcl_ok=0 fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "strstr" >/dev/null 2>&1; then : else tcl_ok=0 fi rm -f conftest* cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "strerror" >/dev/null 2>&1; then : else tcl_ok=0 fi rm -f conftest* # See also memmove check below for a place where NO_STRING_H can be # set and why. if test $tcl_ok = 0; then cat >>confdefs.h <<\_ACEOF #define NO_STRING_H 1 _ACEOF fi if test "${ac_cv_header_sys_wait_h+set}" = set; then { echo "$as_me:$LINENO: checking for sys/wait.h" >&5 echo $ECHO_N "checking for sys/wait.h... $ECHO_C" >&6; } if test "${ac_cv_header_sys_wait_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking sys/wait.h usability" >&5 echo $ECHO_N "checking sys/wait.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking sys/wait.h presence" >&5 echo $ECHO_N "checking sys/wait.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: sys/wait.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/wait.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: sys/wait.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: sys/wait.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/wait.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: sys/wait.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: sys/wait.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: sys/wait.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: sys/wait.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: sys/wait.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: sys/wait.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/wait.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: sys/wait.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for sys/wait.h" >&5 echo $ECHO_N "checking for sys/wait.h... $ECHO_C" >&6; } if test "${ac_cv_header_sys_wait_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_sys_wait_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; } fi if test $ac_cv_header_sys_wait_h = yes; then : else cat >>confdefs.h <<\_ACEOF #define NO_SYS_WAIT_H 1 _ACEOF fi if test "${ac_cv_header_dlfcn_h+set}" = set; then { echo "$as_me:$LINENO: checking for dlfcn.h" >&5 echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6; } if test "${ac_cv_header_dlfcn_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5 echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking dlfcn.h usability" >&5 echo $ECHO_N "checking dlfcn.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking dlfcn.h presence" >&5 echo $ECHO_N "checking dlfcn.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: dlfcn.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: dlfcn.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: dlfcn.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: dlfcn.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: dlfcn.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: dlfcn.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: dlfcn.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: dlfcn.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: dlfcn.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for dlfcn.h" >&5 echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6; } if test "${ac_cv_header_dlfcn_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_dlfcn_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5 echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6; } fi if test $ac_cv_header_dlfcn_h = yes; then : else cat >>confdefs.h <<\_ACEOF #define NO_DLFCN_H 1 _ACEOF fi # OS/390 lacks sys/param.h (and doesn't need it, by chance). for ac_header in sys/param.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Let the user call this, because if it triggers, they will # need a compat/strtod.c that is correct. Users can also # use Tcl_GetDouble(FromObj) instead. #TEA_BUGGY_STRTOD fi { echo "$as_me:$LINENO: checking for intptr_t" >&5 echo $ECHO_N "checking for intptr_t... $ECHO_C" >&6; } if test "${ac_cv_type_intptr_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef intptr_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_intptr_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_intptr_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_intptr_t" >&5 echo "${ECHO_T}$ac_cv_type_intptr_t" >&6; } if test $ac_cv_type_intptr_t = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_INTPTR_T 1 _ACEOF else { echo "$as_me:$LINENO: checking for pointer-size signed integer type" >&5 echo $ECHO_N "checking for pointer-size signed integer type... $ECHO_C" >&6; } if test "${tcl_cv_intptr_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else for tcl_cv_intptr_t in "int" "long" "long long" none; do if test "$tcl_cv_intptr_t" != none; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($tcl_cv_intptr_t))]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_ok=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_ok=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$tcl_ok" = yes && break; fi done fi { echo "$as_me:$LINENO: result: $tcl_cv_intptr_t" >&5 echo "${ECHO_T}$tcl_cv_intptr_t" >&6; } if test "$tcl_cv_intptr_t" != none; then cat >>confdefs.h <<_ACEOF #define intptr_t $tcl_cv_intptr_t _ACEOF fi fi { echo "$as_me:$LINENO: checking for uintptr_t" >&5 echo $ECHO_N "checking for uintptr_t... $ECHO_C" >&6; } if test "${ac_cv_type_uintptr_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef uintptr_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_uintptr_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_uintptr_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5 echo "${ECHO_T}$ac_cv_type_uintptr_t" >&6; } if test $ac_cv_type_uintptr_t = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_UINTPTR_T 1 _ACEOF else { echo "$as_me:$LINENO: checking for pointer-size unsigned integer type" >&5 echo $ECHO_N "checking for pointer-size unsigned integer type... $ECHO_C" >&6; } if test "${tcl_cv_uintptr_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else for tcl_cv_uintptr_t in "unsigned int" "unsigned long" "unsigned long long" \ none; do if test "$tcl_cv_uintptr_t" != none; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($tcl_cv_uintptr_t))]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_ok=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_ok=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$tcl_ok" = yes && break; fi done fi { echo "$as_me:$LINENO: result: $tcl_cv_uintptr_t" >&5 echo "${ECHO_T}$tcl_cv_uintptr_t" >&6; } if test "$tcl_cv_uintptr_t" != none; then cat >>confdefs.h <<_ACEOF #define uintptr_t $tcl_cv_uintptr_t _ACEOF fi fi #----------------------------------------------------------------------- # Specify the C source files to compile in TEA_ADD_SOURCES, # public headers that need to be installed in TEA_ADD_HEADERS, # stub library C source files to compile in TEA_ADD_STUB_SOURCES, # and runtime Tcl library files in TEA_ADD_TCL_SOURCES. # This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS # and PKG_TCL_SOURCES. #----------------------------------------------------------------------- vars="memchan.c init.c counter.c" for i in $vars; do case $i in \$*) # allow $-var names PKG_SOURCES="$PKG_SOURCES $i" PKG_OBJECTS="$PKG_OBJECTS $i" ;; *) # check for existence - allows for generic/win/unix VPATH # To add more dirs here (like 'src'), you have to update VPATH # in Makefile.in as well if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ -a ! -f "${srcdir}/macosx/$i" \ ; then { { echo "$as_me:$LINENO: error: could not find source file '$i'" >&5 echo "$as_me: error: could not find source file '$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_SOURCES="$PKG_SOURCES $i" # this assumes it is in a VPATH dir i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" else j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" fi PKG_OBJECTS="$PKG_OBJECTS $j" ;; esac done vars="fifo.c fifo2.c null.c zero.c random.c" for i in $vars; do case $i in \$*) # allow $-var names PKG_SOURCES="$PKG_SOURCES $i" PKG_OBJECTS="$PKG_OBJECTS $i" ;; *) # check for existence - allows for generic/win/unix VPATH # To add more dirs here (like 'src'), you have to update VPATH # in Makefile.in as well if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ -a ! -f "${srcdir}/macosx/$i" \ ; then { { echo "$as_me:$LINENO: error: could not find source file '$i'" >&5 echo "$as_me: error: could not find source file '$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_SOURCES="$PKG_SOURCES $i" # this assumes it is in a VPATH dir i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" else j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" fi PKG_OBJECTS="$PKG_OBJECTS $j" ;; esac done vars="isaac/randport.c" for i in $vars; do case $i in \$*) # allow $-var names PKG_SOURCES="$PKG_SOURCES $i" PKG_OBJECTS="$PKG_OBJECTS $i" ;; *) # check for existence - allows for generic/win/unix VPATH # To add more dirs here (like 'src'), you have to update VPATH # in Makefile.in as well if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ -a ! -f "${srcdir}/macosx/$i" \ ; then { { echo "$as_me:$LINENO: error: could not find source file '$i'" >&5 echo "$as_me: error: could not find source file '$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_SOURCES="$PKG_SOURCES $i" # this assumes it is in a VPATH dir i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" else j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" fi PKG_OBJECTS="$PKG_OBJECTS $j" ;; esac done vars="buf.c bufFix.c bufExt.c bufRange.c bufQueue.c" for i in $vars; do case $i in \$*) # allow $-var names PKG_SOURCES="$PKG_SOURCES $i" PKG_OBJECTS="$PKG_OBJECTS $i" ;; *) # check for existence - allows for generic/win/unix VPATH # To add more dirs here (like 'src'), you have to update VPATH # in Makefile.in as well if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ -a ! -f "${srcdir}/macosx/$i" \ ; then { { echo "$as_me:$LINENO: error: could not find source file '$i'" >&5 echo "$as_me: error: could not find source file '$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_SOURCES="$PKG_SOURCES $i" # this assumes it is in a VPATH dir i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" else j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" fi PKG_OBJECTS="$PKG_OBJECTS $j" ;; esac done vars="bufStubInit.c memchanStubInit.c " for i in $vars; do case $i in \$*) # allow $-var names PKG_SOURCES="$PKG_SOURCES $i" PKG_OBJECTS="$PKG_OBJECTS $i" ;; *) # check for existence - allows for generic/win/unix VPATH # To add more dirs here (like 'src'), you have to update VPATH # in Makefile.in as well if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ -a ! -f "${srcdir}/macosx/$i" \ ; then { { echo "$as_me:$LINENO: error: could not find source file '$i'" >&5 echo "$as_me: error: could not find source file '$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_SOURCES="$PKG_SOURCES $i" # this assumes it is in a VPATH dir i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" else j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" fi PKG_OBJECTS="$PKG_OBJECTS $j" ;; esac done vars="generic/memchan.h generic/memchanDecls.h" for i in $vars; do # check for existence, be strict because it is installed if test ! -f "${srcdir}/$i" ; then { { echo "$as_me:$LINENO: error: could not find header file '${srcdir}/$i'" >&5 echo "$as_me: error: could not find header file '${srcdir}/$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_HEADERS="$PKG_HEADERS $i" done vars="generic/buf.h generic/bufDecls.h generic/bufIntDecls.h" for i in $vars; do # check for existence, be strict because it is installed if test ! -f "${srcdir}/$i" ; then { { echo "$as_me:$LINENO: error: could not find header file '${srcdir}/$i'" >&5 echo "$as_me: error: could not find header file '${srcdir}/$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_HEADERS="$PKG_HEADERS $i" done vars="-I\"`\${CYGPATH} \${srcdir}/isaac`\"" for i in $vars; do PKG_INCLUDES="$PKG_INCLUDES $i" done vars="" for i in $vars; do if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then # Convert foo.lib to -lfoo for GCC. No-op if not *.lib i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'` fi PKG_LIBS="$PKG_LIBS $i" done PKG_CFLAGS="$PKG_CFLAGS " vars="bufStubLib.c memchanStubLib.c" for i in $vars; do # check for existence - allows for generic/win/unix VPATH if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ -a ! -f "${srcdir}/macosx/$i" \ ; then { { echo "$as_me:$LINENO: error: could not find stub source file '$i'" >&5 echo "$as_me: error: could not find stub source file '$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_STUB_SOURCES="$PKG_STUB_SOURCES $i" # this assumes it is in a VPATH dir i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" else j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" fi PKG_STUB_OBJECTS="$PKG_STUB_OBJECTS $j" done vars="bufStubLib.c memchanStubLib.c" for i in $vars; do case $i in \$*) # allow $-var names PKG_SOURCES="$PKG_SOURCES $i" PKG_OBJECTS="$PKG_OBJECTS $i" ;; *) # check for existence - allows for generic/win/unix VPATH # To add more dirs here (like 'src'), you have to update VPATH # in Makefile.in as well if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ -a ! -f "${srcdir}/win/$i" -a ! -f "${srcdir}/unix/$i" \ -a ! -f "${srcdir}/macosx/$i" \ ; then { { echo "$as_me:$LINENO: error: could not find source file '$i'" >&5 echo "$as_me: error: could not find source file '$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_SOURCES="$PKG_SOURCES $i" # this assumes it is in a VPATH dir i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" else j="`echo $i | sed -e 's/\.[^.]*$//'`.\${OBJEXT}" fi PKG_OBJECTS="$PKG_OBJECTS $j" ;; esac done vars="" for i in $vars; do # check for existence, be strict because it is installed if test ! -f "${srcdir}/$i" ; then { { echo "$as_me:$LINENO: error: could not find tcl source file '${srcdir}/$i'" >&5 echo "$as_me: error: could not find tcl source file '${srcdir}/$i'" >&2;} { (exit 1); exit 1; }; } fi PKG_TCL_SOURCES="$PKG_TCL_SOURCES $i" done #-------------------------------------------------------------------- # A few miscellaneous platform-specific items: # # We have to define a special symbol for Windows (BUILD_Memchan in this # case) so that we create the export library with the dll. # # Windows creates a few extra files that need to be cleaned up. # We can add more files to clean if our extension creates any extra # files in the future. # # Define any extra compiler flags in the PACKAGE_CFLAGS variable. # These will be appended to the current set of compiler flags for # your system. #-------------------------------------------------------------------- if test "${TEA_PLATFORM}" = "windows" ; then cat >>confdefs.h <<\_ACEOF #define BUILD_Memchan 1 _ACEOF CLEANFILES="pkgIndex.tcl *.lib *.dll *.exp *.ilk *.pdb vc*.pch" else CLEANFILES="pkgIndex.tcl" fi #-------------------------------------------------------------------- # __CHANGE__ # Choose which headers you need. Extension authors should try very # hard to only rely on the Tcl public header files. Internal headers # contain private data structures and are subject to change without # notice. # This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG #-------------------------------------------------------------------- { echo "$as_me:$LINENO: checking for Tcl public headers" >&5 echo $ECHO_N "checking for Tcl public headers... $ECHO_C" >&6; } # Check whether --with-tclinclude was given. if test "${with_tclinclude+set}" = set; then withval=$with_tclinclude; with_tclinclude=${withval} fi if test "${ac_cv_c_tclh+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Use the value from --with-tclinclude, if it was given if test x"${with_tclinclude}" != x ; then if test -f "${with_tclinclude}/tcl.h" ; then ac_cv_c_tclh=${with_tclinclude} else { { echo "$as_me:$LINENO: error: ${with_tclinclude} directory does not contain tcl.h" >&5 echo "$as_me: error: ${with_tclinclude} directory does not contain tcl.h" >&2;} { (exit 1); exit 1; }; } fi else list="" if test "`uname -s`" = "Darwin"; then # If Tcl was built as a framework, attempt to use # the framework's Headers directory case ${TCL_DEFS} in *TCL_FRAMEWORK*) list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`" ;; esac fi # Look in the source dir only if Tcl is not installed, # and in that situation, look there before installed locations. if test -f "${TCL_BIN_DIR}/Makefile" ; then list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`" fi # Check order: pkg --prefix location, Tcl's --prefix location, # relative to directory of tclConfig.sh. eval "temp_includedir=${includedir}" list="$list \ `ls -d ${temp_includedir} 2>/dev/null` \ `ls -d ${TCL_PREFIX}/include 2>/dev/null` \ `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then list="$list /usr/local/include /usr/include" if test x"${TCL_INCLUDE_SPEC}" != x ; then d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'` list="$list `ls -d ${d} 2>/dev/null`" fi fi for i in $list ; do if test -f "$i/tcl.h" ; then ac_cv_c_tclh=$i break fi done fi fi # Print a message based on how we determined the include path if test x"${ac_cv_c_tclh}" = x ; then { { echo "$as_me:$LINENO: error: tcl.h not found. Please specify its location with --with-tclinclude" >&5 echo "$as_me: error: tcl.h not found. Please specify its location with --with-tclinclude" >&2;} { (exit 1); exit 1; }; } else { echo "$as_me:$LINENO: result: ${ac_cv_c_tclh}" >&5 echo "${ECHO_T}${ac_cv_c_tclh}" >&6; } fi # Convert to a native path and substitute into the output files. INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}` TCL_INCLUDES=-I\"${INCLUDE_DIR_NATIVE}\" #TEA_PRIVATE_TCL_HEADERS #-------------------------------------------------------------------- # Check whether --enable-threads or --disable-threads was given. # So far only Tcl responds to this one. #-------------------------------------------------------------------- # Check whether --enable-threads was given. if test "${enable_threads+set}" = set; then enableval=$enable_threads; tcl_ok=$enableval else tcl_ok=yes fi if test "${enable_threads+set}" = set; then enableval="$enable_threads" tcl_ok=$enableval else tcl_ok=yes fi if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then TCL_THREADS=1 if test "${TEA_PLATFORM}" != "windows" ; then # We are always OK on Windows, so check what this platform wants: # USE_THREAD_ALLOC tells us to try the special thread-based # allocator that significantly reduces lock contention cat >>confdefs.h <<\_ACEOF #define USE_THREAD_ALLOC 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define _REENTRANT 1 _ACEOF if test "`uname -s`" = "SunOS" ; then cat >>confdefs.h <<\_ACEOF #define _POSIX_PTHREAD_SEMANTICS 1 _ACEOF fi cat >>confdefs.h <<\_ACEOF #define _THREAD_SAFE 1 _ACEOF { echo "$as_me:$LINENO: checking for pthread_mutex_init in -lpthread" >&5 echo $ECHO_N "checking for pthread_mutex_init in -lpthread... $ECHO_C" >&6; } if test "${ac_cv_lib_pthread_pthread_mutex_init+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_mutex_init (); int main () { return pthread_mutex_init (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_pthread_pthread_mutex_init=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_pthread_pthread_mutex_init=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_mutex_init" >&5 echo "${ECHO_T}$ac_cv_lib_pthread_pthread_mutex_init" >&6; } if test $ac_cv_lib_pthread_pthread_mutex_init = yes; then tcl_ok=yes else tcl_ok=no fi if test "$tcl_ok" = "no"; then # Check a little harder for __pthread_mutex_init in the same # library, as some systems hide it there until pthread.h is # defined. We could alternatively do an AC_TRY_COMPILE with # pthread.h, but that will work with libpthread really doesn't # exist, like AIX 4.2. [Bug: 4359] { echo "$as_me:$LINENO: checking for __pthread_mutex_init in -lpthread" >&5 echo $ECHO_N "checking for __pthread_mutex_init in -lpthread... $ECHO_C" >&6; } if test "${ac_cv_lib_pthread___pthread_mutex_init+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char __pthread_mutex_init (); int main () { return __pthread_mutex_init (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_pthread___pthread_mutex_init=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_pthread___pthread_mutex_init=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_pthread___pthread_mutex_init" >&5 echo "${ECHO_T}$ac_cv_lib_pthread___pthread_mutex_init" >&6; } if test $ac_cv_lib_pthread___pthread_mutex_init = yes; then tcl_ok=yes else tcl_ok=no fi fi if test "$tcl_ok" = "yes"; then # The space is needed THREADS_LIBS=" -lpthread" else { echo "$as_me:$LINENO: checking for pthread_mutex_init in -lpthreads" >&5 echo $ECHO_N "checking for pthread_mutex_init in -lpthreads... $ECHO_C" >&6; } if test "${ac_cv_lib_pthreads_pthread_mutex_init+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_mutex_init (); int main () { return pthread_mutex_init (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_pthreads_pthread_mutex_init=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_pthreads_pthread_mutex_init=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_pthreads_pthread_mutex_init" >&5 echo "${ECHO_T}$ac_cv_lib_pthreads_pthread_mutex_init" >&6; } if test $ac_cv_lib_pthreads_pthread_mutex_init = yes; then tcl_ok=yes else tcl_ok=no fi if test "$tcl_ok" = "yes"; then # The space is needed THREADS_LIBS=" -lpthreads" else { echo "$as_me:$LINENO: checking for pthread_mutex_init in -lc" >&5 echo $ECHO_N "checking for pthread_mutex_init in -lc... $ECHO_C" >&6; } if test "${ac_cv_lib_c_pthread_mutex_init+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_mutex_init (); int main () { return pthread_mutex_init (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_c_pthread_mutex_init=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_c_pthread_mutex_init=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_c_pthread_mutex_init" >&5 echo "${ECHO_T}$ac_cv_lib_c_pthread_mutex_init" >&6; } if test $ac_cv_lib_c_pthread_mutex_init = yes; then tcl_ok=yes else tcl_ok=no fi if test "$tcl_ok" = "no"; then { echo "$as_me:$LINENO: checking for pthread_mutex_init in -lc_r" >&5 echo $ECHO_N "checking for pthread_mutex_init in -lc_r... $ECHO_C" >&6; } if test "${ac_cv_lib_c_r_pthread_mutex_init+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_mutex_init (); int main () { return pthread_mutex_init (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_c_r_pthread_mutex_init=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_c_r_pthread_mutex_init=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_c_r_pthread_mutex_init" >&5 echo "${ECHO_T}$ac_cv_lib_c_r_pthread_mutex_init" >&6; } if test $ac_cv_lib_c_r_pthread_mutex_init = yes; then tcl_ok=yes else tcl_ok=no fi if test "$tcl_ok" = "yes"; then # The space is needed THREADS_LIBS=" -pthread" else TCL_THREADS=0 { echo "$as_me:$LINENO: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&5 echo "$as_me: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&2;} fi fi fi fi fi else TCL_THREADS=0 fi # Do checking message here to not mess up interleaved configure output { echo "$as_me:$LINENO: checking for building with threads" >&5 echo $ECHO_N "checking for building with threads... $ECHO_C" >&6; } if test "${TCL_THREADS}" = 1; then cat >>confdefs.h <<\_ACEOF #define TCL_THREADS 1 _ACEOF { echo "$as_me:$LINENO: result: yes (default)" >&5 echo "${ECHO_T}yes (default)" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # TCL_THREADS sanity checking. See if our request for building with # threads is the same as the way Tcl was built. If not, warn the user. case ${TCL_DEFS} in *THREADS=1*) if test "${TCL_THREADS}" = "0"; then { echo "$as_me:$LINENO: WARNING: Building ${PACKAGE_NAME} without threads enabled, but building against Tcl that IS thread-enabled. It is recommended to use --enable-threads." >&5 echo "$as_me: WARNING: Building ${PACKAGE_NAME} without threads enabled, but building against Tcl that IS thread-enabled. It is recommended to use --enable-threads." >&2;} fi ;; *) if test "${TCL_THREADS}" = "1"; then { echo "$as_me:$LINENO: WARNING: --enable-threads requested, but building against a Tcl that is NOT thread-enabled. This is an OK configuration that will also run in a thread-enabled core." >&5 echo "$as_me: WARNING: --enable-threads requested, but building against a Tcl that is NOT thread-enabled. This is an OK configuration that will also run in a thread-enabled core." >&2;} fi ;; esac #-------------------------------------------------------------------- # The statement below defines a collection of symbols related to # building as a shared library instead of a static library. #-------------------------------------------------------------------- { echo "$as_me:$LINENO: checking how to build libraries" >&5 echo $ECHO_N "checking how to build libraries... $ECHO_C" >&6; } # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then enableval=$enable_shared; tcl_ok=$enableval else tcl_ok=yes fi if test "${enable_shared+set}" = set; then enableval="$enable_shared" tcl_ok=$enableval else tcl_ok=yes fi if test "$tcl_ok" = "yes" ; then { echo "$as_me:$LINENO: result: shared" >&5 echo "${ECHO_T}shared" >&6; } SHARED_BUILD=1 else { echo "$as_me:$LINENO: result: static" >&5 echo "${ECHO_T}static" >&6; } SHARED_BUILD=0 cat >>confdefs.h <<\_ACEOF #define STATIC_BUILD 1 _ACEOF fi #-------------------------------------------------------------------- # This macro figures out what flags to use with the compiler/linker # when building shared/static debug/optimized objects. This information # can be taken from the tclConfig.sh file, but this figures it all out. #-------------------------------------------------------------------- # Step 0.a: Enable 64 bit support? { echo "$as_me:$LINENO: checking if 64bit support is requested" >&5 echo $ECHO_N "checking if 64bit support is requested... $ECHO_C" >&6; } # Check whether --enable-64bit was given. if test "${enable_64bit+set}" = set; then enableval=$enable_64bit; do64bit=$enableval else do64bit=no fi { echo "$as_me:$LINENO: result: $do64bit" >&5 echo "${ECHO_T}$do64bit" >&6; } # Step 0.b: Enable Solaris 64 bit VIS support? { echo "$as_me:$LINENO: checking if 64bit Sparc VIS support is requested" >&5 echo $ECHO_N "checking if 64bit Sparc VIS support is requested... $ECHO_C" >&6; } # Check whether --enable-64bit-vis was given. if test "${enable_64bit_vis+set}" = set; then enableval=$enable_64bit_vis; do64bitVIS=$enableval else do64bitVIS=no fi { echo "$as_me:$LINENO: result: $do64bitVIS" >&5 echo "${ECHO_T}$do64bitVIS" >&6; } # Force 64bit on with VIS if test "$do64bitVIS" = "yes"; then do64bit=yes fi # Step 0.c: Check if visibility support is available. Do this here so # that platform specific alternatives can be used below if this fails. { echo "$as_me:$LINENO: checking if compiler supports visibility \"hidden\"" >&5 echo $ECHO_N "checking if compiler supports visibility \"hidden\"... $ECHO_C" >&6; } if test "${tcl_cv_cc_visibility_hidden+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -Werror" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern __attribute__((__visibility__("hidden"))) void f(void); void f(void) {} int main () { f(); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tcl_cv_cc_visibility_hidden=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_cc_visibility_hidden=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi { echo "$as_me:$LINENO: result: $tcl_cv_cc_visibility_hidden" >&5 echo "${ECHO_T}$tcl_cv_cc_visibility_hidden" >&6; } if test $tcl_cv_cc_visibility_hidden = yes; then cat >>confdefs.h <<\_ACEOF #define MODULE_SCOPE extern __attribute__((__visibility__("hidden"))) _ACEOF fi # Step 0.d: Disable -rpath support? { echo "$as_me:$LINENO: checking if rpath support is requested" >&5 echo $ECHO_N "checking if rpath support is requested... $ECHO_C" >&6; } # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then enableval=$enable_rpath; doRpath=$enableval else doRpath=yes fi { echo "$as_me:$LINENO: result: $doRpath" >&5 echo "${ECHO_T}$doRpath" >&6; } # TEA specific: Cross-compiling options for Windows/CE builds? if test "${TEA_PLATFORM}" = windows; then { echo "$as_me:$LINENO: checking if Windows/CE build is requested" >&5 echo $ECHO_N "checking if Windows/CE build is requested... $ECHO_C" >&6; } # Check whether --enable-wince was given. if test "${enable_wince+set}" = set; then enableval=$enable_wince; doWince=$enableval else doWince=no fi { echo "$as_me:$LINENO: result: $doWince" >&5 echo "${ECHO_T}$doWince" >&6; } fi # Set the variable "system" to hold the name and version number # for the system. { echo "$as_me:$LINENO: checking system version" >&5 echo $ECHO_N "checking system version... $ECHO_C" >&6; } if test "${tcl_cv_sys_version+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # TEA specific: if test "${TEA_PLATFORM}" = "windows" ; then tcl_cv_sys_version=windows else tcl_cv_sys_version=`uname -s`-`uname -r` if test "$?" -ne 0 ; then { echo "$as_me:$LINENO: WARNING: can't find uname command" >&5 echo "$as_me: WARNING: can't find uname command" >&2;} tcl_cv_sys_version=unknown else if test "`uname -s`" = "AIX" ; then tcl_cv_sys_version=AIX-`uname -v`.`uname -r` fi fi fi fi { echo "$as_me:$LINENO: result: $tcl_cv_sys_version" >&5 echo "${ECHO_T}$tcl_cv_sys_version" >&6; } system=$tcl_cv_sys_version # Require ranlib early so we can override it in special cases below. # Set configuration options based on system name and version. # This is similar to Tcl's unix/tcl.m4 except that we've added a # "windows" case and removed some core-only vars. do64bit_ok=no # default to '{$LIBS}' and set to "" on per-platform necessary basis SHLIB_LD_LIBS='${LIBS}' # When ld needs options to work in 64-bit mode, put them in # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load] # is disabled by the user. [Bug 1016796] LDFLAGS_ARCH="" UNSHARED_LIB_SUFFIX="" # TEA specific: use PACKAGE_VERSION instead of VERSION TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`' ECHO_VERSION='`echo ${PACKAGE_VERSION}`' TCL_LIB_VERSIONS_OK=ok CFLAGS_DEBUG=-g CFLAGS_OPTIMIZE=-O if test "$GCC" = yes; then # TEA specific: CFLAGS_OPTIMIZE=-O2 CFLAGS_WARNING="-Wall" else CFLAGS_WARNING="" fi # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi STLIB_LD='${AR} cr' LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" if test "x$SHLIB_VERSION" = x; then SHLIB_VERSION="1.0" fi case $system in # TEA specific: windows) # This is a 2-stage check to make sure we have the 64-bit SDK # We have to know where the SDK is installed. # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs # MACHINE is IX86 for LINK, but this is used by the manifest, # which requires x86|amd64|ia64. MACHINE="X86" if test "$do64bit" != "no" ; then if test "x${MSSDK}x" = "xx" ; then MSSDK="C:/Progra~1/Microsoft Platform SDK" fi MSSDK=`echo "$MSSDK" | sed -e 's!\\\!/!g'` PATH64="" case "$do64bit" in amd64|x64|yes) MACHINE="AMD64" ; # default to AMD64 64-bit build PATH64="${MSSDK}/Bin/Win64/x86/AMD64" ;; ia64) MACHINE="IA64" PATH64="${MSSDK}/Bin/Win64" ;; esac if test ! -d "${PATH64}" ; then { echo "$as_me:$LINENO: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5 echo "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;} { echo "$as_me:$LINENO: WARNING: Ensure latest Platform SDK is installed" >&5 echo "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;} do64bit="no" else { echo "$as_me:$LINENO: result: Using 64-bit $MACHINE mode" >&5 echo "${ECHO_T} Using 64-bit $MACHINE mode" >&6; } do64bit_ok="yes" fi fi if test "$doWince" != "no" ; then if test "$do64bit" != "no" ; then { { echo "$as_me:$LINENO: error: Windows/CE and 64-bit builds incompatible" >&5 echo "$as_me: error: Windows/CE and 64-bit builds incompatible" >&2;} { (exit 1); exit 1; }; } fi if test "$GCC" = "yes" ; then { { echo "$as_me:$LINENO: error: Windows/CE and GCC builds incompatible" >&5 echo "$as_me: error: Windows/CE and GCC builds incompatible" >&2;} { (exit 1); exit 1; }; } fi # First, look for one uninstalled. # the alternative search directory is invoked by --with-celib if test x"${no_celib}" = x ; then # we reset no_celib in case something fails here no_celib=true # Check whether --with-celib was given. if test "${with_celib+set}" = set; then withval=$with_celib; with_celibconfig=${withval} fi { echo "$as_me:$LINENO: checking for Windows/CE celib directory" >&5 echo $ECHO_N "checking for Windows/CE celib directory... $ECHO_C" >&6; } if test "${ac_cv_c_celibconfig+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # First check to see if --with-celibconfig was specified. if test x"${with_celibconfig}" != x ; then if test -d "${with_celibconfig}/inc" ; then ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)` else { { echo "$as_me:$LINENO: error: ${with_celibconfig} directory doesn't contain inc directory" >&5 echo "$as_me: error: ${with_celibconfig} directory doesn't contain inc directory" >&2;} { (exit 1); exit 1; }; } fi fi # then check for a celib library if test x"${ac_cv_c_celibconfig}" = x ; then for i in \ ../celib-palm-3.0 \ ../celib \ ../../celib-palm-3.0 \ ../../celib \ `ls -dr ../celib-*3.[0-9]* 2>/dev/null` \ ${srcdir}/../celib-palm-3.0 \ ${srcdir}/../celib \ `ls -dr ${srcdir}/../celib-*3.[0-9]* 2>/dev/null` \ ; do if test -d "$i/inc" ; then ac_cv_c_celibconfig=`(cd $i; pwd)` break fi done fi fi if test x"${ac_cv_c_celibconfig}" = x ; then { { echo "$as_me:$LINENO: error: Cannot find celib support library directory" >&5 echo "$as_me: error: Cannot find celib support library directory" >&2;} { (exit 1); exit 1; }; } else no_celib= CELIB_DIR=${ac_cv_c_celibconfig} CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'` { echo "$as_me:$LINENO: result: found $CELIB_DIR" >&5 echo "${ECHO_T}found $CELIB_DIR" >&6; } fi fi # Set defaults for common evc4/PPC2003 setup # Currently Tcl requires 300+, possibly 420+ for sockets CEVERSION=420; # could be 211 300 301 400 420 ... TARGETCPU=ARMV4; # could be ARMV4 ARM MIPS SH3 X86 ... ARCH=ARM; # could be ARM MIPS X86EM ... PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002" if test "$doWince" != "yes"; then # If !yes then the user specified something # Reset ARCH to allow user to skip specifying it ARCH= eval `echo $doWince | awk -F, '{ \ if (length($1)) { printf "CEVERSION=\"%s\"\n", $1; \ if ($1 < 400) { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \ if (length($2)) { printf "TARGETCPU=\"%s\"\n", toupper($2) }; \ if (length($3)) { printf "ARCH=\"%s\"\n", toupper($3) }; \ if (length($4)) { printf "PLATFORM=\"%s\"\n", $4 }; \ }'` if test "x${ARCH}" = "x" ; then ARCH=$TARGETCPU; fi fi OSVERSION=WCE$CEVERSION; if test "x${WCEROOT}" = "x" ; then WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0" if test ! -d "${WCEROOT}" ; then WCEROOT="C:/Program Files/Microsoft eMbedded Tools" fi fi if test "x${SDKROOT}" = "x" ; then SDKROOT="C:/Program Files/Windows CE Tools" if test ! -d "${SDKROOT}" ; then SDKROOT="C:/Windows CE Tools" fi fi WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'` SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'` if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \ -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then { { echo "$as_me:$LINENO: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&5 echo "$as_me: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&2;} { (exit 1); exit 1; }; } doWince="no" else # We could PATH_NOSPACE these, but that's not important, # as long as we quote them when used. CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include" if test -d "${CEINCLUDE}/${TARGETCPU}" ; then CEINCLUDE="${CEINCLUDE}/${TARGETCPU}" fi CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" fi fi if test "$GCC" != "yes" ; then if test "${SHARED_BUILD}" = "0" ; then runtime=-MT else runtime=-MD fi if test "$do64bit" != "no" ; then # All this magic is necessary for the Win64 SDK RC1 - hobbs CC="\"${PATH64}/cl.exe\"" CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\"" RC="\"${MSSDK}/bin/rc.exe\"" lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\"" LINKBIN="\"${PATH64}/link.exe\"" CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d" CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" # Avoid 'unresolved external symbol __security_cookie' # errors, c.f. http://support.microsoft.com/?id=894573 vars="bufferoverflowU.lib" for i in $vars; do if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then # Convert foo.lib to -lfoo for GCC. No-op if not *.lib i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'` fi PKG_LIBS="$PKG_LIBS $i" done elif test "$doWince" != "no" ; then CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin" if test "${TARGETCPU}" = "X86"; then CC="\"${CEBINROOT}/cl.exe\"" else CC="\"${CEBINROOT}/cl${ARCH}.exe\"" fi CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\"" RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\"" arch=`echo ${ARCH} | awk '{print tolower($0)}'` defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS" if test "${SHARED_BUILD}" = "1" ; then # Static CE builds require static celib as well defs="${defs} _DLL" fi for i in $defs ; do cat >>confdefs.h <<_ACEOF #define $i 1 _ACEOF done cat >>confdefs.h <<_ACEOF #define _WIN32_WCE $CEVERSION _ACEOF cat >>confdefs.h <<_ACEOF #define UNDER_CE $CEVERSION _ACEOF CFLAGS_DEBUG="-nologo -Zi -Od" CFLAGS_OPTIMIZE="-nologo -Ox" lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'` lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo" LINKBIN="\"${CEBINROOT}/link.exe\"" else RC="rc" lflags="-nologo" LINKBIN="link" CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d" CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}" fi fi if test "$GCC" = "yes"; then # mingw gcc mode RC="windres" CFLAGS_DEBUG="-g" CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" SHLIB_LD="$CC -shared" UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}" LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}" else SHLIB_LD="${LINKBIN} -dll ${lflags}" # link -lib only works when -lib is the first arg STLIB_LD="${LINKBIN} -lib ${lflags}" UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib' PATHTYPE=-w # For information on what debugtype is most useful, see: # http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp # and also # http://msdn2.microsoft.com/en-us/library/y0zzbyt4%28VS.80%29.aspx # This essentially turns it all on. LDFLAGS_DEBUG="-debug -debugtype:cv" LDFLAGS_OPTIMIZE="-release" if test "$doWince" != "no" ; then LDFLAGS_CONSOLE="-link ${lflags}" LDFLAGS_WINDOW=${LDFLAGS_CONSOLE} else LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}" LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}" fi fi SHLIB_SUFFIX=".dll" SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll' TCL_LIB_VERSIONS_OK=nodots ;; AIX-*) if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes"; then # AIX requires the _r compiler when gcc isn't being used case "${CC}" in *_r|*_r\ *) # ok ... ;; *) # Make sure only first arg gets _r CC=`echo "$CC" | sed -e 's/^\([^ ]*\)/\1_r/'` ;; esac { echo "$as_me:$LINENO: result: Using $CC for compiling with threads" >&5 echo "${ECHO_T}Using $CC for compiling with threads" >&6; } fi LIBS="$LIBS -lc" SHLIB_CFLAGS="" SHLIB_SUFFIX=".so" LD_LIBRARY_PATH_VAR="LIBPATH" # Check to enable 64-bit flags for compiler/linker if test "$do64bit" = yes; then if test "$GCC" = yes; then { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5 echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} else do64bit_ok=yes CFLAGS="$CFLAGS -q64" LDFLAGS_ARCH="-q64" RANLIB="${RANLIB} -X64" AR="${AR} -X64" SHLIB_LD_FLAGS="-b64" fi fi if test "`uname -m`" = ia64; then # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC SHLIB_LD="/usr/ccs/bin/ld -G -z text" if test "$GCC" = yes; then CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' else CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' else if test "$GCC" = yes; then SHLIB_LD='${CC} -shared -Wl,-bexpall' else SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bexpall -H512 -T512 -bnoentry" LDFLAGS="$LDFLAGS -brtl" fi SHLIB_LD="${SHLIB_LD} ${SHLIB_LD_FLAGS}" CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} fi ;; BeOS*) SHLIB_CFLAGS="-fPIC" SHLIB_LD='${CC} -nostart' SHLIB_SUFFIX=".so" #----------------------------------------------------------- # Check for inet_ntoa in -lbind, for BeOS (which also needs # -lsocket, even if the network functions are in -lnet which # is always linked to, for compatibility. #----------------------------------------------------------- { echo "$as_me:$LINENO: checking for inet_ntoa in -lbind" >&5 echo $ECHO_N "checking for inet_ntoa in -lbind... $ECHO_C" >&6; } if test "${ac_cv_lib_bind_inet_ntoa+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbind $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inet_ntoa (); int main () { return inet_ntoa (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_bind_inet_ntoa=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_bind_inet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_bind_inet_ntoa" >&5 echo "${ECHO_T}$ac_cv_lib_bind_inet_ntoa" >&6; } if test $ac_cv_lib_bind_inet_ntoa = yes; then LIBS="$LIBS -lbind -lsocket" fi ;; BSD/OS-4.*) SHLIB_CFLAGS="-export-dynamic -fPIC" SHLIB_LD='${CC} -shared' SHLIB_SUFFIX=".so" LDFLAGS="$LDFLAGS -export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; CYGWIN_*) SHLIB_CFLAGS="" SHLIB_LD='${CC} -shared' SHLIB_SUFFIX=".dll" EXE_SUFFIX=".exe" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; Haiku*) LDFLAGS="$LDFLAGS -Wl,--export-dynamic" SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' { echo "$as_me:$LINENO: checking for inet_ntoa in -lnetwork" >&5 echo $ECHO_N "checking for inet_ntoa in -lnetwork... $ECHO_C" >&6; } if test "${ac_cv_lib_network_inet_ntoa+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnetwork $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inet_ntoa (); int main () { return inet_ntoa (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_network_inet_ntoa=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_network_inet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_network_inet_ntoa" >&5 echo "${ECHO_T}$ac_cv_lib_network_inet_ntoa" >&6; } if test $ac_cv_lib_network_inet_ntoa = yes; then LIBS="$LIBS -lnetwork" fi ;; HP-UX-*.11.*) # Use updated header definitions where possible cat >>confdefs.h <<\_ACEOF #define _XOPEN_SOURCE_EXTENDED 1 _ACEOF # TEA specific: Needed by Tcl, but not most extensions #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?]) #LIBS="$LIBS -lxnet" # Use the XOPEN network library if test "`uname -m`" = ia64; then SHLIB_SUFFIX=".so" # Use newer C++ library for C++ extensions #if test "$GCC" != "yes" ; then # CPPFLAGS="-AA" #fi else SHLIB_SUFFIX=".sl" fi { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } if test $ac_cv_lib_dld_shl_load = yes; then tcl_ok=yes else tcl_ok=no fi if test "$tcl_ok" = yes; then LDFLAGS="$LDFLAGS -E" CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' LD_LIBRARY_PATH_VAR="SHLIB_PATH" fi if test "$GCC" = yes; then SHLIB_LD='${CC} -shared' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} else CFLAGS="$CFLAGS -z" # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc #CFLAGS="$CFLAGS +DAportable" SHLIB_CFLAGS="+z" SHLIB_LD="ld -b" fi # Check to enable 64-bit flags for compiler/linker if test "$do64bit" = "yes"; then if test "$GCC" = yes; then case `${CC} -dumpmachine` in hppa64*) # 64-bit gcc in use. Fix flags for GNU ld. do64bit_ok=yes SHLIB_LD='${CC} -shared' if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} ;; *) { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5 echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;} ;; esac else do64bit_ok=yes CFLAGS="$CFLAGS +DD64" LDFLAGS_ARCH="+DD64" fi fi ;; IRIX-6.*) SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_SUFFIX=".so" if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' fi if test "$GCC" = yes; then CFLAGS="$CFLAGS -mabi=n32" LDFLAGS="$LDFLAGS -mabi=n32" else case $system in IRIX-6.3) # Use to build 6.2 compatible binaries on 6.3. CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS" ;; *) CFLAGS="$CFLAGS -n32" ;; esac LDFLAGS="$LDFLAGS -n32" fi ;; IRIX64-6.*) SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_SUFFIX=".so" if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' fi # Check to enable 64-bit flags for compiler/linker if test "$do64bit" = yes; then if test "$GCC" = yes; then { echo "$as_me:$LINENO: WARNING: 64bit mode not supported by gcc" >&5 echo "$as_me: WARNING: 64bit mode not supported by gcc" >&2;} else do64bit_ok=yes SHLIB_LD="ld -64 -shared -rdata_shared" CFLAGS="$CFLAGS -64" LDFLAGS_ARCH="-64" fi fi ;; Linux*) SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" # TEA specific: CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS_DEFAULT}' LDFLAGS="$LDFLAGS -Wl,--export-dynamic" if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} if test "`uname -m`" = "alpha"; then CFLAGS="$CFLAGS -mieee" fi if test $do64bit = yes; then { echo "$as_me:$LINENO: checking if compiler accepts -m64 flag" >&5 echo $ECHO_N "checking if compiler accepts -m64 flag... $ECHO_C" >&6; } if test "${tcl_cv_cc_m64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else hold_cflags=$CFLAGS CFLAGS="$CFLAGS -m64" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tcl_cv_cc_m64=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_cc_m64=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi { echo "$as_me:$LINENO: result: $tcl_cv_cc_m64" >&5 echo "${ECHO_T}$tcl_cv_cc_m64" >&6; } if test $tcl_cv_cc_m64 = yes; then CFLAGS="$CFLAGS -m64" do64bit_ok=yes fi fi # The combo of gcc + glibc has a bug related to inlining of # functions like strtod(). The -fno-builtin flag should address # this problem but it does not work. The -fno-inline flag is kind # of overkill but it works. Disable inlining only when one of the # files in compat/*.c is being linked in. if test x"${USE_COMPAT}" != x; then CFLAGS="$CFLAGS -fno-inline" fi ;; GNU*) SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" SHLIB_LD='${CC} -shared' LDFLAGS="$LDFLAGS -Wl,--export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" if test "`uname -m`" = "alpha"; then CFLAGS="$CFLAGS -mieee" fi ;; Lynx*) SHLIB_CFLAGS="-fPIC" SHLIB_SUFFIX=".so" CFLAGS_OPTIMIZE=-02 SHLIB_LD='${CC} -shared' LD_FLAGS="-Wl,--export-dynamic" if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi ;; OpenBSD-*) SHLIB_CFLAGS="-fPIC" SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}' SHLIB_SUFFIX=".so" if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}' { echo "$as_me:$LINENO: checking for ELF" >&5 echo $ECHO_N "checking for ELF... $ECHO_C" >&6; } if test "${tcl_cv_ld_elf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __ELF__ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then tcl_cv_ld_elf=yes else tcl_cv_ld_elf=no fi rm -f conftest* fi { echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5 echo "${ECHO_T}$tcl_cv_ld_elf" >&6; } if test $tcl_cv_ld_elf = yes; then LDFLAGS=-Wl,-export-dynamic else LDFLAGS="" fi if test "${TCL_THREADS}" = "1"; then # OpenBSD builds and links with -pthread, never -lpthread. LIBS=`echo $LIBS | sed s/-lpthread//` CFLAGS="$CFLAGS -pthread" #SHLIB_CFLAGS="$SHLIB_CFLAGS -pthread" fi # OpenBSD doesn't do version numbers with dots. UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' TCL_LIB_VERSIONS_OK=nodots ;; NetBSD-*|FreeBSD-[3-4].*) # FreeBSD 3.* and greater have ELF. # NetBSD 2.* has ELF and can use 'cc -shared' to build shared libs SHLIB_CFLAGS="-fPIC" SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}' SHLIB_SUFFIX=".so" LDFLAGS="$LDFLAGS -export-dynamic" if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} if test "${TCL_THREADS}" = "1"; then # The -pthread needs to go in the CFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" fi case $system in FreeBSD-3.*) # FreeBSD-3 doesn't handle version numbers with dots. UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so' TCL_LIB_VERSIONS_OK=nodots ;; esac ;; FreeBSD-*) # This configuration from FreeBSD Ports. SHLIB_CFLAGS="-fPIC" SHLIB_LD="${CC} -shared" TCL_SHLIB_LD_EXTRAS="-soname \$@" SHLIB_SUFFIX=".so" LDFLAGS="" if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' fi if test "${TCL_THREADS}" = "1"; then # The -pthread needs to go in the LDFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` CFLAGS="$CFLAGS $PTHREAD_CFLAGS" LDFLAGS="$LDFLAGS $PTHREAD_LIBS" fi # Version numbers are dot-stripped by system policy. TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .` UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1' TCL_LIB_VERSIONS_OK=nodots ;; Darwin-*) CFLAGS_OPTIMIZE="-Os" SHLIB_CFLAGS="-fno-common" # To avoid discrepancies between what headers configure sees during # preprocessing tests and compiling tests, move any -isysroot and # -mmacosx-version-min flags from CFLAGS to CPPFLAGS: CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \ awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ if ($i~/^(isysroot|mmacosx-version-min)/) print "-"$i}'`" CFLAGS="`echo " ${CFLAGS}" | \ awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ if (!($i~/^(isysroot|mmacosx-version-min)/)) print "-"$i}'`" if test $do64bit = yes; then case `arch` in ppc) { echo "$as_me:$LINENO: checking if compiler accepts -arch ppc64 flag" >&5 echo $ECHO_N "checking if compiler accepts -arch ppc64 flag... $ECHO_C" >&6; } if test "${tcl_cv_cc_arch_ppc64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else hold_cflags=$CFLAGS CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tcl_cv_cc_arch_ppc64=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_cc_arch_ppc64=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi { echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_ppc64" >&5 echo "${ECHO_T}$tcl_cv_cc_arch_ppc64" >&6; } if test $tcl_cv_cc_arch_ppc64 = yes; then CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" do64bit_ok=yes fi ;; i386) { echo "$as_me:$LINENO: checking if compiler accepts -arch x86_64 flag" >&5 echo $ECHO_N "checking if compiler accepts -arch x86_64 flag... $ECHO_C" >&6; } if test "${tcl_cv_cc_arch_x86_64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else hold_cflags=$CFLAGS CFLAGS="$CFLAGS -arch x86_64" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tcl_cv_cc_arch_x86_64=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_cc_arch_x86_64=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi { echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_x86_64" >&5 echo "${ECHO_T}$tcl_cv_cc_arch_x86_64" >&6; } if test $tcl_cv_cc_arch_x86_64 = yes; then CFLAGS="$CFLAGS -arch x86_64" do64bit_ok=yes fi ;; *) { echo "$as_me:$LINENO: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5 echo "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;};; esac else # Check for combined 32-bit and 64-bit fat build if echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64) ' \ && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '; then fat_32_64=yes fi fi # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}' { echo "$as_me:$LINENO: checking if ld accepts -single_module flag" >&5 echo $ECHO_N "checking if ld accepts -single_module flag... $ECHO_C" >&6; } if test "${tcl_cv_ld_single_module+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tcl_cv_ld_single_module=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_ld_single_module=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$hold_ldflags fi { echo "$as_me:$LINENO: result: $tcl_cv_ld_single_module" >&5 echo "${ECHO_T}$tcl_cv_ld_single_module" >&6; } if test $tcl_cv_ld_single_module = yes; then SHLIB_LD="${SHLIB_LD} -Wl,-single_module" fi # TEA specific: link shlib with current and compatiblity version flags vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([0-9]\{1,5\}\)\(\(\.[0-9]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d` SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}" SHLIB_SUFFIX=".dylib" # Don't use -prebind when building for Mac OS X 10.4 or later only: if test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int($2)}'`" -lt 4 -a \ "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4; then LDFLAGS="$LDFLAGS -prebind" fi LDFLAGS="$LDFLAGS -headerpad_max_install_names" { echo "$as_me:$LINENO: checking if ld accepts -search_paths_first flag" >&5 echo $ECHO_N "checking if ld accepts -search_paths_first flag... $ECHO_C" >&6; } if test "${tcl_cv_ld_search_paths_first+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else hold_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-search_paths_first" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tcl_cv_ld_search_paths_first=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_ld_search_paths_first=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$hold_ldflags fi { echo "$as_me:$LINENO: result: $tcl_cv_ld_search_paths_first" >&5 echo "${ECHO_T}$tcl_cv_ld_search_paths_first" >&6; } if test $tcl_cv_ld_search_paths_first = yes; then LDFLAGS="$LDFLAGS -Wl,-search_paths_first" fi if test "$tcl_cv_cc_visibility_hidden" != yes; then cat >>confdefs.h <<\_ACEOF #define MODULE_SCOPE __private_extern__ _ACEOF tcl_cv_cc_visibility_hidden=yes fi CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" # TEA specific: for combined 32 & 64 bit fat builds of Tk # extensions, verify that 64-bit build is possible. if test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}"; then if test "${TEA_WINDOWINGSYSTEM}" = x11; then { echo "$as_me:$LINENO: checking for 64-bit X11" >&5 echo $ECHO_N "checking for 64-bit X11... $ECHO_C" >&6; } if test "${tcl_cv_lib_x11_64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else for v in CFLAGS CPPFLAGS LDFLAGS; do eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' done CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include" LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { XrmInitialize(); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tcl_cv_lib_x11_64=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_lib_x11_64=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="$hold_'$v'"' done fi { echo "$as_me:$LINENO: result: $tcl_cv_lib_x11_64" >&5 echo "${ECHO_T}$tcl_cv_lib_x11_64" >&6; } fi if test "${TEA_WINDOWINGSYSTEM}" = aqua; then { echo "$as_me:$LINENO: checking for 64-bit Tk" >&5 echo $ECHO_N "checking for 64-bit Tk... $ECHO_C" >&6; } if test "${tcl_cv_lib_tk_64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else for v in CFLAGS CPPFLAGS LDFLAGS; do eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' done CPPFLAGS="$CPPFLAGS -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 ${TCL_INCLUDES} ${TK_INCLUDES}" LDFLAGS="$LDFLAGS ${TCL_STUB_LIB_SPEC} ${TK_STUB_LIB_SPEC}" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { Tk_InitStubs(NULL, "", 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then tcl_cv_lib_tk_64=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_lib_tk_64=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="$hold_'$v'"' done fi { echo "$as_me:$LINENO: result: $tcl_cv_lib_tk_64" >&5 echo "${ECHO_T}$tcl_cv_lib_tk_64" >&6; } fi # remove 64-bit arch flags from CFLAGS et al. if configuration # does not support 64-bit. if test "$tcl_cv_lib_tk_64" = no -o "$tcl_cv_lib_x11_64" = no; then { echo "$as_me:$LINENO: Removing 64-bit architectures from compiler & linker flags" >&5 echo "$as_me: Removing 64-bit architectures from compiler & linker flags" >&6;} for v in CFLAGS CPPFLAGS LDFLAGS; do eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' done fi fi ;; OS/390-*) CFLAGS_OPTIMIZE="" # Optimizer is buggy cat >>confdefs.h <<\_ACEOF #define _OE_SOCKETS 1 _ACEOF ;; OSF1-V*) # Digital OSF/1 SHLIB_CFLAGS="" if test "$SHARED_BUILD" = 1; then SHLIB_LD='ld -shared -expect_unresolved "*"' else SHLIB_LD='ld -non_shared -expect_unresolved "*"' fi SHLIB_SUFFIX=".so" if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' fi if test "$GCC" = yes; then CFLAGS="$CFLAGS -mieee" else CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee" fi # see pthread_intro(3) for pthread support on osf1, k.furukawa if test "${TCL_THREADS}" = 1; then CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" LIBS=`echo $LIBS | sed s/-lpthreads//` if test "$GCC" = yes; then LIBS="$LIBS -lpthread -lmach -lexc" else CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" fi fi ;; QNX-6*) # QNX RTP # This may work for all QNX, but it was only reported for v6. SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; SCO_SV-3.2*) if test "$GCC" = yes; then SHLIB_CFLAGS="-fPIC -melf" LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" else SHLIB_CFLAGS="-Kpic -belf" LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" fi SHLIB_LD="ld -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; SunOS-5.[0-6]) # Careful to not let 5.10+ fall into this case # Note: If _REENTRANT isn't defined, then Solaris # won't define thread-safe library routines. cat >>confdefs.h <<\_ACEOF #define _REENTRANT 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define _POSIX_PTHREAD_SEMANTICS 1 _ACEOF SHLIB_CFLAGS="-KPIC" SHLIB_SUFFIX=".so" if test "$GCC" = yes; then SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} else SHLIB_LD="/usr/ccs/bin/ld -G -z text" CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} fi ;; SunOS-5*) # Note: If _REENTRANT isn't defined, then Solaris # won't define thread-safe library routines. cat >>confdefs.h <<\_ACEOF #define _REENTRANT 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define _POSIX_PTHREAD_SEMANTICS 1 _ACEOF SHLIB_CFLAGS="-KPIC" # Check to enable 64-bit flags for compiler/linker if test "$do64bit" = yes; then arch=`isainfo` if test "$arch" = "sparcv9 sparc"; then if test "$GCC" = yes; then if test "`${CC} -dumpversion | awk -F. '{print $1}'`" -lt 3; then { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5 echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;} else do64bit_ok=yes CFLAGS="$CFLAGS -m64 -mcpu=v9" LDFLAGS="$LDFLAGS -m64 -mcpu=v9" SHLIB_CFLAGS="-fPIC" fi else do64bit_ok=yes if test "$do64bitVIS" = yes; then CFLAGS="$CFLAGS -xarch=v9a" LDFLAGS_ARCH="-xarch=v9a" else CFLAGS="$CFLAGS -xarch=v9" LDFLAGS_ARCH="-xarch=v9" fi # Solaris 64 uses this as well #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64" fi else if test "$arch" = "amd64 i386"; then if test "$GCC" = yes; then case $system in SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*) do64bit_ok=yes CFLAGS="$CFLAGS -m64" LDFLAGS="$LDFLAGS -m64";; *) { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5 echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;};; esac else do64bit_ok=yes case $system in SunOS-5.1[1-9]*|SunOS-5.[2-9][0-9]*) CFLAGS="$CFLAGS -m64" LDFLAGS="$LDFLAGS -m64";; *) CFLAGS="$CFLAGS -xarch=amd64" LDFLAGS="$LDFLAGS -xarch=amd64";; esac fi else { echo "$as_me:$LINENO: WARNING: 64bit mode not supported for $arch" >&5 echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;} fi fi fi SHLIB_SUFFIX=".so" if test "$GCC" = yes; then SHLIB_LD='${CC} -shared' CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} if test "$do64bit_ok" = yes; then if test "$arch" = "sparcv9 sparc"; then # We need to specify -static-libgcc or we need to # add the path to the sparv9 libgcc. # JH: static-libgcc is necessary for core Tcl, but may # not be necessary for extensions. SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc" # for finding sparcv9 libgcc, get the regular libgcc # path, remove so name and append 'sparcv9' #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" else if test "$arch" = "amd64 i386"; then # JH: static-libgcc is necessary for core Tcl, but may # not be necessary for extensions. SHLIB_LD="$SHLIB_LD -m64 -static-libgcc" fi fi fi else case $system in SunOS-5.[1-9][0-9]*) # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS SHLIB_LD='${CC} -G -z text ${LDFLAGS_DEFAULT}';; *) SHLIB_LD='/usr/ccs/bin/ld -G -z text';; esac CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' fi ;; esac if test "$do64bit" = yes -a "$do64bit_ok" = no; then { echo "$as_me:$LINENO: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5 echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;} fi # Add in the arch flags late to ensure it wasn't removed. # Not necessary in TEA, but this is aligned with core LDFLAGS="$LDFLAGS $LDFLAGS_ARCH" # If we're running gcc, then change the C flags for compiling shared # libraries to the right flags for gcc, instead of those for the # standard manufacturer compiler. if test "$GCC" = yes; then case $system in AIX-*) ;; BSD/OS*) ;; CYGWIN_*) ;; IRIX*) ;; NetBSD-*|FreeBSD-*|OpenBSD-*) ;; Darwin-*) ;; SCO_SV-3.2*) ;; windows) ;; *) SHLIB_CFLAGS="-fPIC" ;; esac fi if test "$tcl_cv_cc_visibility_hidden" != yes; then cat >>confdefs.h <<\_ACEOF #define MODULE_SCOPE extern _ACEOF cat >>confdefs.h <<\_ACEOF #define NO_VIZ _ACEOF fi if test "$SHARED_LIB_SUFFIX" = ""; then # TEA specific: use PACKAGE_VERSION instead of VERSION SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}' fi if test "$UNSHARED_LIB_SUFFIX" = ""; then # TEA specific: use PACKAGE_VERSION instead of VERSION UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a' fi # These must be called after we do the basic CFLAGS checks and # verify any possible 64-bit or similar switches are necessary { echo "$as_me:$LINENO: checking for required early compiler flags" >&5 echo $ECHO_N "checking for required early compiler flags... $ECHO_C" >&6; } tcl_flags="" if test "${tcl_cv_flag__isoc99_source+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { char *p = (char *)strtoll; char *q = (char *)strtoull; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_flag__isoc99_source=no else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _ISOC99_SOURCE 1 #include int main () { char *p = (char *)strtoll; char *q = (char *)strtoull; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_flag__isoc99_source=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_flag__isoc99_source=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x${tcl_cv_flag__isoc99_source}" = "xyes" ; then cat >>confdefs.h <<\_ACEOF #define _ISOC99_SOURCE 1 _ACEOF tcl_flags="$tcl_flags _ISOC99_SOURCE" fi if test "${tcl_cv_flag__largefile64_source+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { struct stat64 buf; int i = stat64("/", &buf); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_flag__largefile64_source=no else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _LARGEFILE64_SOURCE 1 #include int main () { struct stat64 buf; int i = stat64("/", &buf); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_flag__largefile64_source=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_flag__largefile64_source=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x${tcl_cv_flag__largefile64_source}" = "xyes" ; then cat >>confdefs.h <<\_ACEOF #define _LARGEFILE64_SOURCE 1 _ACEOF tcl_flags="$tcl_flags _LARGEFILE64_SOURCE" fi if test "${tcl_cv_flag__largefile_source64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { char *p = (char *)open64; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_flag__largefile_source64=no else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _LARGEFILE_SOURCE64 1 #include int main () { char *p = (char *)open64; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_flag__largefile_source64=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_flag__largefile_source64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then cat >>confdefs.h <<\_ACEOF #define _LARGEFILE_SOURCE64 1 _ACEOF tcl_flags="$tcl_flags _LARGEFILE_SOURCE64" fi if test "x${tcl_flags}" = "x" ; then { echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6; } else { echo "$as_me:$LINENO: result: ${tcl_flags}" >&5 echo "${ECHO_T}${tcl_flags}" >&6; } fi { echo "$as_me:$LINENO: checking for 64-bit integer type" >&5 echo $ECHO_N "checking for 64-bit integer type... $ECHO_C" >&6; } if test "${tcl_cv_type_64bit+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else tcl_cv_type_64bit=none # See if the compiler knows natively about __int64 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { __int64 value = (__int64) 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_type_64bit=__int64 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_type_64bit="long long" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # See if we should use long anyway Note that we substitute in the # type that is our current guess for a 64-bit type inside this check # program, so it should be modified only carefully... cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { switch (0) { case 1: case (sizeof(${tcl_type_64bit})==sizeof(long)): ; } ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_type_64bit=${tcl_type_64bit} else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "${tcl_cv_type_64bit}" = none ; then cat >>confdefs.h <<\_ACEOF #define TCL_WIDE_INT_IS_LONG 1 _ACEOF { echo "$as_me:$LINENO: result: using long" >&5 echo "${ECHO_T}using long" >&6; } elif test "${tcl_cv_type_64bit}" = "__int64" \ -a "${TEA_PLATFORM}" = "windows" ; then # TEA specific: We actually want to use the default tcl.h checks in # this case to handle both TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER* { echo "$as_me:$LINENO: result: using Tcl header defaults" >&5 echo "${ECHO_T}using Tcl header defaults" >&6; } else cat >>confdefs.h <<_ACEOF #define TCL_WIDE_INT_TYPE ${tcl_cv_type_64bit} _ACEOF { echo "$as_me:$LINENO: result: ${tcl_cv_type_64bit}" >&5 echo "${ECHO_T}${tcl_cv_type_64bit}" >&6; } # Now check for auxiliary declarations { echo "$as_me:$LINENO: checking for struct dirent64" >&5 echo $ECHO_N "checking for struct dirent64... $ECHO_C" >&6; } if test "${tcl_cv_struct_dirent64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { struct dirent64 p; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_struct_dirent64=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_struct_dirent64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $tcl_cv_struct_dirent64" >&5 echo "${ECHO_T}$tcl_cv_struct_dirent64" >&6; } if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then cat >>confdefs.h <<\_ACEOF #define HAVE_STRUCT_DIRENT64 1 _ACEOF fi { echo "$as_me:$LINENO: checking for struct stat64" >&5 echo $ECHO_N "checking for struct stat64... $ECHO_C" >&6; } if test "${tcl_cv_struct_stat64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { struct stat64 p; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_struct_stat64=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_struct_stat64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $tcl_cv_struct_stat64" >&5 echo "${ECHO_T}$tcl_cv_struct_stat64" >&6; } if test "x${tcl_cv_struct_stat64}" = "xyes" ; then cat >>confdefs.h <<\_ACEOF #define HAVE_STRUCT_STAT64 1 _ACEOF fi for ac_func in open64 lseek64 do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for off64_t" >&5 echo $ECHO_N "checking for off64_t... $ECHO_C" >&6; } if test "${tcl_cv_type_off64_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { off64_t offset; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then tcl_cv_type_off64_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 tcl_cv_type_off64_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x${tcl_cv_type_off64_t}" = "xyes" && \ test "x${ac_cv_func_lseek64}" = "xyes" && \ test "x${ac_cv_func_open64}" = "xyes" ; then cat >>confdefs.h <<\_ACEOF #define HAVE_TYPE_OFF64_T 1 _ACEOF { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi # Needed for the chantest library. #-------------------------------------------------------------------- # Set the default compiler switches based on the --enable-symbols option. #-------------------------------------------------------------------- { echo "$as_me:$LINENO: checking for build with symbols" >&5 echo $ECHO_N "checking for build with symbols... $ECHO_C" >&6; } # Check whether --enable-symbols was given. if test "${enable_symbols+set}" = set; then enableval=$enable_symbols; tcl_ok=$enableval else tcl_ok=no fi DBGX="" if test "$tcl_ok" = "no"; then CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}" LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}" { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } else CFLAGS_DEFAULT="${CFLAGS_DEBUG}" LDFLAGS_DEFAULT="${LDFLAGS_DEBUG}" if test "$tcl_ok" = "yes"; then { echo "$as_me:$LINENO: result: yes (standard debugging)" >&5 echo "${ECHO_T}yes (standard debugging)" >&6; } fi fi # TEA specific: if test "${TEA_PLATFORM}" != "windows" ; then LDFLAGS_DEFAULT="${LDFLAGS}" fi if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then cat >>confdefs.h <<\_ACEOF #define TCL_MEM_DEBUG 1 _ACEOF fi if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then if test "$tcl_ok" = "all"; then { echo "$as_me:$LINENO: result: enabled symbols mem debugging" >&5 echo "${ECHO_T}enabled symbols mem debugging" >&6; } else { echo "$as_me:$LINENO: result: enabled $tcl_ok debugging" >&5 echo "${ECHO_T}enabled $tcl_ok debugging" >&6; } fi fi #-------------------------------------------------------------------- # Everyone should be linking against the Tcl stub library. If you # can't for some reason, remove this definition. If you aren't using # stubs, you also need to modify the SHLIB_LD_LIBS setting below to # link against the non-stubbed Tcl library. #-------------------------------------------------------------------- cat >>confdefs.h <<\_ACEOF #define USE_TCL_STUBS 1 _ACEOF #-------------------------------------------------------------------- # If ltoa is present, use it to convert integer values into strings. # If not, sprintf is used, which is slower and requires more code. #-------------------------------------------------------------------- for ac_func in ltoa do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done #-------------------------------------------------------------------- # This macro generates a line to use when building a library. It # depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS, # and TEA_LOAD_TCLCONFIG macros above. #-------------------------------------------------------------------- if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then MAKE_STATIC_LIB="\${STLIB_LD} -out:\$@ \$(PKG_OBJECTS)" MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\$@ \$(PKG_OBJECTS)" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if defined(_MSC_VER) && _MSC_VER >= 1400 print("manifest needed") #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "manifest needed" >/dev/null 2>&1; then # Could do a CHECK_PROG for mt, but should always be with MSVC8+ VC_MANIFEST_EMBED_DLL="if test -f \$@.manifest ; then mt.exe -nologo -manifest \$@.manifest -outputresource:\$@\;2 ; fi" VC_MANIFEST_EMBED_EXE="if test -f \$@.manifest ; then mt.exe -nologo -manifest \$@.manifest -outputresource:\$@\;1 ; fi" MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}" CLEANFILES="$CLEANFILES *.manifest" fi rm -f conftest* MAKE_STUB_LIB="\${STLIB_LD} -out:\$@ \$(PKG_STUB_OBJECTS)" else MAKE_STATIC_LIB="\${STLIB_LD} \$@ \$(PKG_OBJECTS)" MAKE_SHARED_LIB="\${SHLIB_LD} -o \$@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}" MAKE_STUB_LIB="\${STLIB_LD} \$@ \$(PKG_STUB_OBJECTS)" fi if test "${SHARED_BUILD}" = "1" ; then MAKE_LIB="${MAKE_SHARED_LIB} " else MAKE_LIB="${MAKE_STATIC_LIB} " fi #-------------------------------------------------------------------- # Shared libraries and static libraries have different names. # Use the double eval to make sure any variables in the suffix is # substituted. (@@@ Might not be necessary anymore) #-------------------------------------------------------------------- if test "${TEA_PLATFORM}" = "windows" ; then if test "${SHARED_BUILD}" = "1" ; then # We force the unresolved linking of symbols that are really in # the private libraries of Tcl and Tk. SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\"" if test x"${TK_BIN_DIR}" != x ; then SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\"" fi eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" else eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" fi # Some packages build their own stubs libraries eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" if test "$GCC" = "yes"; then PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE} fi # These aren't needed on Windows (either MSVC or gcc) RANLIB=: RANLIB_STUB=: else RANLIB_STUB="${RANLIB}" if test "${SHARED_BUILD}" = "1" ; then SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}" if test x"${TK_BIN_DIR}" != x ; then SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}" fi eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}" RANLIB=: else eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}" fi # Some packages build their own stubs libraries eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}" fi # These are escaped so that only CFLAGS is picked up at configure time. # The other values will be substituted at make time. CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}" if test "${SHARED_BUILD}" = "1" ; then CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}" fi #-------------------------------------------------------------------- # Find tclsh so that we can run pkg_mkIndex to generate the pkgIndex.tcl # file during the install process. Don't run the TCLSH_PROG through # ${CYGPATH} because it's being used directly by make. # Require that we use a tclsh shell version 8.2 or later since earlier # versions have bugs in the pkg_mkIndex routine. # Add WISH as well if this is a Tk extension. #-------------------------------------------------------------------- { echo "$as_me:$LINENO: checking for tclsh" >&5 echo $ECHO_N "checking for tclsh... $ECHO_C" >&6; } if test -f "${TCL_BIN_DIR}/Makefile" ; then # tclConfig.sh is in Tcl build directory if test "${TEA_PLATFORM}" = "windows"; then TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" else TCLSH_PROG="${TCL_BIN_DIR}/tclsh" fi else # tclConfig.sh is in install location if test "${TEA_PLATFORM}" = "windows"; then TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" else TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}" fi list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \ `ls -d ${TCL_BIN_DIR}/.. 2>/dev/null` \ `ls -d ${TCL_PREFIX}/bin 2>/dev/null`" for i in $list ; do if test -f "$i/${TCLSH_PROG}" ; then REAL_TCL_BIN_DIR="`cd "$i"; pwd`/" break fi done TCLSH_PROG="${REAL_TCL_BIN_DIR}${TCLSH_PROG}" fi { echo "$as_me:$LINENO: result: ${TCLSH_PROG}" >&5 echo "${ECHO_T}${TCLSH_PROG}" >&6; } #-------------------------------------------------------------------- # Finally, substitute all of the various values into the Makefile. # You may alternatively have a special pkgIndex.tcl.in or other files # which require substituting th AC variables in. Include these here. #-------------------------------------------------------------------- ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS="" : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by Memchan $as_me 2.3, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ Memchan config.status 2.3 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim CYGPATH!$CYGPATH$ac_delim EXEEXT!$EXEEXT$ac_delim PKG_LIB_FILE!$PKG_LIB_FILE$ac_delim PKG_STUB_LIB_FILE!$PKG_STUB_LIB_FILE$ac_delim PKG_STUB_SOURCES!$PKG_STUB_SOURCES$ac_delim PKG_STUB_OBJECTS!$PKG_STUB_OBJECTS$ac_delim PKG_TCL_SOURCES!$PKG_TCL_SOURCES$ac_delim PKG_HEADERS!$PKG_HEADERS$ac_delim PKG_INCLUDES!$PKG_INCLUDES$ac_delim PKG_LIBS!$PKG_LIBS$ac_delim PKG_CFLAGS!$PKG_CFLAGS$ac_delim TCL_VERSION!$TCL_VERSION$ac_delim TCL_PATCH_LEVEL!$TCL_PATCH_LEVEL$ac_delim TCL_BIN_DIR!$TCL_BIN_DIR$ac_delim TCL_SRC_DIR!$TCL_SRC_DIR$ac_delim TCL_LIB_FILE!$TCL_LIB_FILE$ac_delim TCL_LIB_FLAG!$TCL_LIB_FLAG$ac_delim TCL_LIB_SPEC!$TCL_LIB_SPEC$ac_delim TCL_STUB_LIB_FILE!$TCL_STUB_LIB_FILE$ac_delim TCL_STUB_LIB_FLAG!$TCL_STUB_LIB_FLAG$ac_delim TCL_STUB_LIB_SPEC!$TCL_STUB_LIB_SPEC$ac_delim CLEANFILES!$CLEANFILES$ac_delim TCL_LIBS!$TCL_LIBS$ac_delim TCL_DEFS!$TCL_DEFS$ac_delim TCL_EXTRA_CFLAGS!$TCL_EXTRA_CFLAGS$ac_delim TCL_LD_FLAGS!$TCL_LD_FLAGS$ac_delim TCL_SHLIB_LD_LIBS!$TCL_SHLIB_LD_LIBS$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim OBJEXT!$OBJEXT$ac_delim CPP!$CPP$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim SET_MAKE!$SET_MAKE$ac_delim RANLIB!$RANLIB$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim MATH_LIBS!$MATH_LIBS$ac_delim PKG_SOURCES!$PKG_SOURCES$ac_delim PKG_OBJECTS!$PKG_OBJECTS$ac_delim TCL_INCLUDES!$TCL_INCLUDES$ac_delim TCL_THREADS!$TCL_THREADS$ac_delim SHARED_BUILD!$SHARED_BUILD$ac_delim AR!$AR$ac_delim CELIB_DIR!$CELIB_DIR$ac_delim CFLAGS_DEBUG!$CFLAGS_DEBUG$ac_delim CFLAGS_OPTIMIZE!$CFLAGS_OPTIMIZE$ac_delim CFLAGS_WARNING!$CFLAGS_WARNING$ac_delim STLIB_LD!$STLIB_LD$ac_delim SHLIB_LD!$SHLIB_LD$ac_delim SHLIB_LD_LIBS!$SHLIB_LD_LIBS$ac_delim SHLIB_CFLAGS!$SHLIB_CFLAGS$ac_delim LD_LIBRARY_PATH_VAR!$LD_LIBRARY_PATH_VAR$ac_delim SHLIB_SUFFIX!$SHLIB_SUFFIX$ac_delim CFLAGS_DEFAULT!$CFLAGS_DEFAULT$ac_delim LDFLAGS_DEFAULT!$LDFLAGS_DEFAULT$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF TCL_DBGX!$TCL_DBGX$ac_delim MAKE_LIB!$MAKE_LIB$ac_delim MAKE_SHARED_LIB!$MAKE_SHARED_LIB$ac_delim MAKE_STATIC_LIB!$MAKE_STATIC_LIB$ac_delim MAKE_STUB_LIB!$MAKE_STUB_LIB$ac_delim RANLIB_STUB!$RANLIB_STUB$ac_delim VC_MANIFEST_EMBED_DLL!$VC_MANIFEST_EMBED_DLL$ac_delim VC_MANIFEST_EMBED_EXE!$VC_MANIFEST_EMBED_EXE$ac_delim TCLSH_PROG!$TCLSH_PROG$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 11; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi #-------------------------------------------------------------------- Memchan2.3/aclocal.m40000644000175000017500000000022307531474466014044 0ustar sergeisergei# # Include the TEA standard macro set # builtin(include,tclconfig/tcl.m4) # # Add here whatever m4 macros you want to define for your package # Memchan2.3/license.terms0000644000175000017500000000260706731255153014701 0ustar sergeisergeiThis software is copyrighted by Andreas Kupries. The following terms apply to all files associated with the software unless explicitly disclaimed in individual files. The author hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated on the first page of each file where they apply. IN NO EVENT SHALL THE AUTHOR OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHOR HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE AUTHOR AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHOR AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. Memchan2.3/README.tea0000644000175000017500000000100407530626062013620 0ustar sergeisergei Memory Channels in Tcl (Version @mFullVersion@ / @mDate@) Andreas Kupries (a.kupries@westend.com) This is the README file for the TEA compliant building of the Memchan extension. Please follow the instructions in the HTML file doc/html/memchan_cunix.html for compilation and installation of this package, independent of wether you are on a Unix or Windows machine. Beware that in case of Windows TEA uses the Cygwin tools from Cygnus (www.cygnus.com) for compilation and linking. After that, enjoy it. Memchan2.3/README.install0000644000175000017500000000376307531474466014545 0ustar sergeisergei This document describes to compile and install memchan on various systems. UNIX ==== There are 2 sets of files for building memchan on Unix-like system. 1) The most recent set is called the 'TEA' buildsystem and all relevant files (configure, Makefile.in, ...) reside in the toplevel directory of the memchan source distribution. Use this set when compiling memchan against a Tcl core of version 8.2 or higher. 2) The older set has no specific name and resides in the 'unix' subdirectory of the memchan source distribution. Use this set when compiling memchan against a Tcl core less than 8.2, but greater or equal to 8.0. Versions of tthe tcl core below version 8.0 of the core are not supported. The standard usage of both sets is identical: 1) Switch into the directory containing the set. 2) Execute the 'configure' script to configure the distribution 3) Call the 'make' command with either no target or the target 'all' to compile memchan. 4) Execute 'make install' to install the generated binaries. WIN* ==== People having a cygwin environment and a VC++ compile can use the TEA build system in the toplevel directory to compile memchan (provided that a tcl core of version 8.2 or higher is used). It will be necessary to set CC=cl to enforce the usage of the MS VC++ compiler. For all other situations there are three makefiles for windows, all residing in the subdirectory "win" of the memchan distribution. 1) makefile.vc Use this with MS VC++ 6 IDE. 2) makefile.vc5 Use this with MS VC++ 5 IDE. 3) Makefile.gnu Use this with the cygwin gcc compiler. Adapting memchan to the configuration of the system it is built on is done by manually editing the relevant makefile and then executing 'nmake' (or 'gmake' in case of (3)) for that makefile. The makefiles contain instructions on how to adapt them. MAC === It is currently not known how to compile memchan on a Mac. People who do so are asked to provide feedback and possibly project files, etc., whatever they used to perform the compilation. Memchan2.3/README0000644000175000017500000000260611477316434013065 0ustar sergeisergei Memory Channels in Tcl (Version 2.3 / DEC-10-2010) Andreas Kupries (andreas_kupries@users.sourceforge.net) This directory contains a freely distributable extension to Tcl implementing memory channels, i.e. channels storing the data placed into them in memory, not on disk. BACKGROUND Tcl stands for the Tool Command Language, a freely distributable, embeddable scripting language package. Tk is an freely distributable X windows interface toolkit and widget library implemented as a collection of new commands added to Tcl. Memchan 2.3 is developed for Tcl 8.0 or higher. It is a Tcl extension, Tk is not required. This distribution contains the source code for Memchan + (very simple) documentation describing the new command. Memchan should be available by anonymous ftp from ftp.neosoft.com soon. COMPILING/USING Memchan To compile Memchan follow the instructions in the file README.install To report bugs, bug fixes, descriptions of interesting Memchan applications, and suggested improvements: +) Send email to andreas_kupries@users.sourceforge.net or +) Post an article to the newsgroup comp.lang.tcl REPORTING PROBLEMS This extension has been tested extensively on a number of platforms and with various versions of Tcl. If you find a problem and can reproduce it simply then please submit a bug report on the memchan sourceforge project at http://sourceforge.net/projects/memchan/ Memchan2.3/ChangeLog0000644000175000017500000007423411500515760013753 0ustar sergeisergei2010-12-10 Andreas Kupries * *** Version 2.3 tagged and released *** * generic/memchanInt.h: Various fixes to unbreak the int2ptr * configure.in: introduction. * configure: 2010-12-08 Andreas Kupries * Makefile.in: Dropped bogus 'doc' dependency from 'dist' target. * generic/memchanInt.h: Swiped the INT2PTR/PTR2INT macros from * generic/buf.c: Tcl and updated the code handling AssocData to * configure.in: use them, kill a few warnings on 64bit systems. * configure: Plus related auto-goo. * generic/memchan.c: Second set of patches by Stuart. Moved * generic/memchanInt.h: string.h inclusion to internal header, * Makefile.in: and moved the .SUFFIXES declaration to a place where the OpenBSD make can use it. * doc/fifo.man: Applied patch supplied by Stuart Cassoff fixing * doc/fifo2.man: various typos in the manpages. * doc/memchan.man: * doc/null.man: * doc/zero.man: 2010-12-06 Andreas Kupries * Dropped the old build files under unix/ and win/ in favor of the toplevel TEA files. * configure.in: Updated to TEA 3.9. * tclconfig/README.txt: * tclconfig/tcl.m4: * configure: * ANNOUNCE: Version bumped to 2.3. * ANNOUNCE.MAIL: * ChangeLog: * ChangeLog.short: * DESCRIPTION: * LSM: * README: * teapot.txt: * Makefile.in: Updated the dist target. 2009-03-16 Andreas Kupries * generic/bugExt.c: Fixed [SF Bug 2687845] by Stuart Cassoff, * generic/bugFix.c: added inclusion of memchanInt.h to these * generic/bugRange.c: files to declare memcpy(). 2008-10-03 Andreas Kupries * generic/memchanInt.h: Fixed [SF Bug 2078168] by Larry Virden . Added inclusion of header to get declarations for strcmp, memcpy, and memset. 2007-11-13 Andreas Kupries * teapot.txt: New file, basic meta data of the package for TEApot compatible repositories. 2006-05-08 Pat Thoyts * Makefile.in: Fixed make test target. 2006-01-24 Andreas Kupries * tclconfig/tcl.m4: Updated to TEA 3.5 * configure.in: Ditto. * configure: Regenerated. 2005-06-08 Andreas Kupries * Makefile.in: Updated the toplevel build system to TEA 3.2. * configure.in: * generic/init.c: * generic/memchanStubLib.c: * tclconfig/tcl.m4: 2004-11-10 Pat Thoyts * Makefile.in: Fix the unix build system for the stubs stuff. Verified that the generated stubs lib can be used in an extension (make chantest target). 2004-11-10 Pat Thoyts * doc/memchanapi.man: NEW documentation for the stubs API functions. * generic/memchan.c: Fix and test for bug #1060620 which shows a * tests/memchan.test: problem using fileevent on memchan channels * generic/fifo2.c: Added special case for attempts to build on threaded tcl 8.2. This version doesn't support Tcl_MutexFinalize and we would leak mutexes from fifo2. Provided error stub functions and included a #error so that anyone attempting to build under these conditions will know what the problem is. * generic/null.c: Fix for compilation with tcl 8.2 and above. * generic/random.c: * generic/zero.c: * generic/memchanInt.h: 2004-11-09 Pat Thoyts * generic/memchan.h: Added a stubs library for the Memchan * generic/memchan.decls: extension. This exposes an API that * generic/memchanDecls.h: permits C extensions to create Memchan * generic/memchanStubInit.c: channels directly. * generic/memchanStubLib.c: * generic/chantest.c: Sample extension for testing the stubs linking C API. * doc/manpage.css: Added the tcllib style-sheet. * generic/memchan.c: Modified in support of the stubs API. * generic/fifo.c: Each channel creation command now uses * generic/fifo2.c: the C API internally. Channel creation code * generic/null.c: moved to a function exposed on the Memchan * generic/zero.c: stubs interface. * generic/random.c: * generic/buf.decls: * generic/bufStubInit.c: * win/makefile.vc: Windows build files updated * win/rules.vc: * configure.in: TEA files updated with new version. * configure: ==== Incremented version to 2.2.1 ==== 2004-08-04 Pat Thoyts * generic/fifo2.c: Applied fix for bug #996078 which sets the channel mutex to NULL in threaded tcl (Jeff Gilbertson) 2004-06-04 Pat Thoyts * configure: Updated and regenerated the TEA configure script * tclconfig/tcl.m4: This now works with Msys on Windows (gcc & cl) 2004-06-04 Pat Thoyts * generic/zero.c: Make the interval between fileevent * generic/null.c: notifications configurable (FR #470415). * generic/random.c: * doc/zero.man: Add the -delay option to the manual pages. * doc/null.man: * doc/random.man: * tests/zero.test: Additional tests for -delay ?ms? option. * tests/null.test: * tests/random.test: 2004-06-03 Pat Thoyts * configure.in: Changed version to 2.2.0 * configure: * DESCRIPTION: * win/makefile.vc: * win/mc.rc: * unix/Makefile.in: Updated unix/* build files for the new * unix/configure.in: random and zero channels. * unix/configure: * generic/zero.c: Added a 'zero' channel (FR #470414) * tests/zero.test: * doc/zero.man: * generic/init.c: * generic/memchanInt.h: * Makefile.in: * win/makefile.vc 2004-06-03 Andreas Kupries * generic/memchan.c: Added include of . This does not hurt compilation against 8.4, and makes compilation against 8.5 possible again after its header reform. We need it to get the SEEK_ constants. 2004-05-31 Andreas Kupries * generic/random.c: Added empty BMP. Also removed references to the 'null' channel, changed them into 'random'. * Makefile.in: Fixed typo DOC_* => DOC_*. Caused the documentation to not be installed. 2004-05-22 Pat Thoyts * Makefile.in: Added a dependency rule to document creation - fixes SF bug #681115 2004-05-22 Pat Thoyts * Makefile.in: Added random channel. * generic/random.c: * tests/random.test: * doc/random.man: * generic/init.c: * generic/memchanInt.h: * isaac/rand.h: * isaac/randport.c: * isaac/standard.h: * win/makefile.vc: Updated the MSVC build system for use with * win/mc.rc: MSVC++ 6 or 7. * win/rules.vc: * win/nmakehlp.c: 2004-05-21 Andreas Kupries * generic/fifo2.c: Failure in BMP is not allowed. * generic/fifo.c: Seek sets the channel temp. to * generic/memchan.c: blocking 1. * generic/null.c: 2004-05-20 Andreas Kupries * generic/fifo2.c: Gave all drivers a BlockMode proc (BMP). * generic/fifo.c: This proc will reject all attempts * generic/memchan.c: to set -blocking 1. But the main * generic/null.c: purpose is to ensure that the Tcl IO core does not believe that is has to do non-blocking on its own. 2004-02-18 Andreas Kupries * DESCRIPTION.txt: Updated to dinstinguish CVS from release. * generic/fifo.c (Input): Fixed bug in reporting when at * generic/memchan.c (Input): the end of the buffer. Has to be 0/no-error, not -1/wouldblock. 2003-05-15 Andreas Kupries * generic/memchanInt.h: forcing usage of 'sprintf' for the generation of the channel name across all platforms now. Encountered an HP lto with a different signature than we use here, causing the code to get what is essentially on the stack as handle suffix, completely bogus. 2003-04-04 Andreas Kupries * configure.in: * tclconfig/tcl.m4: Updated to newest tcl.m4, regenerated configure's. 2003-02-04 Andreas Kupries * generic/memchan.c (Seek): Fixed bug 556819. Interpretation of the sign of the seek offset was wrong for seek mode SEEK_END. 2003-01-24 Andreas Kupries * Makefile.in: Providing information about tclsh and its environment to nroff_gen. * tools/mpexpand.tcl: Copied from tcllib, portable doctools processing. * tools/nroff_gen: Use mpexpand.tcl, use provided tclsh to invoke it. 2003-01-20 Andreas Kupries * tools/mpexpand: Added new tool. Linux/ix86 starpack containing a doctools processor. * tools/nroff_regen: Rewritten to use mpexpand for most * tools/manpage_regen: conversions. The conversion to HTML * tools/rules/manpage.html.site: for the website still relies on the old expand system. Writing a good formatting engine for that, even if derived from the doctools HTML engine takes more time than I want to invest right now. Rewriting the rules file instead. That was less work. * doc/fifo.man: The original contents were written * doc/fifo2.man: in a precursor format to doctools. * doc/memchan.man: Now rewritten to conform to the * doc/null.man: doctools specification. * doc/random.man: 2002-11-06 Andreas Kupries * win/makefile.vc (MCOBJS): Updated to list all relevant object files. 2002-10-15 Andreas Kupries * configure.in: Changed to propagate an initial CFLAGS value to the final definition. A TEA condition (SHARED_BUILD == 1) squashed it, causing it the build system to loose the +DAportable we specify for the AS PA-RISC2.2 build host. This is a problem for _all_ TEA and TEA 2 based configure files. 2002-10-02 Andreas Kupries * Makefile.in ($($(PACKAGE)stub_LIB_FILE)): Fixed copy/paste error. Do not use AR explicitly. (MAKE_STUB_LIB): S.a. 2002-08-26 Andreas Kupries * === Release 2.2a4 available === 2002-08-21 Andreas Kupries * Makefile.in: * aclocal.m4: * configure.in: New, from tcl/sampleextension, modified for Memchan. Essentially an update to the new TEA. * tclconfig/: New. Configure definitions and other helpers. Straight out of tcl/sampleextension. * tcl.m4: * install-sh: * pkgIndex.tcl: * mkinstalldirs: * mkIndex.tcl.in: Removed. Not required by the TEA II make/configure, or provided by tclconfig. 2002-08-20 Andreas Kupries * ANNOUNCE: * ANNOUNCE.MAIL: * LSM: New files, templates for distributed information. * Used 'setversion' to update a lot of files (2.2a4). * tea/*: Moved into toplevel directory. * PREPARE: Removed dependencies on external packages. * tools/setversion: * tools/svfiles: special script to hack the version information and others data into a number of files, without having to rely on external packages. The system remembers the full current text which has to change for a new version, and the pattern from which to generate the new text. * doc/nodes: * doc/manual: Removed old documentation * generic/memchan.c: Reverted Wide changes. 2002-04-25 Andreas Kupries * tea/Makefile.in (install-lib-binaries): Added a missing ;. Bug was introduced by ysterdays change to install a hand-crafted package index file. * README.install: Cleared up confusion in the listing which build system goes with which version of the tcl core. 2002-04-24 Andreas Kupries * tea/pkgIndex.tcl: New, manually generated package index. * tea/Makefile.in: Install the manually generated package index instead of trying to use "mkIndex" to auto-generate one. * generic/bufQueue.c: * generic/buf.decls (Buf_QueueWrite): inbuf CONSTified. TIP 27 followup. * generic/buf.h (VECTOR): Removed __stdcall for Windows. * generic/bufDecls.h: Added BUILD_Memchan dependent change of TCL_STORAGE_CLASS in sections not touched by "genstubs". * generic/bufExt.c: * generic/bufFix.c: * generic/bufRange.c: Added cast to 2nd parameter of "Buf_Create". * generic/init.c: Removed EXTERN from Memchan_*Init. * generic/memchanInt.h: Added EXTERN declarations for Memchan_*Init, added definition of EWOULDBLOCK. * tea/mkIndex.tcl.in: Better handling of cygwin paths, look for package without version for generation of index. 2002-04-23 Andreas Kupries * tea/Makefile.in (install-lib-binaries): Changed INSTALL_DATA to INSTALL_PROGRAM to accomodate HPUX. * generic/null.c: * generic/fifo.c: * generic/fifo2.c: More CONSTified API (TIP 27), Output and GetOption. 2002-03-01 Andreas Kupries * generic/memchan.c (Seek): Added WideInt support (TIP 82). * generic/memchan.c (Output): CONSTified API (TIP 27) * generic/memchan.c (GetOption): CONSTified API (TIP 27). 2001-11-20 Andreas Kupries * Tagged 2.2a2 ============================================= 2001-11-19 Andreas Kupries * tea/configure.in: Look for 8.4 and 8.3 tclsh's too. * generic/bufStubLib.c (Buf_InitStubs): Using MC_UNCONSTB84. * generic/bufIntDecls.h (GT84): New macro. Detects 8.4 and beyond. (MC_UNCONSTB84): New macro. Explanations in the sources. 2001-11-15 Andreas Kupries * tea/Makefile.in (install-doc): Added invokations of `basename` to keep absolute paths to the source out of the destination for the copy operation. 2001-11-12 Andreas Kupries * tea/configure.in: * tea/Makefile.in: Changed to expect the toplevel directory as source directory. 2001-11-04 Andreas Kupries * tea/Makefile.in (install-libraries): Removed code trying to install header files. We have no public headers to install. Yet. * htdocs/raw/index.exp: Removed reference to the old site. * PREPARE: Added code to move the TEA makefiles to their correct location in the source distribution. This code also eliminates the 'tea' subdirectory to avoid confusion. * README.install: Added compilation instructions. 2001-09-19 Andreas Kupries * htdocs/raw/mem_event.exp: New page for the website containing thoughts about generation of file events for memory channels. References the new documentation about the interactions in the Tcl core between I/O system and notifier. * tools/rules/memchan: Added declaration of additional documentation page about event generation. * tools/rules/references: Added reference to Tcl documentation about the interaction between the components of the Tcl I/O system and the components of the Tcl notifier. * ChangeLog.short: Updated contents a bit. * DESCRIPTION: Updated to 2.2a1, switched to new mailing address and new location. 2001-09-11 Andreas Kupries * tea/Makefile.in (install-doc): Added installation of the memchan manpages. * PREPARE: Removed vestiges of doc/nodes, added generation of the new manpages. * doc/fifo.man: * doc/fifo2.man: * doc/memchan.man: * doc/null.man: * doc/random.man: Adapted to new manpage specification. 2001-09-10 Andreas Kupries * tools/rules/manpage.api: Added commands for [bullet] and [enum]. * doc/manpages.man: New manpage describing the manpage markup format itself. * htdocs/raw/documentation.exp: Added TMML bundles to table. * tools/rules/memchan: Added TMML references. * tools/htdocs_setup: Added generation of TMML bundles. * tools/manpage_regen: Added generation of TMML pages. 2001-09-09 Andreas Kupries * tools/rules/xmlrules.tcl: New. Helper file to manpage.tmml (see below) containing XML utility procedures. * tools/rules/manpage.tmml: New file to convert my manpage/tcl format into TMML, created for me by Joe English , current maintainer of TMML. * tools/htdocs_setup: Redirect output of zip commands into nothing. 2001-09-08 Andreas Kupries * tools/changelog_to_list: Fixed error in parser which duplicated the last item of a chunk as a bogus first item in the next chunk. * tools/watch_cvs: Removed a delay in usage when it comes to changes in "htdocs_setup". * PREPARE: Removed the generation of the 'webTemplate' based documentation. * Completed FR [ #459565 ] Manpages: Zip bundle. See below. * tools/htdocs_setup: Added generation of zipped documentation bundles. * htdocs/raw/documentation.exp: Added zipped documentation bundles to the page. * tools/rules/memchan: Added references for zipped documentation bundles. 2001-09-06 Andreas Kupries * tools/htdocs_setup: Fixed typos. * tools/htdocs_setup: Added generation of manpages and documentation bundles for the website. * tools/manpage_clean: Cleanup of generated manpage files. * tools/manpage_regen: Generation of manpages from base files. * tools/rules/manpage.api.spec: Specification of manpage policy * tools/rules/manpage.api: Error catching definitions * tools/rules/manpage.html: Rules to generate HTML * tools/rules/manpage.html.site: S.a., but for integration into the website. * tools/rules/manpage.list: Rules to generate list of defined manpages * tools/rules/manpage.nroff: Rules to generate nroff, true manpages * tools/rules/configuration: Removed obsolete file * tools/rules/site: Added new site policy file. * tools/rules/memchan: Changed to contain configuration. * tools/rules/formatting: More basic formatting commands * tools/rules/references: Some more references. * htdocs/raw/animation.exp: * htdocs/raw/changelog.exp: * htdocs/raw/disclaimer.exp: * htdocs/raw/documentation.exp: * htdocs/raw/image.exp: * htdocs/raw/index.exp: Rewritten according to the new code for the website. 2001-08-31 Andreas Kupries * htdocs/raw/animation.exp: * htdocs/raw/changelog.exp: * htdocs/raw/disclaimer.exp: * htdocs/raw/documentation.exp: * htdocs/raw/image.exp: * htdocs/raw/index.exp: Consistent crossreferences to all memchan pages. * tools/rules/references: Added reference to changelog page. * tools/changelog_to_list: Application converting a ChangeLog into a tcl list. Used by the formatting cvode below to get a tcl friendly format of the changelog. * tools/rules/formatting: Added code to generate the formatted changelog. Used in the page below. * htdocs/raw/changelog.exp: New page for the website. Generated from the ChangeLog. 2001-08-30 Andreas Kupries * htdocs: Sources of the new website. * tools/htdocs/*: * tools/expand: * tools/watch_cvs: * tools/crontab.sourceforge: * tools/rules/: New scripts and supporting files to generate the website from the raw data files in htdocs. Additional tools to watch the cvs for changes and to update the website when such happens. Fri May 5 00:19:45 2000 Andreas Kupries * generic/fifo2.c: Added bi-directional fifo. Thu May 4 20:43:16 2000 Andreas Kupries * generic/init.c (Memchan_Init): Added the 'null' command for the creation of null channels. * generic/null.c: New channel type, the null device. * generic/fifo.c: Simplified through the use of the new buffer functionality. * generic/buf*: Worked on a new buffering system for memchan and possibly the Tcl I/O system for the last few days. Sat Jan 15 00:28:52 2000 Andreas Kupries * tea/Makefile.in (install-lib-binaries): Fixed error in this target. Mailed problem and fix to TEA mailing list. Sat Sep 18 15:06:07 1999 Andreas Kupries * generic/fifo.c (GetOption): See below, '-allocated'. * generic/memchan.c (MemchanCmd): Added option '-initial-size', proposed by . If specified the channel will preallocate some buffer space, making the first write accesses a bit faster. (GetOption): Added '-allocated' to query the size of the allocated buffers, not the used number of bytes. Tue Sep 14 00:42:11 1999 Andreas Kupries * generic/memchan.c, fifo.c, counter.c: Changed to use LTOA instead of 'sprintf'. * generic/memchanInt.h (LTOA): Added definition of LTOA macro, its contents are dependent on the presence of 'ltoa'. The system uses 'sprintf' as its fallback. * win/makefile.vc(5),.gnu, unix/configure/in, tea/configure.in: Added check for 'ltoa', Windows assumes that the function is present. * generic/memchanInt.h: Added a fix sent by Jan to enable use with gcc-2.95 on Windows. * BUILD_memchan changed to BUILD_Memchan, adapted the header and the other build directories. Have to use ./ to load the library for testing. This obsoletes LD_LIBRARY_PATH and consorts. * Added 'tea' build directory the day before yesterday and asked for problem reports (Jan, Larry). These came in yesterday. Sun Aug 1 16:15:23 1999 Andreas Kupries * Added binary distribution for Windows, from Jan, excluded old binary distributions (for 1.9) and added a reference to the old site for this version instead. Tue Jul 27 22:57:56 1999 Andreas Kupries * doc/nodes/home.node, compile.node, win.node, mac.node, unix.node: Moved doc/INSTALL to HTML. Added reference to version 1.9 site for people interested in usability with Tcl 7.6. * generic/memchan.c, counter.c, init.c, fifo.c, memchanInt.h: Removed all #ifdefs relating to Tcl 7.6, support for that version is no dropped. Mon Jun 28 23:17:35 1999 Andreas Kupries * unix/configure.in, Makefile.in: Matt Newman sent in some changes to built the extension on HPUX (Basically check for .sl extension too). Sat Jun 12 23:12:26 1999 Andreas Kupries * win/makefile.vc5 (MCOBJS): See below. * win/makefile.vc (MCOBJS): Added 'dllEntry.obj' to the definition. * generic/memchanInt.h: 'DllEntryPoint' removed. See below. * generic/init.c: 'DllEntryPoint' removed. See below. * win/dllEntry.c: New file, again from Jan, to simplify DLL generation for Windows. The information in it can be removed from the generic parts. Fri Jun 11 22:40:02 1999 Andreas Kupries * win/Makefile.gnu: Got from Jan a binary distribution for memchan, compiled with Cygwin B20.1 (-mno-cygwin), and the Makefile used to do that. Assorted little changes to 'mc.rc' too. Wed May 26 00:17:18 1999 Andreas Kupries * tests/fifo.test: Added test suite for 'fifo's. * unix/pkgIndex.tcl: Added new command to the index. * doc/nodes/cmds.node: Added documentation for 'fifo'. * generic/fifo.c: New file, new channel type. Like memchan in memory, but access is done fifo-like (first in/first out). Seeking is not possible. Like a socket or a pipe, but in memory. Tue May 25 18:35:24 1999 Andreas Kupries * generic/memchanInt.h: Made the header usable for C++ compilers. * unix/Makefile.in: See below. * win/makefile.vc(5): Added rules for new object files. * generic/counter.c: Moved handle generation into separate file. Added usage of mutexes for thread enabled tcl to make handle generation safe. * generic/memchan.c: Moved declarations and initialization code into separate files (memchanInt.h, init.c). * doc/nodes/cmds.node: Added description of the provided command. Tue May 11 22:29:18 1999 Andreas Kupries * ---------------- Ready to release 1.8 -------------------- * unix/Makefile.in, PREPARE, tests: Added testsuite to memchan. Mon Apr 12 17:27:08 1999 Andreas Kupries * generic/memchan.c: Fixed error in definition of EXPORT, as reported by . * win/makefile.vc(5): Fixed some errors in the win makefiles, as reported by . Thu Mar 25 12:30:40 1999 Andreas Kupries * ---------------- Ready to release 1.7 -------------------- Wed Mar 24 13:15:36 1999 Andreas Kupries * win/pkgIndex.tcl: Separate package index, no way to use one DLL for all versions of tcl. Stubs no help ? * unix/configure.in, unix/Makefile.in: Added all necessary code to detect and use stubs appropriately. * unix/pkgIndex.tcl.in: Added code to check package dependency on tcl version, which is dependent on the usage of stubs too. Mon Mar 22 09:57:05 1999 Andreas Kupries * memchan.c: Started to work on the changes required by 8.1 and the new stub-mechanism. * configure.in (TCL_LIB/INCLUDE_DIR): Added 8.0.4 and 8.0.5 to the list of paths to search. Sun Dec 20 19:54:08 1998 Andreas Kupries * memchan.c: Changed definition of panic to allow co-existence with tcl8.0.4+. Got information about problems from a beta-tester of the new plus-patches. Wed Sep 30 15:43:42 1998 Andreas Kupries * configure.in (TCL_LIB/INCLUDE_DIR): Added some additional intelligence: Setting one of the variables, but not the other causes automatic definition of the missing part with a value derived from the defined directory. Suggested by Larry Virden. Added 8.0.3 to the paths to search. Added $exec_prefix/lib to the paths to search for the tcl-library. Fri Jun 19 22:59:18 1998 Andreas Kupries * configure.in: Fixed a bug noted by David Herron . From its mail: > In the section that checks for the TCL library there > is a loop looking for different library extensions. > In my case it needs to match the ".so.*" case of > the loop, but it doesn't. > > Changing the test to read as follows fixes the problem. > > if test -f $dir/libtcl$version$libsuff; then > memchan_cv_lib_TCL_LIB="-L$dir -ltcl$version" > TCL_LIB_DIR="$dir" > fi > > The difference is removal of the quote marks around > the file name. This allows the "*" to be evaluated > by the shell & find the file name. > > Another change that would be convenient is, in > the 'for version in ...' part, to add "80" to > the list of choices. With (at least) tcl8.0pl2 > on FreeBSD the library is "libtcl80.so.1.0" and > since the configure script only looks for "libtcl8.0" > it is not found again because of that. Sat Jun 13 14:27:10 1998 Andreas Kupries * memchan.c (channelType): Updated to reflect structure change from Tcl 8.0 to Tcl 8.1. Sun Jul 6 14:29:51 1997 Andreas Kupries * -------------------- 1.4 released -------- * memchan.c: Updated code to reflect changes in Set/GetOption API of channel drivers made by 8.0b2. Thu May 29 11:25:56 1997 Andreas Kupries * -------------------- 1.3 released -------- * memchan.c: Bag of changes to adapt this code to the new notifier system of 8.0b1. Will now run either with 7.6 or 8.0b1. The decision is made at compile time. * PREPARE: adapted to new 'makedist' and interface. Thu Feb 27 21:49:48 1997 Andreas Kupries * memchan.c (Mem_safeInit): renamed to 'Memchan_SafeInit'. First bug in this 1.2 Release. * -------------------- 1.2 released -------- Tue Feb 18 18:35:59 1997 Andreas Kupries * -------------------- 1.2 ready for release -------- Mon Feb 17 17:47:22 1997 Andreas Kupries * memchan.c: added prototypes missed by MSVC++. Sat Feb 15 20:09:58 1997 Andreas Kupries * memchan.c: integrated changes required to compile cleanly on windows. * INSTALL: updated to contain info for compilation on Windows as well. * Added 'makefile.vc' for compilation on Windows. The required 'pkgIndex.win' is generated by 'PREPARE' from 'pkgIndex.tcl.in'. * Rewrote generation of distribution (PREPARE, make-tape). 'DESCRIPTION' now central point for version information. The data obtained from it is placed into all relevant files at distribution time (README, LSM, ...), Note: 'PREPARE' is an file internal to the package. It contains tcl-code preparing the package for distribution (removing unofficial and/or internal files, manpage generation, ...). It is not part of the distribution however. Mon Jan 13 22:21:48 1997 Andreas Kupries * INSTALL: updated to reflect new search order and versions. * Makefile.in: Removed now superfluous variables. * configure.in: don't use -lsocket, -lm. Why there they included anyway ? * configure.in (line 259): don't bother with -ltclX.Y if not running under AIX. * configure.in: lowest possible tcl version is 7.6, not 7.5. Added recognition of 8.0 versions. * configure.in: changed search order: sibling directories before paths. But commandline options overide all. Thu Dec 5 19:02:06 1996 Andreas Kupries * PREPARE: updated to exclude the new directories (see below) from distribution. * added internal directories 'patches' and 'mails'. * configure.in (AC_OUTPUT): adapted to last change, done by patch, see below. * pkgIndex.tcl.in: former pkgIndex.in, renamed by patch, see below. * Makefile.in (LIB_RUNTIME_DIR): added by patch, see below. * got a patch from Jan Nijtmans . Fri Nov 15 22:45:04 1996 Andreas Kupries * Extracted memory channel code from trans-patch and made it a separate library.