RProtoBuf/0000755000176200001440000000000014553217525012145 5ustar liggesusersRProtoBuf/NAMESPACE0000644000176200001440000000621014235225224013353 0ustar liggesusers ## Package has dynamic library useDynLib("RProtoBuf", .registration=TRUE) importFrom("methods", "new", "show", "as", "is") importFrom("utils", "str", "packageDescription", "packageVersion") importFrom("stats", "update") importFrom("tools", "file_path_as_absolute") #importFrom("RCurl", "basicTextGatherer", "curlPerform") importFrom("Rcpp", "evalCpp") exportClasses( # descriptors "Descriptor", "FieldDescriptor", "EnumDescriptor", "ServiceDescriptor", "MethodDescriptor", "FileDescriptor", "EnumValueDescriptor", # message "Message", # rpc #"RpcHTTP", # virtual streams "ZeroCopyInputStream", "ZeroCopyOutputStream", # concrete implementations "ArrayInputStream", "ArrayOutputStream", "FileInputStream", "FileOutputStream", "ConnectionInputStream", "ConnectionOutputStream" ) exportMethods( "new", "[[", "[[<-", "$", "$<-", "show", "serialize", "as.character", "update", "has", "clone", "merge", "read", "readASCII", "readJSON", "bytesize", "length", "str", "isInitialized", "clear", "size", "size<-", "swap", "descriptor", "set", "fetch", "toString", "toJSON", "identical", "==", "!=", "all.equal", "add", "fileDescriptor", "name", "names", "flush", "close", "setExtension", "getExtension", "containing_type", "field_count", "nested_type_count", "enum_type_count", "field", "nested_type", "enum_type", # FieldDescriptor "is_extension", "number", "label", "is_required", "is_repeated", "is_optional", "has_default_value", "default_value", "message_type", "enum_type", "type", "cpp_type", # EnumDescriptor "value_count", "value", # ServiceDescriptor "method_count", "method", # MethodDescriptor "input_type", "output_type", # rpc # "invoke", # streams "Next", "ByteCount", "BackUp", "Skip", "ArrayInputStream", "ArrayOutputStream", "FileInputStream", "FileOutputStream", "GetErrno", "SetCloseOnDelete", "ConnectionInputStream", "ConnectionOutputStream", "ReadRaw", "ReadString", "ReadVarint32", "ReadLittleEndian32", "ReadLittleEndian64", "ReadVarint64", "WriteRaw", "WriteString", "WriteLittleEndian32", "WriteLittleEndian64", "WriteVarint32", "WriteVarint64" ) export( "P", "readProtoFiles", "readProtoFiles2", "resetDescriptorPool", "asMessage" ) if( exists( ".DollarNames", asNamespace("utils") ) ) importFrom( utils, .DollarNames ) S3method(.DollarNames, Message ) S3method(.DollarNames, Descriptor ) S3method(.DollarNames, EnumDescriptor ) S3method(.DollarNames, EnumValueDescriptor ) S3method(.DollarNames, FileDescriptor ) S3method(.DollarNames, FieldDescriptor ) S3method(.DollarNames, ServiceDescriptor ) S3method(.DollarNames, MethodDescriptor ) S3method(.DollarNames, ZeroCopyInputStream ) S3method(.DollarNames, ZeroCopyOutputStream ) S3method( with, Message ) S3method( within, Message) S3method( as.list, Message ) S3method( as.list, Descriptor ) S3method( as.list, EnumDescriptor ) S3method( as.list, FileDescriptor ) S3method( as.list, ServiceDescriptor ) S3method( all.equal, Message ) # constants exportPattern( "^TYPE_" ) exportPattern( "^CPPTYPE_" ) exportPattern( "^LABEL_" ) # copied from RProtoBufUtils export( "serialize_pb", "unserialize_pb", "can_serialize_pb" ) # export( run_unit_tests ) RProtoBuf/demo/0000755000176200001440000000000012440004312013046 5ustar liggesusersRProtoBuf/demo/io.R0000644000176200001440000000164412440004312013605 0ustar liggesusersrequire( RProtoBuf ) ### read messages from files and binary connections # read a message from a file name f <- system.file( "examples", "addressbook.pb", package = "RProtoBuf" ) m1 <- read( tutorial.AddressBook, f ) writeLines( as.character( m1 ) ) # read the same message from a (binary) file connection con <- file( f, open = "rb" ) m2 <- read( tutorial.AddressBook, con ) # this also works: # m2 <- tutorial.AddressBook$read( con ) writeLines( as.character( m2 ) ) close( con ) # TODO: we need another example from a more fancy connection (pipe, ...) stopifnot( identical( as.character(m1), as.character(m2) ) ) ### write messages to files and binary connections tf1 <- tempfile() serialize( m1, tf1 ) tf2 <- tempfile() con <- file( tf2, open = "wb" ) serialize( m2, con ) close( con ) # test that the two binary files are identical stopifnot( identical( readBin( tf1, raw(0), 1000), readBin( tf2, raw(0), 1000) ) ) RProtoBuf/demo/addressbook.R0000644000176200001440000000325012440004312015471 0ustar liggesusers# load the package require( RProtoBuf ) # read all the proto files in the proto directory # of the package "RProtoBuf" # (this is also done in the startup of the package, so this call is # actually redundant) readProtoFiles( package = "RProtoBuf" ) # creating three Person messages # create a prototype with a simple call to new on the # descriptor for the Person message type, and then update the message # with fields romain <- update( new( tutorial.Person ), email = "romain@r-enthusiasts.com", id = 1, name = "Romain Francois", phone = new( tutorial.Person.PhoneNumber , number = "+33(0)...", type = "MOBILE" ) ) # directly supply parameters to the constructor dirk <- new( tutorial.Person, email = "edd@debian.org", id = 2, name = "Dirk Eddelbuettel" ) # update the phone repeated field with a list of PhoneNumber messages dirk$phone <- list( new( tutorial.Person.PhoneNumber , number = "+01...", type = "MOBILE" ), new( tutorial.Person.PhoneNumber , number = "+01...", type = "HOME" ) ) # build the address book book <- new( tutorial.AddressBook, person = list( romain, dirk ) ) # debug string. This is not what is transferred in the wire writeLines( as.character( book ) ) # the serialized message # see also the io demo to see how to serialize messages to connections # and files serialize( book, NULL ) # number of bytes taken by the message on the wire bytesize( book ) length( serialize( book, NULL ) ) # swap two persons in the address book # (1-based indexing) book$swap( "person", 1L , 2L ) writeLines( as.character( book ) ) # number of "person" in the book book$size( "person" ) # clear the message book$clear( ) writeLines( as.character( book ) ) RProtoBuf/demo/00Index0000644000176200001440000000015312440004312014177 0ustar liggesusersaddressbook Demonstration of RProtoBuf functionality io Input/Output handling of protocol buffer messages RProtoBuf/README0000644000176200001440000000355612440004312013013 0ustar liggesusersQuoting from http://en.wikipedia.org/wiki/Protocol_Buffers Protocol Buffers is a serialization format with an interface description language developed by Google. The original Google implementation for C++, Java and Python is available under a free software, open source license. Various other language implementations are either available or in development. . The design goals for Protocol Buffers emphasized simplicity and performance. In particular, it was designed to be faster than XML (no reproducible comparisons are publicly available to confirm this, however). Protocol Buffers is very similar to Facebook’s Thrift protocol, except it does not include a concrete RPC stack to use for defined services. Since Protocol Buffers was open sourced, a number of RPC stacks have emerged to fill this gap. . Prior to the release as open source, Protocol Buffers had been widely used at Google for storing and interchanging all kinds of structured information. Protocol Buffers serve as a basis for a custom RPC system that is used for practically all inter-machine communication at Google.[1] . Data structures and services are defined in the Proto Definition file (.proto) which is then compiled with protoc. This compilation generates code that matches the services. For example, example.proto will produce example.pb.cc and example.pb.h which will define C++ classes for each Message and Service example.proto defines. . Protocol Buffers allow serialization into any number of formats. In the officially supported implementations there is a full Reflection interface available, making it easy to serialize protos as XML and JSON. . Though the primary purpose of Protocol Buffers is to facilitate network communication, its simplicity and speed make Protocol Buffers a great replacement of data-centric C++ classes and structs. RProtoBuf/tools/0000755000176200001440000000000013505372467013310 5ustar liggesusersRProtoBuf/tools/winlibs.R0000644000176200001440000000071713505372467015107 0ustar liggesusers# Build against protobuf libs compiled with Rtools VERSION <- commandArgs(TRUE) if (!file.exists(sprintf("../windows/protobuf-%s/include/google/protobuf/descriptor.h", VERSION))) { if (getRversion() < "3.3.0") setInternet2() download.file(sprintf("https://github.com/rwinlib/protobuf/archive/v%s.zip", VERSION), "lib.zip", quiet = TRUE) dir.create("../windows", showWarnings = FALSE) unzip("lib.zip", exdir = "../windows") unlink("lib.zip") } RProtoBuf/ChangeLog0000644000176200001440000031605414552746336013736 0ustar liggesusers2024-01-20 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.22 * configure.ac: Idem * configure: Idem 2024-01-19 Dirk Eddelbuettel * src/Makevars.ucrt: Apply patch emailed by Tomas Kalibera to support pkg-config if present (as e.g. under upcoming Rtools) 2023-12-13 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.21 * configure.ac: Idem * configure: Idem 2023-12-10 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date * R/00classes.R: Tweak .Call() update some more * R/field_count.R: Idem * R/wrapper_ServiceDescriptor.R: Idem * README.md: Update / remove stale references to old ProtoBuf doc site * man/ArrayInputStream-class.Rd: Idem * man/ArrayOutputStream-class.Rd: Idem * man/Descriptor-class.Rd: Idem * man/EnumValueDescriptor-class.Rd: Idem * man/FileDescriptor-class.Rd: Idem * man/FileInputStream-class.Rd: Idem * man/FileOutputStream-class.Rd: Idem * man/Message-class.Rd: Idem * man/ZeroCopyInputStream-class.Rd: Idem * man/ZeroCopyOutputStream-class.Rd: Idem * man/swap.Rd: Idem * inst/tinytest/data/encoding.proto: Idem * inst/tinytest/test_serialize.R: Idem * vignettes/rmd/RProtoBuf-intro.Rmd: Idem * vignettes/rmd/RProtoBuf-quickref.Rmd: Idem 2023-12-09 Dirk Eddelbuettel * .github/workflows/alpine.yaml: Add container-based continuous integration test to permit test under newer Protocol Buffers * R/*.R: Update numerous .Call() to switch to unquoted expression given symbol registration of the compiled functions 2023-07-12 Matteo Gianella * src/RSourceTree.h: Code update also in case of protobuf version >= 22.x * src/RSourceTree.cpp: Idem * src/wrapper_Descriptor: Idem * src/wrapper_Message: Idem 2023-03-11 Dirk Eddelbuettel * src/Makevars.ucrt (CXX_STD): Also set C++17 here 2022-11-04 Dirk Eddelbuettel * .github/workflows/docker.yaml (jobs): Update different actions 2022-11-02 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.4.20 * configure.ac: Idem * configure: Idem * src/init.c: Add two 'void' for proper prototypes pleasing clang-15 * .github/workflows/ci.yaml (jobs): Update to actions/checkout@v3 * .github/workflows/docker.yaml (name): Idem * inst/NEWS.Rd: Update on http:// to https:// * src/Makevars.in (CXX_STD): The compilation standard is now C++17 * src/Makevars.win (CXX_STD): Idem * DESCRIPTION (SystemRequirements): Stated updated requirement 2022-05-06 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.4.19 * configure.ac: Idem * configure: Idem 2022-05-02 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version and date * src/mutators.cpp: Change seven string to std::string 2022-04-06 Michael Chirico * R/00classes.R: Additional tests and updated changes * R/debug_string.R: Idem * R/text_format.R: Idem * man/Message-class.Rd: Idem * inst/tinytest/test_message.R: Idem 2022-04-04 Dirk Eddelbuettel * src/wrapper_Message.cpp: Correct minor issue, reenable compilation * inst/tinytest/test_message.R: Park one test temporarily 2022-04-04 Michael Chirico * R/00classes.R: Expose TextFormat for Message->character conversion * R/debug_string.R: Idem * R/text_format.R: Idem * src/wrapper_Message.cpp: Idem * src/init.c: Idem * man/Message-class.Rd: Idem * inst/tinytest/test_message.R: Idem 2022-03-23 Dirk Eddelbuettel * R/internals.R (getProtobufLibVersion): If formatted result, return as 'package_version()' rather than just string; update .Call() * R/zzz.R (.onAttach): In interactive mode disply package and underlying library version on startup 2022-01-04 Dirk Eddelbuettel * DESCRIPTION (Description, SystemRequirements): Updated to state that version 3.3.0 from March 2017 or later is now needed 2021-12-27 Dirk Eddelbuettel * README.md: Remove unused continuous integration artifact and badge 2021-12-15 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.18 * man/*Rd: Update a number of URLs 2021-12-14 Dirk Eddelbuettel * DESCRIPTION (Version): Roll minor version and date * src/Makevars.ucrt: Applied patch by Tomas Kalibera that is part of his changes for the Windows utf8-enhabced ucrt3 builds of R 4.2.0 2021-10-10 Dirk Eddelbuettel * README.md: Update JSS article url to doi form per JSS request, switch to shorter https://doi.org/ base 2021-10-01 Dirk Eddelbuettel * .github/workflows/docker.yaml (on): Restrict Docker rebuilds to pushes to master branch 2021-09-26 Dirk Eddelbuettel * .github/workflows/docker.yaml: Add action to build and push containers with cron set to monthly schedule 2021-06-27 Jeroen Ooms * src/Makevars.win: Support UCRT build * src/Makevars.ucrt: Idem 2021-06-11 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version * .editorconfig: Added 2021-06-10 Vitalie Spinu * R/debug_string.R: Support extra toJSON format arguments * R/00classes.R: Idem * src/wrapper_Message.cpp: Idem * src/init.c: Idem * man/Message-class.Rd: Document new parameters 2021-06-01 Dirk Eddelbuettel * DESCRIPTION (URL): Add package page to URL field 2021-01-09 Dirk Eddelbuettel * DESCRIPTION (Version): Roll minor version and date * DESCRIPTION (Imports): Remove RCurl used for rpc * NAMESPACE: Remove 'rpc' class and 'invoke' method * R/00classes.R: Comment-out removed class and method * deprecated/R/http.handler.R: Moved from R/ * deprecated/R/rpc.R: Idem * deprecated/man/RpcHTTP-class.Rd: Moved from man/ * deprecated/man/invokeLocally.Rd: Idem * .Rbuildignore: Added deprecated/ * .github/workflows/ci.yaml: Add CI runner using r-ci * README.md: Add new badge 2020-08-16 Dirk Eddelbuettel * README.md: Added JSS badge 2020-06-15 Dirk Eddelbuettel * .travis.yml: Switch to bionic, change to derive package and version 2020-05-28 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version 2020-05-28 Adam Cozzette * src/wrapper_ServiceDescriptor.cpp: Support FindMethodByName() taking std::string_view * src/RcppMacros.h: Idem 2020-03-26 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.17 * README.md: Add a last-commit badge 2020-03-21 Dirk Eddelbuettel * src/wrapper_Message.cpp: Condition use of ByteSizeLong on ProtoBuf version 3.6.0 or later to permit compilation on older systems * inst/tinytest/test_addressbook.R: Skip JSON tests if ProtoBuf 2.* * configure.ac: Extract version from DESCRIPTION via awk * configure: Regenerated 2020-03-19 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.16 * src/wrapper_Message.cpp: Switch to ByteSizeLong() to appease a clang warning on deprecated declarations * man/bytesize.Rd: Relax a comparison from identical() to all.equal() 2020-03-18 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version * R/debug_string.R: Correct method argument * man/Message-class.Rd: Alias toJSON 2020-03-16 Siddhartha Bagaria * NAMESPACE: Add JSON parsing and printing support * R/00classes.R: Idem * R/completion.R: Idem * R/debug_string.R: Idem * R/read.R: Idem * inst/tinytest/test_addressbook.R: Idem * man/Message-class.Rd: Idem * man/readJSON.Rd: Idem * src/init.c: Idem * src/rprotobuf.h: Idem * src/wrapper_Descriptor.cpp: Idem * src/wrapper_Message.cpp: Idem 2020-02-08 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.15 2020-02-07 Dirk Eddelbuettel * vignettes/RProtoBuf-intro.Rnw: Wrapper around pre-made vignette * vignettes/RProtoBuf-paper.Rnw: Idem * vignettes/RProtoBuf-quickref.Rnw: Idem * DESCRIPTION (Suggests): Remove Suggests for RUnit, rmarkdown, knitr, pinp; (VignetteBuilder): Removed * docker/ci/Dockerfile: No longer install r-cran-runit * R/read.R: Always close connection in readASCII 2020-02-06 Dirk Eddelbuettel * DESCRIPTION (Suggests): Add tinytest * inst/tinytest/*: Converted from RUnit to tinytest * inst/unitTests/*: Idem * tests/tinytest.R: Idem * tests/doRUnit.R: Idem * docker/ci/Dockerfile: Add tinytest 2020-02-04 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version 2020-02-03 Dirk Eddelbuettel * src/wrapper_Message.cpp: Correct indexing for Message and Group 2019-06-30 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.14 * src/wrapper_Message.cpp: Add extra parens [g++ warning] 2019-06-27 Jeroen Ooms * Windows: Update to protobuf 3.8.0, add support for GCC 8+. 2018-11-30 Jarod G.R. Meng * src/wrapper_Message.cpp: Protect identical() against recursive messages 2018-11-26 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version 2018-11-26 Jarod G.R. Meng * R/identical.R: Add 'add.equal.Message' for Protocol Buffer message types to avoid the default method being called by unit test runners * NAMESPACE: Add S3 registration for new method 2018-11-03 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.13 2018-11-02 Dirk Eddelbuettel * tests/runUnitTests.R: Rewritten matching other packages * man/readASCII.Rd: Set examples to \dontrun{} as occasional error from a remaining open connection seen 2018-09-08 Dirk Eddelbuettel * .travis.yml: Rewritten to use rprotobuf/ci Docker container * docker/run/Dockerfile: Correction to Dockerfile 2018-09-07 Dirk Eddelbuettel * docker/run/Dockerfile: Added Dockerfile for deployment 2018-09-06 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version * .Rbuildignore: Ignore GTAGS, GRTAGS, GPATH from GNU global * .gitignore: Idem * docker/ci/Dockerfile: Added Dockerfile for CI use 2018-09-06 Jeffrey Shen * R/rexp_obj.R: Refinement for POSIXlt treatment 2018-09-05 Jeffrey Shen * R/rexp_obj.R: Unclass POSIXlt before converting them * inst/unitTests/runit.serialize_pb.R: Unit test 2018-09-02 Dirk Eddelbuettel * .travis.yml: Enforce R version 3.4 for now as the PPA we need for the Protocol Buffers library has r-cran-* packages built for R 3.4 2018-07-25 Dirk Eddelbuettel * configure.ac: Set CXX and CXXFLAGS values by calling R to reflect values in Makeconf used by R [CRAN request] * configure: Idem 2018-07-11 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.12 2018-07-08 Dirk Eddelbuettel * src/wrapper_Message.cpp (rprotobuf): Properly reference std::vector (as noticed by Brian Ripley with protobuf 3.6) 2018-06-25 Jeroen Ooms * src/Makevars.win: update Windows build to protobuf v3.5.1 to support upcoming gcc-8 toolchain. 2018-05-21 Siddhartha Bagaria * src/DescriptorPoolLookup.cpp: New reset() function * src/DescriptorPoolLookup.h: Idem * src/RSourceTree.cpp: New directory removal function * src/RSourceTree.h: Idem * src/init.c: Register new resetDescriptorPool_cpp functions * src/rprotobuf.cpp: callable resetDescriptorPool_cpp() function * man/readProtoFiles.Rd: Added documentation * R/internals.R: Add R-callable resetDescriptorPool() * NAMESPACE: Corresponding export * inst/unitTests/data/cyclical/*: Unit test infrastructure * inst/unitTests/data/recursive/*: Idem * inst/unitTests/data/subdir/*: Idem * inst/unitTests/data/unittest.proto: Added proto definition * inst/unitTests/runit.import.R: New tests 2018-05-20 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version * man/readProtoFiles.Rd: One minor correction, and some whitespace and indentation cleanups 2018-04-18 Dirk Eddelbuettel * vignettes/RProtoBuf-paper.Rnw: Two updates for OpenCPU 2018-01-19 Siddhartha Bagaria * R/internals.R: New function readProtoFiles2 to use directory argument along with pattern similar to protoc behavior; also add recursive argument to readProtoFiles * man/readProtoFiles.Rd: Documentation for readProtoFiles2 2017-11-20 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version * inst/unitTests/runit.serialize_pb.R: Added unit test 2017-11-20 Jeffrey Shen * R/rexp_obj.R: Added test to avoid infinite recursion if sub indexing list returns the list 2017-10-03 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.11 2017-10-02 Dirk Eddelbuettel * DESCRIPTION: Minor edit to suppress another NOTE from R CMD check * README.md: Idem 2017-10-01 Dirk Eddelbuettel * vignettes/RProtoBuf-intro.Rmd: Renamed, now uses Rmd via pinp * vignettes/RProtoBuf-quickref.Rmd: Idem * DESCRIPTION: Added pinp package, rolled minor version, use doi in Description * cleanup: Adjusted and updated * .travis.yml (install): Add r-cran-pinp 2017-08-26 Dirk Eddelbuettel * .travis.yml (before_install): Use https for curl fetch 2017-08-14 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version * src/S4_classes.h: Initialize S4 base class in copy constructor for S4_ArrayOutputStream class 2017-08-13 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.10 * R/00classes.R: Correct one package= arg in .Call to PACKAGE as requested by CRAN * src/init.c: Corresponding change in Descriptor_getField registration * inst/unitTests/runit.import.R (test.import): Test failing import on package's own DESCRIPTION file rather than /etc/hosts 2017-08-01 Jeffrey Shen * R/rexp_obj.R: Check in deserializer if invalid class is set 2017-03-06 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.9 2017-03-05 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version and date * src/init.c (R_init_RProtoBuf): Call R_registerRoutines() and R_useDynamicSymbols() * NAMESPACE: Use .registration=TRUE on useDynLib * src/extensions.cpp (rprotobuf): Rename getExtension to getExtension_cpp to disambiguate from R function * src/rprotobuf.cpp (rprotobuf): Idem for readProtoFiles_cpp * R/00classes.R (.icall): Comment-out unused function (setMethod): Remove erroneous extra '...' from Message_clone arguments * R/clone.R (._clone.message): Add missing PACKAGE= argument to .Call * R/extensions.R: Idem * R/has.R (._has_enum_name): Idem * R/internals.R (readProtoFiles): Idem * R/merge.R: Idem * R/with.R (generateActiveBindings): Idem * R/has.R (._has_enum_name): Use PACKAGE= in .Call() 2017-02-26 David Kretch * vignettes/RProtoBuf-intro.Rnw: Several small corrections 2017-01-19 Dirk Eddelbuettel * configure.ac: Renamed from configure.in, minor edit 2017-01-18 Dirk Eddelbuettel * configure.in: Updated and simplified in a few places as we no longer need m4 macros for C++0x or Rscript for Rcpp library query * configure: Re-generated accordingly * src/Makevars.in: Set CXX_STD=CXX11 * m4/m4-ax_cxx_compile_stdcxx_0x.m4: Removed * cleanup: remove autoconf cache 2017-01-17 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Relase 0.4.8 2017-01-16 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version and date * tools/winlibs.R: Use proto3 library from rwinlib repo * src/Makevars.win: Update to proto 3.0.0 paths * inst/unitTests/runit.proto3.R: New test file * inst/unitTests/data/proto3.proto: Support for new test file 2016-10-29 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.7 2016-10-24 Dirk Eddelbuettel * DESCRIPTION (Version): Roll minor version and date * src/lookup.cpp: Replace omegahat.org with omagehat.net * vignettes/RProtoBuf-paper.bib: Ditto 2016-09-09 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.4.6 * README.md: Expanded, added three short sections 2016-09-08 Dirk Eddelbuettel * inst/NEWS.Rd: Ditto, also replace \cpkg{} with \CRANpkg{} * README.md: Use https for CRAN URL 2016-09-06 Dirk Eddelbuettel * vignettes/RProtoBuf-paper.Rnw: Comment-out the use of the \DOI macro from (updated) jss.cls: cannot ship jss.cls (or R will warn) and cannot use \DOI as (as R-release and older do not know \DOI) 2016-09-01 Dirk Eddelbuettel [ Entry for anonymous PR #18 by 'oliverbock' ] * R/rexp_obj.R (unrexp_string): Ensure zero-length strings can be serialized; special case of native encoding for S4 objects * inst/unitTests/runit.serialize_pb.R: New tests 2016-08-29 Dirk Eddelbuettel * DESCRIPTION (Version, Date): New release 0.4.5 2016-08-16 Dirk Eddelbuettel * DESCRIPTION (SystemRequirements): Add explicit note that Protocol Buffers 3.0.0 are supported as well 2016-08-15 Dirk Eddelbuettel * DESCRIPTION (Version): Rolling minor version * inst/proto/addressbook.proto: Added 'syntax = "proto2";' * inst/proto/helloworld.proto: Idem * inst/proto/rexp.proto: Idem * inst/unitTests/data/bytes.proto: Idem * inst/unitTests/data/encoding.proto: Idem * inst/unitTests/data/nested.proto: Idem * inst/unitTests/data/unittest.proto: Idem * inst/unitTests/data/unittest_import.proto: Idem * vignettes/proto/int64.proto: Idem * inst/unitTests/runit.addressbook.R (test.ascii): Comment-out one sub-test concerned with access under bad file modes 2016-08-13 Dirk Eddelbuettel * .travis.yml: Switch to using run.sh for Travis CI, also switch to using a build matrix across ProtoBuf versions 2 and 3 2016-07-19 Craig Radcliffe * configure.in: Make sure that CXXFLAGS is from the environment when writing to src/Makevars 2016-07-10 Dirk Eddelbuettel * DESCRIPTION (Version): Release 0.4.4 * vignettes/RProtoBuf-paper.Rnw: Added, based on pending JSS publication * vignettes/RProtoBuf-paper.bib: Ditto * vignettes/figures/*: Ditto * vignettes/proto/*: Ditto * vignettes/jss.cls: Ditto * vignettes/jss.bst: Ditto * inst/CITATION: Update to version provided by JSS * README.md: Updated to use of canonical URLs for CRAN 2016-05-19 Dirk Eddelbuettel * vignettes/RProtoBuf-unitTests.Rnw: Do not write unit test results to /tmp per request from CRAN to not write outside test directories 2016-04-26 Dirk Eddelbuettel * CONTRIBUTING.md: New workflow document 2016-04-25 Jeroen Ooms * R/rexp_obj.R: Fix zero-length edge case * R/serialize_pb.R: Improved documentation * man/serialize_pb.Rd: Ditto 2016-04-21 Jeroen Ooms * src/Makevars.win: Accomodate new Windows toolchain 2016-04-21 Jonathon Love * inst/unitTests/runit.addressbook.R: Set to mode 0644 * inst/unitTests/runit.bytes.R: Ditto 2016-02-11 Dirk Eddelbuettel * DESCRIPTION (License): Set to GPL (>= 2) which is what the code files with actual copyright and license headers had all along * README.md: Idem 2015-08-25 Dirk Eddelbuettel * DESCRIPTION (Version): Release 0.4.3 2015-08-24 Dirk Eddelbuettel * README.md: Additional badges * inst/unitTests/runit.FieldDescriptor.R: Added msg field 2015-08-23 Dirk Eddelbuettel * tools/winlibs.R: Actually tests against R 3.3.0 2015-08-23 Jeroen Ooms * tools/winlibs.R: Test for R 3.3.0 on Windows 2015-08-23 Dirk Eddelbuettel * NAMESPACE: Added imports for as and is from methods * DESCRIPTION: Removed several of the (largely redundant) URLs, and minor edits in Description: to update to current standard * man/RProtoBuf-package.Rd: Updated, removed old URLs. * .travis.yml: Accelerate by installing dependencies via apt-get 2015-08-05 Balasubramanian Narasimhan * NAMESPACE: Added import for show from methods package 2015-07-08 Jeroen Ooms * tools/winlibs.R: Update URL to windows build of the required ProtoBuf library 2015-01-16 Dirk Eddelbuettel * DESCRIPTION: Minor edits 2015-01-16 Jeroen Ooms * DESCRIPTION: Make SystemRequirements: more explicit 2014-12-11 Jeroen Ooms * DESCRIPTION: Update URLs 2014-12-10 Dirk Eddelbuettel * DESCRIPTION (Version): Release 0.4.2 2014-12-10 Jeroen Ooms * src/Makevars.win: Use new ProtoBuf 2.6.1 builds on Windows * tools/winlibs.R: Helper function used for Windows build * inst/unitTests/runit.int64.R: Fixed a windows bug 2014-12-08 Jeroen Ooms * inst/proto/rexp.proto: Add a new type 'native' * R/rexp_obj.R: Modify (un)serialize_pb to serialize() non-data types as 'native' types 2014-12-04 Dirk Eddelbuettel * .travis.yml: Added after move to GitHub * README.md: Added minimal first version with Travis badge 2014-12-04 Murray Stokely * inst/unitTests/runit.int64.R: restore options on exit from this function to make the test indempotent. 2014-12-01 Dirk Eddelbuettel * man/Message-class.Rd: Completed documentation * man/Descriptor-class.Rd: Ditto * man/EnumDescriptor-class.Rd: Ditto 2014-12-01 Murray Stokely * R/wrapper_ZeroCopyInputStream.R: Avoid file.create for getting absolute path of a temporary file name (JSS reviewer feedback) * R/serialize.R: Idem. 2014-11-26 Murray Stokely Address feedback from anonymous reviewer for JSS to make this package more complete: * inst/unitTests/runit.serialize_pb.R: Add a test to verify that we can serialize all 100+ built-in datasets with R and get an identical object to the original once unserialized. * R/rexp_obj.R: Serialize function, language, and environment objects by just falling back to R's native serialization and using raw bytes to store them. This at least lets us round-trip encode all native R types, even though these three only make sense in the context of R. Greatly simplify the can_serialize_pb function. * inst/proto/rexp.proto: Add support for function, language, and environment objects. 2014-11-25 Dirk Eddelbuettel * vignettes/RProtoBuf-intro.Rnw: Applied a few corrections spotted by Tim Hesterberg and communicated in email. 2014-11-24 Murray Stokely * inst/unitTests/runit.golden.message.R: remove trailing whitespace. * man/P.Rd: Improve output of example. 2014-09-15 Murray Stokely Address feedback from anonymous reviewers for our Journal of Statistical Software submission: * src/wrapper_EnumDescriptor.cpp (rprotobuf): Correct the definition of as.list for EnumDescriptors to return a proper list instead of a named vector. * man/aslist.Rd: clarify order of returned list for descriptor objects. * NAMESPACE: add names as exported method. * R/00classes.R (show): Update the default print methods to use cat() with fill=TRUE instead of show() to eliminate the confusing [1] since the classes in RProtoBuf are not vectorized. * Make Descriptor and EnumDescriptor objects subsettable with "[[". * Add length() method for Descriptor objects. * Add names() method for Message, Descriptor, and EnumDescriptor objects. * inst/unitTests/runit.enums.R (test.enums): Add test of subsetting an EnumDescriptor object. * inst/unitTests/runit.descriptors.R (test.descriptor): Add test for subsetting of descriptor objects. * DESCRIPTION (Version): Increment. 2014-04-02 Murray Stokely Two patches from Karl Millar : * src/S4_classes.h (rprotobuf): Change handling of S4_EnumDescriptor when passed a NULL pointer to just create empty object with empty name and full_name rather than setting to R_NilValue. * src/wrapper_EnumDescriptor.cpp (rprotobuf): Change return value of getValue* functions on EnumDescriptor and return an EnumValueDescriptor or R_NilValue on failure. 2014-04-01 Murray Stokely * tests/runUnitTests.R: Add improved checks to ensure R CMD CHECK fails if there are any errors in the tests, not just failures. 2014-03-25 Dirk Eddelbuettel * DESCRIPTION (Version): Release 0.4.1 2014-03-24 Murray Stokely * inst/unitTests/runit.int64.R (test.int64): Check Rcpp:::capabilities() to ensure we have long long support in Rcpp before trying to run the 64-bit integer tests. * inst/unitTests/data/unittest.proto: Comment out TestEnumWithDupValue. This causes problems with the newest libprotobuf-2.5 which now wants an option to be specified to enable enum aliasing like this. * configure.in: if we can't find the libproto headers with the default CPPFLAGS/CXXFLAGS, manually add /usr/local/include and try again. 2014-03-10 Murray Stokely * src/DescriptorPoolLookup.cpp (rprotobuf): Import all top-level enums defined in an imported .proto file. * src/rprotobuf.cpp (rprotobuf): Add a function to get the enum descriptor associated with a named enum. * inst/unitTests/runit.enums.R (test.enums): Test that we import top-level enums from .proto files correctly. * R/00classes.R (P): Correct a bug in the show() method for EnumDescriptor that prevented useful output in some contexts. 2014-02-21 Murray Stokely * inst/unitTests/runit.messages.R (test.message): Add a test for the deprecated group feature which works fine with RProtoBuf. The type is converted to lower case, which users often forget. * vignettes/RProtoBuf-intro.Rnw (subsection{Deprecated Feature: Protocol Buffer Groups}): document groups. * inst/CITATION: Add a manual CITATION file pointing to the preprint on arxiv.org in addition to the normal auto-generated citation(). 2014-01-19 Dirk Eddelbuettel * DESCRIPTION: Finalize release 0.4.0 with initial Windows support * src/S4_classes.h: Adapt to S4 access function renaming in Rcpp 0.10.7 and later, with special thanks to Kevin Ushey 2014-01-13 Murray Stokely * inst/unitTests/runit.int64.R (test.int64): Skip this test with a warning if running on a machine with sizeof(long long) < 8. * vignettes/RProtoBuf-intro.Rnw (subsection{64-bit integer issues}): Hide 64-bit field accesses with if conditional to avoid running code that won't work on platforms without 64-bit long longs. * DESCRIPTION (Version): Increment to 0.4.0 2014-01-09 Murray Stokely * R/read.R: Add a logical argument 'partial' to readASCII that accepts uninitialized message fragments. * src/wrapper_Descriptor.cpp (rprotobuf): Idem * inst/unitTests/runit.addressbook.R (test.ascii): Add tests for above. 2014-01-04 Murray Stokely * R/wrapper_CodedInputStream.R: Accept numeric size arguments for ReadRaw and ReadString to make this more user friendly for interactive use by calling as.integer() as needed. * R/00classes.R (P): Add missing object prameters in ZeroCopyInputStream calls to ReadRaw and ReadString. * inst/unitTests/data/encoding.proto: Add example messages used in the encoding documentation. * inst/unitTests/runit.serialize.R (test.encoding): Add tests verifying the exact byte serialization as described in the encoding documentation. (test.arrayinputstream): Add new test of ArrayInputStreams. * src/wrapper_ZeroCopyInputStream.cpp (rprotobuf): Add BEGIN/END_RCPP macros to gracefully catch exceptions and return them as R language errors. * src/streams.cpp (rprotobuf): Idem. * man/ArrayInputStream-class.Rd: Add some examples of using ArrayInputStream. 2014-01-04 Dirk Eddelbuettel * src: Deprecate files SocketCopyingInputStream.{cpp,h}, sisocks.h as the current RProtoBuf design does not provide networking capabilities 2013-12-31 Murray Stokely * src/wrapper_Message.cpp: Fix type coercion bug in add() method for uint32s and add a missing break statement that erroneously raised an error when setting some int64 fields. Make more function arguments const and remove a superfluous BEGIN_RCPP/END_RCPP. Also add comment about long-vector support. All of these fixes were highlighted by Flexelint. * inst/unitTests/runit.int64.R (test.int64): Add tests for above. * inst/unitTests/runit.extremevalues.R (test.uint32): Idem. * src/wrapper_FieldDescriptor.cpp (RPB_HANDLE_CASE): Remove unreachable statement in a macro. * src/wrapper_Descriptor.cpp (rprotobuf): Remove unused variable, rename another variable for clarity, and add some TODOs. * src/wrapper_FileDescriptor.cpp (rprotobuf): Idem. * src/DescriptorPoolLookup.cpp (rprotobuf): Remove unreachable statement. * src/extensions.cpp: Remove unused header. * src/mutators.cpp (rprotobuf): Update code to check for Long vectors and use the safer R_xlen_t type everywhere. Protocol Buffers repeated fields seem to be limited to int size indices as with normal R vectors. * src/rprotobuf.h: Idem 2013-12-30 Murray Stokely * inst/unitTests/runit.extremevalues.R (test.uint32): Add test verifying that we can store 2^32 - 1 properly in repeated or optional protobuf fields. * src/extractors.cpp (rprotobuf): Correct handling of uint32 for repeated fields. * src/wrapper_Message.cpp (rprotobuf): Remove Rf_error in favor of Rcpp_error so that we throw an exception and unwind the stack to deallocate objects before jumping to R's error. * src/DescriptorPoolLookup.cpp (rprotobuf): Idem. * R/size.R: Correct an incorrect method name that prevented size<- from working. * man/size.Rd: Document the behavior of size<- * (C++): Ran all the C++ files and most of the headers through clang-format as described in the STYLE file on R-Forge. Basically, we now use 4-char indents and 100-char limit for line wrap. 2013-12-28 Murray Stokely * src/extractors.cpp (rprotobuf): Correct handling of uint32 for single values greater than 2^31 by returning as R numeric types to avoid losing precision since R doesn't have unsigned int types but C++ does. Works around an Rcpp bug https://r-forge.r-project.org/tracker/index.php?func=detail&aid=1360&group_id=155&atid=637 2013-12-27 Murray Stokely * src/mutators.cpp: Refactor setMessageField into four separate functions, correct a few minor typos, and wrap everything in a try/catch block so we catch any exceptions generated by Rcpp::as or other functions and forward it along to an R-language stop() error instead of terminating our R instance. * src/mutators.cpp (rprotobuf): Add more helpful error message specifying which element of a list is of the wrong type, and what the expected type is, when setting a list of messages. * inst/unitTests/runit.messages.R (test.message): Add unit tests for our handling of setting repeated message fields. * src/wrapper_Message.cpp: Add const qualifier to field_desc throughout file. * src/exceptions.cpp: Remove ancient exceptions handling code, migrate codebase to use standard exception classes and helper functions from Rcpp. * R/exceptions.R (throw): idem. 2013-12-26 Murray Stokely * src/mutators.cpp: Support setting int32 values with character vectors of a decimal number, as we do by necessity for int64s. Also, refuse to set non-repeated bools to NA, just as we do for repeated bool fields by raising a stop() error since protocol buffer bools are 2-valued and NA is the third-value of R bools. * inst/unitTests/runit.int32.R (test.int32): Add tests for above. * NAMESPACE: Add missing export for .DollarNames EnumValueDescriptor to allow completion on that class. * R/00classes.R: Update FileDescriptor '$' dispatch to work properly for the names of fields defined in the FileDescriptor, instead of just returning NULL even for types returned by $ completion. * vignettes/RProtoBuf-intro.Rnw (subsubsection{Retrieve fields}): Update the type mapping tables to note that characters can be extracted from 64-bit integer types with the RProtoBuf.int64AsString type and note that int32 and int64 types can be set to character values representing decimal numbers. * TODO: Update todo list. * inst/unitTests/runit.bool.R (test.bool): Add more tests about boolean values, NA handling, etc. 2013-12-23 Murray Stokely * DESCRIPTION (Version): increment. * inst/proto/addressbook.proto: Reserved extension fields in tutorial.Person. * vignettes/RProtoBuf-intro.Rnw (subsection{Extensions}): Added a new section documenting protocol buffer extensions. 2013-12-20 Murray Stokely * R/00classes.R: Correct a bug that incorrectly dispatched as.character() when as.list() was called on Descriptor objects. 2013-12-18 Murray Stokely * R/completion.R (.DollarNames.EnumValueDescriptor): Add $-completion for EnumValueDescriptor and FileDescriptor classes as with other S4 RProtoBuf classes here. * R/00classes.R (P): Ensure that the FileDescriptor $name() method accepts a boolean for full paths just like the generic name() method. * R/wrapper_EnumDescriptor.R: Add better error checking. Expect exceptions if wrong types are provided for arguments rather than just returning NULL. 2013-12-18 Dirk Eddelbuettel * vignettes/RProtoBuf-intro.Rnw: Use with vignette builder * vignettes/RProtoBuf-quickref.Rnw: Idem * vignettes/RProtoBuf-unitTests.Rnw: Rewritten / simplified * DESCRIPTION: Increased dependency to R (>= 3.0.0) * configure.in: No longer create vignettes/Makefile 2013-12-17 Murray Stokely * R/completion.R (.DollarNames.Message): Add missing methods to dollar completion list for Message and Descriptor objects * vignettes/RProtoBuf/RProtoBuf.Rnw (subsection{messages}): Add missing methods to Table 2 (Messages) and add a table and new sections of methods for Descriptor objects. 2013-12-16 Dirk Eddelbuettel * src/rprotobuf.h (RCPP_ENUM_TRAITS): Don't use extern "C" on internal functions returning atomistic or C++ types 2013-12-15 Dirk Eddelbuettel * DESCRIPTION (Version): Release 0.3.2 * tests/runUnitTests.R: Minor rewrite and cleanup from doRUnit.R with a tip of the hat to Murray's version in his HistogramTools package 2013-12-14 Dirk Eddelbuettel * src/lookup.cpp (rprotobuf): Descrictor pools attached directly * R/lookup.R (attachDescriptorPool): No longer attach them here * src/rprotobuf.h: Updated function declaration 2013-12-14 Murray Stokely * src/mutators.cpp (rprotobuf): Fix a bug which incorrectly prevented users from setting raw non-repeated fields under some circumstances. * inst/unitTests/runit.bytes.R (test.all): Verify raw(10) can be set to required bytes fields to verify correct behavior for use case mentioned on rprotobuf-yada list. 2013-11-13 Murray Stokely * R/extensions.R: Give a user friendly error message if someone tries to set an extension to a message of the wrong type instead of causing a C++ check failure that terminates your R session. * inst/unitTests/runit.extensions.R (test.extension): Add test. 2013-10-23 Murray Stokely * src/lookup.cpp (rprotobuf): Remove stop() error in object table assignment as this was causing errors with the '<<-' operator in any code using RProtoBuf. * inst/unitTests/runit.import.R (test.assign.in.global): Add a test for the above. 2013-09-16 Murray Stokely * DESCRIPTION (Version): Increment to 0.3.1.1. * R/00classes.R: Improve show method for EnumValueDescriptor and add enum_type to '$' dispatch. * man/EnumValueDescriptor-class.Rd: Add examples and document missing methods. * src/wrapper_EnumValueDescriptor.cpp (rprotobuf): Add missing enum_type method. * inst/unitTests/runit.enums.R (test.enums): Add more tests. 2013-09-13 Dirk Eddelbuettel * DESCRIPTION (Version): Release 0.3.1 2013-09-13 Murray Stokely * vignettes/Makefile.in: Update configure to output R_HOME to the vignette makefile so we can avoid the use of a non-portable GNU makefile extension here. 2013-09-12 Murray Stokely * src/RcppMacros.h: Add Rcpp compatibility macros which are simplified versions of the now deprecated ones from Rcpp. 2013-09-11 Murray Stokely * configure.in: If pkg-config is not available add -lprotobuf to PKG_LIBS. This makes it easier to install on MacOS X 10.8, for example. 2013-09-06 Murray Stokely * src/rprotobuf.cpp (rprotobuf): Include the name of the field that could not be found in exceptions in getFieldDescriptor (errors from update / new, etc.). 2013-09-03 Murray Stokely * inst/NEWS.Rd: Summarize changes since the last release. * vignettes/RProtoBuf/RProtoBuf.Rnw: Add a new section on 64-bit issues, document the RProtoBuf.int64AsString option, break out the 'other approaches' section from the 'future work', and fix a few typos. 2013-08-30 Dirk Eddelbuettel * NAMESPACE: Import 'file_path_as_absolute' from package tools, and the two functions needed from the RCurl package * R/*R: Updated several files which no longer need 'tools:::' prefix * DESCRIPTION: Updated Depends: and Imports accordingly 2013-08-29 Murray Stokely * R/zzz.R (.onLoad): Rename option controlling int64 handling with package name prefix. * inst/unitTests/runit.int64.R (test.int64): Idem * src/extractors.cpp (rprotobuf): Add templated function to reduce code duplication in last changelist. * src/mutators.cpp (rprotobuf): Idem 2013-08-27 Murray Stokely * src/extractors.cpp (rprotobuf): Add support for a new option("int64AsString") that controls whether extractors for 64-bit integer fields return character strings or use Rcpp's default wrap type which coerces to numeric, possibly losing precision. * R/zzz.R (.onLoad): Initialize options("int64AsString" = FALSE). * src/Rcppsupport.h (rprotobuf): Add RepeatedFieldImporter classes for int64 and uint64 that return strings instead of int64s. * src/mutators.cpp (rprotobuf): Add support for setting int64 fields as R character vectors that are converted to int64 or uint64 C++ types with std::stringstream. This allows the user to get around the lack of 64-bit integer support in R when working interactively with RProtoBufs where a large precision number or identifier needs to be stored. * inst/unitTests/runit.int64.R: Add tests for the above. 2013-08-21 Murray Stokely * inst/unitTests/runit.addressbook.R (test.ascii): Add more tests. * src/wrapper_Descriptor.cpp (rprotobuf): Add better error handling for readASCII of text strings rather than returning an empty proto. * R/extensions.R: Add checks to ensure that a valid extension FieldDescriptor is passed to getExtension and setExtension. * inst/unitTests/runit.int64.R (test.int64): Add a test illustrating how RProtoBuf is broken in handling 64-bit integers (commented out for now). * man/P.Rd: Document behavior for extensions. * inst/unitTests/runit.extensions.R (test.extension): Add more tests. * src/wrapper_Message.cpp (rprotobuf): Add function for returning the number of extensions set in this message, to improve show() output. * src/rprotobuf.cpp (rprotobuf): Add support for looking up extensions by name and returning FieldDescriptors. * R/00classes.R (P): Add support for returning extension descriptors. 2013-07-14 Dirk Eddelbuettel * inst/unitTests/runit.extensions.R (test.extension): Comment-out test for setExtension against enum, at least for now * vignettes/RProtoBuf/RProtoBuf.Rnw: Added Murray to Authors, at last * vignettes/RProtoBuf-unitTests.Rnw: Idem * vignettes/RProtoBuf-quickref/RProtoBuf-quickref.Rnw: Idem 2013-07-13 Murray Stokely * inst/NEWS.Rd: Summarize new features since the last CRAN release last year. * DESCRIPTION: Increment version to 0.3. 2013-07-13 Dirk Eddelbuettel * man/Message-class.Rd: Added \alias entries for getExtension and setExtension * DESCRIPTION: Incremented Version to separate current test builds from previous release * DESCRIPTION: Removed 'MinimumLibProtoVersion: 2002000' which we no longer need as that version of Protocol Buffers was released a rather long time ago * R/zzz.R: Check for minimal version is now commented-out 2013-07-12 Murray Stokely * src/extensions.cpp: Replace custom extractor and mutator with call to existing functions in mutators.cpp and extractors.cpp that can be used for extensions and any other field type. * src/extensions.R: Idem * vignettes/RProtoBuf/RProtoBuf.Rnw: Document getExtension, setExtension methods. * man/Message-class.Rd: Idem * src/rprotobuf.h: Remove unused desc argument to extractFieldAsSEXP. * src/extractors.cpp: Idem * inst/unitTests/runit.extensions.R: Add additional tests for nested enum and message type extensions. 2013-07-11 Murray Stokely * R/extensions.R: Implement getExtension, setExtension methods. * src/extensions.cpp: Implement getExtension, setExtension. * R/set.R: Add a TODO noting these functions are undocumented. * R/00classes.R: Add setExtension, getExtension extractors for message objects. * R/completion.R: Add setExtension, getExtension. * NAMESPACE: Add setExtension, getExtension. * src/DescriptorPoolLookup.cpp: Add top-level extensions to descriptor pool. * src/rprotobuf.h: Add helper function for getting field descriptor objects. * src/wrapper_FileDescriptor.cpp: Add support for extensions to getMemberNames and as_list * src/lookup.cpp: Add support for looking up extensions. * inst/unitTests/runit.extensions.R: Add basic test for the above. 2013-07-10 Murray Stokely * man/aslist.Rd: Document behavior for enum and file descriptors and be more sparing with \dontrun in examples. * man/EnumDescriptor-class.Rd: Be more sparing with \dontrun in examples so we run more test code. * man/add.Rd: Idem * man/clone.Rd: Idem * man/Descriptor-class.Rd: Idem * man/FieldDescriptor-class.Rd: Idem * man/FileDescriptor-class.Rd: Idem * man/is_extension.Rd: Idem * man/label.Rd: Idem * man/Message-class.Rd: Idem * man/number.Rd: Idem * man/P.Rd: Idem * man/readProtoFiles.Rd: Idem * man/type.Rd: Idem * man/with.Rd: Idem * man/RProtoBuf-package.Rd: Idem 2013-07-08 Murray Stokely * R/has.R: add a has method for EnumDescriptor objects to return a logical indicating if the named constant exists or not. * R/00classes.R: fix a typo that prevented the length method from working properly for EnumDescriptor objects. Use this functionality to add the number of constants in the show method for EnumDescriptors. * R/wrapper_EnumValueDescriptor.R: add a number method to return the numeric value of this enum constant. * man/has.Rd: Add example of the above. * man/number.Rd: Add example of the above. * man/EnumDescriptor-class.Rd: Add example of the above. * man/EnumValueDescriptor-class.Rd: Add example of the above. 2013-02-21 Murray Stokely * R/00classes.R: add filename and package slots to FileDescriptor S4 class and provide more user-friendly show() methods for Messages and FileDescriptors that provide more context about the contained data. * src/S4_classes.h: populate package and filename slots when a FileDescriptor is created based on fields from the underlying C++ object. * inst/unitTests/runit.addressbook.R: add a basic test for FileDescriptors. * man/FileDescriptor-class.Rd: document the new slots in FileDescriptor and add examples. 2012-10-03 Murray Stokely * src/mutators.cpp (rprotobuf): Fix bug where LENGTH() is used on non-vectors when setting a repeated message field to a single Message object. This caused non-deterministic behavior after memory was read from a random location. * inst/unitTests/runit.golden.message.R (test.repeatedFields): Add tests for this case. 2012-09-25 Dirk Eddelbuettel * man/is_extension.Rd: Use \dontrun on examples as we cannot reload the same proto file twice * man/label.Rd: Idem * man/number.Rd: Idem * man/type.Rd: Idem 2012-09-24 Murray Stokely * R/has.R: Distinguish between non-existant and not-set fields in a message by returning NULL in the former case. * R/00classes.R: Idem * src/wrapper_Message.cpp (rprotobuf): Idem * inst/unitTests/runit.golden.message.R (test.has): Add test. * man/has.Rd: Add example of the above. 2012-09-21 Murray Stokely * Fix a bug causing segfaults in containing_type(). * R/containing_type.R: Return NULL instead of invalid descriptors when there is no containing type for an object. * src/S4_classes.h: Check for NULL pointers in the contructors for S4_Descriptor and S4_EnumDescriptor as these methods are called on the return value of e.g. containing_type() in the protobuf API without checking the return alue. * man/containing_type-methods.Rd: Add examples section showing cases where there is and is not a containing_type. * inst/unitTests/runit.FieldDescriptor.R (test.FieldDescriptor.class): Add tests for the above. 2012-08-21 Murray Stokely * src/mutators.cpp: Add better input checking when setting an optional field to avoid an uncaught exception that would kill the R session, and add a test. * inst/unitTests/runit.golden.message.R (test.invalidAssignments): Add test for this. 2012-08-18 Dirk Eddelbuettel * Applied two more patches by Murray and Karl: - Make readASCII() more robust to error conditions; adds tests to catch them. - Correct type(), cpp_type(), and label() methods when as.string=TRUE; add unit tests for these methods, add examples to the Rd files for these methods, and adds type and cpp_type to the NAMESPACE file where they were previously absent. 2012-08-09 Dirk Eddelbuettel * Applied two more patches by Murray: - R/wrapper_FieldDescriptor.R: correct more '_' and '__' mismatches - man/*: update manual pages for style, add examples - src/mutators.cpp: fix bug in handling of NA in boolean vectors - inst/unitTests/runit.golden.message.R: add unit test 2012-08-08 Dirk Eddelbuettel * DESCRIPTION: Release 0.2.5 * src/mutators.cpp: Applied patch by Murray to correctly deal with nested protocol buffer definitions * inst/unitTests/runit.nested.R: Added test from Murray * inst/unitTests/data/nested.proto: Nested protbuf def from Murray * R/serialize.R: Added patch by Murray to not serialize uninitalized protocol buffers (with missing required fields) * inst/unitTests/runit.serialize.R: Added tests for this * /man/add.Rd: Add patch by Murray for stylistic improvement and added examples * inst/NEWS.Rd: Converted NEWS file to .Rd format * DESCRIPTION: Changed Maintainer: to single person per CRAN Policy * vignettes/: Moved from inst/doc/ per CRAN Policy 2012-05-15 Dirk Eddelbuettel * DESCRIPTION: Release 0.2.4 * R/zzz.R (.onLoad): pass lib.loc=libname to readProtoFiles * R/internals.R (readProtoFiles): use lib.loc argument * man/readProtoFiles.Rd: Document new lib.loc argument 2012-05-14 Dirk Eddelbuettel * R/lookup.R: comment-out unlockBinding() which R CMD check does not like as it turns out that we do not need it here anyway * inst/unitTests/runit.addressbook.R (test.ascii): Small correction by converting to character before comparing * DESCRIPTION: Remove Depends: on int64 which is no longer used, lower Depends: on Rcpp to 0.9.6 which should be sufficient 2012-05-13 Dirk Eddelbuettel * src/rprotobuf.h: Added '#include ' to make g++-4.7 happy * src/*: Reversed out SVN revisions 426 to 434 related to int64 2012-04-07 Dirk Eddelbuettel * R/zzz.R: Add 'lib.loc=libname' to packageDescription() call as requested by Brian Ripley 2012-03-20 Dirk Eddelbuettel * Applied another patch by Murray: - src/mutators.cpp: Deal with case of repeated strings - inst/unitTests/runit.golden.message.R: test for this case 2011-07-17 Dirk Eddelbuettel * Applied another patch by Murray: - src/wrapper_Descriptor.cpp: Add missing readASCIIFromConnection C++ function that was called in read.R but not defined. - R/read.R: Remove an _ in the readASCII C++ functions to match the naming convention of the other nearby functions. - man/readASCII.Rd: Add examples of ascii export/import of messages. - inst/unitTests/runit.addressbook.R: Add tests of ascii export/import of messages. 2011-07-07 Dirk Eddelbuettel * src/wrapper_FileDescriptor.cpp (rprotobuf): Applied patch by Murray to correct a cut & paste error in variable name 2011-04-12 Dirk Eddelbuettel * DESCRIPTION: Release 0.2.3 2011-04-10 Dirk Eddelbuettel * src/extractors.cpp: Protect UINT64 and INT64 inside of #ifdef test for RCPP_HAS_LONG_LONG_TYPES which we now need for g++ 4.5 or later * src/mutators.cpp: Idem * wrapper_FieldDescriptor.cpp: Idem 2011-04-05 Dirk Eddelbuettel * inst/doc/Makefile: Call R and Rscript relative to R_HOME/bin 2011-04-04 Dirk Eddelbuettel * inst/doc/Makefile: Do not call clean in all target 2011-01-12 Dirk Eddelbuettel * R/with.R: Use envir= argument to eval() 2011-01-11 Dirk Eddelbuettel * DESCRIPTION: Release 0.2.2 * inst/THANKS: Added new file to say Thanks! 2011-01-10 Dirk Eddelbuettel * Applied another patch by Murray Stokely providing: - R/internals.R: generalise readProtoFiles() adding 'pattern' arg - man/readProtoFiles.Rd: documenting new 'pattern' argument - src/DescriptorPoolLookup.cpp: enhanced error message - inst/unitTests/runit.golden.message.R: new unit test for repeated fields fixed (which was issue addressed earlier) - inst/runit.import.R: new unit test for non-existing file 2011-01-07 Dirk Eddelbuettel * Applied patch by Murray Stokely providing all the following: - src/S4_classes.h: new 'name' and 'full_name' slots - R/00classes.R: idem - R/wrapper_EnumDescriptor.R: fix typo now permitting function call - src/wrapper_EnumDescriptor.cpp: add a bounds check - src/wrapper_EnumValueDescriptor.cpp: add a new name method - inst/unitTests/runit.enums.R: add new unit test * man/EnumValueDescriptor-class.Rd: Add documentation for name and full_name 2010-10-20 Dirk Eddelbuettel * inst/doc/Makefile: do not remove the pdf in 'clean' * inst/unitTests/runit.addressbook.R: stick 'book' into global env. 2010-10-18 Dirk Eddelbuettel * DESCRIPTION: Release 0.2.1 * ChangeLog: moved from inst/ * inst/NEWS: moved from top-level to that it gets installed with package 2010-10-13 Dirk Eddelbuettel * src/*: applied patch by Koert Kuipers to support raw bytes * inst/unitTests/runit.bytes.R: also added unit test by Koert 2010-09-11 Dirk Eddelbuettel * DESCRIPTION: Release 0.2.0 2010-09-10 Romain Francois * man/readASCII.Rd: Rd documentation for readASCII 2010-08-20 Romain Francois * R/read/.R: New readASCII method 2010-08-12 Romain Francois * src/*: restore R CMD check 2010-08-04 Dirk Eddelbuettel * inst/unitTests/runit.addressbook.R: start of new unit tests 2010-07-30 Romain Francois * src/*: correct many small errors so that the vignette builds again 2010-02-02 Dirk Eddelbuettel * configure.in: More rigorous checks for ProtoBuf headers, library, mininal version as well as availability of pkg-config. 2010-02-01 Dirk Eddelbuettel * inst/ChangeLog: added 2010-02-01 Romain Francois * Release 0.1-0 * [r274] /pkg/man/RProtoBuf-package.Rd: tidying up * [r273] /pkg/inst/doc/unitTests-results: * [r272] /pkg/inst/doc/unitTests/RProtoBuf-unitTests.R: minor cleanups for the unit test vignette (same as in Rcpp) * [r271] /pkg/DESCRIPTION, /pkg/inst/doc/unitTests/RProtoBuf-unitTests.R: OS_type: unix (for now) * [r270] /pkg/DESCRIPTION: version bump to 0.1-0 * [r269] /pkg/inst/doc/Makefile, /pkg/inst/doc/RProtoBuf-unitTests.R[DEL], /pkg/inst/doc/RProtoBuf-unitTests.Rnw, /pkg/inst/doc/unitTests, /pkg/inst/doc/unitTests/RProtoBuf-unitTests.R: minor cleanups for the unit test vignette (same as in Rcpp) 2010-01-23 Romain Francois * [r268] /pkg/inst/doc/Makefile, /pkg/inst/doc/RProtoBuf-unitTests.R, /pkg/inst/doc/RProtoBuf-unitTests.Rnw, /pkg/inst/doc/RProtoBuf-unitTests.Rnw.brew[DEL]: borrow simpler unit test vignette from Rcpp 2010-01-11 Romain Francois * [r267] /pkg/DESCRIPTION, /pkg/src/DescriptorPoolLookup.cpp, /pkg/src/rprotobuf.h: adapt to Rcpp::wrap 2009-12-29 Romain Francois * [r266] /pkg/DESCRIPTION, /pkg/inst/unitTests/runit.golden.message.R, /pkg/src/DescriptorPoolLookup.cpp: adapt to recent changes in Rcpp 2009-12-27 Romain Francois * [r265] /pkg/inst/unitTests/data/unittest.proto, /pkg/inst/unitTests/runit.golden.message.R, /pkg/src/constructors.cpp, /pkg/src/lookup.cpp: enum might not have containing types, which used to bomb new_RS4_EnumDescriptor. fixed and unit tested * [r264] /pkg/inst/doc, /pkg/inst/doc/Makefile, /pkg/inst/doc/RProtoBuf-unitTests.Rnw.brew: a bug in .tearDown prevented the unit tests from working properly 2009-12-26 Romain Francois * [r263] /pkg/inst/doc/Makefile, /pkg/inst/doc/RProtoBuf-unitTests.Rnw.brew, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/inst/unitTests/runit.golden.message.R[CPY], /pkg/inst/unitTests/runit.golden_message.R[DEL]: force cleaning pdfs before vignette creation * [r262] /pkg/src/lookup.cpp: not sorting manually anymore since std::set does it for free * [r261] /pkg/inst/unitTests/runit.draft.R[DEL], /pkg/inst/unitTests/runit.error.R[DEL], /pkg/inst/unitTests/runit.golden_message.R: started adding some proper tests * [r260] /pkg/DESCRIPTION, /pkg/src/DescriptorPoolLookup.cpp: using Rcpp >= 0.7.0.2 * [r259] /pkg/R/internals.R, /pkg/inst/unitTests/data/unittest.proto, /pkg/src/DescriptorPoolLookup.cpp, /pkg/src/DescriptorPoolLookup.h, /pkg/src/RSourceTree.cpp, /pkg/src/RSourceTree.h, /pkg/src/RWarningErrorCollector.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: fixed importing and use set in DescriptorPoolLookup * [r258] /pkg/inst/doc/Makefile, /pkg/inst/unitTests/data, /pkg/inst/unitTests/data/unittest.proto, /pkg/inst/unitTests/data/unittest_import.proto: added utils as default package in vignette makefile 2009-12-26 Dirk Eddelbuettel * [r257] /pkg/tests/doRUnit.R: wd var no longer needed either 2009-12-26 Romain Francois * [r256] /pkg/DESCRIPTION, /pkg/NAMESPACE, /pkg/cleanup, /pkg/inst/doc/Makefile, /pkg/inst/doc/RProtoBuf-unitTests.Rnw[DEL], /pkg/inst/doc/RProtoBuf-unitTests.Rnw.brew, /pkg/inst/unitTests/runTests.R, /pkg/inst/unitTests/runit.draft.R, /pkg/inst/unitTests/runit.error.R, /pkg/tests/doRUnit.R: revised display of information in unit test vignette * [r255] /pkg/NAMESPACE, /pkg/R/unit_tests.R, /pkg/inst/doc/RProtoBuf-unitTests.Rnw, /pkg/inst/unitTests, /pkg/inst/unitTests/runTests.R, /pkg/inst/unitTests/runit.draft.R, /pkg/tests, /pkg/tests/doRUnit.R: prepare for unit testing * [r254] /pkg/DESCRIPTION, /pkg/src/as.cpp, /pkg/src/rprotobuf.h: remove the external_pointer experiment (now in package CPP) 2009-12-24 Dirk Eddelbuettel * [r253] /pkg/src/ConnectionCopyingOutputStream.cpp, /pkg/src/ConnectionInputStream.cpp, /pkg/src/ConnectionOutputStream.cpp, /pkg/src/as.cpp, /pkg/src/rprotobuf.cpp: as.cpp: comment out unused rcpp namespace to fix odd "does not build on amd64" issue found by Saptarshi other files: minimal tweaks to shut 'g++ -Wall' up 2009-12-22 Romain Francois * [r252] /pkg/src/rprotobuf.h: .3 2009-12-20 Romain Francois * [r251] /pkg/DESCRIPTION, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/src/DescriptorPoolLookup.cpp, /pkg/src/as.cpp, /pkg/src/rprotobuf.h: start to use Rcpp 0.7.0 features 2009-12-19 Romain Francois * [r250] /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/src/rprotobuf.h: more completion for streams, and removed debugging messages which resulted in vignette crashing 2009-12-18 Romain Francois * [r249] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/wrapper_CodedOutputStream.R, /pkg/man/ZeroCopyOutputStream-class.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: added methods for ZeroCopyOutputStream (actually using CodedOutputStream) 2009-12-17 Romain Francois * [r248] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/wrapper_CodedInputStream.R, /pkg/R/wrapper_CodedOutputStream.R, /pkg/man/ZeroCopyOutputStream-class.Rd, /pkg/man/completion.Rd, /pkg/src/streams.cpp: +WriteRaw.ZeroCopyOutoutStream and added completion for ZeroCopy{In,Out}outStream * [r247] /pkg/NAMESPACE, /pkg/R/wrapper_CodedInputStream.R, /pkg/man/ZeroCopyInputStream-class.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: +ReadVarint64 2009-12-16 Romain Francois * [r246] /pkg/NAMESPACE, /pkg/R/wrapper_CodedInputStream.R, /pkg/man/ZeroCopyInputStream-class.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: +ReadLittleEndian{32,64} * [r245] /pkg/NAMESPACE, /pkg/R/wrapper_CodedInputStream.R, /pkg/man/ZeroCopyInputStream-class.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: +ReadVarint32 * [r244] /pkg/NAMESPACE, /pkg/R/wrapper_CodedInputStream.R, /pkg/man/ZeroCopyInputStream-class.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: +ReadString * [r243] /pkg/src/rprotobuf.h: passing R CMD check again. solved problem related to finalization of Message* * [r242] /pkg/inst/doc/RProtoBuf-unitTests.Rnw[DEL]: * [r241] /pkg/inst/doc/RProtoBuf-unitTests.Rnw: * [r240] /pkg/R/wrapper_CodedInputStream.R, /pkg/man/ArrayInputStream-class.Rd, /pkg/src/extractors.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h, /pkg/src/set.cpp, /pkg/src/streams.cpp: passing R CMD check again. solved problem related to finalization of Message* * [r239] /pkg/src/constructors.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: finalizer for messages * [r238] /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: also use ZeroCopyOutputStreamWrapper * [r237] /pkg/R/wrapper_CodedInputStream.R, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: using ZeroCopyInputStreamWrapper * [r236] /pkg/src/ZeroCopyOutputStreamWrapper.cpp, /pkg/src/ZeroCopyOutputStreamWrapper.h: + ZeroCopyOutputStreamWrapper C++ class * [r235] /pkg/src/ZeroCopyInputStreamWrapper.cpp, /pkg/src/ZeroCopyInputStreamWrapper.h, /pkg/src/streams.cpp: added ZeroCopyInputStreamWrapper that wraps together a zcis and a cis, so that there is no need to create a cis each time 2009-12-15 Romain Francois * [r234] /pkg/NAMESPACE, /pkg/man/ZeroCopyInputStream-class.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: added ReadRaw.ZeroCopyInputSytream * [r233] /pkg/src/ConnectionCopyingInputStream.cpp, /pkg/src/ConnectionCopyingInputStream.h, /pkg/src/ConnectionCopyingOutputStream.cpp, /pkg/src/ConnectionCopyingOutputStream.h, /pkg/src/ConnectionInputStream.cpp, /pkg/src/ConnectionInputStream.h, /pkg/src/ConnectionOutputStream.cpp, /pkg/src/ConnectionOutputStream.h, /pkg/src/read.cpp, /pkg/src/streams.cpp: rework Connection{In,Out}putStream * [r232] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/wrapper_ZeroCopyInputStream.R, /pkg/man/ConnectionInputStream-class.Rd, /pkg/man/ConnectionInputStream-methods.Rd, /pkg/man/ConnectionOutputStream-class.Rd, /pkg/man/ConnectionOutputStream-methods.Rd, /pkg/src/ConnectionInputStream.cpp, /pkg/src/ConnectionInputStream.h, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: added (R side of and not yet functional, but hey) Connection{In,Out}putStream classes and methods 2009-12-14 Romain Francois * [r231] /pkg/man/Descriptor-class.Rd[CPY], /pkg/man/EnumDescriptor-class.Rd[CPY], /pkg/man/EnumValueDescriptor-class.Rd[CPY], /pkg/man/FieldDescriptor-class.Rd[CPY], /pkg/man/FileDescriptor-class.Rd[CPY], /pkg/man/Message-class.Rd[CPY], /pkg/man/MethodDescriptor-class.Rd[CPY], /pkg/man/ServiceDescriptor-class.Rd[CPY], /pkg/man/protobufDescriptor-class.Rd[DEL], /pkg/man/protobufEnumDescriptor-class.Rd[DEL], /pkg/man/protobufEnumValueDescriptor-class.Rd[DEL], /pkg/man/protobufFieldDescriptor-class.Rd[DEL], /pkg/man/protobufFileDescriptor-class.Rd[DEL], /pkg/man/protobufMessage-class.Rd[DEL], /pkg/man/protobufMethodDescriptor-class.Rd[DEL], /pkg/man/protobufServiceDescriptor-class.Rd[DEL]: remove the 'protobuf' prefix of Rd file names * [r230] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/wrapper_ZeroCopyInputStream.R, /pkg/man/FileInputStream-class.Rd, /pkg/man/FileInputStream-methods.Rd, /pkg/man/FileOutputStream-class.Rd, /pkg/man/FileOutputStream-methods.Rd, /pkg/man/GetErrno-methods.Rd, /pkg/man/SetCloseOnDelete-methods.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: +File{In,Out}putStream classes and methods * [r229] /pkg/NAMESPACE, /pkg/R/wrapper_ZeroCopyInputStream.R, /pkg/man/ArrayOutputStream-class.Rd, /pkg/man/ArrayOutputStream-methods.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: +ArrayOutputStream class and constructor method 2009-12-12 Romain Francois * [r228] /pkg/R/wrapper_ZeroCopyInputStream.R: added some invisible's * [r227] /pkg/R/00classes.R, /pkg/R/wrapper_ZeroCopyInputStream.R, /pkg/man/ArrayInputStream-class.Rd, /pkg/man/ArrayInputStream-methods.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: allow block size for ArrayInputStream * [r226] /java/src/org/rproject/rprotobuf/ProtobufHttpServer.java, /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/wrapper_ZeroCopyInputStream.R, /pkg/man/ArrayInputStream-class.Rd, /pkg/man/ArrayInputStream-methods.Rd, /pkg/man/ZeroCopyInputStream-class.Rd, /pkg/man/ZeroCopyOutputStream-class.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: +ArrayInputStream class 2009-12-11 Romain Francois * [r225] /pkg/R/00classes.R, /pkg/R/wrapper_ZeroCopyInputStream.R, /pkg/man/ZeroCopyInputStream-class.Rd, /pkg/man/ZeroCopyOutputStream-class.Rd, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: +ZeroCopyOutputStream S4 class * [r224] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/wrapper_ZeroCopyInputStream.R, /pkg/man/BackUp-methods.Rd, /pkg/man/ByteCount-methods.Rd, /pkg/man/Next-methods.Rd, /pkg/man/Skip-methods.Rd, /pkg/man/ZeroCopyInputStream-class.Rd, /pkg/src/mutators.cpp, /pkg/src/rpc_over_http.cpp, /pkg/src/rprotobuf.h, /pkg/src/streams.cpp: +ZeroCopyInputStream S4 class * [r223] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/man/CodedInputStream-class.Rd[DEL], /pkg/src/CodedInputStream_wrapper.cpp[DEL], /pkg/src/constructors.cpp, /pkg/src/rprotobuf.h: changed my mind, don't want to expose CodedInputStream (yet) * [r222] /pkg/src/CodedInputStream_wrapper.cpp, /pkg/src/constructors.cpp, /pkg/src/rprotobuf.h: added constructor and finalizer for CodedInputStream * [r221] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/rpc.R, /pkg/man/CodedInputStream-class.Rd, /pkg/man/RpcHTTP-class.Rd, /pkg/src/SocketCopyingInputStream.cpp, /pkg/src/rpc_over_http.cpp, /pkg/src/rprotobuf.h: added RpcHTTP@root slot, and CodedInputStream class 2009-12-10 Romain Francois * [r220] /pkg/inst/proto/helloworld.proto, /pkg/src/DescriptorPoolLookup.cpp, /pkg/src/DescriptorPoolLookup.h, /pkg/src/lookup.cpp, /pkg/src/methods.cpp, /pkg/src/read.cpp, /pkg/src/rpc_over_http.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: now using runtime descriptors correctly * [r219] /java/build.xml, /java/proto/helloworld.proto, /java/src/org/rproject/rprotobuf/HelloWorldInvoker.java, /java/src/org/rproject/rprotobuf/ProtobufHandler.java, /java/src/org/rproject/rprotobuf/ProtobufMethodInvoker.java, /java/src/org/rproject/rprotobuf/ProtobufMethodPool.java: added hello world example * [r218] /java/src/org/rproject/rprotobuf/EchoInvoker.java, /java/src/org/rproject/rprotobuf/MethodImplementation.java, /java/src/org/rproject/rprotobuf/ProtobufMethodPool.java: added annotation (not used yet) * [r217] /java/build.xml, /java/proto, /java/proto/addressbook.proto, /java/src/org/rproject/rprotobuf/EchoInvoker.java, /java/src/org/rproject/rprotobuf/ProtobufMethodInvoker.java, /java/src/org/rproject/rprotobuf/ProtobufMethodPool.java: more generic java code 2009-12-09 Romain Francois * [r216] /java/start.sh: added convenience start script for the java server * [r215] /java/src/org/rproject/rprotobuf/ProtobufMethodPool.java: more flexible java server code * [r214] /java/README, /java/build.xml, /java/lib, /java/lib/protobuf-java-2.2.0.jar, /java/src/org/rproject/rprotobuf/EchoInvoker.java, /java/src/org/rproject/rprotobuf/ProtobufHandler.java, /java/src/org/rproject/rprotobuf/ProtobufMethodInvoker.java, /java/src/org/rproject/rprotobuf/ProtobufMethodPool.java, /pkg/inst/proto/addressbook.proto: more flexible java server code * [r213] /java/README, /java/src/org/rproject/rprotobuf/ProtobufHandler.java, /java/src/org/rproject/rprotobuf/ProtobufHttpServer.java, /java/src/org/rproject/rprotobuf/ProtobufMethodInvoker.java, /java/src/org/rproject/rprotobuf/ProtobufMethodPool.java, /pkg/src/rpc_over_http.cpp: functional rpc over http R client and java server 2009-12-08 Romain Francois * [r212] /pkg/src/channel.cpp[DEL], /pkg/src/rpc_over_http.cpp, /pkg/src/rprotobuf.h: started to work on rpc over http * [r211] /java, /java/build.properties, /java/build.xml, /java/src, /java/src/org, /java/src/org/rproject, /java/src/org/rproject/rprotobuf, /java/src/org/rproject/rprotobuf/ProtobufHttpServer.java: added dummy java rpc over http server * [r210] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/rpc.R, /pkg/man/RpcHTTP-class.Rd, /pkg/man/invokeLocally.Rd: added invoke, removed invokeLocally, added RpcHTTP class to represent the rpc over http protocol 2009-12-08 Dirk Eddelbuettel * [r209] /pkg/R/listPeople.R, /pkg/src/clear_person_R.cpp, /pkg/src/list_people_R.cpp: minor robustification against empty addressbook file 2009-12-06 Dirk Eddelbuettel * [r208] /pkg/NAMESPACE, /pkg/R/addPerson.R, /pkg/man/addPerson.Rd, /pkg/src/clear_person_R.cpp: added clearPerson() support with kudos to Romain as usual :) 2009-12-06 Romain Francois * [r207] /pkg/inst/proto/protobufrpc.proto[DEL]: not using protobuf-rpc anymore * [r206] /pkg/src/DescriptorPoolLookup.cpp, /pkg/src/EnumDescriptor_wrapper.cpp, /pkg/src/FieldDescriptor_wrapper.cpp, /pkg/src/Makevars.in, /pkg/src/RSourceTree.cpp, /pkg/src/RSourceTree.h, /pkg/src/RWarningErrorCollector.cpp, /pkg/src/RWarningErrorCollector.h, /pkg/src/RconnectionCopyingInputStream.h, /pkg/src/ServiceDescriptor_wrapper.cpp, /pkg/src/SocketCopyingInputStream.h, /pkg/src/add.cpp, /pkg/src/as.cpp, /pkg/src/ascharacter.cpp, /pkg/src/aslist.cpp, /pkg/src/channel.cpp, /pkg/src/clear.cpp, /pkg/src/clone.cpp, /pkg/src/completion.cpp, /pkg/src/constructors.cpp, /pkg/src/containing_type.cpp, /pkg/src/extractors.cpp, /pkg/src/field_count.cpp, /pkg/src/fileDescriptor.cpp, /pkg/src/has.cpp, /pkg/src/identical.cpp, /pkg/src/initialized.cpp, /pkg/src/length.cpp, /pkg/src/lookup.cpp, /pkg/src/merge.cpp, /pkg/src/methods.cpp, /pkg/src/mutators.cpp, /pkg/src/name.cpp, /pkg/src/read.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h, /pkg/src/serialize.cpp, /pkg/src/set.cpp, /pkg/src/size.cpp, /pkg/src/swap.cpp: not using using * [r205] /pkg/src/RTcpChannel.cpp[DEL]: removing * [r204] /pkg/src/RTcpChannel.h[DEL]: removing * [r203] /pkg/src/RTcpChannel.cpp: ıı * [r202] /pkg/src/RTcpChannel.h: ıı * [r201] /pkg/DESCRIPTION, /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/EnumDescriptor_wrapper.R, /pkg/R/EnumValueDescriptor_wrapper.R, /pkg/R/FieldDescriptor_wrapper.R, /pkg/R/MethodDescriptor_wrapper.R, /pkg/R/ServiceDescriptor_wrapper.R, /pkg/R/add.R, /pkg/R/aslist.R, /pkg/R/clear.R, /pkg/R/clone.R, /pkg/R/completion.R, /pkg/R/containing_type.R, /pkg/R/debug_string.R, /pkg/R/descriptor.R, /pkg/R/exceptions.R, /pkg/R/field_count.R, /pkg/R/has.R, /pkg/R/identical.R, /pkg/R/initialized.R, /pkg/R/merge.R, /pkg/R/read.R, /pkg/R/rpc.R, /pkg/R/serialize.R, /pkg/R/set.R, /pkg/R/size.R, /pkg/R/swap.R, /pkg/R/with.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/P.Rd, /pkg/man/RProtoBuf-package.Rd, /pkg/man/add.Rd, /pkg/man/asMessage.Rd, /pkg/man/aslist.Rd, /pkg/man/bytesize.Rd, /pkg/man/clear.Rd, /pkg/man/clone.Rd, /pkg/man/completion.Rd, /pkg/man/containing_type-methods.Rd, /pkg/man/descriptor.Rd, /pkg/man/enum_type.Rd, /pkg/man/enum_type_count.Rd, /pkg/man/fetch.Rd, /pkg/man/field.Rd, /pkg/man/field_count.Rd, /pkg/man/fileDescriptor.Rd, /pkg/man/has.Rd, /pkg/man/invokeLocally.Rd, /pkg/man/isInitialized.Rd, /pkg/man/is_extension.Rd, /pkg/man/label.Rd, /pkg/man/merge.Rd, /pkg/man/name.Rd, /pkg/man/nested_type.Rd, /pkg/man/nested_type_count.Rd, /pkg/man/number.Rd, /pkg/man/protobufDescriptor-class.Rd, /pkg/man/protobufEnumDescriptor-class.Rd, /pkg/man/protobufEnumValueDescriptor-class.Rd, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/man/protobufFileDescriptor-class.Rd, /pkg/man/protobufMessage-class.Rd, /pkg/man/protobufMethodDescriptor-class.Rd, /pkg/man/protobufServiceDescriptor-class.Rd, /pkg/man/read.Rd, /pkg/man/set.Rd, /pkg/man/size.Rd, /pkg/man/sizegets.Rd, /pkg/man/swap.Rd, /pkg/man/type.Rd, /pkg/man/with.Rd, /pkg/src/add.cpp, /pkg/src/constructors.cpp, /pkg/src/extractors.cpp, /pkg/src/lookup.cpp, /pkg/src/merge.cpp, /pkg/src/mutators.cpp, /pkg/src/read.cpp, /pkg/src/rprotobuf.cpp: removing the protobuf prefix of the S4 classes 2009-12-05 Romain Francois * [r200] /pkg/NAMESPACE, /pkg/R/MethodDescriptor_wrapper.R, /pkg/R/completion.R, /pkg/R/rpc.R, /pkg/man/protobufMethodDescriptor-class.Rd: + {in,out}put_type.MethodDescriptor * [r199] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/ServiceDescriptor_wrapper.R, /pkg/R/completion.R, /pkg/man/protobufServiceDescriptor-class.Rd: + method.ServiceDescriptor * [r198] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/EnumValueDescriptor_wrapper.R, /pkg/R/ServiceDescriptor_wrapper.R, /pkg/man/protobufServiceDescriptor-class.Rd, /pkg/src/ServiceDescriptor_wrapper.cpp, /pkg/src/rprotobuf.h: added some methods for ServiceDescriptor * [r197] /pkg/R/EnumDescriptor_wrapper.R, /pkg/man/protobufEnumValueDescriptor-class.Rd: added EnumValueDescriptor class * [r196] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/EnumDescriptor_wrapper.R, /pkg/R/FieldDescriptor_wrapper.R, /pkg/R/completion.R, /pkg/R/debug_string.R, /pkg/R/field_count.R, /pkg/man/protobufDescriptor-class.Rd, /pkg/man/protobufEnumDescriptor-class.Rd, /pkg/man/protobufEnumValueDescriptor-class.Rd, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/src/EnumDescriptor_wrapper.cpp, /pkg/src/as.cpp, /pkg/src/ascharacter.cpp, /pkg/src/constructors.cpp, /pkg/src/rprotobuf.h: added EnumValueDescriptor class 2009-12-05 Dirk Eddelbuettel * [r195] /pkg/inst/doc/RProtoBuf.Rnw: added some stuff near the beginning about 'static' use which motivates the dynamic use nicely some spit and polish for intro as well 2009-12-04 Romain Francois * [r194] /pkg/R/00classes.R, /pkg/man/protobufEnumDescriptor-class.Rd, /pkg/src/EnumDescriptor_wrapper.cpp, /pkg/src/rprotobuf.h: +length.protobufEnumDescriptor * [r193] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/FieldDescriptor_wrapper.R, /pkg/R/completion.R, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/src/FieldDescriptor_wrapper.cpp, /pkg/src/rprotobuf.h: +{message,enum}_type.FieldDescriptor * [r192] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/FieldDescriptor_wrapper.R, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/src/FieldDescriptor_wrapper.cpp, /pkg/src/rprotobuf.h: + {has_default_value,default_value}.FieldDescriptor~ * [r191] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/FieldDescriptor_wrapper.R, /pkg/R/completion.R, /pkg/man/label.Rd, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/src/FieldDescriptor_wrapper.cpp, /pkg/src/rprotobuf.h: +{label,is_repeated,is_required,is_optional}.FieldDescriptor * [r190] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/FieldDescriptor_wrapper.R, /pkg/R/completion.R, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/man/type.Rd, /pkg/src/FieldDescriptor_wrapper.cpp, /pkg/src/rprotobuf.h: +{type.cpp_type}.FieldDescriptor * [r189] /pkg/src/FieldDescriptor_wrapper.cpp, /pkg/src/rprotobuf.h: +number.FieldDescriptor * [r188] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/FieldDescriptor_wrapper.R, /pkg/R/completion.R, /pkg/man/number.Rd, /pkg/man/protobufFieldDescriptor-class.Rd: +number.FieldDescriptor * [r187] /pkg/TODO: updated TODO * [r186] /pkg/R/field_count.R: minor fix * [r185] /pkg/NAMESPACE, /pkg/R/FieldDescriptor_wrapper.R, /pkg/R/field_count.R, /pkg/man/is_extension.Rd, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/src/FieldDescriptor_wrapper.cpp, /pkg/src/rprotobuf.h: + is_extension.FieldDescriptor * [r184] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/field_count.R, /pkg/man/enum_type.Rd, /pkg/man/protobufDescriptor-class.Rd, /pkg/src/field_count.cpp, /pkg/src/rprotobuf.h: + enum_type.Descriptor method 2009-12-03 Romain Francois * [r183] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/field_count.R, /pkg/man/nested_type.Rd, /pkg/man/protobufDescriptor-class.Rd, /pkg/src/field_count.cpp, /pkg/src/rprotobuf.h: +nested_type.Descriptor method * [r182] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/field_count.R, /pkg/man/enum_type_count.Rd, /pkg/man/field.Rd, /pkg/man/protobufDescriptor-class.Rd, /pkg/src/field_count.cpp, /pkg/src/rprotobuf.h: added field.Descriptor method * [r181] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/field_count.R, /pkg/man/nested_type_count.Rd, /pkg/man/protobufDescriptor-class.Rd, /pkg/src/field_count.cpp, /pkg/src/rprotobuf.h: nested_type_count.protobufDescriptor * [r180] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/field_count.R, /pkg/man/field_count.Rd, /pkg/man/protobufDescriptor-class.Rd, /pkg/src/field_count.cpp, /pkg/src/rprotobuf.h: + field_count.protobufDescriptor method * [r179] /pkg/DESCRIPTION: added BugReports description field * [r178] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/containing_type.R, /pkg/man/containing_type-methods.Rd, /pkg/man/protobufDescriptor-class.Rd, /pkg/man/protobufEnumDescriptor-class.Rd, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/src/containing_type.cpp, /pkg/src/rprotobuf.h: added containing_type.protobuf{Descriptor,FieldDescriptor,EnumDescriptor} 2009-12-03 Dirk Eddelbuettel * [r177] /pkg/NAMESPACE, /pkg/R/addPerson.R, /pkg/man/addPerson.Rd, /pkg/man/listPeople.Rd, /pkg/src/add_person_R.cpp: added simple addPerson() R function, manual page and C++ implementation 2009-12-02 Romain Francois * [r176] /pkg/src/initialized.cpp: isInitialized gains the names of the fields that are not initialized * [r175] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/asMessage.Rd, /pkg/src/as.cpp, /pkg/src/rprotobuf.h: added asMessage function * [r174] /pkg/NAMESPACE, /pkg/man/throw.Rd[DEL], /pkg/src/exceptions.cpp: throw not exported anymore * [r173] /pkg/man/protobufFileDescriptor-class.Rd: added name.protobufFileDescriptor * [r172] /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/src/name.cpp, /pkg/src/rprotobuf.h: added more fileDescriptor methods * [r171] /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/descriptor.R, /pkg/R/rpc.R, /pkg/man/fileDescriptor.Rd, /pkg/src/fileDescriptor.cpp, /pkg/src/rprotobuf.h: added more fileDescriptor methods * [r170] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/aslist.R, /pkg/man/aslist.Rd, /pkg/man/protobufServiceDescriptor-class.Rd, /pkg/src/aslist.cpp, /pkg/src/completion.cpp, /pkg/src/rprotobuf.h: added as.list.protobufServiceDescriptor * [r169] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/rpc.R, /pkg/man/completion.Rd, /pkg/man/protobufServiceDescriptor-class.Rd, /pkg/src/extractors.cpp, /pkg/src/rprotobuf.h: misc * [r168] /pkg/R/00classes.R, /pkg/man/name.Rd, /pkg/src/name.cpp, /pkg/src/rprotobuf.h: more name methods * [r167] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/name.Rd, /pkg/man/protobufServiceDescriptor-class.Rd, /pkg/src/name.cpp, /pkg/src/rprotobuf.h: added name method and implementations for Decriptor and FieldDescriptor 2009-12-01 Romain Francois * [r166] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/aslist.R, /pkg/R/completion.R, /pkg/man/aslist.Rd, /pkg/man/completion.Rd, /pkg/man/protobufFileDescriptor-class.Rd, /pkg/src/aslist.cpp, /pkg/src/completion.cpp, /pkg/src/rprotobuf.h: added as.list.protobufFileDescriptor * [r165] /pkg/R/debug_string.R, /pkg/src/ascharacter.cpp, /pkg/src/rprotobuf.h: completion, toString, as.character for protobufFileDescriptor * [r164] /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/man/completion.Rd, /pkg/man/protobufFileDescriptor-class.Rd: completion, toString, as.character for protobufFileDescriptor * [r163] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/descriptor.R, /pkg/R/rpc.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/fileDescriptor.Rd, /pkg/man/protobufFileDescriptor-class.Rd, /pkg/src/constructors.cpp, /pkg/src/fileDescriptor.cpp, /pkg/src/rprotobuf.h: added protobufFileDescriptor S4 class + fileDescriptor method 2009-11-30 Romain Francois * [r162] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/rpc.R, /pkg/src/RTcpChannel.cpp, /pkg/src/RTcpChannel.h, /pkg/src/SocketCopyingInputStream.cpp, /pkg/src/SocketCopyingInputStream.h, /pkg/src/channel.cpp, /pkg/src/rprotobuf.h: playing with sockets 2009-11-23 Romain Francois * [r161] /www/index.php: update the page 2009-11-22 Romain Francois * [r160] /pkg/src/RTcpChannel.cpp, /pkg/src/RTcpChannel.h: * [r159] /pkg/src/sisocks.h: added sisocks.h header from Rserve * [r158] /pkg/src/Makevars.in, /pkg/src/RTcpChannel.cpp, /pkg/src/RTcpChannel.h: slowly putting things in place for rpc (inspired from the protobuf-rpc project) * [r157] /pkg/src/serialize.cpp: discovered the SerializeToArray method, simplify code * [r156] /pkg/src/mutators.cpp, /pkg/src/rprotobuf.h, /pkg/src/serialize.cpp: allow messages as input of string and bytes fields * [r155] /pkg/inst/proto/protobufrpc.proto, /pkg/src: added proto file from protobufrpc project * [r154] /pkg/R/set.R, /pkg/src/Makevars.in, /pkg/src/mutators.cpp: allow raw vector as input of string or bytes fields 2009-11-21 Romain Francois * [r153] /www/index.php: start to make the project page * [r152] /pkg/DESCRIPTION: suggesting svUnit (unit tests) * [r151] /pkg/inst/doc, /pkg/inst/doc/RProtoBuf-unitTests.Rnw: added (empty) unit test vignette * [r150] /pkg/inst/doc/RProtoBuf.Rnw: update the main vignette to show reading from payload * [r149] /pkg/R/read.R, /pkg/R/serialize.R, /pkg/man/read.Rd, /pkg/src/read.cpp, /pkg/src/rprotobuf.h: reading messages from raw vector (payload) * [r148] /pkg/NEWS, /pkg/R/read.R: open the connection at start on read 2009-11-18 Romain Francois * [r147] /pkg/inst/proto/addressbook.proto: for the quickref vignette in one page 2009-11-18 Dirk Eddelbuettel * [r146] /pkg/cleanup: also remove temp files for quickref vignette 2009-11-17 Romain Francois * [r145] /pkg/src/mutators.cpp, /pkg/src/size.cpp, /pkg/src/swap.cpp: removed the conditional compiling for protobuf 2.1 * [r144] /pkg/man/invokeLocally.Rd, /pkg/man/protobufMethodDescriptor-class.Rd, /pkg/man/protobufServiceDescriptor-class.Rd: pleasing R CMD check 2009-11-16 Dirk Eddelbuettel * [r143] /pkg/configure, /pkg/configure.in: further improvements to configure via pkg-config * [r142] /pkg/cleanup: let cleanup nuke a few LaTeX files 2009-11-16 Romain Francois * [r141] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/debug_string.R, /pkg/R/rpc.R, /pkg/TODO, /pkg/inst/proto/addressbook.proto, /pkg/man/protobufMethodDescriptor-class.Rd, /pkg/man/protobufServiceDescriptor-class.Rd, /pkg/src/ascharacter.cpp, /pkg/src/constructors.cpp, /pkg/src/lookup.cpp, /pkg/src/methods.cpp, /pkg/src/read.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: starting to play with (local) rpc services 2009-11-16 Dirk Eddelbuettel * [r140] /pkg/configure: updated configure * [r139] /pkg/DESCRIPTION, /pkg/configure.in: updated configure.in to use pkg-config updated DESCRIPTON 2009-11-16 Romain Francois * [r138] /pkg/inst/doc: * [r137] /pkg/inst/doc/RProtoBuf-quickref.Rnw: added quick ref vignette * [r136] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/add.R, /pkg/R/completion.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/add.Rd, /pkg/src/add.cpp, /pkg/src/mutators.cpp, /pkg/src/rprotobuf.h: added add method to add values to a repeated field 2009-11-14 Romain Francois * [r135] /pkg/NAMESPACE, /pkg/R/identical.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/protobufMessage-class.Rd, /pkg/src/identical.cpp, /pkg/src/rprotobuf.h: added all.equal * [r134] /pkg/DESCRIPTION, /pkg/man/RProtoBuf-package.Rd: updated DESCRIPTION and package help page * [r133] /pkg/R/identical.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/protobufMessage-class.Rd: added == and != * [r132] /pkg/NAMESPACE, /pkg/R/identical.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/protobufMessage-class.Rd, /pkg/src/identical.cpp, /pkg/src/rprotobuf.h: added identical method to compare two messages * [r131] /pkg/inst/doc/RProtoBuf.Rnw: some more vignette content 2009-11-13 Romain Francois * [r130] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/debug_string.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/protobufDescriptor-class.Rd, /pkg/man/protobufEnumDescriptor-class.Rd, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/man/protobufMessage-class.Rd: added toString as an alias to as.character * [r129] /pkg/inst/doc/RProtoBuf.Rnw: some more vignette content * [r128] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/set.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/fetch.Rd, /pkg/src/extractors.cpp, /pkg/src/rprotobuf.h, /pkg/src/set.cpp: added fetch method * [r127] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/set.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/completion.Rd, /pkg/man/set.Rd, /pkg/src/mutators.cpp, /pkg/src/rprotobuf.h: added set method 2009-11-13 Dirk Eddelbuettel * [r126] /pkg/inst/doc/RProtoBuf.Rnw: a few more updates * [r125] /pkg/inst/doc/RProtoBuf.Rnw: few small updates and tweaks * [r124] /pkg/DESCRIPTION: updated DESCRIPTION 2009-11-12 Romain Francois * [r123] /pkg/inst/doc/RProtoBuf.Rnw: some more vignette content * [r122] /pkg/R/00classes.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/src/rprotobuf.h: added $ for protobufFieldDescriptor (for completeness) * [r121] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/descriptor.R, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/man/descriptor.Rd, /pkg/src/extractors.cpp: added descriptor method * [r120] /pkg/R/internals.R, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: added (unexported) function getProtobufLibVersion * [r119] /pkg/src/mutators.cpp: use the correct version for the test #if GOOGLE_PROTOBUF_VERSION < 200200 * [r118] /pkg/src/mutators.cpp: use the correct version for the test #if GOOGLE_PROTOBUF_VERSION < 200200 * [r117] /pkg/inst/doc/RProtoBuf.Rnw: no hardcoding Sweave location * [r116] /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/inst/doc/RProtoBuf.Rnw: some more vignette content 2009-11-12 Dirk Eddelbuettel * [r115] /pkg/src/mutators.cpp: make -Wall happy by commenting out one var, and providing more switch targets 2009-11-12 Romain Francois * [r114] /pkg/inst/doc/RProtoBuf.Rnw: some more vignette content * [r113] /pkg/inst/doc/RProtoBuf.Rnw, /pkg/src/size.cpp, /pkg/src/swap.cpp: correct swaping messages with 2.1 libproto * [r112] /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/swap.R, /pkg/demo/addressbook.R, /pkg/inst/doc/RProtoBuf.Rnw: make swap use 1-based indexing * [r111] /pkg/R/00classes.R, /pkg/inst/doc/RProtoBuf.Rnw: some more content on the vignette * [r110] /pkg/src/rprotobuf.cpp: added some code to control which version of the libprotobuf we require (currently 2.1, but will be 2.2 soon) * [r109] /pkg/DESCRIPTION, /pkg/NAMESPACE, /pkg/R/zzz.R, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: added some code to control which version of the libprotobuf we require (currently 2.1, but will be 2.2 soon) * [r108] /pkg/inst/doc, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/src/mutators.cpp, /pkg/src/size.cpp, /pkg/src/swap.cpp: added some conditional compiling to make it work with libprotobuf < 2.2 2009-11-11 Romain Francois * [r107] /pkg/inst/doc/RProtoBuf.Rnw, /pkg/inst/proto/addressbook.proto: some more content for the vignette * [r106] /pkg/inst/doc/RProtoBuf.tex[DEL]: removed tex file * [r105] /pkg/inst/doc, /pkg/inst/doc/RProtoBuf.Rnw, /pkg/inst/doc/RProtoBuf.tex, /pkg/inst/proto/addressbook.proto: started vignette * [r104] /pkg/DESCRIPTION: Rcpp >= 0.6.8 2009-11-10 Romain Francois * [r103] /pkg/R/swap.R, /pkg/demo/addressbook.R: some more code in demo * [r102] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/swap.R, /pkg/man/swap.Rd, /pkg/src/clear.cpp, /pkg/src/rprotobuf.h, /pkg/src/swap.cpp: added swap * [r101] /pkg/R/00classes.R, /pkg/R/clear.R, /pkg/R/completion.R, /pkg/man/clear.Rd, /pkg/src/clear.cpp, /pkg/src/rprotobuf.h, /pkg/src/size.cpp: added field argument to clear * [r100] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/size.R, /pkg/man/size.Rd, /pkg/man/sizegets.Rd, /pkg/src/rprotobuf.h, /pkg/src/size.cpp: + size<- * [r99] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/size.R, /pkg/man/size.Rd, /pkg/src/mutators.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h, /pkg/src/size.cpp: added size method * [r98] /pkg/src/mutators.cpp: minot tweaks * [r97] /pkg/src/mutators.cpp: fail mutation before resizing * [r96] /pkg/src/mutators.cpp, /pkg/src/rprotobuf.h: nicer and more efficient mutator code (discovered Reflection->RemoveLast method) * [r95] /pkg/R/00classes.R: using a switch in $ * [r94] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/clear.R, /pkg/man/clear.Rd, /pkg/src/aslist.cpp, /pkg/src/clear.cpp, /pkg/src/mutators.cpp, /pkg/src/rprotobuf.h: added clear method * [r93] /pkg/src/RWarningErrorCollector.cpp, /pkg/src/RWarningErrorCollector.h, /pkg/src/rprotobuf.cpp: properly implement MultiFileErrorCollector to send an R warning instead of printing stuff to cout * [r92] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/man/protobufMessage-class.Rd, /pkg/src/extractors.cpp, /pkg/src/mutators.cpp: added [[ and [[<- methods for messages using the declared tag number 2009-11-09 Romain Francois * [r91] /pkg/src/DescriptorPoolLookup.cpp, /pkg/src/DescriptorPoolLookup.h, /pkg/src/lookup.cpp, /pkg/src/rprotobuf.cpp: maintain list of currently known types in attached DescriptorPool 2009-11-09 Dirk Eddelbuettel * [r90] /pkg/src/list_people_R.cpp: remove RcppList implementation which we now get from Rcpp (>= 0.6.7) 2009-11-09 Romain Francois * [r89] /pkg/src/rprotobuf.cpp: using RSourceTree instead of DiskSourceTree * [r88] /pkg/src/RSourceTree.cpp, /pkg/src/RSourceTree.h: adding a simple SourceTree implementation * [r87] /pkg/DESCRIPTION, /pkg/man/RProtoBuf-package.Rd: required Rcpp >= 0.6.7 * [r86] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/initialized.R, /pkg/man/isInitialized.Rd, /pkg/man/protobufMessage-class.Rd, /pkg/src/initialized.cpp, /pkg/src/rprotobuf.h: added isInitialized method * [r85] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/man/protobufMessage-class.Rd, /pkg/src/length.cpp, /pkg/src/rprotobuf.h: added length method for messages * [r84] /pkg/R/internals.R: minor * [r83] /pkg/NAMESPACE, /pkg/R/size.R, /pkg/demo/io.R, /pkg/man/RProtoBuf-package.Rd, /pkg/man/bytesize.Rd, /pkg/src/rprotobuf.h, /pkg/src/size.cpp: added bytesize method * [r82] /pkg/TODO, /pkg/demo/00Index, /pkg/demo/addressbook.R, /pkg/demo/io.R, /pkg/src/RconnectionCopyingInputStream.cpp: added io demo showing how to use binary connections to read and write messages 2009-11-08 Romain Francois * [r81] /pkg/src/RconnectionCopyingInputStream.cpp: minor doc tweaks * [r80] /pkg/src/RconnectionCopyingInputStream.cpp, /pkg/src/RconnectionCopyingInputStream.h: factoring out getReadBinCall * [r79] /pkg/src/RconnectionCopyingInputStream.cpp: minor doc tweaks * [r78] /pkg/R/read.R, /pkg/src/RconnectionCopyingInputStream.cpp, /pkg/src/RconnectionCopyingInputStream.h, /pkg/src/read.cpp, /pkg/src/rprotobuf.h: reading from binary connections * [r77] /pkg/R/read.R, /pkg/R/serialize.R, /pkg/man/read.Rd, /pkg/src/read.cpp, /pkg/src/serialize.cpp: silence R CMD check 2009-11-08 Dirk Eddelbuettel * [r76] /pkg/man/protobufMessage-class.Rd: small correction to tail of example * [r75] /pkg/src/rprotobuf.h: make it work with version 2.1 of ProtoBuf 2009-11-08 Romain Francois * [r74] /pkg/man/protobufMessage-class.Rd: minor doc tweaks * [r73] /pkg/R/serialize.R, /pkg/man/protobufMessage-class.Rd: minor doc tweaks * [r72] /pkg/R/serialize.R, /pkg/src/rprotobuf.h, /pkg/src/serialize.cpp: workaround for serializing to binary connections * [r71] /pkg/R/serialize.R, /pkg/src/connections.h, /pkg/src/read.cpp, /pkg/src/rprotobuf.h, /pkg/src/serialize.cpp: use partial on serialize and parse to allow message lacking required fields 2009-11-07 Dirk Eddelbuettel * [r70] /pkg/DESCRIPTION: finally set Date svn property on this to have the Date filled in automatically 2009-11-06 Romain Francois * [r69] /pkg/R/serialize.R, /pkg/man/protobufMessage-class.Rd, /pkg/src/read.cpp, /pkg/src/rprotobuf.h, /pkg/src/serialize.cpp: serialize message to a file * [r68] /pkg/man/read.Rd: mention the read pseudi method * [r67] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/completion.R, /pkg/R/read.R, /pkg/man/read.Rd, /pkg/src/read.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: reading messages from files 2009-11-05 Dirk Eddelbuettel * [r66] /pkg/src/Makevars.in: simplification in that we no longer need to list all .cpp files as dependants 2009-11-05 Romain Francois * [r65] /pkg/TODO: added services to the TODO list * [r64] /pkg/DESCRIPTION: added more urls and a MailingList field 2009-11-05 Dirk Eddelbuettel * [r63] /pkg/demo/00Index: make 'R CMD check' happy * [r62] /pkg/src/Makevars.in: adjusted Makevars.in for addressbook.proto in inst/proto/ * [r61] /pkg/inst/proto/addressbook.proto[CPY], /pkg/src/addressbook.proto[DEL]: moved addressbook.proto from src/ to inst/proto/ * [r60] /pkg/inst/examples/addressbook.proto[DEL], /pkg/inst/proto/addressbook.proto[DEL]: removed two extra addressbook.proto files 2009-11-05 Romain Francois * [r59] /pkg/NAMESPACE, /pkg/R/merge.R, /pkg/demo/00Index, /pkg/man/merge.Rd, /pkg/src/Makevars.in, /pkg/src/merge.cpp, /pkg/src/rprotobuf.h: + merge * [r58] /pkg/R/clone.R: added clone 2009-11-04 Romain Francois * [r57] /pkg/demo, /pkg/demo/addressbook.R: added demo file 2009-11-04 Dirk Eddelbuettel * [r56] /pkg/src/aslist.cpp, /pkg/src/mutators.cpp, /pkg/src/update.cpp: commented-out two unused variables and init'ed another, all to make 'g++ -Wall' 2009-11-04 Romain Francois * [r55] /pkg/TODO: added TODO * [r54] /pkg/DESCRIPTION, /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/aslist.R, /pkg/R/completion.R, /pkg/R/debug_string.R, /pkg/R/has.R, /pkg/R/with.R, /pkg/man/P.Rd, /pkg/man/RProtoBuf-package.Rd, /pkg/man/aslist.Rd, /pkg/man/clone.Rd, /pkg/man/completion.Rd, /pkg/man/has.Rd, /pkg/man/protobufDescriptor-class.Rd, /pkg/man/protobufEnumDescriptor-class.Rd, /pkg/man/protobufFieldDescriptor-class.Rd, /pkg/man/protobufMessage-class.Rd, /pkg/man/with.Rd, /pkg/src/Makevars.in, /pkg/src/ascharacter.cpp, /pkg/src/aslist.cpp, /pkg/src/clone.cpp, /pkg/src/completion.cpp, /pkg/src/connections.h, /pkg/src/constructors.cpp, /pkg/src/exceptions.cpp, /pkg/src/extractors.cpp, /pkg/src/has.cpp, /pkg/src/lookup.cpp, /pkg/src/mutators.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h, /pkg/src/serialize.cpp, /pkg/src/update.cpp: lots of updates. fully working mutators 2009-11-02 Dirk Eddelbuettel * [r53] /pkg/src/completion.cpp, /pkg/src/constructors.cpp, /pkg/src/exceptions.cpp, /pkg/src/extractors.cpp, /pkg/src/lookup.cpp, /pkg/src/mutators.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h, /pkg/src/serialize.cpp: switch from four namespace to just one * [r52] /pkg/src/extractors.cpp: add default initialisation for SEXP to keep g++ -Wall happy 2009-11-02 Romain Francois * [r51] /pkg/src/Makevars.in, /pkg/src/constructors.cpp, /pkg/src/mutators.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: minimal implementation of mutators (only non-repeated fields atm) * [r50] /pkg/R/zzz.R, /pkg/src/lookup.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: enable lookup mechanism (using full path for now) 2009-11-01 Romain Francois * [r49] /pkg/R/zzz.R: added readProtoFiles to simplify importing of proto definitions from package * [r48] /pkg/NAMESPACE, /pkg/R/internals.R, /pkg/R/zzz.R, /pkg/inst/proto, /pkg/inst/proto/addressbook.proto, /pkg/man/readProtoFiles.Rd: added readProtoFiles to simplify importing of proto definitions from packages 2009-10-31 Romain Francois * [r47] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/man/throw.Rd: +Rd.throw * [r46] /pkg/man/protobufFieldDescriptor-class.Rd: +Rd.protobufFieldDescriptor * [r45] /pkg/man/protobufEnumDescriptor-class.Rd: added Rd for protobufEnumDescriptor * [r44] /pkg/R/00classes.R, /pkg/man/protobufDescriptor-class.Rd: added protobufDescriptor type * [r43] /pkg/man/protobufMessage-class.Rd: added Rd for protobufMessage class * [r42] /pkg/NAMESPACE, /pkg/R/debug_string.R, /pkg/man/P.Rd, /pkg/man/listPeople.Rd, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: added Rd for P, implement as.character for protobufMessage and protobufDescriptor * [r41] /pkg/src/constructors.cpp, /pkg/src/rprotobuf.cpp: minor fixes * [r40] /pkg/NAMESPACE, /pkg/R/serialize.R, /pkg/src/Makevars.in, /pkg/src/rprotobuf.h, /pkg/src/serialize.cpp: hooks for serialize method for protobufMessage * [r39] /pkg/NAMESPACE, /pkg/R/exceptions.R, /pkg/src/Makevars.in, /pkg/src/exceptions.cpp, /pkg/src/extractors.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: start playing with Exception handling, we need to call throwException instead of Rf_error in the c code 2009-10-30 Romain Francois * [r38] /pkg/R/exceptions.R, /pkg/src/extractors.cpp: extracting repeated fields, for now repeated messages are just returned as list of 'protobufMessage' objects * [r37] /pkg/NAMESPACE, /pkg/R/completion.R, /pkg/src/Makevars.in, /pkg/src/completion.cpp, /pkg/src/constructors.cpp, /pkg/src/extractors.cpp, /pkg/src/rprotobuf.h: implemented completions for Messages (giving field names) and Descriptors (fields, enums and nested types) * [r36] /pkg/src/constructors.cpp, /pkg/src/extractors.cpp, /pkg/src/fieldtypes.h, /pkg/src/rprotobuf.h: implement extraction of (almost) all types from messages with $ (missing ENUM type) * [r35] /pkg/R/00classes.R, /pkg/src/Makevars.in, /pkg/src/extractors.cpp, /pkg/src/fieldtypes.h, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: prepare the field extraction * [r34] /pkg/R/00classes.R, /pkg/src/constructors.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: implement new.protobufMessage that generates a new mutable Message using the generated Message factory * [r33] /pkg/src/constructors.cpp: some more doc in constructors.cpp * [r32] /pkg/R/internals.R, /pkg/src/constructors.cpp, /pkg/src/lookup.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: use R_NO_REMAP and Rf_ prefixes to avoid name clashes (install, error, ...) 2009-10-29 Romain Francois * [r31] /pkg/R/00classes.R, /pkg/R/internals.R, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: removed hard coded path * [r30] /pkg/R/00classes.R, /pkg/src/constructors.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: added enum types to $.Descriptor * [r29] /pkg/R/00classes.R: added $ extraction of nested types or fields by name * [r28] /pkg/R/00classes.R, /pkg/src/constructors.cpp: added $ extraction of nested types or fields by name * [r27] /pkg/src/Makevars.in, /pkg/src/constructors.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: added $ extraction of nested types or fields by name * [r26] /pkg/R/00classes.R, /pkg/src/rprotobuf.cpp: grab the descriptor from the pool in getProtobufDescriptor 2009-10-29 Dirk Eddelbuettel * [r25] /pkg/src/lookup.cpp: add two simple return() statements to make 'g++ -Wall' happy 2009-10-29 Romain Francois * [r24] /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/R/internals.R, /pkg/src/rprotobuf.cpp: grab the descriptor from the pool in getProtobufDescriptor * [r23] /pkg/R/00classes.R, /pkg/R/internals.R, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: collect information about a proto file * [r22] /pkg/src/lookup.cpp, /pkg/src/rprotobuf.h: objects returns character(0) instead of NULL, more consistent with attach( new.env() ) * [r21] /pkg/R/lookup.R, /pkg/src/Makevars.in, /pkg/src/lookup.cpp, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: added skeleton for lookup mechanism * [r20] /pkg/DESCRIPTION, /pkg/NAMESPACE, /pkg/R/00classes.R, /pkg/src/Makevars.in, /pkg/src/rprotobuf.cpp, /pkg/src/rprotobuf.h: skeleton for R S4 classes representing proto messages as external pointers 2009-10-27 Dirk Eddelbuettel * [r19] /pkg/src/Makevars.in: add CXXPICFLAGS which is needed on amd64 * [r18] /pkg/src/list_people_R.cpp: corrected listPeopleAsList() for special case of person 3 with no phones * [r17] /pkg/src/Makevars.in: support configure and automated build of all pieces incl conversion from proto file to header and source and then object * [r16] /pkg/src/list_people_R.cpp: suppress one more set of g++ warning, align function names * [r15] /pkg/cleanup: add more cleanup targets * [r14] /pkg/R/listPeople.R: align function names with C++ source * [r13] /pkg/configure, /pkg/configure.in: added configure support * [r12] /pkg/src/Makevars[DEL], /pkg/src/Makevars.in[CPY]: moved to Makevars.in and configure, also re-create header and source from proto * [r11] /pkg/src/addressbook.pb.cc[DEL], /pkg/src/addressbook.pb.h[DEL]: removed as they are now recreated * [r10] /pkg/configure.in: beginnings of a configure script, not yet ready * [r9] /pkg/NAMESPACE: added (nested) list support * [r8] /pkg/man/listPeople.Rd: documented (nested) list support * [r7] /pkg/R/listPeople.R: added (nested) list support * [r6] /pkg/src/list_people_R.cpp: add support for R lists, possibly nested this was a good test for Rcpp and should get folded into Rcpp * [r5] /pkg/src/addressbook.pb.cc, /pkg/src/addressbook.pb.h: rebuild with Ubuntu protoc -- probably need to farm this out to a proper Makefile or Makevar target 2009-10-22 Dirk Eddelbuettel * [r4] /pkg/src/list_people_R.cpp: add support for case of no phone entry * [r3] /pkg/src/Makevars: add -lpthread to PKG_LIBS * [r2] /pkg/DESCRIPTION, /pkg/NAMESPACE, /pkg/R, /pkg/R/listPeople.R, /pkg/README, /pkg/cleanup, /pkg/inst, /pkg/inst/examples, /pkg/inst/examples/AddressBookFile, /pkg/inst/examples/addressbook.proto, /pkg/man, /pkg/man/listPeople.Rd, /pkg/src, /pkg/src/Makevars, /pkg/src/addressbook.pb.cc, /pkg/src/addressbook.pb.h, /pkg/src/addressbook.proto, /pkg/src/list_people_R.cpp: A very basic first proof of concept package reading a binary protobuf file 2009-05-28 Stefan Theussl * [r1] /README, /pkg, /www, /www/index.php: R-Forge: updated repository structure RProtoBuf/.Rinstignore0000644000176200001440000000002212440004312014420 0ustar liggesusersinst/doc/Makefile RProtoBuf/README.md0000644000176200001440000000470214535363375013434 0ustar liggesusers## RProtoBuf: R Interface to [Google Protocol Buffers](https://protobuf.dev/) [![CI](https://github.com/eddelbuettel/rprotobuf/workflows/ci/badge.svg)](https://github.com/eddelbuettel/rprotobuf/actions?query=workflow%3Aci) [![License](https://eddelbuettel.github.io/badges/GPL2+.svg)](https://www.gnu.org/licenses/gpl-2.0.html) [![CRAN](https://www.r-pkg.org/badges/version/RProtoBuf)](https://cran.r-project.org/package=RProtoBuf) [![Dependencies](https://tinyverse.netlify.com/badge/RProtoBuf)](https://cran.r-project.org/package=RProtoBuf) [![Downloads](https://cranlogs.r-pkg.org/badges/RProtoBuf?color=brightgreen)](https://www.r-pkg.org/pkg/RProtoBuf) [![Last Commit](https://img.shields.io/github/last-commit/eddelbuettel/rprotobuf)](https://github.com/eddelbuettel/rprotobuf) [![JSS](https://img.shields.io/badge/JSS-10.18637%2Fjss.v071.i02-brightgreen)](https://doi.org/10.18637/jss.v071.i02) ### What are Protocol Buffers? A serialization format developed by [Google](https://www.google.com) and used widely within Google, and by numerous other projects. Quoting from the [official website](https://protobuf.dev/): > Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages. [Protocol Buffers](https://protobuf.dev/) natively support C++, C#, Go, Java and Python. Many other languages are supported via contributed extensions. This package adds support for [R](https://www.r-project.org). ### Installation You can either install from source via this repo, or install [the CRAN package](https://cran.r-project.org/package=RProtoBuf) the usual way from [R](https://www.r-project.org) via ```r install.packages("RProtoBuf") ``` but do make sure you have the system requirements covered when building from source. Under Debian/Ubuntu you may need ```bash sudo apt-get install protobuf-compiler libprotobuf-dev libprotoc-dev ``` with similar commands on other operating systems or distributions. ### Documentation The package contains two pdf vignettes; the second one corresponds to [our JSS paper](https://doi.org/10.18637/jss.v071.i02). ### Authors Romain Francois, Dirk Eddelbuettel, Murray Stokely and Jeroen Ooms ### License GPL (>= 2) RProtoBuf/man/0000755000176200001440000000000014535366057012725 5ustar liggesusersRProtoBuf/man/sizegets.Rd0000644000176200001440000000047612440004312015030 0ustar liggesusers\name{sizegets} \docType{methods} \alias{size<-} \alias{size<--methods} \alias{size<-,Message-method} \title{Set the size of a field} \description{ Sets the size of a repeated field. } \section{Methods}{ \describe{ \item{\code{signature(object = "Message")}}{ sets the size of a message field } }} \keyword{methods} RProtoBuf/man/set.Rd0000644000176200001440000000060112440004312013754 0ustar liggesusers\name{set-methods} \docType{methods} \alias{set} \alias{set-methods} \alias{set,Message-method} \title{set a subset of values of a repeated field of a message} \description{ set a subset of values of a repeated field of a message } \section{Methods}{ \describe{ \item{\code{signature(object = "Message")}}{set a subset of values of a repeated field of a message} }} \keyword{methods} RProtoBuf/man/add.Rd0000644000176200001440000000120013617260253013724 0ustar liggesusers\name{add-methods} \docType{methods} \alias{add} \alias{add-methods} \alias{add,Message-method} \title{add elements of a repeated field of a message} \description{ Add elements to a repeated field of a message. } \section{Methods}{ \describe{ \item{\code{signature(object = "Message")}}{add elements to a repeated field of a message} }} \examples{ unitest.proto.file <- system.file("tinytest", "data", "unittest.proto", package = "RProtoBuf" ) readProtoFiles(file = unitest.proto.file) test <- new(protobuf_unittest.TestAllTypes) test$add("repeated_int32", 1) test$add("repeated_int32", 2:10) test$repeated_int32 } \keyword{methods} RProtoBuf/man/ServiceDescriptor-class.Rd0000644000176200001440000000337512707407313017754 0ustar liggesusers\name{ServiceDescriptor-class} \Rdversion{1.1} \docType{class} \alias{ServiceDescriptor-class} \alias{as.character,ServiceDescriptor-method} \alias{toString,ServiceDescriptor-method} \alias{show,ServiceDescriptor-method} \alias{$,ServiceDescriptor-method} \alias{[[,ServiceDescriptor-method} \alias{length,ServiceDescriptor-method} \alias{method_count} \alias{method_count-methods} \alias{method_count,ServiceDescriptor-method} \alias{method} \alias{method-methods} \alias{method,ServiceDescriptor-method} \title{Class "ServiceDescriptor"} \description{R representation of Service Descriptors} \section{Objects from the Class}{ TODO } \section{Slots}{ \describe{ \item{\code{pointer}:}{External pointer to a \code{google::protobuf::ServiceDescriptor} C++ object } \item{\code{name}:}{fully qualified name of the service } } } \section{Methods}{ \describe{ \item{as.character}{\code{signature(x = "ServiceDescriptor")}: debug string of the service } \item{toString}{\code{signature(x = "ServiceDescriptor")}: debug string of the service} \item{show}{\code{signature(x = "ServiceDescriptor")}: ... } \item{$}{\code{signature(x = "ServiceDescriptor")}: invoke pseudo methods or retrieve method descriptors contained in this service descriptor. } \item{[[}{\code{signature(x = "ServiceDescriptor")}: extracts methods descriptors contained in this service descriptor} \item{length}{\code{signature(x = "ServiceDescriptor")}: number of \linkS4class{MethodDescriptor} } \item{method_count}{\code{signature(x = "ServiceDescriptor")}: number of \linkS4class{MethodDescriptor} } \item{method}{\code{signature(x = "ServiceDescriptor")}: retrieves a \linkS4class{MethodDescriptor} } } } \author{ Romain Francois } \keyword{classes} RProtoBuf/man/enum_type.Rd0000644000176200001440000000050112440004312015165 0ustar liggesusers\name{enum_type-methods} \alias{enum_type} \alias{enum_type-methods} \title{Extract an enum type descriptor for a nested type} \description{ Extract a \linkS4class{EnumDescriptor} contained in a \linkS4class{Descriptor} } \seealso{ The method is implemented for the \linkS4class{Descriptor} class } \keyword{methods} RProtoBuf/man/fetch.Rd0000644000176200001440000000053412440004312014257 0ustar liggesusers\name{fetch-methods} \docType{methods} \alias{fetch} \alias{fetch-methods} \alias{fetch,Message-method} \title{Fetch content of a repeated field} \description{ Fetch content of a repeated field of a message } \section{Methods}{ \describe{ \item{\code{signature(object = "Message")}}{Fetch content of a message repeated field} }} \keyword{methods} RProtoBuf/man/size.Rd0000644000176200001440000000236713617260253014165 0ustar liggesusers\name{size-methods} \docType{methods} \alias{size} \alias{size-methods} \alias{size,Message-method} \title{Size of a message field} \description{ The number of object currently in a given field of a protocol buffer message. For non repeated fields, the size is 1 if the message has the field, 0 otherwise. For repeated fields, the size is the number of objects in the array. For repeated fields, the size can also be assigned to in order to shrink or grow the vector. Numeric types are given a default value of 0 when the new size is greater than the existing size. Character types are given a default value of "". Growing a repeated field in this way is not supported for message, group, and enum types. } \section{Methods}{ \describe{ \item{\code{signature(object = "Message")}}{Number of objects in a message field} }} \examples{ unitest.proto.file <- system.file("tinytest", "data", "unittest.proto", package = "RProtoBuf" ) readProtoFiles(file = unitest.proto.file) test <- new(protobuf_unittest.TestAllTypes) test$size("optional_int32") test$add("repeated_int32", 1:10) test$size("repeated_int32") test$repeated_int32 size(test, "repeated_int32") <- 5 test$repeated_int32 size(test, "repeated_int32") <- 15 test$repeated_int32 } \keyword{methods} RProtoBuf/man/asMessage.Rd0000644000176200001440000000144312440004312015076 0ustar liggesusers\name{asMessage} \alias{asMessage} \title{ coerce an object to a protobuf message } \description{ coerce an object to the \linkS4class{Message} class. This is a short-hand to the \link{as} method with the \code{Class} argument set to "Message" } \usage{ asMessage(x, ...) } \arguments{ \item{x}{object to coerce to a protobuf message} \item{\dots}{Passed to \code{\link{as}} } } \value{ a \linkS4class{Message} object } \author{ Romain Francois } \examples{ # coerce a message type descriptor to a message asMessage( tutorial.Person ) # coerce a enum descriptor asMessage( tutorial.Person.PhoneType ) # coerce a field descriptor asMessage( tutorial.Person$email ) # coerce a file descriptor asMessage( fileDescriptor( tutorial.Person ) ) } \keyword{ programming } RProtoBuf/man/descriptor.Rd0000644000176200001440000000065512440004312015350 0ustar liggesusers\name{descriptor-methods} \docType{methods} \alias{descriptor} \alias{descriptor-methods} \alias{descriptor,Message-method} \title{Get the descriptor of a message} \description{ Get the \linkS4class{Descriptor} associated with a \linkS4class{Message} } \section{Methods}{ \describe{ \item{\code{signature(object = "Message")}}{ Get the descriptor of the message, as a \linkS4class{Descriptor} instance } }} \keyword{methods} RProtoBuf/man/is_extension.Rd0000644000176200001440000000056312440004312015677 0ustar liggesusers\name{is_extension-methods} \alias{is_extension} \alias{is_extension-methods} \title{Indicates if a field descriptor is an extension} \description{ Indicates if a field descriptor is an extension } \seealso{ The method is implemented for the \linkS4class{FieldDescriptor} class } \keyword{methods} \examples{ Person <- P( "tutorial.Person" ) is_extension(Person$id) }RProtoBuf/man/read.Rd0000644000176200001440000000272412440004312014104 0ustar liggesusers\name{read-methods} \docType{methods} \alias{read} \alias{read-methods} \alias{read,Descriptor,character-method} \alias{read,Descriptor,raw-method} \alias{read,Descriptor,ANY-method} \title{Read a protocol buffer message from a connection} \description{ Read a \linkS4class{Message} from a connection using its associated \linkS4class{Descriptor} } \section{Methods}{ \describe{ \item{\code{signature(descriptor = "Descriptor", input = "character")}}{ Read the message from a file } \item{\code{signature(descriptor = "Descriptor")}}{ Read from a binary connection. } \item{\code{signature(descriptor = "Descriptor", input = "raw")}}{ Read the message from a raw vector } }} \keyword{methods} \examples{ # example file that contains a "tutorial.AddressBook" message book <- system.file( "examples", "addressbook.pb", package = "RProtoBuf" ) # read the message message <- read( tutorial.AddressBook, book ) # or using the pseudo method message <- tutorial.AddressBook$read( book ) # write its debug string writeLines( as.character( message ) ) # grab the name of each person sapply( message$person, function(p) p$name ) # read from a binary file connection f <- file( book, open = "rb" ) message2 <- read( tutorial.AddressBook, f ) close( f ) # read from a message payload (raw vector) payload <- readBin( book, raw(0), 5000 ) message3 <- tutorial.AddressBook$read( payload ) \dontshow{ stopifnot( identical( message, message2) ) stopifnot( identical( message, message3) ) } } RProtoBuf/man/fileDescriptor.Rd0000644000176200001440000000233712440004312016147 0ustar liggesusers\name{fileDescriptor-methods} \docType{methods} \alias{fileDescriptor} \alias{fileDescriptor-methods} \alias{fileDescriptor,Descriptor-method} \alias{fileDescriptor,Message-method} \alias{fileDescriptor,EnumDescriptor-method} \alias{fileDescriptor,FieldDescriptor-method} \alias{fileDescriptor,ServiceDescriptor-method} \alias{fileDescriptor,MethodDescriptor-method} \title{gets the file descriptor of an object} \description{ Gets the file descriptor of an object } \section{Methods}{ \describe{ \item{\code{signature(object = "Descriptor")}}{ retrieves the file descriptor associated with this descriptor} \item{\code{signature(object = "Message")}}{ retrieves the file descriptor associated with the descriptor of this message } \item{\code{signature(object = "EnumDescriptor")}}{ retrieves the file descriptor associated with the enum descriptor } \item{\code{signature(object = "FieldDescriptor")}}{ retrieves the file descriptor associated with the field descriptor } \item{\code{signature(object = "ServiceDescriptor")}}{ retrieves the file descriptor associated with the service descriptor } \item{\code{signature(object = "MethodDescriptor")}}{ retrieves the file descriptor associated with the method descriptor } }} \keyword{methods} RProtoBuf/man/completion.Rd0000644000176200001440000000411712440004312015340 0ustar liggesusers\name{completion} \alias{.DollarNames.Message} \alias{.DollarNames.Descriptor} \alias{.DollarNames.EnumDescriptor} \alias{.DollarNames.FieldDescriptor} \alias{.DollarNames.FileDescriptor} \alias{.DollarNames.ServiceDescriptor} \alias{.DollarNames.MethodDescriptor} \alias{.DollarNames.ZeroCopyInputStream} \alias{.DollarNames.ZeroCopyOutputStream} \title{ Completion support for protocol buffer messages and descriptors } \description{ These functions support completion of protocol buffer messages and descriptors. } \usage{ \S3method{.DollarNames}{Message}(x, pattern = "") \S3method{.DollarNames}{Descriptor}(x, pattern = "") \S3method{.DollarNames}{EnumDescriptor}(x, pattern = "") \S3method{.DollarNames}{FieldDescriptor}(x, pattern = "") \S3method{.DollarNames}{FileDescriptor}(x, pattern = "") \S3method{.DollarNames}{ServiceDescriptor}(x, pattern = "") \S3method{.DollarNames}{MethodDescriptor}(x, pattern = "") \S3method{.DollarNames}{ZeroCopyInputStream}(x, pattern = "") \S3method{.DollarNames}{ZeroCopyOutputStream}(x, pattern = "") } \arguments{ \item{x}{message (\linkS4class{Message}) or descriptor (\linkS4class{Descriptor}) } \item{pattern}{filter} } \value{ Character vector containing potential completions. For \linkS4class{Message} objects, completions are the fields of the message and a set of pseudo methods ("has") For \linkS4class{EnumDescriptor} objects, completions are the names of the possible constants For \linkS4class{Descriptor} objects, completions are the names of the fields, enum types and nested message types defined in the associated message type. For \linkS4class{FileDescriptor} objects, completions are the names of the top-level descriptors (message, enum or service) contained in the associated file, or pseudo methods. } \author{ Romain Francois } \examples{ # creating a prototype message from the descriptor p <- new( tutorial.Person ) .DollarNames( p ) .DollarNames( tutorial.Person ) # but this is usually used with the expansion on the command line # means "press the TAB key" # p$ # Person$ } \keyword{ programming } RProtoBuf/man/merge.Rd0000644000176200001440000000125312440004312014264 0ustar liggesusers\name{merge-methods} \alias{merge,Message,Message-method} \title{Merge two messages of the same type} \description{ Merge two \linkS4class{Message} objects of the same type. } \section{Methods}{ \describe{ \item{\code{signature(x = "Message", y = "Message")}}{ merge two messages of the same type } }} \section{Errors}{ An error of class "IncompatibleType" is thrown if the two messages are not of the same message type. } \keyword{methods} \examples{ m1 <- new( tutorial.Person, email = "francoisromain@free.fr" ) m2 <- new( tutorial.Person, id = 5 ) m3 <- merge( m1, m2 ) writeLines( as.character( m1 ) ) writeLines( as.character( m2 ) ) writeLines( as.character( m3 ) ) } RProtoBuf/man/number.Rd0000644000176200001440000000115212440004312014453 0ustar liggesusers\name{number-methods} \alias{number} \alias{number-methods} \title{Gets the declared tag number of a field} \description{ Gets the declared tag number of a field } \seealso{ The method is implemented for \linkS4class{FieldDescriptor} and \linkS4class{EnumValueDescriptor} classes. } \keyword{methods} \examples{ \dontrun{ proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{ Person <- P("tutorial.Person") } number(Person$id) number(Person$email) as.character(Person) number(value(tutorial.Person$PhoneType, name="HOME")) }RProtoBuf/man/Next-methods.Rd0000644000176200001440000000040312440004312015540 0ustar liggesusers\name{Next-methods} \docType{methods} \alias{Next} \alias{Next-methods} \title{Obtains a chunk of data from the stream} \description{ Obtains a chunk of data from the stream } \seealso{ \linkS4class{ZeroCopyInputStream} implements Next. } \keyword{methods} RProtoBuf/man/ZeroCopyOutputStream-class.Rd0000644000176200001440000000511514535366057020470 0ustar liggesusers\name{ZeroCopyOutputStream-class} \Rdversion{1.1} \docType{class} \alias{ZeroCopyOutputStream-class} \alias{ByteCount,ZeroCopyOutputStream-method} \alias{BackUp,ZeroCopyOutputStream-method} \alias{Next,ZeroCopyOutputStream,raw-method} \alias{$,ZeroCopyOutputStream-method} \alias{WriteRaw} \alias{WriteRaw-methods} \alias{WriteRaw,ZeroCopyOutputStream,raw-method} \alias{WriteString} \alias{WriteString-methods} \alias{WriteString,ZeroCopyOutputStream,character-method} \alias{WriteLittleEndian32} \alias{WriteLittleEndian32-methods} \alias{WriteLittleEndian32,ZeroCopyOutputStream,integer-method} \alias{WriteLittleEndian32,ZeroCopyOutputStream,numeric-method} \alias{WriteLittleEndian32,ZeroCopyOutputStream,raw-method} \alias{WriteLittleEndian64} \alias{WriteLittleEndian64-methods} \alias{WriteLittleEndian64,ZeroCopyOutputStream,integer-method} \alias{WriteLittleEndian64,ZeroCopyOutputStream,numeric-method} \alias{WriteLittleEndian64,ZeroCopyOutputStream,raw-method} \alias{WriteVarint32} \alias{WriteVarint32-methods} \alias{WriteVarint32,ZeroCopyOutputStream,integer-method} \alias{WriteVarint32,ZeroCopyOutputStream,numeric-method} \alias{WriteVarint32,ZeroCopyOutputStream,raw-method} \alias{WriteVarint64} \alias{WriteVarint64-methods} \alias{WriteVarint64,ZeroCopyOutputStream,integer-method} \alias{WriteVarint64,ZeroCopyOutputStream,numeric-method} \alias{WriteVarint64,ZeroCopyOutputStream,raw-method} \title{Virtual Class "ZeroCopyOutputStream" } \description{R wrapper for the ZeroCopyOutputStream c++ class} \section{Objects from the Class}{ This is a virtual class } \section{Slots}{ \describe{ \item{\code{pointer}:}{external pointer to the \code{google::protobuf::io::ZeroCopyOutputStream} object} } } \section{Methods}{ \describe{ \item{$}{\code{signature(x="ZeroCopyOutputStream")}: invokes a method} \item{Next}{\code{signature(object="ZeroCopyOutputStream", payload = "raw" )}: push the raw vector into the stream. Returns the number of bytes actually written.} \item{BackUp}{\code{signature(object="ZeroCopyOutputStream")}: Backs up a number of bytes, so that the end of the last buffer returned by \code{Next} is not actually written.} \item{ByteCount}{\code{signature(object="ZeroCopyOutputStream")}: Returns the total number of bytes written since this object was created. } \item{WriteRaw}{\code{signature(object="ZeroCopyOuputStream")}, payload = "raw": write the raw bytes to the stream} } } \author{ Romain Francois } \references{The \code{google::protobuf::io::ZeroCopyOutputStream} C++ class.} \seealso{TODO: add classes that extend} \keyword{classes} RProtoBuf/man/SetCloseOnDelete-methods.Rd0000644000176200001440000000067212440004312017773 0ustar liggesusers\name{SetCloseOnDelete-methods} \docType{methods} \alias{SetCloseOnDelete} \alias{SetCloseOnDelete-methods} \title{set the close on delete behavior} \description{ By default, the file descriptor is not closed when a stream is destroyed, use \code{SetCloseOnDelete( stream, TRUE ) } to change that. } \section{Methods}{ See classes \linkS4class{FileInputStream} and \linkS4class{FileOutputStream} for implementations. } \keyword{methods} RProtoBuf/man/name.Rd0000644000176200001440000000125312440004312014105 0ustar liggesusers\name{name} \docType{methods} \alias{name} \alias{name-methods} \alias{name,Descriptor-method} \alias{name,FieldDescriptor-method} \alias{name,EnumDescriptor-method} \alias{name,ServiceDescriptor-method} \alias{name,MethodDescriptor-method} \title{Name or full name of a descriptor} \description{ name or full name of a descriptor } \section{Methods}{ \describe{ \item{\code{signature(object = "Descriptor")}}{ ... } \item{\code{signature(object = "FieldDescriptor")}}{ ... } \item{\code{signature(object = "EnumDescriptor")}}{ ... } \item{\code{signature(object = "ServiceDescriptor")}}{ ... } \item{\code{signature(object = "MethodDescriptor")}}{ ... } }} \keyword{methods} RProtoBuf/man/ArrayOutputStream-methods.Rd0000644000176200001440000000254612440004312020307 0ustar liggesusers\name{ArrayOutputStream-methods} \docType{methods} \alias{ArrayOutputStream} \alias{ArrayOutputStream-methods} \alias{ArrayOutputStream,integer,missing-method} \alias{ArrayOutputStream,integer,integer-method} \alias{ArrayOutputStream,integer,numeric-method} \alias{ArrayOutputStream,numeric,missing-method} \alias{ArrayOutputStream,numeric,integer-method} \alias{ArrayOutputStream,numeric,numeric-method} \title{Creates an ArrayOutputStream} \description{ Constructor for \linkS4class{ArrayOutputStream} objects } \section{Methods}{ \describe{ \item{\code{signature(size = "integer", block_size = "missing" )}}{Creates a \linkS4class{ArrayOutputStream} using of the given size} \item{\code{signature(size = "integer", block_size = "integer" )}}{Creates a \linkS4class{ArrayOutputStream} ... same with block size. } \item{\code{signature(size = "integer", block_size = "numeric" )}}{Creates a \linkS4class{ArrayOutputStream} ... same with block size. } \item{\code{signature(size = "numeric", block_size = "missing" )}}{Creates a \linkS4class{ArrayOutputStream} using of the given size} \item{\code{signature(size = "numeric", block_size = "integer" )}}{Creates a \linkS4class{ArrayOutputStream} ... same with block size. } \item{\code{signature(size = "numeric", block_size = "numeric" )}}{Creates a \linkS4class{ArrayOutputStream} ... same with block size. } }} \keyword{methods} RProtoBuf/man/isInitialized.Rd0000644000176200001440000000131612440004312015766 0ustar liggesusers\name{isInitialized-methods} \docType{methods} \alias{isInitialized} \alias{isInitialized-methods} \alias{isInitialized,Message-method} \title{Indicates if a protocol buffer message is initialized} \description{ Indicates if a \linkS4class{Message} is initialized. A message is initialized if all its required fields are set. } \section{Methods}{ \describe{ \item{\code{ signature(object = "Message")}}{ is the message initialized} }} \examples{ message <- new( tutorial.Person, name = "" ) isInitialized( message ) # FALSE (id is not set) message$isInitialized() # FALSE message <- new( tutorial.Person, name = "", id = 2 ) isInitialized( message ) # TRUE message$isInitialized() # TRUE } \keyword{methods} RProtoBuf/man/Message-class.Rd0000644000176200001440000001455514535365355015715 0ustar liggesusers\name{Message-class} \Rdversion{1.1} \docType{class} \alias{Message-class} \alias{as.character,Message-method} \alias{$<-,Message-method} \alias{$,Message-method} \alias{[[,Message-method} \alias{[[<-,Message-method} \alias{serialize,Message-method} \alias{show,Message-method} \alias{update,Message-method} \alias{length,Message-method} \alias{names,Message-method} \alias{str,Message-method} \alias{toString,Message-method} \alias{toJSON} \alias{toJSON,Message-method} \alias{identical,Message,Message-method} \alias{==,Message,Message-method} \alias{!=,Message,Message-method} \alias{all.equal,Message,Message-method} \alias{getExtension,Message-method} \alias{setExtension,Message-method} \alias{getExtension} \alias{setExtension} \title{Class "Message" } \description{ R representation of protocol buffer messages. This is a thin wrapper around the \code{Message} c++ class that holds the actual message as an external pointer. } \section{Objects from the Class}{ Objects are typically created by the \code{new} function invoked on a \linkS4class{Descriptor} object. } \section{Slots}{ \describe{ \item{\code{pointer}:}{external pointer to the c++ \code{Message} object} \item{\code{type}:}{fully qualified name of the message type} } } \section{Methods}{ \describe{ \item{as.character}{\code{signature(x = "Message")}: returns the debug string of the message. This is built from a call to the \code{DebugString} method of the \code{Message} object} \item{toString}{\code{signature(x = "Message")}: same as \code{as.character} } \item{toTextFormat}{\code{signature(x = "Message")}: returns the TextFormat of the message. This is built from a call to \code{TextFormat::PrintToString} with the \code{Message} object} \item{toDebugString}{\code{signature(x = "Message")}: same as \code{as.character} } \item{toJSON}{\code{signature(x = "Message")}: returns the JSON representation of the message. This is built from a call to the \code{google::protobuf::util::MessageToJsonString} method and accepts two arguments \code{preserve_proto_field_names} - if FALSE (the default) convert field names to camelCase \code{always_print_primitive_fields} - whether to return the default value for missing primitive fields (default false)} \item{$<-}{\code{signature(x = "Message")}: set the value of a field of the message. } \item{$}{\code{signature(x = "Message")}: gets the value of a field. Primitive types are brought back to R as R objects of the closest matching R type. Messages are brought back as instances of the \code{Message} class.} \item{[[}{\code{signature(x = "Message")}: extracts a field identified by its name or declared tag number } \item{[[<-}{\code{signature(x = "Message")}: replace the value of a field identified by its name or declared tag number } \item{serialize}{\code{signature(object = "Message")}: serialize a message. If the "connection" argument is \code{NULL}, the payload of the message is returned as a raw vector, if the "connection" argument is a binary writable connection, the payload is written into the connection. If "connection" is a character vector, the message is sent to the file (in binary format). } \item{show}{\code{signature(object = "Message")}: displays a short text about the message } \item{update}{\code{signature(object = "Message")}: set several fields of the message at once } \item{length}{\code{signature(x = "Message")}: The number of fields actually contained in the message. A field counts in these two situations: the field is repeated and the field size is greater than 0, the field is not repeated and the message has the field.} \item{setExtension}{\code{signature(object = "Message")}: set an extension field of the Message.} \item{getExtension}{\code{signature(object = "Message")}: get the value of an extension field of the Message.} \item{str}{\code{signature(object = "Message")}: displays the structure of the message } \item{identical}{\code{signature(x = "Message", y = "Message")}: Test if two messages are exactly identical } \item{==}{\code{signature(e1 = "Message", e2 = "Message")}: Same as \code{identical} } \item{!=}{\code{signature(e1 = "Message", e2 = "Message")}: Negation of \code{identical} } \item{all.equal}{\code{signature(e1 = "Message", e2 = "Message")}: Test near equality } \item{names}{\code{signature(x = "Message")}: extracts the names of the message. } } } \references{The \code{Message} class from the C++ proto library.} \author{ Romain Francois } \seealso{ \code{\link{P}} creates objects of class \linkS4class{Descriptor} that can be used to create messages. } \examples{ \dontrun{ # example proto file supplied with this package proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) # reading a proto file and creating the descriptor Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{ Person <- P("tutorial.Person") } PhoneNumber <- P( "tutorial.Person.PhoneNumber" ) # creating a prototype message from the descriptor p <- new( Person ) p$email # not set, returns default value p$id # not set, returns default value as.character( p ) # empty has( p, "email" ) # is the "email" field set has( p, "phone" ) # is the "email" field set length( p ) # number of fields actually set # update several fields at once romain <- update( new( Person ), email = "francoisromain@free.fr", id = 1, name = "Romain Francois", phone = new( PhoneNumber , number = "+33(0)...", type = "MOBILE" ) ) # supply parameters to the constructor dirk <- new( Person, email = "edd@debian.org", id = 2, name = "Dirk Eddelbuettel" ) # update the phone repeated field with a list of PhoneNumber messages dirk$phone <- list( new( PhoneNumber , number = "+01...", type = "MOBILE" ), new( PhoneNumber , number = "+01...", type = "HOME" ) ) # with/within style saptarshi <- within( new(Person), { id <- 3 name <- "Saptarshi Guha" email <- "saptarshi.guha@gmail.com" } ) # make an addressbook book <- new( tutorial.AddressBook, person = list( romain, dirk, saptarshi ) ) # serialize the message to a file tf <- tempfile( ) serialize( book, tf ) # the payload of the message serialize( book, NULL ) # read the file into a new message m <- tutorial.AddressBook$read( tf ) writeLines( as.character( m ) ) sapply( m$person, function(p) p$name ) } \keyword{classes} RProtoBuf/man/ArrayInputStream-class.Rd0000644000176200001440000000261114535365372017570 0ustar liggesusers\name{ArrayInputStream-class} \Rdversion{1.1} \docType{class} \alias{ArrayInputStream-class} \title{Class "ArrayInputStream" } \description{A \linkS4class{ZeroCopyInputStream} backed by an in-memory array of bytes} \section{Objects from the Class}{ Objects can be created by the \link{ArrayInputStream} function } \section{Slots}{ \describe{ \item{\code{pointer}:}{ External pointer to the \code{google::protobuf::io::ArrayInputStream} C++ object} } } \section{Extends}{ Class \code{"\linkS4class{ZeroCopyInputStream}"}, directly. } \section{Methods}{ See \linkS4class{ZeroCopyInputStream} } \references{ The \code{ArrayInputStream} class from the protobuf C++ library.} \author{ Romain Francois } \seealso{ \linkS4class{ZeroCopyInputStream} for methods } \examples{ stream <- ArrayInputStream(as.raw(0:10)) stream$ReadRaw(5) stringsstream <- ArrayInputStream(as.raw(c(0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67))) stringsstream$ReadString(7) intstream <- ArrayInputStream(as.raw(c(0x9e, 0xa7, 0x05))) intstream$ReadVarint32() } % local({ % stream <- ArrayInputStream( as.raw(0:10) ) % stopifnot( identical( stream$Next(), as.raw(0:10) ) ) % stream$BackUp( 5 ) % stopifnot( identical( stream$Next(), as.raw(6:10) ) ) % % # limiting the block size % stream <- ArrayInputStream( as.raw(0:10), 5 ) % stopifnot( identical(length( stream$Next() ), 5L ) ) % }) \keyword{classes} RProtoBuf/man/FileDescriptor-class.Rd0000644000176200001440000000307514535364735017243 0ustar liggesusers\name{FileDescriptor-class} \Rdversion{1.1} \docType{class} \alias{FileDescriptor-class} \alias{as.character,FileDescriptor-method} \alias{toString,FileDescriptor-method} \alias{$,FileDescriptor-method} \alias{show,FileDescriptor-method} \alias{name,FileDescriptor-method} \title{Class "FileDescriptor"} \description{Class "FileDescriptor"} \section{Objects from the Class}{ Objects are usually created using the \code{\link{fileDescriptor}} method } \section{Slots}{ \describe{ \item{\code{pointer}:}{external pointer to a \code{google::protobuf::FileDescriptor} C++ object } \item{\code{package}:}{the package name defined in the file, e.g. 'tutorial'.} \item{\code{filename}:}{the filename of this FileDescriptor} } } \section{Methods}{ \describe{ \item{$}{\code{signature(x = "FileDescriptor")}: used to invoke a pseudo method of the file descriptor or get a top level message, enum or service descriptor} \item{toString}{\code{signature(x = "FileDescriptor" )} : gets the debug string} \item{as.character}{\code{signature(x = "FileDescriptor" )} : gets the debug string} \item{show}{\code{signature(x = "FileDescriptor" )} : prints small text} \item{name}{\code{signature(object = "FileDescriptor" )} : name of the file} } } \author{ Romain Francois } \keyword{classes} \seealso{ \linkS4class{Descriptor} } \examples{ # example proto file supplied with this package desc <- P("tutorial.Person") person <- new(desc) person$fileDescriptor() name(person$fileDescriptor()) # [1] "addressbook.proto" as.character(person$fileDescriptor()) } RProtoBuf/man/ByteCount-methods.Rd0000644000176200001440000000050312440004312016537 0ustar liggesusers\name{ByteCount-methods} \docType{methods} \alias{ByteCount} \alias{ByteCount-methods} \title{The number of bytes read/written since the object was created} \description{ The number of bytes read/written since the object was created } \seealso{ \linkS4class{ZeroCopyInputStream} implements ByteCount. } \keyword{methods} RProtoBuf/man/P.Rd0000644000176200001440000000157112440004312013367 0ustar liggesusers\name{P} \alias{P} \title{Protocol Buffer descriptor importer} \description{ The \code{P} function searches for a protocol message descriptor in the descriptor pool. } \usage{ P(type, file) } \arguments{ \item{type}{Fully qualified type name of the protocol buffer or extension} \item{file}{optional proto file. If given, the definition contained in the file is first registered with the pool of message descriptors} } \value{ An object of class \linkS4class{Descriptor} for message types or \linkS4class{FieldDescriptor} for extensions. An error is generated otherwise. } \author{ Romain Francois } \examples{ \dontrun{ proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{ Person <- P("tutorial.Person") } cat(as.character( Person )) } \keyword{ interface } RProtoBuf/man/clone.Rd0000644000176200001440000000171012440004312014263 0ustar liggesusers\name{clone-methods} \docType{methods} \alias{clone} \alias{clone-methods} \alias{clone,Message-method} \title{Clone protocol buffer messages} \description{ Generic "clone" function and associated method for \linkS4class{Message} objects } \section{Methods}{ \describe{ \item{\code{signature(object = "Message")}}{ clone the message } }} \examples{ \dontrun{ # example proto file supplied with this package proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) # reading a proto file and creating the descriptor Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{Person <- P("tutorial.Person")} # creating a prototype message from the descriptor sheep <- new( Person, email = "francoisromain@free.fr", id = 2 ) # cloning the sheep newsheep <- clone( sheep ) # clone and update at once newsheep <- clone( sheep, id = 3 ) # this can also be used as a pseudo method sheep$clone() sheep$clone( id = 3 ) } \keyword{methods} RProtoBuf/man/ArrayOutputStream-class.Rd0000644000176200001440000000146514535365341017773 0ustar liggesusers\name{ArrayOutputStream-class} \Rdversion{1.1} \docType{class} \alias{ArrayOutputStream-class} \title{Class "ArrayOutputStream" } \description{A \linkS4class{ZeroCopyOutputStream} backed by an in-memory array of bytes} \section{Objects from the Class}{ Objects can be created by the \link{ArrayOutputStream} function } \section{Slots}{ \describe{ \item{\code{pointer}:}{ External pointer to the \code{google::protobuf::io::ArrayOutputStream} C++ object} } } \section{Extends}{ Class \code{"\linkS4class{ZeroCopyOutputStream}"}, directly. } \section{Methods}{ See \linkS4class{ZeroCopyOutputStream} } \references{ The \code{ArrayOutputStream} class from the protobuf C++ library.} \author{ Romain Francois } \seealso{ \linkS4class{ZeroCopyOutputStream} for methods } \keyword{classes} RProtoBuf/man/containing_type-methods.Rd0000644000176200001440000000116212440004312020017 0ustar liggesusers\name{containing_type-methods} \alias{containing_type} \alias{containing_type-methods} \title{Gets the message type descriptor that contains a descriptor} \description{ Gets a \linkS4class{Descriptor} describing the message type that contains the descriptor. } \seealso{ The method is implemented for these classes : \linkS4class{Descriptor}, \linkS4class{EnumDescriptor}, \linkS4class{FieldDescriptor} } \examples{ # Containing type of a field is the message descriptor tutorial.Person$id$containing_type() # No containing type for the top-level message descriptor. tutorial.Person$containing_type() } \keyword{methods} RProtoBuf/man/ConnectionOutputStream-class.Rd0000644000176200001440000000146412440004312020770 0ustar liggesusers\name{ConnectionOutputStream-class} \Rdversion{1.1} \docType{class} \alias{ConnectionOutputStream-class} \title{Class "ConnectionOutputStream" } \description{A \linkS4class{ZeroCopyOutputStream} writing to a binary R connection} \section{Objects from the Class}{ Objects can be created by the \link{ConnectionOutputStream} function } \section{Slots}{ \describe{ \item{\code{pointer}:}{ External pointer to the \code{rprotobuf::ConnectionOutputStream} C++ object} } } \section{Extends}{ Class \code{"\linkS4class{ZeroCopyOutputStream}"}, directly. } \section{Methods}{ See \linkS4class{ZeroCopyOutputStream} } \references{ The internal C++ class \code{ConnectionOutputStream} } \author{ Romain Francois } \seealso{ \linkS4class{ZeroCopyOutputStream} for methods } \keyword{classes} RProtoBuf/man/readProtoFiles.Rd0000644000176200001440000000375313300665751016136 0ustar liggesusers\name{readProtoFiles} \alias{readProtoFiles} \alias{readProtoFiles2} \alias{resetDescriptorPool} \title{protocol buffer descriptor importer} \description{ Imports proto files into the descriptor pool that is then used by the \code{P} function to resolve message type names. } \usage{ readProtoFiles(files, dir, package="RProtoBuf", pattern="\\\\.proto$", lib.loc=NULL) readProtoFiles2(files, dir=".", pattern="\\\\.proto$", recursive=FALSE, protoPath=getwd()) resetDescriptorPool() } \arguments{ \item{files}{Proto files} \item{dir}{Directory. If \code{files} is not specified, files with the "proto" extension in the \code{dir} directory are imported} \item{package}{R package name. If \code{files} and \code{dir} are missing, "proto" files in the "proto" directory of the package tree are imported.} \item{pattern}{A filename pattern to match proto files when using \code{dir}.} \item{recursive}{Whether to descend recursively into \code{dir}.} \item{lib.loc}{Library location.} \item{protoPath}{Search path for proto file imports.} } \details{ \code{readProtoFiles2} is different from \code{readProtoFiles} to be consistent with the behavior of \code{protoc} command line tool in being explicit about the search path for proto import statements. In addition, we also require that both \code{files} and \code{dir} arguments are interpreted relative to \code{protoPath}, so that there is consistency in future imports of the same files through import statements of other proto files. \code{resetDescriptorPool} clears all imported proto definitions. } \value{\code{NULL}, invisibly.} \author{Romain Francois } \seealso{\code{\link{P}}} \examples{ \dontrun{ # from a package readProtoFiles(package = "RProtoBuf") # from a directory proto.dir <- system.file("proto", package = "RProtoBuf") readProtoFiles(dir = proto.dir) # set of files proto.files <- list.files(proto.dir, full.names = TRUE) readProtoFiles(proto.files) } } \keyword{programming} RProtoBuf/man/readJSON.Rd0000644000176200001440000000230713776225671014625 0ustar liggesusers\name{readJSON-methods} \docType{methods} \alias{readJSON} \alias{readJSON-methods} \alias{readJSON,Descriptor,ANY-method} \alias{readJSON,Descriptor,character-method} \title{read a message in JSON format} \description{ Method to read a Message in JSON format } \section{Methods}{ \describe{ \item{\code{signature(descriptor = "Descriptor", input = "ANY")}}{ Read the message from a connection (file, etc ...) } \item{\code{signature(descriptor = "Descriptor", input = "character")}}{ Read the message directly from the character string } }} \keyword{methods} \examples{ \dontrun{ # example file that contains a "tutorial.AddressBook" message book <- system.file( "examples", "addressbook.pb", package = "RProtoBuf" ) # read the message message <- read( tutorial.AddressBook, book ) # Output in text format to a temporary file out.file <- tempfile() writeLines( message$toJSON(), file(out.file)) # Verify that we can read back in the message from a text file. message2 <- readJSON( tutorial.AddressBook, file(out.file, "rb")) # Verify that we can read back in the message from an unopened file. message3 <- readJSON( tutorial.AddressBook, file(out.file)) \dontshow{ stopifnot( identical( message, message2) ) } } } RProtoBuf/man/EnumDescriptor-class.Rd0000644000176200001440000000732612707407313017260 0ustar liggesusers\name{EnumDescriptor-class} \Rdversion{1.1} \docType{class} \alias{EnumDescriptor-class} \alias{show,EnumDescriptor-method} \alias{has,EnumDescriptor-method} \alias{as.character,EnumDescriptor-method} \alias{toString,EnumDescriptor-method} \alias{$,EnumDescriptor-method} \alias{containing_type,EnumDescriptor-method} \alias{length,EnumDescriptor-method} \alias{value_count} \alias{value_count-methods} \alias{value_count,EnumDescriptor-method} \alias{value} \alias{value-methods} \alias{value,EnumDescriptor-method} \alias{[[,EnumDescriptor-method} \alias{names,EnumDescriptor-method} \title{Class "EnumDescriptor" } \description{ R representation of an enum descriptor. This is a thin wrapper around the \code{EnumDescriptor} c++ class. } \section{Objects from the Class}{ Objects of this class are typically retrieved as members of \linkS4class{Descriptor} objects } \section{Slots}{ \describe{ \item{\code{pointer}:}{external pointer to the \code{EnumDescriptor} instance} \item{\code{name}:}{ simple name of the enum } \item{\code{full_name}:}{fully qualified name } \item{\code{type}:}{fully qualified name of the type that contains this enumeration} } } \section{Methods}{ \describe{ \item{show}{\code{signature(object = "EnumDescriptor")}: small information } \item{as.character}{\code{signature(x = "EnumDescriptor")}: returns the debug string of the enum descriptor. This is retrieved by a call to the \code{DebugString} method of the EnumDescriptor object. } \item{toString}{\code{signature(x = "EnumDescriptor")}: same as \code{as.character} } \item{$}{\code{signature(x = "EnumDescriptor")}: get the number associated with the name} \item{has}{\code{signature(object = "EnumDescriptor")}: indicate if the given name is a constant present in this enum.} \item{containing_type}{\code{signature(object = "EnumDescriptor")} : returns a \linkS4class{Descriptor} of the message type that contains this enum descriptor, or NULL if this is a top level enum descriptor.} \item{length}{\code{signature(x = "EnumDescriptor")} : number of constants in this enum.} \item{value_count}{\code{signature(object = "EnumDescriptor")} : number of constants in this enum.} \item{value}{\code{signature(object = "EnumDescriptor")} : extracts an \linkS4class{EnumValueDescriptor}. Exactly one argument of \code{index}, \code{number} or \code{name} has to be used. If \code{index} is used, the enum value descriptor is retrieved by position, using the \code{value} method of the C++ class. If \code{number} is used, the enum value descriptor is retrieved using the value of the constant, using the \code{FindValueByNumber} C++ method. If \code{name} is used, the enum value descriptor is retrieved using the name of the constant, using the \code{FindValueByName} C++ method. } \item{[[}{\code{signature(x = "EnumDescriptor")}: extracts field identified by its name or declared tag number} \item{names}{\code{signature(x = "EnumDescriptor")} : extracts names of this enum} } } \references{ The \code{EnumDescriptor} C++ class } \author{ Romain Francois } \seealso{The \linkS4class{Descriptor} class} \examples{ \dontrun{ # example proto file supplied with this package proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) # reading a proto file and creating the descriptor Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{Person <- P("tutorial.Person") } # enum type Person$PhoneType has(Person$PhoneType, "MOBILE") has(Person$PhoneType, "HOME") has(Person$PhoneType, "WORK") has(Person$PhoneType, "FOOBAR") length(Person$PhoneType) } \keyword{classes} RProtoBuf/man/ConnectionOutputStream-methods.Rd0000644000176200001440000000074312440004312021325 0ustar liggesusers\name{ConnectionOutputStream-methods} \docType{methods} \alias{ConnectionOutputStream} \alias{ConnectionOutputStream-methods} \alias{ConnectionOutputStream,connection-method} \title{Creates an ConnectionOutputStream} \description{ Constructor for \linkS4class{ConnectionOutputStream} objects } \section{Methods}{ \describe{ \item{\code{signature(object="connection")}}{ Creates a \linkS4class{ConnectionOutputStream} writing to the given R binary connection.} }} \keyword{methods} RProtoBuf/man/FileOutputStream-class.Rd0000644000176200001440000000330614535365317017573 0ustar liggesusers\name{FileOutputStream-class} \Rdversion{1.1} \docType{class} \alias{FileOutputStream-class} \alias{close,FileOutputStream-method} \alias{flush,FileOutputStream-method} \alias{GetErrno,FileOutputStream-method} \alias{SetCloseOnDelete,FileOutputStream-method} \title{Class "FileOutputStream" } \description{A \linkS4class{ZeroCopyOutputStream} reading from a file} \section{Objects from the Class}{ Objects can be created by the \link{FileOutputStream} function } \section{Slots}{ \describe{ \item{\code{pointer}:}{ External pointer to the \code{google::protobuf::io::FileOutputStream} C++ object} } } \section{Extends}{ Class \code{"\linkS4class{ZeroCopyOutputStream}"}, directly. } \section{Methods}{ \describe{ \item{close}{\code{signature(con="FileOutputStream")}: Flushes any buffers and closes the underlying file. Returns false if an error occurs during the process; use \code{GetErrno} to examine the error } \item{flush}{\code{signature(con="FileOutputStream")}: Flushes FileOutputStream's buffers but does not close the underlying file } \item{GetErrno}{\code{signature(object="FileInputStream")}: If an I/O error has occurred on this file descriptor, this is the errno from that error. Otherwise, this is zero. Once an error occurs, the stream is broken and all subsequent operations will fail. } \item{SetCloseOnDelete}{\code{signature(object="FileOutputStream")}: set the close on delete behavior. } } See \linkS4class{ZeroCopyOutputStream} for inherited methods } \references{ The \code{FileOutputStream} class from the protobuf C++ library.} \author{ Romain Francois } \seealso{ \linkS4class{ZeroCopyOutputStream} for methods } \keyword{classes} RProtoBuf/man/Descriptor-class.Rd0000644000176200001440000001167314535365266016446 0ustar liggesusers\name{Descriptor-class} \Rdversion{1.1} \docType{class} \alias{Descriptor-class} \alias{as.character,Descriptor-method} \alias{$<-,Descriptor-method} \alias{$,Descriptor-method} \alias{new,Descriptor-method} \alias{show,Descriptor-method} \alias{toString,Descriptor-method} \alias{containing_type,Descriptor-method} \alias{field_count,Descriptor-method} \alias{nested_type_count,Descriptor-method} \alias{enum_type_count,Descriptor-method} \alias{field,Descriptor-method} \alias{nested_type,Descriptor-method} \alias{enum_type,Descriptor,ANY,ANY-method} \alias{[[,Descriptor-method} \alias{names,Descriptor-method} \alias{length,Descriptor-method} \title{Class "Descriptor" } \description{ full descriptive information about a protocol buffer message type. This is a thin wrapper around the C++ class \code{Descriptor}} \section{Objects from the Class}{ Objects are usually created by calls to the \code{\link{P}} function. } \section{Slots}{ \describe{ \item{\code{pointer}:}{external pointer holding a \code{Descriptor} object } \item{\code{type}:}{full name of the corresponding message type} } } \section{Methods}{ \describe{ \item{as.character}{\code{signature(x = "Descriptor")}: returns the debug string of the descriptor. This is retrieved by a call to the \code{DebugString} method of the Descriptor object. } \item{toString}{\code{signature(x = "Descriptor")}: same as \code{as.character} } \item{$}{\code{signature(x = "Descriptor")}: retrieves a descriptor for a member of the message type. This can either be another "Descriptor" instance describing a nested type, or a \linkS4class{EnumDescriptor} object describing an enum type, or a \linkS4class{FieldDescriptor} object describing a field of the message} \item{new}{\code{signature(Class = "Descriptor")}: creates a prototype message (\linkS4class{Message}) of this descriptor} \item{show}{\code{signature(object = "Descriptor")}: simple information} \item{containing_type}{\code{signature(object = "Descriptor")} : returns a descriptor of the message type that contains this message descriptor, or \code{NULL} if this is a top-level message type.} \item{field_count}{\code{signature(object = "Descriptor")} : The number of fields of this message type. } \item{nested_type_count}{\code{signature(object = "Descriptor")} : The number of nested types of this message type. } \item{enum_type_count}{\code{signature(object = "Descriptor")} : The number of enum types of this message type. } \item{field}{\code{signature(object = "Descriptor")} : extract a field descriptor from a descriptor. Exactly one argument of \code{index}, \code{number} or \code{name} has to be used. If \code{index} is used, the field descriptor is retrieved by position, using the \code{field} method of the \code{google::protobuf::Descriptor} C++ class. If \code{number} is used, the field descriptor is retrieved using the tag number, with the \code{FindFieldByNumber} C++ method. If \code{name} is used, the field descriptor is retrieved by name using the \code{FindFieldByName} } \item{nested_type}{\code{signature(object = "Descriptor")} : extracts a message type descriptor that is nested in this descriptor. Exactly one argument of \code{index} of \code{name} has to be used. If \code{index} is used, the nested type will be retrieved using its position with the \code{nested_type} method of the \code{google::protobuf::Descriptor} C++ class. If \code{name} is used, the nested type will be retrieved using its name, with the \code{FindNestedTypeByName} C++ method } \item{enum_type}{\code{signature(object = "Descriptor")} : extracts an enum type descriptor that is contained in this descriptor. Exactly one argument of \code{index} of \code{name} has to be used. If \code{index} is used, the enum type will be retrieved using its position with the \code{enum_type} method of the \code{google::protobuf::Descriptor} C++ class. If \code{name} is used, the enum type will be retrieved using its name, with the \code{FindEnumTypeByName} C++ method } \item{[[}{\code{signature(x = "Descriptor")}: extracts a field identified by its name or declared tag number} \item{names}{\code{signature(x = "Descriptor")} : extracts names of this descriptor} \item{length}{\code{signature(x = "Descriptor")} : extracts length of this descriptor} } } \author{ Romain Francois } \seealso{ the \code{\link{P}} function creates "Descriptor" messages. } \examples{ \dontrun{ # example proto file supplied with this package proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) # reading a proto file and creating the descriptor Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{Person <- P( "tutorial.Person" ) } # enum type Person$PhoneType # nested type Person$PhoneNumber # field Person$email # use this descriptor to create a message new( Person ) } \keyword{classes} RProtoBuf/man/aslist.Rd0000644000176200001440000000272012440004312014464 0ustar liggesusers\name{as.list.Message} \alias{as.list.Message} \alias{as.list.Descriptor} \alias{as.list.EnumDescriptor} \alias{as.list.FileDescriptor} \alias{as.list.ServiceDescriptor} \title{ Grab the protocol buffer message as an R list } \description{ Utility to grab the protocol buffer message as an R list, with one item per field. } \usage{ \S3method{as.list}{Message}(x, ...) \S3method{as.list}{Descriptor}(x, ...) \S3method{as.list}{EnumDescriptor}(x, ...) \S3method{as.list}{FileDescriptor}(x, ...) \S3method{as.list}{ServiceDescriptor}(x, ...) } \arguments{ \item{x}{A protocol buffer message, instance of \linkS4class{Message}, or a protocol message descriptor, instance of \linkS4class{Descriptor} } \item{\dots}{ignored} } \value{ For messages, a list of the content of the fields is returned. For message type descriptors, a list containing nested type descriptors (\linkS4class{Descriptor} objects), enum type descriptors (\linkS4class{EnumDescriptor} objects), then field descriptors (\linkS4class{FieldDescriptor} objects) in that order. For enum descriptors, a named list of the enumerated values. For file descriptors, a named list of descriptors defined in the specified file descriptor. For service descriptors, ... } \author{ Romain Francois } \examples{ Person <- P( "tutorial.Person" ) romain <- new( Person, email = "francoisromain@free.fr", id = 1 ) as.list( romain ) as.list( Person ) as.list( Person$PhoneType) } \keyword{ programming } RProtoBuf/man/RProtoBuf-package.Rd0000644000176200001440000000206112566371245016463 0ustar liggesusers\name{RProtoBuf-package} \alias{RProtoBuf-package} \alias{RProtoBuf} \docType{package} \title{R Interface to the Protocol Buffers API} \description{ Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats. This package provides R API to create, manipulate, parse and serialize protocol buffer messages from R } \author{Romain Francois, Dirk Eddelbuettel, Murray Stokely and Jeroen Ooms.} \references{\url{https://github.com/eddelbuettel/rprotobuf}} \keyword{package} \seealso{\linkS4class{Message} for some examples} \examples{ \dontrun{ # an example proto file system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) # create a message of type AddressBook, defined in the example proto file demo( "addressbook", package = "RProtoBuf" ) # using R binary connections and files to read and write messages demo( "io", package = "RProtoBuf" ) # more documentation in the vignette vignette( "RProtoBuf", package = "RProtoBuf" ) } } RProtoBuf/man/label.Rd0000644000176200001440000000153612440004312014250 0ustar liggesusers\name{label-methods} \alias{label} \alias{label-methods} \alias{LABEL_OPTIONAL} \alias{LABEL_REQUIRED} \alias{LABEL_REPEATED} \title{Gets the label of a field} \description{ Gets the label of a field (optional, required, or repeated). } \arguments{ \item{object}{A \linkS4class{FieldDescriptor} object.} \item{as.string}{If true, print a string representation of the type.} } \seealso{ The method is implemented for the \linkS4class{FieldDescriptor} class } \keyword{methods} \examples{ \dontrun{ proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{ Person <- P("tutorial.Person") } label(Person$id) label(Person$email) label(Person$phone) label(Person$id, TRUE) label(Person$email, TRUE) label(Person$phone, TRUE) LABEL_OPTIONAL LABEL_REQUIRED LABEL_REPEATED }RProtoBuf/man/clear.Rd0000644000176200001440000000271112440004312014253 0ustar liggesusers\name{clear-methods} \docType{methods} \alias{clear} \alias{clear-methods} \alias{clear,Message,character-method} \alias{clear,Message,integer-method} \alias{clear,Message,missing-method} \alias{clear,Message,numeric-method} \alias{clear,Message,raw-method} \title{Clear a field or all fields of the message and set them to their default values} \description{ Clear one field or all fields of the message and set them to their default values } \section{Methods}{ \describe{ \item{\code{signature(object = "Message", field = "missing")}}{Clear all fields of the message and set them to their default values } \item{\code{signature(object = "Message", field = "character")}}{ Clear the field identified by its name } \item{\code{signature(object = "Message", field = "integer")}}{ Clear the field identified by its tag number } \item{\code{signature(object = "Message", field = "numeric")}}{ Clear the field identified by its tag number } \item{\code{signature(object = "Message", field = "raw")}}{ Clear the field identified by its tag number} }} \keyword{methods} \examples{ message <- new( tutorial.Person, name = "dddd", email = "eeeeeee", id = 1 ) writeLines( as.character( message ) ) clear( message ) # clear works also as a pseudo method : message$clear() writeLines( as.character( message ) ) # clear single fields message <- new( tutorial.Person, name = "dddd", email = "eeeeeee", id = 1 ) message$clear( "name" ) writeLines( as.character( message ) ) } RProtoBuf/man/has.Rd0000644000176200001440000000311613617260253013757 0ustar liggesusers\name{has-methods} \docType{methods} \alias{has} \alias{has-methods} \alias{has,Message-method} \title{Indicates if an object has the given field set} \description{ This generic method, currently implemented for \linkS4class{Message} and \linkS4class{EnumDescriptor} indicates if the message or enum descriptor has the given field set. For messages and non-repeated fields, a call to the \code{HasField} method of the corresponding \code{Message} is issued. For messages and repeated fields, a call to the \code{FieldSize} method is issued, and the message is declared to have the field if the size is greater than 0. \code{NULL} is returned if the descriptor for the message does not contain the given field at all. For EnumDescriptors, a boolean value indicates if the given name is present in the enum definition. } \section{Methods}{ \describe{ \item{has}{\code{signature(object = "Message")}: Indicates if the message has a given field.} \item{has}{\code{signature(object = "EnumDescriptor")}: Indicates if the EnumDescriptor has a given named element.} } } \examples{ unitest.proto.file <- system.file("tinytest", "data", "unittest.proto", package = "RProtoBuf" ) readProtoFiles(file = unitest.proto.file) test <- new(protobuf_unittest.TestAllTypes) test$has("optional_int32") # FALSE test$add("repeated_int32", 1:10) test$has("repeated_int32") # TRUE test$has("nonexistant") # NULL has(protobuf_unittest.TestAllTypes$NestedEnum, "FOO") has(protobuf_unittest.TestAllTypes$NestedEnum, "BAR") has(protobuf_unittest.TestAllTypes$NestedEnum, "XXX") } \keyword{methods} RProtoBuf/man/swap.Rd0000644000176200001440000000072114535365524014164 0ustar liggesusers\name{swap-methods} \docType{methods} \alias{swap} \alias{swap-methods} \alias{swap,Message-method} \title{swap elements of a repeated field of a message} \description{ swap elements of a repeated field of a message. } \section{Methods}{ \describe{ \item{\code{signature(object = "Message")}}{swap elements of a repeated field of a message} }} \references{See the \code{SwapElements} of the \code{Reflection} class, part of the protobuf library.} \keyword{methods} RProtoBuf/man/ZeroCopyInputStream-class.Rd0000644000176200001440000000645414535365237020275 0ustar liggesusers\name{ZeroCopyInputStream-class} \Rdversion{1.1} \docType{class} \alias{ZeroCopyInputStream-class} \alias{Skip,ZeroCopyInputStream-method} \alias{ByteCount,ZeroCopyInputStream-method} \alias{BackUp,ZeroCopyInputStream-method} \alias{Next,ZeroCopyInputStream,missing-method} \alias{$,ZeroCopyInputStream-method} \alias{ReadRaw} \alias{ReadRaw-methods} \alias{ReadRaw,ZeroCopyInputStream,integer-method} \alias{ReadRaw,ZeroCopyInputStream,numeric-method} \alias{ReadString} \alias{ReadString-methods} \alias{ReadString,ZeroCopyInputStream,integer-method} \alias{ReadString,ZeroCopyInputStream,numeric-method} \alias{ReadVarint32} \alias{ReadVarint32-methods} \alias{ReadVarint32,ZeroCopyInputStream-method} \alias{ReadLittleEndian32} \alias{ReadLittleEndian32-methods} \alias{ReadLittleEndian32,ZeroCopyInputStream-method} \alias{ReadLittleEndian64} \alias{ReadLittleEndian64-methods} \alias{ReadLittleEndian64,ZeroCopyInputStream-method} \alias{ReadVarint64} \alias{ReadVarint64-methods} \alias{ReadVarint64,ZeroCopyInputStream-method} \title{Virtual Class "ZeroCopyInputStream" } \description{R wrapper for the ZeroCopyInputStream c++ class} \section{Objects from the Class}{ This is a virtual class } \section{Slots}{ \describe{ \item{\code{pointer}:}{external pointer to the \code{google::protobuf::io::ZeroCopyInputStream} object} } } \section{Methods}{ \describe{ \item{$}{\code{signature(x="ZeroCopyInputStream")}: invokes a method} \item{Next}{\code{signature(object="ZeroCopyInputStream")}: Get a number of bytes from the stream as a raw vector. } \item{Skip}{\code{signature(object="ZeroCopyInputStream")}: skip a number of bytes} \item{BackUp}{\code{signature(object="ZeroCopyInputStream")}: Backs up a number of bytes, so that the next call to \code{Next} returns data again that was already returned by the last call to \code{Next}.} \item{ByteCount}{\code{signature(object="ZeroCopyInputStream")}: Returns the total number of bytes read since this object was created. } \item{ReadRaw}{\code{signature(object="ZeroCopyInputStream", size = "integer")}: read raw bytes from the stream} \item{ReadRaw}{\code{signature(object="ZeroCopyInputStream", size = "numeric")}: read raw bytes from the stream} \item{ReadString}{\code{signature(object="ZeroCopyInputStream", size = "integer")}: same as \code{ReadRaw} but formats the result as a string} \item{ReadString}{\code{signature(object="ZeroCopyInputStream", size = "numeric")}: same as \code{ReadRaw} but formats the result as a string} \item{ReadVarint32}{\code{signature(object="ZeroCopyInputStream")}: Read an unsigned integer with Varint encoding, truncating to 32 bits. } \item{ReadLittleEndian32}{\code{signature(object="ZeroCopyInputStream")}: Read a 32-bit little-endian integer. } \item{ReadLittleEndian64}{\code{signature(object="ZeroCopyInputStream")}: Read a 64-bit little-endian integer. In R the value is stored as a \code{double} which looses some precision (no other way) } \item{ReadVarint64}{\code{signature(object="ZeroCopyInputStream")}: Read a 64-bit integer with varint encoding. In R the value is stored as a \code{double} which looses some precision (no other way) } } } \author{ Romain Francois } \references{The \code{google::protobuf::io::ZeroCopyInputStream} C++ class.} \seealso{TODO: add classes that extend} \keyword{classes} RProtoBuf/man/bytesize.Rd0000644000176200001440000000112713776225671015055 0ustar liggesusers\name{bytesize-methods} \docType{methods} \alias{bytesize} \alias{bytesize-methods} \alias{bytesize,Message-method} \title{The number of bytes taken by a message } \description{ The number of bytes taken by a \linkS4class{Message} } \section{Methods}{ \describe{ \item{\code{signature(object = "Message")}}{ The number of bytes the message would take when serialized } }} \keyword{methods} \examples{ message <- new( tutorial.Person, name = "dddd", email = "eeeeeee", id = 1 ) bytesize( message ) \dontshow{ stopifnot( all.equal( bytesize(message), length(serialize(message, NULL ) ) ) ) } } RProtoBuf/man/readASCII.Rd0000644000176200001440000000232513366713513014674 0ustar liggesusers\name{readASCII-methods} \docType{methods} \alias{readASCII} \alias{readASCII-methods} \alias{readASCII,Descriptor,ANY-method} \alias{readASCII,Descriptor,character-method} \title{read a message in ASCII format} \description{ Method to read a Message in ASCII format } \section{Methods}{ \describe{ \item{\code{signature(descriptor = "Descriptor", input = "ANY")}}{ Read the message from a connection (file, etc ...) } \item{\code{signature(descriptor = "Descriptor", input = "character")}}{ Read the message directly from the character string } }} \keyword{methods} \examples{ \dontrun{ # example file that contains a "tutorial.AddressBook" message book <- system.file( "examples", "addressbook.pb", package = "RProtoBuf" ) # read the message message <- read( tutorial.AddressBook, book ) # Output in text format to a temporary file out.file <- tempfile() writeLines( as.character(message), file(out.file)) # Verify that we can read back in the message from a text file. message2 <- readASCII( tutorial.AddressBook, file(out.file, "rb")) # Verify that we can read back in the message from an unopened file. message3 <- readASCII( tutorial.AddressBook, file(out.file)) \dontshow{ stopifnot( identical( message, message2) ) } } } RProtoBuf/man/nested_type_count.Rd0000644000176200001440000000040012440004312016711 0ustar liggesusers\name{nested_type_count-methods} \alias{nested_type_count} \alias{nested_type_count-methods} \title{The number of fields} \description{ The number of fields } \seealso{ The method is implemented for the \linkS4class{Descriptor} class } \keyword{methods} RProtoBuf/man/ArrayInputStream-methods.Rd0000644000176200001440000000147312440004312020104 0ustar liggesusers\name{ArrayInputStream-methods} \docType{methods} \alias{ArrayInputStream} \alias{ArrayInputStream-methods} \alias{ArrayInputStream,raw,missing-method} \alias{ArrayInputStream,raw,integer-method} \alias{ArrayInputStream,raw,numeric-method} \title{Creates an ArrayInputStream} \description{ Constructor for \linkS4class{ArrayInputStream} objects } \section{Methods}{ \describe{ \item{\code{signature(payload = "raw", block_size = "missing" )}}{Creates a \linkS4class{ArrayInputStream} using the raw vector as the payload of the stream} \item{\code{signature(payload = "raw", block_size = "integer" )}}{Creates a \linkS4class{ArrayInputStream} ... same with block size. } \item{\code{signature(payload = "raw", block_size = "numeric" )}}{Creates a \linkS4class{ArrayInputStream} ... same with block size. } }} \keyword{methods} RProtoBuf/man/FieldDescriptor-class.Rd0000644000176200001440000001257112440004312017357 0ustar liggesusers\name{FieldDescriptor-class} \Rdversion{1.1} \docType{class} \alias{FieldDescriptor-class} \alias{show,FieldDescriptor-method} \alias{$,FieldDescriptor-method} \alias{as.character,FieldDescriptor-method} \alias{toString,FieldDescriptor-method} \alias{containing_type,FieldDescriptor-method} \alias{is_extension,FieldDescriptor-method} \alias{number,FieldDescriptor-method} \alias{type,FieldDescriptor-method} \alias{cpp_type,FieldDescriptor-method} \alias{label,FieldDescriptor-method} \alias{is_required} \alias{is_optional} \alias{is_repeated} \alias{is_required-methods} \alias{is_optional-methods} \alias{is_repeated-methods} \alias{is_required,FieldDescriptor-method} \alias{is_optional,FieldDescriptor-method} \alias{is_repeated,FieldDescriptor-method} \alias{has_default_value} \alias{has_default_value-methods} \alias{has_default_value,FieldDescriptor-method} \alias{default_value} \alias{default_value-methods} \alias{default_value,FieldDescriptor-method} \alias{message_type} \alias{message_type-methods} \alias{message_type,FieldDescriptor-method} \alias{enum_type,FieldDescriptor,missing,missing-method} \title{Class "FieldDescriptor"} \description{R representation of message type field descriptor. This is a thin wrapper around the C++ class \code{FieldDescriptor} } \section{Objects from the Class}{ Objects typically are retrieved from \linkS4class{FieldDescriptor} } \section{Slots}{ \describe{ \item{\code{pointer}:}{external pointer to the \code{FieldDescriptor} c++ object } \item{\code{name}:}{ name of the field within the message type } \item{\code{full_name}:}{Fully qualified name of the field} \item{\code{type}:}{Fully qualified name of the type that contains this field } } } \section{Methods}{ \describe{ \item{show}{\code{signature(object = "FieldDescriptor")}: small description } \item{as.character}{\code{signature(x = "FieldDescriptor")}: returns the debug string of the field descriptor. This is retrieved by a call to the \code{DebugString} method of the FieldDescriptor object. } \item{toString}{\code{signature(x = "FieldDescriptor")}: same as \code{as.character} } \item{$}{\code{signature(x = "FieldDescriptor")}: used to invoke pseudo methods } \item{containing_type}{\code{signature(object = "FieldDescriptor")} : returns a \linkS4class{Descriptor} of the message type that contains this field descriptor.} \item{is_extension}{\code{signature(object = "FieldDescriptor")} : indicates if this is an extension.} \item{number}{\code{signature(object = "FieldDescriptor")} : gets the declared tag number of this field.} \item{type}{\code{signature(object = "FieldDescriptor")} : type of this field.} \item{cpp_type}{\code{signature(object = "FieldDescriptor")} : c++ type of this field.} \item{label}{\code{signature(object = "FieldDescriptor")} : label of this field.} \item{is_required}{\code{signature(object = "FieldDescriptor")} : is this field required.} \item{is_optional}{\code{signature(object = "FieldDescriptor")} : is this field optional.} \item{is_repeated}{\code{signature(object = "FieldDescriptor")} : is this field repeated.} \item{has_default_value}{\code{signature(object = "FieldDescriptor")} : indicates if this field has a default value.} \item{default_value}{\code{signature(object = "FieldDescriptor")} : the default value of this field.} \item{message_type}{\code{signature(object = "FieldDescriptor")} : the \linkS4class{Descriptor} for the associated message type. Generates an error if this field is not a message type field.} \item{enum_type}{\code{signature(object = "FieldDescriptor")} : the \linkS4class{EnumDescriptor} for the associated enum type.Generates an error if this field is not an enum type field } } } \references{ The \code{FieldDescriptor} C++ class } \author{ Romain Francois } \seealso{ \linkS4class{Descriptor} } \examples{ \dontrun{ # example proto file supplied with this package proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) # reading a proto file and creating the descriptor Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{Person <- P("tutorial.Person") } # field descriptor object Person$email # debug string as.character( Person$email ) # or as a pseudo method Person$email$as.character() Person$email$is_required() Person$email$is_optional() Person$email$is_repeated() Person$email$has_default_value() Person$email$default_value() Person$email$is_extension() # Get the default values has_default_value(Person$id) has_default_value(Person$email) has_default_value(Person$phone) default_value(Person$id) default_value(Person$email) default_value(Person$phone) # Get the types of field descriptors type(Person$id) type(Person$id, as.string=TRUE) cpp_type(Person$email) cpp_type(Person$email, TRUE) # Get the label of a field descriptor label(Person$id) label(Person$email) label(Person$phone) label(Person$id, TRUE) label(Person$email, TRUE) label(Person$phone, TRUE) LABEL_OPTIONAL LABEL_REQUIRED LABEL_REPEATED # Test if a field is optional is_optional(Person$id) is_optional(Person$email) is_optional(Person$phone) # Test if a field is repeated is_repeated(Person$id) is_repeated(Person$email) is_repeated(Person$phone) # Test if a field is required is_required(Person$id) is_required(Person$email) is_required(Person$phone) # Return the class of a message field message_type(Person$phone) } \keyword{classes} RProtoBuf/man/BackUp-methods.Rd0000644000176200001440000000041512440004312015772 0ustar liggesusers\name{BackUp-methods} \docType{methods} \alias{BackUp} \alias{BackUp-methods} \title{Backs up a number of bytes from a stream} \description{ Backs up a number of bytes from a stream } \seealso{ \linkS4class{ZeroCopyInputStream} implements BackUp. } \keyword{methods} RProtoBuf/man/Skip-methods.Rd0000644000176200001440000000024312440004312015532 0ustar liggesusers\name{Skip-methods} \docType{methods} \alias{Skip} \alias{Skip-methods} \title{Skips a number of bytes} \description{ Skips a number of bytes } \keyword{methods} RProtoBuf/man/type.Rd0000644000176200001440000000246512440004312014154 0ustar liggesusers\name{type-methods} \alias{type} \alias{type-methods} \alias{cpp_type} \alias{cpp_type-methods} \alias{TYPE_DOUBLE} \alias{TYPE_FLOAT} \alias{TYPE_INT64} \alias{TYPE_UINT64} \alias{TYPE_INT32} \alias{TYPE_FIXED64} \alias{TYPE_FIXED32} \alias{TYPE_BOOL} \alias{TYPE_STRING} \alias{TYPE_GROUP} \alias{TYPE_MESSAGE} \alias{TYPE_BYTES} \alias{TYPE_UINT32} \alias{TYPE_ENUM} \alias{TYPE_SFIXED32} \alias{TYPE_SFIXED64} \alias{TYPE_SINT32} \alias{TYPE_SINT64} \alias{CPPTYPE_INT32} \alias{CPPTYPE_INT64} \alias{CPPTYPE_UINT32} \alias{CPPTYPE_UINT64} \alias{CPPTYPE_DOUBLE} \alias{CPPTYPE_FLOAT} \alias{CPPTYPE_BOOL} \alias{CPPTYPE_ENUM} \alias{CPPTYPE_STRING} \alias{CPPTYPE_MESSAGE} \title{Gets the type or the C++ type of a field} \description{ Gets the type or the C++ type of a field } \arguments{ \item{object}{A \linkS4class{FieldDescriptor} object.} \item{as.string}{If true, print a string representation of the type.} } \seealso{ The method is implemented for the \linkS4class{FieldDescriptor} class } \keyword{methods} \examples{ \dontrun{ proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{Person <- P( "tutorial.Person" )} type(Person$id) type(Person$id, as.string=TRUE) cpp_type(Person$email) cpp_type(Person$email, TRUE) }RProtoBuf/man/ConnectionInputStream-methods.Rd0000644000176200001440000000073412440004312021124 0ustar liggesusers\name{ConnectionInputStream-methods} \docType{methods} \alias{ConnectionInputStream} \alias{ConnectionInputStream-methods} \alias{ConnectionInputStream,connection-method} \title{Creates an ConnectionInputStream} \description{ Constructor for \linkS4class{ConnectionInputStream} objects } \section{Methods}{ \describe{ \item{\code{signature(object="connection")}}{Creates a \linkS4class{ConnectionInputStream} reading from the given R binary connection.} }} \keyword{methods} RProtoBuf/man/field.Rd0000644000176200001440000000042712440004312014252 0ustar liggesusers\name{field-methods} \alias{field} \alias{field-methods} \title{Extract a field descriptor} \description{ Extract a \linkS4class{FieldDescriptor} from a \linkS4class{Descriptor} } \seealso{ The method is implemented for the \linkS4class{Descriptor} class } \keyword{methods} RProtoBuf/man/field_count.Rd0000644000176200001440000000035612440004312015463 0ustar liggesusers\name{field_count-methods} \alias{field_count} \alias{field_count-methods} \title{The number of fields} \description{ The number of fields } \seealso{ The method is implemented for the \linkS4class{Descriptor} class } \keyword{methods} RProtoBuf/man/with.Rd0000644000176200001440000000233212440004312014137 0ustar liggesusers\name{with.Message} \alias{with.Message} \alias{within.Message} \title{ with and within methods for protocol buffer messages } \description{ Convenience wrapper that allow getting and setting fields of protocol buffer messages from within the object } \usage{ \S3method{with}{Message}(data, expr, ...) \S3method{within}{Message}(data, expr, ...) } \arguments{ \item{data}{A protocol buffer message, instance of \linkS4class{Message} } \item{expr}{R expression to evaluate} \item{\dots}{ignored} } \details{ The expression is evaluated in an environment that allows to set and get fields of the message The fields of the message are mapped to active bindings (see \link{makeActiveBinding}) so that they can be accessed and modified from within the environment. } \value{ \code{with} returns the value of the expression and \code{within} returns the \code{data} argument. } \author{ Romain Francois } \examples{ \dontrun{ proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{Person <- P( "tutorial.Person") } romain <- within( new( Person ), { email <- "francoisromain@free.fr" id <- 10L } ) } \keyword{ classes } RProtoBuf/man/nested_type.Rd0000644000176200001440000000051012440004312015503 0ustar liggesusers\name{nested_type-methods} \alias{nested_type} \alias{nested_type-methods} \title{Extract a message type descriptor for a nested type} \description{ Extract a \linkS4class{Descriptor} nested in another \linkS4class{Descriptor} } \seealso{ The method is implemented for the \linkS4class{Descriptor} class } \keyword{methods} RProtoBuf/man/EnumValueDescriptor-class.Rd0000644000176200001440000000472614535364746020273 0ustar liggesusers\name{EnumValueDescriptor-class} \Rdversion{1.1} \docType{class} \alias{EnumValueDescriptor-class} \alias{show,EnumValueDescriptor-method} \alias{as.character,EnumValueDescriptor-method} \alias{toString,EnumValueDescriptor-method} \alias{$,EnumValueDescriptor-method} \alias{name,EnumValueDescriptor-method} \alias{number,EnumValueDescriptor-method} \alias{enum_type,EnumValueDescriptor,missing,missing-method} \title{Class "EnumValueDescriptor" } \description{ R representation of an enum value descriptor. This is a thin wrapper around the \code{EnumValueDescriptor} c++ class. } \section{Objects from the Class}{ Objects of this class are typically retrieved with the \code{value} method of the \linkS4class{EnumDescriptor} class } \section{Slots}{ \describe{ \item{\code{pointer}:}{external pointer to the \code{EnumValueDescriptor} instance} \item{\code{name}:}{ simple name of the enum } \item{\code{full_name}:}{fully qualified name } } } \section{Methods}{ \describe{ \item{show}{\code{signature(object = "EnumValueDescriptor")}: small information } \item{as.character}{\code{signature(x = "EnumValueDescriptor")}: returns the debug string of the enum descriptor. This is retrieved by a call to the \code{DebugString} method of the EnumDescriptor object. } \item{toString}{\code{signature(x = "EnumValueDescriptor")}: same as \code{as.character} } \item{$}{\code{signature(x = "EnumValueDescriptor")}: invoke pseudo methods } \item{name}{\code{signature(object = "EnumValueDescriptor", full = "logical")}: return the name of this enum constant.} \item{number}{\code{signature(object = "EnumValueDescriptor")}: return the numeric value of this enum constant.} \item{enum_type}{\code{signature(object = "EnumDescriptor")} : retrieves the \linkS4class{EnumDescriptor} related to this value descriptor.} } } \author{ Romain Francois } \examples{ \dontrun{ # example proto file supplied with this package proto.file <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) # reading a proto file and creating the descriptor Person <- P( "tutorial.Person", file = proto.file ) } \dontshow{Person <- P( "tutorial.Person" ) } # enum type Person$PhoneType # enum value type value(Person$PhoneType, 1) name(value(Person$PhoneType, 1)) name(value(Person$PhoneType, 1), TRUE) number(value(Person$PhoneType, number=1)) enum_type(value(Person$PhoneType, number=1)) } \keyword{classes} RProtoBuf/man/enum_type_count.Rd0000644000176200001440000000040112440004312016374 0ustar liggesusers\name{enum_type_count-methods} \alias{enum_type_count} \alias{enum_type_count-methods} \title{The number of enum types} \description{ The number of enum types } \seealso{ The method is implemented for the \linkS4class{Descriptor} class } \keyword{methods} RProtoBuf/man/serialize_pb.Rd0000644000176200001440000000262612710022354015650 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/serialize_pb.R \name{serialize_pb} \alias{can_serialize_pb} \alias{serialize_pb} \alias{unserialize_pb} \title{Serialize R object to Protocol Buffer Message.} \usage{ serialize_pb(object, connection, ...) } \arguments{ \item{object}{R object to serialize} \item{connection}{passed on to \code{\link{serialize}}} \item{...}{additional arguments passed on to \code{\link{serialize}}} } \description{ Serializes R objects to a general purpose protobuf message using the same \code{rexp.proto} descriptor and mapping between R objects and protobuf mesages as RHIPE. } \details{ Clients need both the message and the \code{rexp.proto} descriptor to parse serialized R objects. The latter is included in the the package installation \code{proto} directory: \code{system.file(package="RProtoBuf", "proto/rexp.proto")} The following storage types are natively supported by the descriptor: \code{character}, \code{raw}, \code{double}, \code{complex}, \code{integer}, \code{list}, and \code{NULL}. Objects with other storage types, such as functions, environments, S4 classes, etc, are serialized using base R \code{\link{serialize}} and stored in the proto \code{native} type. Missing values, attributes and numeric precision will be preserved. } \examples{ msg <- tempfile(); serialize_pb(iris, msg); obj <- unserialize_pb(msg); identical(iris, obj); } RProtoBuf/man/FileInputStream-methods.Rd0000644000176200001440000000075312440004312017705 0ustar liggesusers\name{FileInputStream-methods} \docType{methods} \alias{FileInputStream} \alias{FileInputStream-methods} \alias{FileInputStream,character,integer,logical-method} \title{Creates an FileInputStream} \description{ Constructor for \linkS4class{FileInputStream} objects } \section{Methods}{ \describe{ \item{\code{signature(filename = "character", block_size = "logical", close.on.delete = "logical" )}}{Creates a \linkS4class{FileInputStream} reading from the given file.} }} \keyword{methods} RProtoBuf/man/MethodDescriptor-class.Rd0000644000176200001440000000276312707407313017574 0ustar liggesusers\name{MethodDescriptor-class} \Rdversion{1.1} \docType{class} \alias{MethodDescriptor-class} \alias{as.character,MethodDescriptor-method} \alias{toString,MethodDescriptor-method} \alias{$,MethodDescriptor-method} \alias{$<-,MethodDescriptor-method} \alias{input_type} \alias{input_type-methods} \alias{input_type,MethodDescriptor-method} \alias{output_type} \alias{output_type-methods} \alias{output_type,MethodDescriptor-method} \title{Class "MethodDescriptor"} \description{R representation of Service Descriptors} \section{Objects from the Class}{ TODO } \section{Slots}{ \describe{ \item{\code{pointer}:}{External pointer to a \code{google::protobuf::MethodDescriptor} C++ object } \item{\code{name}:}{fully qualified name of the method} \item{\code{service}:}{fully qualified name of the service that defines this method} } } \section{Methods}{ \describe{ \item{as.character}{\code{signature(x = "MethodDescriptor")}: debug string of the method } \item{toString}{\code{signature(x = "MethodDescriptor")}: debug string of the method} \item{$}{\code{signature(x = "MethodDescriptor")}: ... } \item{$<-}{\code{signature(x = "MethodDescriptor")}: ... } \item{input_type}{\code{signature(object = "MethodDescriptor")}: the \linkS4class{Descriptor} of the input type of the method} \item{output_type}{\code{signature(object = "MethodDescriptor")}: the \linkS4class{Descriptor} of the output type of the method } } } \author{ Romain Francois } \keyword{classes} RProtoBuf/man/FileInputStream-class.Rd0000644000176200001440000000300714535365406017367 0ustar liggesusers\name{FileInputStream-class} \Rdversion{1.1} \docType{class} \alias{FileInputStream-class} \alias{close,FileInputStream-method} \alias{GetErrno,FileInputStream-method} \alias{SetCloseOnDelete,FileInputStream-method} \title{Class "FileInputStream" } \description{A \linkS4class{ZeroCopyInputStream} reading from a file} \section{Objects from the Class}{ Objects can be created by the \link{FileInputStream} function } \section{Slots}{ \describe{ \item{\code{pointer}:}{ External pointer to the \code{google::protobuf::io::FileInputStream} C++ object} } } \section{Extends}{ Class \code{"\linkS4class{ZeroCopyInputStream}"}, directly. } \section{Methods}{ \describe{ \item{close}{\code{signature(con="FileInputStream")}: Flushes any buffers and closes the underlying file. Returns false if an error occurs during the process; use \code{GetErrno} to examine the error } \item{GetErrno}{\code{signature(object="FileInputStream")}: If an I/O error has occurred on this file descriptor, this is the errno from that error. Otherwise, this is zero. Once an error occurs, the stream is broken and all subsequent operations will fail. } \item{SetCloseOnDelete}{\code{signature(object="FileInputStream")}: set the close on delete behavior. } } See \linkS4class{ZeroCopyInputStream} for inherited methods } \references{ The \code{FileInputStream} class from the protobuf C++ library.} \author{ Romain Francois } \seealso{ \linkS4class{ZeroCopyInputStream} for methods } \keyword{classes} RProtoBuf/man/ConnectionInputStream-class.Rd0000644000176200001440000000145412440004312020566 0ustar liggesusers\name{ConnectionInputStream-class} \Rdversion{1.1} \docType{class} \alias{ConnectionInputStream-class} \title{Class "ConnectionInputStream" } \description{A \linkS4class{ZeroCopyInputStream} reading from a binary R connection} \section{Objects from the Class}{ Objects can be created by the \link{ConnectionInputStream} function } \section{Slots}{ \describe{ \item{\code{pointer}:}{ External pointer to the \code{rprotobuf::ConnectionInputStream} C++ object} } } \section{Extends}{ Class \code{"\linkS4class{ZeroCopyInputStream}"}, directly. } \section{Methods}{ See \linkS4class{ZeroCopyInputStream} } \references{ The internal C++ class \code{ConnectionInputStream} } \author{ Romain Francois } \seealso{ \linkS4class{ZeroCopyInputStream} for methods } \keyword{classes} RProtoBuf/man/FileOutputStream-methods.Rd0000644000176200001440000000076012440004312020104 0ustar liggesusers\name{FileOutputStream-methods} \docType{methods} \alias{FileOutputStream} \alias{FileOutputStream-methods} \alias{FileOutputStream,character,integer,logical-method} \title{Creates an FileOutputStream} \description{ Constructor for \linkS4class{FileOutputStream} objects } \section{Methods}{ \describe{ \item{\code{signature(filename = "character", block_size = "logical", close.on.delete = "logical" )}}{Creates a \linkS4class{FileOutputStream} writing to the given file.} }} \keyword{methods} RProtoBuf/man/GetErrno-methods.Rd0000644000176200001440000000057012440004312016354 0ustar liggesusers\name{GetErrno-methods} \docType{methods} \alias{GetErrno} \alias{GetErrno-methods} \title{Get the error number for an I/O error} \description{ If an I/O error has occurred on this file descriptor, this is the errno from that error } \section{Methods}{ See classes \linkS4class{FileInputStream} and \linkS4class{FileOutputStream} for implementations. } \keyword{methods} RProtoBuf/TODO0000644000176200001440000000673512440004312012625 0ustar liggesusersCurrent TODO list: o Finish improved vignette / R Journal writeup. o Push some type coercion hacks done in RProtoBuf upstream to Rcpp (Rcpp:as types should work on character strings representing numbers, especially for int64s since we don't otherwise have a way to represent 64-bit integers in base R). o Add more packages that depend on or enhance RProtoBuf. o Improve exception handling to prevent cases where an Rcpp exception crashes the interactive R instance. o Investigate Rcpp Modules support for some classes. Murray is not personally super enthusiastic about this one, as I think it may require non trivial changes to Rcpp and/or result in losing some of the user-friendliness we've crafted in the explicit RcppExported function entry points. Still, it could be explored and may result in significantly fewer lines of code if successful. o Add a FAQ and other documentation / examples. o Add more unit tests. o Explore removing the CLONE() in extractors.cpp. This makes for unusual semantics for any mutable methods of sub-messages. For example, clear(), setExtension(), and probably also update() ( but "$<-" on sub-messages is not a problem, it seems). More details below. o What should we do when we unload the package? Any additional resources to free that is not currently done? o finalizers [murray: what is needed here?] o Clean up formatting / whitespace of R code. The C++ code is now kept consistent through clang-format and a new emacs directory level config in pkg/src, and the style guide notes in the STYLE file on R-Forge. o Thoroughly audit extensions support and other deeply nested types support to ensure everything is implemented as expected. Stuff I think belongs in additional packages that depend on RProtoBuf, rather than inside RProtoBuf directly: o http-powered rpc implementation o More as.Message methods --- Detailed Notes ---- 8. CLONE() --[ examples from Murray illustrating the problem ]-- library(RProtoBuf) InitGoogle() if (!exists("protobuf_unittest.TestAllTypes", "RProtoBuf:DescriptorPool")) { unittest.proto.file <- system.file("unitTests", "data", "unittest.proto",package="RProtoBuf") readProtoFiles(file=unittest.proto.file) } test <- new(protobuf_unittest.TestAllTypes) test$optional_foreign_message <- new(protobuf_unittest.ForeignMessage, c=3) # Example 1: test$optional_foreign_message$c test$optional_foreign_message$clear() test$optional_foreign_message$c # didn't clear test$optional_foreign_message$c # Example 2: foo <- new(protobuf_unittest.ForeignMessage, c=3) foo$c foo$clear() foo$c # did clear foo$c # Example 3: baz <- test$optional_foreign_message baz$c baz$c <- 4 test$optional_foreign_message$c # still 3, but would be 4 if we removed the CLONE(). Example 1 is currently I think very confusing semantically for users of RProtoBuf with nested messages and I would like to fix that case. Example 2 works correctly now and would not be affected by this change. Example 3 would change behavior and could cause problems for users. Would need to be clearly announced in the NEWS file and to our user list. --[ Romain's thoughts ]-- `$<-` is the task of setMessageField: https://github.com/RProtoBuf/RProtoBuf/blob/master/R/00classes.R#L197 https://github.com/RProtoBuf/RProtoBuf/blob/master/src/mutators.cpp#L377 For "$" we could perhaps move to some sort of copy on change semantics (similar to what R does), instead of what we use currently which is more like copy on access. RProtoBuf/DESCRIPTION0000644000176200001440000000264714553217525013664 0ustar liggesusersPackage: RProtoBuf Version: 0.4.22 Date: 2024-01-20 Author: Romain Francois, Dirk Eddelbuettel, Murray Stokely and Jeroen Ooms Maintainer: Dirk Eddelbuettel Title: R Interface to the 'Protocol Buffers' 'API' (Version 2 or 3) Description: Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal 'RPC' protocols and file formats. Additional documentation is available in two included vignettes one of which corresponds to our 'JSS' paper (2016, . A sufficiently recent version of 'Protocol Buffers' library is required; currently version 3.3.0 from 2017 is the stated minimum. Depends: R (>= 3.0.0), methods Imports: utils, stats, tools, Rcpp LinkingTo: Rcpp Suggests: tinytest SystemRequirements: ProtoBuf libraries and compiler version 3.3.0 or later; On Debian/Ubuntu these can be installed as libprotoc-dev, libprotobuf-dev and protobuf-compiler, while on Fedora/CentOS protobuf-devel and protobuf-compiler are needed. A C++17 compiler is required as well. BugReports: https://github.com/eddelbuettel/rprotobuf/issues URL: https://github.com/eddelbuettel/rprotobuf, https://dirk.eddelbuettel.com/code/rprotobuf.html License: GPL (>= 2) NeedsCompilation: yes Packaged: 2024-01-20 13:44:18 UTC; edd Repository: CRAN Date/Publication: 2024-01-21 13:42:45 UTC RProtoBuf/build/0000755000176200001440000000000014552747062013247 5ustar liggesusersRProtoBuf/build/vignette.rds0000644000176200001440000000041314552747062015604 0ustar liggesusers‹Ċ’ħnƒ0†L“İJ”H™ûċ!Ş(K„2dµà\!(v êÖOÉv¸U¤.°}˙ŝî·ÄqNqˆKâP<Ò5.Sü–MA\âá%Jñzâ/I^*á‡ye[’IP=ks³>NI”*à­;d/Fl[nıZ^ÙÌ{YeÌËz³~ÊÚ¸C6ħv„ĥ~×7ÑşwŭÉè#İŬ ËĥŽDöŒUh}&Y”²7ĝ˙ûÓ{àCÎŜĦİŬ]’i8$ċµ Áv§“€· !ÍœÇ=|VBa=ä)QùfĜSósáR×ġyœ(ÊXaq³’ù\á}Ĵ/b RProtoBuf/tests/0000755000176200001440000000000013617263320013301 5ustar liggesusersRProtoBuf/tests/tinytest.R0000644000176200001440000000100013617260253015300 0ustar liggesusers if (requireNamespace("tinytest", quietly=TRUE) && utils::packageVersion("tinytest") >= "1.0.0") { ## Set a seed to make the test deterministic set.seed(42) ## R makes us to this Sys.setenv("R_TESTS"="") ## there are several more granular ways to test files in a tinytest directory, ## see its package vignette; tests can also run once the package is installed ## using the same command `test_package(pkgName)`, or by director or file tinytest::test_package("RProtoBuf") } RProtoBuf/configure.ac0000644000176200001440000001060014552746357014441 0ustar liggesusers ## RProtoBuf configure.ac ## ## Copyright (C) 2009 - 2024 Dirk Eddelbuettel ## Portions Copyright (C) 2010 Romain Francois ## Portions Copyright (C) 2013 Murray Stokely ## Portions Copyright (C) 2016 Craig Radcliffe # require at least autoconf 2.61 AC_PREREQ(2.61) # Process this file with autoconf to produce a configure script. AC_INIT([RProtoBuf], [0.4.22],[edd@debian.org]) # Ensure C++ is set up as R expects : ${R_HOME=`R RHOME`} if test -z "${R_HOME}"; then AC_MSG_ERROR([Could not determine R_HOME.]) fi CXX=`"${R_HOME}/bin/R" CMD config CXX` CXXFLAGS=`"${R_HOME}/bin/R" CMD config CXXFLAGS` AC_LANG(C++) AC_REQUIRE_CPP AC_PROG_CC AC_PROG_CXX ## simpler alternative to test below: AC_PATH_PROG(PROTOC, protoc) AC_DEFUN([AC_PROG_PKGCONFIG], [AC_CHECK_PROG(PKGCONFIG,pkg-config,yes)]) AC_PROG_PKGCONFIG ## use pkg-config for ProtoBuf settings ## if test x"${PKGCONFIG}" == x"yes"; then if pkg-config --exists protobuf; then protobuf_cxxflags=`pkg-config --cflags protobuf` protobuf_libs=`pkg-config --libs protobuf` else protobuf_cxxflags="" protobuf_libs="-lprotobuf" fi else # Add a reasonable default of -lprotobuf if we don't have pkg-config protobuf_cxxflags="" protobuf_libs="-lprotobuf" fi ## And make sure these flags are used for the tests below. CPPFLAGS="${protobuf_cxxflags} ${CPPFLAGS}" CXXFLAGS="${protobuf_cxxflags} ${CXXFLAGS}" ## look for protoc, the ProtoBuf compiler AC_DEFUN([AC_PROG_PROTOC], [AC_CHECK_PROG(PROTOC,protoc,yes)]) AC_PROG_PROTOC if test x"${PROTOC}" == x"no" ; then echo " Your installation does not appear to have protoc installed. Please make sure that you have a working and complete ProtoBuf installation. " exit 1 fi ## look for protobuf headers -- now use pkg-config which even does minimum version ## ## next two lines break witha autoconf 2.65 :-/ #PROTOBUF_VERSION="2.2.0" #PKG_CHECK_MODULES(ProtoBuf, protobuf >= 2.2.0, , AC_MSG_ERROR(Protobuf version 2.2.0 required)) ## check for header and ability to link ## first for headers Debian has in libprotobuf-dev protobuf_common_header=google/protobuf/stubs/common.h protobuf_common_header_cache_var=AS_TR_SH([ac_cv_header_$protobuf_common_header]) AC_CHECK_HEADER([$protobuf_common_header],, [ # If it didn't work, try adding /usr/local directly then trying again AC_MSG_WARN([Protobuf headers not found with default CXXFLAGS and CPPFLAGS, manually trying /usr/local/include]) CPPFLAGS="${protobuf_cxxflags} ${CPPFLAGS} -I/usr/local/include" CXXFLAGS="${protobuf_cxxflags} ${CXXFLAGS} -I/usr/local/include -L/usr/local/lib" # unset the cache variable for this particular header # check, so we can check again with different defaults # specified. AC_MSG_WARN([Unsetting $protobuf_common_header_cache_var]) AS_UNSET([$protobuf_common_header_cache_var]) AC_CHECK_HEADER([$protobuf_common_header],, [AC_MSG_ERROR([ERROR: ProtoBuf headers required; use '-Iincludedir' in CXXFLAGS for unusual locations.])]) ]) ## second for headers Debian has in libprotoc-dev AC_CHECK_HEADER(google/protobuf/compiler/code_generator.h,, [AC_MSG_ERROR([ERROR: ProtoBuf compiler headers required; use '-Iincludedir' in CXXFLAGS for unusual locations.])]) ## third check the lib itself #pb_savedlibs="$LIBS" # LIBS="$LIBS -lprotoc -lprotobuf -lpthread" LIBS="$LIBS $protobuf_libs" ## also check for minimum version AC_MSG_CHECKING([if ProtoBuf version >= 2.2.0]) AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include int main() { if (GOOGLE_PROTOBUF_VERSION >= 2001000) { exit (0); } else { exit(1); } } ]])], [pb_version_ok=yes], [pb_version_ok=no], [pb_version_ok=yes]) if test x"${pb_version_ok}" == x"no"; then AC_MSG_ERROR([Need ProtoBuf version >= 2.2.0]) else AC_MSG_RESULT([yes]) fi AC_DEFUN([AC_PROG_R], [AC_CHECK_PROG(R,R,yes)]) AC_PROG_R ## With thanks to Kurt (now set above) #: ${R_HOME=`R RHOME`} #if test -z "${R_HOME}"; then # AC_MSG_ERROR([Could not determine R_HOME.]) #fi #R_CXXFLAGS=`"${R_HOME}/bin/R" CMD config CXXFLAGS` #CXXFLAGS="${CXXFLAGS} ${R_CXXFLAGS}" ## now use all these AC_SUBST([PKG_CPPFLAGS],["${PKG_CPPFLAGS} ${CXXFLAGS} ${protobuf_cxxflags}"]) AC_SUBST([PKG_LIBS],["${PKG_LIBS} ${protobuf_libs}"]) AC_CONFIG_FILES([src/Makevars]) AC_OUTPUT echo " ${PACKAGE_NAME} $PACKAGE_VERSION ================ cflags: ${PKG_CPPFLAGS} libs: ${PKG_LIBS} " RProtoBuf/src/0000755000176200001440000000000014552747062012737 5ustar liggesusersRProtoBuf/src/DescriptorPoolLookup.cpp0000644000176200001440000000760713300665751017611 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- // DescriptorPoolLookup.cpp: R/C++ interface class library // // Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois // // This file is part of RProtoBuf. // // RProtoBuf is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RProtoBuf is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RProtoBuf. If not, see . #include "rprotobuf.h" #include "DescriptorPoolLookup.h" namespace rprotobuf { void DescriptorPoolLookup::add(const std::string& element) { elements.insert(element); } bool DescriptorPoolLookup::contains(const std::string& element) { return elements.find(element) != elements.end(); } SEXP DescriptorPoolLookup::getElements() { return Rcpp::wrap(elements); } std::set DescriptorPoolLookup::elements; RWarningErrorCollector DescriptorPoolLookup::error_collector; RSourceTree DescriptorPoolLookup::source_tree; GPB::compiler::Importer* DescriptorPoolLookup::importer = new GPB::compiler::Importer(&source_tree, &error_collector); GPB::DynamicMessageFactory DescriptorPoolLookup::message_factory(importer->pool()); /** * Add descriptors from a proto file to the descriptor pool. * * Specifically, message types, extensions, and enums are added. * Services are not added because they are not really used in RProtoBuf. * * @param files A character vector of .proto files to import. * @param dirs A character vector of directories to import from. * @throws Rcpp::exception if a file can't be loaded (uncaught). */ void DescriptorPoolLookup::importProtoFiles(SEXP files, SEXP dirs) { source_tree.addDirectories(dirs); int n = LENGTH(files); for (int j = 0; j < n; j++) { const GPB::FileDescriptor* file_desc = importer->Import(CHAR(STRING_ELT(files, j))); if (!file_desc) { std::string message = std::string("Could not load proto file '") + CHAR(STRING_ELT(files, j)) + "'\n"; Rcpp_error(message.c_str()); } // add top level messages from the file. int ntypes = file_desc->message_type_count(); for (int i = 0; i < ntypes; i++) { const GPB::Descriptor* desc = file_desc->message_type(i); add(desc->full_name()); /* should we bother recursing ? */ } // add top level extensions int nexts = file_desc->extension_count(); for (int i = 0; i < nexts; i++) { const GPB::FieldDescriptor* field_desc = file_desc->extension(i); add(field_desc->full_name()); } // add top level enums. int nenums = file_desc->enum_type_count(); for (int i = 0; i < nenums; i++) { const GPB::EnumDescriptor* enum_desc = file_desc->enum_type(i); add(enum_desc->full_name()); } } // source_tree.removeDirectories( dirs ) ; } /** * Clears any persisted state for the descriptor pool. */ void DescriptorPoolLookup::reset() { source_tree.removeAllDirectories(); elements.clear(); // TODO: Find out why deleting the old importer crashes the unit test run sometimes. // delete importer; importer = new GPB::compiler::Importer(&source_tree, &error_collector); } const GPB::DescriptorPool* DescriptorPoolLookup::pool() { return importer->pool(); } const GPB::DynamicMessageFactory* DescriptorPoolLookup::factory() { return &message_factory; } } // namespace rprotobuf RProtoBuf/src/ConnectionInputStream.h0000644000176200001440000000054712440004312017363 0ustar liggesusers#ifndef RPROTOBUF_ConnectionInputStream_H #define RPROTOBUF_ConnectionInputStream_H namespace rprotobuf { class ConnectionInputStream : public GPB::io::CopyingInputStreamAdaptor { public: ConnectionInputStream(SEXP con, bool was_open); ~ConnectionInputStream(); private: bool was_open; SEXP con; }; } // namespace rprotobuf #endif RProtoBuf/src/streams.cpp0000644000176200001440000002157312440004312015103 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "ConnectionInputStream.h" #include "ConnectionOutputStream.h" namespace rprotobuf { void ZeroCopyInputStreamWrapper_finalizer(SEXP xp) { delete (ZeroCopyInputStreamWrapper*)XPP(xp); } void ZeroCopyOutputStreamWrapper_finalizer(SEXP xp) { delete (ZeroCopyOutputStreamWrapper*)XPP(xp); } // {{{ input streams // {{{ FileInputStream SEXP FileInputStream_new(SEXP filename, SEXP block_size, SEXP close_on_delete) { BEGIN_RCPP NEW_S4_OBJECT("FileInputStream"); int fd = open(CHAR(STRING_ELT(filename, 0)), O_RDONLY | O_BINARY); GPB::io::FileInputStream* stream = new GPB::io::FileInputStream(fd, INTEGER(block_size)[0]); stream->SetCloseOnDelete(LOGICAL(close_on_delete)[0]); ZeroCopyInputStreamWrapper* wrapper = new ZeroCopyInputStreamWrapper(stream); SEXP ptr = PROTECT(R_MakeExternalPtr((void*)wrapper, R_NilValue, R_NilValue)); R_RegisterCFinalizerEx(ptr, ZeroCopyInputStreamWrapper_finalizer, _FALSE_); SET_SLOT(oo, Rf_install("pointer"), ptr); UNPROTECT(2); /* oo, ptr */ return oo; END_RCPP } SEXP FileInputStream_GetErrno(SEXP xp) { BEGIN_RCPP GPB::io::FileInputStream* stream = GET_FIS(xp); return Rf_ScalarInteger(stream->GetErrno()); END_RCPP } SEXP FileInputStream_SetCloseOnDelete(SEXP xp, SEXP close) { BEGIN_RCPP GPB::io::FileInputStream* stream = GET_FIS(xp); stream->SetCloseOnDelete(LOGICAL(close)); return R_NilValue; END_RCPP } SEXP FileInputStream_Close(SEXP xp) { BEGIN_RCPP GPB::io::FileInputStream* stream = GET_FIS(xp); bool res = stream->Close(); return Rf_ScalarLogical(res ? _TRUE_ : _FALSE_); END_RCPP } // }}} // {{{ ConnectionInputStream SEXP ConnectionInputStream_new(SEXP con, SEXP was_open) { BEGIN_RCPP NEW_S4_OBJECT("ConnectionInputStream"); ConnectionInputStream* stream = new ConnectionInputStream(con, (bool)LOGICAL(was_open)[0]); ZeroCopyInputStreamWrapper* wrapper = new ZeroCopyInputStreamWrapper(stream); SEXP ptr = PROTECT(R_MakeExternalPtr((void*)wrapper, R_NilValue, con)); R_RegisterCFinalizerEx(ptr, ZeroCopyInputStreamWrapper_finalizer, _FALSE_); SET_SLOT(oo, Rf_install("pointer"), ptr); UNPROTECT(2); /* oo, ptr */ return oo; END_RCPP } // }}} // }}} // {{{ output streams // {{{ ZeroCopyOutputStream SEXP ZeroCopyOutputStream_Next(SEXP xp, SEXP payload) { BEGIN_RCPP GPB::io::ZeroCopyOutputStream* stream = GET_ZCOS(xp); void* out; int s = LENGTH(payload); bool res = stream->Next(&out, &s); if (!res) { Rcpp_error("cannot write to stream"); } memcpy(out, RAW(payload), s); return Rf_ScalarInteger(s); END_RCPP } SEXP ZeroCopyOutputStream_ByteCount(SEXP xp) { BEGIN_RCPP GPB::io::ZeroCopyOutputStream* stream = GET_ZCOS(xp); return (Rf_ScalarReal((double)stream->ByteCount())); END_RCPP } SEXP ZeroCopyOutputStream_BackUp(SEXP xp, SEXP count) { BEGIN_RCPP GPB::io::ZeroCopyOutputStream* stream = GET_ZCOS(xp); int s = GET_int(count, 0); stream->BackUp(s); return R_NilValue; END_RCPP } // }}} // {{{ ArrayOutputStream // }}} // {{{ FileOutputStream SEXP FileOutputStream_new(SEXP filename, SEXP block_size, SEXP close_on_delete) { BEGIN_RCPP NEW_S4_OBJECT("FileOutputStream"); int fd = open(CHAR(STRING_ELT(filename, 0)), O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666); GPB::io::FileOutputStream* stream = new GPB::io::FileOutputStream(fd, INTEGER(block_size)[0]); stream->SetCloseOnDelete(LOGICAL(close_on_delete)[0]); ZeroCopyOutputStreamWrapper* wrapper = new ZeroCopyOutputStreamWrapper(stream); SEXP ptr = PROTECT(R_MakeExternalPtr((void*)wrapper, R_NilValue, R_NilValue)); R_RegisterCFinalizerEx(ptr, ZeroCopyOutputStreamWrapper_finalizer, _FALSE_); SET_SLOT(oo, Rf_install("pointer"), ptr); UNPROTECT(2); /* oo, ptr */ return oo; END_RCPP } SEXP FileOutputStream_Flush(SEXP xp) { BEGIN_RCPP GPB::io::FileOutputStream* stream = GET_FOS(xp); bool res = stream->Flush(); return Rf_ScalarLogical(res ? _TRUE_ : _FALSE_); END_RCPP } SEXP FileOutputStream_Close(SEXP xp) { BEGIN_RCPP GPB::io::FileOutputStream* stream = GET_FOS(xp); bool res = stream->Close(); return Rf_ScalarLogical(res ? _TRUE_ : _FALSE_); END_RCPP } SEXP FileOutputStream_GetErrno(SEXP xp) { BEGIN_RCPP GPB::io::FileOutputStream* stream = GET_FOS(xp); return Rf_ScalarInteger(stream->GetErrno()); END_RCPP } SEXP FileOutputStream_SetCloseOnDelete(SEXP xp, SEXP close) { BEGIN_RCPP GPB::io::FileOutputStream* stream = GET_FOS(xp); stream->SetCloseOnDelete(LOGICAL(close)); return R_NilValue; END_RCPP } // }}} // {{{ ConnectionOutputStream SEXP ConnectionOutputStream_new(SEXP con, SEXP was_open) { BEGIN_RCPP NEW_S4_OBJECT("ConnectionOutputStream"); ConnectionOutputStream* stream = new ConnectionOutputStream(con, (bool)LOGICAL(was_open)[0]); ZeroCopyOutputStreamWrapper* wrapper = new ZeroCopyOutputStreamWrapper(stream); /* we keep the R connection protected as long as the external pointer is kept out of GC */ SEXP ptr = PROTECT(R_MakeExternalPtr((void*)wrapper, R_NilValue, con)); R_RegisterCFinalizerEx(ptr, ZeroCopyOutputStreamWrapper_finalizer, _FALSE_); SET_SLOT(oo, Rf_install("pointer"), ptr); UNPROTECT(2); /* oo, ptr */ return oo; END_RCPP } // }}} // }}} // {{{ Read*** functions using CodedInputStream SEXP ZeroCopyInputStream_ReadRaw(SEXP xp, SEXP size) { BEGIN_RCPP GPB::io::CodedInputStream* coded_stream = GET_CIS(xp); int s = INTEGER(size)[0]; SEXP payload = PROTECT(Rf_allocVector(RAWSXP, s)); if (!coded_stream->ReadRaw(RAW(payload), s)) Rcpp_error("error reading raw bytes"); UNPROTECT(1); /* payload */ return payload; END_RCPP } SEXP ZeroCopyInputStream_ReadString(SEXP xp, SEXP size) { BEGIN_RCPP GPB::io::CodedInputStream* coded_stream = GET_CIS(xp); int s = INTEGER(size)[0]; std::string buffer(""); if (!coded_stream->ReadString(&buffer, s)) Rcpp_error("error reading string"); return Rf_mkString(buffer.c_str()); END_RCPP } SEXP ZeroCopyInputStream_ReadVarint32(SEXP xp) { BEGIN_RCPP GPB::io::CodedInputStream* coded_stream = GET_CIS(xp); uint32 res = 0; if (!coded_stream->ReadVarint32(&res)) Rcpp_error("error reading varint32"); return Rf_ScalarInteger(res); END_RCPP } SEXP ZeroCopyInputStream_ReadLittleEndian32(SEXP xp) { BEGIN_RCPP GPB::io::CodedInputStream* coded_stream = GET_CIS(xp); uint32 res = 0; if (!coded_stream->ReadVarint32(&res)) Rcpp_error("error reading little endian int32"); return Rf_ScalarInteger(res); END_RCPP } SEXP ZeroCopyInputStream_ReadLittleEndian64(SEXP xp) { BEGIN_RCPP GPB::io::CodedInputStream* coded_stream = GET_CIS(xp); uint64 res = 0; if (!coded_stream->ReadVarint64(&res)) Rcpp_error("error reading little endian int32"); return Rf_ScalarReal((double)res); END_RCPP } SEXP ZeroCopyInputStream_ReadVarint64(SEXP xp) { BEGIN_RCPP GPB::io::CodedInputStream* coded_stream = GET_CIS(xp); uint64 res = 0; if (!coded_stream->ReadVarint64(&res)) Rcpp_error("error reading varint64"); return Rf_ScalarReal((double)res); END_RCPP } // }}} // {{{ Write*** functions using CodedOuputStream SEXP ZeroCopyOutputStream_WriteRaw(SEXP xp, SEXP payload) { BEGIN_RCPP GPB::io::CodedOutputStream* stream = GET_COS(xp); stream->WriteRaw(RAW(payload), LENGTH(payload)); return R_NilValue; END_RCPP } SEXP ZeroCopyOutputStream_WriteString(SEXP xp, SEXP payload) { BEGIN_RCPP if (LENGTH(payload) > 1) { Rf_warning("only the first element is used"); } if (LENGTH(payload) == 0) { Rcpp_error("need at least one element"); } GPB::io::CodedOutputStream* stream = GET_COS(xp); stream->WriteString(CHAR(STRING_ELT(payload, 0))); return R_NilValue; END_RCPP } SEXP ZeroCopyOutputStream_WriteLittleEndian32(SEXP xp, SEXP payload) { BEGIN_RCPP GPB::io::CodedOutputStream* stream = GET_COS(xp); stream->WriteLittleEndian32(GET_int32(payload, 0)); return R_NilValue; END_RCPP } SEXP ZeroCopyOutputStream_WriteLittleEndian64(SEXP xp, SEXP payload) { BEGIN_RCPP GPB::io::CodedOutputStream* stream = GET_COS(xp); stream->WriteLittleEndian64(GET_int64(payload, 0)); return R_NilValue; END_RCPP } SEXP ZeroCopyOutputStream_WriteVarint32(SEXP xp, SEXP payload) { BEGIN_RCPP GPB::io::CodedOutputStream* stream = GET_COS(xp); stream->WriteVarint32(GET_int32(payload, 0)); return R_NilValue; END_RCPP } SEXP ZeroCopyOutputStream_WriteVarint64(SEXP xp, SEXP payload) { BEGIN_RCPP GPB::io::CodedOutputStream* stream = GET_COS(xp); stream->WriteVarint64(GET_int64(payload, 0)); return R_NilValue; END_RCPP } // }}} } // namespace rprotobuf RProtoBuf/src/Rcppsupport.h0000644000176200001440000001465312440004312015434 0ustar liggesusers// rprotobuf.h: support for using Rcpp // // Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois // // This file is part of RProtoBuf. // // RProtoBuf is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RProtoBuf is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RProtoBuf. If not, see . #ifndef RPROTOBUF__RCPPSUPPORT__H #define RPROTOBUF__RCPPSUPPORT__H #include /* for stringstream, basic_ostream */ #include /* for string */ #include "rprotobuf.h" namespace rprotobuf { /* support for Rcpp::wrap protobuf repeated fields, this essentially uses the same macro trick as in protobuf, but reversed */ struct enum_field{}; struct message_field{}; class Int64AsStringRepeatedFieldImporter { public: // Probably want to convert to strings here. typedef std::string r_import_type; Int64AsStringRepeatedFieldImporter(const GPB::Reflection* ref_ , const GPB::Message& message_, const GPB::FieldDescriptor* field_) : ref(ref_), message(message_), field(field_) {} inline int size() const { return ref->FieldSize(message, field); } inline std::string get(int i) const { std::stringstream stream; int64 val = ref->GetRepeatedInt64(message, field, i); stream << val; return stream.str(); } private: const GPB::Reflection* ref; const GPB::Message& message; const GPB::FieldDescriptor* field; }; class UInt64AsStringRepeatedFieldImporter { public: // Probably want to convert to strings here. typedef std::string r_import_type; UInt64AsStringRepeatedFieldImporter(const GPB::Reflection* ref_, const GPB::Message& message_, const GPB::FieldDescriptor* field_) : ref(ref_), message(message_), field(field_) {} inline int size() const { return ref->FieldSize(message, field) ; } inline std::string get(int i) const { std::stringstream stream; uint64 val = ref->GetRepeatedUInt64(message, field, i); stream << val; return stream.str(); } private: const GPB::Reflection* ref; const GPB::Message& message; const GPB::FieldDescriptor* field; }; // TODO(mstokely): Rcpp doesn't handle uint32 properly as of 2013/12 // See https://r-forge.r-project.org/tracker/index.php?func=detail&aid=1360&group_id=155&atid=637 class UInt32RepeatedFieldImporter { public: // Represent as doubles, since R doesn't have uint32s. typedef double r_import_type; UInt32RepeatedFieldImporter(const GPB::Reflection* ref_ , const GPB::Message& message_, const GPB::FieldDescriptor* field_) : ref(ref_), message(message_), field(field_) {} inline int size() const { return ref->FieldSize(message, field); } inline double get(int i) const { return double(ref->GetRepeatedUInt32(message, field, i)); } private: const GPB::Reflection* ref; const GPB::Message& message; const GPB::FieldDescriptor* field; }; template class RepeatedFieldImporter{} ; #undef GENERATE__FIELD__IMPORTER__DECL #define GENERATE__FIELD__IMPORTER__DECL(__TYPE__, __CAMEL__) \ template<> class RepeatedFieldImporter<__TYPE__> { \ public: \ typedef __TYPE__ r_import_type; \ RepeatedFieldImporter( \ const GPB::Reflection* ref_, \ const GPB::Message& message_, \ const GPB::FieldDescriptor* field_): \ ref(ref_), message(message_), field(field_) {} \ inline int size() const { \ return ref->FieldSize( message, field ); \ } \ inline __TYPE__ get(int i) const { \ return ref->GetRepeated##__CAMEL__(message, field, i); \ } \ private: \ const GPB::Reflection* ref; \ const GPB::Message& message; \ const GPB::FieldDescriptor* field; \ }; GENERATE__FIELD__IMPORTER__DECL(GPB::int32, Int32) GENERATE__FIELD__IMPORTER__DECL(GPB::uint32, UInt32) GENERATE__FIELD__IMPORTER__DECL(GPB::int64, Int64) GENERATE__FIELD__IMPORTER__DECL(GPB::uint64, UInt64) GENERATE__FIELD__IMPORTER__DECL(float, Float) GENERATE__FIELD__IMPORTER__DECL(double, Double) GENERATE__FIELD__IMPORTER__DECL(bool, Bool) GENERATE__FIELD__IMPORTER__DECL(std::string, String) #undef GENERATE__FIELD__IMPORTER__DECL template<> class RepeatedFieldImporter{ public: typedef int r_import_type ; RepeatedFieldImporter( const GPB::Reflection* ref_, const GPB::Message& message_, const GPB::FieldDescriptor* field_): ref(ref_), message(message_), field(field_) {}; inline int size() const { return ref->FieldSize( message, field ); } inline int get(int i) const { return ref->GetRepeatedEnum(message, field, i)->number(); } private: const GPB::Reflection* ref; const GPB::Message& message; const GPB::FieldDescriptor* field; } ; template<> class RepeatedFieldImporter{ public: typedef message_field r_import_type ; RepeatedFieldImporter( const GPB::Reflection* ref_ , const GPB::Message& message_, const GPB::FieldDescriptor* field_): ref(ref_), message(message_), field(field_) {}; inline int size() const { return ref->FieldSize( message, field ); } inline SEXP wrap(int i) const { return S4_Message(CLONE(&ref->GetRepeatedMessage(message, field, i))); } private: const GPB::Reflection* ref; const GPB::Message& message; const GPB::FieldDescriptor* field; }; } // namespace rprotobuf #endif RProtoBuf/src/wrapper_ArrayOutputStream.cpp0000644000176200001440000000051312440004312020627 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "RcppMacros.h" namespace rprotobuf { RPB_FUNCTION_2(S4_ArrayOutputStream, ArrayOutputStream__new, int size, int block_size) { return S4_ArrayOutputStream(size, block_size); } } RProtoBuf/src/ConnectionCopyingInputStream.h0000644000176200001440000000122212440004312020703 0ustar liggesusers#ifndef RPROTOBUF_ConnectionCopyingInputStream_H #define RPROTOBUF_ConnectionCopyingInputStream_H namespace rprotobuf { class ConnectionCopyingInputStream : public GPB::io::CopyingInputStream { public: ConnectionCopyingInputStream(SEXP con); int Read(void* buffer, int size); private: /* the actual connection object from R it is protected by the external pointer that wraps the ConnectionInputStream, which is the only thing that uses this class, so we don't need to take care of GC here */ SEXP con; Rcpp::Function readBin; }; } // namespace rprotobuf #endif RProtoBuf/src/RSourceTree.cpp0000644000176200001440000000511314535111776015643 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "RSourceTree.h" namespace rprotobuf { RSourceTree::RSourceTree() : directories() {} #if GOOGLE_PROTOBUF_VERSION < 4022000 GPB::io::ZeroCopyInputStream* RSourceTree::Open(const std::string& filename) { /* first, try to open the file as it is */ int file_descriptor = open(filename.c_str(), O_RDONLY); if (file_descriptor < 0) { /* then try the directories */ std::set::iterator it; it = directories.begin(); std::string file; while (it != directories.end()) { file = *it; file += "/"; file += filename; file_descriptor = open(file.c_str(), O_RDONLY); if (file_descriptor > 0) break; ++it; } } if (file_descriptor < 0) { return NULL; } GPB::io::FileInputStream* result = new GPB::io::FileInputStream(file_descriptor); result->SetCloseOnDelete(true); return result; } #else GPB::io::ZeroCopyInputStream* RSourceTree::Open(absl::string_view filename) { /* first, try to open the file as it is */ int file_descriptor = open(static_cast(filename).c_str(), O_RDONLY); if (file_descriptor < 0) { /* then try the directories */ std::set::iterator it; it = directories.begin(); std::string file; while (it != directories.end()) { file = *it; file += "/"; file += static_cast(filename); file_descriptor = open(file.c_str(), O_RDONLY); if (file_descriptor > 0) break; ++it; } } if (file_descriptor < 0) { return NULL; } GPB::io::FileInputStream* result = new GPB::io::FileInputStream(file_descriptor); result->SetCloseOnDelete(true); return result; } #endif void RSourceTree::addDirectory(const std::string& directory) { directories.insert(directory); } void RSourceTree::addDirectories(SEXP dirs) { int n = LENGTH(dirs); for (int i = 0; i < n; i++) { directories.insert(std::string(CHAR(STRING_ELT(dirs, i)))); } } void RSourceTree::removeDirectory(const std::string& directory) { directories.erase(directory); } void RSourceTree::removeDirectories(SEXP dirs) { int n = LENGTH(dirs); for (int i = 0; i < n; i++) { directories.erase(std::string(CHAR(STRING_ELT(dirs, i)))); } } void RSourceTree::removeAllDirectories() { directories.clear(); } } // namespace rprotobuf RProtoBuf/src/rprotobuf.cpp0000644000176200001440000002062213300665751015461 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "DescriptorPoolLookup.h" #include "RcppMacros.h" namespace rprotobuf { GPB::Message* PROTOTYPE(const GPB::Descriptor* desc) { RPB_DEBUG_BEGIN("PROTOTYPE") #ifdef RPB_DEBUG Rprintf("desc = %d\n", desc); #endif /* first try the runtime factory */ GPB::Message* m = (GPB::Message*)((GPB::DynamicMessageFactory*)DescriptorPoolLookup::factory()) ->GetPrototype(desc) ->New(); #ifdef RPB_DEBUG Rprintf("generated factory = %d\n", m); #endif if (!m) { /* then the dynamic runtime factory */ m = (GPB::Message*)GPB::MessageFactory::generated_factory()->GetPrototype(desc)->New(); #ifdef RPB_DEBUG Rprintf("runtime factory = %d\n", m); #endif } RPB_DEBUG_END("PROTOTYPE") return m; } GPB::Message* CLONE(const GPB::Message* origin) { RPB_DEBUG_BEGIN("CLONE") const GPB::Descriptor* desc = origin->GetDescriptor(); GPB::Message* sheep = PROTOTYPE(desc); sheep->CopyFrom(*origin); RPB_DEBUG_END("CLONE") return sheep; } /** * read a proto file and cache the message definitions it contains * * @param file proto file name */ RcppExport SEXP readProtoFiles_cpp(SEXP file, SEXP dirs) { BEGIN_RCPP DescriptorPoolLookup::importProtoFiles(file, dirs); return R_NilValue; END_RCPP } /** * reset the descriptor pool, clearing all persisted state */ RcppExport SEXP resetDescriptorPool_cpp() { BEGIN_RCPP DescriptorPoolLookup::reset(); return R_NilValue; END_RCPP } /** * get the descriptor associated with a message type * * @param type message type * * @return an S4 object of class Descriptor, or NULL if the type * is unknown */ RcppExport SEXP getProtobufDescriptor(SEXP type) { #ifdef RPB_DEBUG Rprintf("\n type = "); Rf_PrintValue(type); #endif const char* typeName = CHAR(STRING_ELT(type, 0)); /* first try the generated pool */ const GPB::DescriptorPool* pool = GPB::DescriptorPool::generated_pool(); const GPB::Descriptor* desc = pool->FindMessageTypeByName(typeName); if (!desc) { /* then try the "runtime" pool" */ pool = DescriptorPoolLookup::pool(); desc = pool->FindMessageTypeByName(typeName); if (!desc) { /* unlucky */ return R_NilValue; } } return (S4_Descriptor(desc)); } /** * get the descriptor associated with an extension * * @param type message type * * @return an S4 object of class FieldDescriptor, or NULL if the type * is unknown */ RcppExport SEXP getExtensionDescriptor(SEXP type) { #ifdef RPB_DEBUG Rprintf("\n type = "); Rf_PrintValue(type); #endif const char* typeName = CHAR(STRING_ELT(type, 0)); /* first try the generated pool */ const GPB::DescriptorPool* pool = GPB::DescriptorPool::generated_pool(); const GPB::FieldDescriptor* desc = pool->FindExtensionByName(typeName); if (!desc) { /* then try the "runtime" pool" */ pool = DescriptorPoolLookup::pool(); desc = pool->FindExtensionByName(typeName); if (!desc) { /* unlucky */ return R_NilValue; } } return (S4_FieldDescriptor(desc)); } /** * get the descriptor associated with an enum * * @param type message type * * @return an S4 object of class EnumDescriptor, or NULL if the type * is unknown */ RcppExport SEXP getEnumDescriptor(SEXP type) { #ifdef RPB_DEBUG Rprintf("\n type = "); Rf_PrintValue(type); #endif const char* typeName = CHAR(STRING_ELT(type, 0)); /* first try the generated pool */ const GPB::DescriptorPool* pool = GPB::DescriptorPool::generated_pool(); const GPB::EnumDescriptor* desc = pool->FindEnumTypeByName(typeName); if (!desc) { /* then try the "runtime" pool" */ pool = DescriptorPoolLookup::pool(); desc = pool->FindEnumTypeByName(typeName); if (!desc) { /* unlucky */ return R_NilValue; } } return (S4_EnumDescriptor(desc)); } /** * make a new protobuf message * * @param descriptor a "Descriptor" R object */ SEXP newProtoMessage(SEXP descriptor) { BEGIN_RCPP RPB_DEBUG_BEGIN("newProtoMessage") #ifdef RPB_DEBUG /* FIXME: the message type, we don't really need that*/ SEXP type = GET_SLOT(descriptor, Rf_install("type")); #endif /* the pointer to the c++ descriptor object */ GPB::Descriptor* desc = GET_DESCRIPTOR_POINTER_FROM_S4(descriptor); #ifdef RPB_DEBUG Rprintf("desc = %d\n", desc); PRINT_DEBUG_INFO("type", type); #endif /* grab the Message from the factory */ const GPB::Message* message = PROTOTYPE(desc); if (!message) { Rcpp_error("could not call factory->GetPrototype(desc)->New()"); } RPB_DEBUG_END("newProtoMessage") return (S4_Message(message)); END_RCPP } /** * dollar extractor for Descriptor objects * it may return a Field descriptor or a nested type descriptor * * @param pointer external pointer to a google::protobuf::Descriptor object * @param name name of the thing to extract */ RcppExport SEXP do_dollar_Descriptor(SEXP pointer, SEXP name) { const char* what = CHAR(STRING_ELT(name, 0)); GPB::Descriptor* desc = (GPB::Descriptor*)EXTPTR_PTR(pointer); // trying fields first : if (desc->field_count()) { const GPB::FieldDescriptor* fd = desc->FindFieldByName(what); if (fd) { return (S4_FieldDescriptor(fd)); } } // now trying nested types if (desc->nested_type_count()) { const GPB::Descriptor* d = desc->FindNestedTypeByName(what); if (d) { return (S4_Descriptor(d)); } } // now for enum types if (desc->enum_type_count()) { const GPB::EnumDescriptor* ed = desc->FindEnumTypeByName(what); if (ed) { return (S4_EnumDescriptor(ed)); } } // TODO: extensions (later) // give up // TODO: should this be unbound instead return (R_NilValue); } /** * * @param m potentially a message * @param target the expected type * * @return TRUE if m is a a message of the given type */ Rboolean isMessage(SEXP m, const char* target) { RPB_DEBUG_BEGIN("isMessage") if (TYPEOF(m) != S4SXP || !Rf_inherits(m, "Message")) return _FALSE_; GPB::Message* message = (GPB::Message*)EXTPTR_PTR(GET_SLOT(m, Rf_install("pointer"))); const char* type = message->GetDescriptor()->full_name().c_str(); RPB_DEBUG_END("isMessage") if (strcmp(type, target)) { return _FALSE_; } return _TRUE_; } RcppExport GPB::FieldDescriptor* getFieldDescriptor(const GPB::Message* message, SEXP name) { GPB::FieldDescriptor* field_desc = (GPB::FieldDescriptor*)0; BEGIN_RCPP const GPB::Descriptor* desc = message->GetDescriptor(); std::string error_message = "could not get FieldDescriptor for field"; switch (TYPEOF(name)) { case S4SXP: { if (Rf_inherits(name, "FieldDescriptor")) { field_desc = GET_FIELD_DESCRIPTOR_POINTER_FROM_S4(name); } else { Rcpp::stop("S4 class is not a FieldDescriptor"); } break; } case CHARSXP: { field_desc = (GPB::FieldDescriptor*)desc->FindFieldByName(CHAR(name)); error_message = error_message + " '" + CHAR(name) + "'"; break; } case STRSXP: { field_desc = (GPB::FieldDescriptor*)desc->FindFieldByName(CHAR(STRING_ELT(name, 0))); error_message = error_message + " '" + CHAR(STRING_ELT(name, 0)) + "'"; break; } case REALSXP: case INTSXP: { field_desc = (GPB::FieldDescriptor*)desc->FindFieldByNumber(Rcpp::as(name)); break; } } if (!field_desc) { Rcpp::stop(error_message.c_str()); } return field_desc; VOID_END_RCPP return field_desc; } RPB_FUNCTION_VOID_1(check_libprotobuf_version, int minversion) { if (GOOGLE_PROTOBUF_VERSION < minversion) { throw std::range_error( "The protobuf library you are using is too old for this package, " "please upgrade"); } } RPB_FUNCTION_0(int, get_protobuf_library_version) { return GOOGLE_PROTOBUF_VERSION; } } // namespace rprotobuf RProtoBuf/src/ConnectionOutputStream.h0000644000176200001440000000055512440004312017563 0ustar liggesusers#ifndef RPROTOBUF_ConnectionOutputStream_H #define RPROTOBUF_ConnectionOutputStream_H namespace rprotobuf { class ConnectionOutputStream : public GPB::io::CopyingOutputStreamAdaptor { public: ConnectionOutputStream(SEXP con, bool was_open); ~ConnectionOutputStream(); private: bool was_open; SEXP con; }; } // namespace rprotobuf #endif RProtoBuf/src/RcppMacros.h0000644000176200001440000002007113776225671015165 0ustar liggesusers/* * Copyright 2013 Google Inc. All Rights Reserved. * Author: Murray Stokely * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301, USA. * */ /* * This file contains macros for taking C++ functions that expect * native C++ types, automatically generating new stub functions that * take SEXPs and call the appropriate Rcpp conversion functions * before calling the original function. It is based on slightly more * complex macros that were originally in Rcpp but have been * deprecated. * * In the future, Rcpp Modules would likely be a better more modern * way to implement RProtoBuf. */ #ifndef RPROTOBUF_RCPP_MACROS_H #define RPROTOBUF_RCPP_MACROS_H #include // RCPP_DECORATE, BEGIN_RCPP, END_RCPP #define RPB_FUNCTION_0(__OUT__,__NAME__) \ __OUT__ RCPP_DECORATE(__NAME__)(); \ extern "C" SEXP __NAME__(){ \ SEXP res = R_NilValue ; \ BEGIN_RCPP \ res = ::Rcpp::wrap( RCPP_DECORATE(__NAME__)() ) ; \ return res ; \ END_RCPP \ } \ __OUT__ RCPP_DECORATE(__NAME__)() #define RPB_FUNCTION_1(__OUT__,__NAME__, ___0) \ __OUT__ RCPP_DECORATE(__NAME__)(___0); \ extern "C" SEXP __NAME__(SEXP x0){ \ SEXP res = R_NilValue ; \ BEGIN_RCPP \ res = ::Rcpp::wrap( RCPP_DECORATE(__NAME__)(::Rcpp::internal::converter( x0 )) ) ; \ return res ; \ END_RCPP \ } \ __OUT__ RCPP_DECORATE(__NAME__)(___0) #define RPB_FUNCTION_2(__OUT__,__NAME__, ___0, ___1) \ __OUT__ RCPP_DECORATE(__NAME__)(___0, ___1); \ extern "C" SEXP __NAME__(SEXP x0, SEXP x1){ \ SEXP res = R_NilValue ; \ BEGIN_RCPP \ res = ::Rcpp::wrap( RCPP_DECORATE(__NAME__)(::Rcpp::internal::converter( x0 ), ::Rcpp::internal::converter( x1 )) ) ; \ return res ; \ END_RCPP \ } \ __OUT__ RCPP_DECORATE(__NAME__)(___0, ___1) #define RPB_FUNCTION_3(__OUT__,__NAME__, ___0, ___1, ___2) \ __OUT__ RCPP_DECORATE(__NAME__)(___0, ___1, ___2); \ extern "C" SEXP __NAME__(SEXP x0, SEXP x1, SEXP x2){ \ SEXP res = R_NilValue ; \ BEGIN_RCPP \ res = ::Rcpp::wrap( RCPP_DECORATE(__NAME__)(::Rcpp::internal::converter( x0 ), ::Rcpp::internal::converter( x1 ), ::Rcpp::internal::converter( x2 )) ) ; \ return res ; \ END_RCPP \ } \ __OUT__ RCPP_DECORATE(__NAME__)(___0, ___1, ___2) #define RPB_FUNCTION_VOID_1(__NAME__, ___0) \ void RCPP_DECORATE(__NAME__)(___0); \ extern "C" SEXP __NAME__(SEXP x0){ \ BEGIN_RCPP \ RCPP_DECORATE(__NAME__)(::Rcpp::internal::converter( x0 )); \ END_RCPP \ } \ void RCPP_DECORATE(__NAME__)(___0) #define RPB_FUNCTION_VOID_2(__NAME__, ___0, ___1) \ void RCPP_DECORATE(__NAME__)(___0, ___1); \ extern "C" SEXP __NAME__(SEXP x0, SEXP x1){ \ BEGIN_RCPP \ RCPP_DECORATE(__NAME__)(::Rcpp::internal::converter( x0 ), ::Rcpp::internal::converter( x1 )); \ END_RCPP \ } \ void RCPP_DECORATE(__NAME__)(___0, ___1) #define RPB_FUNCTION_VOID_3(__NAME__, ___0, ___1, ___2) \ void RCPP_DECORATE(__NAME__)(___0, ___1, ___2); \ extern "C" SEXP __NAME__(SEXP x0, SEXP x1, SEXP x2){ \ BEGIN_RCPP \ RCPP_DECORATE(__NAME__)(::Rcpp::internal::converter( x0 ), ::Rcpp::internal::converter( x1 ), ::Rcpp::internal::converter( x2 )); \ END_RCPP \ } \ void RCPP_DECORATE(__NAME__)(___0, ___1, ___2) #define RPB_FUNCTION_VOID_4(__NAME__, ___0, ___1, ___2, ___3) \ void RCPP_DECORATE(__NAME__)(___0, ___1, ___2, ___3); \ extern "C" SEXP __NAME__(SEXP x0, SEXP x1, SEXP x2, SEXP x3){ \ BEGIN_RCPP \ RCPP_DECORATE(__NAME__)(::Rcpp::internal::converter( x0 ), ::Rcpp::internal::converter( x1 ), ::Rcpp::internal::converter( x2 ), ::Rcpp::internal::converter( x3 )); \ END_RCPP \ } \ void RCPP_DECORATE(__NAME__)(___0, ___1, ___2, ___3) #define RPB_XP_METHOD_0(__NAME__,__CLASS__,__METHOD__ ) \ extern "C" SEXP __NAME__( SEXP xp ){ \ BEGIN_RCPP \ ::Rcpp::XPtr< __CLASS__ > ptr(xp) ; \ return ::Rcpp::wrap( ptr->__METHOD__( ) ) ; \ END_RCPP \ } #define RPB_XP_METHOD_VOID_0(__NAME__,__CLASS__,__METHOD__) \ extern "C" SEXP __NAME__( SEXP xp ){ \ BEGIN_RCPP \ ::Rcpp::XPtr< __CLASS__ > ptr(xp) ; \ ptr->__METHOD__( ) ; \ END_RCPP \ } #define RPB_XP_METHOD_CAST_0(__NAME__,__CLASS__,__METHOD__,__CAST__) \ extern "C" SEXP __NAME__( SEXP xp ){ \ BEGIN_RCPP \ ::Rcpp::XPtr< __CLASS__ > ptr(xp) ; \ return ::Rcpp::wrap( __CAST__( ptr->__METHOD__( ) ) ) ; \ END_RCPP \ } #define RPB_XP_METHOD_CAST_1(__NAME__,__CLASS__,__METHOD__,__CAST__) \ extern "C" SEXP __NAME__( SEXP xp , SEXP x0 ){ \ BEGIN_RCPP \ ::Rcpp::XPtr< __CLASS__ > ptr(xp) ; \ return ::Rcpp::wrap( __CAST__( ptr->__METHOD__( ::Rcpp::internal::converter( x0 ) ) ) ) ; \ END_RCPP \ } /* We need a special case macro for methods taking a std::string_view, because * Rcpp::internal::converter will not automatically convert to that type. */ #define RPB_XP_METHOD_CAST_1_STRING(__NAME__,__CLASS__,__METHOD__,__CAST__) \ extern "C" SEXP __NAME__( SEXP xp , SEXP x0 ){ \ BEGIN_RCPP \ ::Rcpp::XPtr< __CLASS__ > ptr(xp) ; \ return ::Rcpp::wrap( __CAST__( ptr->__METHOD__( \ static_cast( ::Rcpp::internal::converter( x0 ) ) ) ) ) ; \ END_RCPP \ } #endif RProtoBuf/src/RWarningErrorCollector.h0000644000176200001440000000060412440004312017472 0ustar liggesusers#include /* For string */ #include "rprotobuf.h" namespace rprotobuf { class RWarningErrorCollector : public GPB::compiler::MultiFileErrorCollector { public: // implements ErrorCollector --------------------------------------- void AddError(const std::string& filename, int line, int column, const std::string& message); }; } // namespace rprotobuf RProtoBuf/src/DescriptorPoolLookup.h0000644000176200001440000000161513300665751017247 0ustar liggesusers#ifndef RPROTOBUF_DescriptorPoolLookup_H #define RPROTOBUF_DescriptorPoolLookup_H #include /* For set */ #include /* For string */ #include "RSourceTree.h" #include "RWarningErrorCollector.h" namespace rprotobuf { class DescriptorPoolLookup { public: static void add(const std::string& element); static bool contains(const std::string& element); static SEXP getElements(); static void importProtoFiles(SEXP files, SEXP cwd); static void reset(); static const GPB::DescriptorPool* pool(); static const GPB::DynamicMessageFactory* factory(); private: static std::set elements; static RWarningErrorCollector error_collector; static RSourceTree source_tree; static GPB::compiler::Importer* importer; static GPB::DynamicMessageFactory message_factory; }; } // namespace rprotobuf #endif RProtoBuf/src/ZeroCopyOutputStreamWrapper.cpp0000644000176200001440000000137312440004312021131 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" namespace rprotobuf { ZeroCopyOutputStreamWrapper::ZeroCopyOutputStreamWrapper(GPB::io::ZeroCopyOutputStream* stream) : stream(stream) { coded_stream = new GPB::io::CodedOutputStream(stream); } ZeroCopyOutputStreamWrapper::~ZeroCopyOutputStreamWrapper() { try { /* first clear the coded stream */ delete coded_stream; /* then the stream itself */ delete stream; } catch (...) { } } GPB::io::ZeroCopyOutputStream* ZeroCopyOutputStreamWrapper::get_stream() { return stream; } GPB::io::CodedOutputStream* ZeroCopyOutputStreamWrapper::get_coded_stream() { return coded_stream; } } // namespace rprotobuf RProtoBuf/src/ConnectionCopyingOutputStream.h0000644000176200001440000000124012440004312021104 0ustar liggesusers#ifndef RPROTOBUF_ConnectionCopyingOutputStream_H #define RPROTOBUF_ConnectionCopyingOutputStream_H namespace rprotobuf { class ConnectionCopyingOutputStream : public GPB::io::CopyingOutputStream { public: ConnectionCopyingOutputStream(SEXP con); bool Write(const void* buffer, int size); private: /* the actual connection object from R it is protected by the external pointer that wraps the ConnectionInputStream, which is the only thing that uses this class, so we don't need to take care of GC here */ SEXP con; Rcpp::Function writeBin; }; } // namespace rprotobuf #endif RProtoBuf/src/extractors.cpp0000644000176200001440000001665012440004312015623 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- // Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois // // This file is part of RProtoBuf. // // RProtoBuf is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RProtoBuf is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RProtoBuf. If not, see . #include "rprotobuf.h" #include "fieldtypes.h" #include "Rcppsupport.h" namespace rprotobuf { const char* kIntStringOptionName = "RProtoBuf.int64AsString"; bool UseStringsForInt64() { static const SEXP option_name = Rf_install(kIntStringOptionName); return (Rf_asLogical(Rf_GetOption1(option_name))); } // Rcpp::wrap silently coerces 64-bit integers to numerics // which drop precision for values between 2^53 - 2^64. // So, if an option is set, we return as a character string. template SEXP Int64AsSEXP(ValueType value) { BEGIN_RCPP if (UseStringsForInt64()) { std::stringstream ss; if ((ss << value).fail()) { // This should not happen, its a bug in the code. std::string message = std::string("Error converting int64 to string, unset ") + kIntStringOptionName + " option."; Rcpp::stop(message.c_str()); } return Rcpp::CharacterVector(ss.str()); } else { return Rcpp::wrap(value); } END_RCPP } /** * extract a field from a message * * @param pointer external pointer to a message * @param name name of the field * * @return the field called "name" of the message if the * message has the field, otherwise an error is generated */ RcppExport SEXP getMessageField(SEXP pointer, SEXP name) { RPB_DEBUG_BEGIN("getMessageField") PRINT_DEBUG_INFO("pointer", pointer); PRINT_DEBUG_INFO("name", name); /* grab the Message pointer */ Rcpp::XPtr message(pointer); GPB::FieldDescriptor* field_desc = getFieldDescriptor(message, name); RPB_DEBUG_END("getMessageField"); return (extractFieldAsSEXP(message, field_desc)); } RcppExport SEXP extractFieldAsSEXP(const Rcpp::XPtr& message, const GPB::FieldDescriptor* fieldDesc) { BEGIN_RCPP const Reflection* ref = message->GetReflection(); if (fieldDesc->is_repeated()) { switch (GPB::FieldDescriptor::TypeToCppType(fieldDesc->type())) { #undef HANDLE_REPEATED_FIELD #define HANDLE_REPEATED_FIELD(TYPE, DATATYPE) \ case TYPE: \ return Rcpp::wrap(RepeatedFieldImporter(ref, *message, fieldDesc)); HANDLE_REPEATED_FIELD(CPPTYPE_INT32, GPB::int32) HANDLE_REPEATED_FIELD(CPPTYPE_DOUBLE, double) HANDLE_REPEATED_FIELD(CPPTYPE_FLOAT, float) HANDLE_REPEATED_FIELD(CPPTYPE_BOOL, bool) HANDLE_REPEATED_FIELD(CPPTYPE_ENUM, enum_field) HANDLE_REPEATED_FIELD(CPPTYPE_MESSAGE, message_field) // TODO(mstokely): Rcpp doesn't handle uint32 properly as of 2013/12 // See // https://r-forge.r-project.org/tracker/index.php?func=detail&aid=1360&group_id=155&atid=637 case CPPTYPE_UINT32: return Rcpp::wrap(UInt32RepeatedFieldImporter(ref, *message, fieldDesc)); #ifdef RCPP_HAS_LONG_LONG_TYPES // We can't handle these the same way, because Rcpp::wrap silently // casts int64s to doubles which may cause us to lose precision. case CPPTYPE_INT64: if (UseStringsForInt64()) { return Rcpp::wrap(Int64AsStringRepeatedFieldImporter(ref, *message, fieldDesc)); } else { return Rcpp::wrap(RepeatedFieldImporter(ref, *message, fieldDesc)); } case CPPTYPE_UINT64: if (UseStringsForInt64()) { return Rcpp::wrap( UInt64AsStringRepeatedFieldImporter(ref, *message, fieldDesc)); } else { return Rcpp::wrap(RepeatedFieldImporter(ref, *message, fieldDesc)); } #endif #undef HANDLE_REPEATED_FIELD case CPPTYPE_STRING: if (fieldDesc->type() == TYPE_STRING) { return Rcpp::wrap(RepeatedFieldImporter(ref, *message, fieldDesc)); } else if (fieldDesc->type() == TYPE_BYTES) { int field_size = ref->FieldSize(*message, fieldDesc); Rcpp::List res(field_size); for (int i = 0; i < field_size; i++) { std::string s = ref->GetRepeatedString(*message, fieldDesc, i); res[i] = Rcpp::wrap(std::vector(s.begin(), s.end())); } return res; } else { Rcpp::stop("unknown field type with CPP_TYPE STRING"); } default: Rcpp::stop("Unsupported type"); } } else { switch (GPB::FieldDescriptor::TypeToCppType(fieldDesc->type())) { #undef HANDLE_SINGLE_FIELD #define HANDLE_SINGLE_FIELD(CPPTYPE, SUFFIX) \ case CPPTYPE: \ return Rcpp::wrap(ref->Get##SUFFIX(*message, fieldDesc)); HANDLE_SINGLE_FIELD(CPPTYPE_INT32, Int32) HANDLE_SINGLE_FIELD(CPPTYPE_DOUBLE, Double) HANDLE_SINGLE_FIELD(CPPTYPE_FLOAT, Float) HANDLE_SINGLE_FIELD(CPPTYPE_BOOL, Bool) // TODO(mstokely): Rcpp doesn't handle uint32 properly as of 2013/12 // See // https://r-forge.r-project.org/tracker/index.php?func=detail&aid=1360&group_id=155&atid=637 case CPPTYPE_UINT32: return Rcpp::wrap(double(ref->GetUInt32(*message, fieldDesc))); #ifdef RCPP_HAS_LONG_LONG_TYPES // Handle these types separately since Rcpp::wrap doesn't // do the right thing. case CPPTYPE_INT64: return Int64AsSEXP(ref->GetInt64(*message, fieldDesc)); case CPPTYPE_UINT64: return Int64AsSEXP(ref->GetUInt64(*message, fieldDesc)); #endif #undef HANDLE_SINGLE_FIELD case CPPTYPE_STRING: if (fieldDesc->type() == TYPE_STRING) { return Rcpp::wrap(ref->GetString(*message, fieldDesc)); } else if (fieldDesc->type() == TYPE_BYTES) { std::string s = ref->GetString(*message, fieldDesc); return Rcpp::wrap(std::vector(s.begin(), s.end())); } else { Rcpp::stop("unknown field type with CPP_TYPE STRING"); } case CPPTYPE_ENUM: return Rcpp::wrap(ref->GetEnum(*message, fieldDesc)->number()); case CPPTYPE_MESSAGE: return S4_Message(CLONE(&ref->GetMessage(*message, fieldDesc))); default: Rcpp::stop("Unsupported type"); } } END_RCPP } } // namespace rprotobuf RProtoBuf/src/wrapper_FieldDescriptor.cpp0000644000176200001440000000724712440004312020251 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- // Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois // // This file is part of RProtoBuf. // // RProtoBuf is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RProtoBuf is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RProtoBuf. If not, see . #include "rprotobuf.h" #include "fieldtypes.h" #include "RcppMacros.h" namespace rprotobuf { #undef METHOD #define METHOD(__NAME__) RCPP_PP_CAT(FieldDescriptor__, __NAME__) RPB_XP_METHOD_0(METHOD(as_character), GPB::FieldDescriptor, DebugString) RPB_XP_METHOD_0(METHOD(is_extension), GPB::FieldDescriptor, is_extension) RPB_XP_METHOD_0(METHOD(number), GPB::FieldDescriptor, number) RPB_XP_METHOD_0(METHOD(type), GPB::FieldDescriptor, type) RPB_XP_METHOD_0(METHOD(cpp_type), GPB::FieldDescriptor, cpp_type) RPB_XP_METHOD_0(METHOD(label), GPB::FieldDescriptor, label) RPB_XP_METHOD_0(METHOD(is_repeated), GPB::FieldDescriptor, is_repeated) RPB_XP_METHOD_0(METHOD(is_optional), GPB::FieldDescriptor, is_optional) RPB_XP_METHOD_0(METHOD(is_required), GPB::FieldDescriptor, is_required) RPB_XP_METHOD_0(METHOD(has_default_value), GPB::FieldDescriptor, has_default_value) RPB_FUNCTION_1(S4_Descriptor, METHOD(containing_type), Rcpp::XPtr d) { return S4_Descriptor(d->containing_type()); } #define RPB_HANDLE_CASE(__CPP__, __LC__) \ case CPPTYPE_##__CPP__: { \ return Rcpp::wrap(d->default_value_##__LC__()); \ } RPB_FUNCTION_1(SEXP, METHOD(default_value), Rcpp::XPtr d) { switch (d->cpp_type()) { RPB_HANDLE_CASE(INT32, int32) RPB_HANDLE_CASE(UINT32, uint32) #ifdef RCPP_HAS_LONG_LONG_TYPES RPB_HANDLE_CASE(INT64, int64) RPB_HANDLE_CASE(UINT64, uint64) #endif RPB_HANDLE_CASE(DOUBLE, double) RPB_HANDLE_CASE(FLOAT, float) RPB_HANDLE_CASE(BOOL, bool) RPB_HANDLE_CASE(STRING, string) case CPPTYPE_ENUM: { return Rf_ScalarInteger(d->default_value_enum()->number()); } default: break; } return R_NilValue; } RPB_FUNCTION_1(S4_Descriptor, METHOD(message_type), Rcpp::XPtr d) { if (d->cpp_type() != CPPTYPE_MESSAGE) { throw Rcpp::not_compatible("not a message type field"); } return S4_Descriptor(d->message_type()); } RPB_FUNCTION_1(S4_EnumDescriptor, METHOD(enum_type), Rcpp::XPtr d) { if (d->cpp_type() != CPPTYPE_ENUM) { Rcpp::stop("not an enum type field"); } return S4_EnumDescriptor(d->enum_type()); } RPB_FUNCTION_1(S4_Message, METHOD(as_Message), Rcpp::XPtr d) { GPB::FieldDescriptorProto* message = new GPB::FieldDescriptorProto(); d->CopyTo(message); return S4_Message(message); } RPB_FUNCTION_1(S4_FileDescriptor, METHOD(fileDescriptor), Rcpp::XPtr desc) { return S4_FileDescriptor(desc->file()); } RPB_FUNCTION_2(std::string, METHOD(name), Rcpp::XPtr d, bool full) { return full ? d->full_name() : d->name(); } #undef RPB_HANDLE_CASE #undef METHOD } // namespace rprotobuf RProtoBuf/src/wrapper_ServiceDescriptor.cpp0000644000176200001440000000637313776225671020657 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "RcppMacros.h" namespace rprotobuf { #undef METHOD #define METHOD(__NAME__) RCPP_PP_CAT(ServiceDescriptor__, __NAME__) RPB_XP_METHOD_0(METHOD(length), GPB::ServiceDescriptor, method_count) RPB_XP_METHOD_0(METHOD(method_count), GPB::ServiceDescriptor, method_count) RPB_XP_METHOD_0(METHOD(as_character), GPB::ServiceDescriptor, DebugString) RPB_XP_METHOD_CAST_1(METHOD(getMethodByIndex), GPB::ServiceDescriptor, method, S4_MethodDescriptor) RPB_XP_METHOD_CAST_1_STRING(METHOD(getMethodByName), GPB::ServiceDescriptor, FindMethodByName, S4_MethodDescriptor) RPB_FUNCTION_1(Rcpp::CharacterVector, METHOD(getMethodNames), Rcpp::XPtr desc) { int nmeths = desc->method_count(); Rcpp::CharacterVector res(nmeths); for (int i = 0; i < nmeths; i++) { res[i] = desc->method(i)->name(); } return res; } /** * @param xp (GPB::ServiceDescriptor*) external pointer * @return the descriptor as an R list */ RPB_FUNCTION_1(Rcpp::List, METHOD(as_list), Rcpp::XPtr desc) { int n = desc->method_count(); Rcpp::CharacterVector names(n); Rcpp::List res(n); for (int i = 0; i < n; i++) { const GPB::MethodDescriptor* met = desc->method(i); res[i] = S4_MethodDescriptor(met); names[i] = met->name(); } res.names() = names; return res; } RPB_FUNCTION_1(S4_Message, METHOD(as_Message), Rcpp::XPtr d) { GPB::ServiceDescriptorProto* message = new GPB::ServiceDescriptorProto(); d->CopyTo(message); return S4_Message(message); } RPB_FUNCTION_1(S4_FileDescriptor, METHOD(fileDescriptor), Rcpp::XPtr desc) { return S4_FileDescriptor(desc->file()); } RPB_FUNCTION_2(std::string, METHOD(name), Rcpp::XPtr d, bool full) { return full ? d->full_name() : d->name(); } /** * extract a method descriptor from a service descriptor using its * name or position * * @param pointer (GPB::ServiceDescriptor*) external pointer * @param name name or position of the method */ SEXP get_service_method(SEXP pointer, SEXP name) { /* grab the Message pointer */ Rcpp::XPtr desc(pointer); GPB::MethodDescriptor* method_desc = static_cast(0); switch (TYPEOF(name)) { case STRSXP: { /* what we are looking for */ const char* what = CHAR(STRING_ELT(name, 0)); /* the method descriptor */ method_desc = (GPB::MethodDescriptor*)desc->FindMethodByName(what); break; } case REALSXP: { /* the method descriptor */ method_desc = (GPB::MethodDescriptor*)desc->method((int)REAL(name)[0]); break; } case INTSXP: { /* the method descriptor */ method_desc = (GPB::MethodDescriptor*)desc->method(INTEGER(name)[0]); break; } } if (!method_desc) { Rcpp::stop("could not get MethodDescriptor"); } return S4_MethodDescriptor(method_desc); } #undef METHOD } // namespace rprotobuf RProtoBuf/src/RconnectionCopyingInputStream.cpp0000644000176200001440000000217212440004312021425 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "RconnectionCopyingInputStream.h" namespace rprotobuf { /* N.B. connection must be opened in binary mode due to call * to readBin below. */ RconnectionCopyingInputStream::RconnectionCopyingInputStream(int id) : connection_id(id), failure(false) {} /** * call readBin to read size bytes from R * * @param buffer buffer to fill with at most size bytes * @param size maximum number of bytes * * @return the number of bytes actually read */ int RconnectionCopyingInputStream::Read(void* buffer, int size) { Rcpp::Language call("readBin", connection_id, Rcpp::RawVector(0), size); Rcpp::RawVector res; try { res = call.eval(); } catch (...) { /* Failed to read anything from the connection, * could have been permissions, or connection opened * in the wrong type, etc. */ failure = true; return -1; } int len = res.size(); memcpy(buffer, reinterpret_cast(res.begin()), len); return len; } } RProtoBuf/src/wrapper_ZeroCopyInputStream.cpp0000644000176200001440000000251212440004312021123 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" namespace rprotobuf { SEXP ZeroCopyInputStream_Next(SEXP xp) { BEGIN_RCPP GPB::io::ZeroCopyInputStream* stream = GET_ZCIS(xp); int s = 0; const void* in; bool res = stream->Next(&in, &s); Rcpp::RawVector result; if (!res) { throw std::range_error("cannot read from stream"); } else { result.assign(reinterpret_cast(in), reinterpret_cast(in) + s); } return result; END_RCPP } SEXP ZeroCopyInputStream_BackUp(SEXP xp, SEXP size) { BEGIN_RCPP GPB::io::ZeroCopyInputStream* stream = GET_ZCIS(xp); int s = GET_int(size, 0); if (s <= 0) { Rf_error("can only BackUp with positive numbers"); } stream->BackUp(s); return R_NilValue; END_RCPP } SEXP ZeroCopyInputStream_Skip(SEXP xp, SEXP size) { BEGIN_RCPP GPB::io::ZeroCopyInputStream* stream = GET_ZCIS(xp); int s = GET_int(size, 0); bool res = stream->Skip(s); return (Rf_ScalarLogical(res ? _TRUE_ : _FALSE_)); END_RCPP } SEXP ZeroCopyInputStream_ByteCount(SEXP xp) { BEGIN_RCPP GPB::io::ZeroCopyInputStream* stream = GET_ZCIS(xp); return (Rf_ScalarReal((double)stream->ByteCount())); END_RCPP } } RProtoBuf/src/wrapper_EnumDescriptor.cpp0000644000176200001440000001043312440004312020121 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- // wrapper_EnumDescriptor.cpp: R/C++ interface class library // // Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois // // This file is part of RProtoBuf. // // RProtoBuf is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RProtoBuf is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RProtoBuf. If not, see . #include "rprotobuf.h" #include "RcppMacros.h" namespace rprotobuf { #undef METHOD #define METHOD(__NAME__) RCPP_PP_CAT(EnumDescriptor__, __NAME__) RPB_XP_METHOD_0(METHOD(as_character), GPB::EnumDescriptor, DebugString) RPB_XP_METHOD_0(METHOD(length), GPB::EnumDescriptor, value_count) RPB_XP_METHOD_0(METHOD(value_count), GPB::EnumDescriptor, value_count) RPB_FUNCTION_1(S4_Descriptor, METHOD(containing_type), Rcpp::XPtr d) { return S4_Descriptor(d->containing_type()); } RPB_FUNCTION_2(SEXP, METHOD(getValueByIndex), Rcpp::XPtr d, int index) { if ((index >= 0) && (index < d->value_count())) { return S4_EnumValueDescriptor(d->value(index)); } else { return R_NilValue; } } RPB_FUNCTION_2(SEXP, METHOD(getValueByNumber), Rcpp::XPtr d, int i) { const GPB::EnumValueDescriptor* descriptor = d->FindValueByNumber(i); if (descriptor) return S4_EnumValueDescriptor(descriptor); return R_NilValue; } RPB_FUNCTION_2(SEXP, METHOD(getValueByName), Rcpp::XPtr d, std::string name) { const GPB::EnumValueDescriptor* descriptor = d->FindValueByName(name); if (descriptor) return S4_EnumValueDescriptor(descriptor); return R_NilValue; } RPB_FUNCTION_1(S4_Message, METHOD(as_Message), Rcpp::XPtr d) { GPB::EnumDescriptorProto* message = new GPB::EnumDescriptorProto(); d->CopyTo(message); return S4_Message(message); } /** * Get the value of the enum called name * * @param xp external pointer to an EnumDescriptor * @param name the name of the enum * * @param the value associated with the name */ RPB_FUNCTION_2(int, get_value_of_enum, Rcpp::XPtr d, std::string name) { const GPB::EnumValueDescriptor* evd = d->FindValueByName(name); if (!evd) { /* or maybe it should just be NA */ Rcpp::stop("cannot get the value"); } return evd->number(); } /** * Does enum have value named 'name'? * * @param xp external pointer to an EnumDescriptor * @param name the name of the enum * @return logical */ RPB_FUNCTION_2(bool, has_enum_name, Rcpp::XPtr d, std::string name) { const GPB::EnumValueDescriptor* evd = d->FindValueByName(name); return (evd != NULL); } /** * @param xp external pointer to a Descriptor * @return the descriptor as an R list */ RPB_FUNCTION_1(Rcpp::List, METHOD(as_list), Rcpp::XPtr d) { int n = d->value_count(); Rcpp::CharacterVector names(n); Rcpp::List res(n); for (int i = 0; i < n; i++) { const GPB::EnumValueDescriptor* value_d = d->value(i); res[i] = value_d->number(); names[i] = value_d->name(); } res.names() = names; return res; } RPB_FUNCTION_1(Rcpp::CharacterVector, METHOD(getConstantNames), Rcpp::XPtr d) { int n = d->value_count(); Rcpp::CharacterVector res(n); for (int i = 0; i < n; i++) { res[i] = d->value(i)->name(); } return res; } RPB_FUNCTION_1(S4_FileDescriptor, METHOD(fileDescriptor), Rcpp::XPtr desc) { return S4_FileDescriptor(desc->file()); } RPB_FUNCTION_2(std::string, METHOD(name), Rcpp::XPtr d, bool full) { return full ? d->full_name() : d->name(); } #undef METHOD } // namespace rprotobuf RProtoBuf/src/init.c0000644000176200001440000006200714535366402014047 0ustar liggesusers#include #include #include // for NULL #include /* The following name(s) appear with different usages e.g., with different numbers of arguments: Message__clone This needs to be resolved in the tables and any declarations. DE 2017-03-05: Resolved, second entry with two arguments was in error */ /* DE 2017-03-05: - Below several entries were commented out as unresolvable - A few were renamed with suffix _cpp to avoid name clash with R symbols of the same name as we also enable .registration=TRUE in useDynLib in NAMESPACE */ /* FIXME: Check these declarations against the C/Fortran source code. */ /* .Call calls */ extern SEXP all_equal_messages(SEXP, SEXP, SEXP); extern SEXP ArrayInputStream__new(SEXP, SEXP); extern SEXP ArrayOutputStream__new(SEXP, SEXP); extern SEXP ConnectionInputStream_new(SEXP, SEXP); extern SEXP ConnectionOutputStream_new(SEXP, SEXP); extern SEXP Descriptor__as_character(SEXP); extern SEXP Descriptor__as_list(SEXP); extern SEXP Descriptor__as_Message(SEXP); extern SEXP Descriptor__containing_type(SEXP); extern SEXP Descriptor__enum_type(SEXP, SEXP); extern SEXP Descriptor__enum_type_count(SEXP); extern SEXP Descriptor__field(SEXP, SEXP); extern SEXP Descriptor__field_count(SEXP); extern SEXP Descriptor__fileDescriptor(SEXP); /*extern SEXP Descriptor__FindEnumTypeByName(SEXP, SEXP);*/ extern SEXP Descriptor__FindFieldByName(SEXP, SEXP); extern SEXP Descriptor__FindFieldByNumber(SEXP, SEXP); extern SEXP Descriptor__FindNestedTypeByName(SEXP, SEXP); extern SEXP Descriptor__getMemberNames(SEXP); extern SEXP Descriptor__name(SEXP, SEXP); extern SEXP Descriptor__nested_type(SEXP, SEXP); extern SEXP Descriptor__nested_type_count(SEXP); extern SEXP Descriptor__readASCIIFromConnection(SEXP, SEXP, SEXP); extern SEXP Descriptor__readASCIIFromString(SEXP, SEXP, SEXP); extern SEXP Descriptor__readJSONFromConnection(SEXP, SEXP); extern SEXP Descriptor__readJSONFromString(SEXP, SEXP); extern SEXP Descriptor__readMessageFromConnection(SEXP, SEXP); extern SEXP Descriptor__readMessageFromFile(SEXP, SEXP); extern SEXP Descriptor__readMessageFromRawVector(SEXP, SEXP); extern SEXP Descriptor_getField(SEXP, SEXP); extern SEXP do_dollar_Descriptor(SEXP, SEXP); extern SEXP EnumDescriptor__as_character(SEXP); extern SEXP EnumDescriptor__as_list(SEXP); extern SEXP EnumDescriptor__as_Message(SEXP); extern SEXP EnumDescriptor__containing_type(SEXP); extern SEXP EnumDescriptor__fileDescriptor(SEXP); extern SEXP EnumDescriptor__getConstantNames(SEXP); extern SEXP EnumDescriptor__getValueByIndex(SEXP, SEXP); extern SEXP EnumDescriptor__getValueByName(SEXP, SEXP); extern SEXP EnumDescriptor__getValueByNumber(SEXP, SEXP); extern SEXP EnumDescriptor__length(SEXP); extern SEXP EnumDescriptor__name(SEXP, SEXP); extern SEXP EnumDescriptor__value_count(SEXP); extern SEXP EnumValueDescriptor__as_character(SEXP); extern SEXP EnumValueDescriptor__as_Message(SEXP); extern SEXP EnumValueDescriptor__enum_type(SEXP); extern SEXP EnumValueDescriptor__number(SEXP); extern SEXP FieldDescriptor__as_character(SEXP); extern SEXP FieldDescriptor__as_Message(SEXP); extern SEXP FieldDescriptor__containing_type(SEXP); extern SEXP FieldDescriptor__cpp_type(SEXP); extern SEXP FieldDescriptor__default_value(SEXP); extern SEXP FieldDescriptor__enum_type(SEXP); extern SEXP FieldDescriptor__fileDescriptor(SEXP); extern SEXP FieldDescriptor__has_default_value(SEXP); extern SEXP FieldDescriptor__is_extension(SEXP); extern SEXP FieldDescriptor__is_optional(SEXP); extern SEXP FieldDescriptor__is_repeated(SEXP); extern SEXP FieldDescriptor__is_required(SEXP); extern SEXP FieldDescriptor__label(SEXP); extern SEXP FieldDescriptor__message_type(SEXP); extern SEXP FieldDescriptor__name(SEXP, SEXP); extern SEXP FieldDescriptor__number(SEXP); extern SEXP FieldDescriptor__type(SEXP); extern SEXP FileDescriptor__as_character(SEXP); extern SEXP FileDescriptor__as_list(SEXP); extern SEXP FileDescriptor__as_Message(SEXP); extern SEXP FileDescriptor__getMemberNames(SEXP); extern SEXP FileDescriptor__name(SEXP); extern SEXP FileInputStream_Close(SEXP); extern SEXP FileInputStream_GetErrno(SEXP); extern SEXP FileInputStream_new(SEXP, SEXP, SEXP); extern SEXP FileInputStream_SetCloseOnDelete(SEXP, SEXP); extern SEXP FileOutputStream_Close(SEXP); extern SEXP FileOutputStream_Flush(SEXP); extern SEXP FileOutputStream_GetErrno(SEXP); extern SEXP FileOutputStream_new(SEXP, SEXP, SEXP); extern SEXP FileOutputStream_SetCloseOnDelete(SEXP, SEXP); /*extern SEXP get_method_input_type(SEXP);*/ extern SEXP get_method_output_prototype(SEXP); extern SEXP get_protobuf_library_version(void); extern SEXP get_value_of_enum(SEXP, SEXP); extern SEXP getEnumDescriptor(SEXP); extern SEXP getExtension_cpp(SEXP, SEXP); extern SEXP getExtensionDescriptor(SEXP); extern SEXP getMessageField(SEXP, SEXP); extern SEXP getProtobufDescriptor(SEXP); extern SEXP has_enum_name(SEXP, SEXP); extern SEXP identical_messages(SEXP, SEXP); extern SEXP Message__add_values(SEXP, SEXP, SEXP); extern SEXP Message__as_character(SEXP); extern SEXP Message__as_json(SEXP, SEXP, SEXP); extern SEXP Message__as_list(SEXP); extern SEXP Message__bytesize(SEXP); extern SEXP Message__clear(SEXP); extern SEXP Message__clear_field(SEXP, SEXP); extern SEXP Message__clone(SEXP); /*extern SEXP Message__clone(SEXP, SEXP);*/ extern SEXP Message__descriptor(SEXP); extern SEXP Message__field_exists(SEXP, SEXP); extern SEXP Message__field_size(SEXP, SEXP); extern SEXP Message__fieldNames(SEXP); extern SEXP Message__fileDescriptor(SEXP); extern SEXP Message__get_field_values(SEXP, SEXP, SEXP); extern SEXP Message__get_payload(SEXP); extern SEXP Message__has_field(SEXP, SEXP); extern SEXP Message__is_initialized(SEXP); extern SEXP Message__length(SEXP); extern SEXP Message__merge(SEXP, SEXP); extern SEXP Message__num_extensions(SEXP); extern SEXP Message__print_text_format(SEXP); extern SEXP Message__serialize_to_file(SEXP, SEXP); extern SEXP Message__set_field_size(SEXP, SEXP, SEXP); extern SEXP Message__set_field_values(SEXP, SEXP, SEXP, SEXP); extern SEXP Message__swap(SEXP, SEXP, SEXP, SEXP); extern SEXP MethodDescriptor__as_character(SEXP); extern SEXP MethodDescriptor__as_Message(SEXP); extern SEXP MethodDescriptor__fileDescriptor(SEXP); extern SEXP MethodDescriptor__input_type(SEXP); extern SEXP MethodDescriptor__name(SEXP, SEXP); extern SEXP MethodDescriptor__output_type(SEXP); extern SEXP newProtocolBufferLookup(SEXP); extern SEXP newProtoMessage(SEXP); extern SEXP readProtoFiles_cpp(SEXP, SEXP); extern SEXP resetDescriptorPool_cpp(void); extern SEXP ServiceDescriptor__as_character(SEXP); extern SEXP ServiceDescriptor__as_list(SEXP); extern SEXP ServiceDescriptor__as_Message(SEXP); extern SEXP ServiceDescriptor__fileDescriptor(SEXP); extern SEXP ServiceDescriptor__getMethodNames(SEXP); /*extern SEXP ServiceDescriptor__method(SEXP, SEXP);*/ extern SEXP ServiceDescriptor__name(SEXP, SEXP); /*extern SEXP ServiceDescriptor_getMethodByIndex(SEXP, SEXP);*/ /*extern SEXP ServiceDescriptor_getMethodByName(SEXP, SEXP);*/ /*extern SEXP ServiceDescriptor_method_count(SEXP);*/ extern SEXP setMessageField(SEXP, SEXP, SEXP); extern SEXP update_message(SEXP, SEXP); extern SEXP valid_input_message(SEXP, SEXP); extern SEXP valid_output_message(SEXP, SEXP); extern SEXP ZeroCopyInputStream_BackUp(SEXP, SEXP); extern SEXP ZeroCopyInputStream_ByteCount(SEXP); extern SEXP ZeroCopyInputStream_Next(SEXP); extern SEXP ZeroCopyInputStream_ReadLittleEndian32(SEXP); extern SEXP ZeroCopyInputStream_ReadLittleEndian64(SEXP); extern SEXP ZeroCopyInputStream_ReadRaw(SEXP, SEXP); extern SEXP ZeroCopyInputStream_ReadString(SEXP, SEXP); extern SEXP ZeroCopyInputStream_ReadVarint32(SEXP); extern SEXP ZeroCopyInputStream_ReadVarint64(SEXP); extern SEXP ZeroCopyInputStream_Skip(SEXP, SEXP); extern SEXP ZeroCopyOutputStream_BackUp(SEXP, SEXP); extern SEXP ZeroCopyOutputStream_ByteCount(SEXP); extern SEXP ZeroCopyOutputStream_Next(SEXP, SEXP); extern SEXP ZeroCopyOutputStream_WriteLittleEndian32(SEXP, SEXP); extern SEXP ZeroCopyOutputStream_WriteLittleEndian64(SEXP, SEXP); extern SEXP ZeroCopyOutputStream_WriteRaw(SEXP, SEXP); extern SEXP ZeroCopyOutputStream_WriteString(SEXP, SEXP); extern SEXP ZeroCopyOutputStream_WriteVarint32(SEXP, SEXP); extern SEXP ZeroCopyOutputStream_WriteVarint64(SEXP, SEXP); static const R_CallMethodDef CallEntries[] = { {"all_equal_messages", (DL_FUNC) &all_equal_messages, 3}, {"ArrayInputStream__new", (DL_FUNC) &ArrayInputStream__new, 2}, {"ArrayOutputStream__new", (DL_FUNC) &ArrayOutputStream__new, 2}, {"ConnectionInputStream_new", (DL_FUNC) &ConnectionInputStream_new, 2}, {"ConnectionOutputStream_new", (DL_FUNC) &ConnectionOutputStream_new, 2}, {"Descriptor__as_character", (DL_FUNC) &Descriptor__as_character, 1}, {"Descriptor__as_list", (DL_FUNC) &Descriptor__as_list, 1}, {"Descriptor__as_Message", (DL_FUNC) &Descriptor__as_Message, 1}, {"Descriptor__containing_type", (DL_FUNC) &Descriptor__containing_type, 1}, {"Descriptor__enum_type", (DL_FUNC) &Descriptor__enum_type, 2}, {"Descriptor__enum_type_count", (DL_FUNC) &Descriptor__enum_type_count, 1}, {"Descriptor__field", (DL_FUNC) &Descriptor__field, 2}, {"Descriptor__field_count", (DL_FUNC) &Descriptor__field_count, 1}, {"Descriptor__fileDescriptor", (DL_FUNC) &Descriptor__fileDescriptor, 1}, /* {"Descriptor__FindEnumTypeByName", (DL_FUNC) &Descriptor__FindEnumTypeByName, 2}, */ {"Descriptor__FindFieldByName", (DL_FUNC) &Descriptor__FindFieldByName, 2}, {"Descriptor__FindFieldByNumber", (DL_FUNC) &Descriptor__FindFieldByNumber, 2}, {"Descriptor__FindNestedTypeByName", (DL_FUNC) &Descriptor__FindNestedTypeByName, 2}, {"Descriptor__getMemberNames", (DL_FUNC) &Descriptor__getMemberNames, 1}, {"Descriptor__name", (DL_FUNC) &Descriptor__name, 2}, {"Descriptor__nested_type", (DL_FUNC) &Descriptor__nested_type, 2}, {"Descriptor__nested_type_count", (DL_FUNC) &Descriptor__nested_type_count, 1}, {"Descriptor__readASCIIFromConnection", (DL_FUNC) &Descriptor__readASCIIFromConnection, 3}, {"Descriptor__readASCIIFromString", (DL_FUNC) &Descriptor__readASCIIFromString, 3}, {"Descriptor__readJSONFromConnection", (DL_FUNC) &Descriptor__readJSONFromConnection, 2}, {"Descriptor__readJSONFromString", (DL_FUNC) &Descriptor__readJSONFromString, 2}, {"Descriptor__readMessageFromConnection", (DL_FUNC) &Descriptor__readMessageFromConnection, 2}, {"Descriptor__readMessageFromFile", (DL_FUNC) &Descriptor__readMessageFromFile, 2}, {"Descriptor__readMessageFromRawVector", (DL_FUNC) &Descriptor__readMessageFromRawVector, 2}, {"Descriptor_getField", (DL_FUNC) &Descriptor_getField, 2}, {"do_dollar_Descriptor", (DL_FUNC) &do_dollar_Descriptor, 2}, {"EnumDescriptor__as_character", (DL_FUNC) &EnumDescriptor__as_character, 1}, {"EnumDescriptor__as_list", (DL_FUNC) &EnumDescriptor__as_list, 1}, {"EnumDescriptor__as_Message", (DL_FUNC) &EnumDescriptor__as_Message, 1}, {"EnumDescriptor__containing_type", (DL_FUNC) &EnumDescriptor__containing_type, 1}, {"EnumDescriptor__fileDescriptor", (DL_FUNC) &EnumDescriptor__fileDescriptor, 1}, {"EnumDescriptor__getConstantNames", (DL_FUNC) &EnumDescriptor__getConstantNames, 1}, {"EnumDescriptor__getValueByIndex", (DL_FUNC) &EnumDescriptor__getValueByIndex, 2}, {"EnumDescriptor__getValueByName", (DL_FUNC) &EnumDescriptor__getValueByName, 2}, {"EnumDescriptor__getValueByNumber", (DL_FUNC) &EnumDescriptor__getValueByNumber, 2}, {"EnumDescriptor__length", (DL_FUNC) &EnumDescriptor__length, 1}, {"EnumDescriptor__name", (DL_FUNC) &EnumDescriptor__name, 2}, {"EnumDescriptor__value_count", (DL_FUNC) &EnumDescriptor__value_count, 1}, {"EnumValueDescriptor__as_character", (DL_FUNC) &EnumValueDescriptor__as_character, 1}, {"EnumValueDescriptor__as_Message", (DL_FUNC) &EnumValueDescriptor__as_Message, 1}, {"EnumValueDescriptor__enum_type", (DL_FUNC) &EnumValueDescriptor__enum_type, 1}, {"EnumValueDescriptor__number", (DL_FUNC) &EnumValueDescriptor__number, 1}, {"FieldDescriptor__as_character", (DL_FUNC) &FieldDescriptor__as_character, 1}, {"FieldDescriptor__as_Message", (DL_FUNC) &FieldDescriptor__as_Message, 1}, {"FieldDescriptor__containing_type", (DL_FUNC) &FieldDescriptor__containing_type, 1}, {"FieldDescriptor__cpp_type", (DL_FUNC) &FieldDescriptor__cpp_type, 1}, {"FieldDescriptor__default_value", (DL_FUNC) &FieldDescriptor__default_value, 1}, {"FieldDescriptor__enum_type", (DL_FUNC) &FieldDescriptor__enum_type, 1}, {"FieldDescriptor__fileDescriptor", (DL_FUNC) &FieldDescriptor__fileDescriptor, 1}, {"FieldDescriptor__has_default_value", (DL_FUNC) &FieldDescriptor__has_default_value, 1}, {"FieldDescriptor__is_extension", (DL_FUNC) &FieldDescriptor__is_extension, 1}, {"FieldDescriptor__is_optional", (DL_FUNC) &FieldDescriptor__is_optional, 1}, {"FieldDescriptor__is_repeated", (DL_FUNC) &FieldDescriptor__is_repeated, 1}, {"FieldDescriptor__is_required", (DL_FUNC) &FieldDescriptor__is_required, 1}, {"FieldDescriptor__label", (DL_FUNC) &FieldDescriptor__label, 1}, {"FieldDescriptor__message_type", (DL_FUNC) &FieldDescriptor__message_type, 1}, {"FieldDescriptor__name", (DL_FUNC) &FieldDescriptor__name, 2}, {"FieldDescriptor__number", (DL_FUNC) &FieldDescriptor__number, 1}, {"FieldDescriptor__type", (DL_FUNC) &FieldDescriptor__type, 1}, {"FileDescriptor__as_character", (DL_FUNC) &FileDescriptor__as_character, 1}, {"FileDescriptor__as_list", (DL_FUNC) &FileDescriptor__as_list, 1}, {"FileDescriptor__as_Message", (DL_FUNC) &FileDescriptor__as_Message, 1}, {"FileDescriptor__getMemberNames", (DL_FUNC) &FileDescriptor__getMemberNames, 1}, {"FileDescriptor__name", (DL_FUNC) &FileDescriptor__name, 1}, {"FileInputStream_Close", (DL_FUNC) &FileInputStream_Close, 1}, {"FileInputStream_GetErrno", (DL_FUNC) &FileInputStream_GetErrno, 1}, {"FileInputStream_new", (DL_FUNC) &FileInputStream_new, 3}, {"FileInputStream_SetCloseOnDelete", (DL_FUNC) &FileInputStream_SetCloseOnDelete, 2}, {"FileOutputStream_Close", (DL_FUNC) &FileOutputStream_Close, 1}, {"FileOutputStream_Flush", (DL_FUNC) &FileOutputStream_Flush, 1}, {"FileOutputStream_GetErrno", (DL_FUNC) &FileOutputStream_GetErrno, 1}, {"FileOutputStream_new", (DL_FUNC) &FileOutputStream_new, 3}, {"FileOutputStream_SetCloseOnDelete", (DL_FUNC) &FileOutputStream_SetCloseOnDelete, 2}, /* {"get_method_input_type", (DL_FUNC) &get_method_input_type, 1},*/ {"get_method_output_prototype", (DL_FUNC) &get_method_output_prototype, 1}, {"get_protobuf_library_version", (DL_FUNC) &get_protobuf_library_version, 0}, {"get_value_of_enum", (DL_FUNC) &get_value_of_enum, 2}, {"getEnumDescriptor", (DL_FUNC) &getEnumDescriptor, 1}, {"getExtension_cpp", (DL_FUNC) &getExtension_cpp, 2}, {"getExtensionDescriptor", (DL_FUNC) &getExtensionDescriptor, 1}, {"getMessageField", (DL_FUNC) &getMessageField, 2}, {"getProtobufDescriptor", (DL_FUNC) &getProtobufDescriptor, 1}, {"has_enum_name", (DL_FUNC) &has_enum_name, 2}, {"identical_messages", (DL_FUNC) &identical_messages, 2}, {"Message__add_values", (DL_FUNC) &Message__add_values, 3}, {"Message__as_character", (DL_FUNC) &Message__as_character, 1}, {"Message__as_json", (DL_FUNC) &Message__as_json, 3}, {"Message__as_list", (DL_FUNC) &Message__as_list, 1}, {"Message__bytesize", (DL_FUNC) &Message__bytesize, 1}, {"Message__clear", (DL_FUNC) &Message__clear, 1}, {"Message__clear_field", (DL_FUNC) &Message__clear_field, 2}, {"Message__clone", (DL_FUNC) &Message__clone, 1}, /* {"Message__clone", (DL_FUNC) &Message__clone, 2},*/ {"Message__descriptor", (DL_FUNC) &Message__descriptor, 1}, {"Message__field_exists", (DL_FUNC) &Message__field_exists, 2}, {"Message__field_size", (DL_FUNC) &Message__field_size, 2}, {"Message__fieldNames", (DL_FUNC) &Message__fieldNames, 1}, {"Message__fileDescriptor", (DL_FUNC) &Message__fileDescriptor, 1}, {"Message__get_field_values", (DL_FUNC) &Message__get_field_values, 3}, {"Message__get_payload", (DL_FUNC) &Message__get_payload, 1}, {"Message__has_field", (DL_FUNC) &Message__has_field, 2}, {"Message__is_initialized", (DL_FUNC) &Message__is_initialized, 1}, {"Message__length", (DL_FUNC) &Message__length, 1}, {"Message__merge", (DL_FUNC) &Message__merge, 2}, {"Message__num_extensions", (DL_FUNC) &Message__num_extensions, 1}, {"Message__serialize_to_file", (DL_FUNC) &Message__serialize_to_file, 2}, {"Message__print_text_format", (DL_FUNC) &Message__print_text_format, 1}, {"Message__set_field_size", (DL_FUNC) &Message__set_field_size, 3}, {"Message__set_field_values", (DL_FUNC) &Message__set_field_values, 4}, {"Message__swap", (DL_FUNC) &Message__swap, 4}, {"MethodDescriptor__as_character", (DL_FUNC) &MethodDescriptor__as_character, 1}, {"MethodDescriptor__as_Message", (DL_FUNC) &MethodDescriptor__as_Message, 1}, {"MethodDescriptor__fileDescriptor", (DL_FUNC) &MethodDescriptor__fileDescriptor, 1}, {"MethodDescriptor__input_type", (DL_FUNC) &MethodDescriptor__input_type, 1}, {"MethodDescriptor__name", (DL_FUNC) &MethodDescriptor__name, 2}, {"MethodDescriptor__output_type", (DL_FUNC) &MethodDescriptor__output_type, 1}, {"newProtocolBufferLookup", (DL_FUNC) &newProtocolBufferLookup, 1}, {"newProtoMessage", (DL_FUNC) &newProtoMessage, 1}, {"readProtoFiles_cpp", (DL_FUNC) &readProtoFiles_cpp, 2}, {"resetDescriptorPool_cpp", (DL_FUNC) &resetDescriptorPool_cpp, 0}, {"ServiceDescriptor__as_character", (DL_FUNC) &ServiceDescriptor__as_character, 1}, {"ServiceDescriptor__as_list", (DL_FUNC) &ServiceDescriptor__as_list, 1}, {"ServiceDescriptor__as_Message", (DL_FUNC) &ServiceDescriptor__as_Message, 1}, {"ServiceDescriptor__fileDescriptor", (DL_FUNC) &ServiceDescriptor__fileDescriptor, 1}, {"ServiceDescriptor__getMethodNames", (DL_FUNC) &ServiceDescriptor__getMethodNames, 1}, /* {"ServiceDescriptor__method", (DL_FUNC) &ServiceDescriptor__method, 2},*/ {"ServiceDescriptor__name", (DL_FUNC) &ServiceDescriptor__name, 2}, /* {"ServiceDescriptor_getMethodByIndex", (DL_FUNC) &ServiceDescriptor_getMethodByIndex, 2},*/ /* {"ServiceDescriptor_getMethodByName", (DL_FUNC) &ServiceDescriptor_getMethodByName, 2},*/ /* {"ServiceDescriptor_method_count", (DL_FUNC) &ServiceDescriptor_method_count, 1},*/ {"setMessageField", (DL_FUNC) &setMessageField, 3}, {"update_message", (DL_FUNC) &update_message, 2}, {"valid_input_message", (DL_FUNC) &valid_input_message, 2}, {"valid_output_message", (DL_FUNC) &valid_output_message, 2}, {"ZeroCopyInputStream_BackUp", (DL_FUNC) &ZeroCopyInputStream_BackUp, 2}, {"ZeroCopyInputStream_ByteCount", (DL_FUNC) &ZeroCopyInputStream_ByteCount, 1}, {"ZeroCopyInputStream_Next", (DL_FUNC) &ZeroCopyInputStream_Next, 1}, {"ZeroCopyInputStream_ReadLittleEndian32", (DL_FUNC) &ZeroCopyInputStream_ReadLittleEndian32, 1}, {"ZeroCopyInputStream_ReadLittleEndian64", (DL_FUNC) &ZeroCopyInputStream_ReadLittleEndian64, 1}, {"ZeroCopyInputStream_ReadRaw", (DL_FUNC) &ZeroCopyInputStream_ReadRaw, 2}, {"ZeroCopyInputStream_ReadString", (DL_FUNC) &ZeroCopyInputStream_ReadString, 2}, {"ZeroCopyInputStream_ReadVarint32", (DL_FUNC) &ZeroCopyInputStream_ReadVarint32, 1}, {"ZeroCopyInputStream_ReadVarint64", (DL_FUNC) &ZeroCopyInputStream_ReadVarint64, 1}, {"ZeroCopyInputStream_Skip", (DL_FUNC) &ZeroCopyInputStream_Skip, 2}, {"ZeroCopyOutputStream_BackUp", (DL_FUNC) &ZeroCopyOutputStream_BackUp, 2}, {"ZeroCopyOutputStream_ByteCount", (DL_FUNC) &ZeroCopyOutputStream_ByteCount, 1}, {"ZeroCopyOutputStream_Next", (DL_FUNC) &ZeroCopyOutputStream_Next, 2}, {"ZeroCopyOutputStream_WriteLittleEndian32", (DL_FUNC) &ZeroCopyOutputStream_WriteLittleEndian32, 2}, {"ZeroCopyOutputStream_WriteLittleEndian64", (DL_FUNC) &ZeroCopyOutputStream_WriteLittleEndian64, 2}, {"ZeroCopyOutputStream_WriteRaw", (DL_FUNC) &ZeroCopyOutputStream_WriteRaw, 2}, {"ZeroCopyOutputStream_WriteString", (DL_FUNC) &ZeroCopyOutputStream_WriteString, 2}, {"ZeroCopyOutputStream_WriteVarint32", (DL_FUNC) &ZeroCopyOutputStream_WriteVarint32, 2}, {"ZeroCopyOutputStream_WriteVarint64", (DL_FUNC) &ZeroCopyOutputStream_WriteVarint64, 2}, {NULL, NULL, 0} }; void R_init_RProtoBuf(DllInfo *dll) { R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } void R_unload_RProtoBuf(DllInfo* dll) { resetDescriptorPool_cpp(); } RProtoBuf/src/wrapper_ArrayInputStream.cpp0000644000176200001440000000055112440004312020430 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "RcppMacros.h" namespace rprotobuf { RPB_FUNCTION_2(S4_ArrayInputStream, ArrayInputStream__new, Rcpp::RawVector payload, int block_size) { return S4_ArrayInputStream(payload, block_size); } } RProtoBuf/src/RconnectionCopyingInputStream.h0000644000176200001440000000065712440004312021100 0ustar liggesusers#ifndef RPROTOBUF_RconnectionCopyingInputStream_H #define RPROTOBUF_RconnectionCopyingInputStream_H namespace rprotobuf { class RconnectionCopyingInputStream : public GPB::io::CopyingInputStream { public: RconnectionCopyingInputStream(int id); int Read(void* buffer, int size); bool Failure() const { return (failure); } private: int connection_id; bool failure; }; } // namespace rprotobuf #endif RProtoBuf/src/wrapper_FileDescriptor.cpp0000644000176200001440000000532712440004312020102 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "RcppMacros.h" namespace rprotobuf { #undef METHOD #define METHOD(__NAME__) RCPP_PP_CAT(FileDescriptor__, __NAME__) RPB_XP_METHOD_0(METHOD(as_character), GPB::FileDescriptor, DebugString) RPB_FUNCTION_1(S4_Message, METHOD(as_Message), Rcpp::XPtr d) { GPB::FileDescriptorProto* message = new GPB::FileDescriptorProto(); d->CopyTo(message); return S4_Message(message); } RPB_FUNCTION_1(Rcpp::CharacterVector, METHOD(getMemberNames), Rcpp::XPtr desc) { int ntypes = desc->message_type_count(); int nenums = desc->enum_type_count(); int nserv = desc->service_count(); int nexts = desc->extension_count(); Rcpp::CharacterVector res(ntypes + nenums + nserv + nexts); int i = 0; int j = 0; while (i < ntypes) { res[j] = desc->message_type(i)->name(); i++; j++; } i = 0; while (i < nenums) { res[j] = desc->enum_type(i)->name(); i++; j++; } i = 0; while (i < nserv) { res[j] = desc->service(i)->name(); i++; j++; } i = 0; while (i < nexts) { res[j] = desc->extension(i)->name(); i++; j++; } return res; } /** * @param xp (GPB::FileDescriptor*) external pointer * @return the descriptor as an R list */ RPB_FUNCTION_1(Rcpp::List, METHOD(as_list), Rcpp::XPtr desc) { int ntypes = desc->message_type_count(); int nenums = desc->enum_type_count(); int nserv = desc->service_count(); int nexts = desc->extension_count(); int n = ntypes + nenums + nserv + nexts; Rcpp::CharacterVector names(n); Rcpp::List res(n); int count = 0; for (int i = 0; i < ntypes; count++, i++) { res[count] = S4_Descriptor(desc->message_type(i)); names[count] = desc->message_type(i)->name(); } for (int i = 0; i < nenums; count++, i++) { res[count] = S4_EnumDescriptor(desc->enum_type(i)); names[count] = desc->enum_type(i)->name(); } for (int i = 0; i < nserv; count++, i++) { res[count] = S4_ServiceDescriptor(desc->service(i)); names[count] = desc->service(i)->name(); } for (int i = 0; i < nexts; count++, i++) { res[count] = S4_FieldDescriptor(desc->extension(i)); // always use full names for extensions names[count] = desc->extension(i)->full_name(); } res.names() = names; return res; } RPB_FUNCTION_1(std::string, METHOD(name), Rcpp::XPtr desc) { return desc->name(); } #undef METHOD } // namespace rprotobuf RProtoBuf/src/wrapper_MethodDescriptor.cpp0000644000176200001440000000365312440004312020443 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "RcppMacros.h" namespace rprotobuf { #undef METHOD #define METHOD(__NAME__) RCPP_PP_CAT(MethodDescriptor__, __NAME__) RPB_XP_METHOD_0(METHOD(as_character), GPB::MethodDescriptor, DebugString) RPB_FUNCTION_1(S4_Message, METHOD(as_Message), Rcpp::XPtr d) { GPB::MethodDescriptorProto* message = new GPB::MethodDescriptorProto(); d->CopyTo(message); return S4_Message(message); } RPB_FUNCTION_1(S4_FileDescriptor, METHOD(fileDescriptor), Rcpp::XPtr desc) { return S4_FileDescriptor(desc->service()->file()); } RPB_FUNCTION_1(S4_Descriptor, METHOD(input_type), Rcpp::XPtr method) { return method->input_type(); } RPB_FUNCTION_1(S4_Descriptor, METHOD(output_type), Rcpp::XPtr method) { return method->output_type(); } RPB_FUNCTION_1(S4_Message, get_method_input_prototype, Rcpp::XPtr method) { const GPB::Descriptor* desc = method->input_type(); return S4_Message(PROTOTYPE(desc)); } RPB_FUNCTION_1(S4_Message, get_method_output_prototype, Rcpp::XPtr method) { const GPB::Descriptor* desc = method->output_type(); return S4_Message(PROTOTYPE(desc)); } RPB_FUNCTION_2(bool, valid_input_message, Rcpp::XPtr method, Rcpp::XPtr message) { return message->GetDescriptor() == method->input_type(); } RPB_FUNCTION_2(bool, valid_output_message, Rcpp::XPtr method, Rcpp::XPtr message) { return message->GetDescriptor() == method->output_type(); } RPB_FUNCTION_2(std::string, METHOD(name), Rcpp::XPtr d, bool full) { return full ? d->full_name() : d->name(); } #undef METHOD } // namespace rprotobuf RProtoBuf/src/ConnectionCopyingInputStream.cpp0000644000176200001440000000134712440004312021246 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "ConnectionCopyingInputStream.h" namespace rprotobuf { ConnectionCopyingInputStream::ConnectionCopyingInputStream(SEXP con) : con(con), readBin("readBin") {} /** * call readBin to read size bytes from R * * @param buffer buffer to fill with at most size bytes * @param size maximum number of bytes * * @return the number of bytes actually read */ int ConnectionCopyingInputStream::Read(void* buffer, int size) { /* TODO: error handling */ Rcpp::RawVector res = readBin(con, Rcpp::RawVector(0), size); memcpy(buffer, res.begin(), res.size()); return res.size(); } } RProtoBuf/src/ConnectionInputStream.cpp0000644000176200001440000000164412440004312017715 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "ConnectionInputStream.h" #include "ConnectionCopyingInputStream.h" namespace rprotobuf { ConnectionInputStream::ConnectionInputStream(SEXP con, bool was_open) : GPB::io::CopyingInputStreamAdaptor(new ConnectionCopyingInputStream(con)), was_open(was_open), con(con) { /* clean the wrapped stream on delete */ SetOwnsCopyingStream(true); } ConnectionInputStream::~ConnectionInputStream() { if (!was_open) { /* then we need to close it */ SEXP call = PROTECT(Rf_lang2(Rf_install("close"), con)); Rf_eval(call, R_GlobalEnv); UNPROTECT(1); /* call */ } /* con will be disposed by the R GC, it is protected as part of the protection of the external pointer that wraps this */ } } // namespace rprotobuf RProtoBuf/src/mutators.cpp0000644000176200001440000012515014234004610015303 0ustar liggesusers // Copyright (C) 2010 - 2022 Dirk Eddelbuettel and Romain Francois // // This file is part of RProtoBuf. // // RProtoBuf is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RProtoBuf is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RProtoBuf. If not, see . #include "rprotobuf.h" #include "fieldtypes.h" #include "RcppMacros.h" namespace rprotobuf { // {{{ GETDOUBLE /** * get the index'th value of x, as an double * * @param x some R data * @param index the index * @return x[index], as an double * @throws Rcpp::exception if x[index] cannot be converted to double */ /* FIXME: should we convert the NA's */ double GET_double(SEXP x, int index) { switch (TYPEOF(x)) { case INTSXP: return ((double)INTEGER(x)[index]); case REALSXP: return (REAL(x)[index]); case LGLSXP: return ((double)LOGICAL(x)[index]); case RAWSXP: return ((double)RAW(x)[index]); default: Rcpp::stop("cannot cast SEXP to double"); } return 0.0; // -Wall } // }}} float GET_float(SEXP x, int index) { switch (TYPEOF(x)) { case INTSXP: return ((float)INTEGER(x)[index]); case REALSXP: return ((float)REAL(x)[index]); case LGLSXP: return ((float)LOGICAL(x)[index]); case RAWSXP: return ((float)RAW(x)[index]); default: Rcpp::stop("cannot cast SEXP to double"); } return (float)0.0; // -Wall } int GET_int(SEXP x, int index) { switch (TYPEOF(x)) { case INTSXP: return (INTEGER(x)[index]); case REALSXP: return ((int)REAL(x)[index]); case LGLSXP: return ((int)LOGICAL(x)[index]); case RAWSXP: return ((int)RAW(x)[index]); default: Rcpp::stop("cannot cast SEXP to int"); } return 0; // -Wall, should not happen since we only call this when we know it works } template ValueType Int64FromString(const std::string& value) { std::stringstream ss(value); ValueType ret; if ((ss >> ret).fail() || !(ss >> std::ws).eof()) { std::string message = "Provided character value '" + value + "' cannot be cast to 64-bit integer."; Rcpp::stop(message.c_str()); } return ret; } template ValueType Int32FromString(const std::string& value) { std::stringstream ss(value); ValueType ret; if ((ss >> ret).fail() || !(ss >> std::ws).eof()) { std::string message = "Provided character value '" + value + "' cannot be cast to 32-bit integer."; Rcpp::stop(message.c_str()); } return ret; } int32 GET_int32(SEXP x, R_xlen_t vec_index) { switch (TYPEOF(x)) { case INTSXP: return ((int32)INTEGER(x)[vec_index]); case REALSXP: return ((int32)REAL(x)[vec_index]); case LGLSXP: return ((int32)LOGICAL(x)[vec_index]); case RAWSXP: return ((int32)RAW(x)[vec_index]); case STRSXP: return Int32FromString(CHAR(STRING_ELT(x, vec_index))); default: Rcpp::stop("cannot cast SEXP to int32"); } return (int32)0; // -Wall, should not happen since we only call this when we know it works } int64 GET_int64(SEXP x, R_xlen_t vec_index) { switch (TYPEOF(x)) { case INTSXP: return ((int64)INTEGER(x)[vec_index]); case REALSXP: return ((int64)REAL(x)[vec_index]); case LGLSXP: return ((int64)LOGICAL(x)[vec_index]); case RAWSXP: return ((int64)RAW(x)[vec_index]); case STRSXP: return Int64FromString(CHAR(STRING_ELT(x, vec_index))); default: Rcpp::stop("cannot cast SEXP to int64"); } return (int64)0; // -Wall, should not happen since we only call this when we know it works } uint32 GET_uint32(SEXP x, R_xlen_t vec_index) { switch (TYPEOF(x)) { case INTSXP: return ((uint32)INTEGER(x)[vec_index]); case REALSXP: return ((uint32)REAL(x)[vec_index]); case LGLSXP: return ((uint32)LOGICAL(x)[vec_index]); case RAWSXP: return ((uint32)RAW(x)[vec_index]); case STRSXP: return Int32FromString(CHAR(STRING_ELT(x, vec_index))); default: Rcpp::stop("cannot cast SEXP to uint32"); } return (uint32)0; // -Wall, should not happen since we only call this when we know it works } uint64 GET_uint64(SEXP x, R_xlen_t vec_index) { switch (TYPEOF(x)) { case INTSXP: return ((uint64)INTEGER(x)[vec_index]); case REALSXP: return ((uint64)REAL(x)[vec_index]); case LGLSXP: return ((uint64)LOGICAL(x)[vec_index]); case RAWSXP: return ((uint64)RAW(x)[vec_index]); case STRSXP: return Int64FromString(CHAR(STRING_ELT(x, vec_index))); default: Rcpp::stop("cannot cast SEXP to uint64"); } return (uint64)0; // -Wall, should not happen since we only call this when we know it works } bool GET_bool(SEXP x, R_xlen_t vec_index) { switch (TYPEOF(x)) { case INTSXP: if (INTEGER(x)[vec_index] == R_NaInt) { Rcpp::stop("NA boolean values can not be stored in bool protocol buffer fields"); } return ((bool)INTEGER(x)[vec_index]); case REALSXP: if (REAL(x)[vec_index] == R_NaReal) { Rcpp::stop("NA boolean values can not be stored in bool protocol buffer fields"); } return ((bool)REAL(x)[vec_index]); case LGLSXP: if (LOGICAL(x)[vec_index] == NA_LOGICAL) { Rcpp::stop("NA boolean values can not be stored in bool protocol buffer fields"); } return ((bool)LOGICAL(x)[vec_index]); case RAWSXP: return ((bool)RAW(x)[vec_index]); default: Rcpp::stop("cannot cast SEXP to bool"); } return (bool)0; // Unreachable. -Wall } std::string GET_stdstring(SEXP x, R_xlen_t vec_index) { if (TYPEOF(x) == STRSXP) { return (CHAR(STRING_ELT(x, vec_index))); } return ""; // Unreachable. -Wall } std::string GET_bytes(SEXP x, R_xlen_t vec_index) { switch (TYPEOF(x)) { case RAWSXP: if (vec_index == 0) { return (std::string((const char*)RAW(x), (size_t)LENGTH(x))); } else { Rcpp::stop("cannot cast SEXP to bytes"); } case VECSXP: if (TYPEOF(VECTOR_ELT(x, vec_index)) == RAWSXP) { return (std::string((const char*)RAW(VECTOR_ELT(x, vec_index)), (size_t)LENGTH(VECTOR_ELT(x, vec_index)))); } else { Rcpp::stop("cannot cast SEXP to bytes"); } default: Rcpp::stop("cannot cast SEXP to bytes"); } return ""; // Unreachable. -Wall } /** * indicates if this is a list of messages * * @param x a list (VECSXP), not a long vec * @return TRUE if all objects are instances of Message class */ Rboolean allAreMessages(SEXP x) { if (TYPEOF(x) != VECSXP) return _FALSE_; R_xlen_t n = LENGTH(x); // Caller verifies its not a long vec SEXP current; for (R_xlen_t i = 0; i < n; i++) { current = VECTOR_ELT(x, i); /* not an S4 object */ if (TYPEOF(current) != S4SXP) return _FALSE_; /* not a Message object */ if (!Rf_inherits(current, "Message")) return _FALSE_; } return _TRUE_; } /** * indicates if this is a list of raws * * @param x a list (VECSXP) * @return TRUE if all objects are instances of RAWSXP */ Rboolean allAreRaws(SEXP x) { if (TYPEOF(x) != VECSXP) return _FALSE_; R_xlen_t n = LENGTH(x); SEXP current; for (R_xlen_t i = 0; i < n; i++) { current = VECTOR_ELT(x, i); /* not a RAWSXP */ if (TYPEOF(current) != RAWSXP) return _FALSE_; } return _TRUE_; } /** * check that all the values contained in value are suitable for the * enum type * * @param field_desc field descriptor of an enum type * @param value value to potentially fill the enum * */ void CHECK_values_for_enum(const GPB::FieldDescriptor* field_desc, SEXP value) { BEGIN_RCPP const GPB::EnumDescriptor* enum_desc = field_desc->enum_type(); // N.B. n undefined if TYPEOF(value) not a vector, but we catch that below. R_xlen_t n = XLENGTH(value); switch (TYPEOF(value)) { // {{{ numbers case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { int nenums = enum_desc->value_count(); // Guaranteed to be > 0. std::vector possibles(nenums); for (int i = 0; i < nenums; i++) { possibles[i] = enum_desc->value(i)->number(); } /* loop around the numbers to see if they are in the possibles */ for (int i = 0; i < n; i++) { int val = GET_int(value, i); int ok = 0; for (int j = 0; j < nenums; j++) { if (val == possibles[j]) { ok = 1; break; } } if (!ok) { Rcpp::stop("wrong value for enum"); } } break; } // }}} // {{{ STRSXP case STRSXP: { int nenums = enum_desc->value_count(); std::vector possibles(nenums); for (int i = 0; i < nenums; i++) { possibles[i] = enum_desc->value(i)->name(); } /* loop around the numbers to see if they are in the possibles */ for (int i = 0; i < n; i++) { const char* val = CHAR(STRING_ELT(value, i)); int ok = 0; /* FIXME: there is probably something more efficient */ for (int j = 0; j < nenums; j++) { if (!possibles[j].compare(val)) { ok = 1; break; } } if (!ok) { Rcpp::stop("wrong value for enum"); } } break; } // }}} default: Rcpp::stop("impossible to convert to a enum"); } VOID_END_RCPP } /** * check that the values are suitable for the field descriptor * * @throws Rcpp::exception on error (uncaught) */ void CHECK_messages(const GPB::FieldDescriptor* field_desc, SEXP values) { if (TYPEOF(values) != VECSXP) { Rcpp::stop("expecting a list of messages"); } const char* target = field_desc->message_type()->full_name().c_str(); int n = LENGTH(values); for (int i = 0; i < n; i++) { if (!isMessage(VECTOR_ELT(values, i), target)) { // TODO(mstokely): When we have C++11 CXX11, use // std::to_string(i) // {{{ std::string s; std::stringstream out; out << i; s = out.str(); // }}} std::string message = "List element " + s + " is not a message " + "of the appropriate type ('" + target + "')"; Rcpp::stop(message.c_str()); } } } /** * check that all repeated values are ok before doing anything, * otherwise this could lead to modifying a few values then failing in * an inconsistent state. */ void CHECK_repeated_vals(const GPB::FieldDescriptor* field_desc, SEXP value, int value_size) { switch (field_desc->type()) { case TYPE_MESSAGE: case TYPE_GROUP: { switch (TYPEOF(value)) { case VECSXP: { /* check that it is a list of Messages of the appropriate type */ CHECK_messages(field_desc, value); break; } case S4SXP: { /* check that this is a message of the appropriate type */ if (!isMessage(value, field_desc->message_type()->full_name().c_str())) { std::string message = "Not a message of type '" + field_desc->message_type()->full_name() + "'"; Rcpp::stop(message.c_str()); } break; } default: Rcpp::stop("impossible to convert to a message"); } break; } case TYPE_ENUM: { const GPB::EnumDescriptor* enum_desc = field_desc->enum_type(); /* check first, it means we have to loop twice, but otherwise this could have some side effects before the exception is thrown */ /* FIXME: the checking should go before the resizing */ switch (TYPEOF(value)) { // {{{ numbers case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { int nenums = enum_desc->value_count(); std::vector possibles(nenums); for (int i = 0; i < nenums; i++) { possibles[i] = enum_desc->value(i)->number(); } /* loop around the numbers to see if they are in the possibles */ for (int i = 0; i < value_size; i++) { int val = GET_int(value, i); int ok = 0; for (int j = 0; j < nenums; j++) { if (val == possibles[j]) { ok = 1; break; } } if (!ok) { Rcpp::stop("wrong value for enum"); } } break; } // }}} // {{{ STRSXP case STRSXP: { int nenums = enum_desc->value_count(); std::vector possibles(nenums); for (int i = 0; i < nenums; i++) { possibles[i] = enum_desc->value(i)->name(); } /* loop around the numbers to see if they are in the possibles */ for (int i = 0; i < value_size; i++) { const char* val = CHAR(STRING_ELT(value, i)); int ok = 0; /* FIXME: there is probably something more efficient */ for (int j = 0; j < nenums; j++) { if (!possibles[j].compare(val)) { ok = 1; break; } } if (!ok) { Rcpp::stop("wrong value for enum"); } } break; } // }}} default: Rcpp::stop("impossible to convert to a enum"); } break; } case TYPE_DOUBLE: case TYPE_FLOAT: case TYPE_INT64: case TYPE_UINT64: case TYPE_INT32: case TYPE_FIXED64: case TYPE_FIXED32: case TYPE_BOOL: case TYPE_STRING: case TYPE_BYTES: case TYPE_UINT32: case TYPE_SFIXED32: case TYPE_SFIXED64: case TYPE_SINT32: case TYPE_SINT64: { ; // nothing, just to satisfy -Wall } } } /** * set a non-repeated message field to a new value * * @param message pointer to a message * @param ref pointer to reflection object for message * @param field_desc pointer to field descriptor to update * @param value new value for the field * @param value_size size of the new value for the field * @throws Rcpp::exception on error (uncaught) * @return void, the message is modified by reference */ void setNonRepeatedMessageField(GPB::Message* message, const Reflection* ref, const GPB::FieldDescriptor* field_desc, SEXP value, int value_size) { if (value_size > 1) { Rcpp::stop("cannot set non-repeated field to vector of length > 1"); } switch (GPB::FieldDescriptor::TypeToCppType(field_desc->type())) { // {{{ simple cases using macro expansion #undef HANDLE_SINGLE_FIELD #define HANDLE_SINGLE_FIELD(CPPTYPE, CAMEL, TYPE) \ case CPPTYPE: { \ ref->Set##CAMEL(message, field_desc, Rcpp::as(value)); \ break; \ } HANDLE_SINGLE_FIELD(CPPTYPE_DOUBLE, Double, double) HANDLE_SINGLE_FIELD(CPPTYPE_FLOAT, Float, float) case CPPTYPE_BOOL: { // TODO(mstokely): Rcpp should handle this! if ((TYPEOF(value) == LGLSXP) && (LOGICAL(value)[0] == NA_LOGICAL)) { Rcpp::stop("NA boolean values can not be stored in bool protocol buffer fields"); } else if ((TYPEOF(value) == INTSXP) && (INTEGER(value)[0] == R_NaInt)) { Rcpp::stop("NA boolean values can not be stored in bool protocol buffer fields"); } else if ((TYPEOF(value) == REALSXP) && (REAL(value)[0] == R_NaReal)) { Rcpp::stop("NA boolean values can not be stored in bool protocol buffer fields"); } ref->SetBool(message, field_desc, Rcpp::as(value)); break; } case CPPTYPE_INT32: { if (TYPEOF(value) == STRSXP) { const std::string int32str = COPYSTRING(CHAR(STRING_ELT(value, 0))); ref->SetInt32(message, field_desc, Int32FromString(int32str)); break; } else { ref->SetInt32(message, field_desc, Rcpp::as(value)); break; } } case CPPTYPE_UINT32: { if (TYPEOF(value) == STRSXP) { const std::string uint32str = COPYSTRING(CHAR(STRING_ELT(value, 0))); ref->SetUInt32(message, field_desc, Int32FromString(uint32str)); break; } else { // Rcpp::as is broken for uint32 types, so we just get Rcpp // to give us a valid double, ref->SetUInt32(message, field_desc, Rcpp::as(value)); break; } } #ifdef RCPP_HAS_LONG_LONG_TYPES case CPPTYPE_INT64: { // TODO(mstokely) Rcpp::as of a STRSEXP should just // work for strings representing int64s. if (TYPEOF(value) == STRSXP) { const std::string int64str = COPYSTRING(CHAR(STRING_ELT(value, 0))); ref->SetInt64(message, field_desc, Int64FromString(int64str)); break; } else { ref->SetInt64(message, field_desc, Rcpp::as(value)); break; } } case CPPTYPE_UINT64: { // TODO(mstokely) Rcpp::as of a STRSEXP should just // work for strings representing int64s. if (TYPEOF(value) == STRSXP) { const std::string int64str = COPYSTRING(CHAR(STRING_ELT(value, 0))); ref->SetUInt64(message, field_desc, Int64FromString(int64str)); break; } else { ref->SetUInt64(message, field_desc, Rcpp::as(value)); break; } } #endif #undef HANDLE_SINGLE_FIELD default: Rcpp::stop("Unsupported type"); // }}} // {{{ string case CPPTYPE_STRING: { switch (TYPEOF(value)) { case STRSXP: { ref->SetString(message, field_desc, COPYSTRING(CHAR(STRING_ELT(value, 0)))); break; } case RAWSXP: { ref->SetString(message, field_desc, GET_bytes(value, 0)); break; } case S4SXP: { /* check if value is a message */ if (!Rf_inherits(value, "Message")) { Rcpp::stop("Can only convert S4 objects of class 'Message'"); } GPB::Message* __mess = GET_MESSAGE_POINTER_FROM_S4(value); ref->SetString(message, field_desc, __mess->SerializeAsString()); break; } default: Rcpp::stop("Cannot convert to string"); } break; } // }}} // {{{ message case CPPTYPE_MESSAGE: { if (TYPEOF(value) == S4SXP && Rf_inherits(value, "Message")) { GPB::Message* mess = (GPB::Message*)EXTPTR_PTR(GET_SLOT(value, Rf_install("pointer"))); const char* type = mess->GetDescriptor()->full_name().c_str(); const char* target = field_desc->message_type()->full_name().c_str(); if (strcmp(type, target)) { Rcpp::stop("wrong message type"); } GPB::Message* m = ref->MutableMessage(message, field_desc); m->CopyFrom(*mess); } else { Rcpp::stop("type mismatch, expecting a 'Message' object"); } break; } // }}} // {{{ enum case CPPTYPE_ENUM: { const GPB::EnumDescriptor* enum_desc = field_desc->enum_type(); switch (TYPEOF(value)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { int val = Rcpp::as(value); const GPB::EnumValueDescriptor* evd = enum_desc->FindValueByNumber(val); if (!evd) { Rcpp::stop("wrong value for enum"); } else { ref->SetEnum(message, field_desc, evd); } break; } case STRSXP: { std::string val = Rcpp::as(value); const GPB::EnumValueDescriptor* evd = enum_desc->FindValueByName(val); if (!evd) { Rcpp::stop("wrong value for enum"); } else { ref->SetEnum(message, field_desc, evd); } break; } default: Rcpp::stop("cannot set enum value"); } break; } // }}} } } /** * set a repeated message field to a new value * * @param message pointer to a message * @param ref pointer to reflection object for message * @param field_desc pointer to field descriptor to update * @param value new value for the field * @param value_size size of the new value for the field * @throws Rcpp::exception on error (uncaught) * @return void, the message is modified by reference */ void setRepeatedMessageField(GPB::Message* message, const Reflection* ref, const GPB::FieldDescriptor* field_desc, SEXP value, R_xlen_t value_size) { // The number of elements already in the repeated field. int field_size = ref->FieldSize(*message, field_desc); /* in case of messages or enum, we have to check that all values are ok before doing anything, othewise this could leed to modify a few values and then fail which is not good */ CHECK_repeated_vals(field_desc, value, value_size); /* Remove some items if there are too many. */ if (field_size > value_size) { /* we need to remove some */ while (field_size > value_size) { ref->RemoveLast(message, field_desc); field_size--; } } switch (field_desc->type()) { // {{{ int32 case TYPE_INT32: case TYPE_SINT32: case TYPE_SFIXED32: { switch (TYPEOF(value)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: case STRSXP: // For int32, we support chars. { R_xlen_t i = 0; /* in any case, fill the values up to field_size */ for (; i < field_size; i++) { ref->SetRepeatedInt32(message, field_desc, i, GET_int32(value, i)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddInt32(message, field_desc, GET_int32(value, i)); } } break; } default: Rcpp::stop("Cannot convert to int32"); } break; } // }}} // {{{ int64 case TYPE_INT64: case TYPE_SINT64: case TYPE_SFIXED64: { switch (TYPEOF(value)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: case STRSXP: // For int64, we support chars. { R_xlen_t i = 0; /* in any case, fill the values up to field_size */ for (; i < field_size; i++) { ref->SetRepeatedInt64(message, field_desc, i, GET_int64(value, i)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddInt64(message, field_desc, GET_int64(value, i)); } } break; } default: Rcpp::stop("Cannot convert to int64"); } break; } // }}} // {{{ uint32 case TYPE_UINT32: case TYPE_FIXED32: { switch (TYPEOF(value)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: case STRSXP: // For int32, we support chars. { R_xlen_t i = 0; /* in any case, fill the values up to field_size */ for (; i < field_size; i++) { ref->SetRepeatedUInt32(message, field_desc, i, GET_uint32(value, i)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddUInt32(message, field_desc, GET_uint32(value, i)); } } break; } default: Rcpp::stop("Cannot convert to uint32"); } break; } // }}} // {{{ uint64 case TYPE_UINT64: case TYPE_FIXED64: { switch (TYPEOF(value)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: case STRSXP: // For int64, we support chars. { R_xlen_t i = 0; /* in any case, fill the values up to field_size */ for (; i < field_size; i++) { ref->SetRepeatedUInt64(message, field_desc, i, GET_uint64(value, i)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddUInt64(message, field_desc, GET_uint64(value, i)); } } break; } default: Rcpp::stop("Cannot convert to int64"); } break; } // }}} // {{{ double case TYPE_DOUBLE: { switch (TYPEOF(value)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { R_xlen_t i = 0; /* in any case, fill the values up to field_size */ for (; i < field_size; i++) { ref->SetRepeatedDouble(message, field_desc, i, GET_double(value, i)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddDouble(message, field_desc, GET_double(value, i)); } } break; } default: Rcpp::stop("Cannot convert to double"); } break; } // }}} // {{{ float case TYPE_FLOAT: { switch (TYPEOF(value)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { R_xlen_t i = 0; /* in any case, fill the values up to field_size */ for (; i < field_size; i++) { ref->SetRepeatedFloat(message, field_desc, i, GET_float(value, i)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddFloat(message, field_desc, GET_float(value, i)); } } break; } default: Rcpp::stop("Cannot convert to float"); } break; } // }}} // {{{ bool case TYPE_BOOL: { switch (TYPEOF(value)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { R_xlen_t i = 0; /* in any case, fill the values up to field_size */ for (; i < field_size; i++) { ref->SetRepeatedBool(message, field_desc, i, GET_bool(value, i)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddBool(message, field_desc, GET_bool(value, i)); } } break; } default: Rcpp::stop("Cannot convert to bool"); } break; } // }}} // {{{ string case TYPE_STRING: case TYPE_BYTES: { switch (TYPEOF(value)) { case STRSXP: { /* in any case, fill the values up to field_size */ R_xlen_t i = 0; for (; i < field_size; i++) { ref->SetRepeatedString(message, field_desc, i, COPYSTRING(CHAR(STRING_ELT(value, i)))); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddString(message, field_desc, COPYSTRING(CHAR(STRING_ELT(value, i)))); } } break; } case RAWSXP: { /* in any case, fill the values up to field_size */ R_xlen_t i = 0; for (; i < field_size; i++) { ref->SetRepeatedString(message, field_desc, i, GET_bytes(value, 0)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddString(message, field_desc, GET_bytes(value, 0)); } } break; } case S4SXP: { /* check if value is a message */ if (!Rf_inherits(value, "Message")) { Rcpp::stop("Can only convert S4 objects of class 'Message'"); } GPB::Message* __mess = GET_MESSAGE_POINTER_FROM_S4(value); ref->SetRepeatedString(message, field_desc, 0, __mess->SerializeAsString()); break; } case VECSXP: { // we know it is a list of messages or raws because it // has been tested above if (LENGTH(value) > 0 && TYPEOF(VECTOR_ELT(value, 0)) == RAWSXP) { /* in any case, fill the values up to field_size */ R_xlen_t i = 0; for (; i < field_size; i++) { ref->SetRepeatedString(message, field_desc, i, GET_bytes(value, i)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { ref->AddString(message, field_desc, GET_bytes(value, i)); } } } else { // FIXME: we should probably use SerializeToString // as indicated in the protobuf api documentation // http://code.google.com/apis/protocolbuffers/docs/reference/cpp/google.protobuf.message_lite.html#MessageLite.SerializeAsString.details GPB::Message* __mess; /* in any case, fill the values up to field_size */ R_xlen_t i = 0; for (; i < field_size; i++) { __mess = GET_MESSAGE_POINTER_FROM_S4(VECTOR_ELT(value, i)); ref->SetRepeatedString(message, field_desc, i, __mess->SerializeAsString()); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { __mess = GET_MESSAGE_POINTER_FROM_S4(VECTOR_ELT(value, i)); ref->AddString(message, field_desc, __mess->SerializeAsString()); } } } break; } default: Rcpp::stop("Cannot convert to string"); } break; } // }}} // {{{ message case TYPE_MESSAGE: case TYPE_GROUP: { if (TYPEOF(value) == S4SXP) { /* we know it is a message of the correct type (tested above) */ GPB::Message* mess = GET_MESSAGE_POINTER_FROM_S4(value); if (field_size == 1) { /* FIXME: we should not __copy__ the message */ ref->MutableRepeatedMessage(message, field_desc, 0)->CopyFrom(*mess); } else { /* FIXME */ ref->ClearField(message, field_desc); /* FIXME: we should not __copy__ the message */ ref->AddMessage(message, field_desc)->CopyFrom(*mess); } } else if (TYPEOF(value) == VECSXP) { /* in any case, fill the values up to field_size */ int i = 0; for (; i < field_size; i++) { GPB::Message* mess = GET_MESSAGE_POINTER_FROM_S4(VECTOR_ELT(value, i)); /* we already know it is of the correct type because of the premptive check above */ ref->MutableRepeatedMessage(message, field_desc, i)->CopyFrom(*mess); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { GPB::Message* mess = GET_MESSAGE_POINTER_FROM_S4(VECTOR_ELT(value, i)); /* we already know it is of the correct type because of the premptive check above */ ref->AddMessage(message, field_desc)->CopyFrom(*mess); } } } else { Rcpp::stop("type mismatch, expecting a 'Message' object or a list of them"); } break; } // }}} // {{{ enum case TYPE_ENUM: { const GPB::EnumDescriptor* enum_desc = field_desc->enum_type(); switch (TYPEOF(value)) { // {{{ numbers case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { int i = 0; /* in any case, fill the values up to field_size */ for (; i < field_size; i++) { int val = GET_int(value, i); ref->SetRepeatedEnum(message, field_desc, i, enum_desc->FindValueByNumber(val)); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { int val = GET_int(value, i); ref->AddEnum(message, field_desc, enum_desc->FindValueByNumber(val)); } } break; } // }}} // {{{ STRSXP case STRSXP: { /* in any case, fill the values up to field_size */ int i = 0; for (; i < field_size; i++) { std::string val = CHAR(STRING_ELT(value, i)); const GPB::EnumValueDescriptor* evd = enum_desc->FindValueByName(val); ref->SetRepeatedEnum(message, field_desc, i, evd); } /* then add some if needed */ if (value_size > field_size) { for (; i < value_size; i++) { std::string val = CHAR(STRING_ELT(value, i)); const GPB::EnumValueDescriptor* evd = enum_desc->FindValueByName(val); ref->AddEnum(message, field_desc, evd); } } break; } // }}} default: Rcpp::stop("cannot set enum value"); } } // }}} } } /** * set a message field to a new value * * @param pointer external pointer to a message * @param name name of the field, or an S4 FieldDescriptor object. * @param value new value for the field * * @return allways NULL, the message is modified by reference */ SEXP setMessageField(SEXP pointer, SEXP name, SEXP value) { BEGIN_RCPP RPB_DEBUG_BEGIN("setMessageField") PRINT_DEBUG_INFO("pointer", pointer); PRINT_DEBUG_INFO("name", name); PRINT_DEBUG_INFO("value", value); /* grab the Message pointer */ GPB::Message* message = GET_MESSAGE_POINTER_FROM_XP(pointer); /* check that we can get a file descriptor from name */ const GPB::FieldDescriptor* field_desc = getFieldDescriptor(message, name); const Reflection* ref = message->GetReflection(); if (value == R_NilValue || (Rf_isVector(value) && LENGTH(value) == 0)) { ref->ClearField(message, field_desc); return R_NilValue; } // {{{ preliminary checks R_xlen_t value_size = 1; if (Rf_isVector(value)) { if (IS_LONG_VEC(value)) { // field_size is an int, so presumably it would generate // a CHECK failure in protobuf code on 2^32 element anyway. Rcpp_error("Long vectors not supported for repeated fields."); } else { value_size = LENGTH(value); } } // if the R type is RAWSXP and the cpp type is string or bytes, // then value_size is actually one because the raw vector // is converted to a string GPB::FieldDescriptor::Type field_type = field_desc->type(); if (field_type == TYPE_STRING || field_type == TYPE_BYTES) { if (TYPEOF(value) == RAWSXP) { value_size = 1; } else if (TYPEOF(value) == STRSXP) { value_size = LENGTH(value); } else if (TYPEOF(value) == S4SXP && Rf_inherits(value, "Message")) { value_size = 1; /* we will store the message payload */ } else if (TYPEOF(value) == VECSXP && allAreMessages(value)) { value_size = LENGTH(value); } else if (TYPEOF(value) == VECSXP && allAreRaws(value)) { value_size = LENGTH(value); } else { Rcpp::stop("cannot convert to string"); } } // }}} if (field_desc->is_repeated()) { setRepeatedMessageField(message, ref, field_desc, value, value_size); } else { setNonRepeatedMessageField(message, ref, field_desc, value, value_size); } RPB_DEBUG_END("setMessageField") END_RCPP } RPB_FUNCTION_VOID_2(update_message, Rcpp::XPtr message, Rcpp::List list) { Rcpp::CharacterVector names = list.attr("names"); int n = list.size(); for (int i = 0; i < n; i++) { (void)setMessageField(message, names[i], list[i]); } } } // namespace rprotobuf RProtoBuf/src/wrapper_EnumValueDescriptor.cpp0000644000176200001440000000343212440004312021117 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- // wrapper_EnumValueDescriptor.h: R/C++ interface class library // // Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois // // This file is part of RProtoBuf. // // RProtoBuf is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RProtoBuf is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RProtoBuf. If not, see . #include "rprotobuf.h" #include "RcppMacros.h" namespace rprotobuf { #undef METHOD #define METHOD(__NAME__) RCPP_PP_CAT(EnumValueDescriptor__, __NAME__) RPB_XP_METHOD_0(METHOD(as_character), GPB::EnumValueDescriptor, DebugString) RPB_FUNCTION_1(S4_Message, METHOD(as_Message), Rcpp::XPtr d) { GPB::EnumValueDescriptorProto* message = new GPB::EnumValueDescriptorProto(); d->CopyTo(message); return S4_Message(message); } RPB_FUNCTION_2(std::string, METHOD(name), Rcpp::XPtr d, bool full) { return full ? d->full_name() : d->name(); } RPB_FUNCTION_1(int, METHOD(number), Rcpp::XPtr d) { return d->number(); } RPB_FUNCTION_1(S4_EnumDescriptor, METHOD(enum_type), Rcpp::XPtr d) { return S4_EnumDescriptor(d->type()); } #undef METHOD } // namespace rprotobuf RProtoBuf/src/lookup.cpp0000644000176200001440000001654713003435477014763 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "DescriptorPoolLookup.h" /* This uses the mechanism of the RObjectTables package see: http://www.omegahat.net/RObjectTables/ */ namespace rprotobuf { /** * Returns the R_UnboundValue */ SEXP R_getUnboundValue() { return (R_UnboundValue); } /** * @param name potential message type * @param canCache Can R cache this object * @param tb object table * * @return _TRUE_ if there is a message of the given type in the DescriptorPool */ Rboolean rProtoBufTable_exists(const char *const name, Rboolean *canCache, R_ObjectTable *tb) { #ifdef LOOKUP_DEBUG Rprintf(" >> rProtoBufTable_exists\n"); #endif if (tb->active == _FALSE_) return (_FALSE_); tb->active = _FALSE_; Rboolean val = _FALSE_; if (DescriptorPoolLookup::contains(name)) { /* first check the cache */ val = _TRUE_; } else { /* try the generated pool */ const GPB::DescriptorPool *pool = GPB::DescriptorPool::generated_pool(); if (pool->FindMessageTypeByName(name) || pool->FindEnumTypeByName(name) || pool->FindServiceByName(name) || pool->FindMethodByName(name) || pool->FindExtensionByName(name)) { DescriptorPoolLookup::add(name); val = _TRUE_; } else { /* try the runtime pool */ pool = DescriptorPoolLookup::pool(); if (pool->FindMessageTypeByName(name) || pool->FindEnumTypeByName(name) || pool->FindServiceByName(name) || pool->FindMethodByName(name) || pool->FindExtensionByName(name)) { DescriptorPoolLookup::add(name); val = _TRUE_; } } } tb->active = _TRUE_; return (val); } SEXP findSomething(const GPB::DescriptorPool *pool, const char *const name) { const GPB::Descriptor *desc = pool->FindMessageTypeByName(name); std::string name_string(name); if (desc) { /* message */ DescriptorPoolLookup::add(name_string); return S4_Descriptor(desc); } else { const GPB::EnumDescriptor *enum_desc = pool->FindEnumTypeByName(name_string); if (enum_desc) { /* enum */ DescriptorPoolLookup::add(name_string); return S4_EnumDescriptor(enum_desc); } else { const GPB::FieldDescriptor *extension_desc = pool->FindExtensionByName(name_string); if (extension_desc) { /* extension */ DescriptorPoolLookup::add(name_string); return S4_FieldDescriptor(extension_desc); } else { const GPB::ServiceDescriptor *service_desc = pool->FindServiceByName(name_string); if (service_desc) { DescriptorPoolLookup::add(name_string); return S4_ServiceDescriptor(service_desc); } else { const GPB::MethodDescriptor *method_desc = pool->FindMethodByName(name_string); if (method_desc) { DescriptorPoolLookup::add(name_string); return S4_MethodDescriptor(method_desc); } } } } } return R_NilValue; } /** * Returns a new "Descriptor" if there is such a message type * in the descriptor pool. NULL otherwise * * @param name message type name (without package path) * @param canCache * @param tb lookup table */ SEXP rProtoBufTable_get(const char *const name, Rboolean *canCache, R_ObjectTable *tb) { #ifdef LOOKUP_DEBUG Rprintf(" >> rProtoBufTable_get\n"); #endif if (tb->active == _FALSE_) return (R_UnboundValue); tb->active = _FALSE_; SEXP res_generated; SEXP res_runtime; int np = 0; /* first try the generated pool */ const GPB::DescriptorPool *pool = GPB::DescriptorPool::generated_pool(); res_generated = PROTECT(findSomething(pool, name)); np++; if (res_generated == R_NilValue) { /* try the runtime pool */ pool = DescriptorPoolLookup::pool(); res_runtime = PROTECT(findSomething(pool, name)); np++; } tb->active = _TRUE_; SEXP res = PROTECT((np == 2) ? res_runtime : res_generated); UNPROTECT(np + 1); if (res != R_NilValue) return res; return R_getUnboundValue(); // -Wall } /** * Does nothing. Not applicable */ int rProtoBufTable_remove(const char *const unused_name, R_ObjectTable *unused_tb) { #ifdef LOOKUP_DEBUG Rprintf(" >> rProtoBufTable_remove( %s) \n", unused_name); #endif Rf_error("cannot remove from protobuf descriptor pool"); return (0); // make -Wall happy } /** * Indicates if R can cache the variable name. * Currently allways return _FALSE_ * * @param name message type name * @param tb lookup table * @return allways _FALSE_ (for now) */ Rboolean rProtoBufTable_canCache(const char *const unused_name, R_ObjectTable *unused_tb) { #ifdef LOOKUP_DEBUG Rprintf(" >> rProtoBufTable_canCache\n"); #endif return (_FALSE_); } /** * Previously this function returned a stop() error, but this has side * effects such as preventing users from using '<<-' operator in any * scripts that include RProtoBuf. So instead, we now simply return * NULL to indicate assign is not possible on this lookup table * without giving such a hard error. */ SEXP rProtoBufTable_assign(const char *const unused_name, SEXP unused_value, R_ObjectTable *unused_tb) { #ifdef LOOKUP_DEBUG Rprintf(" >> rProtoBufTable_assign( %s ) \n", unused_name); #endif return (R_NilValue); // make -Wall happy } /** * Returns the list of classes known to be included in the * packages. * * @param tb lookup table */ SEXP rProtoBufTable_objects(R_ObjectTable *tb) { #ifdef LOOKUP_DEBUG Rprintf(" >> rProtoBufTable_objects\n"); #endif tb->active = _FALSE_; SEXP objects = PROTECT(DescriptorPoolLookup::getElements()); tb->active = _TRUE_; UNPROTECT(1); /* objects */ return (objects); } RcppExport SEXP newProtocolBufferLookup(SEXP possexp) { BEGIN_RCPP #ifdef LOOKUP_DEBUG Rprintf("\n"); #endif R_ObjectTable *tb; SEXP val, klass; tb = (R_ObjectTable *)malloc(sizeof(R_ObjectTable)); if (!tb) throw Rcpp::exception("cannot allocate space for an internal R object table"); tb->type = RPROTOBUF_LOOKUP; /* FIXME: not sure what this should be */ tb->cachedNames = NULL; tb->privateData = (void *)0; tb->exists = rProtoBufTable_exists; tb->get = rProtoBufTable_get; tb->remove = rProtoBufTable_remove; tb->assign = rProtoBufTable_assign; tb->objects = rProtoBufTable_objects; tb->canCache = rProtoBufTable_canCache; tb->onAttach = NULL; tb->onDetach = NULL; PROTECT(val = R_MakeExternalPtr(tb, Rf_install("UserDefinedDatabase"), R_NilValue)); PROTECT(klass = Rf_mkString("UserDefinedDatabase")); Rf_setAttrib(val, R_ClassSymbol, klass); UNPROTECT(2); /* val, klass */ #ifdef LOOKUP_DEBUG Rprintf("\n"); #endif Rcpp::Function fun("attach"); int pos = Rcpp::as(possexp); fun(val, Rcpp::Named("pos") = pos, Rcpp::Named("name") = "RProtoBuf:DescriptorPool"); // TODO(mstokely): Somewhere we should deallocate tb? If package is unattached? return (val); END_RCPP } } // namespace rprotobuf RProtoBuf/src/Makevars.win0000644000176200001440000000071114330220722015205 0ustar liggesusers# ProtoBuf Version VERSION = 3.8.0 RWINLIB = ../windows/protobuf-${VERSION} PKG_CPPFLAGS= -I$(RWINLIB)/include PKG_LIBS= -L$(RWINLIB)/lib${subst gcc,,${COMPILED_BY}}${R_ARCH} \ -L$(RWINLIB)/lib${R_ARCH}${CRT} -lprotobuf ## Make this C++17 so that clang will not complain about [[nodiscard]] in headers CXX_STD=CXX17 all: clean winlibs clean: rm -f $(OBJECTS) $(SHLIB) winlibs: "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" "../tools/winlibs.R" $(VERSION) RProtoBuf/src/ConnectionCopyingOutputStream.cpp0000644000176200001440000000107112440004312021441 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "ConnectionCopyingOutputStream.h" namespace rprotobuf { ConnectionCopyingOutputStream::ConnectionCopyingOutputStream(SEXP con) : con(con), writeBin("writeBin") {} bool ConnectionCopyingOutputStream::Write(const void* buffer, int size) { /* we need to take care of error handling */ Rcpp::RawVector payload(size); memcpy(payload.begin(), buffer, size); writeBin(payload, con); return true; } } RProtoBuf/src/RSourceTree.h0000644000176200001440000000125714535111776015315 0ustar liggesusers#ifndef RPROTOBUF_RSourceTree_H #define RPROTOBUF_RSourceTree_H namespace rprotobuf { class RSourceTree : public GPB::compiler::SourceTree { public: RSourceTree(); #if GOOGLE_PROTOBUF_VERSION < 4022000 GPB::io::ZeroCopyInputStream* Open(const std::string& filename); #else GPB::io::ZeroCopyInputStream* Open(absl::string_view filename); #endif void addDirectory(const std::string& directory); void addDirectories(SEXP dirs); void removeDirectory(const std::string& directory); void removeDirectories(SEXP dirs); void removeAllDirectories(); private: std::set directories; }; } // namespace rprotobuf #endif RProtoBuf/src/fieldtypes.h0000644000176200001440000000307512440004312015237 0ustar liggesusers#ifndef FIELD_TYPES_H #define FIELD_TYPES_H using namespace google::protobuf; #define TYPE_DOUBLE FieldDescriptor::TYPE_DOUBLE #define TYPE_FLOAT FieldDescriptor::TYPE_FLOAT #define TYPE_INT64 FieldDescriptor::TYPE_INT64 #define TYPE_UINT64 FieldDescriptor::TYPE_UINT64 #define TYPE_INT32 FieldDescriptor::TYPE_INT32 #define TYPE_FIXED64 FieldDescriptor::TYPE_FIXED64 #define TYPE_FIXED32 FieldDescriptor::TYPE_FIXED32 #define TYPE_BOOL FieldDescriptor::TYPE_BOOL #define TYPE_STRING FieldDescriptor::TYPE_STRING #define TYPE_GROUP FieldDescriptor::TYPE_GROUP #define TYPE_MESSAGE FieldDescriptor::TYPE_MESSAGE #define TYPE_BYTES FieldDescriptor::TYPE_BYTES #define TYPE_UINT32 FieldDescriptor::TYPE_UINT32 #define TYPE_ENUM FieldDescriptor::TYPE_ENUM #define TYPE_SFIXED32 FieldDescriptor::TYPE_SFIXED32 #define TYPE_SFIXED64 FieldDescriptor::TYPE_SFIXED64 #define TYPE_SINT32 FieldDescriptor::TYPE_SINT32 #define TYPE_SINT64 FieldDescriptor::TYPE_SINT64 #define MAX_TYPE FieldDescriptor::MAX_TYPE #define CPPTYPE_INT32 FieldDescriptor::CPPTYPE_INT32 #define CPPTYPE_INT64 FieldDescriptor::CPPTYPE_INT64 #define CPPTYPE_UINT32 FieldDescriptor::CPPTYPE_UINT32 #define CPPTYPE_UINT64 FieldDescriptor::CPPTYPE_UINT64 #define CPPTYPE_DOUBLE FieldDescriptor::CPPTYPE_DOUBLE #define CPPTYPE_FLOAT FieldDescriptor::CPPTYPE_FLOAT #define CPPTYPE_BOOL FieldDescriptor::CPPTYPE_BOOL #define CPPTYPE_ENUM FieldDescriptor::CPPTYPE_ENUM #define CPPTYPE_STRING FieldDescriptor::CPPTYPE_STRING #define CPPTYPE_MESSAGE FieldDescriptor::CPPTYPE_MESSAGE #define MAX_CPPTYPE FieldDescriptor::MAX_CPPTYPE #endif RProtoBuf/src/rprotobuf.h0000644000176200001440000002244313776225671015143 0ustar liggesusers// rprotobuf.h: R/C++ interface class library // // Copyright (C) 2009-2012 Dirk Eddelbuettel and Romain Francois // Copyright (C) 2012-2013 Dirk Eddelbuettel, Romain Francois and Murray Stokely // // This file is part of RProtoBuf. // // RProtoBuf is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RProtoBuf is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RProtoBuf. If not, see . #ifndef RPROTOBUF_H #define RPROTOBUF_H // TODO(mstokely): should we check if this header is available? #include #include // for strerror #include // g++-4.7 wants this #include // for string // O_BINARY does not exist on Unix/Linux, since there is no distinction // between text mode and binary mode files there, but if we ever got // this code running on Windows this would be needed. #ifndef O_BINARY #define O_BINARY 0 #endif #include #include #include #include #include #include #include #include #include #if GOOGLE_PROTOBUF_VERSION >= 3000000 #include #define PROTOBUF_JSON_UTIL #endif namespace GPB = google::protobuf; #define R_NO_REMAP /* we need to read and write to connections */ #define NEED_CONNECTION_PSTREAMS #include RCPP_ENUM_TRAITS(GPB::FieldDescriptor::Label) RCPP_ENUM_TRAITS(GPB::FieldDescriptor::CppType) RCPP_ENUM_TRAITS(GPB::FieldDescriptor::Type) // RCPP_TRAITS(GPB::int64,REALSXP) // RCPP_TRAITS(GPB::uint64,REALSXP) #include #include #include /* uncomment for debugging */ // #define RPB_DEBUG #ifdef RPB_DEBUG #define RPB_DEBUG_BEGIN(__WHAT__) Rprintf("<" #__WHAT__ ">\n"); #define RPB_DEBUG_END(__WHAT__) Rprintf("\n"); #else #define RPB_DEBUG_BEGIN(__WHAT__) #define RPB_DEBUG_END(__WHAT__) #endif // #define FIN_DBG(ptr, CLAZZ) // #define FIN_DBG(ptr, CLAZZ) Rprintf( "RProtoBuf finalizing %s (%p)\n", CLAZZ, // ptr ) #ifdef RPB_DEBUG #define PRINT_DEBUG_INFO(name, o) \ Rprintf(" %s [%d] = ", name, TYPEOF(o)); \ Rf_PrintValue(o); #else #define PRINT_DEBUG_INFO(name, o) #endif #define RPROTOBUF_LOOKUP 24 // #define LOOKUP_DEBUG /* FIXME : quick hack because just using TRUE and FALSE did not work in * lookup.cpp */ #define _TRUE_ (Rboolean) TRUE #define _FALSE_ (Rboolean) FALSE #define GET_MESSAGE_POINTER_FROM_XP(xp) (GPB::Message*) EXTPTR_PTR(xp) #define GET_MESSAGE_POINTER_FROM_S4(m) \ (GPB::Message*) EXTPTR_PTR(GET_SLOT(m, Rf_install("pointer"))) #define GET_DESCRIPTOR_POINTER_FROM_XP(xp) (GPB::Descriptor*) EXTPTR_PTR(xp) #define GET_DESCRIPTOR_POINTER_FROM_S4(m) \ (GPB::Descriptor*) EXTPTR_PTR(GET_SLOT(m, Rf_install("pointer"))) #define GET_FIELD_DESCRIPTOR_POINTER_FROM_XP(xp) (GPB::FieldDescriptor*) EXTPTR_PTR(xp) #define GET_FIELD_DESCRIPTOR_POINTER_FROM_S4(m) \ (GPB::FieldDescriptor*) EXTPTR_PTR(GET_SLOT(m, Rf_install("pointer"))) #define GET_ENUM_VALUE_DESCRIPTOR_POINTER_FROM_XP(xp) (GPB::EnumValueDescriptor*) EXTPTR_PTR(xp) #define GET_ENUM_VALUE_DESCRIPTOR_POINTER_FROM_S4(m) \ (GPB::EnumValueDescriptor*) EXTPTR_PTR(GET_SLOT(m, Rf_install("pointer"))) #define COPYSTRING(s) s #define THROW_SOCKET_ERROR(message) Rf_error("%s : %s", message, strerror(sockerrno)) #define XPP EXTPTR_PTR #define NEW_S4_OBJECT(CLAZZ) \ SEXP oo = PROTECT(NEW_OBJECT(MAKE_CLASS(CLAZZ))); \ if (!Rf_inherits(oo, CLAZZ)) Rcpp::stop(CLAZZ); namespace rprotobuf { typedef GPB::int32 int32; typedef GPB::uint32 uint32; typedef GPB::int64 int64; typedef GPB::uint64 uint64; /* in rprotobuf.cpp */ GPB::Message* PROTOTYPE(const GPB::Descriptor*); GPB::Message* CLONE(const GPB::Message*); RcppExport SEXP do_dollar_Descriptor(SEXP, SEXP); RcppExport SEXP newProtoMessage(SEXP); RcppExport SEXP getProtobufDescriptor(SEXP); RcppExport SEXP getExtensionDescriptor(SEXP); RcppExport SEXP readProtoFiles_cpp(SEXP, SEXP); RcppExport Rboolean isMessage(SEXP, const char*); RcppExport GPB::FieldDescriptor* getFieldDescriptor(const GPB::Message*, SEXP); /* in extractors.cpp */ RcppExport SEXP getMessageField(SEXP, SEXP); RcppExport SEXP extractFieldAsSEXP(const Rcpp::XPtr&, const GPB::FieldDescriptor*); /* in lookup.cpp */ RcppExport SEXP newProtocolBufferLookup(SEXP); /* in mutators.cpp */ RcppExport SEXP setMessageField(SEXP, SEXP, SEXP); int GET_int(SEXP, int); double GET_double(SEXP, int); float GET_float(SEXP, int); int32 GET_int32(SEXP, R_xlen_t); int64 GET_int64(SEXP, R_xlen_t); uint32 GET_uint32(SEXP, R_xlen_t); uint64 GET_uint64(SEXP, R_xlen_t); bool GET_bool(SEXP, R_xlen_t); std::string GET_stdstring(SEXP, R_xlen_t); std::string GET_bytes(SEXP, R_xlen_t); void CHECK_values_for_enum(const GPB::FieldDescriptor*, SEXP); void CHECK_messages(const GPB::FieldDescriptor*, SEXP); /* in wrapper_ServiceDescriptor.cpp */ RcppExport SEXP ServiceDescriptor_length(SEXP); RcppExport SEXP ServiceDescriptor_method_count(SEXP); RcppExport SEXP ServiceDescriptor_getMethodByIndex(SEXP, SEXP); RcppExport SEXP ServiceDescriptor_getMethodByName(SEXP, SEXP); /* in streams.cpp */ void ZeroCopyInputStreamWrapper_finalizer(SEXP); void ZeroCopyOutputStreamWrapper_finalizer(SEXP); RcppExport SEXP ZeroCopyInputStream_Next(SEXP); RcppExport SEXP ZeroCopyInputStream_BackUp(SEXP, SEXP); RcppExport SEXP ZeroCopyInputStream_ByteCount(SEXP); RcppExport SEXP ZeroCopyInputStream_Skip(SEXP, SEXP); RcppExport SEXP ZeroCopyInputStream_ReadRaw(SEXP, SEXP); RcppExport SEXP ZeroCopyInputStream_ReadString(SEXP, SEXP); RcppExport SEXP ZeroCopyInputStream_ReadVarint32(SEXP); RcppExport SEXP ZeroCopyInputStream_ReadVarint64(SEXP); RcppExport SEXP ZeroCopyInputStream_ReadLittleEndian32(SEXP); RcppExport SEXP ZeroCopyInputStream_ReadLittleEndian64(SEXP); RcppExport SEXP ZeroCopyOutputStream_Next(SEXP, SEXP); RcppExport SEXP ZeroCopyOutputStream_BackUp(SEXP, SEXP); RcppExport SEXP ZeroCopyOutputStream_ByteCount(SEXP); RcppExport SEXP ZeroCopyOutputStream_WriteRaw(SEXP, SEXP); RcppExport SEXP ZeroCopyOutputStream_WriteString(SEXP, SEXP); RcppExport SEXP ZeroCopyOutputStream_WriteLittleEndian32(SEXP, SEXP); RcppExport SEXP ZeroCopyOutputStream_WriteLittleEndian64(SEXP, SEXP); RcppExport SEXP ZeroCopyOutputStream_WriteVarint32(SEXP, SEXP); RcppExport SEXP ZeroCopyOutputStream_WriteVarint64(SEXP, SEXP); RcppExport SEXP FileOutputStream_new(SEXP, SEXP, SEXP); RcppExport SEXP FileOutputStream_Close(SEXP); RcppExport SEXP FileOutputStream_Flush(SEXP); RcppExport SEXP FileOutputStream_GetErrno(SEXP); RcppExport SEXP FileOutputStream_SetCloseOnDelete(SEXP, SEXP); RcppExport SEXP FileInputStream_new(SEXP, SEXP, SEXP); RcppExport SEXP FileInputStream_Close(SEXP); RcppExport SEXP FileInputStream_GetErrno(SEXP); RcppExport SEXP FileInputStream_SetCloseOnDelete(SEXP, SEXP); RcppExport SEXP ConnectionInputStream_new(SEXP, SEXP); RcppExport SEXP ConnectionOutputStream_new(SEXP, SEXP); /** * simple class that wraps together a ZeroCopyOutputStream * and its associated CodedOutputStream. Since we don't expose * CodedOutputStream at the R level, this allows to keep only one such * object with each ZeroCopyOutputStream */ class ZeroCopyOutputStreamWrapper { public: ZeroCopyOutputStreamWrapper(GPB::io::ZeroCopyOutputStream* stream); ~ZeroCopyOutputStreamWrapper(); GPB::io::ZeroCopyOutputStream* get_stream(); GPB::io::CodedOutputStream* get_coded_stream(); private: GPB::io::ZeroCopyOutputStream* stream; GPB::io::CodedOutputStream* coded_stream; }; /** * simple class that wraps together a ZeroCopyInputStream * and its associated CodedInputStream. Since we don't expose * CodedInputStream at the R level, this allows to keep only one such * object with each zero copy input stream */ class ZeroCopyInputStreamWrapper { public: ZeroCopyInputStreamWrapper(GPB::io::ZeroCopyInputStream* stream); ~ZeroCopyInputStreamWrapper(); GPB::io::ZeroCopyInputStream* get_stream(); GPB::io::CodedInputStream* get_coded_stream(); private: GPB::io::ZeroCopyInputStream* stream; GPB::io::CodedInputStream* coded_stream; }; } // namespace rprotobuf #include "S4_classes.h" #include "RconnectionCopyingInputStream.h" #define GET_ZCIS(xp) ((ZeroCopyInputStreamWrapper*)XPP(xp))->get_stream() #define GET_CIS(xp) ((ZeroCopyInputStreamWrapper*)XPP(xp))->get_coded_stream() #define GET_FIS(xp) (GPB::io::FileInputStream*)((ZeroCopyInputStreamWrapper*)XPP(xp))->get_stream() #define GET_ZCOS(xp) ((ZeroCopyOutputStreamWrapper*)XPP(xp))->get_stream() #define GET_COS(xp) ((ZeroCopyOutputStreamWrapper*)XPP(xp))->get_coded_stream() #define GET_FOS(xp) \ (GPB::io::FileOutputStream*)((ZeroCopyOutputStreamWrapper*)XPP(xp))->get_stream() #endif RProtoBuf/src/wrapper_Message.cpp0000644000176200001440000012125114535111776016567 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "fieldtypes.h" #include "RcppMacros.h" #define SAME(x, y, tol) ((tol == 0.0 && x == y) || (((x - y) * (x - y) < tol* tol) ? 1 : 0)) namespace rprotobuf { /* helpers */ /* this is only to be called for repeated fields */ int MESSAGE_GET_REPEATED_INT(const GPB::Message* message, const GPB::FieldDescriptor* field_desc, int index) { const GPB::Reflection* ref = message->GetReflection(); switch (field_desc->type()) { case TYPE_INT32: case TYPE_SINT32: case TYPE_SFIXED32: return (int)ref->GetRepeatedInt32(*message, field_desc, index); case TYPE_INT64: case TYPE_SINT64: case TYPE_SFIXED64: return (int)ref->GetRepeatedInt64(*message, field_desc, index); case TYPE_UINT32: case TYPE_FIXED32: return (int)ref->GetRepeatedUInt32(*message, field_desc, index); case TYPE_UINT64: case TYPE_FIXED64: return (int)ref->GetRepeatedUInt64(*message, field_desc, index); case TYPE_ENUM: return ref->GetRepeatedEnum(*message, field_desc, index)->number(); default: Rcpp_error("cannot cast to int"); } return 0; // Unreachable for -Wall } /* this is only to be called for repeated fields */ double MESSAGE_GET_REPEATED_DOUBLE(const GPB::Message* message, const GPB::FieldDescriptor* field_desc, int index) { const GPB::Reflection* ref = message->GetReflection(); switch (field_desc->type()) { case TYPE_FLOAT: return (double)ref->GetRepeatedFloat(*message, field_desc, index); case TYPE_DOUBLE: return (double)ref->GetRepeatedDouble(*message, field_desc, index); default: Rcpp_error("cannot cast to double"); } return 0; // -Wall } #undef METHOD #define METHOD(__NAME__) RCPP_PP_CAT(Message__, __NAME__) /** * Clone a message * * @param xp external pointer to a message * @return a new message, clone of the input message */ RPB_FUNCTION_1(S4_Message, METHOD(clone), Rcpp::XPtr message) { /* cloning message as sheep */ GPB::Message* sheep = message->New(); sheep->CopyFrom(*message); return S4_Message(sheep); } /** * TRUE if the message has the specified field name. * FALSE otherwise. * * * @param xp external pointer to the Message * @param name name of the field */ RPB_FUNCTION_2(bool, METHOD(field_exists), Rcpp::XPtr message, std::string name) { const GPB::Descriptor* desc = message->GetDescriptor(); const GPB::FieldDescriptor* field_desc = desc->FindFieldByName(name); return (field_desc != NULL); } /** * TRUE if the message has the field name and it is populated. * FALSE otherwise. * * @param xp external pointer to the Message * @param name name of the field */ RPB_FUNCTION_2(bool, METHOD(has_field), Rcpp::XPtr message, std::string name) { const GPB::Descriptor* desc = message->GetDescriptor(); const GPB::FieldDescriptor* field_desc = desc->FindFieldByName(name); bool res = false; if (field_desc) { const GPB::Reflection* ref = message->GetReflection(); if (field_desc->is_repeated()) { res = ref->FieldSize(*message, field_desc) > 0; } else { res = ref->HasField(*message, field_desc); } } return res; } /** * Check if all required fields are set * * @param xp external pointer to the Message */ RPB_FUNCTION_1(bool, METHOD(is_initialized), Rcpp::XPtr message) { return message->IsInitialized(); } /** * Serialize a message to a file * * @param xp external pointer to a GPB::Message* * @param filename file name where to serialize */ RPB_FUNCTION_VOID_2(METHOD(serialize_to_file), Rcpp::XPtr message, const char* filename) { /* open the file in binary mode to write */ /* we make sure in the R side that filename is the full path of the file */ int file = open(filename, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666); /* using partial to allow partially filled messages */ // TODO(mstokely): Check return value and throw Rcpp::stop if 0? message->SerializePartialToFileDescriptor(file); close(file); } /** * Create a raw vector that contains the content of the serialized message * * @param xp xternal pointer to the message */ RPB_FUNCTION_1(Rcpp::RawVector, METHOD(get_payload), Rcpp::XPtr message) { /* create a raw vector of the appropriate size */ #if GOOGLE_PROTOBUF_VERSION < 3006001 R_xlen_t size = message->ByteSize(); #else R_xlen_t size = message->ByteSizeLong(); #endif Rcpp::RawVector payload(size); /* fill the array */ message->SerializePartialToArray(payload.begin(), size); return (payload); } RPB_XP_METHOD_VOID_0(METHOD(clear), GPB::Message, Clear) /** * Clear a field of a message * * @param xp (GPB::Message*) external pointer * @param field name or tag of the field */ RPB_FUNCTION_VOID_2(METHOD(clear_field), Rcpp::XPtr m, SEXP field) { const GPB::FieldDescriptor* field_desc = getFieldDescriptor(m, field); const GPB::Reflection* ref = m->GetReflection(); ref->ClearField(m, field_desc); } /** * Return a named list representation of the fields set in a message. * * @param xp external pointer to a Message * @return the message as an R list */ RPB_FUNCTION_1(Rcpp::List, METHOD(as_list), Rcpp::XPtr message) { const GPB::Descriptor* desc = message->GetDescriptor(); int nf = desc->field_count(); Rcpp::CharacterVector fieldNames(nf); Rcpp::List val(nf); /* TODO: not use getMessageField */ for (int i = 0; i < nf; i++) { const GPB::FieldDescriptor* fd = desc->field(i); val[i] = getMessageField(message, Rcpp::CharacterVector::create(fd->name())); fieldNames[i] = fd->name(); } val.names() = fieldNames; return val; } /** * The number of fields the message has. A field counts in these two situations: * - it is repeated and the array size is greater than 0 * - it is not repeated and the message has it * * @param xp external pointer to the Message */ RPB_FUNCTION_1(int, METHOD(length), Rcpp::XPtr message) { const GPB::Descriptor* desc = message->GetDescriptor(); const GPB::Reflection* ref = message->GetReflection(); int nfields = desc->field_count(); int res = 0; for (int i = 0; i < nfields; i++) { const GPB::FieldDescriptor* field_desc = desc->field(i); if (field_desc->is_repeated()) { if (ref->FieldSize(*message, field_desc) > 0) { res++; } } else { if (ref->HasField(*message, field_desc)) { res++; } } } return res; } /** * The number of extensions the message has. * * @param xp external pointer to the Message */ RPB_FUNCTION_1(int, METHOD(num_extensions), Rcpp::XPtr message) { const GPB::Reflection* ref = message->GetReflection(); int nexts = 0; std::vector fields; ref->ListFields(*message, &fields); for (unsigned int i = 0; i < fields.size(); i++) { if (fields[i]->is_extension()) { nexts++; } } return nexts; } /** * Get the message descriptor of a Message. * * @param xp (GPB::Message*) external pointer * @return the descriptor, as a Descriptor R S4 object */ RPB_FUNCTION_1(S4_Descriptor, METHOD(descriptor), Rcpp::XPtr message) { return (message->GetDescriptor()); } RPB_XP_METHOD_0(METHOD(as_character), GPB::Message, DebugString) #if GOOGLE_PROTOBUF_VERSION < 3006001 RPB_XP_METHOD_0(METHOD(bytesize), GPB::Message, ByteSize) #else RPB_XP_METHOD_0(METHOD(bytesize), GPB::Message, ByteSizeLong) #endif RPB_FUNCTION_2(int, METHOD(field_size), Rcpp::XPtr message, SEXP field) { const GPB::FieldDescriptor* field_desc = getFieldDescriptor(message, field); int res = 0; if (field_desc->is_repeated()) { res = message->GetReflection()->FieldSize(*message, field_desc); } else { res = message->GetReflection()->HasField(*message, field_desc) ? 1 : 0; } return res; } RPB_FUNCTION_1(S4_FileDescriptor, METHOD(fileDescriptor), Rcpp::XPtr message) { return S4_FileDescriptor(message->GetDescriptor()->file()); } RPB_FUNCTION_VOID_3(METHOD(set_field_size), Rcpp::XPtr message, SEXP field, int target) { const GPB::FieldDescriptor* field_desc = getFieldDescriptor(message, field); const GPB::Reflection* ref = message->GetReflection(); if (field_desc->is_repeated()) { int current = ref->FieldSize(*message, field_desc); if (target == 0) { ref->ClearField(message, field_desc); } else if (current > target) { while (current != target) { ref->RemoveLast(message, field_desc); current--; } } else if (current == target) { /* nothing to do */ } else {/* current < target */ while (current != target) { switch (field_desc->type()) { case TYPE_INT32: case TYPE_SINT32: case TYPE_SFIXED32: { ref->AddInt32(message, field_desc, (int32)0); break; } case TYPE_INT64: case TYPE_SINT64: case TYPE_SFIXED64: { ref->AddInt64(message, field_desc, (int64)0); break; } case TYPE_UINT32: case TYPE_FIXED32: { ref->AddUInt32(message, field_desc, (uint32)0); break; } case TYPE_UINT64: case TYPE_FIXED64: { ref->AddUInt32(message, field_desc, (uint64)0); break; } case TYPE_DOUBLE: { ref->AddDouble(message, field_desc, (double)0.0); break; } case TYPE_FLOAT: { ref->AddFloat(message, field_desc, (float)0.0); break; } case TYPE_BOOL: { ref->AddBool(message, field_desc, (bool)0); break; } case TYPE_STRING: case TYPE_BYTES: { ref->AddString(message, field_desc, ""); break; } case TYPE_MESSAGE: case TYPE_GROUP: { /* fill with the prototype for that message type */ Rcpp_error("growing repeated messages not implemented, patches welcome"); break; } case TYPE_ENUM: { /* fill with the prototype for that message type */ Rcpp_error("growing repeated enums not implemented yet, patches welcome"); break; } } /* switch */ current++; } /* while */ } } else { if (target == 0) { if (ref->HasField(*message, field_desc)) { ref->ClearField(message, field_desc); } } else { if (!ref->HasField(*message, field_desc)) { switch (field_desc->type()) { case TYPE_INT32: case TYPE_SINT32: case TYPE_SFIXED32: { ref->SetInt32(message, field_desc, (int32)0); break; } case TYPE_INT64: case TYPE_SINT64: case TYPE_SFIXED64: { ref->SetInt64(message, field_desc, (int64)0); break; } case TYPE_UINT32: case TYPE_FIXED32: { ref->SetUInt32(message, field_desc, (uint32)0); break; } case TYPE_UINT64: case TYPE_FIXED64: { ref->SetUInt32(message, field_desc, (uint64)0); break; } case TYPE_DOUBLE: { ref->SetDouble(message, field_desc, (double)0.0); break; } case TYPE_FLOAT: { ref->SetFloat(message, field_desc, (float)0.0); break; } case TYPE_BOOL: { ref->SetBool(message, field_desc, (bool)0); break; } case TYPE_STRING: case TYPE_BYTES: { ref->SetString(message, field_desc, ""); break; } case TYPE_MESSAGE: case TYPE_GROUP: { /* fill with the prototype for that message type */ Rcpp_error("not implemented yet, patches welcome"); break; } case TYPE_ENUM: { /* fill with the prototype for that message type */ Rcpp_error("not implemented yet, patches welcome"); break; } } } } } } /** * Returns the field names of the message. * * @param xp external pointer to a Message * * @return field names, as an R character vector (STRSXP) */ RPB_FUNCTION_1(Rcpp::CharacterVector, METHOD(fieldNames), Rcpp::XPtr message) { const GPB::Descriptor* desc = message->GetDescriptor(); int nfields = desc->field_count(); Rcpp::CharacterVector res(nfields); for (int i = 0; i < nfields; i++) { res[i] = desc->field(i)->name(); } return (res); } /** * Returns the JSON representation of the message. * * @param xp external pointer to a Message * @param preserve_proto_field_names If FALSE (the default) convert field names to camelCase. * @param always_print_primitive_fields Whether to return the default value for missing primitive fields. (default false) * * @return JSON representation of the message as a single element R character vector (STRSXP) */ RPB_FUNCTION_3(Rcpp::CharacterVector, METHOD(as_json), Rcpp::XPtr message, bool preserve_proto_field_names, bool always_print_primitive_fields) { #ifdef PROTOBUF_JSON_UTIL GPB::util::JsonPrintOptions opts; opts.add_whitespace = true; opts.preserve_proto_field_names = preserve_proto_field_names; opts.always_print_primitive_fields = always_print_primitive_fields; std::string buf; #if GOOGLE_PROTOBUF_VERSION < 4022000 GPB::util::Status status = GPB::util::MessageToJsonString(*message, &buf, opts); #else absl::Status status = GPB::util::MessageToJsonString(*message, &buf, opts); #endif if (!status.ok()) { Rcpp::stop(status.ToString().c_str()); } Rcpp::CharacterVector res(1); res[0] = buf; return (res); #else Rcpp::stop( "The protobuf library you are using is too old for using JSON utility functions, " "please upgrade to version 3 or above."); #endif } bool identical_messages_(const GPB::Message* m1, const GPB::Message* m2, double tol) { const GPB::Descriptor* d1 = m1->GetDescriptor(); const GPB::Descriptor* d2 = m2->GetDescriptor(); /* first of all, check if this is the same message type */ if (d1 != d2) { return false; } const GPB::Reflection* ref = m2->GetReflection(); /* iterate field descriptors */ int nf = d1->field_count(); for (int i = 0; i < nf; i++) { const GPB::FieldDescriptor* field_desc = d1->field(i); if (field_desc->is_repeated()) { /* test if the size differs */ int fs1 = ref->FieldSize(*m1, field_desc); int fs2 = ref->FieldSize(*m2, field_desc); if (fs1 != fs2) return false; /* skip the field if it's unset in both messages */ if ((fs1 == 0) & (fs2 == 0)) continue; /* test all items */ switch (field_desc->type()) { case TYPE_INT32: case TYPE_SINT32: case TYPE_SFIXED32: { for (int j = 0; j < fs1; j++) { if (ref->GetRepeatedInt32(*m1, field_desc, j) != ref->GetRepeatedInt32(*m2, field_desc, j)) return false; } break; } case TYPE_INT64: case TYPE_SINT64: case TYPE_SFIXED64: { for (int j = 0; j < fs1; j++) { if (ref->GetRepeatedInt64(*m1, field_desc, j) != ref->GetRepeatedInt64(*m2, field_desc, j)) return false; } break; } case TYPE_UINT32: case TYPE_FIXED32: { for (int j = 0; j < fs1; j++) { if (ref->GetRepeatedUInt32(*m1, field_desc, j) != ref->GetRepeatedUInt32(*m2, field_desc, j)) return false; } break; } case TYPE_UINT64: case TYPE_FIXED64: { for (int j = 0; j < fs1; j++) { if (ref->GetRepeatedUInt64(*m1, field_desc, j) != ref->GetRepeatedUInt64(*m2, field_desc, j)) return false; } break; } case TYPE_DOUBLE: { for (int j = 0; j < fs1; j++) { if (!SAME(ref->GetRepeatedDouble(*m1, field_desc, j), ref->GetRepeatedDouble(*m2, field_desc, j), tol)) return false; } break; } case TYPE_FLOAT: { for (int j = 0; j < fs1; j++) { if (!SAME(ref->GetRepeatedFloat(*m1, field_desc, j), ref->GetRepeatedFloat(*m2, field_desc, j), tol)) return false; } break; } case TYPE_BOOL: { for (int j = 0; j < fs1; j++) { if (ref->GetRepeatedBool(*m1, field_desc, j) != ref->GetRepeatedBool(*m2, field_desc, j)) return false; } break; } case TYPE_STRING: case TYPE_BYTES: { for (int j = 0; j < fs1; j++) { if (ref->GetRepeatedString(*m1, field_desc, j) != ref->GetRepeatedString(*m2, field_desc, j)) return false; } break; } case TYPE_ENUM: { for (int j = 0; j < fs1; j++) { if (ref->GetRepeatedEnum(*m1, field_desc, j) != ref->GetRepeatedEnum(*m2, field_desc, j)) return false; } break; } case TYPE_MESSAGE: case TYPE_GROUP: { for (int j = 0; j < fs1; j++) { const GPB::Message* mm1 = &ref->GetRepeatedMessage(*m1, field_desc, j); const GPB::Message* mm2 = &ref->GetRepeatedMessage(*m2, field_desc, j); if (!identical_messages_(mm1, mm2, tol)) { return false; } } break; } default: Rcpp_error("unknown type"); } } else { /* skip the field if it's unset in both messages */ bool hf1 = ref->HasField(*m1, field_desc); bool hf2 = ref->HasField(*m2, field_desc); if (!hf1 & !hf2) continue; switch (field_desc->type()) { case TYPE_INT32: case TYPE_SINT32: case TYPE_SFIXED32: { if (ref->GetInt32(*m1, field_desc) != ref->GetInt32(*m2, field_desc)) return false; break; } case TYPE_INT64: case TYPE_SINT64: case TYPE_SFIXED64: { if (ref->GetInt64(*m1, field_desc) != ref->GetInt64(*m2, field_desc)) return false; break; } case TYPE_UINT32: case TYPE_FIXED32: { if (ref->GetUInt32(*m1, field_desc) != ref->GetUInt32(*m2, field_desc)) return false; break; } case TYPE_UINT64: case TYPE_FIXED64: { if (ref->GetUInt64(*m1, field_desc) != ref->GetUInt64(*m2, field_desc)) return false; break; } case TYPE_DOUBLE: { if (ref->GetDouble(*m1, field_desc) != ref->GetDouble(*m2, field_desc)) return false; break; } case TYPE_FLOAT: { if (ref->GetFloat(*m1, field_desc) != ref->GetFloat(*m2, field_desc)) return false; break; } case TYPE_BOOL: { if (ref->GetBool(*m1, field_desc) != ref->GetBool(*m2, field_desc)) return false; break; } case TYPE_STRING: case TYPE_BYTES: { if (ref->GetString(*m1, field_desc) != ref->GetString(*m2, field_desc)) return false; break; } case TYPE_ENUM: { if (ref->GetEnum(*m1, field_desc) != ref->GetEnum(*m2, field_desc)) return false; break; } case TYPE_MESSAGE: case TYPE_GROUP: { const GPB::Message* mm1 = &ref->GetMessage(*m1, field_desc); const GPB::Message* mm2 = &ref->GetMessage(*m2, field_desc); if (!identical_messages_(mm1, mm2, tol)) { return false; } break; } default: Rcpp_error("unknown type"); } } } /* finally */ return true; } RPB_FUNCTION_2(bool, identical_messages, Rcpp::XPtr m1, Rcpp::XPtr m2) { return identical_messages_(m1, m2, 0.0); } RPB_FUNCTION_3(bool, all_equal_messages, Rcpp::XPtr m1, Rcpp::XPtr m2, double tol) { return identical_messages_(m1, m2, tol); } RPB_FUNCTION_VOID_4(METHOD(swap), Rcpp::XPtr message, SEXP field, Rcpp::IntegerVector left, Rcpp::IntegerVector right) { GPB::FieldDescriptor* field_desc = getFieldDescriptor(message, field); const GPB::Reflection* ref = message->GetReflection(); if (!field_desc->is_repeated()) { throw std::range_error("swap can only be used with repeated fields"); } int n = LENGTH(left); /* we know that length(left) == length(right) */ for (int i = 0; i < n; i++) { ref->SwapElements(message, field_desc, left[i], right[i]); } } /** * Creates a new message by merging two messages of the same type. * * @param xp1 external pointer to a GPB::Message* * @param xp2 external pointer to a GPB::Message* * * @return a new message, as an R object of "Message" S4 class */ RPB_FUNCTION_2(S4_Message, METHOD(merge), Rcpp::XPtr m1, Rcpp::XPtr m2) { GPB::Message* merged = m1->New(); merged->MergeFrom(*m1); merged->MergeFrom(*m2); return S4_Message(merged); } /** * Add values to a repeated field. * * @param xp (GPB::Message*) external pointer * @param field field tag number or name * @param values values to append */ RPB_FUNCTION_VOID_3(METHOD(add_values), Rcpp::XPtr message, SEXP field, SEXP values) { const Reflection* ref = message->GetReflection(); const GPB::FieldDescriptor* field_desc = getFieldDescriptor(message, field); if (values == R_NilValue || LENGTH(values) == 0) { return; } if (field_desc->is_repeated()) { /* first check */ switch (field_desc->type()) { case TYPE_ENUM: { CHECK_values_for_enum(field_desc, values); break; } case TYPE_MESSAGE: case TYPE_GROUP: { CHECK_messages(field_desc, values); break; } default: { // nothing } } int value_size = LENGTH(values); /* then add the values */ switch (field_desc->type()) { // {{{ int32 case TYPE_INT32: case TYPE_SINT32: case TYPE_SFIXED32: { switch (TYPEOF(values)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { for (int i = 0; i < value_size; i++) { ref->AddInt32(message, field_desc, GET_int32(values, i)); } break; } default: Rcpp::stop("Cannot convert to int32"); } break; } // }}} // {{{ int64 case TYPE_INT64: case TYPE_SINT64: case TYPE_SFIXED64: { switch (TYPEOF(values)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: for (int i = 0; i < value_size; i++) { ref->AddInt64(message, field_desc, GET_int64(values, i)); } break; default: Rcpp::stop("Cannot convert to int64"); } break; } // }}} // {{{ uint32 case TYPE_UINT32: case TYPE_FIXED32: { switch (TYPEOF(values)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { for (int i = 0; i < value_size; i++) { ref->AddUInt32(message, field_desc, GET_uint32(values, i)); } break; } default: Rcpp::stop("Cannot convert to uint32"); } break; } // }}} // {{{ uint64 case TYPE_UINT64: case TYPE_FIXED64: { switch (TYPEOF(values)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { for (int i = 0; i < value_size; i++) { ref->AddUInt64(message, field_desc, GET_uint64(values, i)); } break; } default: Rcpp::stop("Cannot convert to int64"); } break; } // }}} // {{{ double case TYPE_DOUBLE: { switch (TYPEOF(values)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { for (int i = 0; i < value_size; i++) { ref->AddDouble(message, field_desc, GET_double(values, i)); } break; } default: Rcpp::stop("Cannot convert to double"); } break; } // }}} // {{{ float case TYPE_FLOAT: { switch (TYPEOF(values)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { for (int i = 0; i < value_size; i++) { ref->AddFloat(message, field_desc, GET_float(values, i)); } break; } default: Rcpp::stop("Cannot convert to float"); } break; } // }}} // {{{ bool case TYPE_BOOL: { switch (TYPEOF(values)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { for (int i = 0; i < value_size; i++) { ref->AddBool(message, field_desc, GET_bool(values, i)); } break; } default: Rcpp::stop("Cannot convert to bool"); } break; } // }}} // {{{ string case TYPE_STRING: { if (TYPEOF(values) == STRSXP) { for (int i = 0; i < value_size; i++) { ref->AddString(message, field_desc, COPYSTRING(CHAR(STRING_ELT(values, i)))); } } else { Rcpp::stop("Cannot convert to string"); } break; } // }}} // {{{ bytes case TYPE_BYTES: { if (TYPEOF(values) == RAWSXP) { ref->AddString(message, field_desc, GET_bytes(values, 0)); } else if (TYPEOF(values) == VECSXP) { for (int i = 0; i < value_size; i++) { ref->AddString(message, field_desc, GET_bytes(values, i)); } } else { Rcpp::stop("Cannot convert to bytes"); } break; } // }}} // {{{ message case TYPE_MESSAGE: case TYPE_GROUP: { if (TYPEOF(values) == VECSXP) { for (int i = 0; i < value_size; i++) { GPB::Message* mess = GET_MESSAGE_POINTER_FROM_S4(VECTOR_ELT(values, i)); /* we already know it is of the correct type because of premptive check above */ ref->AddMessage(message, field_desc)->CopyFrom(*mess); } } else { Rcpp::stop("type mismatch, expecting a list of 'Message' objects"); } break; } // }}} // {{{ enum case TYPE_ENUM: { const GPB::EnumDescriptor* enum_desc = field_desc->enum_type(); switch (TYPEOF(values)) { // {{{ numbers case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { for (int i = 0; i < value_size; i++) { int val = GET_int(values, i); ref->AddEnum(message, field_desc, enum_desc->FindValueByNumber(val)); } break; } // }}} // {{{ STRSXP case STRSXP: { for (int i = 0; i < value_size; i++) { std::string val = CHAR(STRING_ELT(values, i)); const GPB::EnumValueDescriptor* evd = enum_desc->FindValueByName(val); ref->AddEnum(message, field_desc, evd); } break; } // }}} default: Rcpp::stop("cannot set enum value"); } break; } // }}} default: { // nothing } } } else { Rcpp::stop("add can only be used on repeated fields"); } } /** * Fetch a subset of the values of a field. * * @param (GPB::Message*) external pointer * @param field name or tag number of the field * @param index */ RPB_FUNCTION_3(SEXP, METHOD(get_field_values), Rcpp::XPtr message, SEXP field, Rcpp::IntegerVector index) { GPB::FieldDescriptor* field_desc = getFieldDescriptor(message, field); if (!field_desc->is_repeated()) { Rcpp_error("fetch can only be used on repeated fields"); } int n = index.size(); switch (field_desc->type()) { case TYPE_INT32: case TYPE_SINT32: case TYPE_SFIXED32: case TYPE_INT64: case TYPE_SINT64: case TYPE_SFIXED64: case TYPE_UINT32: case TYPE_FIXED32: case TYPE_UINT64: case TYPE_FIXED64: case TYPE_ENUM: { Rcpp::IntegerVector res(n); for (int i = 0; i < n; i++) { res[i] = MESSAGE_GET_REPEATED_INT(message, field_desc, index[i]); } return res; } case TYPE_DOUBLE: case TYPE_FLOAT: { Rcpp::NumericVector res(n); for (int i = 0; i < n; i++) { res[i] = MESSAGE_GET_REPEATED_DOUBLE(message, field_desc, index[i]); } return res; } case TYPE_BOOL: { Rcpp::LogicalVector res(n); for (int i = 0; i < n; i++) { res[i] = MESSAGE_GET_REPEATED_DOUBLE(message, field_desc, index[i]); } return res; } case TYPE_STRING: { const GPB::Reflection* ref = message->GetReflection(); Rcpp::CharacterVector res(n); for (int i = 0; i < n; i++) { res[i] = ref->GetRepeatedString(*message, field_desc, index[i]); } return res; } case TYPE_BYTES: { const GPB::Reflection* ref = message->GetReflection(); Rcpp::List res(n); for (int i = 0; i < n; i++) { std::string s = ref->GetRepeatedString(*message, field_desc, index[i]); res[i] = std::vector(s.begin(), s.end()); } return res; } case TYPE_MESSAGE: case TYPE_GROUP: { const GPB::Reflection* ref = message->GetReflection(); Rcpp::List res(n); for (int i = 0; i < n; i++) { res[i] = S4_Message(CLONE(&ref->GetRepeatedMessage(*message, field_desc, index[i]))); } return res; } default: throw std::range_error("unknown type"); } return R_NilValue; // Unreachable. For -Wall } /** * set the values of a repeated field * * @param xp (GPB::Message*) external pointer * @param field field tag number or name * @param index positions (0-based) * @param values new values */ RPB_FUNCTION_VOID_4(METHOD(set_field_values), Rcpp::XPtr message, SEXP field, Rcpp::IntegerVector index, SEXP values) { const GPB::FieldDescriptor* field_desc = getFieldDescriptor(message, field); if (!field_desc->is_repeated()) { throw std::range_error("set can only be used on repeated fields"); } const GPB::Reflection* ref = message->GetReflection(); /* we know here that LENGTH(index) == LENGTH(values) */ int n = index.size(); switch (field_desc->type()) { case TYPE_INT32: case TYPE_SINT32: case TYPE_SFIXED32: { for (int i = 0; i < n; i++) { ref->SetRepeatedInt32(message, field_desc, index[i], GET_int32(values, i)); } break; } case TYPE_INT64: case TYPE_SINT64: case TYPE_SFIXED64: { for (int i = 0; i < n; i++) { ref->SetRepeatedInt64(message, field_desc, index[i], GET_int64(values, i)); } break; } case TYPE_UINT32: case TYPE_FIXED32: { for (int i = 0; i < n; i++) { ref->SetRepeatedUInt32(message, field_desc, GET_int(index, i), GET_uint32(values, i)); } break; } case TYPE_UINT64: case TYPE_FIXED64: { for (int i = 0; i < n; i++) { ref->SetRepeatedUInt64(message, field_desc, index[i], GET_uint64(values, i)); } break; } case TYPE_DOUBLE: { for (int i = 0; i < n; i++) { ref->SetRepeatedDouble(message, field_desc, index[i], GET_double(values, i)); } break; } case TYPE_FLOAT: { for (int i = 0; i < n; i++) { ref->SetRepeatedFloat(message, field_desc, index[i], GET_float(values, i)); } break; } case TYPE_BOOL: { for (int i = 0; i < n; i++) { ref->SetRepeatedBool(message, field_desc, index[i], GET_bool(values, i)); } break; } case TYPE_STRING: { for (int i = 0; i < n; i++) { ref->SetRepeatedString(message, field_desc, index[i], GET_stdstring(values, i)); } break; } case TYPE_BYTES: { for (int i = 0; i < n; i++) { ref->SetRepeatedString(message, field_desc, index[i], GET_bytes(values, i)); } break; } case TYPE_ENUM: { CHECK_values_for_enum(field_desc, values); const GPB::EnumDescriptor* enum_desc = field_desc->enum_type(); switch (TYPEOF(values)) { case INTSXP: case REALSXP: case LGLSXP: case RAWSXP: { for (int i = 0; i < n; i++) { int val = GET_int(values, i); ref->SetRepeatedEnum(message, field_desc, i, enum_desc->FindValueByNumber(val)); } break; } case STRSXP: { Rcpp::CharacterVector vals(values); std::string val; for (int i = 0; i < n; i++) { val = vals[i]; const GPB::EnumValueDescriptor* evd = enum_desc->FindValueByName(val); ref->SetRepeatedEnum(message, field_desc, i, evd); } break; } default: throw std::range_error("impossible to convert to a enum"); } break; } case TYPE_MESSAGE: case TYPE_GROUP: { CHECK_messages(field_desc, values); Rcpp::List vals(values); for (int i = 0; i < n; i++) { GPB::Message* mess = GET_MESSAGE_POINTER_FROM_S4(vals[i]); ref->MutableRepeatedMessage(message, field_desc, i)->CopyFrom(*mess); } break; } default: throw std::range_error("unknown type"); } } //#undef METHOD /** * Return the TextFormat of message * @param xp external pointer to the Message */ RPB_FUNCTION_1(std::string, METHOD(print_text_format), Rcpp::XPtr message) { std::string message_text; GPB::TextFormat::PrintToString(*message, &message_text); return message_text; } } RProtoBuf/src/wrapper_Descriptor.cpp0000644000176200001440000002531514535111776017325 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "RcppMacros.h" namespace rprotobuf { #undef METHOD #define METHOD(__NAME__) RCPP_PP_CAT(Descriptor__, __NAME__) RPB_XP_METHOD_0(METHOD(as_character), GPB::Descriptor, DebugString) RPB_XP_METHOD_0(METHOD(field_count), GPB::Descriptor, field_count) RPB_XP_METHOD_0(METHOD(nested_type_count), GPB::Descriptor, nested_type_count) RPB_XP_METHOD_0(METHOD(enum_type_count), GPB::Descriptor, enum_type_count) RPB_XP_METHOD_CAST_0(METHOD(containing_type), GPB::Descriptor, containing_type, S4_Descriptor) /** * returns the names of the members contained in the descriptor * (nested types, enums, fields) * * @param xp external pointer to a Descriptor * * @return member names, as an R character vector (STRSXP) */ RPB_FUNCTION_1(Rcpp::CharacterVector, METHOD(getMemberNames), Rcpp::XPtr desc) { int nfields = desc->field_count(); int ntypes = desc->nested_type_count(); int nenums = desc->enum_type_count(); Rcpp::CharacterVector res(nfields + ntypes + nenums); int j = 0; for (int i = 0; i < nfields; i++, j++) { res[j] = desc->field(i)->name(); } for (int i = 0; i < ntypes; i++, j++) { res[j] = desc->nested_type(i)->name(); } for (int i = 0; i < nenums; i++, j++) { res[j] = desc->enum_type(i)->name(); } return (res); } /** * @param xp external pointer to a Descriptor * @return the descriptor as an R list */ RPB_FUNCTION_1(Rcpp::List, METHOD(as_list), Rcpp::XPtr desc) { int nfields = desc->field_count(); int ntypes = desc->nested_type_count(); int nenums = desc->enum_type_count(); int n = nfields + ntypes + nenums; Rcpp::CharacterVector names(n); Rcpp::List res(n); int cnt = 0; for (int i = 0; i < nfields; cnt++, i++) { const GPB::FieldDescriptor* fd = desc->field(i); res[cnt] = S4_FieldDescriptor(fd); names[cnt] = fd->name(); } for (int i = 0; i < ntypes; cnt++, i++) { const GPB::Descriptor* d = desc->nested_type(i); res[cnt] = S4_Descriptor(d); names[cnt] = d->name(); } for (int i = 0; i < nenums; cnt++, i++) { const GPB::EnumDescriptor* ed = desc->enum_type(i); res[cnt] = S4_EnumDescriptor(ed); names[cnt] = ed->name(); } res.names() = names; return res; } RPB_FUNCTION_1(S4_Message, METHOD(as_Message), Rcpp::XPtr d) { GPB::DescriptorProto* message = new GPB::DescriptorProto(); d->CopyTo(message); return message; } RPB_FUNCTION_2(S4_FieldDescriptor, METHOD(field), Rcpp::XPtr d, int i) { return d->field(i); } RPB_FUNCTION_2(S4_FieldDescriptor, METHOD(FindFieldByNumber), Rcpp::XPtr d, int num) { return d->FindFieldByNumber(num); } RPB_FUNCTION_2(S4_FieldDescriptor, METHOD(FindFieldByName), Rcpp::XPtr d, std::string nam) { return d->FindFieldByName(nam); } RPB_FUNCTION_2(S4_Descriptor, METHOD(nested_type), Rcpp::XPtr d, int i) { return d->nested_type(i); } RPB_FUNCTION_2(S4_Descriptor, METHOD(FindNestedTypeByName), Rcpp::XPtr d, std::string nam) { return d->FindNestedTypeByName(nam); } RPB_FUNCTION_2(S4_EnumDescriptor, METHOD(enum_type), Rcpp::XPtr d, int i) { return d->enum_type(i); } // FIXME: two methods cant have the same name // RPB_FUNCTION_2( S4_EnumDescriptor, METHOD(enum_type), // Rcpp::XPtr d, std::string name){ // return d->FindEnumTypeByName( i ) ; // } RPB_FUNCTION_1(S4_FileDescriptor, METHOD(fileDescriptor), Rcpp::XPtr desc) { return S4_FileDescriptor(desc->file()); } RPB_FUNCTION_2(std::string, METHOD(name), Rcpp::XPtr d, bool full) { return full ? d->full_name() : d->name(); } RPB_FUNCTION_2(S4_Message, METHOD(readMessageFromFile), Rcpp::XPtr desc, std::string filename) { /* open the file to read in binary mode */ int file = open(filename.c_str(), O_RDONLY | O_BINARY); /* create a prototype of the message we are going to read */ GPB::Message* message = PROTOTYPE(desc); if (!message) { throw std::range_error("could not call factory->GetPrototype(desc)->New()"); } /* read the message from the file */ // TODO(mstokely): Check return value! message->ParsePartialFromFileDescriptor(file); close(file); return (S4_Message(message)); } RPB_FUNCTION_2(S4_Message, METHOD(readMessageFromConnection), Rcpp::XPtr desc, int conn_id) { RconnectionCopyingInputStream wrapper(conn_id); GPB::io::CopyingInputStreamAdaptor stream(&wrapper); GPB::io::CodedInputStream coded_stream(&stream); /* create a prototype of the message we are going to read */ GPB::Message* message = PROTOTYPE(desc); if (!message) { throw std::range_error("could not call factory->GetPrototype(desc)->New()"); } // TODO(mstokely): Check return value! message->ParsePartialFromCodedStream(&coded_stream); S4_Message res(message); return res; } RPB_FUNCTION_2(S4_Message, METHOD(readMessageFromRawVector), Rcpp::XPtr desc, Rcpp::RawVector raw) { GPB::io::ArrayInputStream ais((void*)raw.begin(), raw.size()); GPB::io::CodedInputStream stream(&ais); GPB::Message* message = PROTOTYPE(desc); if (!message) { throw std::range_error("could not call factory->GetPrototype(desc)->New()"); } message->MergePartialFromCodedStream(&stream); return (S4_Message(message)); } RPB_FUNCTION_3(S4_Message, METHOD(readASCIIFromString), Rcpp::XPtr desc, std::string input, bool partial) { GPB::Message* message = PROTOTYPE(desc); if (partial) { // Allow partial messages where object is not fully initialized GPB::TextFormat::Parser parser; parser.AllowPartialMessage(partial); if (parser.ParseFromString(input, message)) { return (S4_Message(message)); } else { throw std::range_error("Could not parse ASCII protocol buffer from text string."); } } else { // Default parser requires fully initialized ascii messages. if (GPB::TextFormat::ParseFromString(input, message)) { return (S4_Message(message)); } else { throw std::range_error("Could not parse ASCII protocol buffer from text string." " Consider setting partial=TRUE"); } } } RPB_FUNCTION_3(S4_Message, METHOD(readASCIIFromConnection), Rcpp::XPtr desc, int conn_id, bool partial) { RconnectionCopyingInputStream wrapper(conn_id); GPB::io::CopyingInputStreamAdaptor stream(&wrapper); /* create a prototype of the message we are going to read */ GPB::Message* message = PROTOTYPE(desc); if (!message) { throw std::range_error("could not call factory->GetPrototype(desc)->New()"); } if (partial) { // Allow partial messages where object is not fully initialized GPB::TextFormat::Parser parser; parser.AllowPartialMessage(partial); if (!parser.Parse(&stream, message)) { throw std::range_error("Could not parse ASCII protocol buffer."); } } else { // Default parser requires fully initialized ascii messages. if (!GPB::TextFormat::Parse(&stream, message)) { throw std::range_error("Could not parse ASCII protocol buffer."); } } if (wrapper.Failure()) { throw std::range_error("Could not read ASCII protocol buffer."); } return (S4_Message(message)); } RPB_FUNCTION_2(S4_Message, METHOD(readJSONFromString), Rcpp::XPtr desc, std::string input) { #ifdef PROTOBUF_JSON_UTIL GPB::Message* message = PROTOTYPE(desc); if (!message) { Rcpp::stop("could not call factory->GetPrototype(desc)->New()"); } #if GOOGLE_PROTOBUF_VERSION < 4022000 GPB::util::Status status = GPB::util::JsonStringToMessage(input, message); #else absl::Status status = GPB::util::JsonStringToMessage(input, message); #endif if (!status.ok()) { Rcpp::stop(status.ToString().c_str()); } return (S4_Message(message)); #else Rcpp::stop( "The protobuf library you are using is too old for using JSON utility functions, " "please upgrade to version 3 or above."); #endif } RPB_FUNCTION_2(S4_Message, METHOD(readJSONFromConnection), Rcpp::XPtr desc, int conn_id) { #ifdef PROTOBUF_JSON_UTIL std::string json_string; RconnectionCopyingInputStream wrapper(conn_id); GPB::io::CopyingInputStreamAdaptor stream(&wrapper); const void* buffer; int size; while (stream.Next(&buffer, &size)) { json_string.append((char *) buffer, size); } if (wrapper.Failure()) { Rcpp::stop("Could not read JSON protocol buffer."); } /* create a prototype of the message we are going to read */ GPB::Message* message = PROTOTYPE(desc); if (!message) { Rcpp::stop("could not call factory->GetPrototype(desc)->New()"); } #if GOOGLE_PROTOBUF_VERSION < 4022000 GPB::util::Status status = GPB::util::JsonStringToMessage(json_string, message); #else absl::Status status = GPB::util::JsonStringToMessage(json_string, message); #endif if (!status.ok()) { Rcpp::stop(status.ToString().c_str()); } return (S4_Message(message)); #else Rcpp::stop( "The protobuf library you are using is too old for using JSON utility functions, " "please upgrade to version 3 or above."); #endif } RcppExport SEXP Descriptor_getField(SEXP pointer, SEXP name) { GPB::FieldDescriptor* field_desc = (GPB::FieldDescriptor*)0; BEGIN_RCPP std::string error_message = "could not get FieldDescriptor for field"; SEXP retVal = R_NilValue; switch (TYPEOF(name)) { case CHARSXP: case STRSXP: // This tries to get the field by name for various types of descriptors. retVal = do_dollar_Descriptor(pointer, name); if (retVal == R_NilValue) { error_message = "Unknown field"; } else { return retVal; } break; default: { error_message = "Invalid type for get field extractor."; break; } } if (!field_desc) { Rcpp::stop(error_message.c_str()); } return S4_FieldDescriptor(field_desc); VOID_END_RCPP return S4_FieldDescriptor(field_desc); } #undef METHOD } // namespace rprotobuf RProtoBuf/src/ZeroCopyInputStreamWrapper.cpp0000644000176200001440000000136112440004312020725 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" namespace rprotobuf { ZeroCopyInputStreamWrapper::ZeroCopyInputStreamWrapper(GPB::io::ZeroCopyInputStream* stream) : stream(stream) { coded_stream = new GPB::io::CodedInputStream(stream); } ZeroCopyInputStreamWrapper::~ZeroCopyInputStreamWrapper() { try { /* first clear the coded stream */ delete coded_stream; /* then the stream itself */ delete stream; } catch (...) { } } GPB::io::ZeroCopyInputStream* ZeroCopyInputStreamWrapper::get_stream() { return stream; } GPB::io::CodedInputStream* ZeroCopyInputStreamWrapper::get_coded_stream() { return coded_stream; } } // namespace rprotobuf RProtoBuf/src/Makevars.ucrt0000644000176200001440000000043014552473204015376 0ustar liggesusersifeq (,$(shell pkg-config --version 2>/dev/null)) PKG_LIBS = -lprotobuf else PKG_LIBS = $(shell pkg-config --libs protobuf) endif ## Make this C++17 so that clang will not complain about [[nodiscard]] in headers CXX_STD=CXX17 all: clean clean: rm -f $(OBJECTS) $(SHLIB) RProtoBuf/src/S4_classes.h0000644000176200001440000001704113144557350015111 0ustar liggesusers// S4_classes.h: R/C++ interface class library // // Copyright (C) 2010 - 2017 Dirk Eddelbuettel and Romain Francois // // This file is part of RProtoBuf. // // RProtoBuf is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // RProtoBuf is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with RProtoBuf. If not, see . #ifndef RPROTOBUF_S4CLASSES_H #define RPROTOBUF_S4CLASSES_H //1. Place using Rcpp::S4; somewhere in the top of S4_classes.h in the //src directory (so S4 is looked up in the right place), //2. Replace setSEXP with set__, and asSexp with get__. namespace rprotobuf { // deal with Rcpp API changes #if defined(RCPP_VERSION) && RCPP_VERSION <= Rcpp_Version(0,10,6) #define SetSexp setSEXP #define AsSexp asSexp #else #define SetSexp set__ #define AsSexp get__ #endif using Rcpp::S4; class ZeroCopyInputStreamWrapper; class ZeroCopyOutputStreamWrapper; class S4_EnumValueDescriptor : public Rcpp::S4 { public: S4_EnumValueDescriptor(const GPB::EnumValueDescriptor* d) : S4("EnumValueDescriptor") { slot("pointer") = Rcpp::XPtr( const_cast(d), false); if (d) { slot("name") = d->name(); slot("full_name") = d->full_name(); } else { slot("name") = Rcpp::StringVector(0); slot("full_name") = Rcpp::StringVector(0); } } S4_EnumValueDescriptor(const S4_EnumValueDescriptor& other) : S4() { SetSexp(other.AsSexp()); } S4_EnumValueDescriptor& operator=(const S4_EnumValueDescriptor& other) { SetSexp(other.AsSexp()); return *this; } }; class S4_Descriptor : public Rcpp::S4 { public: S4_Descriptor(const GPB::Descriptor* d) : S4("Descriptor") { slot("pointer") = Rcpp::XPtr(const_cast(d), false); if (!d) { slot("type") = Rcpp::StringVector(0); } else { slot("type") = d->full_name(); } } S4_Descriptor(const S4_Descriptor& other) : S4() { SetSexp(other.AsSexp()); } S4_Descriptor& operator=(const S4_Descriptor& other) { SetSexp(other.AsSexp()); return *this; } }; class S4_FileDescriptor : public Rcpp::S4 { public: S4_FileDescriptor(const GPB::FileDescriptor* d) : S4("FileDescriptor") { slot("pointer") = Rcpp::XPtr(const_cast(d), false); if (!d) { slot("package") = Rcpp::StringVector(0); slot("filename") = Rcpp::StringVector(0); } else { slot("package") = d->package(); slot("filename") = d->name(); } } S4_FileDescriptor(const S4_FileDescriptor& other) : S4() { SetSexp(other.AsSexp()); } S4_FileDescriptor& operator=(const S4_FileDescriptor& other) { SetSexp(other.AsSexp()); return *this; } }; class S4_FieldDescriptor : public Rcpp::S4 { public: S4_FieldDescriptor(const GPB::FieldDescriptor* d) : S4("FieldDescriptor") { slot("pointer") = Rcpp::XPtr(const_cast(d), false); slot("name") = d->name(); slot("full_name") = d->full_name(); slot("type") = d->containing_type()->full_name(); } S4_FieldDescriptor(const S4_FieldDescriptor& other) : S4() { SetSexp(other.AsSexp()); } S4_FieldDescriptor& operator=(const S4_FieldDescriptor& other) { SetSexp(other.AsSexp()); return *this; } }; class S4_ServiceDescriptor : public Rcpp::S4 { public: S4_ServiceDescriptor(const GPB::ServiceDescriptor* d) : S4("ServiceDescriptor") { slot("pointer") = Rcpp::XPtr(const_cast(d), false); } S4_ServiceDescriptor(const S4_ServiceDescriptor& other) : S4() { SetSexp(other.AsSexp()); } S4_ServiceDescriptor& operator=(const S4_ServiceDescriptor& other) { SetSexp(other.AsSexp()); return *this; } }; class S4_MethodDescriptor : public Rcpp::S4 { public: S4_MethodDescriptor(const GPB::MethodDescriptor* d) : S4("MethodDescriptor") { slot("pointer") = Rcpp::XPtr(const_cast(d), false); } S4_MethodDescriptor(const S4_MethodDescriptor& other) : S4() { SetSexp(other.AsSexp()); } S4_MethodDescriptor& operator=(const S4_MethodDescriptor& other) { SetSexp(other.AsSexp()); return *this; } }; class S4_EnumDescriptor : public Rcpp::S4 { public: S4_EnumDescriptor(const GPB::EnumDescriptor* d) : S4("EnumDescriptor") { slot("pointer") = Rcpp::XPtr(const_cast(d), false); slot("type") = Rcpp::StringVector(0); if (d) { slot("name") = d->name(); slot("full_name") = d->full_name(); const GPB::Descriptor* type_desc = d->containing_type(); if (type_desc) { slot("type") = type_desc->full_name(); } } else { slot("name") = Rcpp::StringVector(0); slot("full_name") = Rcpp::StringVector(0); } } S4_EnumDescriptor(const S4_EnumDescriptor& other) : S4() { SetSexp(other.AsSexp()); } S4_EnumDescriptor& operator=(const S4_EnumDescriptor& other) { SetSexp(other.AsSexp()); return *this; } }; class S4_Message : public Rcpp::S4 { public: S4_Message(const GPB::Message* d) : S4("Message") { slot("pointer") = Rcpp::XPtr(const_cast(d), true); slot("type") = d->GetDescriptor()->full_name(); } S4_Message(const S4_Message& other) : S4() { SetSexp(other.AsSexp()); } S4_Message& operator=(const S4_Message& other) { SetSexp(other.AsSexp()); return *this; } }; class S4_ArrayOutputStream : public Rcpp::S4 { public: S4_ArrayOutputStream(int size, int block_size) : S4("ArrayOutputStream") { Rcpp::RawVector payload(size); GPB::io::ArrayOutputStream* stream = new GPB::io::ArrayOutputStream(payload.begin(), size, block_size); Rcpp::XPtr wrapper(new ZeroCopyOutputStreamWrapper(stream), true, R_NilValue, payload); slot("pointer") = wrapper; } S4_ArrayOutputStream(const S4_ArrayOutputStream& other) : S4(other) { SetSexp(other.AsSexp()); } S4_ArrayOutputStream& operator=(const S4_ArrayOutputStream& other) { SetSexp(other.AsSexp()); return *this; } }; class S4_ArrayInputStream : public Rcpp::S4 { public: S4_ArrayInputStream(Rcpp::RawVector payload, int block_size) : S4("ArrayInputStream") { GPB::io::ArrayInputStream* stream = new GPB::io::ArrayInputStream(payload.begin(), payload.size(), block_size); Rcpp::XPtr wrapper( new ZeroCopyInputStreamWrapper(stream), true, R_NilValue, payload); slot("pointer") = wrapper; } }; #undef SetSexp #undef AsSexp } // namespace rprotobuf #endif RProtoBuf/src/extensions.cpp0000644000176200001440000000356713057365267015657 0ustar liggesusers/* -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- * Copyright 2012 Google Inc. All Rights Reserved. * Author: Murray Stokely * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301, USA. * */ #include "rprotobuf.h" #include "Rcppsupport.h" namespace rprotobuf { RcppExport SEXP getExtension_cpp(SEXP pointer, SEXP sfielddesc) { /* grab the Message pointer */ Rcpp::XPtr message(pointer); const GPB::Reflection* ref = message->GetReflection(); const GPB::FieldDescriptor* field_desc = GET_FIELD_DESCRIPTOR_POINTER_FROM_S4(sfielddesc); // extractFieldAsSEXP returns a default (e.g. 0) even when // field doesn't exist, but returning NULL probably makes more // sense. // // TODO(mstokely): move this logic into extractField so that // all fields get this updated behavior, not just extensions. if (field_desc->is_repeated()) { if (ref->FieldSize(*message, field_desc) < 1) { return R_NilValue; } } else { if (!ref->HasField(*message, field_desc)) { return R_NilValue; } } return (extractFieldAsSEXP(message, field_desc)); } } // namespace rprotobuf RProtoBuf/src/RWarningErrorCollector.cpp0000644000176200001440000000073012440004312020025 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "RWarningErrorCollector.h" namespace rprotobuf { void RWarningErrorCollector::AddError(const std::string& filename, int line, int column, const std::string& message) { Rprintf("%s:%d:%d:%s\n", filename.c_str(), line + 1, column + 1, message.c_str()); } } // namespace rprotobuf RProtoBuf/src/Makevars.in0000644000176200001440000000046714330220535015030 0ustar liggesusers## -*- mode: makefile; -*- ## Make this C++17 so that clang will not complain about [[nodiscard]] in headers CXX_STD=CXX17 ## Configure tells us about locations for ## both Rcpp (ie libRcpp.so and Rcpp.h) and ## ProtoBuf headers and library via these variables PKG_CPPFLAGS=@PKG_CPPFLAGS@ PKG_LIBS=@PKG_LIBS@ RProtoBuf/src/ConnectionOutputStream.cpp0000644000176200001440000000172112440004312020112 0ustar liggesusers// -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- #include "rprotobuf.h" #include "ConnectionOutputStream.h" #include "ConnectionCopyingOutputStream.h" namespace rprotobuf { ConnectionOutputStream::ConnectionOutputStream(SEXP con, bool was_open) : GPB::io::CopyingOutputStreamAdaptor(new ConnectionCopyingOutputStream(con)), was_open(was_open), con(con) { /* clean the wrapped stream on delete */ SetOwnsCopyingStream(true); } ConnectionOutputStream::~ConnectionOutputStream() { if (!was_open) { /* then we need to close it */ SEXP call = PROTECT(Rf_lang2(Rf_install("close"), con)); (void)Rf_eval(call, R_GlobalEnv); // Ignore SEXP return val of close(). UNPROTECT(1); /* call */ } /* con will be disposed by the R GC, it is protected as part of the protection of the external pointer that wraps this */ } } // namespace rprotobuf RProtoBuf/vignettes/0000755000176200001440000000000014552747062014160 5ustar liggesusersRProtoBuf/vignettes/RProtoBuf-paper.Rnw0000644000176200001440000000044213617276206017635 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RProtoBuf-paper} %\VignetteKeywords{RProtoBuf, Protocol Buffers, package} %\VignetteDepends{RProtoBuf} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{pdf/RProtoBuf-paper.pdf} \end{document} RProtoBuf/vignettes/pdf/0000755000176200001440000000000013617276206014727 5ustar liggesusersRProtoBuf/vignettes/pdf/RProtoBuf-intro.pdf0000644000176200001440000054227613617276206020455 0ustar liggesusers%PDF-1.5 %ż÷˘ŝ 1 0 obj << /Type /ObjStm /Length 4559 /Filter /FlateDecode /N 88 /First 738 >> stream xœĠ\ks6²ŭ~Ğö&•2Aĵ­½İÏ3;öìĴíy$·òA–h[YôPÔdfŭ= ‚%J6eËÙlÉ2ĝGœn€I–ÈÄĜD%BğD'&‰Iĵô‰Mĵ‰KxĉDâ.´Áq• ç ×'"áÖ!•‰à÷!Fx‹›‰PùL"ŒVȔ'uÂ]"F~ŸH•ñDd‰âÂááDi‰T$š\—‰6/Tb”„p(ĉ3œ›ÄJs›Xk‘ß%NdH}â´5‰Ìg„CqO…@óÌIšx›RĦjÖ&PĊk—¨Şħ<‘Ħ²PÎ%Ŝ ú<¨‚™0¤&ŠR¨rf5nQ3d¨İBŭ¸Ĉ# :*´„P¨‡BS‹˙ í(œGfH–¤Q+HÌšÓž…L.%šLC²TPƒZN*§ ÉR?ġôÈ -ġŠ@ŻqP„öt` şòq—+ġ $kn4ĴZÇ@²6ÍŞİ'Ñx› ×1¸èQÉFâÉFyžXH6m‚&Ĉ:—XH6.CwPg{ô³ŜÎ,Ĉ$[ô~‚~áVA ž[C}èhĜ y‘ Ô[l=CŽ;Nì$F#ş;ċì4şÀÑ@2ò: Q ÉÎeÈÉÎg ŬA–eîŝŝ÷„çĠ`4¨ ï' ûçĵšŒ§ù C=œż\âDĠ'gßnò„=EŝIq™üĝcñd^]eòŬ÷¸Sĉƒj\LŸ Ş<ùîÙßD&2üĦÒBw™żfÙ_›|ôÌÑà,˙˜ü>’+È.Ëü·_çß~/ÊÑ,È<.Fw‰{[£ù0‡ĵ—o’—WĊĴš ËñM•ĝTXd8Ÿ˙–Ğ ïl\Mr:Šê?-ĉӊF3{=F‘˙GI•Ċ€ İ˙]ĝïë;uSÁÒC"bö:qñŞ‹—]s]ĊTÇÔÄ4–ĉ\Lë2¤Š×cżp_˕:Ŝ7YLu#b*cŞbŞcjbÚȍúù¨ŸùuS^Ô³,|T/^­…Eż6£+Ͱ˜N‹ŠÚ3Ö†Ó¨‘ˆ‰ĉ‹iĴĦŒ5”ħ†2Ö0ö‹”QžŒòd”'£<ċÉĤE£<ċİ(OEyJ5µyZLĞ| ċUÔf2‹Ż¨I1Á@ċ};(s?u“|VÌË!Zšàù×êċiEƒWŞZIö˘qÖWY Oó RÙÛg/Œù× BüħŬ˘ĞĠBĈ¸œÑAq4ÀħŽms>Ëg$3ùñç_€¤İÈљMrÉt>™òo¨'\="9r08ÎÎVÚµ1Ĝ=ƒ"yC¤ ‰¤ĦN’ ĥN˘×Rbŭ"ĥDhñ ĦŒ¤+" ÈÂ#²ˆ,<" ÈÂ#²ˆ,<" _0Ô(Żá¨ IĴŽ7t.ò9ŜP_ċñ(ODy˘ĦĵQžˆò"µ‘ÚñHíx¤vߚ/?pŬV³/ilƒT’MOQNž¤ë&Ì+ıܨ)žĤí”t cúR M)”:8\ͽşċ$´Ÿ˘cŸßĴ.IWmÇvŒuû3HÇ_`8’ÍYX'üŝ›WùĝòŞ9Ċ°$‹úŽ=a‡ì){Ĉž³ì%û‰ŭƒ³²·ì„²3öŽ Ĝ9;/éi6d!Œ|208Ċ˙ŻŻlÄrij|:ÌĜğïKÎ.`éì’]ħĞo7Wù”Ùoì›°k6eÓñ4g+˙†Ŭ ˆbÄn&ó+ٌÍò/È>eĞʊžĊW‡ XÈêmà.¨U PہàU€‚#€Á›8xÏ>°…Ál8WÉ('|˜O&yÀ†H€‰r‰ ×ëÈ0ıĤóëóĵœ/§Kœ *1É/Şú¨ĈŸÙçyQċ£óÉâ älNêÌály½xä̧#(1,Êü6ô…ÜŒ>ánè%jö5üiy5ŝlC…ĝ£³ĝóîìôŭó×m¤;É/çmüħëĝ³¨ä„‡ÌLgğŝMÓ^}$`š4ù×Ôeúˆ6¸ÛäŻD! ƒïv´´ÛèO}us=šÒÖcqŒgéÀIˆPÎ&Òî7ÏeuùMK×­-ÌCÛüÏùĦÚ=ŒŻá] @€ħğ™Ïçù`ò¸¸Ñç.j]k•–ĝ5›Öö&NÜm.îêğֈMÌİŻ‘kžôE.x·=‘ëÍĞï^ŸĴs4*§^1òq+zE†µdO°–?Ò]ÛìXìF“VŸŬ䨵ÒÇEç‹PÛuì e[Ŭ3úöq:ökd/û%Ûm,—ĴvĜċ ܒñ­ŜÈç=0Ĝh\fĠ¸@']OÌÙÈuj˜˙¸nòĤìcl_­|×Ú^Ÿŝ矎~8:>.ĤĊQĊ³ġÀŒbúd://,m}Ŭ1:wo£Ó!R•-ÒĊŬx½>ۖ·>ÚôíĉZ•ĥM‹öŬm²WËé“ëĥïşı/ÚĉbÈŬ<Ŭ- ĉ}Cé‡r8żîO˜ÚòŻÉàšl¨k;Ċší&XÌf;YuÜec"ruÊê›Î7u$ħm! 7]XÈĥazĞuÀƒkĴŽäÖA~`ÓŜ!zyŠIïä§ĉħ'CÚCQ_únŝĈĜh\~JóÑ(ŸœÏó žG ê}_%Z&†K³T '< Sí m|Àˆ—İu@\ëSÂh.·t>ċ:ÀĈÂpŽĈÓO ](“²3h[ÂĠOÓò|<‚í˘(—*Ŭ M½M3oIÓYU|Ê'ßÒ˘ĵÜEIxġ)H%…ÎRšùvÑqsIĵ9齈ßtp–:CT^¤’ÓĤ(—š OµĞÌ+ġ™ÙĤ’DP†ë”ĥœiéSgġŞÄI½î¨dtJ믚›TiÚUçRLÂĤÖïU%×Rɤ´ËDr‘×é¸FL’6´Z*„bQ%!uêĜ˘’òK2lXLyp %Fù^ǒïo X šmQÉeİ tÈEüOù:}T•¤Ĵğd‹JcˆKÚɗÒF;ei×Ù^[)çµ{N%F읐‹ÓöI“͕ħ)í3Ĝ§NĵÛuHµWÛtR*5‚F“OĉbuÊÁûé´d‘ŻŜž˙p<¨  ĵŜƒ§Ż‚ƒšqpĈVŭê2JĠ ‚Cß~ŒÒŠğŻÖí ß˙G…­Zôżë­†uÍJX7ĴŬ„pBkg’Ïf§µImclüM!ì5F÷wĦ€5ÖÚlyXŽ“y½ôX²Ŝ!·ÇOŝġîIdà~ħÀv< Ñt雨îHZgnI­ċ”;[Ŭ•í„˙áô˙ĊŭJúÊí–ÚuVL˘>½uuk­_kĞ?“sT…0àSXÛhUtĝ)Ż—qĵX4½uad8\Ĉ%.ËÁ—<­fGù ÊËn1ñ}"‰ÔD›"Š‹U²I]ú.ñĊ~Ñ᷄U}³YÌ[…˜ö.Òbĥ{O_Ïġ^#9|ŝŝĊë“ÖjL]BÏİJw×kU7âĜw½d}9”V'²&-'ÒeĥicC½Äm²fE½h¸!_°(‰Ö§ċM%T"|ŭŒpÍ".½Ì cĴ.ĵמpaĞcX{ÍĤeğ–ii‘Ĵe™v%–w­’‚’h ‡‚ìĝËXKŠ,|ÛĈ–b-Ž BU²­ JĴ ŻÖ£zxmíôŜ‘l}g(Á™i[œ˜ZTR “ ŬaÜ”‘^_ uNÀĊ•iĤh^ŒÚ/•Ô]àH‹ŽJ TVŜèċà…Ó+DŜdOÂŬ;20,Ó´<¸) zu„€Àá§Áeŝż'aSüáüb—ùPôŝZ^ícFàOġeÀ'œŜpŞıÇò½ËS7ŜIx;Œ/NÈı[œĜ$nĊc'Âé$îŬĜ­“L²Î÷ |ÛġA¸¸LÛàĞeô•ƒßlAuߑóˆĠ]€òĞ—~yŝn ˙;a2üâuĞÔ÷_ꆀÛhz÷gÉcîzĥxŜ&éñıc‡m ykÀù)V{M†°ĵŽ·VCÛôeJnP~KĜŬ4†³˘tPf ê;ğ½ĥ AcqwœĉO€aCz‰aŜÉ˙4ˆħzs,îİï˜ĝñɛ³Ĝ/nƒ7wk„Àtş#nw/—Ͳ(5ßĴu}ÍwWógk’nKéÛ/×mßyŻRĥpşbŜíĠ¤Ó¸e˘1ôÛ׊ÚËDwıŭl˙@×wu0ŝÏk½aP˙ĥAÖ{Ċènš‡ióĦÑ9étše3[…Ë–VĠaεYKzáÛû4=gëËXëH/‹‚\Cx²lp3žħ›ĝŠáyŭ†!\Ûጕ9Žóé0g› 9‘-½†ß KŻŞëÉ_Žë“]€L:‘*Úĉ¨Ż‚ƒv è§ís˙oĞ3wYêAǤ4İ7´óSô RĦÎŜd[•Ĥ;ĝ,]…sAż`mê=9:-ûÔGvĴAÒ•k .SzMĈf°†°@äSKŻì ò\íU)Ç;­÷}ÔiĤF+›ôŜ,µâJï×[ìĠĴÚ PxxĵFşTÒök0‚zµyŸċ÷v3´RİÌ(̧‡í?)ŭşz5˜ÀŽi Ŭµŝ£_ÉÀXĤÏhı çÎôЏO’t"ôFĈžÒĵbµFŸ$ŭĥIğ´Ŝüò²ĵîĵïaĉô³*V‚öÖ ‘jRӓT=-ì?Ĉ€i(bÀ7 X§*3;1à=GD(*<­‹ÖáaB$ŜÚokŽò/ù¤ïšµ'´f.;X™ÌÂĠżä_Ğìş˜Îv#0.Ħè½Á4ŒVé'd¤ÇĴŬ³Ħ˙{‡Èä$ġċ/דtV Şôf^ŽĉyšĉĴĵßäÔ͌ÈkZ‰:?“›‹6‰x€9E†&pP{Î+ŭÑj\]Íϐŭ-/‹|Z×3ĥèwĠx²Ó(ĠRĤ>"8LVO?q<·•ŝäŞÇ9˜ÍaO"sİÍx‚IŜŝáƒtëĵ$\ĝŬ¨5·ŝÇŭÙĝ"òçövÂ.ĈT—ĝÂn“í>²à(^LˆĠ’HŸÖîùtlù2PŭÖÜòĊĤ=•_L:Ĵñ ĦËEğP­Ċâ^ĞħQÖ˙eÌRendstream endobj 90 0 obj << /Subtype /XML /Type /Metadata /Length 1549 >> stream GPL Ghostscript 9.27 2020-02-07T07:22:28-06:00 2020-02-07T07:22:28-06:00 LaTeX with hyperref endstream endobj 91 0 obj << /Type /ObjStm /Length 3249 /Filter /FlateDecode /N 88 /First 805 >> stream xœĊ[]o·}ïŻàc‚À~^’EÀJâ4€rÒş ü°]äm”]awí8ŭġ=‡KIkÏLŞĜ³( {4#y†÷~Ċ)£ŠW6‹*AĊPT‰*<emJŞ$e£ÍŞdeEŞ ħ Ê˘-bñƒUÎ<6N9ÑÎxċ‚A&(#Gċ[Ça"Ŝ°hE0„³ċ[IĊ"èJŭdW”¸ˆ×½Qˆ[%1ó‰S"˜ L"œ6Tò@g}T):ô˘’X6N 1şÏ*NúʆSŒÊŽŭв˜àĤŭ`޲ô‚ʉS‡›\R†`B‡ql€ }fÚèl¤•SĤ}a^|öċ´“ gÉVë9üiP⏴VäD0ñ ŞŬ³^¤ ìkygë{ü4ÌÚqú÷B[ i$4z d ™ ߨĉ" Ş ,i ™v˘Ġ‰Çš=ˆŸS'ì9ÑD)£]˘e3ç³ğXŝĉ7‰żċ<;œD‡y@<Ëùvµİš,§?}ŝıêכŭNŭT;2êĵvs¸J½PŬ—›ġ_£)ÏgŬ“ŝċjqĥy‹÷ ŝxœŠcÛ§‹-šŞÖîĵßm^o—ŭNqĴŻßîżyĥ_ìûŠĞ6x„+ĥz÷tğY>ë÷èµ{úĠ#Ġ}ßżŬ£Ó/Àż]÷ìŭ²ÇmE~ĥĜġġġîù7gÏ˙ĝÙ'Ïë5Î6W/1ÚzıyıZ_Ö> ĥÚîö_ZlħfCĠï–ÛĠġ~³JÔF­ ×[÷ìġżöudŽoo`†ŭÇêċŝ§N‚ĞÓĦĵ‘wîV˙Óëï6ĈßŝûûBĉçGjŽ?ÇEŜE08Ĉ6ĝ òĈç/nĤúánI£&¨]÷ċâúŻŭêòĠÍ-ĤŠ&û¤{ĜußvOğónÙ-7W›u×wŬĊEwĠ­ğM·ívŬ{ŭİê8éìî u—;ÎéÙ ĝ+)ĤñâğGĞĞRq[üÒOY˙Ûŭâjµ|¸ĵêñB÷dµÛ Ġdj%1ˆ×‰19µ‡÷8) ‡Ò9°ŽœŒfì1+&7`”,w?iĵt„’;ÑJ¨şĝyĊ`TĈLšÎs $†s„˘sšW ²˜.‚½fšÎknžš _Ïû ³W F09˜Î•I:YĞ"PgE[Dψ!tŠ3‹An.%ë˜Ĥ& Ñ´ö‘+A4}#ÊÌZ0Ää<´ħó&^áӐÓéôĴN *CÁM`JĜŒ™ HÚC \ĈtÉÌZ‡BÊĝ2i;ñš1-BZ™OIיµ`*bË3ĜX'@a6kš†j€°Šk"„™ċ`ÊǨ Ó(ÍȁT!\pÑhl1§e}š–MçDĵäĤÓqM@ŞÜÌr –Glb&—ž…×Gž;RÊUĜŽOŒÉg‡>ċDÁçĠY(ı"'F[f–ƒ!( {e‹Ñàĥ™ä+B&fE”†j§Û˔TWܓG˘ċ¤™M7Äà’{7Ċq+ÄrXo)0;³ AQĴSİĊS6bԔXDŽ!žËég .¤f€=1Sê˜~ĦlJıT€œyĤòäPƒ<%ċˆ~ħK—J%Ï i°š9‡Y1•áŝJɍĜ:£kJ·À›bv½ÀG˜Y5‡˜œ@œÓäD!ĵĞ5 K‚İê¤É牣8;µċÁ°d§_GGĜbç£vœ“1Ú)9@PWÀmŞĤ_f^Ġ,f¨šŠXċ‡„°³bŝpgĞ]˜W F y,(™2:‘%$%ˆğò=Uàa-z胟Ġ!vù<ĦÑB´ÓE§ÄœĈyu`“cJ`˜1o˜ ži(ĝާ+-Tc^ıTsĝeB›b9dJ:C&£ñšçnfĊ4ĴĈ 2LM7L˜"SpLSÀc߇cbyŸ‡dÇ1 è$ġ oMJ‡TĉuŒarXínŠâÁaĜƒOPêĦ_şP3KÁH%í°NĠ Q•ĵdË> stream xœíZߏ·~ï_A /íC(r83$‹4@\×E0Î-èE·vıœpŝû~³˘tRvȧ•c†q&—â’g†3ߐKtÁĊB.f+“Kd%;VŠSĥR]‰VfW‹•ĊE ŠJu‘+*Ö[Ġ*Ñ^gT0f­VIŽ˘Z…ŠWĞ8ĥŠ:Ò%;*}KqTû–êRdü0ÙĞ!şÄŒÁı$6jǕ ğTŞUÄqàè  Ùqê[Šcî[Şc[aEœĞU"–Û·“·$'Ô·°&Àˆ‚ ‹-Ċ‰Ĝ¤1£˘0'*Ğ[;A†R):İŠq#×\QINC˙;%ĥ™ŻcMŠ)(;`!*¨$LAĠİà4ÛëhĠ­B.›x)%—ıï.÷À’¸œħ\Jêr1„)ğ Jë\]IŸ­ĥ°`RĞ(¤NXdÉP A蘰ĥLĝЁ ĦJba ˙^¨lúÄڪ¢ìçšĦ4’ˆ l‰0M­ÉĴ Ħ"lĉàbĥ €ŠÁĴĉ$[·ŒZ&ûĤJĥÁ`z1X?È7Ĉ¨X'c‚bHa}0³Ż„šÚÂÌ£f †cÌ&s3٘‹½9`àökħZ żúúk7ûöŝ~ħ~p˙îm"¸+÷7ûâ~ŬŬ£UÇÚfínnŻ_,Ŝ£_À?…ò2ì}__ŻĠñĤßU÷°x\Íğgc˙ñŭúOoÖ×ë·³+ Ŭ[˙ôzµ˜żéÖuöúċ+7û[÷~AżùĠŸ–ŝctU • ÊÏ@µ'ż2”Ÿ†İÖ}¤ŸĈ‰PQ<@EgɏFìOi*¤öGÏħż=¤:‚4M…4 -ç!Ŭ˜ıĠM[I­Ü N9ĥ’Z9Ĥ žf…i{+Lù<]$n+‘Vj+s+K+›$¸I‚›$¸I‚·’VĉV–VnŜO%´2ŽHH&’PĦ} •t–„˜GêDÖʲo­Ĵç!m:1Oš§B|àIċLO:Q|Lċ`O”óö„ŒÙĉT1Sè@~çÙĤ´Ŭ+m÷JÛ½Ò,ĦñjŸZ<Á¨Ċ‡ƒ•ĉİbîÖoVşuÏ´”$KIŞÏ9D_‘âĦç›ÇïÖ=żÜŜ˙°Ġ›çù¨yKwŽĦÊÁƒêïPi%À,&EE{¨˘/ĜFI1 ‚â1T T–mQeòñҘJġñ¸öˆÊ“ö ˆibíö$fÂq9qDO  Àd. ŝ†>bRѓĦµ5EŻ=H”ĤEĊġq-^òˆ¨ŞTEžPYɗÂç-8*@qĤÀ-(B ÎwaTE|'?J*@ġĜ(´ç8ħUÉÀŞl;·:† Û3×=Ğ‚ûÌ2ħU Q ‰`çÇPċêKâ*İ@UêQ%_ÁŻŽĦRX]4ĠP´Ç‰Íjˆ*Ĥ<êA(¨údVà"Ŝ˜×¤ t`남Ĵáè>![ÛĦR´×‰cÍr+ŻÄGQÁmX‚şC…×MlVCTh=Š ŽžYÁħ'˜+äĦc ›ĉ¸c€cg;?Ŭ˘BÉPĝI¨íä7ûûĠŸwĉëÛĊŭĤé7߯סßÍfóĠġ½_}µ\-ŝ‹éŭbġnĥĵž˙âĝû+ËġâĊÛßö”r|ĦK{èA'$Û=€GJ„˜ííB҉ZŠvpğa¸OMĞeXWħ?4ß=ĜöîÁ{wİMèWvxĈÛw[ĵGü‚s~Ñ/ŻĦ/J9Y@³ĞDĊµƒ„s}ûı[cÌÖĦ?VġħöáÖnÚ@ŒX}Îğœè÷>’<ßét›ó @JÉGÈAD÷„€”ĵàeÈÄ\°Ä²g÷i?dÍq2P ğúDŞñħ$=‘u´£lC-n:˙nħxw×ùùâÇÙġòöaĥ´4_Ü}÷ĝöm·z˜Ŭ,ĉ³U‡zw?ïfóċrÖ^é{˘›żéĉĞÛċzħò߯ĵûġËŬó‡lÇT„7‡ 8ÎÁğNFl.ġDn÷y.KĥC> /áÈŜ..ȎuÒIJ l1#ór"`ê?À€2‰xJHaòÄäqˆ(‚h—‘D‰ħEÙedşU6, Ŝ#ƒÓĠ81ùŻ/bì>eşPŠL×üëĴÖ²Ş ƒ"-½ĠÎ ¨ Ö0#Ÿ ²l§pqĥ­SòĦ‡Š'&ŝCAE8RÊ# e²\;“R$ı/ *foŸ²…,W’ì@!É=•š<_yšÙç:’M6LÈ&Ûi€AB†+tqƒJ0c=.Ĥ½3Bt#ÂLXdäಁB&ò“îPœšGžŠiÈñ¤€ĥn6Üf´o”ĥ;~3LÊ)°ôKñBAˆĥgTÖîRíhİ˙Ö·#§O^‡™eO‡lû}B:ü@µÜ­`5% è˘s$ÙÁ!­JöÍdRoŸ~k·‡êĥ_=ŒóİœúĤû_w·X‚9ï3ë-İŝê Vŭêö{³f†YÁ|<#˜u†×N`gä9#>çġ#ööé“]Ċ*üĞ `CX˙´gĝu˙ żù2LĤ< G˜":Ù½c˙í,zñĉv$O˘y°QU‘YÄáp3‰’ž0Eéo´'Ô{Xvʐàl@qMvD³¤żÏžÓ^Ï.İK9Ĥ<.Éۗ|[P\żÒ0(; °/§€ÊOĊ–ÂNL‡V‡ †2Ìv&M>ٗÔ[LĈ`ä3 ]ŸvÀFœJĈh6ÁÇ aš˙-Wjendstream endobj 269 0 obj << /Type /ObjStm /Length 2997 /Filter /FlateDecode /N 88 /First 799 >> stream xœÍZ[sÛĈ~ïŻĜ‡<ĜÓzħ÷K&͌eǍ;ĥ‘Ü:mǁIHBMJĴŝú~g J$. CÓ>H¸pħçÛ³gż=—U^0Á”—Lzş*Ĥ"]53"âj˜5W˜3¸:ĉƒĊĠ³(4IaèƒÈ¤¤/ƒ`REü7ŠIĞèF3éĴč4ĵVè ANpL Mo ­qƒ¨{³bƒË*|ñç DEH ‹ä%<Ñ0-ŭd™–H£cš†Ħ˘gzÓO`Ú*ú)2í02·:(Ét„.3Râ tj”£Ÿ 3F˘Ħ°ÌX‹O…cĈŸž™`İM`VP’•mM¤„"YKĊ5KÍĴ‡ê“Ù€áj % MsúÑ@à€79éMÄDàI+Á\( ¸^)Ü@ë^J·a^S?­·²ĉÏaò¨SÌ}˜ž>,HôŞÑ.(‡6Z²`Scb‚uèYk)Sd}’”`Ŭ‘`hRÒL6î,piLî7‡ŠhĴ;8ŜcÎIMÖӝ‰ĝî;–=Ğ— {‚iʞuŝĊ,–Ì)Ë~ŝÇ?1Í<À”Ò<–׋ûÀ²ċ-iY–ŻrğÌ×ùĴ)Ĉ¸…mÁgÁAn‹ÜÖTg’ wĴtİÜİÎFnÌA†‰ü†ñ/Êş·ÖŸUKĜaS#ĉnçëu1/ó“ê Ñòqpi<Œè­ĵVż§E]]Ż 0êĉü—³&oŠ.Ĥ/u [pĠìĴ foŸż<ÊÀÀíÍŞ Ŝ/Š-Ş“j=Ç4m’ŭŒ4´}h5Ĥ]_cNN Új촘`@rGéÏ)S@žŸ¤Ì hT×Bğ³ëOM‚ñŞ\~ŜBzş\VÍ×c²Š|p#˜ĵċÊĤ4÷†ò:.9ÈŒIǃ×#˜ÂjíH£¸E(*-ùOR'GbRPŭˆÈ€ D#ŠÒÀ¤ïÌ JÉóI!ġba„ÄëxgNX&NLQ" 9jâşôîΞ=1ôSáZQH9â8Eĥ‰‰•,NLCÉy,$32s> UÁZNÓ¤€Lϸĵ˘ G6ڗİ4')ŻXÀĊLË}@Öù½ĉ>Ĝ‡ à§BŜRT}˘§É?cÙßN_Ŝ6˜5ĴĤW.›fU›e³uäë'ĞuġoÈĉĠú"[ċ³Ïä˙|šj2'×珓?Ûž~à[êĝĉçċ˘H_v4ÉŻŠctŝ²Éċìéòq@àZÖT!IêIAqvÖWg´ v¸£üìçv ¤żŻ]†ıŝŜGۏ£X‹£˘.|e¨Í ´ñ° a4•8z "RQœKòƒá9D2Ò=8iQĜäÇ yÇİXNi, z¤šs*”ağċ¨jŠĜb?‚˙ëڈ}J= dĤ>ı·˜Ĵ“ê÷´ñ9Äqڀx’…·$coCŜB‚ËIg6˘átĤ€ü8mì9 <ÀµííÉí˘sJP(ñHĠ˘Oëĥ ‚—àͨ xYt>C#È!ïÎ]“ĝÄaaš7e8ìpš[Ĵ=ï.N›€’y:̉ŭĊ¨Ž¨’óàáXĝwqâXa O‡(@‰^c‹ .^LgĈ€6 #•ïü8¸==µnML<)K…iĝÇs˘“S#BEÇĉlʏYŞMËħ_dwĈBz-·˜RY:)…g…͗ʆŜ™68Ê&_¸šü˘ŞàYu˙(út}žŬË–{:÷eMڝ-Fèè ̘)ĝé0·jÖĜÒî-5§³„qŝ‘Îħ€‹%˙µü\¨F‘ zÊ^.á!žç³âĵuîáG8Š×íi¤{Œ„2švş@ù›²•FMġÖU~*ëŝgĠâÓĉ [6Żfp²Żá­–ù˘ĉ—ÍĠâ>Ħz­têT¤‚!Ò"Ÿ„êÍċM`MišŜ]–ëù[¸ó7OçóŸ–ġ}"ħqz¸C LgӉKĴd˔…£x¤Ë:ŭĵ¤—÷žJp*Dä Îıµöv…+â°x¤/˙2˜vé#x†Ó°ÙŻ̋ĤçĜtWÄì’rS­ż³Àğ˘ı íƒOǀ·O‘ğ+n§ÚvöĠEPîâÙt÷ŝE#ô²§ rMú£ßÚ iœ’ş=\÷aoĜn˘aoÏêµµ_ŭ;†ŭ?K>‘G ğĜ&Ÿ°ŬÒIöi“OğùĤŜ}ĠB .4…ÑUAGÜ­ À2ÑçhĤ’>endstream endobj 358 0 obj << /Type /ObjStm /Length 2167 /Filter /FlateDecode /N 88 /First 798 >> stream xœíšM#·†ïù<Ĉ‡PĴbñ£ ǀ׎ƒ °˜MÇA“ħbolŒ-°ù÷y‹˘ÔšíV0”w{˜!ğĠM>Ĵ*VɎI]p1%9)V²ËbetE­§ÙÊäˆÙ^Ȏ˘Z8Jb•ê¨àvÌêH •´ 9fQTĜqԂJtœ$Ħ"ŽK$T* í”ì¸OÁs!TTGÉŜB1 ċŠŸ%áġJĈŽ.*[ĝW­?tĞàÏ~ŻxNŜ¨xS­÷ZœX;Ġ ĞUԉH{IRИ$m`ĝRĠ*Ñ h #D%ımìh"‰I­§ÜîT—Jğ£.)îr°ĉı ) !·ž1€œÚq9·;ÉċÚîdW'T *àH¤¤.AQÁ˜„‚+Œq ‘+ñ 1*68‚ŝ€áş’ÑĵPBŭ„–kħ;hı޽Ž–µ˜lÔUb܁Ĥ+CiÂ䪰UĜĠĊ ~ ‹Ğ5› “Ó€Ĉ„³ÓFÈĊilwŞSiwv„ž%§f-Ŭk1ÂÈNƒ“…!KÔc𠌁JÌVC;ay!ĥ_azAÌv!2 ٞƒÈ)`ì¨j ù ,š($ô*èƒR†ÖQ‹ ½AŭÔLY`¨%ŭÍ_¸ĠW··›ŬûG³ŸàšùìËÚKŬ—Pî¤^r/c/—İ—½=ííioO÷í™ĊìKê%÷2öRzıoïŸnġġĉv·m*û6WY˙úúĊĉĝ­µl–.<ûòz‹GŬĠĠúnóv{³s6ĉ?ĵÛŭñĠîz·nĜĝvc‡ŜìËíĉĉĠz‡VW/żùÖ­ŝş~·C£_~‰êßĴ­ġ׸l<ĦŞ£¨ê=*}ĠQŻ6ĉòÓA¤D§¤Äϒ_ £¨â=*yžüìŻÒ(Ò{öGOħżҽ٘ƒk%÷Ĉ}†qŸaÜg÷Ĉİ—ı——½=Ö Äp*Hϒ@äÒ8ŠôžUĊ§XĠ •Œ˘J÷¨òóä×5ğĉc·$é–$Ŭ’¤[’tKY{4Bı7ByÊ_lĥ?Ĵ· 4N\áâ›ġ5D=ô­ûû÷Ht|ÄDÔGLˆÛ·żüb^­oìQ&ò /š‚zAääH>í$&oR“ŻŜŝk×@ŝüúöçTġ#İâ ùŠ”ĥHÈIŜc҂‘+Hġ”-+o% "ĝ>éĞ&üWnġ·Ğ?¸Ù½ŜÜîoŭö§ŬîÍŬçĞĠÍöúÖo÷fğùz÷›íĞ7×7?Cĉżż‚jv›o˙ŭYÓĈò(‘ż8:—â[ŠÎŜìB^-ċ‹>#ħ(̘tĤâTĦbXëû*†ÙrNġ9 çê-ÓàÍ͌dÊ2×p¨>Ġ™ŠáÒĦr`‚yÂÜ{ ÓÓp >aatpòċQ"äĥ=ĈM·l9ÖˆY}uvEX<^@éxQ\qĞ+nÉùñ‰÷áħϚioœŻ=A>U'BİÇr`ĉD3 (…´Ñą ߂<~¨Y`ÂÓË܋ 0)ÌĦ‚™ÚPğ_‚âÌŜVg `÷XjĦ’Ş uKPT ½xVRPfy¨Š€LîÂPړıÓêLùĴ“I%8TĈ*ž4ñR‚ċÊBiÌT”>0V^~òG¤ğéüä˙Už­ ˜†G˘ġž""Á£˙”*Ĥ>˘-•g̈́kšµ,AYÒTiaÄÛĦoğK£ÄzÄÇ/M…‰”x&Ş#²(ËħP„·j´˙a6ğ3şĞĵ1öTQm˘Ċ‰*do˵ Sayá/xçNUĊ':BETǖ ,d„àÚĦà“’”‰ŞfŸÂXĞZ ²ħ/xçΔÁT'£ŠLc½sĤ™Ħ[/˙GPI|fž 2 Ê8ĥD…/óL÷H%b™Ó oelSs(Öèmk÷T”žĜĈÓàEÁœŠé‚ĞJŜvU#cÁ-;‚/(AUÇ.Ÿ2/¸*ġ9,˜U§‚W/û“‘=ĵzáÁf5§2İĵ0;Üz :QÁ­—ÄŞĉ“î¤ğ_ICŸ”ò0=}/7و̒Ɋ³í™ ‡„ŝ-´Ï"Ş×Á‹“9G Só”-T¤âäÄ_ fġDĥ›”ì¸a(Tš…‹Âĥé?¨($/G(„B§Jj)˙ŸÚî{§ÂkáĦ›NWÒú)WyLşŭ‘ċGsµƒÈ:_SÁpŻzDYûşĦځ1t`>û“Éç( [mĦxûœÁ+¨}ö[ {Adpà˜C‘í´-¤"{Ĥ`'>:1Qi§l™Hv˙]Š °A1bÙöí ·‰Ç~³•¤ ¨fYñĊ0-›†ËŞóY(û B&“âj{½CƒĈTL˜Vá,r:.u‚*ûŭïO[4—‹vçOĦ˙eÉñendstream endobj 447 0 obj << /Filter /FlateDecode /Length 4384 >> stream xœí\mo丑îS`̏·“qĥ,H$÷ÛNv7˜`ƒL&s—2œZMw+î–:’zœò?òó7R,²(İŬž7{7ÀY Û˘(²ŠĴ§êİ"½>ÏRvžıÂżĞíÙġ–çĞŝ,K…ɍ)E·:ûóçá_Ġöüċ[×½`ç&Í ÉÏßŜœùqĜıÖ)Ï;W\ĤJžżŬžŭ1á)“)ğ¸’>Ù†Í [ÉYŞss2‘rîMEÀ<8Iŝ{¨7ġPÛŝSÍñäRĤy.&s8ùßŝésĊ?eêEù R^äA@²ä—UkğŞnV]†%íâOĥnš'C‹xĜġ}ıútMO@/ç²<#ìıġñÈŭ éC0 ,ŸËo·ğêĥyŒ=3 ö\ˆÙQ|Ô°ĝé[ŸÖżYĞ3;!LŞ„[zğüdò8xİ'‡WĦR‘ÇÈ"<îêaMA%OÊfIßԏC7 M³™ŸQġÜú)­ÁîkCUž§’0%=Ĥĥĥ[ÙGÇÑ/%Ĥƒ˙œ!êx˙­O ›' gúɁ'o2†³ÜCïġ£`—쌘ŭUĦí™_mëÏK˙ĠÈü@Ĥà,5< GŽ%˜o—ïËĤ²Ž`†‹. éÌ·Hl9ìğ§)ÎLĤwş=qu&3İQA5*Î|˙—Á6=d¨*ıĝ•ÏĤxöÏ­_Ÿïùébzn4ŒLƒJ@ßĊ…pàÀX²iÛÛŭîqÉİJYĤçs>ƒèıġç\‘yré"Í ÂP(óòjQ„žÔÍ`W6ŞHêß?î̀i`‚ÍĉFÎsëSé'DŽN—I‚ޤ³ëlU–J£FĉŞ% Ìġ›‹+ĦXše&yŬµC[µ÷rsaĤQ•_uí~÷¸£9%ÒBóı°_Ç.>·ŝ<Ŝ˙ÉWžó4ׁÍäcòġÛafh8Ŝ×(wğ-ĞġS.-Ĥs:…>?ú>PU„hRŒúĵŜ”Mú$7mT öŽ£˘ŬĜ²šÌr"K"³'Ö²\=Ġ$in›öÎ.Wvk›áiÔ§šĞ‘Éì'(¤xBeàhò\ŞjŭXò„ZR³TíĠb`ĝy–Ħáżî.^ ct—·ıÌ È5S"£eÎÓŞ"ù"Ż™ıqŽd×­‹p<ñÖZbfá=vO :)ўÜC–'û)0€öċÊ^5v?tċĉÒ½ÊĦ—Lv›r³ÜÎ^ùĴ/,66Œ¤UrWèA&íÍĜı·]]nêżú‹Ô8tûÊYù’dQɲÊñÉ#BğÚ Kö}œÉÑ>ÒK$UğŬî›ú —ġxÒ†HÄ>,n`@ۅë/ŭs˜9Ê’4X’Ë1àMO·mg}Ĵ q "ĠLês)aŻòûÛ˘ ÔzÜ\ëkᆵêĞ“*'ù·şßWxʙ*”ñ ˆGŸÉÄŜĵ¨j@Y˜"ċà3#‘3wĠĥoÂá:oËa`X—ô1ĴoŬÓ§~ NogĞú…÷D)í½9ö!ˆ” /ÁÖµ÷ħ 6 t½-ğÛ>49_îğŻE{5CáŜ—ġĤ„MşôžÓyĥ_µíʏ—y†°gn0hGĝ[]´7X‰€í qWâë‚|Fè\Ó( ÚJW÷ÈûÂ%"/’–:É˙ŝĉÇK~ü|“€Ĉ˜NïÓèƒİ°…A.Ò&CqûrkiL2ÔÛÑ:Ġ SùjM,Ät’¤ŻŬíî#ÖÊ içâ‘ÊɅf› SgIhş‰Ż[_†ÁÉÉß²\e)jÀĥÜ|\ĴÇĠï+À… ïÀÂ3gÁqyËlżúÉzß,ÀŸ§‰M´`3MnJ#SDÀŠ\žT¤ìIšÂ{è§É 1ŭ)ç! Żí–ÛE½Úĝ›ƒ._ÛI˜îĵw“Ûut ıo²†›ìŽ0ġïÙÜżƒHÎä!°Ċŝ2Dġlš\,·Àä`Wĵxngŝ7ġĉŞo÷]eÇŝWÌİ=~˙Ŭğ šèe]Q´!Á2~Hl*VPl>ñ;ĝ‰†ı$×çĵş?ŠT§­ëzvß\_z1ˆ(Qşò~“ıĝŽES›/óTd&°Ív{½ğĈ ĥ9DüŭÍġ£J“ ÄıÙD~ħuĜfpi 8RûKÂè86h˜1Tú/èŸ*ç|â/˙Ġ‘Dà‡qújS/ş²;Œaq´u>Ħ÷Tηc†^tûpx)ˆµŞù .Ş@`ì&ïoĈƒ•tċ"Os|§u-L^œÔsM_]ĈI~ –ĤwÈŻš"ĵó÷"ĵİÈcùfɸĥ§×Ĉ7X½%o"Ûö‹˘.”:lğÛ_´w1—¸i7›öŽràcë›eàqĊ”²Mƒ˜û_4#m_÷ñO \Ê‘ĦƒĦOŝd˘ˆ€Êĉŝs,;ŒĦ…Ç?i Û_l"Ô ĜÛ,g„ë²ruŜR™İ~Iú ]ŸŒÌuZìxeĤ3‡Pˆb’Éí˜"ŝ|Òûf&•2@ŞÚ”}‡ŽüŸDR•´ŝ…gì.µŒ 6ŝJyÂ` s`ÇĵĵżëêÁŽ3'‰X½ÛoÊħ˙H]ŝèg}Ż˘m:Cù´/ûÑ­ê÷–:jCŽAĦ/ŭܛ˙Œ¤BÍŽ•J6cn.™ż)„O ‘ C=IÊŭn!·q^@ÍÇşì1eA˜Ž!eıÂt ”[hL")aƒé÷pĝvıüí^ĵ_AçBaR6&ıéhu„šb§{vûW;×ŒFĜbdI=ñ a×Ùµ;ÑxżÑó`ˆP·Ù‚I_8 Ò!]&{|ôFŽK|&ċÀžfK2ÛKr°´—΁AŽŽû¤1òSR‰2ëÀ1{zÑ!ŒDç΅<י2ar6È0NċIŜ ·ŝPŸtqÓМ͕ٕĠíx|ódÙÚ~| ‡hiEgc.˧çcĊÇÏ43DÎäöġcBKQ w› M%OÊd˜^ĝ³ç êlì_*ğ‹˙Á kY |ġüЁŽÎAŒ> í…Oítğköş‹ûĤ˘ğh–u_íû°ŬmMèÒ3ü¨éhh ħ/dïŠ}­-›~›ĴÚß+iÚéĴġsu÷²쎀˜Ï”sçœc]Bb™–ÖBӑìŜ•…ĠuE³ÓçHıé•°šÒ…è> stream xœšKıÇïù<䐖ĉğÈ`ħ€µƒò0⠐‚A[âÌtĴ‘İeoùîİÒHŜn›ÓÊIRĞĠżŞbĠŸERÎ%Ħ„óJhU a[á-}v"8‹Ż^€OĝDÀWZ)ş1 ­ Ŭ™èIQ¸€´ï Zh—41BMWĴ`ñçÁ CÀ7^è”9ĝÁhE÷€0Ĉѕ(ŒĊï>˸„F a&(dZ a"à=`…I NXM,ĵj ħ {~Úm]˘ŸGaƒFS!Ħ·ßD%lDß\ÔÂ& +xŸJĝóˆCF “utŸE&¸H=‘0Ħ‘~‰ħr?$ôÒĦoŝa „7żB ĵ%şäϜ䄊îñƒĦŻ‚ÑÑ>+E4<%ŒÁ§â‡`ÑAŻ4ŽÛ£)Ác ½²"€{pĝ˘+^„DƒŞ‚tü…WQ€E =FœĊ{´˘ÁĈj-]1˘A봐p”½v"*ݽˆà5Ĥ†!Ÿ4ˆè,}Eô81P$îˆ?7ZĄ7zŒlRŒHšnFS’ħ-/’'cDEŬ)=&ŠDòôDçÑۄ—ĤÌLáß~+^}Ÿƒĝċ&ûŸĊĞżŝíïhŒ”Ĵ6ʄĤlO›ĝ§xġÇüÓp‡óïğCŜ˜eñòù?c†Áó§ûa“ĊŻŝÇî!˙ò´_wCOyxÜ­-ûnʆ;H‹ċŒ–óğ`ë۝땳×ù¸:ôûaw¸“ƒyċ׉×XÄû~“żŸÙIßàĥ 0à%`İ^ x׎YuÎwŝ£Oáâñst 5™ĞċS[ĊÏÑ9.‰ Ş ‘ċ„›I#ÇĴ·? ‡n5ôۇ6.òLNbŭ4_§]ĈÄNĜ?>fħÍ_f‡>1==IU M¨cCîÖ7PMˆÒsšT_ŝĉ‡n@k Ò èĜD†v†ñ d¤(ÉİIFîŽrġĜQŠċÙOŠk 8‰R]ƒjÒcé²l“’ĦŒwMnŞpŻ5ĵœl’‘4ûhÓBĊmkħ’šĠV°MĉŬ=Í{­™ŠĝˆΞuF´.T¨ĞŬvèú-ĤĝŬŸŭ-8e(E34e,pğïóf}·:OËÙÖyéĜLšr¸œá7`M0Ò)óĤžg[$äġ9Ŝ7{£n™çM] \×F&܏uÇ ­İl+[Ŝžž^vŜz.­$nXS"ıœ}EÎġ-ħÉġ§èËô¸oıÎôÏQ‰Ó¨Lû–²—xwÎQñß%ÑÀéMb^ ş\éL-5Ž>ġíÎÖqÏ~—ıfTKğ`ĤRjÀ5É\ê^š[jhgƒTLeÁ7ѕfm^ÛkTÒĊ´B“Z“·3ZŸ‚de¤s•[6³Ĝ y™+-ğ›pëwĝĵ=öğí t炄ÈÊ*5é\ċPq>ΗW…‹‹hiuÙ7FĠärİğ1ÖkK§²Ş£nRyßĥÚïÛ£l*Ud`+ñ8#_ÏäÈĊlÓ}̛°W_ɔÙ›2ıŒarò>w8‹Ŝ7×,·bSÉ"W²3üß§ŝpġ;ĝ²CM)‹\ʐ½ÛXRŬ|Ôm¤-ê(ƒ7-rE{ìŽwë|ߝ6ŬçnsšÏ7n‚s .<6e-rYûñ&á((–wMQ‹\Ԟž§°vħqşĥĊĊ°Îİà5šµıÎɌ¸Žċ¨(ŭ(á/Óuuîœh'óçΉĥ3SÑÎĵ%ûZ05£Î/ŠMpİĵ8Uıeû=5œÁĜ'_ ]2uܳ›İÚµ5–äöşÎ :-ÛiJĥ ĉR·¤]Ĵ}iĜJ%ı&kŬ‹ŭb…pi\zòM0ş—ÛEN6ÁKpl¨CÍeÙ.rjò8ÌÌ_hBı°-ìù–zPJÒ>uÁM>Wĥŭ"7%;6ġÔ4€KŬ&o†Ç¸;ĊEàé€ĤĊċNj7@uR2…’9£]&ï×γW{ŭĝF9İı­†Ş¸Ż(q33Hh"QfGtÔ5ž@ĈKo:jL ĴÓüñl^SÖ+‡W)eçLGocĝ×ÙlùÊ r>Ar,AşŒÁMkP*íıé-K´¤r)›íhoè°Â•hh˘ı -ÚAçtç,>=6鷟TÈÖĥˆ,Ż’U;+˜™ŞX‰Ġ°N—ċîJLûq‰é(ħ2çßáÄÒ<#K•f‹KĊb½@ÓÓA¨ ,tŜ£Żd,çP:˙òžŬÔ\ç^ôJw¨µÔ,Ŭ´m’kMÚK'žç›ÁĉR‰.lŠíеϊ8Xc›D˙/)À˘MÁ·)šc)‚›l—Î`¸„íğĠ§ùÚÒ-Ĥ Óhĥ–LJ šĊ4Íñùı_µëİb‡ ҌÖŝWßumI^ŽŸ?¸oxiFġ{u<7vĴ)fšwaSĴúŝ2ô›~èó×­Ê7Ӎŝ²2~ŝ›Ġ.VTÇğ˙ÊĞህ}]y/ 7ŠW‚’İëÌKŜM‡ùÍîiżÉ´ÍRâLâ˙(ĝjÊŬÚĞoÍ4¤_zl}ğíZ›žQ5_u„ Z6Ĉ6ĦSázʇ‡ĵ…O‘:ħ³|ĝTšŜ— ëZúS†ġċFŭiœ°“>Ӥل-êġús·]ċµx—ğát¨$QĊ"Ô+p,‹ŠÌLġêíu{ Á'İyÖ@p‰ñ´Í­7ğŬ§ÓžQ+ËEœj!ù›ĜİN÷ÍÇ~ŭvÈ8Í÷ÇİÒÊBQcÊ*ĥ V qÈĞóFïeô~#ŜvnµÛˆßžîïтßv§ŭ tÒBéĵUó™T Ÿ†Gäuûŭa×­—yM˙úbHŬ@NµèŭĤÛĊ=Žñŭ‰Ü‡ĵÉŬ‘³'½ċE$œ—qt”SÙݽ^}ÚîäġC~Â[Ÿ!˙÷Ë>Ñendstream endobj 532 0 obj << /Filter /FlateDecode /Length 3298 >> stream xœ½[[oÜĈú(äG,Ô~ŝÒ<ÚÍ$§gVĜ_oN‡ ft]ŜTğg\Àhmf}s~=˙Ç ĈHMžż>9˙‹e–bÇlY\˘²^î D’~zŭô;› ôğ5ƒìc˜ÄĊ#F\1ÁAU C c9;_œ~j‹êz  UÒŬä~r,kF¸ĝƒ™egÌl{ BKr£ŜsßÜĉU÷ÂÓW*İĞĵ_Œ'ËĴ2/ö)“v/‹Ğğ~(‰‡ÖM˙L’6˙7YÙO%Égeî_œ&nڞІ e]@ss}Óżj™tġHäÒÑHĴžúŸıĦŬ"+’-Ÿ 9êф)F)ç{âÛôŒĜ§`ĝ÷èRT ”îrİ{ámÏ ¸°’wĞ58Êè']Œ’yÎĜ‰SĜœáÒI{×vù-êMï‰!Ž_$#=DainY×Úh/…}‚_è}{˜XÉ(“ĊKZ:=€’I9¨ĝŠ&VÂݍĤħúïĈÀžOxD¤ DEÂï¤ĝä[`sĉ‚ ;V³ĊM[[‹ó1˜ÑäÁ…SĜqʐ6|™•‘‰g<#²֋_ÇêdM£ġN³ĠŞÉÛö²ß£=@AìŽċ`žc 8 ’Ì™J ĥÑ %àÈ1ñ gln;Ûı55jtsÄ0x1Q_€½ZÏüyŽMÂ$)À^„J‹=Ĥòyhv’K@Ë`ĦÀè ŝˆƒ0Û3ióǛbi™QŠ“˘ġŒi‘×UŬä+˙"IqĠÔrM¸FJÄ\Oa’€mX5…¨ħ2ĠnÖë²ÈWŭN²²ìż+ zÙÒä6ë–7=ùïñÍ0 TÉ"G<À9aµ%ü.ŻZ lKÉÇbäV8DcŸ“âv]7]ڍduŞ5Pˆ{qÌÄĝ-C€~=À —)ö(3µÀħj4ëqY˙SK4„hLñ~ĵ},A4˜Šp½wğŠ‘£diq˘½FµÎ!QžX‹h çFf”Ċĵڔ%޲[î6óƒsEBä"ċLÎ –HSĤ ÄÔ>}:*3˘£­žŸŭôê`á‘s$H‘Kz¤ú3úÄI@áRï’ħÖIi¤ŝOß ¤l_¸vgzlÖÛJġ€vĜ›eëğ˘‚Ĵt7ǔĠħĖ×ҖÉ]ò—Ò~x0ùÛäÀBê€/ Kۃ ë@Ï(kLó–CbÒüŜÌ. C*ħ4•ÙC~ˆ†8(h4Żö0fÂGR™'íò ˘ÄĵmiÄb³eÓÇâbŜëE:@/’ž úQvéÓĥTĥáru?\[²ThpícS„[1`oĊC)]çÄ,à.…ÜδÂ˙½ÖíŜ ukš”ġ2뜅mµv›üĥ^ <¤“Ç #Sƒ„c–ÚÍċt™/ğşıóĵ¤,İŻúgÜk„Y¤t]|ÈĞñ›÷4_Pğ ‘|ĠïP$ŬŬşXşî“ûaÓúŭ§˜$WQċÖënœa¸qĦw˜_´77ÖËÉŝŝ ŒĥÉ ĠĠë:[= -žÛVhŽfŭPN,É\ğqK˙ "-ÚÑvÔJğíšé=rzF .adÜĝ@?ê`Ï ÇB— ĝq2HúXy‘Ûú˙ġ€°fHYġ{|žá&ĊˆPv,¸M;•Jß ûWµ`•ßÂĜ’mAğ²é… E£ûĈ\´t/b(ËLĤHµÍàĥŜt3Uĝ³µ˘ĥ˨d•·ËĤXCT(ê˜bö!+Êì²X³Ċs0İ“³ñħͳĈÔén†°-ô€É˜ÀŜÀñAr *töĊ·÷oêşÜ%òKSÄÀj\ Žù3 {4•}_$yġĦhêÊDS¤SûëùM`˘ÛTĞĵ)ïüá†ĥÁù6_ŜdUÑŜާĵWÀMŜä[Ñ#@w’żƒ–‹á‚'·u3Ĵ-apZ/‘mnƒí"ŸÑĈYĴ ÷™(‘ı@ ĊċŒa¨"°ë‡AZ”LP„àŽŠğ˘;ĠİÑò'D÷éqt§JCèTOˆî{V8Vt§Z"Ş\.‰éBS Gt6ağLDKN9êAħÖ"D{ÚuB +àħċ)Dıç€zr–)‘ÔœIĤÄ6'ÑOOú1ÄvZ·O§ßá_ûTJ’Ó&˙cùç›×żœÎZ[Té={ġ˛Óñ×Ç{‡żïè=boÏÏŝŝ÷†İ£fóÓċĉ ŭ-/Ëúçş)Wgùï›ĵíŭm˘<"şsvğĞ6?폓ÓnĉA}ċš˙_×ġûŬÔeH}˜ö&oÚş: dŞĦÖyİ$Üz‚PÜbŸóÂ8…$xx¨cÁïE9D •0­m:˙Zçr‡2Ñ`°b.)ϵI g`ˆMÜÁd#aÂô¸fÁ½ÚŒ ŭj%ä7ÛÂNêËß ˜ü¤°íE/ë rNeó“"^ġ™Żvàƒ)ÉĈtjĈÒİŸ„/ëÌÈZpÓ´ŻuìpğBьüdm["ôLôhfwM Ŝö{…"Ëğ/¨qH…“o£ġ™° Ĝ—͌۳|ÛíĥÏêĝvıi]j·ƒ‰“<ÛÏ}~ö„Ü775ĞjĜJÓ4`Èö³ĞŒì#ïĞ;K3YĠËáƒ;İ^nì<éċäÙtš0/֛f]·ùĝu¤/ún¨Ç –>³ôCì¨Ñˆ¤¨ż “ °Ŝo›v¸!ĥPß?R~‡ğáTÊä]w¤Ê?îì4(DĊx$Ĵ2µm¨…—/–Ĉ߂ëŜTvßĵ b9WŸ<ĤgÄقĜğú ÀcÏ OOĜú¤ıïë Zò€ü‚u{í>µNġ9BŠÉV?ÒɈ-i,DÓÒŻŻëò‚=QàÑĤOÏê[ˆÏa)phˆì‘ŽD `K ‰XġG![½pĝƒNÈSMXT´P‚9÷ÀĀcs >žB#oŬc`ˆŻ–Kˆb}_êôjċ_0ԋ+×MÚïŸòrĠt 8e+Ôlì ïDTòƒ‘‡­Ÿ{ċ3 êŒ7ĉz.óLPËê˘°@@úĤĤ҇uÛŜ‹ }ĉwí!„ğh_üu< 4h´)F$Ħĵ(-Î!V–ŸÀÇÔôı9&ú,ĥ­ıó rU—eÖô9R$ġ:o²n¸tpÈİÄ!À³ómö~ĵ@ |[tĵĴûۉ°K€ÊWù@{hêôÍ{Ħ1Zeñ>¸ÎXm·; b 9F´(öeÁÉ qÄ€.ĈA„éüQYpz…§'AĴbC]هœÔ  œÂ§ç;@J0-ñù3T!=›qî×𘙛šA£Lcş§àžħ>Ĉ bAóÄĝŒ~¨âŬCŭĠAĤ\=Pòö™q—‰›ëILĊ%÷ŭ‚é[RÂ)ñ7e?Ùȧ—8@TXB†ĦGµò`‰għò€^ħÚaRÀĉ8‰m*Ġ{l|zĈÖżƒŽ³ñ]w‹"#ßCŝéšSĉŝžû÷7òi0—Úĥğ‰ó‚BxE$•ĜŜ8MX_MÑ`(6]bċ+‡MÁGöŽ#b~ ̏ΨYĵwӛ[·_ĵ|ılĉĉˆ-Ġ&Û˘f1_(Ğ0j2œi> şı~ıΖs‹<¤HÌĦ—Cñħ0d'_ /B{µZċċıċhÒì&ïşĵìOĜ!Ë7g&€qš4!iÇĝëŝhŜž­TĞqÂÛ~oİiİ’ĵĵŝñä²È½‰endstream endobj 533 0 obj << /Filter /FlateDecode /Length 3031 >> stream xœµZ_Û¸7îCÛ•‹]Eü/úK{iŻ8wÉĥ}ĜäAĥé]ġlˑä,RÜgé×ë×è )Š”×r6Ŝ]ÈR93œ!óÒ§YJĤŝëŝ.6“Wo‰ÓÛfòq"(I³œN,…—"c,%rJt–jݧµ™ŝkşÀƒâ2ÓÓÛGŒ˜Ĵ&?£h’§Bc? °_žŭDŞó’yŞsx{*$tÑdú—Ǩx*2°ĉ„ĜÉMğ?‹Íôġ5LĉbŞĦ3•ÓëĠÄ͜LO™˜*JS™‘éġf’ìf×˙ž|ÒҜd‚+pƒŻ`q6­Çݎ)İÈAtĴâ·AĊW,9Zcy7‰Ùċzv%(úŽ'¸š}¸ŝ›Ÿ#Y^ÏÀġ–Ñ:×§ĉr\7!$Ís>˜ËĊŞ.ĥ‹Şlê ŒĜŝqU“ê‹GM‘Hj„ät0ESäùTÂş t;ĊżV÷ĉ“İghÌ'ıœ]QĦİ“˘ÁvS§IµÛUYv/4IÚÊvLŜş?ë²i›Ëy[ùħ*Ùu[k˙Q$›˘]ܕÛ[7´ôj ½3ġŞŞ7AMŠí2˜ÑŜoŸHĥĊĤ˘Éfß´ŬMĉîCr[~2[?\'fۖµYžXĉÑÔ4öĦ“r–RŞl,A+¸},|9•j0âĉĈ "փ1LÇ£nÀËĤ.ÚŞ‹A¨Ö&"ĤÒé⑋T1‹;Ž'YNˆJ ìĜröË;/.yÙ}à}éş°¤àI;Áû#’ ž÷¤ -<8Vi 9J€4 È#H1„4èGSÎUD¤Ġü¤)ÁÙ ñgÀ’j×ßofW$³Í ùà7''C¸BdY-²ı€H2’;-?ĠU[-ޞd_­LŬ8ú€”Ü.Öûg„Ú4ˆß´L$żš—m 7ċĥ5·6=ِğ>ïLO…€‹ì[/˜;şä¸ÌşXüb“.OȌ-p?*˙²LUŬĤ³+ĤtÉwá}U˙RÔĠŜq'$Hydzp:À$>Á.ĉkÓéÏÏBwöáNŠ+\ÈdG—ĤYÔċÜ,ƒ¤rë5ÈäY´eµŭïǵá8ÉñVÂYŞ&$°fžÀ€ T Û`RĞŞqFÇuÌÔqĠ{ 4ái]Ô·&„p$RŸŠġŜ4iìĜV”ċ ‹E…Ċ%™‹/):Íaîj°aşˆ0ˆq&ñ°‹ap­í˘ùsÙìÖĊŒbD™Hû)ié•%o3$¨#Ì„m`í£=ŠTVġ^…Ì.ċ°h“!?ö{ ‰Ŭ lş7=Ó·ĵ[j; 1EĈ_nvk³ßmüÀ¤HÉc{’ĉş£ä~L÷„׃ylL{W-#+Ûğ˘ġ“‚ÚĤ>•(ìg•Ì‹Ĥ\ĝYX!Xϸ-Žî.Ş Dï²o1ŻömÀ¨Öé½–ŜQ, šNU„Ï‘üp.?R ‰^'aÀÎÍlé°<:TN€A#”? ‚<ž5ÇG ŬÀ%à—Qք…&Ġ—²ĉ ñçú€+–rŝ iöĞijZĴä<Ħ´Ô}!,ù]ğ‡½eyúdjûğîíÏ÷cŝĝƒ$Ğҕ‰N ´%äHÎò/çP2uxûf&ñĥ³^İ@OŠċ²Ä]bÏ °CFÍcó)AóšŭâÎsçvx‡áĜ†K3ßßŜ:Iˆ&ğ}çö„BşLŒÛë$Š€ ODĤƒÂtqWÔĊ˘ “K€/S=˜¸ƒogMxS„ĉĤލŸ^ž,*DÖt3‚Úùğwúá‡cÂTûR8•µÙĠĤÀtÔ„Ĝ ßĉ,>Ë]ħ3Tu¸âÏ­x ^“³Ĝ½Ÿ½ŸpĈ!y’ph€ŬpÂOĝĝˆábÖżŒNr2ˆ–>–Ç~BüıÎllA 8ž²|NœżpLA0Ż }ĝqrŭûœrùm(Ÿ˜í|–ħ^Pۓ5ÖKqYÊyà²"â²ï f§ò?Ç™°g§ħ˜QüĊɇ&ġ§™ĥtïMĦÖ_6"$F)\U‹}>"‚2šYĜŜġ´Ĝ~…)y^ìzç/vc˜-ÜlĵbVß,J³]àĥ“.™²zŻïLm k&s–=WÔ.ñ]dfıž^ÙeAĵ^”[X V–ĥÊ{ î&@ğ { ìŞäĈ|܃-Ĉ¤.YĜ1"™n1*W°SĴĦ×_H¸Od>e@Ŝqbà9–n£àQIO ĈFùÖ§\Ĵ3ğúJ˘Ÿ%pjÇ"Ĵù4Š”OhTÁh;Ħ¨‚éĈĜƒ÷N[0½—_Ë×,ËRûj€ĉC…Y…¤;HĠ‘÷ğcŒ8U[ï{99 m]܇:öTêìÍmĠŞxáotš1‹;èÔï*ŸÎ²žZ4aèÀS *ĜPô Ÿş0xè&SuCW2 ŬHMò'ŻGro)tİÖóeŒäBúX¨íµB„3Ûúú]¨a…Îèï˙ĝñǧLF0¨Ġ@äQޘĦ0\>lxŬ"ċ)Ş0>â`%Q`Œ2\Ĥ³ŒĤ’ğôP…âÏ HŻ`UgG³"TyYTñ Ú2z/—Q›Dmµo³„fĦÍeh+ÚAŒ•,jŻ˘ĥŽäD}H¤+‹ßQğ·$2j{Hd‰ì!‘=$²‡ =§Ġ ĠŜċ$6™FjŸâfšhêrÌÍâx›šÑħÇJt<Ĉà9ŸB9 Ä t›úŻïúÌĝn×-+érİwÖŬKÛċïm.‘ŭŬ{w'Ŭ]Ï÷i Kĝ(5öòû\êż˘ßĴC.SǏ&hJ! µg3ìDJ1D †:UáÔoƒ?vWò İœPq.$’Žá´+P`xú|ùÊŝˆêXsҚÍnUŸ”°ìµĴˆ}ßĦüDšc}qĠïÇċÄÎöa €‰ŠÁÔ.q˜ĈGžj6¸$#ƒ pBúÙ1g2͙úÂÙĞv³{ġŝ{ûzµ[4Ż0>Œ(ΖŠÏ¤ÇĥMNó*šPÚfÌFc|یz/ğaBŝ„?GKíğĉ„†—ábȝhĈŸ‹Erpħp,ö0ċ˙"{Ĝ͇òܝœ×ĤXÚŝ,=.ÄRßt._äxŠ@qÍĝÁ$Šûg8•Nà™~w—T…gO1–$‚ßĈÎ.ŸËZ µ7HCa{!uçê`uÌ|ÏĤ2Ğqāŭ•ó­~ħâ´Èü n4†żìÊŜ*}ko-_ïWŽlàoéŝYŜnQ7 .dĴäWO§waŭdY^{)oÌĵŜ5â4ž5äîVÙ8ŞË šf@Ĵ=;‹="D*™½–Ä´÷k紁Ĉܖ\ƒèôóä˙·íÚşendstream endobj 534 0 obj << /Filter /FlateDecode /Length 2642 >> stream xœíZ[oÛÈ~ò#·TaM8÷£ 6Š Í&*úï-QĥveQKÊ Rô˙öoôœáʤlK²ú²™s›sùÎĦ~‹B£˙ùż³ûÑÛOTŞèĥŭ6’JËX¤ĦˆÑ‘L8'TEÌj˘”ˆŠ,úW´%ÄڄqŬ>Äh1úɑĉDpÜ'7¸Ï*"ž0˘„İ) b |ú Xhŭġ9ä?ù$ùmDb‘˙3ğŜMA9fdd‰ULEÓĊ¨ÒšFÒ™‰4cD&"šŜÄO¨Ô2ŝBO$“$IXœ¤¸Á,ĴíZ²v­‚ÏĠM¨l"U)ˆ@Éz"UÁKƒhŬâ³cqH¤B¸–*R· ÖFèŸ'­e Ż1k ‡ÇlrÁB2 ù"*†sUş‡³•D¸Ù€sĵÍî7‹ċ*Oñ _œz(ׄÛ!{_‘ä]HĊ˘I+è<àgTW2„rrĞ*U„³ä5^ŜeKô Ĝ M´°!ğ/qÉÖmjù!´§I"Ck1H Aˆş8¨jpmĦ˘ßn.ްK$¸ ïÚn|¤Ŭúo 1Ä§2+–éjùï£n4°‰È~Ûß\ÖÌÑŻAWñĉF'fçÒ)5[ċċ1 LzCš×^‰W½ #ĜY:·\ĦDĉ-ѓ„dż ”AĠĜQ!ŭvŒS lÔvĊè!´5àyâü!CÒÉ1’Bàڎĉ×ËSIŞ Qşs‰29JĜ:…Ò6ôZĵÁFĉÁ‰.Ŝ€}ÓÄ ;ƒ=äÇÒp¨ żwżw‡wŬ.B \·Ĵîö  ´Ԁ'V /]û Ñqş*óşPñMV5e6Ż÷°xÙìWqZ·,ϋĴn(t ŭĈ|‰ŭDşòüĉh2Ú#yħÌÖ[O;^¤ċŬ2oˆK`ğ\ßúGoï²öĞyZEMI"ú*Òm^7?FĽm ô(Š$²‰b ͇8nc†OtÓ ìƒXVMZњŝĵ6f 7t².{„ä İñcâV{:ĉ—=™ê%Cw™Ç9•aĝ´ë"kŸN۝²·êàɈ¤žíJÁ&ÀdÒ ´…ĊËA4>‰´âŻ?”Bv8ÚúĈ&¤‹(ŠvàİŭƒCıƒŞˆ÷zÂP}%ƒ Ñ^r Újßzµm 8ŸŞm IžĦmíĜîĴmk¨è‰Ú֎íŞÙŠ@,†£×Ê,ç(Œž!³„œN™YBşçè17ĝÒ>9¤ùX‡Ä Ĉ\3éZùD;DaŸ!4 u“aİ皈z–ÍO„E iâcî˘DÄN¨K|2ö(ĈĝFĊ÷YYĤc‹xȘÀ“ßĴ$Ïˌ]4GĠw jĞBéÇ€n %Û9òéc‘oów‹>°c4 qê˜c“Î~Mo¨êĈóìÍ:+ñ‘şı3‚¸j–Ŭ/Ç íj€£ˆ'$á´`ĥ+Êâa]•/‹İĉá†VHˆ£Ŭ…ÜVB&´)òûöԛUV^â£p#݊ŽżB5s€÷%3·Wn×_NÂĤ<·§2°Ĝ÷UžÎÁe=ìĉqşž×ßżpvOú@/·D¸m%µM! †Aï‰.è…}Š´­4µ˜Sĝs0ïŸ_+ó$¨V3‡´¸-HÔ"ŭtÛnñ=½vˆĝ&ĞùĤ“Ż„†„ˆ–ÄĴ×MYœ1¨¨ĵ2Üüû:½_˘Bh0Yµò D†ÉOV|ž´nàÒ7öß~ßd˜BÁiñэTâÊá7›úğôkŭ߸líáñĤÈż.ç™;ĵ–eM›íX}h:gŸ,9àüZutĴ9…Ħ²kŞ ĉ8IŞY‰3 XánŒ•€cì5AÉ[“:_“ÖÍT:‰ â¤ĦĜ;׀šd vş> ħŒâÏ †Sü‰n†}âY;.…ÇŜié£ż‡I&Ħ ÛİUï'_­÷ĞÁrÀ½q‘#ßÎvñw àž|̊2__ĥSÌŞéĠwXX¨ñĜÒÉR€0ĵK1|}rBáëZ²JK2ğK‹tĥ…uü; Ŝëǽµž1@Ô&zë‚`¸ÔĜ‰CĤĦÒ·qˆí‰J?LŭdP$$c =T‰ìމĝâS~ïêV*~_¤ëY,/Ú MĜ żœ_µî6ïìÈ€êŞ-],<éÂħüˢÈ2²(.žĝÙ €7Ğı› µI+?)ŻI_U``Fiäê.îJÓéEo’œ˵'?Ts#r­Îŝq½nĈġÁP~·W@&éÍ*k?ùTi›ˆËv^_>ÌîZ-Ò²íZ8ĵYĠczí­ZTpÀ­sJ e$Ù7>эĜ‡ïƒ›h‘R‚ŸSµöp8> stream xœÍ[ےÛĈ­ò–?‚%ù,íÎbî3ޤʑmċRQ,K›äAÊH‚ğ°I‚&Hɛò·ä÷òéž 0 HîJ\Ê)=ˆĉÒÓÓ}útÏìσœAŽ˙Â˙ùÙċ+*Ġàş9ûùL2JrÊ2FĴȜsBĠ@À{)é`Uŝ9XœċÄjĦr;¸G³éÙ845DZl—‰Í Ħš)"y;° ÖÀÛ÷0ƒ‚&–ŝxŸ^ 0ŞÊ°2.óÜĝ‘ÓÜŭZ]ƒÔ-{ŝÏÏ`霙%V15¸šžy0È@3N„ƒĞùٛìñB2”eв˜T‹k|!IžËl}SĈž­Š÷ŬğrĵWĦЕٲ¸ĠĊ$6PY=y˜yÙ4Ċu9ü×Ġ_ÎğÂöŻ‚ı”zsĞĜš_fżğHf ”Yc8hŽYÁÂÉ,³úİÒ;ĉĤ0Ğ1"ŬéíYµ^ŭĝİ+˘ÂÀhş7êÛl=çŬ ım‰ÑĥżĜŜ#`%‘Ûò'Ħcêìĝ€´ğÇf9ôí !)ËÉÁ3{˘ÏJVp^ÍXotÚ£Œ(Á·Ĉ/¨1` |pŸ,bĈĠ|!zĜgóe-‘B´pŒqFLÒ!ß %µµŜîTĊŒĵ,WM½8_è‡JÂe_((DLAF%µbâÒ(È!•`( £´9Yœ*ÇĊbŭ,Œ§³bÖÔĝ„İlTş/ÙĤ)'ħ ˊ&´Q‹š²lٔ›I›IĜ˘ġMtC´ŒmZĈ†“²ŻŞZß ĞG?ĝvíŸv›Û:)-Ä!ŜšSK8;èö÷è:h'ÁÛHGs?żO ;0‰ˆ@´wşéޞ‡'ÊqbËi5{€P@UڄPµË=C¨üÀĵSż ÚQ ĝñ kĦ·HĊÉ:M€ñá èH``TúħŜ.Bz( +xx gĝ=¨Ò^ U‹buÛ1q½X€˙V½ÍŭTğ˘ÂĊq' Ċa'ƒ|0 xeә½ù1Š$CâβcıÏ>ŞĊ SŞŻğzY.şŬû}Ş;$Ŭ„€úıu&e-XàÇÏXWşGĞÑ££È R£žĉ3à.2Ħ÷ƒÏŒ<9¤:L|äI&z(äI†|‹ŜÖCž‡[wmé<ÍïéxV7Çx˜a€Ó¤C~¸€‡NéĝÉnèì|­›½L1ş£aR*Mriŝ_Âo"Îi èœ òmÜĦžċV0î–Á5“9•‘w$SÚA\‡µĤ›q 'W„ĉa÷Ñdxil—É™MS6nq½pÄH¸ÈAÜfĊbâëË@䀸ŬĦ5ıŸ‰ġ3à´,*GH"pc;I³Ğ›Òç{ôİ$D!ŜëòêċŞ^×Ï6Ó]‰I2‡½Èe_/Ëbü“³jΎ5HK˙„İ‹ó+˙ÉdŻüÖ¨ÁĴımÖċ<~˘Ùşż!ŸjÀÊÒÈĴZLëĠĵpÄ%´WY1Ş7k§=ê­§˘’{ğDĈeH Üĉ0­0¤FÇÄŬdÚğĉh³öN6Ÿ!Pè4ŝòObâT*í­²WĦÑI6…ŸDVEñ@;ïJ$n%ËĉĠ˘š³8$Òû~ó˘ZÌnjrƒÚTÍş‰‹!Çó’Qj°ò—uıZÀÀN[*¤ŒP÷¸4&˜ÜíĤ I˘ùĴŽħÄx¤†<ËàĜŽ<öD£]´ż|Ż-“S˜™Ĝë]È8šĊä”by°XwÒTmê ÊXÀNNşTxtÛċş¸AÈk@Vhi˜.[˘/ìÌ 1,çĦÙ7ÁÉz˅Vérì˜ü¨ġÎŞÑ ™ğ“ËĜŒìʳ…(˘ğ”ÖßŜµ?ÍŜÛĦŸeC3 İ´Ë²- Ö½²ìŭĵ> QX-u968àꈣĞí !Ĉ—pğ)ͅĊ·ÊûÊß—Ħ7şŞ‘÷~íÀñÏ˙V-â3ÂA1›Ġï›ĝ]ì7Ö6Ò*˘%K'żÇğž^Ĉû‚·@î%0ÁÉá75Ù¤j–Ċz| IÁóòœĥ>İ<ÎĴÊĜÖd‹z‡˘Ùuı(WĠ8P,ŭ¨‰şTöš‡Ñv›rєç]fÓ İmÑÔUÀ4!s"`ŸQU‹òŭN%dYÁÎî H˘ğFM‰ĵ­úwık<+Ñ2ĥHÂik?ài¨ûDoƒ™½.÷ŜXáĠ}ӝû×óQµp!<—ìK´É@ġ3-Ĝ½ c°ŬÛe5.†hq\Êl6Üz(…°ħwg`~Žƒżó€ıU4{p·ı´ŭuŜ\}=7œıĝ{Ŝ½(VכyıX7Ħ|{@•ÂĠ·ĤpQıUÙŬ9ò™A֟ĠùŜëU1ݐUĝ@ï˘ÙvÁ2/T}ÑĞŠĥšó2„%BEġ}•t—Í€BšSĞ=Ċ9‘b›„bż@V6¤˜ <¤âk „§ü4ڌÜ2òDJ]E?ŭ‹@AğÈ€ıĴqı*›¨wCq:ÌgD2ò*ĵĥ¸Ż×ên ‡·î84#Jħk_Òp ¸šm)Ċ77…Ô2‚,\ˆQ,ANá?úGW Œk`‘M\S íq¨fVŻĴŽçġI ‘H~ÀħÒûp7váÂ×Ó.9;uvĴ„pÑŝIUzZâ„Q{˜çöĈĉŜİÈĠşPézċ:‹u:'âABÓó´hÊ1ġ*Bİ/”{š=£á@âÒñ:?†ì P7„g0£×F&sXÔ"&Ċ73 o üW¸2³ûy÷Fĉò~@9Ğ{îO!Sc` Q (Ú‚&s§M1oëĠĞA<,$˘´o:QÚU)0` Hɪ›ŜŞ0ÏT颔FT?¸*Ž×ˆ}­ †Ä1ğ€'ŞàŒ˜ĥ¤żò܁ü/>ÓÂDPÑ̅…ĥ ‰@›‡á wM˘mĤ{ÂAÊ(`….=y‘âÄ£ ̙ĈéL;(ùĉɓĝE…Ü)ÈË\"3˙ĠŠG[áŜfÖäıв8Q.ÀYöm=v)¤ĠnR@ÖéYG k·fĥo˘.Ş3‚Ñ]k…¸•·Ü# Ħ€dİşŸĊĦ¨‚gˆ<½š#˙Ŝd˜“ ˆÀâ9 >µ¨œZĈġ,ĵ­Ú‘7ÓİÛù\É ·Ö÷áĜçÇrèŠ#ÒÜ ÷I3àl×ċÓO!œğPÈÁ#-ŜoÖëċÓËËq=)‡T⭅Œ\×ġġÌ?RĊ2Dñ²XVÍ?ëf9xXżÛ$ŠNµqċ~½TŠ­ġ6—“zÜ\J˙’r /ËĊ¸ĵ/——qJP½IÜh­ò7Á<€ş‘X[mğYÏg_lßĝiÁ"ú|‡'Ï·ĦSö@1ĵéÁc"Ċ9މ­A÷ f 6çÈħÔħ­gĊœh<} f<Ṵ̆„Q)ÊÏÈJ(]Ò½€`ßĝ'G&§áw$ĜŝĦ-‡9µ[栗ñìıß!ĵ3€fšK—Í•íÛ_ŠùÒùÎŻÁßwy*• >SB­{ÇҀ #ZplKçQĝ›˘ ëÒ&ĞZvқK2„™P{ÚĞDĴz$yˆAnXsSR}>ĵ {˜äİpŠ=ozġ|À9´JĴîŒe­%ĉÙZPkB%àxbáÍ]Ñ@ƒBÚ;ĵsžc…G{—żbĊ–qÌĤeŬ³2(DF‘L î¸ù·Ilö ´eFtċ)cÈŜ!gRdïZdġ*6’ šc™Ĝ–RÂ×@Zî Y½ġp ‰^›€úêŠqEÑħŸ,Ċaûé\LÄ*”y}üaıÒĉR*wWd# ëFıj¤_Kè2sêkÒĦ°N]Äôù%ÖA½NŭùğŻ+AZË]ÄâwŠÍ)' rÙDìŻï:`XÚ=qëeı*Üm!Nŭ}ƒŞ‰żY(h£Œ˜PĴ ıšŬv2M&ÌüŒŻġ<ŻÊÙ¤‰ÍıŻPÑĠÓ|?ŬÁB¨y6†MÛÏ4VT¸‘³*אJż‹…bd#í='·žT_ĥİmóşöNK€˜Ş! 'súóĥ‰P+'ÖK•éwŞWrġ¤=Ŝĵıkĉ\¸é’yµĊ?èİ­œĠ,Ŝl:™Ŝ00@Ġm½}=*V˜˙£?¤lF™Ï @ŒœÙĞI÷WBİö°Ï'˙ ‡”Sô—tżĝĵo8M4ŸAE­kÜ+PnyS/Êhc2hiİ€6™6HÍŞfŭ.Ġ ÑûSžÄU{5è8T—Ôú˘oĦ*y‰ ŭÛf>*W'‚Š7@T)˘yDX7a´vu2ĴPxĈ'Óı³GO8›ċo‡„£°"zp2ö‰°‚+wÉż§AW::uŒr%Ÿœġġ÷§ï_|wŒâ°Ž?¤ƒöŝäìá} è’ÖêSɈżO _˘ùM|Ş›ğóİǏ?ˆO%cŸĜ§R ~^ŸJġ÷âûgŝëq^ÔO›Òa_?0*ˆh˙üÁŸ6ÇoÊŭßôÁ‘Óoó./~¸ĞàñïhÈÌJµ}ü£•aĦ–÷†sœ>)µS‰"‚gñJq1¸°·î>&­ßM&ċlä굆ÛlS×ċìĵğ÷|(°ÌVâÎ ֍ŠĊ몭館dlöz]˙äËżÒdXgDÛâMÚîŠeW˜mkÔ˙¨8÷ö€³ì×HwÜùu\8$“mŭĵ­6xIŬ–Énc5Üfúĵ’­ĵeOİF¤$ŠğĞ¸ßżv5î‰qéšo Û}úáì:ÍXCendstream endobj 536 0 obj << /Filter /FlateDecode /Length 3953 >> stream xœ½\ŬŽĥriä!Œm€•‹X˙ɢŠ4i˘ ’Ŭzáì…ĈÖÌ8ħ-ŻĴÉtŠ>K_ŻŻÑsH‰?Û;ckƒ\ìX"Éó}<¤ò~\äd\àŬżóġè‹7DÈñín$áÙ¨;"L¨\“ħbœċF×#4Ë ŸĴFoĦ•,r-NJr’3hä0^ä†ÙFĊĝvô~Dì˜îŸùzüĠ•׌e.ŒRĞ›‘›ĦsʈU9!f|µͲuĠŜĠ‹É”S˘ó‚fğjŜ.ëÍdJ4!ı1Ù˘Ú͛ċÖ>|wġ÷Ñ7W£ŸpÖE^ˆ0C˙ šĦ_,e0°ˆÛ=I[šSš´rO•ÂäBÄ:Ħ„hÛê˜>ƒ™ċ\ÑD’ç´€ (ÔêÈîÊŬäê·Ĉ"gF#móĉ„²%; lJ8(9Ns³ ŝ~‡Er²t,s–}·Y,çe[í&SŞA˘³ċM÷75Y‰ŞÜhHïvċmĠż#vħŝmÔvùۄ Ċ²jÓ?çÙ'Ġj‘à€‡$°"@âa*à™Ħ1p]ż3€+rÊ(ˆd8_ĞÛùŞŜTC‰Gèĝ™³ìŻMÇc Üzş7Y}˙lïŞ€téSLĵĥ÷QŠ1‘†€&MŒI×ïċ˜À™à ’ÌÜ—ğï6ËvY–˙†Ix!‰Ìaşƒà iqà”,c°-ĥZġoDĥlwáGS½ż_6Ġ˘kĞ”Ŭk}ƒ‚UnŸ‚àۇ=Y/xrßïċ °Ç`Üí€kCïŞĤx́ Ê!@ 2g8o $Z9I3ğ‚ ŝ˘Lf€“ ŝVˆ-“ŭ˘‡Öŝ†m p‘$jöÉŞêëĴnúż+›rŜzkZ5ƒ[Ó0˘ƒìâB/×à*=èŝĉ­Ë)6Š›Şİv°ŭÊ6˜Äħg™DÄ>‚ ^ĵ2‹O{ú~g'˙B DwÓÖoÛfıızOECX€.Û @AèÇȧŭ?gğreòċ΂·ŻUŽiƒÚÚoà}ċ‰ßtŭÒeqY)wŭ²Ÿ'^1žñ}Ĥ$ĵà­Ċ´°ŬÎq•BĉTRŭEç*wùjı:ŒG°Ĵ¸¸(„ĴBgXĝ÷•ž¤h;ċöİɜÏžùùNtlè=( ú&8dĞ£§ğ‡&E”ĝħ‚cvżŜGô ü´u5‚Á ĈôÜoàö‡†/á£Ci"Ħ³~ÚXtRƒùhĊx}égWÈ{ ĞGlèV ’Ò[ßí \ĥÜ+e9gî<¤żBREƒXl‡¨ÔDB÷ó“;™jEâŞ]]W45&sëô}>…]ü¸=œÛ´wKÇN8fá>ô ÒžéÄ1Û~ç8fNs&!œ& /Ġ9¸›ċŞúÚÁí ,KŽB> ê˘”ĴäÈÛ^ĴÙż€°|=áöĵŽ-ÇA‰O1÷hĤ,HoVA+’Ğĝ²Y˙äĉx‡ ĤI XˆUU~Ì6€ĦşC N´kkÛ˜ıU”ÁÓ|2µ÷یΎî“ùeŻ˘Bw7Òĵ.xvc-ŒâáÀħv7ġŠëÜHÉ]„£s3t‘Ê÷Ŭvrì/‰ È|i ½ċaóÍŬ€\eıÛµż ~u;DZ.˘@†ébYûFìġdŠħ ^"PY{‘̲\ċ?VÍŜä?"ž?ĜûŻ;œfKˆ¸œÂ2Ú½€ëféÒ$7’ô#ajŻ÷§8›Ñxúż ˜ĊïħŒ} Ri? è1g^ɗ'ŒÊñ{$¤²7 –„x>ŒQñ3Ĵʉ!ŜZ dïòDQm-@a˙:aŽÇ‰JıÀ¨Ŭ3Ġé‘f÷;Ĵv?ğKhIÈ:ÊÛcnĜ„,äĊvOïgpzÌŝaëŜéŸmñâ1ž—Ĝ‘Ä'L%ò"[7(T„Bh•ê'jı8Äpb - úôñ)Ħ×ĵ0>!ŭíe´ ĞżP~,È >Ħ °á.߆$¨&!Ñlx J]Eò‡ lLĠ¸çĞ(Ĵ$Ŭ>ë2˘c#!sн>›úô0TçÜŞ,tq;Ô8Qžtšeğûíĥn0ŭ6<ۖ ~B`¸ÊIÙÎïìĥ·OŠ.Á6.½Ä²ç.Ç½pċÓijf„ç Ĥóċ0JsöÁú)fċjWw?DÙ2l7Ġĥŝ`î>0>‰Ò^\‰™ÍmSѕŽşĠÁ‹¸F[÷Qn~ö @< áĜ‡ašr8S`Ĥ\oĞĤô£%,ÄĤòĈ*ÖÛżÑ}É˸Œ ²ûazƒìZšHbâğÄ×§ŝĞ£~n:xLı°Ċ£p`PûġŞúï9…Ĥĉ>é2sˆÊˆ Ò:5=÷şÊ!y/`ħXÜ,[T-d]ğ°ÖyŬ4Ġn[oUw+ÓİñşjŞÊ+™>ĠPŻHĠÑ#:fĜ{½ÒvAŭ4[”m~µw}ÙZñ.c”ħ%,ĞßÜ)ƒzŭx{ÌşĞÉÜ^ òr4À NûİÑਘé1.E΅éÇÊû&"ŞüL9C ó™R0˙ÜPÇ$[GDÓa Xö}½XŜ<âÚx(çM4¸)ŬÌh.!Ô$ ĵĞ;žGtÊn ˜„”qÏŝ<=´´x Ïu:Ĥ³‡†m"“³ÙÇĦ Nˆ˘^ÁôÄYÙtÄÂóÊċzënĈĸݛÓf˜ıL>š]Zş;6AĤĜ¨t~׿Tóŝ6%FÛÖèb‰&ÒŬ3ĦŸçüÖŬ,ÒEĜ …°'/ĜtVhʔ°&Ĝ]ĥŻ„;Z3nÛX;Ġ[Z 3&ke_FóûGfݚı×é/çà’I>Ŭħò¸ÁLNpÏ~š~·‚/I¨ Ùú`‡‚û éĊñiµ³Á×[>ĞhÑw]‡˜Ĵ?„0çyĦŸ>èûĴ.ȅÁ‹0iüWÑIZ(2Ĝ(‘c!àx5GK`lħƒjNFü‡k{„IM=ÛT—Äü`€ ‘Ĵ'ûy?_ŭ<ÊÎYÌáĦ!3´‡‰*7öVBŸ™ĝçÁJETHŞFW™>_‘à à™Id~$½‹95İŜ _êÊİÖ.J0ħà#4IÖtI‚ÉÎ%•ç.‡€ġ!%ôÁ£ħîĝ£ÖÇ5ü ùÄ`ġñHŜĴ+wÙì=°ĉÉF$ÉZÒÚóù벖ż›g!ŭn\ĝjı¸¨xÛ‚Ä4|Ċ.ċ˘b類xêü™GÌö˙½AP?Ùâ ̽’£û†Ċ0mé£×˙œy_btw!ÏĠñè³ìm·ğ?}ñĊÜŬG) $)7y3Luá>ġÜ65FRyŬÜ~ħ-çöŽQ2û(óċ››ş­żşży^QíÈÄ$Ú#‘Nì›Ċ˘Z]Û3X,ñUm[­>ï“Uö· ×+ÁܗÈĈMüµ?Y‡´K{\‡·mŭkw„Ĵ³jġ&üÓè˙Ytendstream endobj 537 0 obj << /Filter /FlateDecode /Length 4458 >> stream xœí\Ŭn[ɑvïˆ<áÍĊáĈ<é˙cĜ$˜I$@ĈÖn.ìı ¤#‰ EjHj4ò,y½ĵFŞúżÉCR:´w×ÈÀĤZŬUĠġUWUWġŬ˜´tL_ĝ˙ê~ôó·TŞñíf¤`ìiDĈżQfdkíXsÁ[ĞÇ÷#Ħ•l™J#‹Ñ;œe["Ĉš Úr˜”¸ ­ċnߎQÇsŝğş˙òù*>V­´Z/nF^ :Ĥ\ĥ\ Ğ[Jíĝâ~ôù—nq=™2mZBd³ŭĝM½ĝíèĞ‹Ñ7#Ş ƒ…q …2hÑJş#[@ƒ^„À‹CEóĦY–áG&›u÷ÍĥŬġ‡Éd ›Q:Żd{+‹ÉiC lÖ2š7”Š %Œ7-“%Fa¤žEĞfù‘ IJl+e %ƒPÄ‚šs  #¸WáġêñrBmk•͢,ABġ´œËħn…f½f`{ñ§=ħ™l•¤ V^\ƒ ßO˜)nşĞíjíŬċCŭŠó(ר'd;È*HÀ³Ĵ„*Ĵ•MÖhÊP§İ]Íĥ¸›ÌtŻáè<żt’ vñގ!Ş5• #%†Êтwı/Qċ­aƒŽa&o1NŸóċ–³= ĥדl˘XrŭPÌ*(pM*Hĝ˜%u[7 ÜüĈ€˘„ Aí‡ '.dt׀Ӟ3,ĝ—ƒSf˙eà”4P!ÇŞ“h+ËĜG*0•5-L #Br˜´¨NÍàLûràĴeqä\cX3ínğuŻŞmĞ/Q´DEO‘&üù(&%¤‘B i-ŝî~²aŜP+0 `g}pÙ(sŬl8@™é‚OÒÁ.b>fÉ2ZùuÜĦj9F+ ŞĈğMô‡ÊrˆY„ sŽTĤfàU>ÍH ˙ìáEbiikÏS.WĞĊ^Œ+˜&s;Íô¨q•<ĞÛùĠlñ9.i§Hżà’–•qÍJH(,L‰bİPԆ·ċ½&ñVz×’ÑPHŝğÖfğžL)îGh8·=ŝ"I1>)ÁqD³ŸúˆSŞZÔç8šQ ÊI e k(3żlP†pi°{İñj2„Ë çNk>nğMXY€ 32„‚˙„VÒC­ Kdĵ<‚a¤–Ö£RÁȰ‡Q•#¨Š´F„˜Ŭ-'_–µlï{0ÍüʧùÇ4³˙B _Y âĴ„¨Ô²-Ÿ@§Àzùx “Ü5jH &AdCZĤ}Ù÷Ûlf·Ŭ~hÌ|3°'ù‡ħ`ûNôİîĤšĠĵşüè74$ÑĴnb;Bsµ˜m6} ħL'#ĝ}ĜŜÔjÈú`ábنu;J˘Ĝġ“¨›Ŝ$ ~´"LyÁ6q ôy[P­ċÑ{¤D€’A%€ £K% DŞÂv9j>Àäĝt“q”îŝçµĊ{ƒ‹‰Áüİfv9Ħĝ‘pl—˜J½Ĵá-Dl[Óüjµ^w›‡Ġòş[^Ċ9Ú6—Ŭöİżâ`˘ïĦñ$lhD‰?͖ĝ+äJ-ĥĞĝqı3kŬm×ón‚ıÔĉû.,–ß×ĦaÖÇHİÙŜu™=Ĵ“°EÀë‡-:y8â.é°²Ù´ÑzœŽ×Ê9| —'žġ›ĤHىh€.ßìÊEDŞTóç ò†L4ËÙvŝ}҇j”˜^ηQ6ê=Ĝ0і5ࣜ|š7›×“İ’ÒQßĴ2ÜN´rXjBQÎ) ʍ1ĦQÎĈŜŝa½Ú~ùxÓşZ/6ï@y]yŻ6jMËDÚçêa;wŭDĈċdÍM#ÀäU½o£áş™Í`%.z×TÄ+üŒ IÛÇu ˆ•…ĊÌĞ^ƒêƒpİ[ * :êM۔JŬäI³âóUà‰#B4>”GVĊô(YĜì ĵżS28¤ùµ˙ċbµA}ù½ë‡uw5߀jÀ¸‚­PÓ\ÜyíÈ­İBk˘ıî6Wëùew~ §c§ZŜĵw‚k_^°ŻPLG ġè&„+á]3ĜdzJö(‚1ÂÁİ(ĥHo* ocÁòŒûÍ@ ³Z°ï>ÓùĴëΊoYcpüPór3ż]vħŬŽòl hĦ OĊN6¤ĈYÓfí}7’ ,ܨÀÄc#áĵjÌà‡zŬ˙8^‚š­pğ}œ^1şñ¤İÁÇ/!Ááró c,ĠQpׁ2šŒ> S çûufa”{F¸ßcş˘]ÉŻg$ĴB˙ÍAĝÀÇ`ĈŠí$|cˆà$T™ ĵ_ük %‚Ž™\?J A‡œµäñĵ7˘Cô(N”ôŜ7ß~ s4–˙1­N …ħµĊCC„8Ö6âj˘ŞÚÈĞ›Ġêrĥ~•÷Pûœ3"gf™=Ş9ôÙħw"¸?XWEÛË5§aïpBK‚öòÁ4¨NJô 7Ó+9`˘pâKV?ŭ,:Â,ŽÒšÓlÓV—µĦ†ĦĠhğ£Ż““D´p'=´D'çÀ-x=ZxK79´`Ǚ€ġbÑ%:AÀ(lŸ3Ѳt$İvul‡ĝ7ô¸*¤2÷Ŭ›pĝ !H ĊҘÍŭntñïĠŞùµ[ƒ›5·SìLéî!{ˆ”!D#ċ˙ÒíĠêŝUÊu(,•`>÷qf tA×.aµó ë˘ûÛ°§ïÌ$jĊBĝV”9¤l\$}^í‡nîĜ%½÷)9pá.ƒTúĵĠŭ@¤Ĥ>_öSfÛdc³u\Ÿ‹Ġ“ŸH@ûT#Ğ(Żç·w[OŭÎ%à‘˙f~Ĥ1Ħ[^ûTÈq‡dgyۚävĥí’`e£zëġìñ'p5("8Vµ¨wle˘Êl OqÄ]‡ÀÇí›K Vá qDÁTef Ì ĝH˜3ĉ˜x`o¤áËÙ"f!fçĞL ĉŽb) ‰ħkj‘äĜ²ĉ “_£9Ùċ‹ġNÓQİe2”%K™F )Rb,,A#ġ,N³AšċG*¨Ó­2%TFĝÚ`D ²]-ġİ–R!OĊ2ßëžBo•Ò6–ne˙y1‰Ÿ(~Bµ˙X­Jġ>V@ž!˙zöÔGu~~:DĈÒXùt -Ŝ6jL*ÍV™UšĴK0ž3˘u…‘Êş(c­.K@¨”CŠ”Ñ¸\q-)}˙ĉžR!…ÊQ| Yİİ5£—8EÈèP‰*úë{ÑÑìŒÎA™%q g'WaĈĉ¸LG-fŠiC%Ŝ&­ĞúFŠCe…Zßš›ùŻsùê!u@*$%žMisD*NÁ7Ècħ£2¸òdšE˙OrWñ„mĜ IŝĞ>!˙ ŝĞwoŠ?›Ôŝ½%ıOá<ɸ—0ŒTPút’w„‘A}:ѵD…>êċ=Sâ™ím Ïd^ÏóŞ-"İ4ÛHVi2 ‚ß1ĴÂc)M‚YĜŸûĤfa$à=ΈìEŭéżtÏÁƒâc­ĠMŞSW֕Ċ/ìm˜ĝÑşJñŸÊ̸@%1Ž0 ·qV@* ^ôYL‚ÉCŜß"ĜJ²Ŭòñ~_m‰gVä@žImÏOx(?Ŭi:vĵOÙásütÖiĥ‘ĴÓd†0ü’Qaa¤² EHKËĴ.Ċp-ò’hšA2`wŸ‚{ñ9š] >rşyğ^=>ìÛW’? •?ÙW!˙‹,\kı%!ç|²OA ww%|;3êc,ì\ÈóïhöĦı‰lJÚ|!ŭ[Ïìáa½zÀ.&é*ÏÍ|ĥużVÔ1‹-÷E÷˘EE^`›_š3ëïV ™xܳwŸcŒŒ fï³÷”Z1>oäÌü_=÷5ePk+•{ÚĦ`dÜğÛ!‘²ĈüJí~)$[q)Ĵ8h²•“#/x§–·Tˆ1˘kQ½ğsßŬá²ç_TCMGàÓ#ŝ kš_Ä`?ċÊO~}Óıhè—W•<, ÙPɗ7˙êşÎĠ-ŞÓŸ½ÀıžXz)W²ĜÔż|…•ċİÀoÇ:èXkZìÀŻ‹TsßLû ğ¸żî§wî%WúÂĉ}·½[]·½Ċ_ì7ˆêSXJecFܗÊU\Ü‹:Rêçş\Œƒ bcĞ)½˘ÄÚıœ9¨ôjĥuŠ– Ċò]]Öï‹îJœùĞ8Éj?IğRká)”+´ÎÑM·uŻÎցöġD)oöŜch÷L˙”Gäbύó/f°è´ò/O"1şZ-ħúğ2şô i‹ĦÛÉ ]"›\è~×Ħ#Ĝ¤z46:IJ5Û´ÌzĥÙĈIި(ë˘EÈ:ħs[ĠeÙz=û8Ħ\àınPAš8   <2¸T'ż’2-”ê×IIŽ›Ù/Lgi'ږŠÊuó¤|áżÉ<ĉq7ĴñĈ\ş™Èlœoç³Ċü/]°˙ÂU¨uPZĊìs ûP0˙*—œĥxk`œvħ*›<µÄ'T„ûìz(ĤԄžž;„ŠZêŝ¸ÌÓĵ4Îŭ  Ä2R1Ĥègé߃¨ÁjQšßÌ6_Ï”ğÀĥ:KxµŸ8ލ‹8FŞ^âX½@N°´áŠ£´¨)ësżw~rï‚8ĥô”ÒÜV·‹î͛lìı|ĵyóĉmw³Í#=‚żàòÀ+§G:ż J`Ĵ˜ îD›gFÙj‚ŻGùcŸGĈğ¨$İ}ÛórJáÖڂ)Ĥ§JĝQi84ż~7œ¸ïÇwSÒàÛà3š02útJ!ŒsÍ"òÁû×OıÓ)_Ĉŭ|Á½YvOç<ˆCn,uµŸĉC³}ÜÖàšÚ?tëÍjùúÌgŝÇ°ÑŒÖŞÄ§ç Gq˙ùyş>0Fs^ĞŸ˘_ĦHlîFĠŠt]SĈAm\ĊcékĥŸG zlkT}Ĉ L-ްà‚ÍPKŒĥ]PüŸ`R²z…–wŽ@´†ÛĴŞċïk+Ğ.x1ž|ĊĤrĜÏá’+ji!MÔ<ùGj ´}ŝħê+9B}°w$C ßk,yOżÍ-"o˙ûĞŞ‹›Jü†Ä1ŠÄ“)ìG|úêúş[„?çĈmóĜm·Ŭâuü|=ĝ@Ž™ħ{ ÇÌyĥüûjoD˜{/Ó½É6ïĥĞ?;rVšĤ[|tÂpüòI5€ÔU/I´ùlWÜâġ“b'â_‹^âĵ…/]kżî.׏³uèpU{–ŭ-Ì6úu&Í#½*|CqKÍM½yŠq~ÜO°Éìŭ´Ŝüendstream endobj 538 0 obj << /Filter /FlateDecode /Length 2582 >> stream xœ½ZÛnÛH}ö#„ìÓڍ;ì{÷û’lf€ÁnI<Ĝ‡dd‰ĥ5‘D‡¤bĜ˙ŬßĜSMR$eQħd;ÈC(³.ŬĠuNUµôyœp1Nè_ŭ˙l5zñN;*FŸGĈ¤;afl…˙íXÁ•W<˙gĵ%<8m“0ş‡Ĉèrô[4­¸V$—pkIÎsĦ!gı²[˚żŜ……H_îâ=\$XÍ瑈›×˙ÍV—çĜ ôfx°ÒŽÏ/GĠÎĊĜxî•ôc'%7‰ŸŻFĴܔY˜.ùÛ4/²ġäüÏÑës²Î½HŒvœ²‰H0· ëö8ÊqéCÏáB %\†›Çƒ‘Aw‚' ²çèrħL˙™³|qƒ-ĥ^›†;­{Ĉ?²“Ǎ•”–ËÄ|‡XI%™ĥçi=] ‘‘\·˘Îêmd’$x< NñéÀò‡|9n|?‹Ïßŭŝú!ËwĤúyÚ9ߖ'Ĵ31Ïş :tx"$RéO kôyrˆ‰êñDĜGÎt(â€ġ÷Ñú)ô`½ä‰…(|`œ‰DC8°âÉ™‘†'‰dÏĤóyžĊE–}â7yVfÏ&œ˙“ĨpŠŒŸÁ–^Ï­Vç°*ıPÜr˜K°k)Ĝùu:9“ŠÒB³›él"ÈVìÓt‚'ĴËħ+Z ĵc$,4Ù*-ݳ9ßúĜ˜ħZ’o‡oĝÁZnó–ĥ⪜ıŽ? á5O´éj`]ŸĤWµÖ +‰$²@jĞĝĦ^% * ċlşĤğ‘ì"­_xË6EÚ+³ĉYħ<-óEú%Ê:`ċġVQm×VYĊÛb–Ŭl?Z6-Šlĥ˜–•ùJävQ^7`mQl?üeÙ¨ Çĉ-‰ PËŞxï‚C8*{˙:¨° a=·b§„şû”a€‡ÔààŭŞg×á“VÏ£GŻž]OW=Ÿ>VMġìzêİQBŠ'ÚGİ…™q`&ĠIj/‘ŞA} ANp/[ y =èoĦĉOG™ñù"ÔàïYËG -YŞxĜÊIcè°­7”a‡rž;"ìÎb@4Cyc޵ ti.¨,ö>ÍвDUìËbFĵéP™„êñ&ĊĵYtˆóP’Ü).H‰ĥ)"îšŜdeċ6Ë.7Ëċ×ĉ£g‹ĠÍ2]k0?–­œfoÒtNTï“ŞÀDÁş !’D³Yĥ^§³ŞXkz˘Ó¨ IC’3”Ĥ´ŭËğ·ŻIŬzŸ–‹l]/ *ö$áû%ËPm(,-ÂN葉JWğ|K]Ĉ,[’Š~ııĵñV@“Á^Ġ}jp'~Îp-:ÔĜ|üòÜÒ>ⓆÍöċÏdz­†rş>+²M^ħÄŝ [..òi­İ5aó,-šZĥFĊW‹ġlı™§Ĵbħ pމXҏĜóÖòĊĤĴŭzÑTëúĠĴĥ[İ‹íòD˙!›x–N‹E•2v8×û¸ƒO•éĊ2492·n{şŬáP)Dë_£óżĠĜğmJd„JÓİDĊ–eÁ8V[›À(=Ħ*1Èê)#·…4ohEŜÈ.2‚ŽÉĜ #‡`héc3ր#}•ġÁÄĊÀĈgÛ ,™CŜ·˘"$:]€D› @jÉ]€& ïíq$DaèĦıjşÉ ?€*ÙŻñƒÏ*vk”šċ%Qe%G.PĜvPbeçq&˜ü~˜`” ]ĥ0ñUŝÖ0‰+45L˘ĴîÀ¤–É—îëĜE5ż*1Ħ† ÙKTÒq TÈ2ŠICydĴ=Ñ=pÎq­ëœjä Ô̸Ċ 8NÄòô&ğ­Ŝ”×Ó²–GŜwŻX*D7ş<ĜôÂŜ„ĞVw—È(L÷iFö›”hBjKo×ßĝÈÙyşDÒùóşĜ%nKH´EY3[ġ&ğĝ²È6ES=ğɊbqħX.ÊŻĦT<µ$ĤëĞlIGˆ3ŬjħÛl³œ·+¨H.°UVTŬĤËYĥJù£t ƒ¨ìé´FlL]wUCuÀŬï%íh´AÒk(·Ê…†'U$ÉĜB §_Í24’Ş'²cĥX_QVÚĞìâO$eÌ_s*&h{…Ù;ŽĈŽ’dË>éi=FHÑ‚4ÒÀˆ{ Ë4ı;pnWeZü›Ö¸^îşót=¤şş@Ġë%@Ŭ’ ˜Œ‹ĤQġì_iV”Óġ|šo›˘ç4ŸµêÈÂU:ğžĊŞjT(I³ËVìĠ¤¸ż-ÁWš ~cgTDìíĴ.‚ÏIs7³†0[£ j„Q>k$›R_AĞAA}kP‹Lğ@l$Yqċ ˘Ö°b?íÁ^ËŬĥó*ĦçÀ?¨Ÿ. f)6ÍtĦ˵Ĝ7]܇=ĵ?ŭv‘ĤŒáùCŞÂf;İc@cfġg4€ÓöĠŞN÷zġǁZğj/ŞgĠZ[K*{ĵvğCÊ }Ş'N°˜áyÀŜ1ûq÷~dï<‹ŝŭınÇGš&½;0Ïkìdœ’¨óĤ3φ‹£Ŝ<{ÀüéóĴR;î̳w’†XİJ ÙM #ُ“3$ĥA0ĴcWħ‰¨n^/6—ĵ½Ğ‰ àµšĴ/ùš$4m’].Ò%µş•3ˊ´ÜG P͝íaš•a>Öèä$—GÙoóÁOG¨ó> „t½YíĊ˙“âZz´R<:°ğvï ›ż½ÎÖé9òu/Ĉ–‚ÇÙìÖĜI"ŜJ ñÖO‡¸˘İ =Ä_#öÁ†ô.ÎċÑ8mŸq;5VÀù°F˙ˆDHPü)…˙€‹':Ŭ#ÀÏ1@!n>šï†tŭ”ĥŽôŬ;Häï8€WTÏċÙBÜ˽t5],÷Ғ0ÔWÁJƒ ;oâWgDzҰġÓI c(Ĉ`ód¤ô3ŝ=›}<)a$ĉ*CJƒ;G”P²ŸÄIžŒ“}îċqœ´Ü?|<-%!6‰ÜsPJêĜíŭ°äżEİŞïêэXĥrgwĈ£ŭ?:†+yK *ì~Ż.9]ÜöXʉoŝĉdúC~rğû‹“Ç#İî1îœî1!U—{– CWzô4~Ïô z ›pĤls=¤:²B!ĉ(Pñĥœŭ·“É÷½îYkâ(¸#–R'ĜÜ!]—ċMñӋ³|ż  žM×O—“ŠÓĜ&-ËtŻ’]ĵŝy˘ogËé‚3T ˙_V]0ğŠèŞkĴJá}™}Ş~0ä> stream xœÍZŬnÛÈòjö"£"šp~9“6@w¤hħ(²½Hö‚–F67’舔Ŭ}–^_£çÌpÄĦL)ĥl…/,’3çÌùûÎùeœQ6ÎŻŭ?[^ŭʔ_Ô£/#µœsf$efĴ2!(ÓcĤ3*”oÜĝŸġ(£6—:³‹;ì-Fżx҂JëĠ×Ê$ĴST)Kj ܽ–X6ŝë]X|œĉˈyáĈíżÙjüÓȍ[j5׳Ċ(HÎĈÊP#¸çŽ&íĝl5"+69û}ôö R2%s•ËàÇxs˜Óù\RĊEŸÇŜt<î}h›QÂ÷ÎÌwô:j&ÊÊAŬL$´2ħàÁ }Â2ë hÍĴ0`ĤŝÁS?ĊnÚX8G|$?LĤ,“°Ĝ’ì·ÉTqE³Œ“w?ŝüáíä·³ż{ŝ¨Ò¸g1²Tj°ÍxÊ5Í3élt~\6n³.šòÚ-żN˜4cœĵœLyn %ÍkÉġO— Fô CŠċ’ş/Ûb‰–Ùg §Ì%8r8.ĥëYSVëÈB‘YħğÈÉıóżÉĥvóx fCuS/ŽsRćœ4ĠÒmŠġÌu4o.Ŭş[0ĞVWĊ·‰Âƒĥ$‹eU4Crp°gĴ]Vmš=›1*ó¨•yµ=_ş!R¨fĠş.–[WÓ$Áż †bΕ²C…Ħy,aĦıÍ{£İ@'ßÍĴ žnM'SiÑw Yı̈́ëp(oJİjÂ'ÔëìÄeœÀôN€,/µÒSÇnï˘áŬ@²u Iš›ŞğXış..\ŬŜħœT‹Äu.§İ‹•ë\ùzċá;ĴQ9Pï˘[ ˆ¨\I‡wôÑFċ bĵKJ2ĕ;d‹#€8LPŭR Œôüó4q ʸ5Ŝ]ıÍàXCqËíqwL-Ú'|ÉÚŬ< }@F£RYJñiĥMµ)‹%}ï6uµ~™ÄŜ)² ³ĉ’}%½‡y°f‚ĵIµ(¸ gh-z†D¨=3Ĝ^ëŸ/ŞêĵĜ<€.1|Ĵ§Ë œrp[ëñÏ*ĠĉHÔßÍc2`,Óa:‚ßÛ_vœ?·*ÊeĞDótŝ(clO‰è.Ħ9â3"³@šġÔÙş $ŬL™Öe ·—ßÍe”SÖì¤S½†Ašf ͏à7+ö² öɟD ×s$Yáš…ĉDqbŸüDèôú¨ /NEMg—ĊĤ˜Aaú“HNĤÒT†•ĝ4 ŝ·ŸÒıpÓğô‰5€éu€ûŭá{)kMPbJçĠ™oöG¨ŸžÎ•àh 0)½Ž(#ğTÎş‹ÎŸGgìíòĜ·Yµ‰£?z9Ğ2NıĉħœUI9û~˜ġXyDzµ_‚MË Ì¤µd)3rvé‹ŝ]î—óÍ~·ċŭPĦ›°a ÑÈöeJZ$•ZCJ,_•%${bµZt­[{PĉĤĝÚî²myĴ°ĥdšMéşò”D,‘FEĉžmÊ+Èza‘59TŜĦŭj—”M0‚R9ÖŜŸÀ&"ǔ¤ÈߚdW+Çşj:AŞEÖŬöĥÄožğYw‚3öŭ@’ -ݳ¨iQ/ɲŞ>oŻâCÂĵĴËzĠġ¸AÜó]gÁ,)“ŝ´vŜ˙ée_‹iןç(èfßċ[%}MÎO$ċwğ-¤Ù”"€9İ!QċĴ?—€ÚápçrxGĉ`ˆÀï0'ıĠşañá)2% ĦÔ9U"‰“Œ†>A"×˔W¤i âKĠcġ|Ż0}HĈ@7Ĝ|÷DJ•Ò#J—špL‰~8UŜħçC[ċ‰Y_U}#W!z”H ™½\™"cÈ|9Y„ ċħ4@Ħż²ŒĵĜ³‹Ħy‚€†#íŬo/÷£òŽFaJç !*ï”G8ú!Šïƒ ĈLY=*˘€n˜Ĝe¸üJeX÷C8?‚)‡wìEԙşê{bÊò§cŠPIs SvċWÀík™Ĝ'x˘8y1™â””Ħóŭħċv'7esÙ5žY,íY”n9Ż#q •M3H˜Ìi†náÑĦ {Ĉ€Š€Jöí^è6dHéĝêJAAg|Tdŝב°@›ħ·Í󝵂99ß6Ŭë–×YÊÏĞc˜W‰ /Ëş3GıWÌ2Ußjœû$µï AĈs5„şGŜÑ·+Ĵƒ Nß7Ȏ?=ȸa”ċß%oCŠÉİÉïQMŜħ§Paĉ”jú‹§JÜ\BŻpí‘wJñÖĝu0ƒLdm˙qWç>¸cÏÏi.îí܇É?ÀıqZ o{÷˙IyÀĴSĠL{X.¨e"ȌŻ.ÊYN~œû7— _OeeĈ Á—À‹Çq#ï\Ñl7Ž/Ä{C%ĝĝn²%)KĉHo˙Ġ¸u M}Ò‰c„ŻÛA#L)t/EGŽj2?Á÷ÛxĊüâkµ óÔħ€îçnĥ,6.îÑ~„²)Ö~€ƒûA7q‚“°g`ħ°Ao½]ƒħc&žJ˜ y ‰KùgàRÍeÑt şsÀ£âş(—ënŸó€­#.Êëu‰ç{6–‚òĴ›£żÖ~~$ŭtç̂Ïp~ŻáĝUsÄiċk•ċùö†'D§öˆÊën/ÛGE÷ó˘ĵvëH!Ġ ÊÄÉ>Í-ıŞêş<_~m`wÊĊ´Üt;Ğ›ġà×Ñŭ%``ġG˘BŻ68Á9²U†l $4^ÍĞY˙à&}[ÒĊò)@ħ3ĥ Ż(Ìï@uP¨ñ”q¨jڗd˙¨š²ûÖĊĈÈôß;ˆŝ ˢnş…Ër½ûJÂ&Sy+D/‹xî?UéJËÁZ·ŸntaÒ~ĴSÏ.Ŭj÷Ċ†Ċ7BjŬ2+ĉs@îúĵŞ>v{˨2r÷mQżòè{Ĥ‚èŜû~Hî)ġàĤ [ÈğSġ‡&Ûsq |ÇZş¤–LŠhÎ˙4ĝ=‚‚nÍŻ Tcfì½:·ÁŸ#ì °ġ•›•ÏBó‘K‹ÇqĈ£`ĵò#ôMqP·(Ä=öVĉQvT#L„Ğ N{Sĝö<¤)." ž¤¸iäÜ57. Ĥ_í•WëywÚé.Z^‡]ÎĜŬò‰!5Áŭ#ZĴÒNĤfĥNI[?‚Z@SĤPŬ`hôs‹†–ŝġ?: 0ÑD²?~à4Ġ瀷9ö×îÀżŒŝìQµ]endstream endobj 540 0 obj << /Filter /FlateDecode /Length 4143 >> stream xœí[_“ĈquméC°*İÒ^b1ıDv"]äJEòŜ*y9 Hb—‘€·ÙĜŝñwô×pwÏ 0 ¸ĵÓî^ž\÷p0ÓÓÓÓŭë?Óû,Mĝ,Ċŝ˙Ġîâêšk3ğë.Ò$µJÈ\ÂW™ ­-ü0ıÖ*›µw?^pš9ó˙­v³ßÜl;˓Ìf³›Û G•Ï4OrxŸ •djv³ğĝžİD$ó…²6ħ6g˙\vĞĥÚ÷M;_H£’Tpĥmšw‡}2˙ŭÍo/ĵıĝŬE:;³Ĵá3›h£­ üÒ֖6Öf7›r~óLı†IÖ3˳4É3ϸŝĥmúĉ7‡[7ïÑĊ„€ĊÒ|²Ñ}ħzWܕ°/%aݚş²'¤œ³~CŸné âl]~V—k÷œòŒġĊrOğm‹]yߴŜH%Ğ:żb."b89gE7ŜmxËXsFIâ e˙˜œÂĦr‘d0€äôÍò‡rĠß8fOÈ DkŒB 7ëX6"³´‡â}Qmqvxmvôà$EoSÍٕwĊżà†ñÓmp]§+Ñy™ä\Áy¤p¤Âşı!:ıĤoˢ?´ôeeYħŬ6÷ŬٍsÎELġ£5„[(ɧġg(ĴŞğxÀx@~×ı;¸n_Ş"|1”ġûŞmê]Y÷Ë6^Y‰${öò¸|5Ü·s[ÌıeM³ġDŽĜOI瑪 ™ÀrŞÙuĜ…a]Y´Ğ—*œOÑoÀÚÍHè7^³RXWOµÉä9Ÿ7xwD ·ŒŠMży,¤t]„û2~_ġ›”ħÂ˙ŬƒêĞUà)g›˘ÛŒÓÈn/Ž+·‘x뇺ĜU+8ó?Í*öĦl+·2íك³-6‡6Œ²1„‹ܰê֏#5šw5š§§˜*ҝQĆf˙›üóeX͜6sİòt™ġî¤<—Ġnż-Ñ\Iuġ‡0üƒ.Ei›8FÒú °‚NÁ1(9•ô‘p,òBtt:­ĈZ˘†%(êÛĞ\MöA÷›f=Ž&XĦoêñíJü- ˘óê›ċé ‚“Ö<µ~ä?ù°Eˆhœ´Òr@ç_Áò‰<×î'8šì$¨›ÄhUü´mµl‹öaÎsƒqĜġò ‘èuˆe µX:½Í‰a ‹²Ú22uĝDhßu‡²{R€ˆÀh‚K6)™O™B˜Ér=5e7F(uC8•Îż/ŭ Ëjcĵ‹œüíÂñn)¸êû}Óö£„ċ_;˙t釳·Ĥt£n‹önXMêC"Š£şqíuspħc˜}żİ~NÙ‡ĈÛAĜŸ°d[í*oĠÈ(-¸ŜjjÚAJ¸ĠܐĊsF KÌqVŝO¨pR–Ĵs&]X…sâËj[ġáĞöèĝYW]Vz¨ÈÙúé]³+Ç'7dĠb rz5ŞÌbö˘9mež0n ÈÎċĴ-g˙1ĞQc2eÀï>bĈĊ­#ÍóÄ t’ Ԍ£“ĥ*PF™ÁÛ{X,RZ>{ŭ1Kĵ!…ÇÜ-‡íĵ->ÀƒċiX‚5K[ŜS›7)OáÇYc7ÙİÀàò”O–ĝÏq‰g1Ş–#2Ĉ´µ|YŝÁ˜t*&K|ñEÄ˙Ïċٚ„[9Ħ÷–½Éqr”ĞOzœ\d‰ÎĤ˙Ğ—âì4•fB›?CU8$äÂLéAĜF°'’˜)@€YŒ¨eS!UŒZM8-£@ÍG€HôġGPCԟ€OO$@ 9ż›/xŠùŞeßóßÏZ¸Ĵùĉúğ/Oĉ˜´H İ7E—+Š ‘…HóÖıRòj†T ‚Ŭĥ%¤fuOıZĈ)ArSŻÊ9Û5]ïı† de´#ÈÎ0ù*ğ2°µxpyÌVádÌ`í‚bĊ(W“p‘ŒIŸKı0#HUQ<0E šŬÌ-Eʂ5aˆbŞċž Çm›C½Ô]*réCĴ9 遟1Tp XXC&ċˆŬ•Äš¤ñÔ´‰nĝ2‰ĉÜ£hN’Dû‡½ c$ċ„.qs)t|âDĵhxHĈávcÔ4p‚­6E[Ĵzż Kœû Ù'íĦCΚzŒŭŠ1pŬo‹ŽfhdĦ¤á£Ğhè¸_÷ĵmmmNŸpëch7Ôï|)ĠFŭÑÜéÏ×CŠdÙ}4ıoĈÙ{á pD”‰QDmÔ(ŻÏÊíz|ŞêQR׎Î$x¤ˆx|~_l!‘ˆ"Ԙ+ QGqïĞOš )‹¤lHÔ¤TŽ<¸â”šrŝŻ\óĠ|aTJÇòm;ˆ+"gà” b!ÜiAÚKù”£˘ÙkÀ|Yìa˙´Ä*.†›,eMöòşEÒX tœşR]0%”#Ħ^Ĵ£]Ò;Hˆ†Z-Àošb óFü ħ†O˘•“¨Ż~³Gq[Ò°2p7'Ó=Ċ ù˜YÁ3ĵ>“î=>c9)ĵ@2cş§yяI÷Î,ñÔIİŒH“Œ/#8˙ĵsÒBO„p$DzmÙ1<'J ċ v1Ċ¸yF˜,$ÈüÒ[p_?r=?ĝ)Fá§xı]sÏgJêr·ëì9Éĝ­<›ü·kĜ•ùĜŸNÙ °d$\ q½N>ż×‘3ßö›ĉp·‰°£pµîŬpf•T¨³.Ĵ?s“aĤúżBuŜċô˜"r8ÚìtNO=7Ê÷܄ĈĦŞżD—ÍÏÈUuİHDD \_2ô½Auħ =NÜ·¸ĝVMŭlC3˜or“ĥÍ}Ù.VE7Lµìż'ûóù™Ô5WŬĝÛwpÊ?GêŝEµr=SC˙÷ 9ċİ‚2˜aÖéóƒ¨2khöGòlTG@l÷w$Ħ¸?|-úĜ"ĠĦîlĴ,½ç²Y‚ŝÇ5œġŭŝĠĠĠn›`Ku²?´ëC9ç%ċúpĠnŞ}yµnVW›~·½ 5ÁÛıÄğ.İŜ‘Ò PŞÇ<É:=xŬ+ò,b’%x 'hİJFûĝmÙ6x9+eĉ°¤Áğv)5Bß4ĝ7ñšôEşNZp í6|³:€5›oœ~q(ë)Ÿtw\xĠLŸŠ#Ô ˘Ĝ \‡ÙlS˙Ğİáv2Ö\żëĞí‡.—°0 /cAxŬBXĠWŝğz[½+ƒh&I·o1Dí=´@éìüˆ³äï´Ŭuı/ëuô‚lS "˘V)R²IjUpc;Ôë²Ŭ>8ì"ş›½Ù—;òÎMŬ;kŒĉ$\+ıûèV‹íÉ~=E)Añá2™ßJ6Ġ½" Ï@Ĉ;œıôĦâĠĠàôa9ÇĈd+YqÜĠ¤Ç hïĠ‘ĵŸcS^eİŠ—wFċöe‘ġۋ×:ɕž-0%KŭEì—ëuı]Ò5u.-;”}_n};bŭWsüûİ ÜP;§–a´£ú/ğšÈè‚Ó÷yd'éÁéÖ[çĴÜşöpiy‚w#Ç5pz˙^ŬĠ¸6$‡ü1d†ĜD;lÁä‰0t> stream xœí]ŬrÛ¸žé'o]tĤl„˙Àvz‘d“Žwšİ7ñôf§´DÛÚÈ˘—¤œugŸ£ŻĜ×èH`$§‰ Ċž KG$ÎÁ9ßwGżN2L&™ŭëŝÏ/ž½%BNÎêƒ g†SĤüÊÂÀİ…àjRüz@ܝ“îßübòâĜŬ­&”`C”žŸ´ċ’‰ XC ŠÌ5_üŒŜUe3"&iF*_Lí˘¸0hs:)Š}?q­ħá=.YOgL ¸„£·ö£ê~,£Z™Ä†itZNÁY&(Ş:İ‘h/$‡²ËéŒĝES4/WŬ­YŒİÑĉáEU_˙uüÁЃŸZ—|ÒKà ë$ĥIÒhÌiô²zf)¸Z£W‹)m™hQĴNĤBÑĤhšb5µúĦl %aĊ´°eK޵âtÂ0g\İÉñâċÓ_ĥŒ€ 2)ùd\ù3zÚé6½-/òċş·ċu•Ż˙[.ëŬZ5–Œ”žìV* ÉèÍJóġÂ~Ñ8£½ÙTU>%6DŠ£ëîBğĤ|ġ'†~Ĝe6²iŜÙrĴ4%öÂ% Kİ&3ĝOÁ¸Ŝeml13óC,ÙDb ƒ…Ĝé™HM-˘ÚŸ7Íċ÷Ϟ-–M[*z‹Eb•jCŒçċĊô `ĥÓB!:ÀëÀô—]žWQJÏX*’™!ŒA˜ÀD“‘Ö5x˘rHĠÉr½ÀËòÙ ò–ş È2rğ Ï#U2z[쀭2‚ŠĠ5ÜR[!\VgaÀżo l êÊ²Œ·ZÏĥĊşšR—È–'·˘èƒ#1ċŝRIñârı*ŝ^†ú[4Cݧ,CĊIbÂ!-ċU›Q5×=]İBêé@]pKÖóU@jȘ’ĥ&i¸P€KÙĤ†£Şċżm-šÒei*\JD/6§§.=­ >m6P ġÊe_ĵX(IÁI\ç[¤™ĵŭh›•şäUáµtÙ 4*)ĉûXႧ…Ğ&w ż•ċÙŞ…IԜç/H4njçTà}1%üe ú­)ÖġòŞKkDİĦh†–ëĤ¨ÖùÊŝÊÛté4À—U]şRACUħ*òNO†6ëEQu÷i ÷ fŝ²X{Ó8zWnÚÛFħšj9óàğĞ·@ZK&œÚf0!ôÖ´ğôjı(|Ŭáù ùCŜĥhRu’¨mĈ€fÓ‘я]î2ëS¨OU,ħ•Şş’$ş(ê:wżŒF×Ŝb†šr¸á-Z‡ÛöĜ ˆ°€.ìŽÎ¨PĴpQô²„´³è}y‹h&ƒşKƒ``n×4¨2x Z×;ïÜfˆÍ9Ökĥŭ™ÍáN•i U"ı60ΐĥ{ikC‡ÚĵÈkÀT…şf2> j˜ĥ½ıĤíċì>CÈc8`°òV ;ІÍĴˆ%£ì<€]D3txìiÚL ĜµùöÒVÛ~5ŽEOVä6-×ùĊréúsëğË(ÊVëıŒğ°èö£í˨$ŭ†„CÖeaŞŒ‚ôLAÚäé´EúËŞÈ k×°ZŒ@Ŭċ÷³â.ˆ†‘3VS)ïk+ˆ/Ş‡¨$ŬĞÔâŽAgIÁ´ë+}6}xlúp#07ÌӇµôy>ŸIe†Ù`ÑôóOŻ[ù“bµ¨‡–Fxd²Qè(¨ŒŽM}ĦLÒ¸­C|xk;ĠH=ĵy ï–ġċ*żöàeŸŬ­ŬÙ&H…IĤÇ*oĠ¤ĉáÑIoj?":Aš§héó¨–ùjùï ĊPĈıœ‘‘Öĕ$Í =qEÌì‚EKْċhjçè2CŞîcì„CÔ6'TÚœ$ŭŠmŽŒÎ#0ċ}££şŭ*Żë˘~ê§zS4çċ0Q£‘Ê‘}ÖÀBP]lí WGŒÁHhäƒ m’FŒ¨èÀvËíŭ¤Ĵnŭ&F;`gXÁĵ‘†ğ&˙Ô|<é-ç£Ë´–ÙÁe˜PѳÌ-~(÷äz;u˧Ú%WËâŞí…ŸÎşóàeĴŝ.ĴٗûïoIz÷ÁK|Ö‚3Éց5oúYßvÍ0U>Rš¸’¤{኎Ífìxƒ\aWÚŜܟÎó~Ŭ>QbÇwvĉ*\/·Rĝù&Cc@ž+œq16"áĝەîÇÀKô€cış[Ċë³ĥЁa;EéĜ€”Ħ›tÈVb˜CuË[}‘½ôâ–D¤ÎЎïĵûZ’Ŝé$:Ò¤mÌcê9ĵKßÖs˜êŜĞ#ï?‚Iú PO%–,˜‡4Û¨?ınŠz踘()Ŝw\Bŭ ĜMÚ›F6áX¨`ÒúF3NÛW4û|ŝ!żÜÇ$J¨;ċ$Ŭ3Ô3ûÒ(  Nv@½h˘NžĝžK¨{ŻŽĵ˙&éPíE4zj`ÈƒıC ÖêO‹f~µßâ†Ĥ#Ŭ êIşg¨|™ĤAĊ˙ŞŬ›ĦŬ ¤}h3âğ'0GF$~cÒ=‚WJ £ĵĵ|ĵg×%]{†F$~cÒĵÑŜgìÁ+8Ĥ2|¸Qlƒ7_,(s ‚çOˆÜ}ŬT~ĉ„Ċ@}ĤpĤÔX÷×òéŭ3IX½”pîPíÈú5žŸçU>oŠjx'*Ŝc)##Žż]éqL4Ît81¨·qܔïšjxQ6‹òĝĴ[ŬacR†~lÒÙÑŜŭI(9œü3;3ôjY7onâM˙…Úûïŝ—¤ ìÄ0lD0ŭGw,en.yS / ĊÀ:tD„ĞOÄÒ=B\Ĵ c ³Ŭd÷²)ИköÜnkĈ$*ĠÂĝق×ĊIċŽEw•“ŬħèÊÍ˙Ŝx,zh£X2CşÜóûpòp‰ĈB‰îòŸ/ON£ÂúX)5QĦO2ßO˙·endstream endobj 542 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4536 >> stream xœWiT×ĥşŞdF,ÔîrB@%@ñŞÈŒ ŠŠ‚27 Ŭ Ò8΢D„EP ƒâŽ1N˜ˆ‰×8&qÚĊ=ä{ ĵšĵġ~ĵġVŻ^}êTĠÙû|û;ßŝZBé÷ $‰™Ż2.<)Ñ?L5s´³:6Rœ› {ƒô2p|Gs‡V:ˆ2už6hÁL'AfD!#=d¤h gßĞ#Ûĵcİ³Y÷z[%:ÉÉïÖóĉĜŒ9j†:^› ŒŽÑcùp-˙éï˘HTFĞx+2HVÄŞ*ïŻPšŒU3fù-ôôuç­Ŭ}çñî •"!,–÷K UF3• U˘Â†R'ħŬ|„ZİÔ(ĠŞD;~z"Ĉ'Ĉ+"”ä%EJ„"^ĵ1ŠW$Ä)ɘW&òÑ a*"’רy*"6)R Oĉ£Ô* Ÿ &÷Ȳ”Ÿ:Q“‘ Œ×$˘Ÿ‹[wŽš˜07QInóê(òd¤:"IÜÍç{š0*‘×(R4bœpİLŒ Ӓ¸dİĝeW I‰JUô—è£ĝEtXBdĴ"ħk]•/û˙²ë°ĝĝXm×ğê§>ÇWjħQvŬĉI…ù™ĵXżÍ|)Ñ˙ŻhE9MW9ĞgÄğ¸&¸%şk’<“½–‡„k#|R#³˘ü˘cĉ(ŭ—Ì]:/6nÌĜŻW?a˘½ƒ¤‘=F=mGQC¨YÔPʏFÍĤ†SV”?5‚šKYSó¨ù”-@¤PÎÔBjHıPvTċJıQc(wj,ċAyR(/j<ċMM fR)ʗ2§zQT0Ġ›â¨>T_ŞĠŸ²¤PFTeLµP&”š2ĤÂRúÔ4j-%HĤâŝЇg”Ġ=~Ö ĠğĤÏê;ëé§éŸĠ˙(M“Öft]B?fL™ĉ;‘]ĈïiŬ3ı' 0ĜalÚpˆaŒaşás£%F™FO½›MôMBMÚMÍLóÍLÍ&˜…šĠ›=3O5ßfÏĵJM:˘,Àòu0J'6‚wtÄIñ$çü'…Ñô) Ó+ÁœsèP)5é;0Téz5!À÷µ¨k*¸Î rÙĈX´]­Ğ~ıd‰· ?$3˙fÀó:fœgEÈ,î1bx{6ù:‚yŻv°…B†MaX_‹÷í}à>ŭ3:ŸW[Q[Q|]D7#/8Ö³ÂÍĊĠW,Ñ鄆òŠyS‹ïÑ`‹Í9°§[+TóĉGİÜäĜžĈĉúàN[ĵżUıÄÇWħÄYŽŬi’·¤ ¤’c$НÀëA£p‚ŽVX‚]ħÛLÁ$px ˜ŜÖñy&–rm§Ŭ[¸N›şàĈÛ·gnܕ“ì5KĜ ½%µ`Ğ×ñ!™Û´ş*ö¸˙íħÇħ„dŽ{8 Ż <‚ ä Ĉïar–[Ñv~óíÈ#Ĵûs~ĝ ÎÖhcŠċyËwdE²$MĴҁ3ô„§Sr‘¤š&ĤHĈüŸ[Èġ1úèĴzġuÄBŸßÀî&Ŭ>->qÔ ı£ •r jnlŬÜ\ƒżySßzCŜ ğĉ’6ù’|[¨¤AŬ8xêÒĊëŻHèǚŬxÉ­ë“DÉ}ÛÎ7ymÒóNxïï„dıŻŝREɏd9B €9ŝc0ïìzĤ_dNú.TȖ”éNµI ̔™th 7L$ı.#İ)$ äp6‡IôĈô„¤eÑ!s—Í&ı˙@*1ĥíXœ­]İ:"ß§ÍNÍU°0˜Öb›ĵÀ.äİ(<…—eäL€…/Żk?/Ï)}L›ÀCÍĝLò ›Îı)0óx¸›]+ŝ…žXö´´hÛ"ÙKfĠĉµ[Ò•‘]/‡“÷˜ó`(8éş8"âTÙG¨ /?aĵƒÜgĊ•5Ëà5ĉ;lx͘[§]’y3&PŠt:I“XeG‡m˙‹=)ñ&Ŝö_ĦBŠ­i,锞‚\ìÎ iWz ot’dëĊ%~%Kt–3sUqs‹[d7°í MÍ_TQ­8żĵ•0Ŭĉ—6(ʉvtÇ:úÀh1ĈpÚħÓd’`"Ċĵ8š Ž†Ó0ŠÄ‚aôCÁü~§ywÔîÓ_Lĥ; é ûör û×íAĊ,40cÚyl…­Ĥú`ó   wžßŸO"7ÒFk3VĴ\+OIGÈ-Í?½Ż ˜‹lÑâ\EQ|éғ)ġè2:wÔ¤Ŝ–žğ‚…Q4žqܤˆĊ.‹TEUĠ…ş‹9²úĴŠßlÍÛĠ˙ HE¸À>)v˘Çcûq`/ŽÀï¸H NôSpz‚ÄQWµzÂòŻ“\ú¤ —pyŝstŝÉQ¸—` ö·’nGŸ•G5xġD((A9… iġ”ë›@W7—E×ßìRĦĞßv˜De˘Ĉèw† )ĥ£aqç%éf³@˜ĥ6s‡V6„Ù·)gË^t Uï<°ûğĵ½û÷_…„‹~ĝ¨ÈxÂCżq?â„ÁFĈ3ħÛ³Ħ0ú>ı\[ÒZWuü<Äş„^}fwŭŜ2y^Ii^ş€Ċçı°&·ğiv lIż!<‰š9èÛÙ,%\Nh–v6ƒmGNfpïÎ6ÜOh“bÍ'&n"R-$!D”,…­4Öá)– ŝ Ċ‡ȇé߁=ü XÁĤdeç1‹Š<È8l†í §—È+)ŻĦt²èX‹ nµ rwu j}ġşŝFš0ä˜~”û ™ËÌA;NÔ¸öôêÊè—/uuŠŻFa}쉧? £Áĝeë‡R9–ÑİĦ‘ PZşwyÉjŬ†›Ï°[ŸqYíǎ_!ȗêÔıËżIŜĊv‹°ƒMAɊ $XvhıáÈ^éáċ5‘0XR1Ĵ٭ɽ}É;ôµişŜÔòŬôġ‡× ïÖIeC›‰{s`zoŝÛL²ÂFĜxò’ÔèŸŜ€ħœ aíĝg/ŜK‹RsHC]œóíÁœĵ-›sdï™e[c2Sk2Fî5Ġîn§‚ÇFì:XGôPM´û.9ôğĊb&C.³h°|ĝĴÁÊá'pÛ Á{OÎ1êäŬU ıNSzf§\ ½è=ÇÊ jûC͂ ! \}•6‰i+6{n2’ŭ¨wïHw>ö5îğ(fMl¸|?XKáÄ'P —˜a„ze ƒXQĴ· uÜşûµ£Îx•üC3"C]ÂÜRĉ6Ù3µ|ÎqÏۑ?“µ˙öTm ŭsl2;2uqˆ|Û„)ɽZUyĠĦÚü`ÖûsÍĠ ĤL]<×Ç;¤áνÚĈfy·ıú^ÜT‘¸ŸD>Ħ‹'bNí8,Á.Íu.hn‘ç!ì§|W½_RÇBRF–X¨h0&ż¤œż £…>܁ÜìÙğÚ[ƒN° 7ò>î‹ûœ„ġŬ‹CŻ*eoC”óì-ħċ[;°ë·ÏÀòge£c­Ìâwl IܕĊÜy!‘>!ߝkĴİl’[ĵŬŒr­5‹§ğ‡ğğ‡ÖŬ¸Y{˘EÌ?‘$ÓX( ‡˘˜W ŽÜ6,y:LÔZY}³˘İ#iŬèmjû҆àğUÉùb;[cЇ# WùÑŬy…òÜĴ]Yû²x€Â)Py¨z“ìħ0›ğ^=ßaJH€·węûíUgŻt5v°‚°’DZRX?­ÄĤ²W˙ÓÈD¸Ÿ#fŬP+ÁPO(Z{6Ä^äcHF^¤S’™Oš<ŝÙ0ò×/„}ŜŬ8Öŭo-Ż›&ú‹û˙''A$•äy•¤yUÌÒêá&ıÇÇĝ­aŭ™;гíĞ*ŭĥŬ#z!j Ž?}—ˆú'O ŭêA­†ó-/fƒ9KhŞ›J=ĊĦĜÜ:MñʳÄ{žèߌ(XÒ˙ÓÉÚßµ™V:ħ +{›ġ/Ġ­JÖ,Ó._ĥs˙yJÀċä£ëjQ˙'Ž\U Zızó†Ġ"Ô$p^p¸€"ñ´@Ä;‰WıÎĤĦBŭ—M’/µ0Ñì*t0E´ŸlYFF0x·‘1Eŭ%dŭendstream endobj 543 0 obj << /Filter /FlateDecode /Length 630 >> stream xœ]”=nÛ@D{‚7Ċŭ~LÀĜĈi\$’\€˘–† S„,ı}fFQŠ#`LIûŜXĜŭËë—×ġ|ëö߯—ùgğuËy=]ÛÇċó:·îĜŜÎëî0t§ó|ûÛô:żOÛn˙òuÚ~ŭŜZ‡7´ċŜżMïm˙#E:Ü?4_Níc›ĉvÖ·ĥ{îûúĵ,u×Öӏ2îŸ8.·>Ue9öCEĞ‚z@†ŞôŭÀ§Cİ jaµŞ kÖ{úȊoeô‰uĴ ޞâuf=UġÄÚŞ‚ÚP |˜Ç+êĦ*¨„,,‚,„,,‚,„,,‚,„,^TgŞ +Ôd~‘BĦB~‘BĦB™Ş‚:ĦˆLTF*‘‰ÊHe 2Qİ D&*#•ÈDe¤2™¨ŒT"•‘Ê@d˘2RˆLTF*‘‰ÊD…M;w6llÚÙ¸³acÓÎĈmİ *~=ώÉ]³;gwĜ¸ŒœF—‘ÓÈa2r9l\FN#‡ËÈiä°q96.#§‘Á…áÄ 0ĝ]ñi`ÎÁD!Ş U€(D¤ …¨‚T˘U*@˘ RˆBTAŞQˆ*t.6íÜ9°qhçàÎqĴ ê‘“‡fΘ<4{pöÀäĦك³\CA߄kjöäì הoÒ7ášòMú&\SI߄kÊ7é›pMù&})ߤoÂ5ċ›ôM¸Ĥ|“ הoÒ7ášòMúŽ8“Á?…‚#ÎdP)8âLf¸ß#ï7ƒéVz\?ĵ xĠ=nĥnŝĵ^ÛzÓ}¨ûŽ×Üym˙Ìí²ñS²û…ÏE?endstream endobj 544 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6056 >> stream xœXTT×Öp‹ eĈ ‚f{ħĈBcAŠÒÁ‚H”"ÒijéETš€HǂĊQó°FċEġ½dßÉ!ù˙sGÌ3oċ_ë_Ĵaß}ïÙġÛßJĞ%‘H†.öv ö\´ÊÈ>ÀßM%ÊĤ #$ÂÈ~ÂHé8ĉ·Hu$ŭ5dÑÂϜ–›šh£AR4H+wäHk™ІRŭ$żĊ[Â}ĵĵƒ §Ï›gbèdèĤ2 Qm ÙèçäíħÉ04 ×pc˜á"Ÿà à@7C •ğħá×~~†šû‚ =‚<·yl26\ òôÙäĦ öqó3ŝÏ }ÖRµâk•Ó˘€Ċ[–l]h´,Ĝ<Äb›e¨ÛöËÜW„o²ö°ñ´ġòĥ÷Yıy•ŻƒŸ£˙ê\“éé3Μ5ûÀœÏ玞7fŝĜ İ' šÊŻß@Q£)j5†²ĈRvÔ8ʞO­¤&PШ‰”5‰r¤&SĞİ)”µˆrĤSFÔj eLıPKİi”eB-£ĤSĉ”5“²¤fQVÔlj95‡ZA}NYSsİġ”%£öPr*˜Fñ”.JéQ)}JJPZÔŠĤ8ʇêO  üİÁ”ŠÒĤ†P İŻ)k’(˘`M— –”Üï÷EżRZ íŻĤġíK—0ÚÌ&&ıɎ`7³9S.•ğÖß°ż_˙ÎòÑn œ>0c`Ï ëÁ:ƒƒ´ûiÛh·™:ÄHë Cí‡îĠ­ SĞóğÌDĥD–';/7“‡Éo›6ì°vŜšÏä˙ġ×=Şç¨÷^Ï1×Ħo żK?K˙”ŝ -(ĠVËQ x6Ây’8ġx)TİxÇïŒ]4½œjX˔·`% 1Ìmĵ2>jE"‘‡Ö°6é8^ÍΣù÷¸„ĈëmáŞä²·ŬàÓ­'o(х€JĈ%%<‹†gl]AUZâîġ_¤Ä9lx„K"íEXBû³ËÙYœ‚=Íç=Xy'ĉĵhż[ĝ˘éHk ŻQô¤$VĝCšĤžÉğ³;ÀWâµĝ¸Ċb”O k/!f@0ŒÂĦñQĉñDşŻ†]–Žá2XAFûAú$ŜàÎĥĈĜGuX6ĤĤ_ŜGŸdµ…·¨ Šë £^öë°ġ'û7zò—kş˜E÷6³áQö˘÷Ù,|ùâ&ÈŜ˜_Á“”òí?9uĉžôûê,6RÈ·›à‹<d‹’r÷Bô;·qŝd;7Ĵ½%íPÊ˙ojA[\÷ı,=·ÁdüŠĜ`[HÒŜ ĥP['̨“Tġ@I „h˜<OÂߌ0ĝéL„‰“ŜáÊ Zß·~yĴk÷ċüv÷Ŭ‹]ß+µĠƒ˘[„'-’ş÷‚îݸ‡+Ù,ˆUí @úxÎD{Xö(˜T]^<–iB_cfQĦEš-â&Ĵ$ŸMXŻsżZ+·ĥFu ë¨3½£ÓšħŞ–5ƒKCÊzş!ù™žüûBĴâ!ş’ħÒät[•Pşğˆx9ñÍ;’y=¸ŸĞk¨ğ£RLqñ‡÷v}Hħü{0†xž³' Êӏ#îé%3Ìâ!ËL'¤¤m&~Y Fá^£„$è_o f#wĉżòƒĜŸÑ½´gŝÑV÷ Á@<ñpÁ;s×ò°zn„WcÇS°•Ò””í1-Âó`O·TX/Ži.ûÜH ޳è‡&żĥ!ŭ%vd—ï"ğ£’uLËĤ…Ë,:¸÷Ŝjn–'ß۟uß韌8#ğN ş÷ŜçíŠ/!™½ƒĦĵö5ŠfÛtĝBÄY=ùoċşB:|š A|(‡ıLFäÁĊtlqev.ŠŠ˘ñ\ĜDJËk2ĉï ú/·µiżĦÇŭn’öӓw’ŜK¨d–jÒPÍÖ4W•£|”w(‚+{Âl;°=9qòŞ8‹âöxİĵ|½½¸žm'ŻÒ4^X„£ĝà!Ž5B–&îĥM9çċşR,I Ï áÌe‰ı‹ˆı[˙cn„0‡"3§ÒçÁ¤7ĜıöW[ÇĈÖ 3ëdµÍîaÊ}ĞSzòUZá}27í_O˘Î,_=ÓĵŜ÷ħ‡R^Üá_ĥÚÀĠËÇNš ˆ~Lğ`]ĤbG}ÜRY:/ŞŠ* ÊUn>ê‘áÍÉW­<ŞÊŻ3h(9Úrĝp|ÔEêú£­ĥŒnĝ¸Ò"Ğ{ĝû zrA˜ ßñÙ[‰Ä<ĵ‰Ŭë³KEΟ>h°ó£“Ubsd„‘Ĝkúc&c‘kyšhmĊ <{a½k˜JlKQ×IT…K¤GrÇfgœOĦkXmxşûŒżéIžäY·ô™0Ç÷Ĝ%ùŝŬĠ û3›UlpbnR3Kw”ßSB6LmÂSñd7[¨h?V[½¤ ĤœSúéßâÒv…&%éŠ>ݽ(š‰1 Ôá]îl›x'ŽÁŻ!†HÛ>`ÇÎv‡JAŻ4;Oöú‚Ÿ‚Ñ"üpž"—³šŸœj)ĴğĴŻ„‰•ĴkJX-˜y°}*/Yùݍ;=G˜ûż­„GÄñ° Ü i….cúĴi­ÙçÎĥ˙釕Xħ(O0­’$ ¤‰BïÉ^I€Ù½–ô ĉ—Ré*ĵԓ=·+5qx˜žĠ’LWl£›…—'%é`ŭR8, ‚Œó^2ugtÒ·;Q‡‚@FŻÄ ˜Ĉˆş¸ZR>Fמ‚… / ˘9×hmuú#ö¨3¤{>ĦOŒhc`„0÷żŽÌ/|bÏ8|d´5ƒ ze&p˙O’ÏıVBdŒ­—Ġ>ƒ $¸‘´•?dG¨JĈQ $Ôħo×׍Ĉ²ŻV[Ĉ*:1GÓ§üĵ·ÙTéËbW—iŝh '/_xÊñBٌZ ֑˙k9Ğ6FlFœ³ùİ;WÂ¨j8U SŞ$éB¤4çƒ1`@Ào,v°£=ÁŠµßŸ˜ŝĈ½Â“Üâ‰Ì§ŠµIĊ`3 ‡ĊçÌ=Ùĉ„Ô&xĜ砗r°qŸĈ£JÔ |ÖfYy’'Ŭ°‡Ä[OÌ!Òï˙>†ħ°ò§°F.x‰Ĵ_ì˘„röw3-a[~°dqëç‹fX+lĴħnâv”äGLÎ&˙M™<+=Ş+%FŽód~x5}ÍOxġ—îÌŠĥ'—`áì7OaL}ŻRâí˙5´a.dóp‹Íٛƒ²ˆò°+k q?k[ÌD†ìŭVEZ7ĞaŬÎjlŠİ–|h÷œžŜĠ“ëP-¸óò)T‡çxÀWË&/l²í WúzDĝĦ­("9r_'³,ÚŬĊÊ`AÇ`ïuÖµ(ŞËòëPşğşș’9ü›´oRQ ÊJÎܟħí#_9ò|àğŝĵ"ĥx{ħú51ä$œ·žtŭjĦğ‹{ów]'[•ä÷Ŝùü받;ÊbƒŝJçó[ëKĞÎg+´…+$îú@íGqJa”jb5wġ xŞfiьżÛj\EĦ†²Ġ¸’­fµ¸Ġ@+™ä¨2 3ùóßOòĜ™ ħlNRvR&zŞ·—o•lÙìVZۀ QÑ·%û¸ìn$~Bé!—š9ZĉP‡Ï]@OH‘›^Äs&kùf†^ö3Ñ~”Ĥ[(×ìlYyż+û8CÒìÁXíÄûn Üì{$°ĴìHQYÙÖ#$tğp Y‰›šÌQt4D\ßD5Ë²uajÓŞ]ŠÜ9Óü¸˘$>ŞH‘N(Y˜ĈĜĉ<°ŠÍèĤ˜žÜê RBAâÚ6×`݃óäuİ™*ĊŽìh`i[FrħŞIxÚçÉ3àĤOžƒDĝœï]Ĉ˘iNžÑ“/ Œ‰ŜŽB8ߢúsg kĞç/kŜsÂx‘h kĝiˆà?ġ\Œ)Vß7J²Îƒċ °X× ëEŝ)ĴLùàzÂ5È ­Ŝfħ‰û›Wš~üĝ–A~Ş *­|Äċc›—~òšÁ瓎Í?‘N:ĥ­O!쓎ŭâ'çSwûàġ ÚżÍ"4NJo3Ħ{ùB=|Ñ[Oß``Ĥûġ â;ĦŒÑiQxpŻž+”ÑK<ğ7óÂĈԌĞİD!˜•(’İğÓz Uò”G-0üÒ5v[l3ڐ’½.k]Öjd‡–-sċ,Ù[§[]BmèҖÎàò˜Ò„bt]-ìhâÄ.k^7IjzàÄ?PŞŝŠÇcŒHŜĥâ­=Xc`LÈa+l5£tĠzyz^ƒ×8›6Íé-Ĵ—3ï^¸nAµjIž„ìíRhŸâoIğħ0ŭŬ[ÁF‡c6ŜÏjYLDgÒj Ğŭ[$x^!ħˆ”‚§Öo‘WŝˆdÄÇ<NŸ‘ şŻƒôäaÔž@Ĉmz ¸Ħ3—,ġÉİÈÊL9˜Ħĝ•-É.Ŝ_‚¸îÓ+§b=Âğ$8›)—³òÁĉcÂĉbz ĦP+ÉP+…ÉÇ/h·|ĝZǃ‡–íĤ ,­l‰i^‘Ó°xİ'ß7áŝÍħ3Q÷öËëx֙mná[R–u(ù@ş˘‡-Î+=P¸ÓNĤó\ĈÇÇ'Ħx-›ûmN™jò”Ï5aafâOvÍ-JżÇ1É;“b‘oPˆÊé- cÒhZJùôÂŞ KSĊ„xĉ×5a4‰ċğ.İ &Û]OïÚ]ô5L sĜ/ħ„Çm‰HÛWÛ`ù}ÉÛ6ĜñRúV“nĥ ıxoJe§ëXc+s£àäÔû“{’OPˆŸKçÚ÷0÷ŭkà™sĝz%ĈlR‚+œşOž;A°†’RP^…ô`Í·_)ğ‚.r|+]½‚}£“£ìP\cöĈĦx‡\·Ĵq´`·î§jÁĠÚ˙ŞĤİŠÚ0ŝnuÍ"½İ’ĦsŽZ\éĜİRȋLĵ×ښ`úé ʗÏQȝŭ5WŒÊ9yƒóu?dʙt˜=ĊúÒ³ë%u7*ÚH˜ ’úîné+a>_AIİIûQŠ~YDöÖ­‘á IñIñŠRDŬrñ2Ò\Ž$—#Â7'$EıLÜY™çà}“¤Ş •·ùuÁnћ7Ġñ HĦß˙xqîklèğË'Î[‰Oô²< P‚5gBĉĉüâħ&aÖ}4ן>tä‚b=f'ÏÄĈ‹9muTpD5Áĝ&̑´ ½RQŻáçâx/r…Œ O™0–™‡w6Et>Œ˜â÷Gâ÷eMĝsĉŒ§aá¤Ì}tÍ^€hlÌ<€@Ú0…qŸ2‰LèÛħ–b@.ùäRž!ĵwÀ/ïcŞŠŠââŠJĠQâÄ˙hyxyÛBdLj옷X òŝÑ(Üi:—'km xüĤ˜îEkB)HWG_³x@¨2AĈWĴA;€,ÁÔTïìĜCċíTHèµĜ”9µzìŬܸÚw, -¸ó™ˆ?[ŸÁ#Ğ8Ĝ–£Ò„’˜Ìmċ²˜LcşLë ‡Ôµ„Zí!żÜ-–ç†ó8œµÈ÷=. ÖŠşĞ\=ŝž˙.¤Ê@·•Ûš1œ6ĴŭĜ„˙ïüĜ¸ ¸Jn#‹ôZŜÊÚ×Ùq+K½š*Oە{HaĊìk&5=Ġr‰ƒşĠÊ>U³üĞšĥ0Ug×J~y,tĠyl2OAĝiÛ_XÊ 7(´‚hñ­dĝì'wÂĥÇÒRr'™ŸµâaÇ#mMĉŽA0G„‹ò~) 84Ĥ`³rï­[ŒÎûŬgd?wƒ/™èßmµ_œž‘Š¸Ò­G͘€g‘ċ %*Ĵ"hż?w/Ĵdúv_ÔĦoNğĤDİċfÖn 7ŜaÜÓĠœÜĤğŞÂàââÂÂâcÁ…*˙éËRü“t’ÀV/ĝ·i7îZÜî_éì²9,%*-š@¸5‘D/ò\·(Š˜~ï“ ĥtK…M¤ÒĈıì* ÊŬ„ô˙c´ò˙6úÓEíîÊáGè†Ŝ_™>ŜZ)2|ÂĦ~uÜŻKš DÚGysıNd¤[$߉˘„ĵ·ŠtE1éŠc¤+4]ħÇ´J°[ŠÍ´ì„Ŭd·è+> stream xœW T×ĥ­ĥéŞR„ĥ@DğAEeF‚ (("‚B#2EŒs”‹}1ĥ˘ ’(ƒA ˘â<€A¤ÁFIZ%Ѩy§úŬĉżÌÖú­·VŻŞ[·êž³ï>gïP:C(@0bÁjÙÊġéĦ1)SCâÖkÇìy3?f?V˜ƒSÔ{Ô9˘ħ”ÇĵħKĉ ÓGşB¤ĞS4fd°ofû `%Üc=×Ĥĉ¤­NHÌ0· Y}uBŠùDr’Ÿĵ6UŸ’1Š9‰%Ŭ<À\MrLÚ RċċžâħÖ3ĠkwšOşoĈúù™Y1Ù+sbsâƒV'$†Ĵ]³(),9\6Í~ƒtG§3g9[Îvqd5yÊ›Ÿ…Smí(ʂ ˘,İ`j<µš@…PİPjµˆ²˘Â¨pʚZL-Ħ<¨ʓФĵ([j)ċMùPÓ(_ʞò£ĉSÓ)ʑú„r˘¨T 5“Z@RFT%ĤFReL™P£(Sj4C™Qc( ĊRCİa”.%£ô¨‡T OP#(o² dÊl*W0\,8?DH×Óż1^Ì1³NlîPáPÏĦeC†Û1ìä°ÇıáS†/~FwˆîLŬzĈzzEúFúnú— l öœ1xjÀ02b׈rCĦԌῌF3r2}µ’R?M.àS`-׊׊ŜÓĝ€Z&Âş4>Ô/ŭJ·ÁZüCÁá 4èB—HŸŻCr>¤%QnÔÜĉö ötšˆżoĉqâï4ǞA5#nùçĉç ĠħüïNŜœéöż1Ñ5Bĉ%ßhWUÂ^%lPµĞ ]µ@e"ĉۍAI7Ħ+GĞŞYñ‡òJùĠ›£QOlm9+ĉÊÎ^{<ĠeĠğ‰?ñµ7bq-­Â9Ĝ~ÌUTşídvqÖW2‹âò’×ee§l[L&ùáçì…,ĉ":½éx:yóñŒƒI £QâgIë3Ö§Ë6-G,I(£·i”wC]·Nòċžä`½°WL†I½`Ìw|§H ܸ—7ܰ16XèjgÒb0şİPIġĠĞ2”|ŸRpI%T[óˆKG;vD“ќ䰠ùž –CX·b|“׍…?ĤBàƒŜĵ>aìzkÄĉĠRdAĞ]IÔì€êĈŬž³ö´´$ípò—aÚPqŠ<ĵµÂèšŭ+Ŭ&âk8…{Ċô…°ÚôFĂ٠€ x9Á,•Š?xĦ¤¸@ĥŬÜîç;³ħ!`ö4ݸoúÂ0ƒ[=ڐ’ż§ĵPñcTÂĈp††² ë€JñZĠoĈñ÷`ŸX8`îd<^ú÷ĊŬpµSÈo%qİsŬ½™¸ëÁ§}Hf{,ÂĜíıHZ.ßĴ’â2OTğp/nş`#ĴğeşŬ‚§ zw•?KݲG yJAŻJŸ@ǏSjĈA?MİÙŬ/ċJ­Ï %³ċ;äFMqS“–wµ|<É Ö£µçJ‹žÜwĞ€íbÄğóĥl2 C+“–ş²âĤWŒ>¤ê˙cxĞÄoÉ:ĉJM^żLEëó;YRÓ [ş…ĵ?ŻÏċżó½…ġH^úsĴĞ`„LŞÈ•W”‰âM##×x,?tRnTß {;絚ˆU|Ĥħĝ-l̘‡z;Ώ9w_Â3³4VŒc}èoħŞ Ġ–Ô6ħ YÉĠŜrÁ›—BW˸İŭ²—ZˆĥQ•ĈĊMħ•Ĉ›óä4ÇDZŽLáŻƒíÀKÍxŜF4ž¤ħ1''v4Ĝ™/é·ĵŬï;Ñ` ÓÚĠŬpˆòÛZnËÏÑÄĤ|z¸X w•ïeÌÍ X—(IOŬ,Ûµ˜}FïPYŞ@lkġÚéz%fn˜żېóyÒĈiÉː/kÓô{C]ѵے}áĊé×thwÉ~O_­Ŭš›–ħ:yċ§‘ˆġ/Ğğ^qêĊ!iÏÁoöž:Äŝ•çE8ÁìÓfj„C°„ˆlhą8ËEŻh0…(0ÁQ˘>Z›‡ĥ¸ÀM.¸Ö Wğ…×pŭ²Ö‡Ìıu)-„U’^R­àĉôK<—¤ÇIĦ”‰ĝ§ĴùÀÙÓŝ^üNœ˘T$hŽ";'hlh‚  Ŝš˘¤YWeç%"ÓÏPŜì<ĉȖ#ŸG%¨ôÀñŻ‹>ŝu5äİġGŭYe¤,’à-÷ù•Mße•&Ô”zÚg‡uHÍğöšƒĥ·ÂÈBéL:oĉŠ/ÄÚ-j…`rMñSó…•…¤â£µ‡ßß#ä!†‘zÔ2Ì18ħß'Ğ D˜$Ŝ ħiñláġ[|ICcĉiÜ ÑÍŬZ°‚ĵžèïŭў~³ :ħ.ô”VRĈ8`vÁŜŬX~ĵ\RQêó˜Áı| ×Kړ!Öû³=éß}ú“t@8ÀŻÛ|!läPÇöKŞV?wı:™ĵnâT’ĝ<<ï§q0 t;>FÏY–à‡ÂÑòk/dŜv:˙*ğğ‘Ûßwûŝ3Ä*ïû:íBğòwIz€VO*Uüa•7Uçp8[`[œ³aUO{ÉċÛÒö‡5 B0œ…ϰĤâ5gpĝ ëâìeAĥĜΒ(·ĝ½'[é@ññ$l³Aİú/ hŽJúĴü›Êŭ{PŝQI“½wSA.bŬ˘˘çIĵ}›5Ë:ùeŬÌ a¨VÂà'ĵè}¸ÇA}]wép–÷gpv ×[7›`°ıÓ§-ìŠÒ?ŒŒ–͝ÄÇ› Ş“x­ƒ))Ù²A.9‘[˜†VħƒNĤ'àú÷ċŸDJà43‹ Fëe*ŻCXĒl£;+bíùŝhù?˘ÉLATD'žĜVĵĞ/t³ËçœQžûî êdÁhNĥ”à0™ë£²žx™Ó[‹²NfZƒ˘Y§è8+‰>¤‘0ß~0jx6‹X­&°&`ÍÒë¤Ċ]j™ÎL‹g4ÙB–· A³Š²¨ĝƒ\>XNîÄsœŽVÎx”CMèë4)Ì_úszġ*bŠâ2c“×§dEm FsPĜÑÄêÔo?;[p‘¨TßĦèÒĜËÏ@ˆşÑ#yMymUY=şzCĴJ'µ£ĤŸH:…n°ëkĥ>ÜĤ@%NiQ~ P µnPÓÇ,ÎÍ]²Ħ‚\‰S¸ë‹üCˆ}Y[ùHŞÖc Fg–E'= ĵjF)€ŻˆìŝSmĈÁVĤÉĥġ›İġ@Û n–ŽÓĞvsVO;ÀWˆŜÑx ĵ&FiȜĈi8M4`ÂÔı KĊ#8Ԓg4˜É^AxhXôĦ“‰’„Sıè:˰%Ĝêw;p‡ı0ä%L”˜¨µ 6>‚ yxfżlŬÁQ~Œ1ì#ŜĜŠĈË5ŭx ß/šDaâ’ÚÖß?`‹Ïjmˆ’·>ı~·ñŜÙx? î×h/ï–ÇÍ×^òc™—aW'{ÇdGJ’oĜEŜ(jŬòV|ŝñG­U(ç{Ħ˘W§ÔÜ|”²*2*0f@Ù·v`1Ĝ€µ’°;$ë^ö@²êr)RO:ŻjĤq‰Šš:ÙvÙ/á5Ż^ Ò_{„pßÍiv÷¨#2ÉXµÉe‡ÔD˘ïß(ŝÇŭοܵ‘ nšô;ç^!ż§›Ó Üúĥ˘ûʛk£~½v…ĉvúġ˜Ê˜ÊĊßĝ!{ä—”ż)z—'ÛCïı´Żô`QÑùŠëÛq'dnèš RğĊĜjĉ ż­xš)ŸüQç·ñÒ^Ÿ^qĴ÷%]Q 7ġ]Žžá°(ÜnʲKïĥK‰£ )\u$İÜ·9ħèßėŬ0ş7ñòŒRݸĞĦĝğˏFƒŝìl†-çşâ);%=tÁù½'<.Żşpâ:b5Qó"rdqŸJÓ7'˜Ï`Öíè °t€‡ŬzÀíCğż‚t’VMˆÈ–ĞíN£! îŞ t+À[ÀğHRÉÖh†ácÑSúûÚ3GÈ2Żîĝ[LœâĥĴŞ#“}paáÚcë΅ŭ˜ÜA‚ĥ|óĴÁÜö5ğQĥRz "Epi¸Ğ€²ïŻ ’ĵ|ĦS.°s›0…\‘w|L@´O–#ÂÂż™[Pr/YĦġ˙}o@ £ìUXì½(uqĵ´Üoĵ~‹îĦóq_ù²Dɜ¸ş`‡ ˙Ù΁?ġÜıÛŭħŝJò8˘Í!Ċ‘ÓĜo÷ÁVá8}IWAÖ X ްšŒíÛǐ0Şèġï…|òg"~ǛñC9q_˅ċGƒQA\átW,œ"áÇċñğÙqħÁ£ħñ/ö`ĉżô×{ÛıJ‚Yĝ’<Ĝz)Úg~d´ğ{䅇µKñeñğž;Ħ³f…Ú;Ŭììĵs£G:¸|ˆîµ *{Ħòµ°fpG0ûÄ(˘*żżħIŜ€#˜ó$ĉ~ÜÍÀ2í§•™ġ$,Ċ£zmaäÚאĉc÷)Q ZQ•×ÈÂH~ §ĵçkç¸ iFĝíW½wêŸj—Ë’Ch#x4 ĝu çF'â%"lH—Ñ\:A{Ħç Œ=D˜ö}KÇÑ‚X‚Füŭbh£]˘ßmi_n`!ŭ-ÑŞò{hz/€!ĉ=giùžĉéhŬ’{I„ÚQ ÜÄYŜÉaÏĈĴeğĜxĤùìĊçR%Eú„Íż5 ĝ2ĝÓd{óÙôÁ£>ĴS‹Ŝ ¨„HQ[^b ĉ&î OßùâğPû–ÔŭsmŬ·<Â&2g6 ÀŝÛ#ìpûż!Ŭĉ:=,#aGÓkÁµ,ĜçSĦ 'roÀä>ĝ#°Gàŝ“À„]D÷`ËZ˘Iä³OÄÓ1yŒşYAÍ(l’€ċŽ…Xo‹c½ü5ıüĝià×ĝĉƒw‹‘²‚‰>…/ŝkç5³hĉ€ôh1tż˙˙ ܉×|Ż„ñüT­ŻçV!ÉàˆżèTìCvÀÀĝÓÀŽúÓÀ>£˙/÷kQîT%-É*Úr~k²×¨ƒÛîÛżû 2-=’—ħ.#;9-k_Q´tËŜ̕RoŻBĤOjÊoV§œŒĜşíʓŝ‘=qlr£îN&é÷Aá>ÁÊŠôSûħ Û~ü[„PġŜâ [ŝ„CĦƒÔ#Yò Í!$À›û7‹Ó°Y½Y¤ŸQÄ“C < ˆV ëĝBW·ë€Eŭ/ Ú4zendstream endobj 546 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4480 >> stream xœWiT×ĥŞĴ(‚ĈîŽ8›àH‡ˆˆ€ˆ2É(hişÛîfhPQT‘QQFQÄ pDŒâlrMĵÉe™ä]ò4ÙEıı§€§É{k½µŜûQkS§êœ½÷·÷·ż#˘Œ‡P"‘hÔ*E|D‚Î7\ċñ‰“Zµ\ŜÛócDü‡CĝħFîXŭÛÜŜŬôXÊÌÉql ÇBS^bB!#db\òá¨,z·š÷JÌĝ×#öÌUˆEo&ûùL™6íjAЈ‰ĠËf:88È" ²Á™³\§ˆQÉ&’A˘\İÖÄËUz;™Ż\.ÓÇÊeÑ \ĥÔÓ+hù*WÙd×U~2WıJ WÊĵ"”ŠH™‡"RÒÉ§È˘ĠZ™r`"‹TĞ˘z…Z³“-ÑÉÂe:6\/œĞSe™:š|ŽLĵy·ĤW¨t2½ ßĠqÊĝ3g͞c˙éÜy‡Ĝ…QÔ8ʓ²ĵ¨ñ”75òĦ&RÔjʏò§ĤRT ċDQKİ`ʙ²£ÖPË(ʕšIıQËİٔ;5‡²§<¨•Ô*ʜ² ÄÔ(Š£,İєeMÙP4O™QŽÔl’™”1ìو ˘—CĉÙ6䕑Ä(ÜèWċĈıĈ'ğh–N˙Á2ECG ujú€ġf Ĝ7¤pX갊áN× ?2üĴÉ\“2“ë#&8=âi¸é×f–f5#çŽì35ßdŽ›öF£bƒ9*ğb_“¸x Ÿ0S{iĵ„é›ö{ĵ0}äí~0ç°7vPK›ò€Šy{0V[:˜:Z\.|‡‡öĠÑ cnÁZÜġ˘°ġâí1çÊ5k6e¤îHşá/…Ċ'ŻŬEهÑaëgŜ—f-ñÓĴ“ˆg~A sĵÉĉü-˜<ĤŒ÷ĵ°„çÌ?QWéċĥóçŞï˘k¨=İ>°‘w?p޳Ë5¤4Ĵ݈­ *\‚Xüó ŸĉjÀ†yLGEòZíf͆di‚6á‹ÄŠ{|›ko\˜ŽŞ„íuj˘”dkšb‰gz0†0½[([#~&–f†y-\Ħœ„ìYlúrXġmÓó’–›Ġ˙Dß°0rîcDlܰ ézX• ²ž‡„ù99ÇÛ 17ğ;˙—;WŞ5K8Qşk_¤ĝ§ÔŒ­™›‘µ>%ïàžìüŬ…ÒhĦżbʅ_Z,zSĝzKÊ× şâ{ĉ¸#ë ġċç_ŽJïÂ3aiAŸÉŽä 2X/¸êa[Eg›$Ċ•6…¨¸w!"ŜxO@Ĥ’3Z ;‹EŸ–&l?™Á}Òx^* dL{‹>á·„BᓠžÛgJ0Ĉ‡âÙ}ĤÛySáexĉó#÷ôü3LHµĥË`Ühq_ZÈn+@QNÖŜì}7ĦĠJܽûpöÁ|Te¨ÑĊ•ç/Cx&šï£Ĉ–,Œf ۏw"öbÉĤĝÄԄ¤tiÒf„–Ĥ{oħZ³5:U™à/_· y"ùay•,ñdúit?z½0Òδŭ ”ž½mÏf–-6ƒxÎà°&Ôħk´…'ZêNÜÚ/½°ïĵì½Yğ³Ĵ÷gïÊÊßˋ ?*8H‡"/$ı0W‚.Âݸ‚26ƒ…×Baĝžä`ùy›À넠÷G\Ĉ䷗ĝŸÖŜ&Ì`G˘²|ÀÜċĊGŝZżÏíO·fœ°ébL}ÚÏĉú‹ŽoĊj0êeÉ9BÙôáÇÒĜŽyÜW—•Bû„Ċ¸¤mGٛ%z,*Ĝ™—yYŸA 9ÇöŸ.,)ݽżġZX½GEôD …ïà{nW))™<Ô´ĦQy\^Zè†>AKâ<ĵ–…Ç(èppulmD{ÒCúéqĜ°Ĝ†Q:ŻÓĝVìj-¸VzNZy­ĵ@ei‰ûR²Ó²Yö>Lĵm–PÂ˙­úŝ aӅ.¨fŜ+IüÇĤ$Y²â˙ĜK2ċw" á6"ŝ>ñ·ÏÑaš†l‹o C~5S 4+x ·éżFŝİàŬKËúϒ1Ğq-ĵÌYÏGĦŽÁÎŞ™ÈĊwŜÜn-k=+‰ĉ-Hì–a‹%BìÍ÷a‰ŭ×ÒÁ¨í†a$p8Wŝ.$rùÍ9M¨Ŭ˘iö.uB‹eH ·PĵI,ùÍ\“#z:Á¨]‚%L’òşö\´oWĥtsXäVï;\PXZŬXԈjPĠ†ġŜ”ìÍ(Ž%ÔB2qN÷oDü"B,ó˜ü֜ރʐuړYħ³ä­Uxö†,š‚ü“ìRŬ­ tó„ħësR›w£_0iÄ5álŝ5i0p 8dž˘Ğ­WÚÔĵDO%}KÄñ˜Êˆŭn¤ßßxÇ/xŽ; jì˜ĥÚ¸Ġĉ¨”Dİ.VħѰÛ|÷v°ÚËa"Im‹ l†yšŽˆc^Èz1r”û/÷vŽĈCTy¸ §£ħèZ§d£SŞğ×çNÈZÜ]R%Íʧñx&#pâV$/—ŸJŞ5œÙځ`>Ñŭ ùvBĝĜxîríš%¤Rlgĝî³G@żPŭH”h˙T€D?>o½Ô‰Ĵ[Ê5Á‚zJüŸêéİwëg_µ‡żä*”Òr„„ÎGN{a:ŝ&{ úİÎ@ŽÌ•JCtÚÎM[b¤âžd—/˘×Û ´ìôœdf39›òĥçĦքñò²óˆĥ: f{jÊlPŭúŠ€ÂÖòòÂÒ2Vü÷†Ĉ²›—Éˍ šŠ¸êÈŜˆíñWü,"­|’9‹Žn+J9°iß”ŒÔiJCÒz•2-ˆ !=˙\hʏ%É`wŞ@˜k°ı0%Ù0(–,d'ÒF·ÀLÁÄÑâ½áün.§2û*f²ëij§.ÖùH|‚c‘3šw! †ë~J"|o¨J ħqs ³pâʞĴÜĴ\ žÈìLÊLGİÈż8´vŬı°Ä˜˘îšĞ·›Z* /ѓĠ—&cQ‰•ĝÁ'EšCġ6—żÙ˘ò۞ı%s‹d@Á ~?ßAì€xx>`ğ–Á\_Ïğĉ% ü:àÛA\Ëît<Ċ[‘Š9ĝR ‚Ĉ³ĴÑï{!ü믙ŝ6âîŬ “á½ôOú¤ žá}÷`óéĞcêËôħi™é›K .ĵß|ê&²;’“–‘²3UşwfUN &ÉŞ€–™~ZŸĠ’Ô kŞW"w˘ġrgĊ3 Ÿ´KS>ËsÂ/Hà‡ŜXÓhşûj<,|ş;˘‰DĞŬ_LXˆŭG' o—4}_N¨‡3§GĜD˘! ıċĜşÀ•zl£ùXޞĴˆòBlhü‰‹?ží‰Vii}UQ hn"xͧrĥ}İŭé1­7ˆĥc"ç:ĴĊĤ(ÉNh‚Ŭ(H\ƒ`LpGieÊêŞJ`ĝ£Ż/ĠUU×7]8zŬ$IòY'ĥÄÓ'|‚—€ ScskbÛŞƒB“Ö(RċşuzÌ8céĵà•ħĜŠċ™÷[óÁv’—Pwıó(7óèĥÚô#*Á:Żötó‰Ğ<Ÿ))š™G™úŒ”LäÑ °üé鉎‹’Ĉ e÷P'jÓ7cĊ]ÏÎ7ŜzjóƒS;şL*‰Ž4ĴMYÄÇä6äċUŸ ,Ë6WĞ"z̔Ĥ äŒVÄ?rnI?ibżísÑâa4Qâ vèŻÁ“~lCȌ´‰OÁr´ĝ5ŸĈ[r'‹‹ ÖוœGçĜïçßÄà x„-6_{8%F¤]oXϊßF‡%x­ĥÁ˘Ż]ÀúëÇU­m’Ö‹'Ħ;èşvU+~mGÚr{jí ŸÀeŠcÍ7[ÏߖŠßúâ½&.ŜwċBżÈ“-ğñċWÒAğ8`ĝ,î€ÄžĜ­Ĵz{¸3ż@éìôżÂż·½ı.ıñËi˜‰`ıT.zNjŽ4˘y˜#ÑrĊÔ-·7—kžğ,Ŭĵfóş4µÎm> stream xœ•XiXWÖfİ.”D,–ĞHbŒ&¸o¸kTP#*Ŭ-;4ÍŜÍ#}‹EĦ›}_p×$&j2.ŸŠĦĠ͢cĈ¸d4·f.?[Ŭ|™™ŸĝÈséë½÷œóž÷}ÂĈАH$c×oĜŞ ]9{ÖôeĦÁûğı $›VÂDk€"„ĥĥHŒYĥdâŽġ ĉ½ÎÛK€½5°·ùòMĉÑ8ȏ^c k‰dğŻjy¨JàçéúáĴYsĤOÇ˙Îw•k\—Íp]+S…ĈD¸Ê”û\×ÎĜ0uch ŝa€ë”PĞÜÇ_ìëêëşÍg‡ĞÇ֕[ĥşşoÙäħyëÔz’ ˆK•ËB—ĞV„­ _µ&:FĤ–kb÷ùĝnöóß°5(Ĝ3Äí£·&-ü`ό½ñ6ħ‰x‡ĜLL">%Ŝ%ĥ“‰­Ä{Ä6ƒ$Ŝ'ĥ;ˆeÄNb9ñħ‚˜Aì"VĞwb6ħšXCÌ!ÖnÄzbñ1ħ‘`'а%XžXLŒ!–3qN "–ÄKÎZͰ:fmo­µk“bóğmícr7Y-•H³([*ßNb—n×?ÊgÔ·£—ÖÙÛĜï{mék^Ox½LĉĜqc=ĈĥŒÛ1î+‡Yô:‰J˙1ŜiüĜòşP Œ÷‚SŒDÈê`@iúĦ„ı> ;wN9ŸAĴ6E†ìrœ€Z›‘˜ž–â(˙Ĉìrö YYÇ··hòüyNßN&ġsŭµš,èâW§­ÄŸ—7ĉ´qh-ÜĊ +ò+xĜÖ|+ì44:üÍäeò3ŭlr˘;…˘Ĥ#”W³ŝPIŝóĝü­ŠHuKŻÑĤÚ7aİÍöókԖrôġvÔé×Z_Ëz?œIÒue|{‡’Wsŝp>ùàZÛÉSĊáž, ‘Ş•xg“ĥŒƒSÉRĵ‹³ĵ@f„kŒ?öCߍ}Nô A 3à²âە5çjÛ΀Ż)Ĉ~D²HEĈ†hŭ|´zN7 ӐĉóĊóÒI:Jż}p—›[_ċĉٙp $Iúö­òm!\jföúy.`e&i›ÛuĞċâŭFĝQrÎsMÖB T2žöÙ"ÛiSĈ?ŝZCëǏ!ÍÎ+`ĉnYéîċĈŭŝoırġâĤY|@²Qˆ1J &Ĝ†ˆ…K˜N%HLV˙ŭlĈìQ>€úhÁ3ĝt½ûÌôġYï%‡¸ĵ˜\M şùêjNêµ ~êÔ¤Ô 6{?ÈN‹ ĴÙĞórÄŻx­Eë ŝá¨<_Œ‚p‚ž0×­ow_@œŠÓĉ,$ŠŻ7ë7WoyBx KOŞÒĤû‰Sš+VĈÑMíZ˙y›IŠĠâè bÁpĊ—“†@Cz  Ġ“żñÜ|Ç9ë6eizEÇıéı/Ożöû'Ĵır‚Ì(ùŜ³úĴ…8xށsçÀİȅEğ_Ŭ Jd +¸›„Nż@W8ŸŒĴ<ġ;WŬ'_~ސdDtg?Àñ?t™ä?8ÑİBrg:TĝtşBh&é·+µ5 –éIÚ`Uµŝ3œ2ÛIÓƒĈŭ:ZŸ?Z[YĦu İF™íï[1C˙ ~Lêêqĵh‘`Ïlß³x‰ûĤ+Ĥ{W.÷^ë^ħÉô6µbC@S½i#îˆ üiĉ´ _(×FD°›Q6ô†6R^žß¨.ĤŠ{ ߛݲÈ%énħ—ŒâşŽ‚š*ĥGڎ›‡ Hˆ`1²èáÌ I[ ‹ ƒ=‘côë §˜ Ûobq;Ĥ2éäœ]ŸĈoßΖHiW|˘‚u%é%b€Ŭ ĈÈö Î¤F‰ï#†¤NìĈ^½'vxp˙‹Ÿ ‘KÑ+"Ş4µµUşĤÁ°=Äż’ßL‡m-$ ɌùÑ v@:üÌêYĈrOêñ˜-8oèíHœC_[Ɋ İUĝdĊËYd‡?R[’э“ĊZşî€1ÔèpŬ³ŒNôfA9UĉOÖ9‡Pƒ*Šv­jŞÇÒK%ı‘|LnL‡ıo޸k8úìz˙¨´Ô´,VVĤ@Ñ·Ñâ¨ı~Ó_Đ½?ĵ‚ĉ]â)eтÄ(´ÂÛq@$9ÔWä4Ô6 ĥٖnօ4$´BwûT*àRjùC Ŝu6o·œ~܈1¸Ĝè@Ï „w˜ĥœhÜHd” ßQĞ­â ¤ iĠFġµŒ"_à’˘Ab˜bœ½!ok0K_{XN$‡˙Kthĥ@yV–§ ¨7O•{¸ùKŻÖšĵçŭ‹Ş5ue-EÇx4ç–^=9—EK³hO0˘“W\vÑvħ ŝ$Ĉ­ŞĉDvDŽ–êL9kŸ2@ ԁñ iĥù6´˙:ĉsݤX"dÖȟD£áÔp˘mYք ÉшYĊY)MŻÖr[nSĊ—€F—6eŽĈ\’ Q`ÛH(A‘Mµġë9(ğ¤9MħTöPEBD Ŭ^!‘ž5¤'íñdÑÍҗšÀÁÜԙög5„ŭżR‚Â݁ĴİÑĦûİŬñß`6•L%ĥ‡˙3ÌjHèŠ^f%GŻLŽr‰ñ ŽT>Ż(ĦhUCt…2X­ÜÓîŭĊÓ38…S…uĥ4û‡&ĝ)èıŭL€$ÓêϧГ²#RṲ̀Ù:@-\}˙DíK8Ž£İϵĵ˘2¸ÔWë[8úÙ­·r½Òhâ‡èµ_'AÓú{Ù°PŝOÌıa-è`ZbòƒXA&m.Ïo!Ĉm#÷‚ŒĝċGHï<ĥ%Ġİĝ8à²Í́ċ™Í܀L“hóùÉĝŒ`N˜&ŭ é&—¤a<e……eŭ°Ĝy`ڟwë¤ ê0„fV4%J”£°şä½KW8Ċ˘{¤OJŠ·GjħêjVƒèޏˆûÚEQ£­b’Ĵ+àĞ€ŽzĠ@ÇEäàKŝr˘…b3ğĊ²~B<ùŠğ†‚Éà*ßCĜ$!ĞİXğ9:{8ġ3†òšz–Ŝšs ıS$³Lfè8‡ĦÛvÈ­\qµïçËß\ıp|çÎA=ħë…"Cù –-*5+*•ÙŭYZ8X VÓôR°•ĴİÇĦtÍä„ì§NFcјçïbkġĉİGµÜ\8™Adé/Nŝœ碊Ŭ¨Wy{‰tVƒġÂiĉòÇ9šù wÍf½gKÍ<-ĉùêœ5‚8ˆéuì„6d™ˆX•ˆXyé‹ü6/áph3 Şêt-ƒċ™g„áF v‘ĝĤha!óhÉCdÇ"ċ3 pÜ5Ñpî`8Ş÷ÁݏÏ>Sl˜Nƒáż’?u­ßeöU½pzĦîu¨ğ—×wżżòĤ=ž ŽLMLÛĉd/mnVSXê ¨–-v“ :ÄEP\Y˜@ÑO^µĴI~íĊ:œ8ÇWîÔ_lŻg d•³µŠÔ€èÌx]jħVÈċ䔤5'bŬ~dì}PŸV_Ë)(É-Î) ĞN/Ty]I+‡ĥ!‚ÙħOáĊ҇ˆ]>GOŜÙyê´AĉĊ½Dż3ò~3ñ’áE?'1è.vñÓ˘~d…TĞ%˘…(ĊŻ 5Lôc"z\#Ë@=h×ÔŠŝ=Ĵ!ú ]Pcl; Ö^ïâBĝˆÙ+Û>]=.‘ô}˘żÛsï/œ‡ĥPI7üào…=ƒ4]4$b+J‹ż‚ÏQ'ž‡1Ĝeñô,Ä ELSxMPPxxpPMxssMM³eBŞ5­FH%gï|w§äNÍkA 1àŠßħÄò.UÁBŬB³Oħ8J›v8½zAĈ<(E¤%„ħІĊ2Ñï/ŝ‹›ûI÷{´QĠfŜր.ğžË½ó*ŭXïú,ƒĥT[­Ĝ‡mˆÀö€1ûÊÂCġ…lWĜù„‹X›F}÷˃ĦD<5J^Ŝ€e˜¨ “ " WC›—ĥMĉH-Büŝˆò˜MĈĜÂ;żnĜ~w È#Ìĝ·Ĵ¸F^żü9k2@ K‡ÜÖÏ8c4ú˘#¸Ñ24jÄşwˆïG Ŭ˜ó…‘5ì{ĉá9H—ÙŞċ& ,œ$,lċuù ÙĊÌÎï™9& "Ѓƒô@vħL§m. ‚/ꆴ u˜¤Wż1ĝŞç鍧=NôAMïÇBµ´"ÚÍġIT²ħ Ş#Á@ T)‘ŠŝĦ2]Ík&›a¨ÏÄ~¨Sê§Ĉ"%vÑ=R'ŝî".ߏƒŸHé3w[ô…q[Y*ÖŞ3A…3]Ĉ~gÙkÙw·íxGùA˘Ħ]âĦ4ŝbè ĵ‚ë™÷X2é" iE \YÈȎBáèısJµ(ʧ8­…ݳ=‡}ŠuöŽáĥ˙r͒`´ÉÀ Oz ĥfˆC7cí-8ÙèùCèĜžŻÁĤÉM;(ŭdíċ•$gġŜÔó=¨%™YYÙé  -ldéïŞômg}/LĈ3˙è5´BrùŽ~„ÍÓ=ĝ:&ġ=×lò?ùµ†MÇ£(ĤÎ}üzîf“m…8T$­áMá+ĉŻĵ”ŻĴMlzÂ7f——nW˜{’*D+˙cŸnŠŝgIŒäĞ[ŒğeŭÏ2œQ=Ao7Pp³´>³#ñˆOjjf"H¤ÂÊ#šŞë½íñ’bÌ­éĞUŞÙ)"â6,KAÄDÀyò“úé: ,TK¨>2E–µ}ŜùE6UŠÙÑÎ7èÙF)]yö>¸NĦŭƒÙYĵ· Ŭ]­çŠ)¸`Àš{}ċ[“(è!=ŸîöŠò ·ô_î—ñÂXĤKžǢdœ<[!7hK8ĝŒ,1ŬšbÓí'°è™à£•+ş³K9ĝ€,íÎéaò4nè‡pòTŭÖB<ĵÈt+ÄŬމ,ÑvÉċZ^9!Gi‚B+—w‰';"'2Wtwó]%,t‚ŽÒ’.|>MX-t3hÎíÔĵdšċ‚ĉ,òŽn\wTç'ŭNÚpLÓxÙğÂĊ\ħ‰ŒŸ‰Ö°˙ÓXï/S(Z”mGëZ[Íx,Ù >ç9|ŭ%Òr]rħ0ŻÎ+Î+&£L£ÙQ6ÛBíí€ŭèSUyĵĝ'_ŸwÀŜŝFÏàUy!_h˙Aü/êvЈendstream endobj 548 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 604 >> stream xœeÏÁOÚ`ŻÓ·ež&K[l;zXĉ&s‚Ĉ,.n‚•J ‚@]¤’wXLEĜ2T‚4j<›žvÙ};ĝO|ĊzXM–eÉû½ßáIŜüo ‚ şŜy£Ìš›ô‡ì½}ö!ÚϳŜiû°Óîtèù ċĦtŬPlPŬ­VÎdCŻ_ÙFú{HĈ/¤EjŬż‡Çîâ÷Ĝ}ÂÙ˙á‘ï1ġÜáxIı½êB ;)§#BȘHöt#ôy ‘Ȥ5AFt@ŒŸ‰‹!Ğ2ĴşO”n}üö—àƒÎͅB*Ÿ¨MĴ¸%Nà„X&1‰S…H1Œïċ“y\ÀidŝŽĦ’­ˆ•\}E‚:ìĤ·gks[`ÀrbnjéúÖF-· ğP_”ÒuĦ’İ@Ž×ŽjûSıtĤ_óO’a BËĈĘÈ-sÀg~,2‘J$S3 –˙½9Í;³šÌ§Š×êrUĴŠċlʰ+ì$k‰Sòë3ÑëZ|†ĝtp‘… „ráÈzôš:„ÑÒıèl$Ö Á6ù,ü$0êŠê×ö Y*6 5qGĞUΔ…²P]ŞBġŞVXÈoZĴ­ï­ċgçċ…úÍä3+ú÷|ı‚ŠöLÖ‹ó2Ïe>ÇùNU’ħ„%YĠ–K•TÉU7[V~ ÷oĥŭnĜFl<#oÙ~ĝ•$ċ-ò6BŞ-Òendstream endobj 549 0 obj << /Filter /FlateDecode /Length 642 >> stream xœ]Ô;nÛ`à^§à ôĜ— c7.I.@Qż ĤZ.rû̌ì)†ÀH$°ĜġÓËóË| ëËeúĠoé<—ŝ~ùXĤ>úëy^mwñ<Ŭ>›žÓÛx]­Ÿ×ß}À ŭtïßÇ·ŝ™ÛÔOÛûGÓċĜ߯ԗq~íĞÇÍĤ=žNmĠçíŭŝĊáôùênהÍOTk ŞħzSP5š‚ĴûĤ îYš‚úÀzh êuj êÄzl ꑵ7µ³žš‚ Ĉ£Ál6x˘n›‚şeĊĝ&‚‘`ßD0 ›F‚a|ÁH°l j²VSP‹84àL@#ĈĤ ŽĴ°šĵFŻÁjò½ĞÉkôĴ&ŻÑëÀı€N ç:œ è:p. èÀı€N ç:œ è:p. èÀı€N ç:œ è:p. èÀı€N ç:œ èb™…:°†ĵAoÀò½kÈôĴ!o°†ĵAoÀò½kÈôĴ!o°†ĵAoÀò½\p!`À…€A`@E‰ñS„$!1~А$$ĈO’„Äĝ)B’?EH§IBbü!IHŒŸ"$ ‰ñS„$!ħÔʒ+KhR˘¤(ĦI‰’˘„&%JŠëJ­,ı².L ë*­Ĵ¸²‚µä-z ֒·è-XKŜ˘·`-y‹Ŝ‚µä-z ֒·è-XKŜ˘·`-y‹Ŝ‚µä-z ֒·è-XKŜ˘·€+ñä5ü:{<Œ<ħ_u˜>–Ï7ŬaŬYž×óÜ˙êëċÊŻdġêibÀendstream endobj 550 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7565 >> stream xœYXTGğ>+ìÙ£bä¨9‹=ħĊ56PQ,ˆ˘¨`£7İK[zŸ÷ŜĞŠ¨ĜħbY˘ÑĠ¨Ñ$ĈD1jL4ġ~'ŝçı³ğ”ÍŸr/â.3gvĉĞï÷~³"J%‰FXÛĜĝúĝΚ9ŬÖÙ5Èk·żzr–0Z$Œ ĵĞ—„C…Cż[‰ß†™/wĞġbz(2CúÇL>f(„Œ€ `8%‰ì]}#“Vĝîġwwu 4=sĉœéÓÉëBÓ=ĦĤĉ3L­vïġô•xş›îöÙgj5f†é:_™t7}Ï×Çt³Ûn/S_S;ç­Ĥ›7­²ŬdşÚvŭĉ ›ŜŸñß2öŽŭ‚|Ü}\½œgÌrġßĴùƒ˘¨-f>“·šûn[ħßUŝĞ×Y[ÉvŻ Ùcş×&lß:çġ.\7şÙşoò°óÜìµĊÛ~fĝĴÙò9sçÍ˙pÁ¸…Mĝhââ%Kß{ùöİ;Ĥíœ>éŠG­R İñÔj5ÚHM¤lEˆšDm˘&SvÔ{Ôfê}j 5…²§ĤR[)sjµZAM§¨•Ô j;µŠú€² fRĞİYÔj6eIÍĦĴ¨ıÔZjeMͧl¨İuÔjµƒ2¤Xʑz‡â¨‘”eL™PzÔ(JŸM‰İ1M½Kñ””H ˘ĈR‹)j 5„ZJ †QËİá”=q1YI ˘•˘WÜ4ëÖSèÖßĞGĈcĦ Ä(˘‹Ġ²’Yéx:Ây{U£jéJ·ßÀUPFô …K̝S° ÷ôî^,­ê–ġÈö`ô LaÙ܈‡‘™*È_Ó î Ëè¨u_cËj²÷!l§uŸƒp‰.GUîn(̙ß߸§Î–XGâ4ÌâáŻĤÀ€Û§[Ğ+ĜÓAÇgiŭƒg #9[‡… ÍĴî<qGġĊƒSK-ĠZIÁ0J&‚Ż„5ÌkĜZ™‘+G%˘”Ô°äèp‚a>‡âĞ˘Ÿ¸&Ċ!Ĥ˘°¸'G‚”à¤Á##Ġ)Ġb˙?„Ô6K˘3XĈ[à #ÉŜrU•ó/{ž…ïáħ8Ñl¤lĦCP!u+7'äıóŬûşİ[îŬoCAJ³fçê"LWž }mÄÎ…Á\EÔñ[׆ZÛñ‡$ìC͎x@t‰;ġ ¨b°ž:9'ĵşö†Š€RY-bŞ*Jê{óP˙Š~RÁ˘ž)$p½èñ`·ÜCÇé3úÓĈ<` ŭ·ĥCë˘>UB™ROp‚ús•ž™Ğ Œ}2V £LŬĉï*òöKçaiaÍ=ı¤Ò¤R@’<>…wŞtB!$L> \èúÁŻa/äÒö¸/"ÑĈĊĊcĉŽMùüùIJ¤|?ĨŬ%" GŝMı%ŠÖŬġbJɄÙ:ĞMp˜£„“JÑÔí!žkR£5ÜoÌtÖwĜħ1‹–E bú??jù8SÒ´°Ĵ¨ş?ç{pb´{ïÖ´·x7Ò`-ħġ/Ĝ_9ŜT]! B2­­`ħ¤† }6Ŝ&F|>›ˆħ ı2Téĉ‘Ĉ§ÚĜĈš´]¨•B,,ô™/xL÷EċÂıÚ*§Ĉüg8™žzÛġŜŭ/Otñ:È/zŞ7²j“6ûüymż'uuĊŽĜ ˙ü´ŻîÔvËŭûGÑ`pÁŝôCĴVI;upB̰PYÀ #6BÈmV[\Î;ÂcZvŞñî4Û>kQ”çbtĠ’żÈ§Şîµµċ5´òìOE%*}.İĠÚU§dĜöbL r tòH^Ġ-ǔÎĝH_ġ, )E5°í1lÓ’… ZâŭŞ6X„`<7èn`żİšhà—”£j”$ʸI·ä$+EwğÀ‚ˆìO(‰6-ûezÜ=ƒžż01$n;Şóá3232Q SRááiŭɎ·]_^ú–ĉ6IzôœWŠJ`û+Ĝ'd ıĤÊc  !ċÒvz>/N“ê"OGµ…~œœï†bH–E%ÇïĊ|’ŒIíáĵ¸]ËQˆ´÷•Dë¸+#0=â29†Òs˔µÏEéUŒ‚δoĊ3â ÂÊPjEé%U×Ħ˸ݲ7ìIDÜUžSA8AÚĦ„DİÛğc2Óx’ÜŬüOĜ5™{W†×7äĥ*x”£PT¤) Q.b>ğàµRŠW%aÛT†ĥĝĜê§ÖÎìĉ3<ğÜĞêlê‘Ñ „ Òù3GĜjP†- suDq£mö:ÚŝM+LÌ菓Ĝ ³ô„8*¤Êó)IYİix.1†i`'>LÄnڏäÒ9jwh%vĊċb(Ż’÷–ÜÉZ_İı“ĤVöŜÒ}k‚À„~ Á§‹û˜Ö]ŞÖİĉ“Ĝ.’7kp0bö‘ɽ4~ĉa4âctQ}o$ì%CġR³IË~×ġÒ <°_àc4 Âïááxžx/ÍÖöÍ@mÌ#/é70Ĵ ûö’HòL}JRŬW‚X)"2‹Äèq°úkŽvgÑ2L0Ż˘–˙.òW&"$¨ÏP×_’3édÁ¤ŝ&òIżÚóûĴµ[îÒ? èŜ²ŠC”ëÀI)lWÖÁ6ĵĉ1XÀ6#vÔ?ò ìé’ïe’J'–ÇVĈ—Ï€xÚżÏëfĈáß3bP2B&ùéϰñ>v)İ ÊÌ-”²ËkCËüyöÄŝ°PżŬ‡öĥż=ĈùRĝ@Ĝ.nҁHu}ĵ§‚€.=ÁD\ƒJI‘Ċó ‘!;Ì3ĊoÏ6Ô]yĊJnċòÄÔT–6ŜñòġxÌlj"‚ô=Ñ´P %J+ğ:è€1ä͈­2H4#O^K¨’§~İĉIòXż5ĜÑ8Ê5Ö'Á‡$̙9P’SäˆÙ¤ħ””m$Ù€ï–K<ĠQfލÁ?ÖjŜÒnäïĵí2"s 3³â â P!*ÊÉ)JÏú² .2Šn?Z½…ĥЉyÜgM"ˆÚUFÂÀ·ğÚOœq•nB{e…"•š B!<~I{ÄĊyHwJúHG¤IMÜ,KMFa&îU¨œ†ÑUY¨3½t[Òş…)²ż0 YS˜fӍ{Jv‘ /šJĜŞ”MǟOù­x}cÏsEòc|OÂ3àCŽmÙä¸`éÊġwğ^ßıyçFû&ğŝ0ÙÁ„|ôö4cu+­o*­…䨃éû‘Éj­.Â}£ßtj°àĞ Áş;ı­$µ™4¤‘ Yµ’ŝ C×?ğï( Ùŭž K‰çƒĥnŽġEËÑòsáß0pž,G­@ŻŭÄƒ§NĈ¤l+ú$àÀĝÌóZ~%Œp9]tïÚċ;ˆ´ŝı˜İCġÄknp•ƒÁ ĜÛïÇ'ñÊŭ`ÖUġpœ·Èċ Z½9z“_l4ùWF‹:ž˘Ë¨ŬÎ?]x­ıà1z€Zb‹í vÉÖ1½a#BXĞŞ'X —¸ëĦ–îœËo™Üτ~ĝ“tÊyMٟ0T'›‡žĦŬBM|RꒆŜd­„d ÖU…ċÜK³çXÂÀ"óÀġŸá ք{sïùKu[vYLċÇBòoôë[4 zÌ\Ë{_7lĵ˘²UÁ•ßĠ$ĠĈĞFìpJÈŒıêĉÍÑİî;yv•îVsôô•Ëçï*ġ(‘²"*:<6È{r+òύ"¨3ÜÌ­Ž5ï×uĵókç×풲³—£ĤĜĈ°†Ê‚šŒBEÖŝêĝ<ĔV4JñĴÇÙ:9ÙoŜ}ĉ"ÏŜÌĵròä…KÇwláÂ˜sZkòäċ'N–ċ8PÁזä˘{ˆé1š'Ġ ‰êù?†Há¤Èç•x`NT>*A&ıtq)*ϒŽ’Ĉ†Š/ŝúIkı²mÔ7ËA<^ġ˙êH˙„ĝ2ìUÁ(h÷(d…ĵË=K½Â!ĉšOސ6~ĉ7ÎäW€Ç§4Ûġâä†í}|˙­!¸ż5'R’ÊÚCNĈġ2yëê!É÷Ğ­qĥ Œß"öô8ÁB ¤\ôAŒìžN£0äìçĥßً°R•‘FŠXÊfKƒƒÂ|x6vÙ¨ &ƒ<ûŽBxŭ·FÒV[Ş䟞¨Ó½Ö–BóŝRxLşċö:7)f:mRĴm¨ šhZÚ×q:HŒ_ÑĤ–öö[Ĵ.üŻšÔœĵıI#ٟV½Ħñ°§ĵ}ûô áM§¤Ó.şöôÈxdoŭïu˘&ħG’F‘Ó÷S–¸/aXñ`ŭ9XĞy{zŻ´µbT˘éR|-rKȲĝ]j‚Ù’TÛ:E01fwµTöÈÌn˜H³/{Ö&Ü]šç\‚‘I=*Gı­`,”ì•\{mtħЍĜvĦPï\yH$äèÙŜ{"÷ùò‡|Ë<'ò–1ì—M)2:ړî;wJ\ƒ{é™Ö·d)Ĵ–°í]mgÚŞ‹ÂĴx,—„ôÂ׃?-ú—%ë<|”†ù07ĉ6\#ö§ĉ=j,ÖA-Ú ·.Ŝ>Ġ—˜'áĈpH͊­Dħ¤-•ĦҖîÀ;m3E™İċñ—ìS]rXÛï4 \İ‚ŝ´ğBÌ>tËĴA£s íËĞHÏ‘ÇHƒšáx ‡*R²ŭëP6iQkPf˧B…q~½î 0iO’Q—İuÁÀú“5¸ë~ÂF0ôßÂ(°â-ò9üž´d‰ ‚÷`’êÍŭ{wŜǓĠé´@ çÔż=áeÏ5ú+by<&FÍ Ì“ Úä6ğĤµĊµ -T‹Žç”y–Ö‚˜ĴŠĴ˘Yè*,Šœ&MM@ې/3K‚\Q„k¸kÄĥÔ@Ä$ÈĵkRó¤uİ JNÛÌàEä/ĝĵ1¤yïóĦJ*A"‘e]O¨ÏJi5V†$DE%òÎóí£CRÂSƒSÈAŝe‰ĊċmYGNòŬ‹fJúËI†S'ÙixĦ üU>ŝ’Ż6‡­‡ĝò8–f‡_;˙úÁ‰c ûòŽÓ7“àĦxâ…ó]˘K+ĞK  c³ùâÓgš/#ĉñsV9l´´“b?ĵ.6.!ÉMԝ2Ïf šez›ğ˙2-qSS€"†Pài) |$A è”}ö:ë 7Ą‘°ô+O"Y˧ûy0˜oħç‰ÀMž);Pƒ-$•]ñčIɑOżĞĝ²XŞÈBçPó\B|V|¸äpñYEÖ7=·‰i7ÀAix²k}Wa Rí%–ÁœCww\³lê8Üp]bî›ßÂl°jğ…G­ĵB­wQB^r:ßÜ|W}İqûœĞ£w„Ûŝ ݧŸŠkŠmRB>Œ.ùÓ4›÷ĉüšë6YÏÜğ4˙ŒŸ433›ô2}7@³żßH`Ùèë/{0œR ïGßïè$=Fl×úz üJŒÏqç}锘)!ĝĜH”‚dŒGn|3™˜²Ñakú³Ë¨G=—ĉÍö§Á~k-Ĵ„yJÑ3¤Wx-÷Ò 7§ĝ =<ĜBĵÎġeíë)Ċċ’Px ,#3/‡Ż?Vv•¸ŝ”ıĠG+×èğ6ç²/Q1'›¨ĜXáğoÁ“U #Ŝ<=-O€ ßIš\‹wW~IŸÛğŸl#_c_=~†Ħ’èÌDò“€B™€2Y]mEiSğë)$£Gá!Ĝǀùž}˘ž€Ħîó,mWXíkWÊĝ˜š´TÄt^?÷ٗטİÏÏ *E'UW4BO‡ż˘JBQbÜQPˆtwO.oàĦ”ĈfĜÚïGx#G-ù|&´Ât0W^Ğ(KK#'ôēv’xRÙİż7QA:MMĴ™U~QŞ]aÏ„cƒ/²=½ís?ž½ğz{¤0êےüì TÌä$Vĝùà]ĜçâÁ§gµl/š?ĜDjg]fEŽF£*=ĝU- ŜùÜíܖ{Ë;Ÿ ‹‹ÈÏL–Â,*ĈóHƒ:ÙKñè™$”Q—%Ğm„]rµ_0žWByìĝĥV‘šĝ×à‹b’QL ïĉéíN:@j P0Ŝ˙ñ§ŸNĊĴĞ–&§İi1ó‘Ġ<,Ĉƒï,şßŝú8˜ŬDŽWâ1x86ÂkjŠMÀôù“+ÒMÄ-r´Ŭµc÷ġGON_>~êäĈEZž÷ûxÂDü‰Yd[zŠÁ´ßÇ4Ë&KmċûÏZ‰WVÌ!,ûhÔ܁쎞FlĦ+<ĈÓ¨Ċ€ Ç$}xx: ıµ)àa<Œ“hEí_—íÊIÊKÎÂO~_mœ˜W„YDXh\FLz‚žügufLNX2İ(.-“j3Q…“ôàM-§ÜwÔio ·§s£˙ÁĴlEZ6a³#<*)&94‘PuÒĝé QYN\xy7÷ûڞĤ×R§Ë›öŸñxšÎĜ²ïf^­ħ&µÚŜíGS¸K÷jƒú˘óŻĝ nÁ?R˙uÁċ÷ɚ”ŠˆL 5ú?ñáİĊ™„‡UTefñĠïÙ% „rL†Fç +òaI~F>­¤ÌÒ·ó5ˆ )ÉR¨2+2² Z*Ó2²ċŠĵKó †PÔ˙$Ĵendstream endobj 551 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2643 >> stream xœeVyPS×—xoĠĤUšê}Ô$µVÑjİUħUÜ4¨lnˆ ! „=Pl@à$l²C[$ˆÙdQ*‚ËëX—‘*˘}­[_çMÏeŻï]ԙי7çżßÌùï|ßoùpl††ĝœ-Á1IŒÇğ4ÁriÈtSĈg>pbpr¤œ,›Ô °w<6-rwçÙ0{FĠ³xsa÷˜ġT½‹qpüZżE•# ˆVŻ[·JĴ+EZe”ö¸\ގ„ŠâT1‘˘ "İF­‰‘+Dğ”!+E›ċrÑĞ{jQŒD-‰‰•„mQ)¤ĦF,_ùż o‹^ŭż8†aó•ި­ÛbĥĞ5Úà„PI˜xŸTî§Xa{1WLŒù`‹ħ%Ĝ~ì#ìĉ‹ùaĜAl+ĥ ێíÀVck°Ŭ˜7ĥۃı`4K6û 'p?üĥÓ2'àt³šSÂy:#pĈħ“($iäO\OîCj3e¤ÌŒžÙmµ‚˜ GàO„s+–Ó.ŽŠĝ ”,­^)<†ĵ3´™ñ …İ‹ëmh/2÷ ¸šô„L dñ•öòĵšüFáiĝÉİ3ù  žî´ùûyËĵÜĤ™ga[Ĵj›Ë|ñˆ_ç9ż|8ı†/á^Í(JŝpŞ?Qç•NH`ŭí\öÀ·Ë5OèİĈ+ן˙íñNr8G …è"ż–ÖM†R@żèRìZĵeâ$ŒZĦóKot?mÍ9£ ôÉ6"jû½X­Á¨ò˜ìg™UmxÍ,šà@;Çßö(ùîSĴë)DŬĜüû·ÖÁnA˙p]0FÁ·wŬq¤„òŻ´ú/En›ŝÙŜ°ŝ“[Ä&,EÊ&èuž™WŻíŸËĈç9ÀÓœ>E ,§÷ÒN}%N%PßÄuĞl†{êS-z  ˙n6÷]m¸Sì5â÷cqÇ}%Wˆ/§Ö‡àhgKĞİ ƒgŽşoP­— ċÇ₀ ¨ &Š7ıt3wşpĤögÎk6ŻħlŠĤú“tžÓl†sá[óĜ½ħ{ À™\'ú ĵI¸ì–'rqX°SèżcmÂu€ä1  Úğa~fns~x£RñtŜ×*1ñ\;\K!K’tŠ„v Kt'·gÉs0Š8Fj=tr#{a>#Éâdâ³n\–ÂB`f\GÙ"ldÈyÎb¸mš°ÖżáCò,L%œĊOìƒż8,óÀruÖbu4ik¤žGVy íp›-´†.XمG3£œGŻáĤéDSI:Ż –†Üvîĥ<]y/nÙÛ%<|FU ÎPmM íĊE™ú">Ò_bfv<3çpàĉ.?#HBÁÉóEuéŞ, H˘÷XC-ŭċ7vnHJ¤^¨Ĝšöâœò“°š èց‘Ġda_ĝzˆ™eÉ1Ŭl½l…£Ġ2"š;žìƒ*24™q ‘·F [/ŬdëA:H§‚ŞâÎÚΛ/²­ÖǟLTdœİş:Ż&Ż^xŽëÉMèßûƒâ#5·”çÖœŽÂóìƒ5'0.mxċ8‡YÉ §•—Ë T€^ ÖX+ŬŸà vRÈi`÷DOOÈY “ ¨Š9g=[R{QčJO8ù ÂËìe9µÍÂ3p[ùíҞ˘j-ċ·ïñG•ǃBµ@û(Ûż‡kÁpf^.ylސb„ı;‚#‚yĈgĝGZî„Ŝ¤.•ĦG`ŽQŒˆâ='iñeYFĴDÑá-ŠŜñŸ OpY;Ŝz×4żšën!âI/ô‘?š,’Áó•p‰ŝ[Opd€“ُ¤ 3ï÷âċc8 §ĝC}-°Q‰ŭ€÷.ùŝŸÂ|J!bxû—ŻÛŻş¸öЎÊ[Òû~üíËûFFıùÄÚ} Íxġ}£šÔÑ %ĦâŝG•DçEús°&÷³È€Do°ƒBdßîïm#½ÓâħòQе]–s…ĉi"zí´x ]YCİħ*·Fĝó‚@bÔÉïÙwŬwDhéù1¸ágˆ˙Xp*+ğâ~â"ÜzzcaÀcßq ,ä7·‡FżTc­Fîµu/š£fHùp{ÉóĞ`‚ió:¸[é Ĝ/–­kÙá9´ëÙġëM#‚nïĞ{†ôŜŻ0T˄<Ĝ‰äיĦN¨;£ċLŝ1‰ómù&3°PM‡V]‰6É_ʳe7 ‚Q{<˘W>HğZui_ëĜ6ˆĴ‰µ÷\tÜœ1Ŭ)}Ò[ç;Ùï7ŬsԳ괔u8÷”óݳëÍLLsp=óġe`Í6g—ŠáLˆC·Ğ’‹>Ġ• €:x”_f(cw úBVĦw×oF):ƒADzġ+ûHY'léÄŸçœğŻı™^üzâxNOœLww^jY7ÔWL† @[AUVIzŸ&?¤Ô§|GĦ˙EU’íÄ9Pjĥ\Ş•› ĤÏ >önÔ³ŻŻ­İ‚ï5ÜĵŝIŭ½- 4Ĉ6{ù+Tôż.„oX´É SS!…e·]ßÇĵk)1Cbxïx9Ä8ÈäB­VÈë4MġuM1ġJaŠá£‘ìH¸Ÿ,F}'µY •ŞÖv8zĤğÑĈ•§İ3â%O,µäN‹…ß1o<Ĝp˘wò=K‘oùž#Ĥ+ĠMÁfùGÚòİ”TïôP £ëÔ½ĥ΢ş!6‹"Mž¨ĝ [YŽġTğ% ùı5­4yœafŝtà6ĉOŽí}Ŭ ?O!b„„/&gä$–pżÉ8•ŒêĤLîŒİ üRáàò&/½ò0‹£ż™Ë̃ŜìÊ-|mcäÓßrGs$}>ċĈîQĝ„p–Ô[\ZÌÚ0]Ĥ&=R¸uä5ĝ´k°ßêts…6X—ûĈâhX‹“J;Żż`m/6ĴĴɉŸ69‘ñ&{krĴŻLÎéÜPCHí‡y+öx²/+ìà0”oô4=ŸÏƒßeÀY0ÎšÛ g·ĤŬ&š/‹Ž–ÉĴQöf‹µı9Ú":WoG˙aQl8ÚŜlµ47GYeB^b%›½J{rI¤Üĥ·̰˙ıŠSÇendstream endobj 552 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3902 >> stream xœ­W{TSWş?ŠZar5L{ĥĈVÇi­µ3íjĠ޵A@Ŝy? ïċI€$$@x% ATh­J+µUoçNkÛk½}ĴNW§³Ó×½wV˜ŜöżÖÊ";;gßïû}żï·YDTÁbħĜcżˆ˙§Ġ+· Ò r3Ĉ×քÏ ?~(ñĵ#Ùó6<˙PÒög"ĉš£Y ÑQŻ>s> ÍGòyèD$‹u Ğh#żXRš›#ˆ|ġê'VÄïOǧKâ7ĴŠ)-#Ÿ/*ËύO+:˙ÒŞĞâwòEx17~9ż(>=3'­ +žŸŸ˜™ż/aÓŜ„ĝ-{wí۝‡UżˆñçAÄŻ/âo,.-”oŠÒÄé’ éħÌĴìœÜ„ĵÄü‚ÂGVÄÄ.b7ħ˜ĜC$‰Ä>b?ħ‚8@$ˆƒÄFâñq˜ĜDl&ĥ/[‰—ˆ5Ä6âIb;ħƒĜIDóˆE'ü„ġ+—u+Bñ}¤&2Ġġ;›³‚Ó;£`Ĉ‡d%ùċL×ĴÇfŸ½~öµè‚èçŸğzn`^êĵóÍ_5 Í 7È÷#áE"VĜâK „Ş ·²{$P\&„<Ċ8ïĥKĦôFžD[% ùA¨§xƒÂûËèĦïÙh-ÇôˆJ@oâ)ġ:(H~;xñ._B43í2 9h1şnbCu#èŬVxÍXdx-ĉÚŞZs‹ ‰žRf—İ3:jŬµê&ÚÙ2€bàUòÍÌŝİ’Ĵ,J>UW9P"”äÉ   &56Qg‡ĠĴĤĴġŜ.³T£Ş2˜4ô&ĤË x"ŻÒ´7œsQï·Ŝêşê?Ùs~È&—:/%™%O£u½„drgîà^çîGŠbǐn42lAî[‡Ÿgf3³˜E ½jxÓLjDsPZJmħpÖj&êı$ÁÙ (ê ÄzïRŜ£Oİ ;GXßto‡7r{ÑÌV‹Ĵĵ:Ż\Ĥ×)*(µ L*ynè˜÷0Ì:f-sŒIaĉ^_ŠżüZjƒŞĥĵBB-ÍD-—äùtĉGCÏ! mBs‡{Ò·‹LU £‹:Àáu[0ĝ\Ĥtŭq"ƒş1ô>Ŝ†zıŸ%żġBò1~)ŸœOħ(! JùŠqb?TLBiq”£Ċ}яñ1—ê& &Í̽+ÇôRAĉ€›FrêqyƒĊ ¤S8gѳİ+óñZâé͏O1äTí¨ħ?F³ŻôzRRĈކcpŭe_D†ßGŸsG_mì…=û(ċñĵ@ –2K “Uu7;èšŜşÁ 5ML9½… 个ĈiU ˘íàùöÁ!pISSıNŻÒ@)YÖ(knı†ĤĠsÛzq$2,AK¸Ù҆dgBmV5t@MuGÈ×éíƒZ@4˵ZcT’ıúÚĤ@ŭİ É=1K²W§ jJB* òo*ë^Ż„L*òs%Ùâtc(!ŠŭVĞÛ >ÒĞj-”ç¨<ŠĴ ß0‡.QgŻÀr2žÑ´SÄBÇnD†Ġ÷šĦÌP)ÑPÂäÔ´T ċBG[=ŭ&ŞcߙA–Bq6X0“ċI‘ĥXm˘²˜ìUSUúó"ÓÍN:•ú&Џ‰ĉ§Ä´öÉw‰T½ÉŻ£V[=>ÀĈk9•|-_k˘Ž2ëu‚lfÉóÀËĠ:;ŭgLÚĠ Np“—²‚ĞÒpĵzA›Ûk£|WZƒ˜HĠ6Je¨ÔIéÌE²}p„\w!{¸ğÛŬyœŞµ ú Úž6Żë8È e +0I>ÄO—bNrä%8ĞÎêïÌF›™Á‘˙LÇ):.ċ ıaÍà¸;°ŭœr Ú6ĤC-ˆ½ĦğÜ^mD"èl•”UcV€Ž”d0½'ÊC'ş=ƒ}ßRħğ^ğğ1î\VoÒc˜èÂñ̚Ġ vŞċƒŜz/žj­T]eҊéĜŽĴċ’ÉqkŜ8ú>zĉôîà$ÜáQÌW0Œnĵħ öƒpÛ?ıîî³è #½páĜxZ‹Îb j$ =$ç0¤^&|IžäAm_{su‡O×½ –şÓë m 5Ŭ`%=*L âšdRô˘ĉDàí€!ßñjuŬŝN]§]ĵOĥ[4Uy`4—Œ”³Şĥ Š@d¨¨,R—iÊub2ÖŻĞrĈ-yżüô‰No;8tNÛoAÏċ–arŠ1$ÖÀŝûŒQj(ƒXž RTĠâpZŭòL0ĈÊk’ı"•Lm¤òOäÙ0­b³‚Ħ=żçúËgjkiğŞ%ŭ" AË)§ğ1äıN,}èáߔÉ(ŝzġ}1Ċ܃RĦ§Ä{çg™/névלp´ÒXœV—ÇËózŭ5^ÜÎnMTkd ›P„ş~ëĠ+Gz32E‚RŞ8”W›ä˘- +}ĵÀ›Ëc£ŭW‡‚! C ùşŞJ“Ž>ÊlTî?ސOJ§ÁÓäħ4ƒl’5•–ñ‡Žt'ĥŸİ uQĦĴ];ˆu EġŬ' bcEÜy:ÔÉŭŻÄkÏĉf)Êò¨Óè/fğĊŜ×§50góħ&D ä-Ùs6ž¤45ŻœÇ™ˆÍIò×úûsud{ĉî Ŭ|;“”ĝ˘gtAìıKJî×á¸éŬĴ+•(ñ†"&:›yäqà%™Î4vĠôv}J×ĥğBD^NïH{ô3żt˘™ħšÙİúó^,Ċn[EEQSYJg-S†òWó‡BÍ%\ĥyífÊĦĞ÷×C+ĥ ħ#mâúrušq瞁cWÌOPìgÍӄèĦ1”‡+Úŝ.×'n”UhuF%’äñ™ÌĴuOÄúĉ·|…‹Öê+5PF7)ŭŝĥŻ>½‘á21Ìïz?£Ğ€:•q:ĦΛ<^û ĴüCŻħÂíh-×ġc³Ħ2P‚ Iü|€ÂYĉ)ôÊ,*Kc“Ûŭ7E|ç?>sF½PEÉJu`À²Ĵ•Ô ê…ġ˜*ï_‘/òiÚmn·vġo @=xt~•_i—˜4+;?·(§ °àÁô’iG“ŬîrRĥŽšzĵ½N×,o‘5+0ÉPÄ(ú]˙żR%ftşB˙jżĦá”éÌùó”"p2™•“½Çû˙轸„§6˘Ĉvì·Şġ4à1l67Ò!Î x£ĤÏ÷ïŬĠWÁOž4¸™KË,ÙӔ(Ħ Bßżêiäâ°êIސÓóáÛg‡ìn‘–“„w ù#ĴÁÛèëۑáÑ)nnèéĊÊ-‡Ġ”6ÏîŻĜC85 ^ìe>13ŠWž ôfĊĉ°XĦžì,Ğ• KŠRĝo½{úŽZÊ{Ĥv9xŭ´Ó‰yqo¸ÚƒĠ§lnGğŬwH[ Ê`0èñ‚iK{Ğżû^ŸĦżŒO˜Ñ1ÀSċïá'ŸĊä 'L“@‰\!1PùŭéĠeXg0l&žĦ–]ÙŭN¨×ŬÚMóĥA•˙ ž *@j1[ÍV\ŒqI)”lûÒ׿ıàĤ\è'î˘'öF*vyŞpĥÖ*“Ó]W'{§ĤíĽ÷Nrώ}é )VĦg~ƒKƒ&ĉ.L·ÒŽ–6Ġ‡–ŸC;ÈGyYr 3O•GÇÚu2½Bw(”óÊW§Ñż5Ŭoġw?AÊħÀĜĝTN܋ÒŬù…ĜëÈĞ›Ş='œ~şë£Ö+Ŝ~‹wáè‰}Kö23óĈe¨Í^[o§Zß5ÙàŞ”Ş ê*#½ŽI×+ZñöäĵúŬ0šĠEĊĈ§†Ÿàĥcé)./ˆ=ċA Ħsʏ£§Ħ²ë‘a/:̅›GÎ.k[˜Z{ĜÉ+o_ûx5Ġ:™IZŞ(Ġ uĥVu-žĉŬ:M…ŽÒİu•úÊԁ]6>œĊ+—?òच.¨¨€ĵÍëׯÙĥñšŬRoİ£Àâ°Ö 4hiHgÖh*’fŻY Íw³Ġq9ù`cx_#ö×?óżÛ·‘|>ŜAî˘˙ĥyÁ5ĵá#}{˜ÈM̜˘ ˆl5Ŝj*xġl–•&_e™aÂ4˙‰ùufêšMÀSkÀfµX šŝ™e;ŝjjF×x𣆠˙аM:²Ya1×˙ħÙfİĈ“d‚(wä0y5˘?/4VŽs’ï!M5Žfċ½ĈF 'ŭÚîİEë§z-ġž][ÀїWĤßûñ$Ŝ“öIƒYŭŜĜĥħs_.ˆġ˙âÊh‹7a›¤.·aJà³WâàͤàĞöÍë6ÛĊ‹A‹Ï ÒŞ*£QİT€dbúÙ^ovI9Tşuu$I .W½.-œ¤?ù‡/èßàváÔúњéS $óbŭ2}UY܎ĦÜsßt#Êu?p*ÄbYv/äR½Ja tBÑĤ£ĝ–{ÈÚm³ÍC#NĝôĈc~7uômNüŬġh@ÇÛt³ĝÂw÷ŻĤ aû}ÎaìÊB\¨]R‹ŜĴh„Vg³w°ñRóU"Ç҃iÉY%ıE”Ŝ'>“P(’*ŒmbĞÊA/2Vd0k€I]\µˆá€v˘A³’‡jŭê2*żd‹MRž'xΠ ›Ç÷h~k2%o%-M6 0ÔϽĥv{Kíxĵ~!zêZz­ħ> Û#'!nO¨¨DÎ%´”}‘êĵPAó9'˙á¨3Ĉ£Aî•iEj6ı<ö²ßúâ)Ž*rrzÀE_ĉ$2KىUÎÄBŬÁQ ²VŠ,÷)ZĞ\6ê<âħżŭġċżqUĤßvÑVîĝƒ–M7Î~4Ÿ…òQl$úò&·Uҙ™Œ4;( œ èĦĉVԅ·Úѳ.Ğ™32kl65+*‘=˘g֛Ç_6sÓ}Ùl³[GĞÙW=‡ ŝ]V!endstream endobj 553 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3966 >> stream xœW T×ĥ­ĤĦşâeˆZ…5qŠ1&šÄÁ)P1 ÍĜtÍ<7È ·APĦA@ Pœġ%FŭTâ˜vx11މĵ—d%ïŸúıüġ5Ŭm’—ġ€ĊZ·êÖ=÷î½Ï>çŠ{;B$ĝĜËKT͛á-‰Sĝǘž½Íñcíĝqâ\œÈwŭé0Žîá6Î÷ùö“9Ù_;ênÍpAˆE˘Á‘žŞ¨¤˜°X×Ù³f½3c†˙}׀$W™+ü#T êˆ0WeëŠ™^3]Wİ„‡ao¨”òPE°Ğ*Ĝu½Ü×uş%Ŝë\—yŻŜ°fŬ›3·Aː ˆ7Ŭ•*ϨĊÑKb–Şc>ŠOO H ôJ’Ż [Ħ‰œŭΜ÷fn#ˆ Äjb ñ:ħ–˜Dx“‰uÄb=ħ!Ĥ _ƒĜDx~Äbb&ħ™XB,%–oˉˆÄâc‹˜KĴ"hb!#^%†nÄT>žH!úDn˘vóìöˆíĊZñoöéŻ9ä9üFz’-7Iµ‘ş0D=äú¤Ħ_;nr<ëô†“ö•WĥzXߢá·G,ñÈpé(İFÊÓciOhöv´¸§?%AÔÌ+Ċ|A›Ĵ-…1Ĝ‘ŻÉêŒCQÈE’QVvêĞq‹Fáá´—ŭı׀ÚÚ˘’­}ê³ÉÚYʨ—^²Ĝĵe˜&K;΁şè8% K˘KTÔ@XèĉVqÒŒ`oDĈWé£|•< 0Gŝ¸éÄûî›5†fÈŻ dÜÉS€&TĊĊŬ֑½Şİ3)l¸‘t‹;‡ÏžĴŒ[`u¸„ÎOU 3›Q% Sûg²ĉ är‰.ĦÎ(ĉU Á°?a S3&axä‹i@ùâŒdí–ÍòZìééuéwWŻŜ¸qġ9Œy ÇçqÒ£F8}g‘p„ç|,R!MZ\^ìNf&'ïHAÔ[aòƒ_ħôOŸĦó[*܊ŠRÚĠô,Œ“T˘ĉĝĵìf{ëöòDag,ĈRĵ ì8x È'ß~oÙ:Žá`ŸZ+B;ó;LGxeö?ħŭ'ÉŞ†î=‡â_­ŻĉßâĉGˆìL>Ž(˙ĝ=ì˘Ñ³–­\âüà,sMBúìҙË×/-{— Ws˘ûF(°Ë€ 2xç]˜†Ç28ˆLŽĥ÷İÍáö£j‚Hpy, 0GXKĵħĥcŜâĠÏH°żˆGcòċ³]áDíF¨–ïÂkem‘(Ùʟ$ġ¨A.Gq*FĠPï# ä4y*‡½xÈżŸ>·k‹ĥJR•)Âde‹I‹ïó´lµÇ"÷•_>|r³ÇĝĠq7ŻÁ³ ŝˆŭXJíĈ ži|ñ1Ùc‰9ž:‘ùï…HJBPB‡‰3ĉ™ċ]BƒàKÒ~íK&"µùġmÉAMi8ÓçhĵİOĠ?bié'Ût{ħ/'Äm!ÀóÙĞôĵ†'eIGĵµÁ'&†1Hèkŭ‹b™i9Ħw/²Ž ÌÊ)Ŭ6† ş{·—) jÎBTc]M‹5Z œô'3£ÜxX8òo|6Ÿ%ĜĝHëĈ }êHŬÌìÇÔD ğIz1Œ&iÊ CÛ÷ëù™„ĤLè0tĵ †ÈµAg w;Nz‹ƒ2îU:•İ 5d–·‚J–”/+[C‡İچĥŸE$i™ÂˆFTfI›+ŭY››‘“ÏÔ˘XA ĉ†Îü5ċQ{!ëNò£Bä‘sĵë>grĞòʕˆ’£˜$vĥ„Ŝ‘ŠTmşš"ƒŽ9ŝ7T+HáïÛ­î)¤0Ŭxğߟìy?-;¨DYљš˜†ĉv†DÉǸ£‹ġ,ÄIe³‹ ²xÎ}‹Rc’˜ç™ġhr op"‰ cĜuİ'ÜĠ›ƒÁV™ÈôwxT°ħÂŻÈ~>^²ż`’>1ß#Uµ´0°OòÇ…ä[W•ßœï¨Ô72´›²¸UŽımë~ĉ †!Á6ĥ™ók"ŻŝĊJ-n'Óè—>ġDëÚÍIe^¨*ž'9Q#+ĉ ù 2ÓùLY÷RONė'Âe‡zĞ4…÷ƒĤÜ$ä?ŝĥBŜ€êKj@`ß:7‘&8_ RĊçŠù2SÓvñPë"§È-¸Ħ€ÌoLíÖ´Ĥ^È­ Fr”—œêóîNM~ U@n†N‡S¤•˘Ħ¤…•zö~°[ßـ\ŽĦ]ċ•çżÓ–ꅂÍĜ^çħwÓÔ.TƒêÑîÎKs}³M ˆûœ“ž6BĵÀ["żŻÍ„@š<Ğh—†ıäÁŠÛxÜ'Ż£…Qú8ƒİüp!ƒöhµ…eÚjTŽ¨ŻŻg]ñĈ<œ3ŬŻ­üéŝYCi…À™˘+˙ô˜Ĥŭ&÷ò;ŠGħA‰]‘T>fMÀĦöó`gJkë">ÏÂĤœÄ#`ˆa˘CğıZ÷³jA Ġ²Ëß^öÄĦzÊj#Bċñ+x–C° ï³:T(޽äטtˆ(­”ıè&ÏDœ¨ż8‰˙Pš`É%ÛW@&Ħ“=Ô0QŠ~Wˆp‚à!üvNzL€?ÊĴ@%Jf°˜LöŻMĴÎfwç7˘j䋧:§n‰û('FPCŝŜœš ÖÂçJħEE:ŞĤl?Î-Lç°%;›…Á˙ê\”­ÍEċG˜•”œ_Şw.hĞT#**!)’ë[·ußëóE=3ĝġĠ¨ •ş”íҕ˘Êĥí¸i„^1„l_ri|ZŠÍb’ĥf† jŜ’/ż;×ú/ [Şw³EÚ”U¨ĴKnD”AżŻéÎD´/]ƒ™÷°Ó‹É0 &´¨ĥĤġ’]ğvW^\ÒßH˘^-ÙßdÁZ2Ċ  ı7^âŒPÔû9 ‘œÖÜŞŒö`ĞsVsvE ˘Öš™oBûÙ>µ$z ğğo°&Ëi%Ċ1E™şÈ8Z@§TъJ‘X§/İx ­Žê ĝŭ‡/‰ġĴòˆ=&ûÌZiCqİ€“•{ÑTáÒƒ’üœT¤ç³ŸHKHdJĝdjÊFé.Á¨†˙µ-¨ŭÉùİI‡Òƒĉ&)ĠêĞ|ÁŸĝêTrËa˙â(ĦŒˆß˜i–Ŝ‡=}ìÎw54·9İB‰Ç‹â90OF·yo™ïĥ|÷è1ÇŬştÎwŭ`işœ8Ñù{Pq×Jt²Ĥ N$lġÓD äq:ċ§I}ê§eÏħ Ÿ:Eè>|Ĉ¸Ù0I†ËÉÊë—Îrè Ş_R²ÉĥƒGÁĊW ĉÏÈŝk.JY8Ï7ÍZszq÷T›ĦŜjSĦm,Ññ$yġ´‹)ŠĜŸVƒ¨şŭU­Vş<8ÈîOèl!X2ż@öƒÛS<„ÁñÒà˜û„ÑVN‚­çÏĜEZ™˙òéÌ$Èŝ™ì=²Äo ñKìy=§{`}ÔpUe\yĵxċĈ—óRف˜fߨíÙÑĦLV‰ĵŜQSŬŬçD”…ÖE³ô";=#JġR–ĞÊS)úrĤżZéç÷Ú;@ĴZĝ%>ôŬ˘n×]L¤Ö}§rEOtۆN£ò˘Ŭ…ĊlµĤ-í˘zoßŝîPú =[[&ta‰ş&S¨½Ċ^²ŝÛ|ZGlÚÖuáÂñ³ŬÇĥû°˙Aàé?…Ħ—gN^|ìHçá£çµìEòĜ£Ĵĝ™…8xÛùġßÜv`ĊŸX£ú/;˙Ùe§_+7€B( ñ/óŝ–B1y ĊÀlĵ^„ğñ›ñ)³żÓ³xVfP7DFŞĠ‘‘ jƒĦĦÁ0x‚4>TŬóÑ0_†şRއ’w*vżWëYċ,/ lE§¨Ó§N^ÉŜيbĤ8Şé.BtK—œ#T°Ší- …\-X8Ûğ-¨4‹=êߒs;ùˆĈùRzy~C\uJeRP>Û7¸ùcqé?s˜}AmˆĊ´ÄÔá•Wuè˜S NsF¨(Co>~l mˆÀ Á*uB”$ž^…àöm6]Ë + Í$žŽÇ;@Ż™­•V¤Nôİ·Úà6ŬÚQm½EŜ½ x’ ' úŸ÷d 9xä€QáÙ6ЎìS‘6{ĥŜZÏ ŜŞç3Ċüŝ+S=Le^7—ŭFd`öô ñss·ğı]ñÒğ=ᨳĦÑ⯛—ŬÜWĦ Ú'1—&´é:a4_á|`˙ËŞ,çiú{•>×;W£2$ġìßH ‹fĞ*”B ž£ˆ˘èż7çĢÔ1ĉM5 VwK"Ôċ>2[’° žú̃c'Ôéb}œ,Ñ ¸Ú—&ŭĊ+ĥiœô|ïf#¨ùßᣏɚ,E'V-$yëÊŭ+m-Ÿv˙­=„2ċ.Éxè ßcéÛfU2ôóşĤŞĥòܽY{Ĝêö£Íu˙֖ıîŜkVù²8/NÏÌÉE).á-¨’'ĥĊHHœ/Á›“ï]Ŝğı÷„ħÓ¸EĜÇ4‚O†Ċ2t1²g~çqĦóèsêîÂLbGÏ­Â-ˆ¨OÚÏóšêêšŞóŠóJĜÖŭW…ÊH];!JÍ U°ÊĠΈkó’ „l /ešNÏt‘ż_ì·fƒ×Ĵôı蔜-,*ÑĦÂB ½;i‹v5&Ö+£c“fż‘0öÛçÏ‘ú™Ç&ˆà+!'òa‹ı÷€ŸÉƒYaŒ‚ŒA9éñ8óÎYéh'ЧĊé NZmcS+Ĵ‰³úç[f*Ò6V €§ĝf“FŜôóĜ‡ò‡;@By5lxöLÎñù$g£‡)˙ĝâŽp?ĞÉ-ËÊÍÉÍ@}4Ĥ&Ö`×µœş8 Ċ„˘ı炲^†ö?>'vQlŝJoOϵ_ŝÓËgnŬş´vÁÀĈˆÀĈˆáá²#ÍĦŞˆÀVĠĦ#Í­‡ZK—;">rşĴSŽ2|Ì Bò TÎÂ5²Ĵu°4:ŜS +‹´$7ÔèÈ µ_Żr‚œ;š´ÂOaħĥĥh“SGyıĥH§Ġêµ:ŜÎé‚ĝÊuàĞendstream endobj 554 0 obj << /Filter /FlateDecode /Length 1711 >> stream xœµW͎Û6}i ËE‘ ô¤i ?ɋş=½ĞĴ$ş’ì­‹>K_ŻŻÑáŸ~É&MQĝ Kä g™ùfĝÛ:ÁdĜ_xÍêòŠ0íW Nd–ÒœÂ*)cŝœħLĴğÛĠo+â$×áQ4ë['-áfŒgëí~ċġ’5˜ft-Ò XhVż Ž7,cˆ@ojĠö›‹Tä8I8ÚoˆÄ2ç™Î~XÊ íħÓqCµêużùuûzġjğzğJÖOĈÉZb0+µv% Q>²-8O¨7îMgS˜NËôâ¸ßëw/p´@wêä +%A*.PÔèâNµU߄Ġœ˘½óÁ­[›3Œ˘:tĤwËnIQĦêşÒŬ Ğ7/o6~lFârŠŞ~úߚÙÂYA%AÇ^—Ŝ‘Ŭفuy•ĉ <ċó(eYbMžCÇ[(ÍöŬ“0f9„rg³hCğ0á0 Qçh·DĤĠÎD2ËĝpÉpžċ^oée2P@Ñ î:2İò¤ÚAŬşO ™½{Útì<^^lw+=tĠPµ·ŝ=!>¤Vd– V0'!âfAïûxž˙jZëuw‚½$ñ>›ôŞĥŒ*3Tԕn‡h@…)ƒ$—úèžEŸMK@;µĞ+픵ó‚4 ›7XáGÀĉç2ll‹Ħ2­ŞĞÁ*ċÖnP´ħ#£ĤeĦ‹<ëEW‡¤P´‡À\òAUܸ@ĵ²ü`‚1„ÄràZ5ĉĥÖ3BÀT2°ßk}Ȥ4'˜ĥċ*Òzòï)'j Ç)KG}jz ÔVş@Sèğ. ’'nΑٝ*sŒÒ„˘ƒéûjWı*hż” —Ĥş ÊÂ<“z0ÇşŒ'ähêQ‚% EĜ˜Ŝ3ŽMÊÂ4¤a2Šñ§à6gŽ ½ĜĞßŬöápÇ<* mŬßiŬFJÈPĠjŬ@y³[µQVÎ*ĴĉĦĥéĥnfQ·= œÖŜ–“v”ûœŠ|I<Lş€jt?ĝ°DSGV#ĈÎQŒèF’£œJqì:§>żâ x4çt_@Ĵ|QK'\hĴk‘rG;§êĥĠàk…¸ Ï˲òċ·IYYDg‚ŠüKiŠ£E[Yıx,›ĵêjµ.ƒIĦ½ıMi„B‹çEĝ?LC~ŜäİғĤHÛáµÜ,$‰ĞÇÁ„×@T{_ùî“0úÖ³JXİÚ²êt1D­œL}jüÀbwÁLôħèbżÍa{z²œ#Í#Ħl!‹­ŒnV‰eÈ]œÑÈíŬĜTRËêa·…Rê/Ú80@Ċdá#Ë[—-ˆĝDlŝ5ŒLjÖSĥé.(À´V,Z£ï”K6§\†ÑR Ĵħƒ>3ŬŒ­M|´€3fÇäèêÇŬ;ˆàÖúÙhŽ‘´ @ÈBA,d}Č œ‰Ppu1cŻrŭ)6 ˜ùËsКޝˆĞ?7;?WKW#µ1÷ÇC|èu¸îÙĥ×n0ŭëżNwс”sÌÙÜTƒŬ¨Ĉ2cKH\S‘¸(ŻZĠñĊĜOĜ¸Bu˙Ó)ŸLé²Î;~†T£ŝ÷ßÛ÷ZYâÁ!Elċ˜XBC/R–`!Èú‚Q‚ \°ĥ%8ÄŒ ³½@9yJĴkvϟ,ŸŒùBÛH\Rş†endstream endobj 555 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1728 >> stream xœ”{PT÷Çïġ½WC!²½Ĵ„ċŜk$‰Š0 MBÄK˘Qށ‚ m|y, ï—Cd——ìžËòry ŒDYD&QiÔĈĜ8QÓ6Ûf0ĥi0Ĉ´ÌÔħÉıÌω½ëB’L§˙üf~żßüÎ÷œóŭüMy,˘hšöŜĥ=!%Ż8<,$:?'ÍuĤŞa‘ȀifóL˘g ċ½10yÛúuŜàĊ€—Çğ>Éë—bşĈ?L14½3-çùü‚ò˘,cf‰ĵ6,,"$D[Ÿ‘÷•ËÑĦrLJjv~Yqv–œ’—&DŽn•_Ê/Ó³ä•ùyòô̔œ 9?CŜ‘ž,'&lŠO_ŒMŒKXş ğı EQKœ_T\Rş55=#.>g]E=JĊR+¨8*ÚA%RIÔjêj3ġ"NEPÛİz ċĞ•LyPÔgt&=B½¨‹ñf²™#>­ž:Ï|ÏiÖÀĉqë¸÷ŭEI¤úöc”şğŒžÙ<$@4Ôu£zwYĊ[yP|[yPñ 1ŜğğĴî X Ž/€NÑÁaè<5†Ì2<ĈžnÏl)›˙ß°0$‘ÌH.ëÄÌ·;Nĥ:üĥİ,­%ĵĤèÒ½î§ïûhÀġhëĥ¨ġt§˙µwüħG÷]İuLġœĤ/£?ƒŞ* gı^h)Ϗ6j—h½ênTöÂFÎ6*†ƒéOĈ>h<˘4 jƒ”–ĜÑ£wÉ;Œ*r.ĉŽ”w§:2›SZwĜS[aŒ?Ŝ:öĦ£¨tP´› ìpXilhµ_ÔPéNê45Ĥĥe+…Àï!YñóŝÜĦbi${Ĵĉ=ÓuçŞ`/ż+­&moBÇĊ]b]S½­Ì`ݲÖZ^ĞŒ3_ŝq1ˆï‡àÏĦo#Ԝ£ŻÖrks˘É‰ú2úsôcÔĊg°YZjûêz-ÍUPVkm­İş 4ĝ⊞kšnqíp8ŒP)­ŭÔŬw7"K8Sh—zI3û¸•ß~şÏ‹=M—ŽÀë³Dš.ĞkÊèY™4~Í=ˆ“ÊĤ›fJÄÌm͌!Ħĥó‚ˆgĉHQN”ûïĦà³³bĦĊÑ9é›fŜLLŭ%>Á`ġ„ Nğ_'/¤íÜ7/ŝöı˞OŻÓ£Tvż#@ÛĦ3–Ŝfħ›YÀlTìÚ÷ +àî•?7ŭġŸW‡^ÍuHíĤï˜t¸Ĥñ@ëËŭıöMÀ“UĦ›ÈódŬÔF z_9ñĦt´KQÀîâÖ'†\@ƒÓw+2˙@FŻ[İc‡€BìY%êšÈÖ‡“5$r: O×tüšÔßÖbƒvhİÚzhĜŞTÁ!mH˜ÌqÉħ5ÙÀëĥO¨ĵU…Çö—Êi‰0-‚.ޤħşœËĥŜo܀ŸÚžuċgpAîçÄ@g–Ów ŭŸB½NV—ÎÂ~eU²Zx]rsŜ~¨ĜHĵĠR·?SóöôKä6§Ğ™ċ^·ĊMv´c‚ŭ†Œd¤ÙA8uġÍŜŞ_ôŠ:ışĊfi è{·kdœğìK}Ÿ`ç}ŸÀ”˜A-0xĠU*Û÷ú…¸†ż_ ‰H~[L?!ˆÄ;чE}GìĤùĜWœXêGA€AèšFkf–È|ëƒé“€ûÏH.ìI Ğûϵ‰Yµnd8Œ$§:‹Û üËööÀ1‰ĞBÜk‰ÄG$~XŠ~,ò}ğ·jÒÔŭ9ü̎¤yü2–3l¸Ôc2ê雨g0ż&ıAĞR(n` ­ÖBiW¨XĊIvPQ%r]kċ›‡że-nt{ëğÀÛI··OĤ„}ËÛíöŻçżûN·İ×ÇTĵä7ü ‚ß;¸à›ŝż½KûĠ==˜uÔĤ°Î%hxH\Âìüás^‹ÁëĦ Ż77+Š­Qiĥ)^^wÚÛµĥ·5Ùĵ~@Q˙êçáendstream endobj 556 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3602 >> stream xœuWiTTÇĥ>msú=LjwĞ(à€ ˘8àŠC˜'AQ¸R(ˆÌh@AQ˘24„FQPĈـ&‰£q¸&هoċU“{ïğk½÷ÖùWĞj×oûÛßPc(@ ekí6ß::BĦ^ZÄOSÇӄİ8úf8‘žFiYŻ™ĉi·ÒLŒĈ ÑxŠİZgµáé$Èׂ)Ħ@°ugşMtLBlĜö8ù˘eËÊwÉ£äñQ1ñÛ"Âv…+ä{˘cċÛäÖaqğâbƒ#ċ›˘‚Lċk#"ä£çvÉcƒwÇîV˜Êm˘£BÂÁQqaĤ˙sàŸÙÊĠıŝŻUŠ˘fŻ²ŽŽ‰µŬż{O`"Ĝ1Äi{¨KX¸{DäÂEfĉ‹-–,µ\ĥœ˘fPŽÔLʉrĤ\)#ʍr§<¨-”'eM­£ÖSĥÔBjµˆÚHm˘Ìİ͔µ„²§¨I”6%Ħ&SCéRz”>e@MĦŒ’” xI`)Hü:ĈaÌ ĦĤEX'|İħX£Z3½•îŠEƒLó'{„ŭNs™fħĉĠħŝcύ}6Îb\÷8~ĵÛĝĥñŻ&DM¸'Jñ° İÀù*OUR‡W Ħfx9‡w˙ċ˜N{C¸ŠħËO+é+˘D½xĠÁŭvd½JĊ8â}üŸ´%žĈŭˆ×‰Äü'ԏıüBû-L{ëJZÎéjùç&—Ñ=sݨîèiÄŜ<ĥV†0ÉIY´jaŬÖ5hym'6–JöÎW8ÈdJsJrJûĤ%ÄjÑÖ ™éé(']&ùßր"ĤĉITŽĜíKĉnQ`6)1'gŸLÌ?8ÉÏê\$ƒT*>‹‹fÍÂĤxîG#˜f?‚1˜›ĵÇóeYÜŬÖuXëĝÛ]ïwtkıs—„ùG·Âš.àĥ?×~bĜSu%OŞp4˘œVğܤR3ç³Î:‰XXòÏ°ä–o§{{Ċos’ġú1’Z<›@t{ä:È=“–<Hĉàsĥ¸:ż ħO8Êñx'kó=ğçĊ‘K—ĦxÌH•´t%·ku ĥE´.7‰ 9÷ċİ‚rT‹*SËbÙQ H‹âĈ#ŭƒè@öÁìmQAaÛıŸôĥŠ$ħıùŜhqċÍ8ĴdgNx}\U♌ó¨uöždۘ=™ğíBìĤ}ĠweäĈ½Ĝ&Ú1[f ¤ƒ1˙.ŭùŞ^xıĤBûÒ›ÔĞÀR͏é[iĊ>Â`FéúSgGUMİ$Î œ[˜-êöà7ĝ2xĈèž{ŒD•ĥ#:#vŠíÎ ƒ2¸I˘ ~YĞ ƒż(Ìà9_Ĥ7l _Š` o{-ŸnĊ.̕ÌcÉX„•3Ħ¨¤#neÄ Ìîf˙ë$GN~Á8À Ęŝ(‚İĵíUug_Ĥ3#?Ù7am$š–CcQİ*_ŽoL/Pž÷+`)h=X “„ĥ‡+qĦÁV)òÈÛO8[ÌÀd–c= '—˜ò´³Ò×oD'rË—!öVm¸,’ÁÁ>ó˘fĜĠ]îßvuU5÷K5{ÂÓv"Ö7şĥġVg5Œ­&„90ÄOP êaސW´pwïHŸ¤Äš:܅ñ êğw'˙XöĦBÙtĉÄŝ/3HŸ4×Ö^î³o3Äs0%ÇóĴŸgĴŝġŭ$ÚO$ŭ:^*Ìk8SA:Ĝ˘@,äġ‡ċ^ÂlϏ8Cĝ5oş[`ïĉ€Ĉ•öŞĤ™+8*ÏÜärzx)İ“ a>s¤‹ O‰>Hĝ`é90îú½g•§2ÓjÉ=•éƒà ӺɓÁt…| LäœCÜ<kl˙ 09ˆ|2x,BGQ>:ʂáŞïˆLÎÀóñÜ_ŒÀä͊Ë—b(â°ĞèȋĈö^Äv×XfĦżĦ,™xĝ`b˙ _&ü˜#l„׃ix=}|§OzgàâKô:íŞ[ÖĠÈYEÙ9o° 5GXÀÂkĝŠÁ Ûġ+1…Çȗv°aè7Êĵò½£ü ZB˘çU­˘y‰D->‚A/6èeòFJTŸygĦwݤâ$:6o?ëĵ- 9:DjëıÍŬİ<€?0ɉ^êî~JÄÂûôŠ¸­ŒuyID062gUe²ÀÊ7OA †ĉ×°½ Wy‹ne–ŠD‚Zä!˜ ×;˜W*yÓ·¸ÏLMÉÉÙOo‘Ċó›-àŬ“µöÏ&UX ZV0NW2‰âçòĦœd.Uáí[0ë/_?ËĤÙíIœ,dGBځ’s÷ìe%?Ĥ~‘Ħ´7Xö$iÔ÷ož­=‹gUJ7*Ì.@ÇôQñ‘âĵ’ÂìBT€Xôßy[}tRµ ¨ı7&pÊú›Ġa>[ZŬżÜ.#ĦmGl¸gÉwS.&#o}OŸ›Ŝ­]u55UR1˙F=J_À‚Ë„¤?t $Ëá=6öĦ÷Gž˙5ŭÈteüGµûŻéZĜ5˙˙tġë^àçݰ‘B7QsRƒì(ë!5 Ïŭ_ƒ´^Ċ8ä%’ŞÄ3G UóGTpn^ùÖżŽ S{/Ĥ4£sè‘ú<˘™(‹|QdÙîî½íş"”qua_n-şòú5ôšáŠ^ĵ@j쵊Ŝ]ñ]ĥÀ3Pžš‚ÔEƒkäÍéÊ!0Ñ~ FXĤO=X2Êm‹?ÙTw1²ÎàW„÷M%}xktıĞßZÖ¸ŞÁà×ĦjGJĜ|P 5ŠŻ{Oë@žRä•Ğ–(K,v¤àĤdœò°9$Çh%g”™ùİx&^AÇóq"lúoÔ·öğ§ ñ*Á;"ßÜVŒ˘v3³4™Ĉï´*Ïé²g–‘ï =/d)=Ŝw”Vá=ŜLFÙ>żd°ŝ6{,Äz€“Â?˜ÒÒy´ŠCRòż’2ÚqU:Pİ9%m1láÏàıdDÜyĈ$';gâ?&„C~ġ\ÖÄCĜŞQ[Èâ­ı˜Ö S^Èm‰ÛÄŞŭԓQÀŝċ§FÉĝOoVW\sôbûĞwĴ—á,&yß6ġ†T%—§Ŝ„9_\“OÌÛ­êkŝƒ^Ù˙I/ßnSİdarŒ_áˊùÁ”~è*™S!•¨7´Żĉ°İ1–àxç{Ĵ Ĥ°àH bŒ`2^ Ëqċ†.ÏÁĜC1gċJĊ/D7Ŭß~KzµóıW:+P:Bĥâp„5íÉÀŒÊ‚z$•II0Ê ½àC;3?7µœĉQŸúėö xMµI[û‰ƒX˜ ìï&³À.ÂĜpázËÀšheEċÑâ“Rà˜Šcı'ûèkO3<‰ŒR!ŜŽ-e+ù½àâÀ$˜ċL½e· ³_ŝ„)X¨öl1ÄRŭĈuúêU4Ä[zëİ‹7ÙĠF5W–ç–KA“„ŝ2÷8bï_ñ^żÊw~zÊI“Ù0gr+sJ‰vüíY§—µ•³ê=qy…;eá@%ċIAúÑ;›†œˆ Ĵùŭ2I zµħ‹ ÔGT€Û?ó#h †—qĝûsz9ôP„P ‡0Í[0dŽK9\‡cÔ¸¤_ƒĉ'`ôYö „ƒ-a0Ħîċ‚ĈĵFBÚ1f–vöË“rrea@'çĤIEú~‘Qa›îşCĤ>ŭž_Ó|˂“üe`ŸĠħ÷߀G!³B5ÑÌLâù°a?gĜ ác,v~‡i˜&ż„Y Yôkşz$쒞“^aS–nÄ­Üù_ğD,l‡£ÉL‡Í˽ƒYANeÎY5!Â*ĝğ <âw ݳ¸Ċ”ŭDC“?yE˙^#‚oyžPg”ÔÇ?êĠn‚ħf  ~ÄԀDWâ x-nvƒwşÉ^khz³ÙËÚ;!0,\úu7xĦĦ ŭ}żâ!ĉŒEаhŬWw’Óĉ;}ÜĴ ˜7K‰·xó0R‰'zêÓmRÏJN5LöşŒÖ²ö>ŝ6Ğ]zŸŞ*.6]"š>èQ`ş  ôá Ú˜À.")ú`4byô|ŝÔ~càağ ÖÍ ÏˆáڑħT>Ĝ„`ù˜÷ asCc< O~ašŞĥÒÓmҐ+Ĵ°ÄÙ~:ĉäÇȌhÇBÂy>‰  ġ÷ŻmnŻW*CëdĝYóó˙*´I½Ö˘^'–óûJauyGG#Ĥs,ˆÇQÔĤĦ8endstream endobj 557 0 obj << /Filter /FlateDecode /Length 2205 >> stream xœí]Ûn7}òz”€zÌû@_‚& 4‰Ŝ‚ÂĜH[‰n‘ÖA´ßÛß(WÚ ‹²pğ´J•cE{4 ŝ­êÇt9|>)ß.PŒ 'ï‡Ï1Ħ$JÂ@²ád9x;" A/´€Mnòñ‘ ´R£g‹ü×|7ŬÎ7Ċz[ÁšŽ–yq³ž˙œü6x1ĵ á÷!TÖÒ! †5 Ĵ/ı–L裚”/ċˆ KKaŽÍ )[…cdL‘8u%ʖû&ˆ„P6b 4sœ0F˙£hRw”1Ähi2”ž1ùÔ1­İccL×Ğ"›ŻĉĞëĞâëĤñÂG8N\.эEBÏó8ô¤Ħ$‡˜ĉmÇn"0Â-7a7Yċğ"Ÿíƒ›va(}&ÈÂÀÍW —Ntƒ“hg{N€ jɘß/ ÙĜ<"ħzBÏLëÌ|ŽtáQzş]™ìHĞ麉ÙúLÊÙÎ6Êû$\C"„x %™K#>û'´WĠ“PޗȨ^Ġca„Ŝ¤Ë ;ċlôr^m?ġ^ŝ³ĉŝÑnOàò5!ÄúT@iUo ŝ_`!ù#ûUiB%]‚UDk+~ ½wo›sDïWżç³J+_†ó¸fA 0Ĉ­Ç/yŸí`z“m³i‘oƒĈIĠÀ&Ǹ%ôL–—ZìÜĵ@LYb÷ö‹ġ›b;_]×BSaKa鲈Äĉ íP˙&€ÒŠ[ú÷ċû³Ŭïùn—]7÷hyÀM…C#>û'´WĠÓàŞĉz„ZŞ÷Ĥï;*Üqœ0F˙£hğ…;4páç”°üÂw? óšM›It‘§;ġ3 RKKâŬ—Ĥ9\â„„>9S ’ZéQŬ˜ïò/EÚÍ×Ğ ÷ɇH$fOhŻbgÁĊn."¤™TħŻn—ïڜ¤ ’Ş12ßpĝÖŭ?Ħñ :’ µÔG}¸Òt4HUš =ŜSÜM˜ĉ&4ħ·³1ċPfïŬX³q &ÂĴ‡ä"ş1Ihßh‡úWÌ_[˙ĝ¸ŝÙğ|QípCó×iN‡AZúônš“Ns2‰ĦüMëä¸_˜Mó6ßäY‘ŠÂí—m q˜=ĦŭN˙<ĝôÏ5Pn§:1=!óO·óm^·tİ0ıüƒÔm‘X=ĦgĤu&h;Š™WëëM1_ݲE IéW• ‘ĝF ĦgĤ{#q3ÍÚşçÇu“ífùûìvQ\}ηͯ‚5Ug‹C''4¸ŒEp XĜ M,ŽËĝŽ„KJaîc *ñABŸĴĈ16Âv²‘ò¸Ĉ—‡BËeµÄm&ñ ABŸŞÄİ6ŸÌœ„£:.ñN[ñÙ?ĦçĦúşE‘*a܈:_”oK‡żíP|t×Ħ”sÍĉ{>´éÇ­Ú˙p&ôğÑG66Ž#ƒ/’Ĉm‚۝†/egaĠqԉê;³Îġ£„F„v¨|A@qf)ß×v˜í`1ßA·ĠÍY‡DšìúàEÄı9+ߜÔĜò Kb§ŭç‘8ĴŸ~|!  $ħ6ŜNÄ.ûÏ‘Ĝ<Ħñ êŸBXú÷uvÚîˆÏŝ =3Ġc@!jİŜׄĜU˙ıà„1ú…„FƒŜŭUèĜpĥĊnĈÎûÏm&Ñ DBŸìÔO4&íœ§Ż‡ħûŝs‡K|ƒàrÖÁċlÄʰ=cû:ùêş¸iÙ.–q8œ0G˙hğħŒË!€r;éë>ĵÉv!+Ùê]‡@c‡Ô£›è==şá΀(;êëQÜW|:‡ká€GP8<˘•„žE°Äb';}}‡musÈ8É|ZúôNœDCZ—ÏZVû·ÉPRĠÏUċsj³XŞ’NÎħp.ßX!UÊ%ôÑQ ~Òty£ĥŬIïùğ{î•Ċ I<Ħ~´C'@U–ĝŠĉşşkĉ0H“~B‚vAĠށ5m‘DĵsĥŬ84˘†„öğ?+ ÛQ‘Żt:Q‡H$fO虉]hP̎}|ur]։:,"ħyBA;Ô?— ­“)ˆ·bÓ:Q‡F|öOèy¨NbĈAZçÑúӅġôžPùPnĉxĦÜk6ßùŜ~â˙÷ĝ8Úż ŝÏ¨Żµ8>×jJÁê; }rjóˆnXÚ*üŒGLŒÒĴ#h/gœ:,"ħyBAŭ?# #ó;ëŒ$ÚϧĝìŸóR½–À¤•§Ò£]=bÂ!qÂŭDB£AïŜ0 ŭüĊ!E,ßeSğş“ì0HŽ‘8CšĜˆ {ÑY7Ùôc(…İÄv ‰8,Ÿˆ&f ŝ$G(Ú ìo}“o?ϧËOĞ9:—lgz’cBï[˙$ÇÊqŒ4ı À\êRšL)T /̎U#yh‹+W˜RÄÔz'.ŬMU‹_XƒœĞ<‚) —ÏĈ*Eċ7cl֍¨(6ğŸ//§Ûħı:ÂÜì[V°½_(dŞYž6Ûġ‡|ZÀz{}iV§qıja)Fċ2ġËë?ĥëbŭüöŭC}ö(CÁ+î2|1›ċ‹wcce­Èè6/Š|ñS9UÈŭÉ"/ÇfÁ֒ÓÑvĴK˘ş$ŝÏzĞŜc\9[ÍÚ˙ĤXÜš–j”/ĥ„_ ŝpêSendstream endobj 558 0 obj << /Filter /FlateDecode /Length 2513 >> stream xœĊZÛnĈò„› ލĈs> nħ¤HŠÄvÑ ;´DÙÊJ˘LRY¸Èûĉ5úϐgdQ’upħÀZ˘ĉ?ÌŝfĝaD"l˙Ġ‡³Ŝċ52z,zÏ=!2”FŠŠ„‰f Cá&ÊÓè?Ñĵ‡‘Q\b=îAÑ÷~vĴâ̳˘a™F„2‰ kĝrd4<ü$Ĵ0$ún7 ƒ.Ï=âĥĠ†³è-ljd$•Ñí¸WíTH3Ş#E/ĉÑíĴÏÒ˘HÓŝíŻ½·–+Ò À\Lb‚áC”w "Rmdâ\’@מBÖ DPƒaÓAPCzğ$‚ÁpJ’ž’˘•ġf#"aç!ÇûĜSžLát6ĈFF˜£Í6ċ;DQLB\LFÇhρ1Ħöŭ6Ŝ%¸a/¸D'a^ĵL÷⽛"ŒwİħB²wÍ,ĠëxW‹ġ-ÌoóCâ\j‰´"ÖwñŸú‚9,6ñù?T Œiüéï?Ü|ì˙rûÏWâ‚!%ßPş)Ö,ÄATPĥH8ÂLPf$0?{9·ĝ’NS|Žg.¨‹ĊS6OŞàfÚ~sA ¤ Ê} B'ĊZ¸Ĵ‘Òo­Ŭ܏uĤġ͞Á†™ˆ2D1Ën@×Fóh@˘R9GÀˆ"8ê¸f:ŝÑĉPßÖ3°Wüh@Lh§_û>c))¸µl€ı!vċS6B+Ħ3HHNŬ€˜7ÎT`Q;hƒTíÍÛ'—ŝ7Œ’ tGÔ-‹R[â|şğxĵœËI6·š[cİx˜§I™îAœĜ?ÒòˆçéûĵkÔŞŞTTkù””-IÑ|ĉ>‹ac#"2ÎĈ-EùäŭPs0)­uÁ$KîŒë+]qnRh >iÀZàiïvŭ%O‹4·4è$ϖó‘ŭŞAk´ß°¨]YÔ\ó ċÈtl&ŝ˜h“´-µ´^”€ MŜ…E–J·èÙâċSžÍ6ħ\ŻĵĞ­h·AŜ›Ô¤6ıl˜?fÙ4½şZäY™=,ÇWW?ĥMâ•òĴœŞFŻZuŸv ¸€sC…ŝú eê>I#äĈ,ĥêšñpšÚPĊa ½ŞB?èîٝa ƒeĵžO\ œ@ıâûôìn ‡×1qÊ4ŻÂsFlí²ħNżÚQĉ”ĠĞ{+×eĝm ƒu`œ9ŜÇċ²ÌòI2E?y‘Íż9rHĜ,šÂ3MhÄy2Kë@Xü­oĊÓux —24Ċ8ˎéïTBû!:4¤kŠĈI¤J¸ ÂeġÂÈÛô ĈjƒŬr[ÌYÇ:˜%y2,a9ŝ ÜĊŒÜ÷7"!̵‡Í%„[A7EĜUıĈñ9Ġ;‘Áî‡wT%jĤ\ĜĥpĠĉGUĴ7­w҂ĵíĴ “`ÍBFZCÖ°Ó^sG·„›3ċŒİ19ažùϜg¨çY¸‹íÊ3 Óiw옅ٖgkQ„)LÖíĠ&üyÖÍŭˆ<³5ż!ÑV-ö‡ŜíŸ×ğ#ÖÊü.Á.°—~{á÷Iñŭ|R€:ùo`K&ⴆ‚˜È­@Ŝ:5Ħa@1M!d O !OŸt´ ù2­×„£ÇàV6-~^N†Ÿ§/övž>ÏEŭŬēħ['ÓióLÄy dı³ƒ{˘âŻÒ騨ıR?%ż K˙–L—iÑ~/Ò҂wEtŜkF“"Äç1hÍ^á¸-$>˘Ì(÷Âía:ˆ€ÁµÂšßï²ħ‚â+é aŻ,ê´ {!n c%çDÜ0yEgAṲ̈@z5U‚AŠ-Żk}Xħ`ŒĜíhÀ@ħd½ê{/ZŒ[ÈʌݳŞóBq6ÌŬ={ҏŬ5Ĥñ9膊K1Mù> ÛäŒGƒn­í9ahÈt30“kĜœ×*Œqwpŝk_ÒĞÖshLJ ĵ]Üo˘ †5EĦcÊ^ş)Ârëܳ{Ì&¤-ì/6Ĥ+ğµ¤ĝ0żúY·³-ı›bÍF\;5ĥ%Y Ûö(É[Da'`üÎmé :ĉĤ9óĝŬĊ“QÇá­%jvñöó–şûŞÓ#Tw6gàHyĦô;ĜÜtŜšĉK:uMóywĠ4BšĴÚóÚµ›b-_á!bë5mgIëĉ~DŞnŬQÒnŻ˙½×­ĞlA›Ü ´i^#6÷ŒÄiuh”ÚuñŠWŻ€¨´¸ bP™½†)[ó€¤Qëòu%ÚWż zÄ>²Pß vTüì ħ,*Çw†))ßĤĝ›>LñyžÉnP…í-Y`·àrél†cÜ'D_nŬқ Èħħïùĵƒíı¨˘*4`;’ÀzG͆ˆ‘VaP3ڗ-è ²µÂÂÌPpŞħ°dUç.Ǥíúg{aĦ$ gȰj+ÓÙb<™w+ĴÜ•Ïĥ½ֈ ICèowûzì3*HuŻÓñréúĜ×M6%CŽ{ƒi×ËÁĜ·…ûáŭÈh;Ûìx˙öⲜ-.ŻáżëĊ°¸´bDAB )á|ĵ:ʇr!v²CĦjt4€şIl<[cÜ VÌ[kÛ2̵Qu’ùğ˙òĤħċÇݽ5ÂnÍ. ŠÚ³hĔĴo4žÊrQ\]öI|9ÌĞqT¨8™£|¸#m˜—yö+ ,(Ë/IġN Q2ŝ ŭúÛëŸìİï‡ċĜÏ÷·êĈÁ­|èöq4J§}bÜĦû2-ËtúM=×Á üİÏ!:”`qŜ·nÂ0Í%ó?²IÑÎ~É|ÔܔÙgÇÍ(§Ó—VáŸ{˙ê‘kendstream endobj 559 0 obj << /Filter /FlateDecode /Length 2773 >> stream xœí[_oÛÈîCî=Pm´Ù˙Œ(RÜ(rĊ]âĥñ=Peë*‰ŽDĊáożFg—¤¸Ğ´,‘~:ˆ(jwfgvĉ73;ëÏF$Âö_ù9[Ŝ~ BFwğÑ瑠aM#݉DXE3†ˆŒĠˆKmÓè?Ñf„‘Q\bŬ0c´ŭdI„ħڎӈHÀp.XE™#£áí#°0Đèï§°ĝ,0Ĵĉóˆ8á˘òcĥŽŜŬ€€T‹È #İŒn£Br Ž˜ˆH`ŬĴGñ:Ŭí’ğt|óËèğKi‚W .&1ĉ8Úĥ³!R5°1Ĝ2£o=„­° ƒÈ ¨ĦFÁI"b8íÒí2Y-ġ„zħ˘gˆJ½óı[Ş­‘ ™PŸ`7óÑ'ĝ™Ž'‚ „1˙<˙|ó$.u+µ.ĉV–§ë‡Ċru‘ÀŒ"e@ö6.U`vLyB2B+“ĥâçù7 1}0Yb` ÷ŭÈ` vwŒ#?â ş6?"°÷Ĥɍ”]¨úGGŭċî#…v*ú˙aO€Ĝ9·ŽA1Û&Û' Ża ñ7Ğt眤Uİ":>eöŸYQQ›ĵYÉf^ÌjaȘ:bDŸaDħF ò‘@i–ßW"rĞżŒ‰,e|Ŭ˜00á%/šAx–]é@댣t€A‹½d JNNJÚY|q„M?;6”31§Â}ŸŞËì/ÚÍ"ȳ?̒LvŽÉ#<‚ĥÔ-äÙI†O_£ t½‹żékµàÒ`ıu/Zo™ê„ëm¨sÖİ:)&àŬĥlŻsÚgı&†5Pĉı&s¸ġLĦÓAŝÜ,]@Lĉ:B‰°ÊÁ‰}ĉ&1ĞŸôžÍÏ{sİ÷ŝ@“ĊxZ?×4™G'|ĉĜ{O½gR?+ï=M½1Ĵ…ŝĵ šı’ 1úhnŸî?ŒH³š!Q8š;X ÍĜ<Ĵ_höİöRPuCs D/ 34ûÄû€ĉ`ħ½C³O½h×Û͜ {L"!aÜ>È5ı€S½š;ȟ Í’Z…ġï\TaÉ`@Ù\óhbgîÁ–%Mċ˜Ŭ[`Ĝ1AU~L•¤8T†¸8ì]§ù}v¨˜Ğ:Ê/*NVğĴÊĝewħážçË-T Чޚà€Ĥùv™~IĞ7&,CêÊ­,R\EV–ÁÈşà+)×5 ŻkżdeÉÒX’0c8’ÇğÇaŻuBèZ0Œ‚S<şûUkgpĥsa Î%†ïĝŒ†={ò9ġyöäÓġ#xM%@}[Áƒ‘a÷tFು*äġϽÉò%`Ñáò›b “ZX0?=–´Ï82xİ­ bÉsĦ¤ƒúıÖÎG’–ßCIJD¤!ĥĝ[Œ&L` ħDBnÓ ŝi¤x hUÇ?X°q°…ĝÎĥ„ÀܵŠÓogcŠí1™ŒWibO C7†”á5Ĉ/˙`QJçWHcâ µ-’US4GÊîĞ7eĉ˜?s´HĜ?Ír`~„TAޏŻ"ĴawĴX…ĥbXÚ¨;œ•rہÚFĈU9~û&]Íw%ÁòPQ‘"(ĵàUyĵO7í€+|{\şcP7’Ċ›j ö(s{·_§›ü}Ċm$ÎĥMg„Œ ¤ı(„÷ôî–_ E(ĥëFMёaÊÑı'#uuïÚĈ‡P£âġ F$²ùÍ Áħ•ÁÙhADU™Gı=RˆÁşwUĞÍoҋJ5Ş]@jÍ=ä=яév—m†iäQjjH¨ÊM²ô8\#BÂX¨ĈĞE–]ÔɸáZ4Òäy†ËPoé:YJ׃)Ž1€a˜xĴ¸żN“-šeëKÈmWÈĥ‡Q ”ùr^Ah/ş¤úçœ fB£ —èˆCô*ôÖ!ğœ CrfC¤ žI~ÁÒ!aN‚A˘ÜßÊì"!Ğd‡f÷É6™ċéĥ‡ƒ­PŠŝoǍİ3Œ3Hׇ‘P§ĦşÔ9·N8І ›y7YÀl{&sn§~n(ti ŭú…òë ’x °.Ù¨nO½Ŭü1˜²œ_×é6uƒF8œĞ¨B‰˘OC*B6ˆĠu1ÀRW‰Úg„$Òġ)˜²ġ·§¤#,ÎŜ µPë>£a‹uŸÓ!s?;Ï)ı}š·b'Ċöb@Ĝé;}V=cg(ĊvNl§ĈV îFİ=&)_9Á&*&C{L°}ŠŻœ`{Ĵ_9Áö…î+Áöi›`z{ŬûXq}&Ĝ+°J°š`û2ġ‘`ŜZ 3°Q…—ż´pŸ°×ˆ´>§"­O3ˆV=^È­°Ġcuµœ_â$U78XŭY¨$šô—%ĝÎ|V=g ĦŬ<İ:›ĥ§•ZˆŽĞ}ĈQŠÁChâÛÔxà”XÔÏÍî …RC¸Ĉ2 5ÖóT{™ÉœŜFn=m§*PÌ˘–òò™ġϞóû×Y~Ü&éö·MĥÙ~3Ż[·yÛí[ad˙­{…Şy…_w™›8I‚8%¤ät—ewĞôúúa›ċÙtż¸ŝĦÇ܉ŭÓ8ŞŞE–ŠĤÔboŝrsèÂ˙ փ”UŒ{‚2T6í$áĦ‡ŭIv;T- h÷p ÁŽÙvE Qw{ôIŬžŬò×â+Ĝ\\öÜmşÙĠíħİ·d•íœtMĦċ†‚5SĝĥÍ;˜WçU„ÏûtûT~=şJ°Ùݧİw“Ù·†lúK:˽ëŝ5gïšAú&y:ŻWb{)ug&éÏúêġA“,‚P.”qğg/ïKȊ&ÌĤÌ´,˘›ÏÓĠtLìĉ1=ÍótċZAʵ¤s@Û´Û1À"Ùü/+ôœ¨IácÊ-òcžŭב3BÇéêÉ-†âš2ò?üh ŝŬ~Q‰˙½ĵÛXŜ`!„Ñĝ·Jû·m¤FTÖ{ĝ}:Ŭîm˙Ì•ÔñSı œzSÓĤ˜âFa/šÒr~+Í&`İ].Q äg~ŭ™…•6endstream endobj 560 0 obj << /Filter /FlateDecode /Length 2525 >> stream xœĊZÛrÛÈ}gċ#PĥÀĴ9žûE•­J9ċŬMÊŜġZLċAòDA—5E$•SùßüFza†&(’ ¨Òƒ@rĤğ§§ÏL÷AM0" ĥġ˙ÉŬàÍ'"dr½|)Ħ4‘œ Du"0cˆÈÄ`ƒ¨”É"Oŝ•ÌĊ%6Éġ3Wƒßh†8³(RĈŽÓˆÄލ‚92| F’üĵ†S€Á˜Żâ֖Ô˙&wÉÛ1Ĵj‘d$•ÉĝjP-œ$B#Í@ ˘ ̓ñŬà,½Ë—Ëì:Žc‘ŝe4ü<ŝÇàŬĜê@„­x öÁƒ †•,ÚµİÖh'D"żÚÓYŝ0˙QëÚy=<‹E´žô<-ïËbq›MÑÇ|ħ,fŻ{-f½jJ%˘ 2rċ,ğó~$,ŭ1t##àZ§G†£Íš%EšÄn|qU/:8’j ߙHf?~#LAHƒ&2¸İü6ż)fÎq ˘vÜjq‚4À 'ËA:½]–]֋Á˙‚…V@àt\ú¨§Ĝb˜GŞşE=ö4+ĈŻD=úh}úëŭŬEè"‘FCP³Na½•Fö†ĊU:ԝĝħóŸB]°À|ÑHv?dÒ°’Ĝƒċ·y˙gS i-b˙ŭòۇw]ÇŬġ¤"Ħçی*İ%’LUĦÄçD•âHêgBU£ğAĠ˗/‚Ş@vϨ =x\T…ŝûÛÛżżï†+b˘ñĥœ­À…\’sžŒAFpċîĈóaŭ+áqAê_áÁŝêÓ½Ĉġš`;\7(‚ġ"FU8Ír ċMq9Qrğ´Ïà4£ÒÌMÓòĉvf?IWĤ>,²ùÜĤen¤†‘‹â~VIĦy½äĥ*Àn"3ҟnóéċéÓK€ Ĵéĉ%W~ âIc˜ŸHs]×Óüäd(ÊââŝêääS~5Í'ċm1{Â>A´=–"qĞ·>6s`9„dâjú³ô°œ˘ ×Ċ%’8(¨¸€É4[.‘· êbdˆ½ƒPµYÂĦ0Á°Lç/Š42h8âüĦÓö ZÇ"ÓkĈpìÀĤĉŻ.†Ä4gé·2‡Žì Mš×Á Lí~ôT˜[ j!CSžŠsŠmzb˘)•%OŠŬ…Iĵ&P Oyı¸Í˙/ëŻuñĴ$ŭX|T?Ş:°ìáĊ+;üO"œ'^ħL҇â~zÙ|,³/ı·¤Î&Á§en‹.X`íÑ`#ħ€ğĝ İï“ñƒ+Ü5vjġĴížfġ·äıġ˜ıîç¸vžaíxáÎ^ÇŬ[X|Z9GòJُ>wʇĤ­W&ᄧ.·Ê‡‡&‘˙pĵsŞëİ­„GSÖ75ò„ld(ú;à­\|P’DÄ5ƒDlH£ÚĈǗŒŠˆtÖp½îÒû.‹jU°˙µÇÁ([•=‡h?‡J<2‡ıò¨z¸èCqèĦ̞üW–½ŝ"żċwÙíÔ'ÖŭQŽ\Ħß9îŻÙMŠğC‡ŭ;°bTTìÀÛKO°‘È{vŽçHv×çŽVqP.>ÄeìZ+ĥ‡A)M•:"Ûc9Ûj sŸ}Ï<¸H 9ÄžŻŻá8ÁŝÒiJ&Â6Ôpí3V3ğ8ĥRÂ=UÁmŜá*ƒKċIÂŻcL˜²£Ü1iŸ{ĈAİŞö`L6hè‹1aš<2‡Oġ2{îĦĵ6JÇ;2 í3Vö}˜† â÷Sû4Ó°>P1”Ċ’í¨­3V„ı£÷Ôv ½*dW݌§ùìşĵéĤ–ñuıt#óĵŸ Çç¨Ħޞ.ÇĈš‹Ñ.ÖÖOWœ,AHï%żk—˘a÷´;ëݍ{˙êúġŸïßwÉmmЁ+ıó‡k"ްǖGQûŒi0*SħëQ´AüŝGUP‡)ıĠQ´ÊJA}͵ÂuD•MxiU‚[B Ü Óms %›(İċûµH²ı”ċ;6qP„Ú;ĊSfm”“†‹ÓW÷K+z ı@DĤI µ1ɢċ"wÏéŭ2†”EóĵĴàx˜|šßċ³Ò38FEDI@ç,òyž•ı§l@Ÿòi½ò•x$\JHòâ&:µáàoG# 5´ġqıÍÁßĦC@BÌIÁž‰Ž´ˆŽ%™Žˆ\yT:"\ôĦèˆPfż-}”0KÙ?sK_`Eß-}ĦŞ4ĊĈ?[ó‘}ċ 8}–ĉ£@÷Á[úBÙŭ6E›*­ˆŞPâ3˘ŠĜbσŞ@÷Á[úBÙŭ˘*òàQQùï-}à:ˆÊHĴ­§<•ĞԁòˆT.T(H+u*7ÔäKŒŽ{ĦȞ÷BU‡kÜ ²£ö~óàğ”BÙ¤SדAœ÷ckÍX„²ğĵ%!†nĊò²˘fĉj;Ğj’uIdcX,ħ§DÖ·ç…Ş²%šÜd‹lRÂġÔŭKĵŠ~ĜÁš[ U½êbşĈ@žƒúÙفâŭ1#4tÁ&eq&#yŸ?·tĈTm‹mÍĞô\Ûĝ˜DÌè-š3"rUĝŝL!ڕ£ĞÔ\•qxRDäAÍÈ_·ï?G“m²qâËYžV€Żiኑˆe*vÏ@½ žI˜)´c÷RB=•Ĉ‚ħPíiJê.ĦôżáÍeì•ċVĥ‘4ïpĦ‚ӏYŠÒż.ı)Ëùòä͐¤o&‹ŠT*Ífh1Ž´Ûv–ÎĊù¤DĊâúÍ<› ݽ0•LżfüôÑĥ½½ż ߍïj‡}°}‘mï./óiĠe§izŸ—e>}íYM•ŝ4äÜĉñ,] íf`ÛÚ5û_Quz)×á˜Uí[Ġ„Ó²ĝRġì)ĉÓoÁżŝ˜ċ´Ĉendstream endobj 561 0 obj << /Filter /FlateDecode /Length 2237 >> stream xœĊ[[sÛ¸~×ôGpœY޵PÜ/ö%3Ùmğ›&›hş²›´ĥ”•äf3mo˙F?(#™¤=y%ß988œÈ/%,£ŝ_ĝĵ¸üŝS:ğ^~(ε<3Lq˘\Ĥ¨„éŒ9FœtÙ˘È~ÎfJœ‘šşìú€ƒĞÁOšY˙wŒó˘1Ì&1L'Ö¸’8‹?A€ĈDzïʝµ Žb.wܙlq ñĴ\t>.cżpm2Gœĉ:_ *‹@9I„Ê ‡<*³ñŭ ż˜† ^½¤l?·jžĦ„J–žċ5^‡šE¸a.5]’‹›ébzħ*-Á°aTè­UÜËċôşˆcUÒ` BSFñpü*˜qĚtß´QŬ*ÂhŠ÷ñf>+&“ĠÇDPAŬ8œÔt‹y 9GX(žàŸŸ φ:XµĦ-³‰ ÁX9İVGıQ°îŸ‘+ĈiLĜDĞ`šHğ#ZŠ"µŭ}‰~Œ%ŞXÔ!HĜa’żŽ•êòÙŭ‡bñ‡áHqE(ĠùÉï„8Ëéِr2<˙uáN)–Œ›L^}ŝX”SŭBdŝç7Ż_•3ĥÍ˵$JËiȄûĈo™–kN¨Ŝ2­<$îOÔRAUúàòÓôc›DÒS ıÉ!§QŒRUŞîœ·.vŸ9gŬñ‘ɸ/ĤĞ8)ƒ˙¤MFÁ0kÔӎr 3’h™b³6ş†lڋˆK!Rì6y9ċ3Gâ^*emDéÂ×p=×÷ZPÇĠ=^Aݵ½ÔEeŻÑúİë5~›H\WġmoMW–KÄŜ˘³]Ñ÷O‹Ž²ĝD%ŝzÑI ú^G—sÊàs”s%ÑrT…7ê#š úŝ[֕N„sϑ½Mƒ„~jşRšXoĊ2_ Ĝsî‹EuœŭÒUôš˙bQ]dÀݟKè˘·‰ñöçAŠżÊXö6ûglEĞOĠ)úˆŜĤŭħÉ',IĠÉĊ‹G&×o^ŝċÇ*zÇT™!Žá•q"£<q@ğ„"œÀ*Œ‚"Â9Ë_ûh2˙EÈüڋÂĦܚĵĝfYĴ†#nl9îXŬÌ/ÉF•–ĵ\8ƒ0á2òñM[_XÇİqĥyìr’…é\5fdz,Ċ‘Òfë/&˙P”Ïù²ˆ†ĴĉġóFgyŝŻéŬCħ d<Ÿ_ĠÏÓúqQ|,ĤĞ ˙›â.,{ˇ…kQ^gw K÷ŭg˙ŒÔ‡1N„Â\U?~—Qq$<֏%Z%dċÇëÜœWċĠĤé²*08İĊ&’žÏŠOm2jècij|ġ°š/n§wämħXÎg§-K\sŞML9›ŜŻíÈDŝ§ĜŒŬµÉ\! DjĈ“ĞùĵM“Ì-›Ġ f?vcé ç'İ€ale·² S  †Ûv# ï‘"äšğÛe›£Ph^#%ú: qäd›jçòÜ×>ä‡Tġ-—'o½A˙VV>ŬŸgÙLóTe0ì£Ó½€ĥÄ8ËŜê>o^à.ÁîǂBhbĴK-èϽ'aN1<µŸïÁÚNR‰ċÈôlĜÖt1…­ÒşÓ˜ŠŸ3ĤLɞ)ĤjÙ[‡Ĝb*Âî9Ĥb >mLĊöЎò­˘ŠĦ“–éĥĝöĞjÀFèm‰ĊÊîcyÄN]ĤÇóE¸(„<ċèĵşDĈ9~ıâs"tĴĈ“â&X"lq4µ D‹–C‹ğ§@tè3¸H-˘êË~R I:µßÏoŜŭ* q,ÌĤ~Y… ¤èÏQ3F›§Ó^è(GŭOè$ñ`İĜĤ£: l§ sèbIĦıl`‡Ö/FLÜEd†0–Šêà-˘¨Í&AíìÍ\xCc·z‹¨‘,Á›@Ù^ñÉàż½T…ŠaĈ˘[ë}] Ĝ+kŠê˜µŽ '~›= £Ĵì;x)œĴ§<7óYT4pĞûg¤ĵĈ)Ìy)&ĈîâÎ|bì]÷ÓßﴇŜÓŬ7>í´C +wì=Ŭ½àíħşo§ĵš6™°óóŻ[-™.[ÛŞ­|ömC™ú6 ù§ÛĠM=‡ŻÚ,żşE/ĵĴˋg•½é&éöê×U1[ŜÎg‚€.„B>12;€‚XJ„ì "´"RÀXt{ù-žZÄ ġ4DÉ9ĴÇşˆŞPùêĤXOT•ŭ‹Ú"C>T§rÒÜv„Oehx½ĝêò²¸û0d°‰P·X­ŠğS‰ŭƒéżJlħC?ĈÁĤ³˙Ío—aŒ3ĝ~ıžàò÷Ğù?K8§l^Ü}.•h8äÚΓüŬÛĊ|5ùpµŜJ–˙ŭözĉecÓÑċċ˙YŻÁ˙­ÍpÎà~`+>,Ĥ‹ÊO¨ĥùç ìnNklN9ŬiF-L¸Í™Ġž'"m™ĞLlÑOƒ˙ß)Şendstream endobj 562 0 obj << /Filter /FlateDecode /Length 2612 >> stream xœÍ[mÛĈŝ.ôG°—ĦÚÜzß_q‘µSuëĜúÁ<‰§S"‰ IĊ=´ù½ŭċë.-Êş£x)°)Ŭrfvvö™gf÷~0"ĥ?Ġ˙óÍäÙ"d°Ì&?O„ÈPHb$"*˜1Dd@×ˆİ ƒÛ FFq‰M°<áÉíäûB4CœÙq ImÇiD8Œ 1YKĉÈhĝö¨0ĐàğSTĵ0#j´f05j0ĵ ‚j`Ä Ċ´ƒêżù&ĝvf§.U`‘T³ÛIé4£:P”"y0ÛLÂĠítöäĊÌŞ úR-TlaÀë°ˆ4Á‚+0™IL0<<Ühe‚x:~ï¨8Ÿ{´]&!Ž0( žÂœ->L…áI,#ñĠ)Vj‰$¤sĞ*£E1—#ƒ  V=ÙŒœoñ JüiX|>Äz L2Oĉ /ĉ’X`^^uĉ*dM‡Ĉàw¸x:2YËĜúıI¤+³ĠgŸĠıІ6Í·ù'‹sÔeġ–aTÔ4Ìàûu”Ö£°ž<ŜfĞd›!'m=Ĝy@Š5PÜÂĈܳkĴĵnERIWu¸?œÈıŻ^zġ˘qa6²š3@ĜĜ(|1 [†Ż‘–´°òóQٲР˘Ĵ™÷Ws³$òt²ËAO´~żÚĉŒo‚vhj9<_ĤĦ<ƒú̵*Ê莗q:œvú³uäÁO†DÎmĊéÉ&CLċiíGWÁA¤ġÔNÈ‹F·À’µˆ×Á%Ġֆ‚#Cv†òÁŝ·ĵ•’UœeєĜŒ‡€Oö‘hĈŸW ,Ŭ°ş¤ ”hnâü.Y”e•0XH¤5Ĝ˘˘€-ĥÙì..-ìÌJ#.ë1ËNèv%BµÎ£ċèw•rkŒi8ĥġŜÄĊs¸ÏbgHž´Ï ­òK´ŜCz-AÂäĥ~a#‘´xìÀqÛÖR Kݚ‚ˆšĠßÖèokÀ8Š`›ĥ†BÊNéjÑĥ˜<"\EĜ–qĦÓĠԍżaéJ~t:Ӊ/ˆû* ʵT Ĝ/cwŻ_½otâ‹1+k 0~ À`Nߝ"~@p1K\)‹=›ùĦfMÀ³Fê(âÚhHîT!*ƒuâ4Ĵ‹SPĤ•6aĈG,Í@¸hħ8l0†ÙÑy€Í*9lAí×iĵ‹£<&màĊßĊëĊA˜ƒä•D³è èô”ë}ÁB†'M $Ŝœrŭ †\š•A¸ħñ²Ĵ›HXŒG–+jÛèJ•a{báÌ0(ßçIşŠÖèuœf9ZOùĵ„bî:qmœ6Üsׁçn`ıĵ¸MuLŠĉŞ4 Ë2‚ˆ);½ÇŬ]²ëŠŽXUAàCvċJ"ŝs„JĠ³v%~,赝Ŝß÷››8)p|„€c„NĦ°¨ċXÁS·]\ü‘ħë_OBƒšHUÑâÊǃÌ0$”ò=˜ßïâĥĞ0’˙¸ŬÚĝŝûË?^½Ôħ”—ŠĝqYî@Ž)Rĥqğ<5VŸ•‘¨9À0†£Şm:!-ğ%ÊUTħ…ÍGàȇ^ŽĤ‹ ‡Ĵ~ÙItdƒ]ÓôË ñ £@l€ZVŜ<ÊLĤ>¤u%^°Í²;ŞFŠĜzÙMyò6Om“sÀÂ[JÈIÇWu‹£CH™äµ÷’K0Ŝ_ġ÷é(“Pˆ–ŽJAĈäS5QŻT”(¤ŭ¨"²”êŞ%%Ġħ›ĦÄżMf^é“òµC-ú`RÛĞĥEí'ÁoĜôÒ"B‹ù­’°×‡Öoò´ú-ËÓŞl#Ÿ¨ÚìAĜ)U›!Ġ +ş·l zŞĥċê—Ĥĝ‚Â!ż‹ÛoÊ äîçù>ÛÒĞí>Q˙• ,ÀL‘"—ÏîVŽüòı’Fiĵoµâí~}°˘cƒ4Ŭ-ï+èúĈûˆšâÄĴÙ@ ‘ëCM… ş^ßDŒİù*:Gû™j:WâWuž+Ÿ´s'}ÊΕ9’ßì½j|żĊ›hµ1s4Ç1HFTя÷ġM”˘y²DÍ1äÇNl@UW‹ö>ë=û΀s´òƒ‚½p}yUù …QOX0Ĵ Wñ'¨_\MUŜXÀ¸݃4r,ìW48ƒ"Ä"Ĝ˙F'“q\6ĞLĈ™D˜‰OQÁ#âŸÇ($~´´!ƒB‰e’n˘MŒçë(ËJT&ÀBxU†ĠĠÎÂwĠmœĥ+àܖİíD‡Vù] ï´,fë$ÏzX^Í úşmÙï{D›^}e9Òm´ŜċéŸZö$ŝ¸€²‰Aì‘ 0ÈĞĥœßĠW&0 /:İâáĦ–†2ú€“şŝ7:Ħ‚-ág“ş“HÏc]@Ĥ„"˘Ôöi]Üş›âöàv%\0¤Íĥk˙ŝ‹şĵ³[$xğġˆôÇïV˘$œ˙żíVŻ6|ànk‹);÷ԉgyš7§ywQÍó8=ñÚW,N(›ğ V[£¤ïŜB﵅cuâ"Ù/ë‚PÛ}Z\ ;pSáp­x˙4aÀ=üò ó#×û‚żó€Ĵ I§ä;üú Ĝ|Ĝ"¤úJ>Gû™J>Wâ—|ž+Ÿ´äs'}’Ï•9nÉçùíiKÎYòïÀşäó8jÉçÎé%Ÿ·[Çı/^„µPĜñŒÂ•8ò…ĞjÜ3 WS7]ş–N;ŝrbž–‘)( ˘8"…(ĥSP^>&ĵĉ Ì ùPÛKô%ğĝ{fg,Fu…'­Ž{šJíábJVG wy˞MIĝlž–\J¨0Ú˘ôrzİ "ÎìŬµyŽ’tù Ĝè”Z„R2,ŝ¤£!£§ŬR?l—öü]ĝĥ½X,âġ͔˜‚Fî<×_Ö$N…/§à@ Ĥ–êl4ŝߤl„Ğ‚^GÛEûÂÛ<ùݐf”mĵ1ĝûÉ˙¸µ3endstream endobj 563 0 obj << /Filter /FlateDecode /Length 2020 >> stream xœÍZŬŽÛĈúDş@İÂ;˙Ÿ˘ŠI€˘[h/ì\p%îZI´)n]y–^_£ß I‘C‹²¤•6Á^ˆâž9gĉü~İ %,ĦŝŻùœŻ'x͔Nĥ“ĊĦ–'ÚIE˜H‚0çˆd2)óäÉfB‰s” ™<ħbr?ùÑĞf–(çċ8ÑÒËY‚˙K*‰pĴĠ,‰³¸û&ŒJ;Fŭ¨§Ĝɇ Kšù:ùz†qĞGœĉ:™ŬOêS³DÁĴJ D*™Ì֓·éo§·ŒJˆşt“­ó?No÷û‘éW÷EñĠô§Ù_'Œ§Kf›Ì~-Y.ÂE(ċ)‰|-W­V§‚ÖżÜe%™ëZû7³ÚUíĦ•£¸Ĝš9X—Ş#5uŭ(ŒDAY?Û(0§‰{‚ !è|wŒ…¸³V ż¸£X‹ Ċw&)ÇCÄ´ ‘Öšp%|ˆÒyVMg˙ĴŬtzÈ 6.Y¤]Úéğà΍"Ü0™Êĥdŝ˜•ÙĵÊËg‚!`TèÁ)Öùv›=äïĤïĤ;Ŭ½<˘Ñĥƒâ9TÌc YD}şğ“kyTû› ŭô2ւí܉e,͕ÊĜ§z qÌżÙ[N¤c”'·\¤ícrŻYM™ÉYú½â”ù/BĤŜ$Ħ̚4żİŠ7UıÜà7PŒ{ëĵz,¤18ü!¤„‡`(Ŭ­Efĝ­1H*-ı—”’(†ÒzKó§²Ì7Ġꓷà“.·ŝڢ׸4Ût÷³Ġ2k˙ċ8Œ´˙Âġc[p;uĥÙÖ° †[ӊHÁáû§ÍĵZ²'½•@3³²Ë'˜QTh“+⇜òùĠ&¸`ˆŸ=ĤM°pn’+ċŻê$o MU•ŝéĥ› —le>fÖ¤³žnòÏé`úMtt°êİ*Êeĥ"?äċĥĜĵzf_Ŝoš#:ċıÒ7‰ĈL¤îğQ0¸6tÎg/GçĴ;²²DˆĜu;:ߑÜJd£Žt^Éoı.uì·Ûĉz5Ç Ħ‰ÁÂĦşŽ{ŭĵ2ƒÜŽ%"ƒ^.Ú!Â"ïtnġêtK­ßĊIÁŸ#݉ĉ&ÖéUPSÓĉ`rw9ĵ×W¸CJ½4žFÒjÊ(.žÑ${Ĥnâ#Ĉ a,ĥԟïçöd´'§ÌÀW#pRZôJ!‡“£ âi 1@"u*œ×~ö¤E8QżRV(ñ‰4``îÜ_1€Ô-gÂC ÁÙÁ°äċšD_áUIalêÛt„žÚ·ŝMšòˆîI'á¨!Ĉ¨g|EœNCažZδŸ[ϒ9À_K9ŸÂŬqìTjµÜV5£\ÈaÌИĉ%[b5{Ìkò5p %RÛU ú÷°4á·L$ Ĵ wTp^lŝ—Ġ6&‡ÍĠј@#mL#³ĉ’ñŞV+³éëp™ú=‘½9Í5ü cöu AŽÉò™ƒ’ú!ħAyLƒ5pnJ ?¨Ħ—!ƒ=ë"ƒ}/L#W(ìúRd°Żóşd0òÛ˒ÁĦ.IŻïÀ– Fĵ*ìŸéd0ŞÖk’AT Ħ~Ż£!tĉöġ·\¤µ÷ì|ĠÁˆ†ğ×NLáß^ƒ£ññ0a†Ûĉa ĥ& Ŝ‡ĥ#tt@ŭı£!#à}ŸÁ£› Ħ·ì§u "żŠŜ ;eîKÊĝò^uÛÙ>ÛXŒÁ‚²ñÜĵ,6_:ğOFϑ÷ƒ,ô8Ó¸Y °´ ÙÂc·ÚѳáSaꈄĵäiqï/92@·hI†qÔb<‘fċîĥie ŠşN•×Ĵ]Âï·'fÓE>_AIÀT2ŭMZԋFôš‚ÒêÓûüU³QôĴl³hwÔ[ȘG€UİşËmkAĊ’Û0{ŭ~²mo}ŭÒ!xĉ‰I›ż@#”ċ¨ĥÍ úO^),ÚW,ŭ¸ĴÛojôċ„/?'Yƒxoöa]ş½ĠX·xŸ—€J‹^5ĵş—Ëğ>T]î^™¨t›‡w˙†£óS1è`Œ’НĠë 3żç€š6Ġ#GtZ €ÜNÒ:#Ĥ-ĈÊYF˜àkáô8Öòô~‘UyûF‹´hÔá1œ‘i”ïc,ĦùóQĈÒÉuWs•ôi›÷Dú$;DM`ĥ9ĝNĥêvµċšÚrĦäwäfȁŭU÷Ĉ­ĜÌó½Ç <¤8á×è‚x.ƒµŝİéÉŻĵĈ œ;™ ĉ"9=ë"9}Ÿ‘œĞâ(eMŭ\·ĞŒ3c1¨÷Ίşbnô3ùBTahä˙°ÏĤjhħĈ+5$2Gë‹ĵÖñ q9žÁ…ñO˘3=‡g1ñ>&cTÄ>z2Ûòèaj]‚Ì ÍCjtÚNC‘h”ż1îû´oß·“›´†İĝÍb‘ŻîĤÌy`ŝċU•Ż^uż>ùv*ħ{ƒÂ+§^Ĉ9˙ë˙5¸ƒŒ3-$ô \úĤ*ŝÔ9eÓ|ġ)ĝ$Q LÌ4?ЁÍÚm‘Iz-ÀÔ.R?Nŝ çûendstream endobj 564 0 obj << /Filter /FlateDecode /Length 3199 >> stream xœÍZmoĈòQȏ’Y5Í}ß=´@‘^Z h€$g rŭ@K´­œ$ê$9—ŭ-ŭ{ŭ}f—K-eQgû|màÉ}™™yĉ™!ߎ˂Kúk˙ÏV£‹¸6›ŬèíH]x!Ĉ– c]JYp3ĉNÒÙñĥ˙cĵ•…÷j|ó€£ëÑ÷aiY(‰qÚĈ8Wp…qĤ[YŜáî;laġĝŻYŝ–/!ÉÛŠÛ³ĠĝëK('œûÂaĈ—×£¨5kW8)ÜĜ Y“ĠèGöùdÊK…ħž­êŬşİ'S-tQ–†5×ôâyÁöżnÒ-Ĝ“i‰°‡ħl·oĥ‹jY|WowÍú‹v˜`ïûÛö‚K&ÛĊg׋z9ßĊ ÛĠûÉ?/˙6úĉ²5[4€qâ.wq†ÓyħYµŸ\ŝ ġx° ÂÈŝŠŻğsïÖ-/µ²]š’—ĝñxá97ÁÇó­~—mñ|fâ‚Ú÷•ŞvĊìĥÚV³}½ŭ{…ˆ3âÈ^Ż'Ż'Ŭ˘™· ŒĥcHï ĊÏ Çĝ#ON‚wžŞJˆäùû°cpñWañ§ †ˆ).îÁĈşZĠ/Rl+öÙuÓ|˘™#2´†Ġŝ>şü}oÊbŝ"ĦŒ`"ìO WĠb™6:l§Ğj[̚U܈% ÌÜNW(ŬÛïÇVTllÙĥŜoġÏġ½Ċ5ÛC&\DtïĞKџ{oY•–Ò -`F„7:öŞN+áĝwġlżhÖ˙>à9PÄk |÷lth¨KÜÖgQĝĊġ˘Á]Mßl×Q(Ùlëè–i8 ѨqĥÀİ8zħĈĝUEêb–ġ!gVWÍŬž.]0l—S —òhĵ2™ŬwĊİ ¨?9}&˙ ïcŠÖÊċ|DĞÉHƒ<W4²’Ä’­ö8ˆf˜ĉžôŒY£ÍOÙîl]żûd!(QO$‹#r3ÇԂ€ =žv9}œ4 Uʐ˙ Ĵò1³00ĠX›oԇ°§ZU ÚlYJÀ'ÒŻˆh@ŭéûŒ£p)X>–ŸYŝ‚EĝÂr{/ çhHĉüŬsöĊ=Î~|CĦ’|ŭžÑ·¨rİX=~ŸÙácÑoá$wÏè҈z.moᎅŸôm…VÈG¸öà„£s†eëÙĞ?Ŭħ•Ħ‚LÇ>Cá‡>| ˆâañ“eŭ2'M@ôGpDQ: °yIĝü0’.Ğ”ëMı^ô¤8Oe C”e dD‘è Šôœ(şh„HŸħìÓe{XĦÇY#Í,u>S öÊWğ]3[TûzŜ'[p3ŭXĦHTDIc3!Ĥ! "‹œZ¨m$¤­ÄÏEH5! EĞ\88—O £ŬіˆBİúú^'C‰ĥĴў"žú˜xv}/͔N†ïħşRAúá}„‘Ž"ì˜j>éÏì(C1`˙_\3Ûŭ™¸fâo†kJ¤h)ŝ\3Ûè>>Ġ²äeO‰Â))gzŸgċáGA£ĵʃfġ²ò™ĠŸ0’z÷{>dîCg÷½9zSÍŜô:ËÉSÓFĉó-ÜòŞiŜ›m³o`ġSXĊQ ĜÇ4…‡g™úíâ)Má3;|,V*‘+´àÏìü-Ĵ䋟gĤ‚ŬÚGÁŒŝij´SĊó¨ 8³úӃ‡†ü Dh•Iž$­ ~)ĵÑiBîsž„q° Ü-W.v´„öTOĠPiƒE)ïC[ï@~‰ñ‚üÎĈ#bát a™ÎœŽ¤ô,g B šÉ -ÀU{’}{h£‘şŽ Û£½îê wĦÑ\<ˆôÓç–ßKäaöbà-@U ?FúBcyz á žê0lj´Xß$ìSÇe—×6•]§üŬv…}˙Ì+é 6ù—' `ìMŒĞnO@*òIY\E‡ÑĦé§dïnëu,ÜSXÑ3F„ÂÏŝ‹¸=AÇ˙½K˜-Ž+F²ÑŝĥÚ§!6Ġ"|–Ô–_)Ä nërµ5îJ'r/m¸ 䠍HrÒ>>ÒW^Zò6,oğG"€úÚ@Á‰;Ŝ|Z/“s[¨ˆ×lW§ĴŸïHĤˆ œĞLz1R>%òóe-²*J­ž^O ŞħÎ4`óġún•BÎ!šİ3BüVçcXAĦVp„#+´‚ReÁ•;ĥBò Éïàd÷rĴ”'­pÀRĉN´w÷ŜÄEŻĥÔ¸4ŝ˜ö…Êškë#šYD;J™)   ÉMNÓX.Ajy[éħe/ SLtĞ%aQXd ĦQïЉŬ‹‹ g`àáU.²ZÛédú*ԙ‹ENÑlo.6Ġ,– Ö0j×ŭñ‡ïˆĝ Â˙ÀÖ)ٔoÄödûf>ŻQœBÔŜĠû}½üêp™¨P{HJX_"Të˙4"ĤM7áĠyÓ2BÇj°ĞNàïG˙z¤endstream endobj 565 0 obj << /Filter /FlateDecode /Length 2970 >> stream xœĊ[YoÉüÈ_1@¸XÇì‰ ²×’;0(r$1áa“Ô:ö˙ĉo¤ú˜>F$EÑ#/ü`ħÙ]5]ßWG×4?6ӆ¸ñ˙érôç7TŞĉv;R0öiDšG” ‹µi4[Ŭ,GŠ…N#‹Ñ%̒ Ŝh&(ĉ0) pA°ċ~inGGÔëlâÓeó͕×k…Ġşış…˘ •KmAĴĈ”Úĉj9z‹~nwwëÙĝBRa0a貝îĉëĠĝ‚Êwívş™#˙şúëèûĞÑ/#Ħ­Á‚ċÇKĊ2n0“ċNH=‹2ÌX5+ŒTö Äb)Kƒ0ĦĈÏ:d Îe£A$Ğma1—ÈĴ.¸³ZµŸĈW˙{$˜[i­òÓ7G,­ĝK3*ħ4´’ΰĊ,Ë?†Ŝ~™BL)ó-úvÓNvív|Á4 Gš¸?5ĥ†˘›ġn½ûüĦÍCë›nf9qÙn·“Û6~Ċ(š9ԁ&Z‹ĉ×í,k¸3‚ }îVX´ğ›o£@ÍĞġŠ!àÏz3 ­á=DJ¸fje\ÖĈ,+яëÎ@_c€d„; x|À’³Ħá/Ä;ĝùg™oÑxĉ|˘bz³Y/;M9óĊ"ÌB€Qyš¸ÖáÉJ¤§ëĠ*„ˆ}@&ˆú–@*K fĥ2{:†„)ܐıüö§ŸF³Ôá YÈ hžäŸóU‡9Ga§ÉġnĈÌûp‚2İÑr²ëĉ'2a׉DĦ˙î²Ú£4È÷‰QĈ|e‰ĈL1żİÈbˆ€ĴUf |W˘Ó+3*„üɲŒ&k[Šw4ĦdždĦŽ'ğ.ş2‰ĉ ƒ~3áŝ¨ùğğ6ƒí·›hTdƒjÖuI$Ĥ˜ív=CڙuZ ú4ßŬĊOV~a6Ȉg>%Ä 4 YQÒ".;#†ù Lllbblñôn²™L˙Ôí[r´É;PHÉ*=WÔT)·áö0g$ÌĜÌ&cĥi?lÚmğÚMBÁ×Ħ·żHè×Ċ‡Ĝ%XúhVà)"1§%xqŬàA f°kµ-ó†Ü­/w›ùêvèŸ58¨äP%‘ÏŽTrîwhƒ@=Ùzûĉ|—ÁÓ^Íöy›¸Ŝ"äcĊEX‡Ŝ“‘ô}ÊTDa˘J‚ÄugD}n ÜáG†ì ÛYÌ·ğĦ Rhp ÑC0$Ë| 4ĜŬ;$]§8uÙĜWŭœZÀ…ú?ó‘ßc˜CYÜß))pêÀ‹v1{™ÀQğClĥBKtżìĈšĴfYÖŞŬîÚĝìĥ7Äo£- ^™.îgñħ< çŬ3²…¨U|ùêo£Ğ?½ŬÏcy#‘ĤOĥŠZf‰*qĝug%ŽX|r¤g‘Z?Çì90ı Ž\fre™ûÈĠĊ“ï"–2àڝ-s ê*7ÇBu¸d÷/]ׄŽ7ܖ5aİ0d„`]ċ#üœüÁµ ÁŠqGo‰›ù˘íú!Ú)ŞzĝäŸtzDíˆÛ8żJL瀙¤*|'9n‚³ K‚3ALĔ Çug€À JvbuLÀkÈŻóïsĊç+ßÁp„Ĵ5èȗ[9 zacëĈ8ˆĥ›%ɃžĞ°Ü:÷ıĤĉóƒHÇĦ}Èvî&ˆŽ?"d—'3úŒŞĝC\@İj żÎžĝĦÄÖDrLĤɛ9¤Ñ÷Óġŭj¸ş"òâù2Dħêùr_t VâB( Œp…Áu¨OĞ(à ‰ÔâU—â D‚†ĵÎ Ò˜)ÛċŬş3ŠF¨ ‘`%Í2ÀC[Ê÷Ñ!,„ž íñHßk*uĦRÀöC;żÈ}bO†Ü™Ž ċ>;*.ÂpÙ*‘+(–J‚Dމ/MBŭû[:µÑ÷N…ÚÀ!şŽĠ^îş:À²G]ĵ+üCgHúžŜ> ‰r‡_ö d “dY„eçT1˘K –:ê@şEXjñ ÑL(„ŝŽnż yíi9%çgìkÊÔ9_*³ċ nŬÙ5£T`fgğş_z‚ĵŸĉšñYÂ@Ö3D§°ÚʓÂ@Ġ#ȧ€ç  Ċ>úÖÒИם}°—ÒI ïïÔCǂB‡GvˆĥQ!ôwŒ‡Yò,!áßçMÙ`€Y³òâE7rŒ%î><Ġĵ˘‰1Ĝ8šp})£kâr&×ħŸËÑ"µRx|áïzXS]݈×Ùψ{ngtNĊà@MµÈ8éqèşħş1Ĝ*%B×ÀĤuÚħ6X ëï ì47Mlù^Š Ò4( -&Ûm6ŭǑdîäĊĴƒŠı  ĝT 3Ú]Ù´Í?›x <°‚‚öñ£› ˜`·›&ħħnšÚ§a%Şì›UÂŬ­Á ĤXÚüx‚†KïĵÀ ƒ,ìĥJü_G|Ùµ']›’İ’R€FX…N÷‡ñ…ô‡mñ£ĵî½>9ĉéÌÈ*ÀJ‡ÒîDÎ' üşŬlO9LÚíTÁġcÑJïQG9DT°{ݏ'ŞŭONÂkyír2_$™··XÑ$…5HÉeż•ä:¸˘Ç.Á5§ğ¨ħŝ ñCviY2ë°ĝK/ŝ %…Š\%îPâ"-Éd5ş ¤™‰\҇‡—Ŝˆ/ğKÂşĜË _PŽ^öùr  ÛçâÜş“§]sŸ.ûöñ+j`XX$\§Ĝıá>~Ds99…ĴËÄ'wċA6î >îŜŸ*ó}ĵP8ˆò^ß­WíUYES`K—Oöó+zS°Àš§úùñçú9W9,{şŸü’ ½LvÌ`t ä5)úu²¸o÷fmN5sĞR$;êÒWô,NŬFu·éI.}X3ı4ÀÄöKwGـ‡ìĊÏ!]œğ×6R|=/áâ{J€ġħ0˘ËBoüÍoîÓğŠŝ1ż]9Ŭ@^ˆKè·.)úßv;P³"™ŭ^oîŬ/ˆ\œ(~AäúÛéWY6Ô+¤şGÜɓ+¨cŭ-7Ĵó ˜*L(Ŝšü2ú?YŞ endstream endobj 566 0 obj << /Filter /FlateDecode /Length 2624 >> stream xœÍZmsÛ¸ŝîɏ¤9ލâ•@Ĥ™iŻ“ĥ×éµı‹gú!ş´DÛşÓ‹CÒuÓé˙íßè’Š˘KĵÖŝ`JvĊî³û,ñi:‰íoówħıxŭ=•jrS\|şJĜ$Ħ äDĈœŞ&T Âu2ɳÉß'ۋ˜3.&7O˜qq}ñ]%šÁ1N&D);N*0Îö’1ß>@E"'|Šĝc%Ÿ.hµħIógħ™|}‰Í1-'†ĊÔäòú˘Ŝ5HM4gz’0Nì6£_Lg4k˘MVéM6I&IĞhwmŸħ<˘òóûdÑWÓYŒĜC%Qy_îòUş&ï³ĵĜmżj†ħèaUŜ6(âF˜ĤÑġ*[/ '\EEVN¸ü³=Eħpݳ 7D(ÉĝdĈQ_-ħâ÷Sݰ<İ£´(VۛéŒ%bh”.—ĞrµÛĤëĉ;­˘4żıßdÛ²p_‰¨ÜÙg•·Yġ`…aóċíné>³(]Żwn’‘Ñr•g‹rŭıƒE—­zŬ‘÷˘ŜĦgMY=SÖĠÛŬ‰MËĉ+\ìĥE™ß/ìĤš5Ż6İlġî²qħÚY”2”ÀT{gJı罉Pħñĵ÷ĝŒ{•Òš$Âó^N èyFê9€†•†ç8ŻJĴJi½·ëyÓËk³ÄDÓXŠÏULc<ĜċËëŬî·WiNğÍË È d:Û|şè…´ÔOOÇgtŽKA&„>–4ğspP£~öŒA;}äû„Ñ9 ibemċ6Ïc SŠ<>#< Œ¸ŭipL}‡q‚Ş,Ždç JĈħÑUDÄĠÓ@HĜS8ŻĜÀ+ôŝĵj³ħ¨H7YkŜ´ó|pĉV!MBtÌŞàıż[ĤevBD, ÖóeÎGĈ`€‰i r$üG-@9 4˜Œ ÚfŜÀ\óéĞQ’£‚ôµu’- í$àÍßèı’GœHKo2a(l:˜Ë’ÀñĜ‘ÊĊ”9 ˆ~@QN„Lŝ˙’€ +9IˆAÄڅÏ4hƒFÊäşĉ Ha„“éL,[G—·MÑ y–VRïÇ2ÒOH(Ŭ0Ĝ"+†i­›A•ìjT( LjCëQĝÇŞhiÀ}‘y˙ièKġì+c§-Çè ]çğMM!ĵQ/֎‰Píò^IWĞmšnY8É6ĞI/”éÀġ¨=Ç!r|F Â~ïÇċp&ö”< b´,)b :ÈÁeš—>·ÁRd6V˙ŞXeMÚ…›êµEÒg·ƒĜĞİW׉`ŭf6Ne@İŞàËÓ~j˘ €ìç°. ïowÛìŻ÷›Ğ,':(PĤˆ¸9tûèh °R˜Ż9zù§ż}ûî$úSQ+³tĦáĥĠIµíĦħjĊP'&Ħé~Íù<ŠçS‚Ÿsşx˜1l™Ì(%FJZ'€Ò˚cĊ_UD =Àr!êh)³ÍŬġj}Jmî‚;÷K1Ĝ…€…á•2œ'm>oÀ<ıħ‹_9FŬryÇ3Bîĥ!¤ùAîĜîHğÜïàċ*]üÔ~ŞZŒġ@~δ!rkˆċĤ]ĥ-ùŽƒŻoĥ304ĈTùЉĦ1nIğ 4ıÂîı+mĈJ‘óÚıF T§*İf‘–'l X %žÜeì_|bÛJ_UZĊmš§‹~uBĜÛP£Ĥ³‹Í|ÚËô¸:Ŭ6sá2LïĝŒ°şĊ8+Ó6˜P*İ!zҟOô¸–üé€èĠiùMKô:ÉÒ÷>ŭċâòWÁl[ ½ië^[˘ôñÎ(o²ßü…À4üáĝŒŽ…MĠ^ Ġkâŝ0 â3sxµ}X:Jò×U+›ùzOĊ0—3ƒ­ö{,ěQú £žġ8KˆfĉŒ¨çKġ|UgF½pÇP%°£!Ê `Ŝħñaİ— ¸Ña°ı gĈQÑǒM¸ëŞ |DµŻ ĉ3PŸfŒÖ“ö>ŝX 4 ŭùE…µ¨CC݌ùHh{N/­¸˘It>oÎ óùvµtĊ(>żìËŞ”‰j“ŝ…x@Z=>£cM&ÀĦ…Ç0-é{[zWTŒ–Xİà².*´m›ŠÂ6_EÓbħZµ÷Ĵú²èjëeÑ˘7£Zä>èĥ/sŻ~DĦDΑo)‡Mık7­[ ´ÏÜ2t—:ĵµŒ|İ×”ĠÏÍMÓӗ;ݐĞFĥz´@ùÏzè…ì§ċîC™ïoĥĈħè°‹Îşb ħ²!ûı}ĵԙÚDQŻ`à€³ÖWj-+HînÛïÓġ*-Zşà ½Ë²u½q/áğ5Vwi@ÁŬkŭëûmó~ğϜœÙ›_ ĉ„C&Hw{sŞ~sZŬSj_U#|bùÊ#ĥEĉî> stream xœĊYÙnFò(ä#L. âjÖ^•ċ%È ’A'0éy %ÚVZŬ$•L€äWò{ù9UÜiQRН~°HÖ]ê.çž"ßF1eQì˙ê˙Ëíìċ÷Lé蘽)­¨<ÒV`ˆT,e:RLSó(O£˙DğYL„Œîϐ˜ŬÍ Ş•ë¸ĦZúu–2ügŽ Ç͒:‹ğ?„QÑ×­z#¤ĦħˆĥO nfJ9Gc{àN#µ™ŬÀ‡îħ°û¨ŝ·ÜFŸ/nUä¨Ó\G‹ğY)K­à%52Zlg?ÌŻ9‹c3’=–ël—lĉ׊+ÜP¤(óġîŜ_c#N‘t›Ĵ7ġUä³ĉ'#â“ù˙š1FR,Z|3[üs ]L›Cu, ċÖ è™`)0ÁZÛá‡âŽ;s%‰ŽáC½†İ̽3ô2´>C­ŻÉëyвЁ`mžg’Ú#³jR`X9X†>n Ğ€PöÔ¤šV~yÑ =İPĤ@ À€q„{Ĝ‚ú]uQúŬĝQ_jAĉ× !Ó&ÒUŭŒŞT~yL›ÑĦQ)_§àĈĠĜëUxö>^r9ô*ŭ…Qֆ'şb¨…a|:Ĥ/ŞıŝÜû¨´âZkŒÌ÷ÙÊÁÈWÌà0x˙+Ïá/ô·Òg>—dĦçƒâO|èĞ#ñ Ğ^Ó¨zŜĠ?ħ{Ŝ´zğĝŭĵ.ş˜‰ŽÓŭ”lö˜áS<Ë#x–ĥĥYö ϲŜJR|›E2÷^Çxvï÷‹üÍ"X?Ċ½ZT{<e“ EçP/Ç)WC‘Ú§ûtŠ|5ÜK2Ï~ú²}î…cÓ}îċݏ—İ·U™İÙŻù–Ëî7)}̳2ğŬßÑ/Ú2xċoĜŞŸZ9Œ<‚ˆ| Ìİ]CZÖ,Écî%s/!\`ÏqŒ {Œ{MKŒ&(† Ğ^>kqù:bâò9ŠxT¸żŽ|ġ ŝİäĞoh2—Ò/‹è;1;Eż$:n3eċ¨|žŻI‰QùÄ1¨”êQw‡œ˜“ lZŭ{”\Ì=Ħ`-lT`{£ŽÇLVž@‡)èWô‡IܞÔ5)ÒòÔys@uSÀ§ÂçÈ›´Ġmlìî#Éĥ­vħG!]áÒiÜwH3ˆÜ­^˞MP {pr“ĥz-´ôï‹~ï0”ŸZñ)™Ĝ¸òS #ÇѰguŝhö Ç ×†Vżó l%ŒÌÌm–§Í_“ġ·‰ßX3y4In³}YŻAÀŞèñ>*N#Î öÔ6/šP  £I!˜p•Ĵk\ÊsfÑ´…Ëñ„KÄYÔñġ1ézüÓ낌ĤԘÉĞgœ\ȒñʁĜT˜?srÙNT ,=íúKçâ̇ğ˜_ ŠâlŬ'Nş#kZbXq¸/ü[è>ûq‡ÈÏ`zÑ~yµ1‡12½|ĵğÂ;yPyL–o)Ïî%ġk’ĴV9†âm–½İĈÂ~ Ï (ĜÁ3G}ZbwôħÎ#&nžıüÛÔhoéıË_p0Ħò×!ż‡{€Çˆœ}—˜”ċ‚Ç^ú]{`Zû{ô7Òŝ=p67ƒ…>˙Yì%°3ácàXx%çŻü·wê0Îûpˆ 8)Îû /M_ >|hmÌĜï§oĤ£aBÛÀğ–Éıàä6­ƒW싴]Ĥ§ĤêIKŜš5wóžÔİċ—<´5Ŝ3j<ö ìÂ)‚ûeùX|üòċîǞËZ’ìh>b úóìGXšċ÷/Ñ sîßM|K|ö}8ş|żë1Ü£üóc P’Ç\­ÒÍíœı—}Z–éĉ£ús 5äĞıD§%HŜĵJvdĠ—¨Şêï`•ÀM™½ ڜħ$ŬüÒ9üŬì˙Ĥħendstream endobj 568 0 obj << /Filter /FlateDecode /Length 2096 >> stream xœ½ZÛnÛFú(ä#ˆ4@( Ŝîŭò—I"rqڇ$‹ĥĠʔ£K‹ùßŝFÏ.Iq)“´H_à‹ÔîÌîì™3‡C}K(a ġċ˙ÓËÉ/ï˜ÒÉùzòm˘8#ÔòÄP‰°‰˘BĤn­˙·Ê’?“|B‰3RS—œß(î¸3c1&Œâ;|2*1ÔÙgNE(ċéBk€F⎠JòÎ {ò÷Ç%y·‡{Jr-5%yÀiE&Òy~şĜÎĉùy5À¤ëÓċĠ¤½žD0íc‡÷›öħ§;I{Ó0ù)½ċê;\iI˜µħЏéÙvħ¨ÑktìÙîšSœtcÇï>ĵ¸EĜ8²ÊpÖ [W*§qĴÉNLôe÷Œ&`˜šeËó£é’rÂo¤Ë½,xÓ# 2Â>â(>ŒòäÀYot£œ8,’À’r–_€C„ÁÇÓÓe™bwTžžÌs°É—Í÷Ğ0¤—Ùĉb9#;w ûPóû€ħ  RċjáȒ‹Z `ˆ hNñk‰—Ĥw:ċÁAэ,|,ŒĊ+-™²Íjžŭ“­ŭ-Ÿ'.Ŭ„í‡ –βġéj~…è–sĴ+ï} ĵZŒ“Ñ$êàd½>9ßŬÀ·ßKÒŬ-#ÖÇpĴ<ÜzwÓ#àx>ß\Ì×ġU´ĈhX?iАJHE¤ĴaŞ“è)‘Ŭ3öòBHÀEĠyá nµ8¤Fö¸›J‚(„x¸*;ĵß*{jŭXfe€Ž7ĴwèP“"Ĥ–4L#€TġqkçŒ= ùïy­³@RÄ/÷&ní6??ÔŸûÜúúĞWmy%µ§1 Żşg4c‚qœ(9&Żz\Œ‹÷cA—Wħ'·\eöÄöŜ\,óìġöòkĥşĊ#îwkżCN(VìçÁ8ȋfÄ:A h"% XĴéa„î{èÊ&bëp.ĉ&Fè1?ùوkŒˀ˘bÒ³âÂWxQTĝâJñôé^Ö<½IYì×FrŒïË1/ ô~ʳ/§Ë-4Yq‹Ŭ Á*­ŭağSrY"á½s6Ż]´è+.§˘4XË)#/D#9…[…**Si^ä`ĦfżċYùé#8]×fĉy=-–@ò` $ĴÒÄFj*˘íĦêîM°b\Y<*Ş)‹ƒ¨şÇĊXÀ Ô ŝâħû•@ħ§=TŽ-cdž;¸N`ñ ‚m¸î{Qxĝ²vè“eùÑ ¤kûŸ,ċà'IÑC]ŝVë%-œ’ñ{>€´ĴĠĈW`VËpÖŬ|µ]ċż8ŜdĴ˜ġ Ĥ*Hżb­ĈàġUv:”Íš¤V1—ğ N£ÈAİ{@yÓ:g쁒]ÎÊëœÖíb40)`DírZäž9-ò´ìX6+[~ħ͸ğè‡UQÑOtD²Ĥqv›Ċ‰R皋mc^h‰ P™Ŭ3š Ç8M8Ş2{̏¸'AĈÌp•Y@Ĥ¸ä2}êûÓO+Ù邢*ĉĠ‚TëÔHAj"Z—×h]OëyĥŜd³²Ĥìàż>ŽÇ9ÚŬ GÒ —ˆ³´59%9Oı–rıŝ]œŠMDċ›¨4ĝçtÉöEÁĞĊ,7Ħ˙Äl(ʕ×ĦĦˆ%­ëĦĦ3ĥ*áJ4 ­ÄÖBÀ‘öe·àÀ>D÷Œ½akĠßëq1:O|ċö÷b‡÷[bO­ÈŭîÄżä ûGC4n÷Œ&Š\ƒ˙ƒ5nùħò túËk\u µ ŝè(ŭM~iq 2Túäë:Ĝàô4BèĈ”x ŭ ȕ"2žëc^Dú˜–Ê5l̅5ôq¸WêcíŠĤH<8ÒÇŝŽ55O–×eԂk[d˜ğ£Épµ{ rÔöF…)@—^) 'ÓJ¤Œk^>ŒH¤Ŭ3öR€ûö´C¤=.F§,I£ŽHc‡÷K¤ħ§=èßK3Y]´rcÓ·Ġœ‚äk.µêbú˘ş{Fçä¨?+:HT÷˜q„–İëTËÖ-‰Ŝ nêŽ^H–O™ż ïÛËĤvöŭŜĤ„Ĵz5u³ĵéĤ.X†ċ„Ħ’şµë˘ĥ ~ËNp݁l5Ĥâ,36ğôŻ,Xr$PĈüµÂÂ_ÌfÙâë”ù’"\şÍ6›lñĴ ĴI_N%0`˜HWS?Ĉ"'ùËb &À$Ż:UÖï7Ëżƒ9§lš-‡Ċ€ħ‰´²ŠÖğ7Ğċfù|{VuċYúÇü<÷Dbú£Úƒ˙ĦÙnP ¨ĵ2ó2ûşÚžĴ> stream xœĊ[moıŝ.äG×·*b–ï/iïËĦI ıĜÍ}È Ù^ÙjdÉÑJIÜoéßëßè ÉŬ%eíږV-üÁZ-93çy8¤>)acŠñ˙ĠŬè·ï˜Ò›jôi¤8#ÔòħaZÉNJ A˜3c £nĵ.Ç?Ž—#Jœ£\ÈñÍzŒf£P4³D9l'ˆĜÈ1³‚P'kɒ8 ß~F˙ĝñç ž‚%ŸFÌl˙]Ŭżż€ÁqĞĈŽ8Íġĝb6 £fc%‰Pc9QTŽ/îFŠ_MΕÔĜϓ3ĊĦ”ßüĝ·wŝfòóĊŸFŻ/ÂX˘UÚPJ¨jĴ”Ao¸ÉH VŜ<ĦGî&­!0+µ›Ġà™=^ÒÂħÄS=ĵ§@*UÒ@E)Ȅ֌úOën' n;¨­#4ÖNTíĊrzWF/2Q̗W‹íġ|yS70Euµş/IëXˆIîĴ`wĈwܙ>Ә6ŬĤC¸·,XsñϨéÙñbá†ıTâOĊfğY­çÓy[ĞĠ²O,НĴÁğáù#`ʧlŞñ×G €iI˜ÍĽ½]-ˋŻ÷ċ°†sĈ×Ĵç˜3È .SôyşĜ3Í\r˘È§ùHğ4bMĤiı½ğ,×ß%ĉcžŽ3ò|ViuŞ€Xċ…3ÏL^žÄ5‚*"!öU³íb‘8ĉ°$ÖĦM0˘Tĥ²/ŜŭŭġŠƒçYîŞF^BA’W9¨1у²Ŭ=vàC(Èşúı(Û#ŝ܋>ÂjɈfĉ„ŬI¤¤E\\û€ÓÄ1X+ ŭŒ’§||ĈÁı4^ƒ`ÑG‰~œ·=’Ġ°Eıœ0ü–Šb{÷ ĉ;xĊá•*îÊÍíêš4Ş Di 8èS'O.ƒPÖ ĊBÜúDәo$p7íR.k|ÇNu\*˜žöŭMœ ˜Êlq5]⃁^\–á³³0ÈŞĵßÈb³Š]xħ.7ëyùÙ7Ġ7·u?§Š×`ŬÊêj=ż‡Ùˆœ)V³(Úşà~8uwS/:²‰F,#ĝZ¸È[Œa„Ë‚ì£VÊpKç€ĊH×Ĵ:;ä+š)ÈcíÊpéèˆU·‚ó“pe!hµz8‡ ‚’‹Lîİ)ŒUž§*â0Ĵ‘™¸Sqaˆd˘Ëò!ILdİĤ£YŒĥ{ÔÎTŸ†Ĉ@f¤‚ÒP}jâ;ŝᣰÇÛÇ0óJ䃽Y­n%ı_Ż6ĞËíŒ`Ñŝ=&“ĥr˙ßíĜ™à0OĤÀ'~úZB"RB"ŭÀûPĤss%5„+3ûĞ÷‚ K P}Ĥ³Ç΢˘é!Ĥ[Áë \#`E{ĝ>i!]pbİÎUHŝTŜ‰pĥ>è0}@œġ§"×t4Îú+<“y*œġ‘İĝF€'"yĜu%@ È-y%; M‹G§Ÿú$#Ġ”áÄĦlós;!´—‹À`KÙ3Îş{äi“kÈéš?÷ĵĦGüĦ9“ŜG*ŭ€‹4Hδ‡pÀT6DċÛ§‚`}ĦÜÎYoÏ"fórq]ĠŞtQ•›}ˆĈžï˘GßVğğÇÎÔ. z@´ §Ùjsáˆċb¸­v*Ä[íTĠÀeó|˙“²yŞrˆ²y*ïÄeóÓOP6O5 U64bûËĉİŞÓ”ÍS C”Í3ç Ljša‘?`ĝÍ!ŠŒq<~ÛĞvB¨³0ÁĴeDÉ&ğcTuŞn2Ŭ#GĜzğxEÜ#“죗{¤Ì`Q1ÉpĵĞŭކh™^À÷Wĵ÷—ÑĊoò>~…ĵjùO/–S'a/á! ÇÚ,1ĞY< Ú!û4™ċáR^§–2V€#áċC霿TĝfÀ[rŝÊ~v‘‚áx¨+ŞôÒ{OußG”ŠXĜ–dVµò‰ÊÊák:áËËĜd_ÀÇ/·ĞE!‚[ *SuE`_\dÂLœÙù"˜İC­d‰§*ÎúéşyŠuyż.Ğrı)›²˜/ÛïÂŒ%°ğş1êá¸Ô0ċ0zĈáôŬ•Ô3ö ĥKœÑúĉÇıÄ6ğa€™ÏĊ\-ĤLí™0ÉA†€Q×UàqµÜLçË*6p;çGĠbµİöχĭD}|użš/;nĦM4$ÄĜċò˜"‚kW;cΨ!ñà( †*!ÑÄ£°—uµÈÏŬ>3Ïj[Ÿ÷ÓЏ•6H„ĵmĝ ›`­ÉEö2‘…h‡d^—/ÏçwóĊt½ĝ fÀĉ„2ĉݏrĵá̚‚[…VBŞ/ıöE73Ó_˘%Ëş`mÙÎL[Ŭ—ëİż0,‹wt½iTú;şŜ&']l†‘Ĵ-˙µAbÚ|ö'Ad1[Żîâ;W—ëbϰüC~}ËÀ9€_>^ĈÜĵŞ%i°´*_Ĉ—x  ôŻyË@ڋe08H9{.ú2bbÈ*‰`ŝX Ĉğ(ĵUŝ3YŸW›Ċ"ŠûŞÜ^ŻÎB•5,'êÉĊW;@˜^.ʧé]8…żq˘‹,MĠÉ  žo$ÖL> ç;*Ĵ‚çŜ¨“oĜʏ£mO†{/ñpġ.=6ŜѐàcONpQDÖícúzÈDiü DƒüXşÂ_<4c@!4mƒ)/×Ûé:œ€Qm‹ŻÑ ó²•Í)§ÍQXê`khjÄü%ş-S ËÔ°.X3?Œŝ dúCendstream endobj 570 0 obj << /Filter /FlateDecode /Length 2897 >> stream xœ½Z[ÛĈü(ôGNŒšj–s:ÈCŬ8é%‰[@ì àJÔJ\‹Tj£íïíßè™+‡ZjWğV‹}Xq4sĉœó;ġ.Ë1Éróç˙/6“‹WDÈìŞHXûÇ$ϞĤsĴHĤg¸PÙf•ĉ˜Ò¸RO^›] +™)Ê f°).0ž‚ÙMyv5y7!öÎÌ˙[l²çs{o‘I, ²ùjâ"Ks9U˜"›o&oP[7ŬtĈËqNѲjğġM·nĥӟĉ›ĵ˜O~0,LTÏN\HĜ‰’QĤ1İd~%•LLbFSÑ(˜ÚMǤbLd sEBq‰%g™" 0—F(tÓĴ·]µ›Î1ş,ÑHâÉù„ŻĤFlBÑ{³}F9. IĥĴ§3Ú*ÄÜB!Qׄ/5ê+ЧĉTŽİ.H¸ĉĞu]}é5;¸Q‰š?:äPh,”¤álsùKµè̍ÎÔĴ†·ğ-Ÿ?ûÌí*´F7ğĈħ ‡¨Dġúr7-àŒ¤• Ëч)És„§3­ µ}Ù,ö›jە}s­Ĥ´°ô<Ż3B5ÖRd3X– ˘áѲaU=ˆ`ÎсS-@“GT °fŞGuÙĥÀ3ghm˙sœç •S àċ°úÛÔ §5Ĵ­ëòÒ­kTWöUÛj×lüè*.šôĦ*F“˜`4 ıae˜4HÑs“†ŞÜì/ĉ‰N@VâœkV ×ĥÜT£á $$Ĉ§Ġ?@\R ´$ğ}YݟTKż˘!8•Ŭµ+à6>¸Ïǂ“.0×Ì;Ĥ‡hŒ*€ġ\^ž\AÁ#DĊ%¨DĊE4äÁSüÊÈ4XĞ +âñÙA‚Ys(›ÊĊŻà­÷gĜÀžj×(Q9%4Ÿl(­·~=g Wc€ÀD€¨´’¨´¨E Ö4Ġż_ıKµĤœÁ‰bŬj q°‘àEı/'ĉSm ĈÄab>‚"êŞ·XÂp´r’ríPŞ·`ˆĤ:iƒACŸ&+7ğ°I$vN¤Ê,SÜ2 u‡TÎAnBm0LjLrÓÎkŜ{ĠÂ^Ĵ!7Ĝ\•˙n"$d\£GÂD‘CL!2#Á/²]•ŭ˜m!…Ñ ď{LVž0ĈrMÊä`°ÇaŸ4%—§kâ",Bq‰Áşż>ĝkK|gŞEfs…Lq†‚ÂÄ0&…ùÊı‰×…gә Ĉ4YĴ @ÂT ­Üƒ°^ÜÏ/@2Ŝĉµ)ı Ŝ˘rıÜUm{Ù4ż:˙x;SşP€ ÖËİ@99M´¸Óĵ:áÄPívyŜĞ\Jë1½ƒ‹2(ġ>ċŠÇ+_@Ô6M Ĉx}™ĦI.8˜8 5şŻÚP#WH(§$'ƒ+~ß_qGÊgY˜ô‡Â|<MœbĤ{eATb½žGüĉĝ‰3÷' $uŸçÜAŝ#“ÄäÜ[sݳtn‚§}\;}~ÚûÔa&Ğd‚AĤó ‚, 6 ,Sf‚*êókXa°rw~=ÖSBog´mr½’NÂMĠ]7´9ĤiĦTĥ!ĵˆ¤r´™à7'{îâJÏ]”“‚™ùDĉäô MĤž*ÒMna  YŸT”[£xxµ!)ĤЄ;w–*½3´4טċCòCB'yë˘Ĥ…W:%ú½Şş½I°Ĥ …äĴ]Mé³˘6I¨„\]äë{¨—b~†äië ŸŜ:(ëM›`=à{[qSo:,pĵD zK遊àċ°‹)œŝÜáSi²(¨†éâñœˆ&7XDċ9í‰>Ñdsßġ÷}uU÷eíİeq{S-B·bû‘[µñQ›(èİ6Ñ>´’Ô&8¤#ĴejŝÜ£ JċaˆòĊPÙâĊuı+]mTğs ‚$7:!g°‘F_³+ÂĜ‘˜‡vWŬ@AÖO‡BKš´›eoSĦı7ċ„ûƒîŝ6Œ=@‡À`Ԑš)O`tçÔc\šP ‡^Œ›˜Q×ĵîvëíĠ™};½ÂâFρ[OôŽ[ oQ;ˆöċhwK¸°+ßE÷[Í·Â*=×­½â¨Ĥh%˙ĦŬ¨Ħ•(Ĝ%Ij%ŝÜ#ĴÎA³ĊA`ê<Żlż…äü ı ;‡‘DšoÀ\ü·e/K˙Ŭù8ÌĈ‹mvÀÇĵ8jŝħ>Ö âÏ=:As ‚‚8€p½nğs“Ü`ñáçÀ§'z@&І$ Ŝcó°ÔÇœ·íа;§T1?q³ŭa=4‡´"çš²"iOÂÂcĈOÄÌEÜ+rêô‰?dúäú˜ CÊ:¤µŸ':‚^ê´ù“ıM$§A,‰ÌfœCğkÖ W)€"ÏmU6ċµħ9ŞÉé4w8ñqĵ@‡+f+T’Ed›‡7@m°Ĉ\êÒûLżšKIBÎM³ìĊM$Uh™˘ĞġoUE([Ŭ²şÜ_ùGHT­Ëŝ98‰û<8÷ğ:<´'$·o%Ĝ̉فu1˜­ '‡3§'† Ĝ'pÒÇäI#§;nxmc ¤]3½‚½Èíˆ ZB=|ZFLżu-ˢì>b^¤80†ߢ$€Ÿy@ò\uh–”‚@°¤ĝHŜmşŜôĤĠ­àòH1(Ímġ6`îôvjŝFĤy’PcÑɉ™˘Ŝ5?vâÖ<ì³Îû˜²Ŝ;wÇ6½Ğ(ˆĥdPà\Ĵ„SġGŒü˜Ì­ ŽüÚP‹ż>5EOí¤›>ŭ܆3)3ĥ:˙fç?Ì˙0 stŒîNi|Ş W˙RŝVŝ<¤Á3ehÑlpġÜÜÔô솽Siöà^?Û7ùnJàî`ŭu=ŭ“›ú?oš_mġٞĤŠPšFUĝisäàŸ–Š?E‰É„däÔu³­Ûo.Ğ8€Ġ£Œ¸ wĠğŭzgŠİĈ"dœp6’qżI¤$Ÿ‘tJK_‚à§–ży?î’ñ0¨’öß,ĞUıŻğžr²ï//ż}ñÓ1@ƒĤŝ}ÂÁ÷HÛs1`ÓܢĈ•ĝíËçŭĉĊ¨#ä£*2ĵŽKhôǗŻŝ>ş&òBz½S^F?~oâ÷°zœàzÛħˆ!<.m:"ɵÛĤtÈ^µ)×uO=ħv„ż›ŞìRŝĈóğÔêÍŻÌâ¨ĞóÑ{Ş÷]µmùĥ_%ŻCš^•܉nîIÑ#‰B‡q ĵ!BĥĉĤĉ·yĈ$ûĤe4}›öš$CİŻîÑżÙ Fj!Ŭ@djAóóĞħĝSĦöÙĊĊ…òB£r‹w³éLç{÷ż_ÂÍîê"Ìs‰’vžûĊ+|ŸïWÉóŜ&÷1ùV@†0öbıĴêK×ËP´ŻşŞ˙…šr;`ÈŝZ­pŒ˙§‰ *Ĝnı]ö^w€‘kÉ4Şê=?Lŝ Ôkendstream endobj 571 0 obj << /Filter /FlateDecode /Length 1716 >> stream xœŬXIoÛF ŭ„[ £"žÎ èĦFnI³XhvÒHV*‰2I%1šüŜŝá"."½ĠêĦÁ"ùöyË÷ĉ2 ˜Ä˙˙ÇËÁwŻİTÁ,\$£˜(iá$áShİ0!&ˆ]&X ĥ–0.‚Ù-8ÓÁ+/š,-ĝ/<ÁT<–rĥŜ}Z?m…k.4&"Xî¨[ ¤”3ÑñĤäZ NÀĈ^hĉ{Pü/ƒ£ĝό ,ĥŠİ`4äĦHá2L`-‚ÑrpŠ2J&ĊníÂÔM†‡’Ix!N7iÏ~éâ$Zù/™Ch]ĥ }_}˘O†oGż(ĊV Œž Fßfz(`‘E_ŞïŠûïñQŝ,i}ââóħ+Ì" /˘“ĉKƒŝʤĴ[—Ö’‚elg;> +ÁħK7ñ*İ^t‘?İ+júi§ ĵĜRÍ}Ĝ–2ħaÁh!g˜rÌ0hñF2ŠFàÓP¤ñ|5+^–.½ˆ&¸P:WbħÖÎ$Wĵ£÷™)(ÌS %e4§Ç­âñÒ Zû—ġ-:ġ¸Oİ[%`|RÚŞ|*“œ”Şâ@­í;ÈĵŸä­şG­ġÜòtoıŭ²ÒıÜü/–™Rµe…ï,+’g§&Ïጆԛ “*ROÄšym~ziT’CŠ7W™ĉš`”ÀOô 7X§MaĵÚlıèÁŠÖo ŞÁ’瓪c+İİc£euŜÓÂTo:iF^€ŸÙż (Œ#¨aĉ µu™N}ée\TTYXîs²ÚĝÈGr.žûEĞ ’EÀŻ/ŜŻ?İ`µßNħ(f Öà„CwX¨ú9šÀèf‹ÖBĊo³P]£b? Ġ°ĤÂÊğ“ ÷ŬGĊ‚ñ†Ü}äa·j$†żĦr?ۈ/ ˚l“cŠCáÉVäzvÊĦ!KUċ ,4Íäm/%ŭ­äċŒa˘Ğä5ĥç6 ħ•\#ŝk ċkBw֒)èûB9j›ĜòÑ,Šf°dMú~Ú8­ ?*Èú8O/*^YM½éÜ-&I5—vuĞ 6`í;J?GóPĴ‚œ÷¸˘ıFĊž: ˜(ópW4u{½˘iŞj_ÙŬ·!‰ŝ /¨à&izñ=Ŭ·=Ñò`Ż-A$Ĵéɞ.˜´ĊLê†Ĥké\\4í ö-½lëŜ,(Lĥä€ |İ4V–š`O&nq>¤ÂħhÒÔ-û+hm­O‡z€†=µŝĈúï(żÁÖÙv&%ƒE')l ^œ•ıĊUÖΠq€ı"(ż_gíñh3-Ù)EÌg+Żš14|ôıİŝyë4Ĥ+Ċ> stream xœµXÛnÛF}ò„ Ğ"Ŝî•ğÛ7Q´)êĜBƒ" ZZÛL(R!)'A›ïíot–wʤ|Ab?ğœ9sÙÙ9CòĤqżĠsµ™ürJï]f“OÉ(&šyœûSîIÂáé{ÜhŽôRë½ñâ ÁĈĈ…wyÉĊ䵃ĤKäö…“Ó˜ 'çcÁkd†ŬÏ`BIïeݏP˜(os`4‘R ÌÄÀN­MÎÀî~š"zŻzĴ6Ŝ³d€iél|ĉ{‹‹I™ê —žb+á-6“·è§Ù§$ ú6{żĝmB)D)”·x5YüÜ{D;;;’ÌĊ$Ñ?­¸Ï;â‚‚ Cq°ħżĥâÓ7žŝ>mu$ÒÙmÎmZhILˆXĦ°çÈ·î&£N•oÚ/ı³0‰—i_Ú —VïÁfyĉµÇF"Àè¸k2buí+ċˆġäğá úHÉ@4ġĉĈfYpi—ù×mµîğ]ƒîçùx½NAûY’|œÉ_„6Z`Œû[›fI:Ŝ,ŝ>™/˙˜Ÿżœ‰/ğ…Ĥ8ßċI>ُWÈŭSğy/`fÓëpeÛÜéìĉĞĞäĴÔ<ğÍŻ’u›°Á:‹ħÖ í._6Ùu.냙ìÉ.߇Ħ£0É6‡Ŭ’ÚÁu°ÜЏpšÓGÓU²ÁöK°ÙFĥqk:rzP›M—Ğ(Ȳ^AġoÜIšäI6v;úaMùŒħĦŠğ&}İ0”0ïˆ1Ĵ½ĊÚ3ƒŝcEƒ¤hq5ĊƒÀ 2…Yî6À–F›P ‚£˘Npc†H_°‚ §˘*%fÀ<Ô`^Bżĝ0J Tu\Wö˘PµĊ(hÓĠ|ÛÔ3—ށÑ*µAn3·v0´ş¤ŻÛċi­$Q•‚"ż Šs‰@Ğ$΃0ÎŞ×ZÁ{[‰Ö6[᪠´ b[û£\‹V8ż ³vġ(²ċ!×ÌJħvÓQXPSF×ÂÏ(uŜ TÉ|QNó3£¤ğ5¨Ħ˜kŜN”‰é 'ŭáäà…ß 'Ôĝ°N|1´3 0Q̘2£aM03táÉ 3ÊKǧêĞÑİ Kwú%Uäêŝ“Ž!nËôPßĦ½FÔâcM‰ëiÒC(LXäŝa¸ğá‹ÉÇß/aTĴUßÒEÙçmÁ=­€'ûöwĜhˆ=ìO·tdzg‚ıäàKFCWkyNŜà9˘ĦĞ˘÷ğ•*HîÜ–àFğ'ÜŬȍbĠÔU)Lf6êJ 騵ÌwBhÄna Z:·Ġ †v™]×/ ÷I­ĦPjó4´×•(|U–Ü Í *ßZ%¨ÔÖ̲d“[‰Ïa~ĠzS!•Ż*$—Ü^yPR:§"xéKàëQŬÍTĴWŽgA˜Ĥܘrž$‘-âW†£ ½ÜmlœW"TVé)äU™3ôÖÂGE…CáE bĊ.Šê•@Û żrYÈŞ-¨ê µ•&sa…İ]Ò/…àż{ï¸Ĉ^s)¤˘ß&~ ŭRp™KÑ+ú2ˆ‚İRQӃüÑÜ+áÌê™üAÜë LµîYú~ÜËŬĝÈ÷27½ʗ u+Äs€zGúUĞ|†%§½Ş5·˙CküĦĵ ó'\ƒoèKílžÛèİkŞĝ\x1°‚.˜ÎœŒûAü_f•Œë3ñşV0è,ÚupFjd£Ż…3pµħb+Œž_‰ÏvU3sŒWx;Û%ċ ŭ[ÇÇÑĈàkÌü‚v ˜ö<ŬİKŒû Öèkċ´Nġ´Ċf„‘ÁœÀןïşN6Kšë™Ônt§á²)ד˙ĤBôÓendstream endobj 573 0 obj << /Filter /FlateDecode /Length 2331 >> stream xœµYënÜĈŝżC2 Œ -Ëıqf‚Ò:A‹ĥHìmû2`jwVbĊ%×$WАĝ1úŒ}žıqÈWjŒŝĦ%gĉœïœù΍ŝ”d)N2óÏ˙]ïż‹yž\w‹,Í#TRX‚pàG.9g"iŻŸĜžLüŸġ.ùveOĞDĤB‰dµ]8İ8á8•^– –Ĵv‹÷ˆĤ$=_2R$úC³ÛWş/›:=˙°úóâÍjñ"KžP“D_r’AŒpôBW^áİf6Ġ +8Żsŝ€û!9ĝú/‹Ġïžxĵ#;‡ĥĜä ĠşëġpP¸ċĝ8‡$H%vsxbÀħnŬ–ûiGXù Ô§Ĵ@Ċŭ !}³_VúNWŞŝİ×uŒc“3àù”˘Ġˆ^ì1œS“YdÂ!<ˆ˘.ˆ˙ìÀë,s)2À‡ş*ouġàŜXôwqà13 ìğ)úÉÙV‡EŒÊ.œ“¨B:tş]†4àÖiÂîf뷃™ú§bŬ;&ŭÈ)Â|–Ĵƒĵz`A1¨§¨İ‡âO„ütKg€ai8Jħ;R”‘*ĤUˆçn‡­BO7wÍ'h˙êóÛӀY`G·çëDPs_Ö×·7•+ŞCÑ뺨ŞBoíkÈ.kIdztĊF,vJË:ÖŬbĝ "êğ²mêMŒ\QŸ]ĉĤèPÌrSĦV÷m )5ìT{.áwş&{ŒŞğIbCKDeìÌġ=8u‡Î; öÚ\Vĥ“-.éü%NZŽ] ñskJ‚ÄJx'"”3)èëe5)@ĥ,·ŭ޽½—/_†ÌĊ|äÙ´e“éY\ŠıÏbcÖe0ĉ"ĝ‡ħj 7§İĵcΗ8Çb§‰Œ ·PúħŽAûŸċžu#`Ÿ- .7‘`ӞĞÜÌℌ&ÔókĜŸ*£ĉar’+6/8"³YJSĴ”ï3}›i|Üâ¸àê¨ċĊ>™~ĵ´ĥ¸ ‡DÓ6ğ¸89wÄw0öê8ôTSùc^w‡ĞK•½˙ĉYà!´`ga‰ ĝš+†iÂvÚP,Á›Ak·oËşß:ñÜşîìĠ&˘˙ŞûQ}5½êœ.·Pn.Ž,€äG–yèÂw2|v,ͲY–˜˜QLAqà  ?îB\ጙY ½ÇbPĴŜŝŭÍl·ĤRÌ5_ E£†›ÓT%l–½~=û‘Ĵ"ħµiöş-z7ĦH›ĊÖħanNµí°}s+şĜ4wU9,™/Í|ÌòT1ĉQĈä2–A (X¨­İÙrÌ˘Àı8^WÍUĈGü rÀ˜?'Oñ‡HÓíGŝä<5†<ĉO[s贊/ĉÌŭÀ`; Br ŽÈR -2T9PCƒjšċ§fŝ\ÌhYš1ĝĊ§Œ‰J`€°ßÂì*Ŝŭ¸ĝ/A•°endstream endobj 574 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1299 >> stream xœmTmLSW>—Ò{ïí]Á ĥWg&›ÊüÊ”lŠ(8ż&E¤¸”ÒöVÛ"ĞE™ò!ËYE'(ߨ´pĞ…”FÙĉf†şàÔ ÓfĉĤËâÎ%×lğ­˜ùcNÎÉyŜçä9Ïûĵ †EŻ.ZlŒ%!maŠÙ¤eĤµĴ-{qܲÀm"?g†3%;qk˘D: D$ĴœµuCüÛ2.áĦÊ0 ‚â‚ü'¸…áÄñ™Ò9:2 •F SA†eW›wĜ-z]^·ˆÖZi-Kħ;ŠrŒzk“G›-:ÇN'èmV›…Ñšèuln,½Êh¤ƒuVÚÂXË.&/–^mfóġy kÓkħ˙LJ„³;,V[‘–É×Ml[@*Hé@ ÀZŜÁ&0Eü rÁĥëÀĈCâB8É4‰VÒ#ıÊ˘. r<Ġeı,ìGzĠ*™9<Ğfwƒžw½’×;M *áħۑU)Ġ‰"=è!e[ĥ}Ğ-?Yù5CPİ“ŝ‘é•R? °Jêç§t ÉĝQġxuğU`¨”×9VvH˘˜ßŝ@K÷@ÑhŠsĠŞċÉg”Oo<£¤n£XT@÷ˆÓ-ŬĵûŬZ"’â_·škê U2^.JšÚmĵ"JŠ˘†E=&ĝÔâˁžvl†eG¤s ßuêbHRî2¸–}Ĵcu†ùàıÊcw¨bĉîïċ—zä½ı·ü›ë}QTzÈëú£yµÙ K“û wuò²‰³gDktú-ĴıÁĴ,½#Í"ñž½}egEİaçqï9e=*ìd>/h$İ´ÔNĥÙŬŞs°­­|O‡².QêeènĠYŝ%ïX6óq a„Hl6ùÏô×ġ*Ŭ„­ÒVeƒäš½jD ĵ‚'ùÄöĜuĴÔHÈĝËû.Ĥs|TWc“üá3ƒ}h_ŞÈü€O.bŜ€zÌ7Ĝêı ¤lİ(†#45ö)ż–!&!?”Ż8‡Ù—?#ÙÔ}U…FEÖêòŻ4*éAsûä½hğH[‚î~Ğ8²EŠfs¸:@<ÄlÏAŝNĈ&k]yĞrxïĴoЍÚTŻ2‚&ëM|•¤\+}꟔TÉlòˆçîL6ÇQÉL“Ëwm¨Í>#úZş˙<2ô˘Ùŭ˜{ }tO§=Q¤0™Ċ™|-y½ò)Ĵ†Ġ*t˙¤‚‡H‘x]À„è7ĉ ó…y÷côĦKM_\P.Aµ Ávçü7!ùƒ;{y%Ĵ€•*ş.vŽÂ‹ì^ì‘_r2íፁĈá˘½‚êG[ÎyšîožŜQ{ô8l#†ö÷…°·b„ċU< \_"5\| &ı‚ájhú ò_I‹˙4ĊNlUvZ §³£ŬéÜÙaPQ÷…@ˆ­~%˜u gEœìXEÈPä&ĤˆdĜŸ~ɉH´—Sw+DĞdbŬ§ĵX÷žĝîÄè ĦŝÀ²ĥóÛĝx…­iŬµ0c׺<òŒöóìS–>w½kĈ……k^ż~²GÓĦùôaq:|? °;4ËêÉé{ĉ`|nŠ-{Rĉhà‹êQÒ1o.°„ù_à_ñKŽĝendstream endobj 575 0 obj << /Filter /FlateDecode /Length 1164 >> stream xœíWËnÛFŬó+hTOçÎ{àvcÀé+‰[hq´4vÔJ”MQhÖßÛßè‰âC"e˖Ñ-HŠwÎ}̽çpn£@Xĝ×Á$úú”&W³è&R(³œ&(&˘‰`@ ™'ïI1êŒÔ̑Ğ{í£Ëè]€K• VŒê…™ ÑLS‰×WRgñé7t ÑÄùî~gè€a$7,Ò"Ċe0!G}L[EuškÒżŒ–9#ޤB•J’ŝ$úŭl;P\Q"ŝĉ ÜcDŽÇù<Ÿf£dLßúl6M{û?FÇŭà—wÖ ,&w #ĈĊw†dŬ6Ŭĉċ\ˆ($yŻ˙Káiç £LB|™c‰I-0% -4†7ğ‡í4'nĴyĜ_} ì8ozʧgy6JŻžP&ÀĥâZŻĠéĵwŜ+AĞݐN9*lÙ…à ‚Ú\8Ĉ…ĴÍE÷Šĉd Ĥ֕“všb½6'¨ÚTl?[Àï>ÚîšYÎĽ`M]<ñ³Yrċ‹ a:.†Ħ˜˙ħ˜ ,£S H˙UÔ˙jÀa+B À§iêßÌ'>[ŭi ”bİ€ïÌßÌG™ĈSĊ³ċ—ÎÓ&<ëĝÛâÖB ‡mÓë|4M“qI×Ĉœ.âëß^û*şĵzBލ9áĠí‡ĦżLĉĵBÙ}òúĝaU)-Z*uW½ÇéÜ|ï1Û*ŠF˜Á‹i/â듣^W%+£â1k-Qˆµ%YŜQÑ÷'§?µšó†yK’Ĝ˙›I>`ϓIÛf”ñu·â&ö(ÍEı‡ĝ8ĴĜ˙ŜL6[i=R?IF ½†(Z3í“ĵ_{sİw½µñuĝsġĜèOÙêÇ˙žût†ÁÏVħš_­ú] ÁVuç;ölĊw•4ÖHS+E‘a+ޤĴmŬ+ÖHS+|oj¤‰œİĊC>'ĥ¸8{a—†#uĞŭ {<~É5Šráj’ †¨µ §I‡ìr…Şĉä²Û½˘ÙA\i‡_€ğÊîĝÇʔ|р˙7ÙŬ$‹™·í•-˙“²ûĝό§+gÙŬ·ì66rĞìrn‰Ĥâ(ƒ ÇÜÙí^ħFšÜÔ*VPĉt„ß‚˙<š‹š€ċ†ŭin™5·î*™ÑÁ§$K9vŬtwŒ ½–ĊZ‡wH°N-Ż4žWħÄŬܽ˘ÙM5ğeC)eİmk¨†Ż–MŞöÔr°d)…ûÏeË?ĞUGë4g~8~ÖéÏ:½n= ßí|šŭgu:P› š‚BÀ:àÈúÀ89&LŞ%ŭ!ÏñpèÇ=pA4]<÷yîÇ/0 cğô²'Ö`ÀY/Ĝ8,b’ŝ5Í TÍ$¸ĝ,Ÿŝş€sÊĈ~|ğ%ˆJ¤ĥtzú6›ĉÓ£ùeXf Ĉ?Òàg˙\ċ¸İÌA[Ê5ĤPÀĵôÙ<ÉÂĝ‡Yµñm†qħyQasĈYkMÂéSàí}"ğDvDĈ[€+9ù]ô7$ô^5endstream endobj 576 0 obj << /Filter /FlateDecode /Length 850 >> stream xœÍV]oÚ0}ÏŻ°ĜK2 7ŝJâJ{hµĴcJ!Ġ4M ÄPք6U]ïŝĈì@ @(aÚ¤‰‡sîġ9חóLˆ€İ>Ğç0ÒÎşˆY`<×4f1È1–Í!Â0“ˆ,`Yò>İfBÎML(FÚM–˜@JŠ0"Ş`6äNž˜ÊwıúCî`3pµ—=ZŻĜ„RhajŒqM§d% µžä`JĥÊ´ƒĠcKOêÇr [Ài˃‘$è,3cɝQàEÚŭ•QG&•`OŭHœu†mŞ×ü HÄ|>ˆ{8Kâ4_½B3†€×Ôĵ×[ fŝŜ/s0h"Ĥ×ÒE'?\†îà#™]âûéLä1ŽŝT„bdšru››ÌÛÉ<žY¤@(MDl˘ž6pjà•€ÜD}ß".˘HrĤ£2TèD˜çLo^\şÍ~×½ımtŬweê ĵÏ·ßóşöUٙ<ÊÁORżU½Cê'A5íĝßio´=‚H?ħ•¤‹ÈŸ„ĠԓêêŻ;^ş}Ñüï+?ğ‹§ŸžRüŽ{áU/~Ëíġ.ÜR‹‘ŭ˘në5˜¸œ°£µ3ò‡†ĜöÙîŽ1OEPTĉΠ:t–{;ïàKKµÂPĴvÇûsiWÈÖXG•İŭñ—Tż³yDµÍ>˙-ŭjۓĠuY}ٝ}I½ÛmÂVlSo­n'G Fŝ"Lûßŭpħú“Ġk[nic›ÏG'¸nx>Ħá÷4äèŒû‰ċn]_6šîÉ7L½Òvü~{%8r•?ċÀ‚ˆÙ\ù³:ĉ:ò½N¤Üq€h:Ħ†÷MaÚ è`L¤ŸS˜Ÿ âzÊ BÂM´2Ğ—v†;Ùrgˆ M8ĂĖž3s†wi:›ŸŸ I9&wt “şQw2Lti ż‰a d|&½ŸUĜ–LàÛnGYĈËĊ(Óĵ$ù‚e-'F•ë–fv‹˜"HÌÁúB¤İßÈĈµíĴKßÒ8s›=1TM—ÄĊ“ù #/·? 6½4ϲqÛÑEĝ¸!|£ŭіġòendstream endobj 577 0 obj << /Filter /FlateDecode /Length 3724 >> stream xœ½[mo7òÑȏpşşÖÌòLÑ/mÓ×ğ6ñá>8E°‘×ĥZYR$ıiq׿rïŝĈ͐\È+Y–7?XZ‘CÎ<™‡³äğQMè¨Ĉżrsòì%•jtµ>yw"•$–ħ‘Ĥ’*G²ĉ_¨„>Zµ£ĉ'5ħZ¨ÚŽèqryò£͉àĜ&Ja;C¨€vŠp% b <}C(hbéèğC†xCÔ0›w'Ô)7 ˙&7£ŻÎ@AfäÈИ]žxÍéHb83#Í‘µŬœT›ÛÍb5mfä‡vµ^ÌÇg?Ÿĵ8CéÄZ †ŞĤ5|­vH•îrM˜ħĊ€ŸdCPf (TfkP>Hf™ĠGŒ$`V ÔÎooŜl~_ĥo&‹Ûù& û`ğ1† éŻĞ×(29’2ŒÉfPÇIŽdkĈEĉHğ{”ޤ µŽd8İ­èq$˜éw‡ˆċÄ@ÊRSgˆóêOSZ hlĞsúÓĝT2IêšUtüÓÙ_``9bİĉ(ê”aĴ£SĤI­]€F,Ħš@ïş&5£ĠÙu;†&0$ÇŸÖĵ †Ÿ(­nÚÍġâ‚Äħ(L[*ÁÜ´Au*LĈp°;ş"” m˘Ïĝ–8Q šž‡‘q&Öéğj7·ĞùÚOÍZVmĵ ĝĞĴ.Úġd5]Âb Ïhu™>o5^/ÛÉôi{›âĵܗ*iFĴĤóÔis=]§_²ñ(E·•7Òĥòڐ‡ĥÜ•× f~LÜÛ=Â#<fĉ£…ĵ|Àòò ÷=2ĜQoy!÷u• Ä\ µgÎ;„[A +…ÓÇDfŒR”“í‹ËÒj4šœÊp*½'.ïîQ:ş´ œeqقûèûâòñò„ÔêN\΃d0%Ğ}ôñħš‡ĝâYZ}úġbŜžıHƒö…ċÉTġiè+Xġ~şıÍ)ŻxĝÁê×fvÛSœİ1E1îžk&%:ĵ2òçĦÎ Ğ"WÚ[s˘˜ö:2Èe4„5Ĵĥ3 š#bĦ6ĊùÁ£ġYÜço[™²OçÂÒâ—b>YaBĤĠdÖĴ×!a Èò¨M—ŽÜ\żI3ìI8à`µV˘K8Ğvıj×í|ƒaŜ@Ĉ´ŞzĈo%Îŝġ)ÂMMT/Iú|ĉÓ¸&é:IiÂGÈ6ïWÍrÙvҌ­^‰ lé5_›Ĵn20£ufèuڀ§˘`ĉ–îĠbq5kŸ?_›ĊÛÛËçϰR† ÁÉd~’>Ĵı̲À¤—e?ƒYeµñŸ4,‰^>Ħˆ4şëäÔƒr„‰Ugc‹ ËèŞy;k˙›Żn%`ċĉ¸7ÊïŠS`p*2­ÌAAsHK”0ıÈóà=o[Ç"(Ĉ@J˜sÏw܏8RŒ§sÏQ ħaŸa‘ÏìC_èÛ°\İÀ>tċ£SŠŭ£Iìġ àB´È ,9É5„]9ş9bdžÌ ÜR„(ˆDÍ`Mߤ'´ˆuöĊ* Ğ‹`EµPÀOCD^Ïç/Hfb‰ÎÓ£Ž6ĊİÄ'i*Q+9ü:Ó*<)´ú@¤Ìµbˆì>µ8GÖ.4+)‡·5K‘ sÚr1oÚό!8Ѹ× ĉĊoJ0kU͛Y ñµŽRċ×[t?sbR ‚vÒsçÌUşQ·”ó݁×q­X×ùëÏ>ë†ĠŻc—Íp%„(NÖ´y;µ!HˆjÖö ͜0LfސQ%Há‡ŝAX ³3, t!B˜d¨2ˆÄíu€Í››ĥ- ZĈèĥžŜ,g~§á{dhµ¸, ŸMġSÑ]³De2CEe˘Yj 0Zçv Or@(rÔR͎ñdĝZ€HĜjX sy;›½ÙeĦ·ÔÑÛ°íï¨;ìl­ĴŜŬ6³é µË~ħYÒ3Y1éÙÙ Zq,$›uO ›‰Ô+³´Ş÷$[&ŭF*Û(ïö¤,qÓ×ÍUÖ0ßĉ‹êŭuğj;ëš#ĈHâ7ÁÚíÀ/ZÈ ĞĥÏÄÑ,™ÑëÒ0çytížÜ—Rµ#mŞ€Ħ6@@ÒÑÒÖ86˜¸¨0´„ÇĴM>„ġ HÈ*Şo²láhŒY—\Öİ.ré‚ìŜĞEU] áPĊĥ è%Γ È6b/5-ƒ\d(¤á€ħ£…މÙÀn 2agzÜùbJŒLĞPÄ'ŜúĜXmJĉü6<áäë÷%cҕz(ñÖïÊ7’şê^µn'Ŝ¸ÔP7McÜJ ùNĤĉ¸QÎ&ŸdJ#+V"W:<)[ÁÂWĴhċŸĤÁş°ıi<‘ú¸„Îı‘ĈĠXœeš5™\7Ğf²ñy²qğ:†Ïò,ŒÄx> ßÄVĜ!Ö2lßK-P…°Ş ‘Oıá#l=AςSÓµĤÁXv¤˘ôƒˆJòŒ„JDŞbÈYŽëwTnÇ5 NS"<Ŝ,^mVÓùUVoĞ4€ƒŠ U”ùÁ‘ŠyâuµİÈËnÖ}´’ éŠŭ!²ĊĈĠO)‘!.„fE¨èúÒedá €—ĜŠ{ĦßQ)›Y"ÁÖ>ì:߇D;¨‹äC8áĝH&ôÜW×;WgâĠ<ž²„?³€üXEH.Ó1 lc!Ӓğk8´"d èÀÍ‘ˆ`{ˆ HÁÏD'“îC “„žW/:ıĦÎÑ)˜ÚHqäs½k˚FĜ^ #:Û¨jh%òêû•Cá ž„%Ùçr:k‹Í¨ĵ*òĈ0ÈĤ1=²rdsEDöIP×…4p+ĝŜ!‘§k—Á?™·}0GKàËtË<34‡9ô;f@Ìi0İû̵€Ä4cĈírƒŭ20ÊqH²äL1εġkXŜ“q‹ x¨m˜ P%pbjrPCż£ù/‡‚ރ9Ĥë7ío›vžFTsâ? ¤i@İÓ\‹Ŭ ž½sÜrSŭóEhÚa…Ċ·WgŠŞcY“ÖĴòĥ[ÌûŽmC^, •,ĴëwL‚u[? "Á4"$Ĝۛ·`9 ž™|‡çĦú½x&ĦçĠwí&b˘Ë…ËZ·i²Œ;F¤•WÚµĜ—xû@‹p”0neTπmŜ܁ñxVÄAŠZӀeÒdvȒ½•Ġ­‡M½ Q,{‹Üçú“ûÂV“3C4ġŻÙ'Ëċ›AAH ó!|a –$u/,Ċ{€Ça­_˘ĥ•Ê¨ÄşrŽQèẃıi\ġ 8kŜĥ³ĦÊä{€†(ŬdR÷ä5ş[-ÊeÂz]-\é™}Ŝu„ŬäğÛ)DÌÏc÷D[ÚfÓ^ĵ÷!ۆş__Ô26ô;‚£èñŞĈ#"r”0ËÈQ.†£(é4`@zˆÊOĦĈÇ )š}XF”ĥÑÍħdZ‰"³ı~Çdĥ€%Ö{ §–Î?–Ù€Ë!*4…Kżn{°L(•è–I‘<+•AÙu;J|µ£l„2›ċlp(ӀÊ!Ê9…Ê.(÷Aف´m¤–ĝN;‡Òw{8’\AċȝíNÏ]7ë7íes;ÛĵIÇ ÜùĥÁM@‡¨âÚ|(@ÁJITQˆż3<,Áa“&Lżd‡+” ‰ĵÏ "À[~Qx‚F2ϳÛQyV.ˆ ѝ‰ò.€À'7ŜҘÁ†¨ñšXäıJ‰ċtžÙüUX×ïè2“xĝv/x]½6)1Y™ ÀpCr =îžğWtQIÂcۓ@Ŭv†z›•ü%W×ïè—\LàE ³ëü0`gcx°‡¨òdRğġuĦħ“öÇ ž—ş ÷ˆèĥ'äç˜vÍòSŬ“cŽÔàa Ù[Kvà‘ó#5ىW4£xèĦ`ˆÚtW‹=T“ÎKŜs¨ĉÎÍ*QàÑX!½E.şòtÇĊ*|ıÍŜrg/ß÷ß­’xX|tĝŬŞìMz˙iw íĵ^u5ŭĠŸLĥÑè§érĠÛÛĞVÇÚ‚8íîVyL{îY=dÏĥzeŠ*1Gíı·}gjwò. ÄâĦÇûïĝŬı4µgˆW_<ên›P µñ• Ió˜ –ZÀdx)1żs4àäyÇĈóĦĥ=óĜ›Sx!‹Ú-->èm3Ĉaµ,†üä*à ÁU!Ï]úğ{}zÜ{ıÊrĵ]ObDŜwµjWûr1Dƒ ğ÷ÂëNáÇ_ĞÂӑ–É;ת"EòרTnŞîĦİŝíbHĵ·“³?;)ŒbDĤħĤÑ]¨’1~ùĞZ²{aż™.\Ñ/œô-‘ŬŜ:‰$[nH²+^ŬD7éċù ,}<˘$9k÷—|˙â§/2umĤng´?v-ϛíÈ^ñ´[ÈÄb+amZchín_ċ'ċîÜó…hDi<żoĠjĜ’u{ßf6m²Ûdú†• œèȈVŬ†Š$’ •ÚzK—RÒ<— ċoÀ0–ÄîÚRN cá”nġŸ#ép”Ö- X‡˜|`eqŬÏşŜl–ëçϞMüQĝU3'ĞÓñİİŭyĞċjñs;ِĊêêÙ²™ŒşŞVĠ/°„|ék}u{yèíĵ‰ Ĵ_LìĊĊE;óW7 ĞnÛÍĤ/`/ûíàĥZòjċÈŻŸĝ˙‰#Kĝ~‘:ĵÚ,~ 4xĝì÷4áOŝÏx mendstream endobj 578 0 obj << /Filter /FlateDecode /Length 2311 >> stream xœĊZmoÇú‘ȏ8¤z,Ĵíż¸È‡‘ÛNjËL‹B6 ŠÄÄ[0+âÎÂ;%ÜQ…Ċw&YÏaÌ/;)?&7ɋ.]›Ä§ıNF³A K”$B%†s˘¨LF7ƒt2.†£ç#´”ôëVuè3”PÉ ßĊĥÈ׋ñ’ĵÎ֛|E^_çĞìûíÍUĥM˨’Ö"4eżÎ4‘Ž7Ì™8žß8l•á˘aİÈßëĊjŝ÷q-ˆÒŞċżwwÒğZ*C´ÜÁD MŒ‰ ë(2‚nŻ@ı0L•óÈUÖŞdrŠPÛŻŭ­×ŝ?Xjk`;zá2ŭŭŒQ C]z“m6y6`Œ8‹½ŒŝèµpF¤,]gŸĥ‹u6-%˜J7aûàÖèTşÚi ï_—–ìϑvÖĦ=ż-ùjĵĴµ“Î0}Íê9ġħ=^?^N³Ùxğ,jÍѸżŭğó÷anċ„*§ŭljxxnj@‡Ÿqô0ċÉ7°iÀt£)8›qH@/†³ttáÚ8ÌRÍw¸CÔKMçhfbMêGSàۛĴ¸Î§dg–Á>+-9špÚrĞ™ñSH4Ĵ@êy´xïC³Ž ÒX¤œÓĵì5ÇӚĞXö²œ*ĴÂaÔ€Fħ]Ż6ċÖĤcx£ĝ¸_ĝ_šÏŞGĥ/Ĵ·{ĉÂH˘oÌ|žçóeFn×y‘_mgäċ"[NżÉ6“ġâóżïZԙ’°g;âÖá|¸q@…ß5|Ħ2mé2†“–iĜĦ·(+8\+™=yħ_˘É.0ĝW’÷˜8”bìœÔ,w3>›šLŬRŬ0ĝĠ2ïQÑÔ·˜yÎÒBhš91bÁcxÓR#˘ͧ@_ĥĦ³iG.UÂÑYAËÊŜÛÉ´_˘…w YŒĠp)ĦÍ}ÉtöƒĦ4áTŜŸM‘ABÊ­„ô‡qĠ ÇÀĝR”§?/ŠëZĴÖ 5l*ƒ:ŬdE'1á`Q§÷K´ö‡A‚ oQ×Ŭċ£~§İÓÑ0GĴÓc…ïғ„ĥQ„ĉĤĈ2ıŻÇ“">΁Uœ”ĈCŬÏ&ŸBœĝTSßħiœ (£™è›ó1OE*)Z{}ǂ™ÖFħ¨“Ì„¸ÔĴ>‰Àܸ‡Ìû%šd€Ìyt4Ò^ŝ6ߣŝP6ÇĴBÍŬ³Ñj|“=ŻèUĤ_.Ĥ_öœTvŝ”óĵĉŜu|XŽŻ²ċóú,ôê//Î_}¸8ó·çßtI`êˆf2ú÷ëóß~?üƒxÜD䝃ˆħ˜Tp­ĝZ,ß{ŜÀCC‚ÒŜÓ;ÚÚr×ŬQus8 z¨úäŠlĴĵŞ^LzŞïtğɢ!˜!Ğg8hĴÙOċ’œuqÉv ƒëʞ7‡})´Ö0m•ĝ§Ä¸‡× äÖâGFíhĈ e•îc„; ıĉ µßBȧJWdpÀ#ĝ‚ú§=T%¸í"À…ÇZEĴ<Ŭ,nn—YÔ €ˆœxüÌ.`<€ÌVAïÔî.k¨ŒÓw¸ŝ’½ŻX›×LßvĊúĥ)ˆFC÷ν-÷P!‰dQ˜[‚ôù0ïµp˘0ÇN ĠìN˜~­N%‹ĠdıÖ@kÒÍ$ż=qà3êKc~¤ò· üÈäQ?Ò·˜>{bħÚ×ET>0c[³írùudí $öÔ°PqŬܝÑĊçO)‹”GàŒĈ†w‘$7X=É&'1ħ‡$û%š,Àµ3DİIŜǑ{´ʑoµş‡#Û-ĝŠ3ÓWwŞQ-}•ġğeµWÏ.Ç·WÖ· iTZ µÁħı3‹%f‹Ĉîi…£Ë¨D­ÖxêY­|ŻĈ׳ĝìLUÓjtĴ 5-JP×´^GUĴzA–~ħĴ^ĴŽkĠŬ_ĉz]mÉPĉ˘·kѳpşİ°ÀˆETâĠ“taEĦf~n…0§NùˆVwŻ@+6¨€¨C:ŬŭNÓX‹S ´C‡’9Ď2Mċ§nϔ$›|R{Ĉ_(7ġġ˘ÌH¨Ò[ĉä:´W ‰"ĈË3ÑE D †íW~(Á2ˈaw áR×Pq@‡“IgùîVV¤·ÉÇF·ıÂC}ù.O§ël³ıÊóĦ× ï\&œ„=˘)Ü/Ñrş€j< )ĵÇÄÁ—šhİ~ğKŞĜà1.İb}§ş¤ê™ó .İbKG#ËŞ+ïıĞ‚ÈÄ>Šjz%Z°§ÁúXé×~0âÇµà˙W²ı§C)YTê;5ĦuÂÓI*Ĉ‹*?„Ğ4˙Ĉöw+‰o0zÌĦ},Ğ­q* ħ֑ş!ҞFGa…ĝ \ÙXCTBĦê`+Beh™˙Á„Ż q8ÔXeeè˙£Beè˙âÊSu;Ac{;ƒĥÓë²ĠÏP”ÉŬµeGùg– dëËò34Gעz•[6ċ78ŬëEġfy+'M˜B÷Ì’-p~Ù\?ŸN³ċĠáF„K·YQdËgU§Ú¤/‡œ%Żñ74Ŭ9^ŭ7ĤÇñx5­\úĥÈ?zuNÙ4[~ös€´C¤•Iى—Ż/ĥ³²=ûçbBÛ?àô×jêĝŻŬÔµ…ŠİnhżÌÖÛñ:ü˘‡j›~.§a\jžĠş9ċ´ÓJAäÂch£˙ZB­aÒú²0 àbÇpo˙’ŝ#éendstream endobj 579 0 obj << /Filter /FlateDecode /Length 1809 >> stream xœ½Z[oÛ6~7ö#l@ilaÈû€=ĴC;`ĜCÛxĜC[­$n;••mö÷7v¨‹M)˘bù$€­˜<×ï|úDçKÂ(O˜˙İ^g·£ó7\éäj=ú2RZQċ*QLàĞN¸TX‘diòg²1êŒÔÌ%W;ì]Ž^Ĥ•ÂŻcTkżÎR.qĤBo,Kê,ŝġotĦq‰ÉŻğ¸¸@˜8‹×Œ‚c¸ß(pàL’]aĵH;İ^f·Éó‰O]›ÄQ§A'“ËQYž(K­›ޘL&·#2[-óébıX^}ÈżŜɧы‰÷›Ä­ƒUÖı0ĴkXGòû|•-Ĥ7ôUš­WË­}j9SÒ`:B3Î̈́|ÏTċw¤ )°Ĥ½ĊüŬxcr‹%m™Ä>mÛfŭ °ä`)£‰%\Ç)Öqƒ%ë°DĤK˜ùŻğ˜ż(Ì)Dm Ġ>,Ä[òíĝŒ3‰‹™§ëYĥ¸ÖŽÏ`HΐËòBQD))°T^9NžµPlü~òۃŠJi݆ÓßÑŞ¨”šrњΊ>˜ÎTUeŠ:é|Ô#:¸ÄıàM{‹ù‘cFÛÎĈB>"rlpŜt<6Ħñ† Öߑn*aÎQІPItG ĝÌlĊ`*‰›?ôħx"&ñ-FÖĤŽá}Ÿ•ÖY™œNŻJ&st ”cžm1Fp2ıF`,^ĊúC:ĉ…GIŝÉÓċzX~Ê9ıMóëĠœnœqLTi E˘€‰‰É˘›Â(ĥĝA5,•ÚVkĵ³bqÓ"ĥAú’ħ2ÒıĈa|@²4żÏ–ë2:ç€LŜüñ˘ş²†,.ë÷Žä׋zòMz3ßîÚ|b™.+óœl"£]$­”ġ Ħ¨–ĥ‡¤;šXĊu@C…l nŽîñp*ċ]s¨BĞ›ûr+pŞ\ô[dŒj*°{í;ĊĤ;ǑR8 +fv”Âa2R6ÓÁ{E5äÂSaÀßb‚^"@9=\ßÑÂH˙t°Bá1óöߟ •ä¨-_Ӑ—?˙~ñ˘ĞBHl’0ñÍ á:$F³Ïö¸ĜżNÒ)jÍʤá1dRhïD2)ò dR#™P^ŭĝšŽh$İTÍy!£…zìUĥE ò1fè1â5beŽÌ#{(>·şÇFtÏrŒ2šÜß~L3˙w´gLżâaĥxÚAñԒgYšï;B˘>ŜYêäeìŝS…Úqv3ÍÒy wĤW!³Üdd UışĴ?‚†.’….êT;’á$c=¨{ÀµÑ-Ô1ĵ ġĝíè!ĠĈ=œJíHÄ—ş˜Ïm#÷zĵ݆Ĝ|J™\@#ƒ¨Ŝ?ihĤ³•9‘9°şŭÛ&nûßAgñM` |V³óûә0ÈëN÷ÓtÖG¨:‹/£UĦfÁëñp@‰$GĦdžN„ĦqB{'Ò8‘O qBO?lQN4ŒFԍ`ĵċtŬт;Ŝí¨ĴnzÌ€uf¨p¨Şl\DٔçF…œqŭ8¨> ³°‹œİÖÔgƒmK PIşèÁÍlsÌ ùX rżNƒ%ùŞ!~²EúWçê§N°Ô0Mu,kúÇmÜÏIÒİ|@:‰š|Àa||G‘¸Şï)†Ĉ÷¸8•ôİĈÑ(ĝù°aì‡QЇ&ŸTùh‹nîğAkó¸òOꃨ.£,Žt2œêzÌïOu}ğ~ŞS]ġAŠġä/£Y\'qBöùŽşÇĊŝ5âVsŒ{:é:<†ô íHúDB>ôitÀ¨žħB“áŞ1ı#Äw´.Ê.1” zÌ€t Ìï:Ĝ`€ÁßJùp(îÈìîîC ÖÒ{šƒÒFmjúäĠ˘ƒ $%VìI4/UF€­ 2Â2€:„ïq=ĠĜoUĊG]ÓYä8Ċ7ÛbúJEġ•u;ë+‡Ò0„ĉ;šÀw‚{zĜG_ġ¸8•âˆ_UŠ‘Tû2ZÓFVŸTaU|ANŬfĵĜÑHĤ 4˙n.є+ Ĉàŝëcc“3LfPiû‰YÏŞÖr >Èŭ7¸Á§œÓE$½uhXĞ{ËİñÀ<£ĦŒü:ÏïÖ?žŸÏ²âę9KĤKšÏlÁò‚ÜeĞOé,§Ğìêün:ƒg6£ÉçéUúӛWÙ*_=żż zÖSÑîÀ$VFa­½˜Ïӛcî „Ü§yžŜüP3§!/ÇHhÎ(A²ħ'í2˙Vċùħ¸Tx=ßn¸ÈWŸ kÎX’Ŝ|Ŭüzô?ú²Uendstream endobj 580 0 obj << /Filter /FlateDecode /Length 1969 >> stream xœÍZËnÛFŬ ŭ"íbÄÓy?– ê-²hlµ]ÄE@G´£V–šj ˙Ûßè>$’i‘–ŒÂ ËÔÜי{ÏÜ;ô§ˆQħSŝŝp7ùö‚kŬ>L>M´à”9Yn U"ÒLJÊMÄ­£œù(M˘ß˘Ġ„Q*ş=@br3yTsGµë$ġ2Ĵq')óŞÒĴ¨wxú7LXŭpˆúK¨gäӄçEċŻwÑĞ‚NGžz#L4ğ™QóH+*ud… šİhv7yGžžqĤ°Ô“wü÷陚2&Ÿŝ>ûir>+Â(2p“żsÈs*Ĵ!d•ƒ·H4Â:AĊ o¨4v@K<݁Ôcá2·0 ì¸É6Ù:]ÄKús’>ĴWÓÙ(Œ:δ²È)igĝŬûÁ̗ĉ¸Ô1Ó0ĝÍÎÄàŭċ@ÉĤĊüÈ>+G•·]>S.ĵüŒ ϰUĝ …nIKjEÓ҇ûû÷Ùçûä) yMuSëıšn5ÖÒ]YC…lÖ—=„-ÑJwe›jÂc|£}tŞc…ïà‚°M êı•Aљ@p&˘3a)Ş.šÍĦC€Ħà…4c”qIf“é™0PkYĈ×ÉZ|Ç ıK²ë9ŬêçpTPô^WË|‡U%qŭdA‘À2G²Ü@ġ^ï4Yß„Ï 9‰‹UÁöWÉr^Ê`ÑYßg‹ġ*^ 8·$M>mi2/ygÈ:-5pƒŻï“8KĉWS„+ƒ +Â-Âُğb¨QëÁ”#{0PÒPkšU!y8”mÒĠCŞ`^î`‘9d,2w:Î]ÖL•œş¨ W‰*Î͕ˆı ğ˜ 7s…ê° ’ÙÌĦ Ż>—‹ı&óä&Ŝ,³JBEVéVµèÊĠqċŒ ĞÍŬu’–k"ĊËMRùċ<ıŜ䊢D%—´Û ú7-€Żd?‡,]Ĵnğ6‚R9œâ^4ħŒÓÛÍ]²Ú†ÇɇxUşèı.’ˆ·vƒ œmċĉß§ëżó$ß~—ç}ĥŸĞ4(Ÿğ"ç Ĵ?nîr+áOlašÄóĝz™TK=)#Ú `ÇÒä~Ĉ%şŻ)†zĠÓ6µ›‚n‰&Kb§(•ÇÛĤ/ş‚—G>Ĥ "ĠŞ´n–óÈ Ş4xµòêčˆQ”;×0ù¤FtŻxSßb÷ĠŠiAÙn‰Vú(ê}à!Û£}ì!Ğ€ùŝCVì­-fx„`0·ôÔV§D Ĥ]´Cò ŽğÇĉj ³ˆġ¨µUSù\µU3y”ÚŞé[àÄŬ9­Mċ4z°@€ÊYŝİÇùf™ċgVŬĜìâ—ó'ĝ/ ›[°” “]=ÏPFŞoï–h&?ÖĦO­%?fF%ÌcÔ£~,5¨À.FöS‹7ß½:óŝâüí/?^œ˙bS(fƒË‹6StK´À’aV9äòâ Ĥè110ġ|³yŬà1fóşSÍĉ>Ÿ`6Ż[z*5sôœÎú†Î+r"^s:ÏÄş­§ò3Ĝ`Ŝt/Ż1—Cx­S˘UŞ ÓĦWƒy­[ŭè2eí„Ák=× ( tîîÄ÷ 6,"‹‡÷ĠĴY>‚Ë.,u2LlžĞʇşVˆ¨.yı¨ncÏhPešîî&uŸ‡^›Ô]>“ĉÉWŽa–,nv#YöqQ­`XŬZRÛoòİŻpfï&5N];àâĥS ™q¨DOo]ÜÊC‡n §é"%^݋ٽµwc 8TzMóğÀXHp•oVû€ÚnÌQĜ^ ñ]#Ĵ§œO}5‚ÁUeà²}‰…2˘oúo“Y·D+µ¸ÍyjàK“ġcÉL hrĤŸÌ^÷ĉò|BÂáƒĉjŻ[˘‰pl2ê­I‰ħ( çİ|ĈĈĴfï}YMŬİÚ²ŭŸ +ĞÇrĤĞfĥšâŽw&B…2Ġsş%ZÙÂìn^çôhèĝ?†ĵ7‘}ŭLqµ^>cê‘~Ĉ ĵĠŭŒĞ·3‰vFògíg oöö3 :M@ŞŬÍ4:‹CŞ=&NÓÒ`GPï|Wèğŭ{bKSÓüü-M=Ĵc´4`oixxÇĉì ë–hċ–aé†ĥ4=êÇr7pH=2Ÿċ5ĵ 2”Ğ!Ċ×)Ñ(ĵĞ4zÌ8Ñcb4HRQ ˘~ĥ–Ĥn=M]ßİššŸOĠ4˘9 ÛUmM]sG_i\ŭ>Ê ͌÷0š€a]M·òħıîqÔ£ğ;ú{ç—4ŞğİÙ|/›ûHS£İö€ĤĤ~I³µñ¸¤İœÙ(#Cıĥ€‘)ԋ‹Î¤ùÂŻóù> stream xœ½ZÛnÛF}úDZ PŻ÷6{)‡p EáÄ*ú†bїD–‰j ˙Ûßè,I™ğ4ɐiäÁb´sfvvĉìD”°ˆşĊßĞûÉé[*şÙNL@ħœGš " ˙ވYF„Ñ&‰ŝŠVJĴ–ŠÚèĤƒĊäzò&ƒD 7ŽÜ8C˜ÄqŠġˆ,‰5ĝż˙  …C,‹~íââ]àŒ¸5ĝL ·mñpË­Ž67ËĤî£W37u#KĴâ*š]Oòœ° 1‚›HsN€Êhv?‰ïĥ—ë‡ôn½š/§³O“³™ó5#s5Ȍıùêù}œîÒġĉn$çÉfğ^•ĝÄ0 RT„˘Œâ‡ŝ“á” "pùSà72LÎâŭô²Ĵ#…áН/™ĈEg~Yʅôê¨Ù"Ĵ#e(~ĦË:2‚P+kêHƒWC-|ŸDìĞD…àÚ%â]üŭô„Q‰ƒmüŽ}˜žB)_˙òûĊÙôì·'9’ ‰ħ=z­Ù˘’# œÈJĞé.­Öâáˆ4a4J›Ĵ^F-x&4¨ SLbĦ³ïn1p̈mMSÈRċàŒ…“„Ú8˘ ßÇġĵÀXQ™]iĦÉ RñŒb\Ĵ ß$…F#ŠiÂ(ïÊ nµ Òğî2Iö„c-+@ ∉Ż@‚ŽÔ™ˆg·ÉÇ|°ñí|{ıHçğezù÷”9‡\Çóċ.ƒèÚĈ÷Izğ^GŻ 'Jòl¸r3@· —îÉL ‘Êc™£Ì"„Eò<7yWDà"²Y6IşÛĴĥù40âxööϳâÉĜĝîşüœŜŜíÇ—,ċwJÉ žï?ĈEtċWY˜¤Ž‰ÍɀġĴ´-LÜlÖ%€Áş€€Šm'ÑÓâa,Ñ ßÚfŭ[ğÓ¨v}班|ìĞÀċQÊG(!Ŝùíz•üħğ˙˜lŜJ‡ ŬÚĴ=¸ôëCRËÎÀċZKB¤ĥ…ž›-*}ÀÓ }U[ üá ½HĠÎĠP…#g\ä2"Ĝğĵ…*š-Âá8L÷¨Y×½žpE‹‹ħ¸Bb°Òêħ¸Â‡&]Á>ŜÈ\1Xè9WĝpĞ,èZĥû‚íÈÍ•VÜc½öd‹ĝÙB*,+Òs¨Ÿ<=§šô\İċ8~‹ûî>ZN`IhŜAËYV úĤÓnïŒ\ÔUÈùdÜ· IJÇx}]'ŬœĞj’ À,öjÍ•’£‚­j-F#_,­YÖ ƒ/WÄT°Çf^t˜VßċQôUìC}ĵñ˜W l33\Ĝ:€ë5 5Ħ,VkŸµf‹°pjïµĝİWh L˜vêeuŜƒcîZîLP"ŭsI„Ñ-Ü×lQ)%†da½cĜòk?œü8îıyzžµHĥW›ğ\]ǁ’ĠñuŝàQ ™=YżĴñŜˆ/ë•i- íÓ¨ÍavqœĞÔµĊá vФ@<ßŭïpˆûK/떁V†(ܲ4„=ä&j)lÙÀÓ@ä¸?ĥóĦ.11­@DZiĥ¨äĊu_Zi?˘ê‘E´~ZidXWàë1ӤǒU.ĈŭîŜ—`ŒµK0ŒäŝR³ËĊg²Ú;¨‘_.e¸„‡é/‡\Ží&x(VêëĴĞì²T=ÈĵÑ ,iKĞ9€Ë›Œıp?£”Í·TÁ:Êż¨~,rޏ;²àrŒ˜_ßċQŻ+‘BĵñĥÊîg  žƒ&`BĵòLÍŭüÑFŠ0p÷˘Žwo86ò‰bXS(Ó\żsµotáe³‚iÉ9á_/ ‚µ*  uŝÚħU\wW ĊÁ×mš>l:=½ÚdG­Á>'›“é‰ÉŜ4"~ĜĴ?%W)YonNĉWٝÓ*ŝŒŻĊŸßžoÖéúĠîşlúĥDÖ&ħ%SvĥX$ËÙŻM‡vIš&Ë‹; Ü żžJìn "ŜLŬ‹#üżuNX8Ĉ>/Jƒ‹tŭ9˙íŠ6q²üZüfò?ŝĦ>&endstream endobj 582 0 obj << /Filter /FlateDecode /Length 3554 >> stream xœÍ[ÛnGü(ìGYn˘Ù_ ìKeo ’ĜÚäÁZÉÌR¤LRvä[ö÷ö7öT÷LO75¤(†Ö~9êsş.=·#Vó£˙íϋ›“??çڌW'oO´à5sbdıÁ=ÒLʚ›wŞ–ÎŽ–Íè‡Ñü„ĠŜ3!Ġèz'W'ߑhîjí1NÛÚçj0Î×Ò$ÉŞöOßc ĞGŬGü ˆgäí µ?.nFŸcsÂ鑯½ft~uwÍGóġÈ YÓ󛓗Ġǧœ)ŒôĠe³şXNo׋ċĝT èämużèš1Y5óğ›ö›ĠÇßY̛ó_o›Û‡˘z?]żiżpYÉVŽĠğÉìY<˙ÇÉÙ9İ^3Ż„tH+4lÄj´VĜŬö]qŒsµġĥĜŻž/jËÚm‰šóz|Ş•F2r|'™.ĉ=% ÔÏuIO2]Ò4Ĵ’mŠ;RÚĠRĉ;҈*`ÜIò÷µ²9àŸ(œċj'"ÙnÓùşIĝÈÌ J‚›Ìw'üìw|<Üé|2‹üÀĦHRâáĞġ˘ŭÌ3ş:‘SɅġlßĦ|hÓy\/l^1ÛÍüü“OşTġn⎳hDŞÂN'ŻÇ°œ·NU³f§dáıŜ 'áŠ\Uû¤@Kjx—,…BRdÑA(šOnš!¨¤ĊaO&YMongáxğ8£……W‹Ğ–ö³C„S*€Q˜ĵo nS™ĊÒĤ’}$Ò ­sû´O ûej¤2™$žèìC)Ž­@†e£żş›Í~Úf#…qާ€Ec% hŻĞ·w“ÙôIôyxĤÇriğ½-Óv“ċŽÒÌrí“Âr\qJ or[ÂÉïölğİĊm,0Ĝn„îajíg”›fµš\gƒtJßżi–Mgh·ËžôéŞCŠ\.BĊHŬ7v²PfŝdĦdí@œÜĜñÁCñĞs›ÜŒÎ€R0#SµCBÑ& Ž…\‘×ĦÈ gMÏ+üT^ï]ġE>âk{Ğ2˘ÍŞ3Ż‚óVU‹ÎÙ2yXŽÚÛS4U ;rħ/30™ŝ ĠCvFôOIl0=5*9Ò8Z5V V%r'ÁôÂ8àUI;˘p÷ÄĜP(œžPYĦRrHC‚ícƒô_ÓĠŞıˆĤċeAVêl†k “i—ždڝjä-žç;mŸ”£àúç£â“ NIÜšü…:àH#iµÖC$Îk í“U=›Ö}2ıwĤ*ì-˜Ç6_ [bÏduP&òr_VËf}GÜġ£ĴşsZrÒ$7tÙg”|\çéGŸ€ñ¨D_ ĠÎéž'ËBÍÚùžŭ<7d2ż,<ÛtÙÏ ­WĦâôŞŞ˜èS²§C˘ˆÄ(ís҄yâ8@%´†HĜ_µ ´ıx3YN.Ö)k–‡Ô;;YÔŻi$A£|´‡Ö˙ы6;¸,›Ûe³jĉëIĉyÁ‡ êŒlÁidÙdJLK,%œ˘O(ğáÛy€S˘*ÑH€lô€Hğ_Ĵ—ÓùġħÏ|ĥD@K­^èG+ÁWĠŞÍ`˘ìÉj¨6á ½ œğNÄPމâ;ÜWdD‰˙&m ’P~+ Ú@[;Ôp™žc\ĝşÍώ̒lÀ} –ôBwĊ†³àŒ4䌿È( t¤À·tWÔs§ËPƒ3F‚6ä ›èX1Œ²Eó á8XP3lÙġŜ1QêÌ1@J2_VÏ[ŒèJÛ£"zR]uC8Ŭe;ċ‘L•Ĝ–qUyŞŞ›{ĜPšÂ0ˆòĝéۀt55]ŝŭˆáĤZ=´f‹F„í.v²'ÄOÚŭF¤¨ŠĜpĈ÷êÀTĉYY=if]†‡P€OĉÍċÎ=‚›È8ƒ%µÒÎŬĵpFœ`"Ħ™l//ˆTÓ9˘Ofe,€ tżjÚè|+{Ŭï¸;Ñú0\œ÷MԇM˜mb] kİÄÊfœwHÜ Ġ‚HÒ+Ĉ´Y3żFġp\wœ/@ôÇħşżCžÖ)ò´ŻÛZ*Ç ŻÖ“ù:;ˆÓyw@ċŒ…ßÂ3!U"\ĈVe4ĞEg;í8aí ‘´wİo&Ğ£a‰]+YHXîŭ&g'˜½Ô]`ž?K²ıtĠżÎú‹³@ş“ßQŽ2ċnœS%IV·ÍEwKĈoâIúDkµ&/@ ›1 Ìġ:˜7ÙQpAcÎ£sœvHtĤğUm ŪÂkêŸ.wó]—´œÈV‰œàÇàD/ġ˙à€'{VW†ĠFÑÛXŞ’zŻşıi˜xzSüj\ß+§zR”\ÚĝRóZ~$̳‡ĝ][¨V0§zî›5™üȚc\³eR‡X/Md }a”…Ġ÷cú*t¸"ËË,#ş¤€!ÄĴ „û” ĦuAl0G*ò…òö­[_´bâ˜Ŝût‚§óËf,H'fŞ_>÷²ÔíÑĵéÜׁ…ô ‰zpt^Y;‹û>-Q÷ŽˆsïêzR•d´Ċ5°’0ı°Ù5p÷䀷 –n“12ş´Ûïmžµ˜8˙ë†Ĵ€şzì dMܵ/ŽñÂÁÁ‰e]3Üèlö)½I3†Nħ=$Ù- ñĵ`ךħP\žŭ²Ĥğ›6=ġ @ mş×Wá¤.œt8N,^SƒÏŽîzCd(Ĥ<ê…È—ñŞ6>Ÿ’Ŝ6ËI6v3Ò aTQ-šÔ{u·êŜaR›OÄÙЏI?c˜v4Ş×?7mìf8PËf½œ6ïšU˙ˆĤ~µà˘÷APş2· ÈdÌıÑĞ%-ƒ'jı;Yv-(Üw‰GT>vÄèşEğJŽg›·é}_ŸTÜÖĤï˘£ĉ&P§oë³Ê ħş~xBÙĠ‡a:ĵÒéşú<Ê@-şú¤çYgßö^„ßÔGïĜa”xŭ{›L'³úÛfıö}PrœQ‹˘“a<4OìŒMvˆËRÔp³Ċ‚O÷ŠJ[ÎŒÇd)/µYuĵ˜?žê€ 5r.î‡ož˙3IÌ(Èá pë‚&Û[K·ÏĜ !séIÖZ*İ·òĦÖÒâf ıPmïġ•ä?v=¤˘CTX„Lċ²€úWù'tûŒÒ:ÂÒU­ÏŽ(œà^'tÇ Ħ÷İÂġŻ ÏB޵Âïî_¤e4Ÿ€£Gş0pßûh^ZÔ‚ûBäĞìÖĝù’żëhzîryÈ+z{(ĵEġ#-¸İ•/WÚ(m(Jê J…ëßİŝĥlílıÔ"AĊÊ˘‹e3Y‡4˜ ˞Äd”îÓ X(İé>ŝ&oJñá*ì]׋„˜$·ßLu1ıEAŜµhSsŜV…wİ)Ċ÷M)Ħ2/ÇĊżĠè~EŬ(i8]>Ëöz8ġ¨Ä<<ô¨ fÓ܁(FoF½#XoŸQŒ ż|°Ŝħ‡ ÖôûûWgñȂɚŝ€Ğ“ó?m÷Ú,ìi0F~ĵcòÓż}óu\`—TFQ›óCĦó|QtÇp (Š0"ħ˙ĥñ˙ò²™Ċö|'}u×Ĵ×Í,ŬnĜêËħz>w."=]eÌ˙ğè_ÛĵçÎW/֋ÇK+ o8û5h݁ü˘mÌyY=Ŭ ŸŬËo^}?½žÓÚĜ Ŭê·nĦ÷´Û€A5,µÙĵ^Ŝ…?4 ßk\Ġġ“[_ÙO{ق 6hÀHÛŬ—ŭÖ_‘ġC@ïÔÁ+ú7ùߝü3‚5endstream endobj 583 0 obj << /Filter /FlateDecode /Length 2129 >> stream xœĊZYoÛĈî£p‘èè˘šÌ$ÈKPwM4ÑEì>È-ĞĠâPTŠ"Í~nCФ%Knás™³Í9óÍw†úL#âŝò˙ÓĠàé;*U4ß> ¤’Ĝ2ifÖ2’„sLüǜ2%qôK´l-a\Dó$7ƒŸ½jŽwfî=7˜ŠH2l1…f­§€ Pö]žs‰ŠV{—)­Ċ ˘ċI.µĵ¸ûa@}ôQŝoşŠ^ŽŬ (ilİĉÑĝfM ¤ÂÜùLĤàóx5¸DpI1Ǒ$FÑĝ6Ž˜6pƒ&[<R÷œpt;I&Ó4NÜ[m ZĊéíf†‡żŽô6idħT‚y› â²ìŽgŻtü bF Мyd°P&Œ•6üàşF˜(ÁY>ú27ı_狏ñĥ¸•(ÍÂÈnfñġnžßRƒĥi²X—÷ mnŞëš\ĵŜ­üJ˙ĵ‹³@/Ĉyŝ³ĵ)ÀĊ²N¨Ĝ T–ŠĜ ²:ê… ×´,,jĥĵŒ°4¨­nj ġ;+†Y˘p!™eVGI_=é0mE=l\F”­Vş‚BÓIê’çgİŻB…kÔœáuW¨RxFç!ĊZJZ3Ġ,ÁFA’ÚFé.Ŭ$‹Éż“ífe(‘BC,\JàâĝhS˜Y3ùċ !0NĦ U¨ï½½ŬĴ1Ĵ@ ĉJPĦĞáĠ°uY@r0ge*‡=Lô n·Dca ìʅĦàħ÷!nú÷^ŭ1³SÔX5?;_ G”lsܐ„òŭiÓ蓟3@^ëJpüj0ŝWÀ¨CaŠ^żyùĞ‹|ĵ•èE!Êyîeßży}QY †Óç)Ûbê—7ï~j•dÏ;œ,˘ü\¸ÙŒĈ $•4ƒkżÏˆŽ}&Ŭĵ/!ÑżµXşZ²µ{Ki e_€9 òÙWĵ…joi1˘ v‘Ï`„wñS•¤t“ÍĵĉŸ‹7ÔñU÷ú|Yeı‚÷Yd~Äe!ĦUċ^R¸À&Û×ñv;şú Ö ıĞ77ùQ Ñöó@SÀ¨VnûŒ$/ééJg² d f)È=šÇmİŒ1°UP‰V@­+Ž’8Ŭ%ëmŝ.ÍıPf%çsŸ]rŸàÖü~s_$2ô{Ù̗1K6éĉzwƒ/ d‰·Ódq‰|ë·E4âŒaYTfÏg­ŞDV˘@uµCJ³H[İĴ‰ċ1\§[˘Žé0Ž;b{<ÙéħpX—Tc³¨{66ό ̝²c¤£ÒVí;çu*^ZŜîö š[̆…vjkùĦÄFPlĴ ´^‰)VĠ.´Ñ˜W…}7ş‡Àt Ôk†A\ħ‡éäJßÇ_şµ?ĵ΅ŬZîїË<+ ÊGFE²Ŭ*#új8|—0J‚Y_ċŠC,Òۊx°jçşYÄËÙĥ°¨6NÛàH`~ÂGŬ ˜!è]‡£ Ġ| É1·âŒÍW¨ñ‘›ŻÔ™›ŻzKóš9ÖuTû2MïèiŜŬ’kÀ›%ÖìrĠѐ;‹s^vO3 AéĊó1^uKçÂ84™ĥóxw:Y7]g Úm`tDċ5´jÉ"ŝ˜Gd­7àE|ÙàÎgÍI´÷Hâßürĉĵĵއ”tK4à…B´.ñ…ċş×HI…Œ”HUì#P .0Ä_ġ ĵ™nb€ÊŞĝĈEu^ħ]Ĵî–qu°ċLäc$ċ§4ġCQ|eH9m T^:ŠTÇ4hFĜ9:/•™ #:İeÔ[Ò§ġ·­Ôİ6°Eƒëöí¤ŬġR‡q ïçßµ´GûwRj&£7wÒKúkËlomN—@I͘-ј(X°˜Ĝ:&èĥ^rzL<(P)0´V{ ĦqÑ .ÖÓċnĉR‹òíts÷Ĝ0áûÂÏ Ê&ˆÎĦ²âż>ħYèë€dÍäÍnı|X{Pv˜“ւ™żûïĊ)=\Ŝî„*[J€–iu ŒvJ4@ı1},Œvk?F‰ġÊûa´ħ,pV{ˆ-V­u@lu“Ĝ ŭkÇŬTû!½ F+v#ed(6BC>I0è,ŠPäfQó˘… 6A-VԆ *vÌ É?öĴ³BgÇë.2†ÌAĜ} r 9{2dŻÄҌúú×@Ìŝ½,ߨŭ–ViÎô6$=iöJQÙÏN”ĊĈĜ<€N>í~½c#…İÔ6K²Ë›‰FP’rî{fŠIÁPÊħaqg}Ĉ_Tp+ŬŜFîCӚĥÂ{êÖ18DĦ‹Íë6MïĥϞ>&ŝç1îS×d“ÑpägŒpt—l~‹§)Ŝ$ó§w“éıYÓ ŭ>™Ç/Ŝù³—ğ›ù{ÍÓĉ˜€+ĦĉjŽ]ÌfñòzH³ïâ4—_œFß…pG%ċ7şÉú›Ċ6ù›Ĵg•Àûtóğ×fµAñòÏÊáŸ˙˜­D™endstream endobj 584 0 obj << /Filter /FlateDecode /Length 1945 >> stream xœĊZ[oE~·ĝĞ‚ÄDj†ı_A´H€Di }hrâMbšĴƒ/…Jü_ŝßìĊžµ={cċ!^ïœËœ9çûΌçόQžħW˙żĵ|ġšk“]Ï´à”9‘YĠ>ÓLJÊMĈ=§^ùl–go³bÀ¨·Ê0Ÿ]ï!1¸üTsŜc\0aŽr…a†zÙèUÔ;|ù Œ<ûno`J…wNbbÂ3Èâƒ^x›Íaž—“Îê—wÙ70qc3O½&^ ވÀ9EÎĴ€=Ĥ²áŬ€\Mnóoóùċlrż˜ÎΆ ^ ƒÑ,­Z8½C5–jÛVŝž,–:ŬÒWùl>-ÖúİL+‹ıH8‡g#8§Â–É/1Á U^´ô½ş™ùÓ}ŝŝlyMĈz;Mž İ˘lJK´³ RċátBÈżÛGû›Rû!ᨒĊ8†CĈ;òùÙ9g C}™8gçZhʸ$u á;¸ç-ıŞ0€Ir?şü0şn$˜YeF£C#[Fñ,ŸÏ/ĤÓô~6]Lô߆ßoE])NÍ!5œ–Ĝˆş’žŠ5Üa wà5§ŠWYxÒ2âRPÇLËàcʈ#xLĥġ­ÊèÈ;M9V:áú‘“{ĝ)ۖކÂHŞM{ÉߓŬˆPb³Âuâ$%6rŸ9ä@ÄIkïĝ\Sgŝ_Ä i.£ž[<<`ÎDv.5RŠl8†w‚‚‚…FĈ(œ o`P8A.§Ċb4)&ĊġúĠ ÎÉ]¸™ŽéÊG,´Q˘ŒDW9ŭ°ŻÒ"@V¤) òÊ´D6Ŭ(Ċ“FQThkxW;& hO.GExÀR{I.ʙIÄX‘ċ<7o4YL›7œÌòĊl’\ġdQĊJl-geEUËYêr² QàÏ|Ö6p•[g?0Tû/u¨ïúpH0³ĊK2Q…Bċ“äËͲ9uX§80éË}ÈG¸ˆ|üù˜ ·yq½¸ cm7ċ0„È€Ŝ$8ŞŒçġ Zŭ*‘ ³ĴFEĵaA| $°œ­!WÔ¨^Ġ€{‘Ïš—–LŻêwĵäÒùbT,ĉ$OеĜ6lïDg‘9\°kHK´S 5Ĥ@wX8ÍÖ_ì„J^/aOxÊY4B‘Êï÷ıñh]lñQŒ`ħF°#uŬğ}%”:êu‘rœËKKldP"CŸ¸í}1NId)×[÷Ž˙Öà™ rWyI‡Ĉ‘²)OK´ƒ#ФOuuè J?áĤ<6xŒö'Öwâö'áú ڟĜÒ£aM {Ĵ-‰Gjͨríd]Çi‰œÇ"@zÔCˆĦwĈLƒmïĈw BG߂½d8Y]÷-ĜGĠ 6qr3ŞÉœ1×ÙµxlmĴÚ§kqġ˜ z×ĉ×ažŜíŬ³ _˙ò˘é7,™\5Ÿ}jYŞÙµŬŒzŸù}~9ù,oìrRŒîÖOzĠ˙ĴÍħŸ.wĥ:’É‚ĊI‰ĵdá˜_ö´…Ŝ݉$>!GĈ‘Sƒñn×OĈ‘şâú"13oi|O"çñ‚éÒgïC>4ñ¨.çÓçf᧤ĜÔ³·?½ŝáÙcüW Ĥlûż‹G°ÑNñx$-ÑWŒÓԋCy¤C}ßbèĥ-êż“GJhŬhB˘½9Ò’€%ĴÍá€ÖaĦwŒRYñ§´Ĝà1-Öwb@K¸~@‹-b'´ĜÔ³+ò÷¤ì#…kèI„nŻöN\ƒïĵ<9Û×Òí²ċXdêÌĦ¸ÖĦwͲòÄŻ×^~ŭ›{ôÈ:îy˘CŝxĈ}è-Ŭ.óß/§ËĤ-d쁃>áݳÍ^gËÜôÌ#;zgl–pïŜùĜç}*}ŜǕàr ‘–ĜH>檔Ñaà4Ç}<ü“Ġvc%û"}ĝÁÓİ–ĉSûyMµmY|Ô-””kië>ġĦjÄ!›ü´ÄFqa¨=x“ßĦ/ˆq~ééqêg­¤ëŝÓÖmş”ÀĈe: œ2½M—478NQ#œş,6xŒ,Öwâ,áú ş²ĜÒq -œĤ;ĞZš›ƒżàÌ ċ:” h;$$:;W´žäżq~{Qñ³ôd™/ùíóúW8gÉË3…ܵ ôÙYÉá(²Qñï´"4[²à¨7žĵYL?”êĵv$żŭTÖ ž*äxMşŻ_…‹+ß,냨pÁä×Éul£”‘TäŸĤ×|Vs‰ D£ĉe~1[ŽfĦúuG>5żzbŸŻuƒïÙŞğˆc˘55ĞĈáŸ:l-“ĵ"Z ~µV?ŝVtàendstream endobj 585 0 obj << /Filter /FlateDecode /Length 3285 >> stream xœ½[én[7ĉ§Ñ‡¸è +´f¸/ú§mfm£ó#)ZYĥĠjq$9M€y–y½yùÎċ]HYRdY*ZÀCžċ; İ·g˘àô_ów4={öR[Ü,ÏŜžkX²pÂZĤea¸RLĜB8ÏĊ˘*ŝ]ÌÎ8 K‹›=Vœ]ŸŭP“VL+š§XP4t!ĵb<薲fÁcôwláLñ·}ÈżyNŜž‰ú`Eóg4-şÀá¤7E`ÁJ[\\ŸĊS‹Âxĉ•ô…“’‹‹éÙëòσsÁ5&‡òµĝipn¤aœËR ~şĝ'ÉɚÂħ œ"Rç’iĵ.ÎcÒZ_\\ˆdB0!–sθPċĊm5À/Ħ|7ĜÀW'÷ġxÀ¸)§Ġjızݏ)oçWĴÛS€}cqxbü´G–Óĥ… †IċèġVżn=5‰Í•-yWóQ/ڗäŽçÒ…Ż‰e0µ•ĠûĠb8Z-û‘áĴ9 ċ‹ÙŭôǁtHUŝ›j9ZŒïVó†i7UBjÊIó߃ÖäCC,ˆr>ĞÚ/ĥ.nî§ĠlĠ P–óëö³+ÏŞ÷Ÿ}Ñ˙ë/Ĝŭ²Z`ˆÄÚYe Fia„ÒËx*pÓmùËl8­>kİèrzżìv ċeT_ıĵĞFOŞĞ~·Ġ<ŝËĝ ,ŽŻ?´Rċï·Ñm;ї£ùlıĈcÈ\9nĊ‡ċWĠrĵ¨SxqÑĝQôk”cÜġ :uQ§-<äfı‹bžfĈ÷.,yìCµ˜Dâ;vxUïpˆ‡Z˜y0µrÊĠ=Œe<œ°ïĞĊr>#Ğ­Ċ™ÜhXS– °À‹ĊvHÖmr0/}È6üKżĊ£!Fh@‹Èé} +ĝpW™u·…Žĥ°8"`Á2ÀË>dpì4ó2ßİC%%YĞÉh)‚)í`xqË$ω‹§0ĞœÄĉÌ:‚‰ƒŠyëŜ<â…;bèök*ĵ£ĜÇP‡Ĝh?Cw‚w’xmx?+àm@£…à+ñf×Zàcˆ†kÍŭîĞüëĊ&ä3üwöGí+rÁbžh²ŒG"ߎ—­l˙äK7<òôNŒ|[X?ò; ùRš)òÄŝnL·˘ìĉËd7%87ġ&Hħ8}@šƒ\ġ€ŬŒdʸl·O˙ŝŬ·/>}Š´Ĥ9•›ĠFè5ˆŝs¤3; wûŠ5„^3ûXäŬAŭ è`@Ü<Ĵ\žŒĵ¤Ĥ¸+Îeƒğ[WĴIUHϤ;w·ïÉÂ+• î&wz§ĈŬÍĴŸw“Ž†ğ ÍSn²UĴEż‡°™2ù¸ħh˜çNĈu ;:~ڜT&ċòf>ż™Tϟß-ĉĞùċŭġóçµ×äĥĦ#xaÊp‰s2 2̚ġ‹A@v$9İŝ›š´ ”IÖĴìÄŭì€ çžp¸ŻÔUšÜ ×6„ċn3‚ŻËĴ–}'vuÛĥeıizœËxU}2ĞÚĤgċuì6}?,mí5ӆÁŜB4JÛSڂ'µM5Íş[&˙~AœyhXÂĦ€Ó3è\3ŜL€~˜U¨Z€Uüö#Ä<òHšµ e,Hı fٔ# µ[×ò\NĉĞÁ9Hod‡cdNY€=rŒ„•n$a;–p–ŝ&ÇjF²cq§™éħ„SÈvK)êçk'ó$Ê2Kè)8Ó\Ĝ^”ŭa[Áa–aZ$‚kG2Áy$}N'‚,”Üî{G´)…Œİd-¸ëûÉäçmÒÓ‘„w6Isë G™Cùö~8˙)"$F`D'•i'‡Dʝ:™zàŻMĦħùèġ·}ŭšƒġûB„(ĥĊ´eà ï”.Éyè#We´İ(L "°)WùM‚Šq†s½\¸ŻAtÙÊ@”×1+sşğ›˘ÈÔ#ĠMFÖê˜XxèÓ}4Öd§CŞ‚·Kˆ^é%Fñ‰U—ŽĠ*@Ô … ÏÉÖá|şŭ^Ë_sN6j''kmGF¤=(èPîĤ@ŒÌo"àÌfY˘t…§T%l DN#E1 {ŬHÂ^wNI%ŻOÚ ä“àĈ¤“â@&şıġ>‡Äˆ‡ ^É‚$ç’ê2mëí™…İ â–Ü3E“lP—ûU˜[ˆj*ż}Jôuı¨V÷dŜuq§ÊÖ5üND˜š`â² Ĥ9¨ÄTò*Ġ–9ÊÒôĥ.~L_"4aÏÊ2ş•v^‡’m°’Nk½ŬôZë4É­€]ĤşmÖ=^·2)ˆd`Bè,˘S³ ùZ³ûĉĜ;5Û}]l4 IKĥköxq˘ŻĞDɔÛ|TɝúÖĠž*YÌB¨œ>PûAi‹ $!0›-ÔYĝy•·ìŽĦétZÓêšNˆîí™WĤ~(M£˘nj-†N„Ÿ÷Ê]7ŠÌ|Ĥ˙¸HVm(1"–ßt™†K6şÒ[š˜ä£T¨‡ÔĠ;­Ħß1Zƒ>†5¤Ç 34ÙürԔ>d–r·¨–Ġl5LÒ ¤‰†‡½ġ<֍íä*Ísébž8ÍUz€k6 *]´ñÒ`ŝjµÏnŽíżÉµĈÌ14Ö=ıĈ:Ż~S.°´‡ËMĊŻĤîÒ7IévŻĜTĦ´ŬÁòÍ ïštÑ)?³˜Ì>lWa­YÌáoİŠĴáòÛjıŜ“=jħǰ‘žè.Œ$OíÇŜŽĤ<¨Á꧀ŬşÓÉş"Ó\ZÔvOÁ›ï”zt- i¨Ôsû–z²-ġö¨ô’ö"=úħµžQ5Ü>şÖÓ\ûĠz^½*”ššÀZ3DݽzĊ˙í£Wäoŭ£W !A iûœ=Š"ËSW²hß4È·>lŽŠoêÖ¤òY'ĤPġw@Òż[o2Gŭ3U×=êĵ_VɔĉAgŭ°WïÚǨ>äY_—Ô×>ŭğT™OŒH´×ğî)pvÓBOeƒ.7>˙^ Ĥŭ#.·ŻÈïŜP2\ĈïĜáĠ‘/…ÛË9ş†VAmĴ{}ñIÏê[žĉ›?p€ .²-ŸôĤ%”Ìèè@{ݽ…ġ#êş}q™îôäĦÂğ5]Ÿĉ@s=˙Tö%Xí¸ŭûĠ›É)™µıQl| ´kħbÏ߉l_ħ†BÚ!yìÏDvP?üYgw˙BDîġ ‘$TÊmĦ2ɋċGâ#Ĵ´½RÜÛè˜ôóSBRÁúŜcs8ù4ħÑ#˙÷·…dg{\Ü<;·FJDĊç½µ9"ÓĤüeŸ ¸…| ˆĈĥ8 [ @ĵŝ´È&wX+§Kߙk|‘"ğ[ĝ%*"}Âq‚à$ô÷aòј³pı}JòÔħ™TŻó-Ÿ›­ŻoËSz§ŠÍ¨³œÖÛX?flnÒ;=96c„tkş>Mlnž)g–zÜĜìé§\ÙO‰Í2h&sÉ4‘ı½/`SÇĞÊïâÜ R >âén;Wġ½lK­˙Ĝ’訵0 èµ6ò ‹ Ŭ67u·ĞĠŬòù³g£Ĝgԕ[œÎ=u˙Ŭbŝk5ZħùâĉÙŬp4ŠÎ–ż oŞ/_ÖMƒŻîŻ÷}|ĥ‰1 h6oĈĜ‹ĞĞj_>-ïĞĠŞš|ÑFbWŝu€r–ÊE}˙˙ßĵkBz:vĠ/xµš˙ÖÔòĴ&z†8û?È0˘endstream endobj 586 0 obj << /Type /XRef /Length 287 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 587 /ID [<63165dc345ab44a7bf06136b4a84bd7b>] >> stream xœí–½JP†ONİI[c$.BÁÒA\¤ğĞxŠ›ˆ?(‚`÷:x⠈ÎBA:‰Ž""A:Zh]]DkŜgÉEĝexĝxórÎ!y ñN—œKà§ó £Ñ\şÔÎĉħ ı1ĵ17Œı³Ûí̊Ŝ—YaÌ­hD²âeÙĴ0ĉV,<Ɋû³Â˜[ħ¸Şż‹t_—çĉĈâÈ­?w²9ž×{Ż‹˜Ü‚·bz%–7é쑷˜IÒ)ħp—1˜.ta~p÷Zôâ̐]:Ĵs*&obĝ Ğ$biÀ$•óyHr$F í?pž>còš‡äŭ3Ö˙…4wĊbrN: s™Żg¸Ĉj?Ì;âÏŞD3zšûó…;è endstream endobj startxref 180876 %%EOF RProtoBuf/vignettes/pdf/RProtoBuf-quickref.pdf0000644000176200001440000010027413617276206021117 0ustar liggesusers%PDF-1.5 %ż÷˘ŝ 1 0 obj << /Type /ObjStm /Length 2551 /Filter /FlateDecode /N 42 /First 316 >> stream xœÍZÛrÛ8}߯ÀÛ$•2A€÷İÙTù'²ÈÎ$ğSy %Xâ˜"’JìTÍżïi”H‰²eoĤvK– `w8}-P2›9̘ˤ29ĥd>ó„Íĉy‚…Ì÷$‹Xx 70`B ä8LHƒ *†.ŝl4˘§Ħâ£è˘‚GB‡ŝ1)l›‰ˆÉŭ%T ȑ‚9¤VJĉxŽÏ¤\[LşÌué!ıa„û°Ë~°,p…mĥ‹ç#ĉğ’LÇ@lBY ϑ,pÑ*z£pġXĦUĦ ç:›²…'bĦïÚ0WLŠ‹Y€ĉJ Ae ùß~cüT•ñ8.cXŠ™2ŝ~^ĤIĤ L˘İŸÇTêĈËû[Ċĝ>ú§zÂ^ż6"vçċTçìĊK´ä*.Äb/~•ĥ´ñĜ”ŽĜħŭ_lû—Ĥ=3ˆ/Ġgö=)§l ÙyÑüNŬ×ù¸02Oġĝ1qçıÏG òŽÏìxŞ‹²ċÉmÉ"Kèp1żúSJ#ï2)SEÚü}=ÏJ& 5Ĉ?!ê—f°Ġĝ›Ħf™.İ–†zae̚§zÔİfĞb.a#o_gʸ[ġ܏“xOßAž<‘¤çqŽžÍĴUĦçùf ‡wċñEI3‚u6íGšúÚġzċztĦJÈäçG…ş+!òġëö€şc!"ɋ’UóAŒ²¨”×TQ.ĉ†ŝ׿áaV踞kE|6OS²üŒÔ… tÌ(j Ġó~xÏnQ¸ÍuİÙu’Ş—ÏSġ)9ÏĠ·fµÂĦŠÇµĥħŞ`„ÍĊ3U {£î°£Ûà\ħ˜ÍTQ`ŜŸĞOlÔuô]¨<‰ÓäGK%¸c3Z‡ğJ²8żg#eÌs-’-j&§=ŭKks={Ȟżžk³Ù Ñ1èX•œä:QéĝÙp7Ğ“u§ġÀg ,ù}}*œ +–d×z!|ïvê|§ ôóSb·ËwĴÌçŞa%‹4Ä…2DÂßï]œœ~x58½ˆ³BĜ;{:l¤ÇI6aüS’ífE²ĵaÈcçÌ÷+6:¨ +,Z¤bú`Ë5„\;ÈÑUé˙”ŒË)‘l`èµú´Ë‹{66FìÓt]m[ŭ`fž/0É´Yûĉžôèê9ÂÔLĞWġvZD{1Ŭŭ² ˙bDK 0À&xûF%“iSĊU/ĝ?ĉçüòsĊŻyÂoxĈ5ÏyÉç/ÍÒ9;ÂĤùJI%êÌì5{‚éP_ŞĈ#xâ IŭgñLmZµìÔÉh7›'6vœ¤(°df†~àÎEİfżg£ö´–Gé"~ZƒÊç£Ëáгdv5/ x° ·ö½%Dä:B˘„`oß!üÓ?îê˙ôġ€’ĉÛôh—W0‰ >BR².0²šOĜFtŬk³¤…d´Ż$P™•t—J!Ŝ´Tóâĉ[Ï42ÍבFOžŸÍ£˙˙ùk~ 4ĥŭÖT~ğÏĝ!?‚÷žÂw/xÌŻĝU#Ĵ¤ŜpĉÑñZšĈ|¤g³ĜĝĥÊĈq1…‹_'|§ĈÓS>3Ŝ3Ċo9bÚDáú/Ô7•ñ"'J^~×|Îïĝ=˙Á¨\·yA"³¨yĦK ;QĠ"µ óğœP3í’6ıçƒĴ(5Ĵ€]¨ŸֈàŬùÁîÉÙ+šÍRċ{—;C=‹³-w(XS kŜXpBmI žì ‘ħëöÀé·Ó!nZQ{‚‡Ézp“„t—!\]†M“³ċ2€xĉHĴ/ÉÛŭ‹³Áe{ñ‡j2oss¨<ÄÍÒYYämğ?ӟ‰œš=in¨Üfhğ—Ÿ›¸ş‹Vb]b_SyÑÈéX\qs›Ëí|ŬfĠĤÜŜ;¤”ĉKít} ½Ż4,mڛçlğĥÒH5ĥIdñOcµ=Ú?áo“Ğ]òß+f‹s˘4êĴÍg_çqş¤3¤äSPVÂ˙lñ8"ÒT]—UİâǚèÖT7K*Ù}¤÷ï§=6çwi Ĥ5eïµÒàÊá6A[Ŝ#_ĜˆaÖM‘k/ÍÙ|vò"™´˘‘=÷ë\—j|•öğpr·tiTíÌól %#¤ ĈŻM@³Î,üÚY‰güŞĠ^DSÜñk“‹uüz“ƒm›ċÈàѝ†ô7>~8ĞĠʧÄÎzJ,×Rbüö~ŭ‚^)ÛÈŜäğvçú°·Żö^÷5Ùñ5ÑَàWħI­ÇÁx^gĜËŬ‰À[‰?ş[Ë"Óväj GíóĠŻ-6Ùk+”ë‡Â–¤=ĉ1şë<Û{w08ݵBg­ÊĠaZ vŜ:ìVól!ûòlŭ1ƒĤ„µ~ôßğÉç@ĝqBŽŭ \£ì‚ÑTğ)Cŭ+O•˙U8ìPïmEĴˆTYe!Ş‚@—÷Xr-Ġ09F}ĦÍÂ/ş +["4܄5P~:ıx{R+ ˙ûhÇYMùžÀŠNûg Ş-ïtkÂjgŭq™M‡ëòÖkŭ-F'+)ÀI‹ĴÂu>¤ÛDöíè \†ñÛíô ˆéÌsm£wWAĵ [ÛnôÎ)³ğH™wÍħÚ‡'Ícğĉ0˘şġbZ–·żr>NòKÇ*½šĞ²Tİ…ì9YÛÓ9˘ úÏ6‡}Ĥ"˜ÉU†töH0µ‚g~YçߑċcGȒqìÚIv³°…Ÿdlks=‹“ÌÊŻ’ll%š?ĊPḖ@Âĵ°4 ,;ò˙&K‹RߨôŜÒùä)FJ[X FJÏĥ(Q˙[l#N5<Ħ°&Zcíı9UDĵs5żFۓ&Ù E.–DàáIa9tBOĉ?ÙüIRNçWĈĉ6€ynFëŸc¸Xb ë…‚adèŝdGy ïÀL:ż'ˆ€™F7ñDŭsxNĥï=Ív`$ôĀ–1x–G/i8–ïFÛYŜŻF4•žS=ۜêgù·8Ġkì B,·[䅰Ä’=Có’ kĠéu•úxh("zk*cWvSv˜”MÙ£7Uêr@oİÔċˆŜPİÊĜtğ­…â€vúƒ„BeôÒÂôğâu²|bÑí-ˉĜjlÖ/ù? v–™endstream endobj 44 0 obj << /Subtype /XML /Type /Metadata /Length 1549 >> stream GPL Ghostscript 9.27 2020-02-07T07:22:31-06:00 2020-02-07T07:22:31-06:00 LaTeX with hyperref endstream endobj 45 0 obj << /Filter /FlateDecode /Length 4584 >> stream xœ½<ÛrÛȕUyäW°”­05„wôÎNĠĈğöìdíŒGÖndW "A‰c’ g3żħż˜ßÈ9ntƒ„(Z$]zvŸûµÑ$&˙ì˙ÉrpyEä$q˘9e)ƒ™˘Bh¸İ\ ËğÁ‡1‡ößd9|v“Ġ’X•Żgƒ* §@󔯗ƒ›èêuYÔ£1àa’&DDĊ³ŜĊ…Ž6³Ñ˜³4֚G?›Q"‘)%ÑfŽ£i˘˘ÉûјIkĤ˘Ğ|–—ùj’#' ~0)K¨îΛĉ£w×<żüÀ—hÈ·# 7„h“×u0Ĝ/Ż(À‰KB–ލˆò²šÎĦ>"šF™ Ħ°Xç‹|êĉ²¨’²èĊˆ%Q~k­—pDÜP`*ċië¤TEê[ï° •$àï‰a_ĝLTÌ@ì†óçżfËġ"w ¨h]6QD¤QQžĴßá _bOà‡€Ü“€ïRàĊr.D<–ù/p˘uB!Ŭ0c0k@ˆôzHSŬüçÈDkê1—2y>ü(”ŝpĝ7™ŽBĈߍQL …F;´âğĵ&/3LE‚ò&:WŝLşĊ¤XĜ'$žmf8ŬïGê‡ÏŠr™ĠFĐÎ4:ŬËÁġn˘êóŞÎ~µ!ö}ïĉóèb8èĊwf %`ävŜ:›ĵÏîr7šFġĤ.ÊyĥĝIħá;$żd³żv!$Ĵƒĵ Î;ŠdKȃ‹M—,²ŞZeËÜC ˙q:-óŞzVïĞê~èôäéÑè˙ÌP¨}Ŭ“˜DËüf^˘Û:}Tu9_ŬùɎĤF—MÄS° eŞuÓT4Ÿz èĥh²Ċ„äôd†y0ùj³ôÔ/Vùġçµc Ħ,ٕĊĞŸžŭĝòyŻM%ŭôêùcòĝËOW˙Ŭ;Ĉ2<îÁŭ†İïħÔħ¸ĞZäèϛċm^:rOè·ÖÜïrÔçĦ˘z¤\ûğ-ĝ˛i>Ë6‹ÚjÇ #ċw Ğ1½užĠ!ƒ½"Z^áñüZç+Ìu•DGkŬ 0 83&Z[ú€,†Ùh‡>¸ċPXlİdG§o÷êt×gwXŜrĝġÖŭNż”è*/?Î'ÑÏ'÷Ċ˙q˘×/GœìÍ­˙íÈsTĉġĤ\YÁêc€Ĝü· ;yµ@•ˆY˘lû˜gmÏA,Ĥy5)ç6ê7ÖUÙ@µ€Ĉgi &cAÙ ¸Ŝ0cĞl ƒĉl¤Ŭ²AŠ„AşüáĤt€zU§FÌPdÀ\¸€Mï3TÑT€¤‘2XA65éî”–UPĉaıB E˘‚u`żÂÒÜÜXV ^@} ‡~L KI:˜.Şb™Ï€ƒĜT&OçƒBáVÔċcqj]p'"=.Ĝ]<‰‡½ş˜n"ÓBğ8ôŭŬS/tÁ óïÊ ÎŞÍ×çQIûÌ*ñ˜vjrrœZh­B^ŝ¸şzŬàèhĉô ‚— W˙Qb’vŭħŒ2—hS˜ġ9Êuµ^’TE8Ÿ2ÙßW…mñħ8Ŭ(ı'A<<£› ˆYI¤>A¤"&}mċN~ĜƒáˆÖ’@‚˘ÊÈNĊôopYàdF°FBäÑ*˙tĵc…ßĥ-gÜT4ߞÑh‚:“]9vğ°î!tÉÉ#Ĥߏˆ˘ŬtYLŽÈp ˘jÚYäÓ˘!I%8#íF7°°Ó•˜¸ íà½p ĉ.üáŠù¤˜WG„AÊ•WŽPsi—wġ³HRB Á8À]ÌĴäšâŸ•yÏÊc .€.şüEçÍ!D@“ÑÈÚ+ˆóżĈ¸LšJiòƒÍ!‡Ĥ3†EmS’¤~*k–2›EZ£˘Ûù h $Eŭ[MŠĠ*Ÿ`Gӛ˘$Ħ?üJcŞ4zOŠzxF7EùqMŠJ•Œ9'‡ä(7ué³ǀJz1 PHÇşï‰›µ°Ž&Bbߙ$:5ĥ›˜Ğ}ĈĞÎq,ĥċÂï}‹2dŝ1vGD‹“*`ÒX=#>SNMôÌñ<â¨Î—k͉µ ;·Ö1Ç Àĵ- V6\á×Ĥ;PĤ-ÂĊÓ9#ߜ"ŝċ…?4Üàĥ²ƒ¨²ħá2°%:`ߢMtÜݍ^ƒ1cœ<èMúìW²|ô9ÚR ‚ÔÎèWs…ñé\!şÏnP„_U…Ġœ­ŽdÓÖĉ!D´Vzž²ĈúF€ WóĠÙ DH= D²yñéöˆ+@"dWpŜ? Ìğ@¨…ĉ*&>Ë⎠=™ûñ6s@§)äêÚÔ-áħ`{—)¸ĈŽ`ıƒu1PhĊ¸c牛Ġ¤î/’ƒĴŻĦÜĝŠëكqzˆċ,ı˘v,Y‡›¤Ĥú ĦĊ¸rž…ŻV#à”h^ˆn²(Şc`2Dt@îrpşÜײ˙ĦĊŬÊ~_w”óücî_€Ô÷íë4­³Ï‹"›‘òZñ…ŸŬĴ4çµëÑ) ;ÛY }šIô£‚Ú•Ş?˙Ï˗O'žC!‡{ˆBÚ{=c,fş Û<…Xİz6§<:a;Ì3³Û(Ï5Äb 聽)CrìŠÄœÊÖ͈P˜´£òÎ;U’ùŠ3™ùkì?‘ÁsٞħH’àZ×ıżĤ‰żĉÒ_+úœ`d=oŜ‘‘D`›ŒˆwéPİŭµbÁëê$à6 ŒdÁu@ürŠŭġĴ#÷z=¤Ÿê€ŝNġ¨ôÉAÒçÉĵˆŝkšwĉöÑÏYH?=Ï.5˜£_ckÉv_ÉêĵrħÑ|fŻ™Ŭ§‚ûK|ŞjÇŬ·çSĵ›ıC³ħ>o6AlO톌ıŭE¸OFRBš“™ <ñÑClÉoĥiV~9# £a‰ŠY{içaŜ"L‚o GWjßżÎĞWóWŞAó¸GG˧î4rHޝ~jA/nŭHDóşò7ŝ°kŞ1Wœħ¨Êë>6!ÂK¨ ŸŒĤFŝĠĝ-Ĉ܄¤=\b†J5[žÌ!gfv<1Òxi†—Â4Z-ƒŒ4f‚ğÀ-Üî7Ċ,f™ç‰4ĞYn|0Ĉ.láQTHݏ°e°¤½ĝ 4Ç[´$Ş=˘…ŻnìĦlĊ˘y>2‡ZS<:‹œ[7òì5œöÁ:1<´OÓ¨yßì͟³eĦžËҒÙà²^ÂYôİsx·a˜°´ïs§¸É"<î8fĜ˜AŒnc<…%İ5ŝĥ  3ğÈd@Pل?ÄxÌÁ°ÖւœYˆÔìYc‰ĥh+6ԟĉĝ£ĠDuIğ›|Uƒ]·Ú3ĝҗ™ßìÈì·İwJĠoËnĴËġ}ğ~J£*LID6ŭ8Ġħ$_äK /ôê•÷¸}^âêuG¨²™ °Ŭ~†Èñ€7Úñ¤0ÖĥˁäxÜÛ0 oĵmïsd?ħĝ@kv–CE?a„ħYL=´:³‡Ŭy9²ñêÂ|YĦ˙VùĜ>µħ£Y7v/L]Ԍ‰f;Ë™î ĉÌ/ʗL7G _Bó×ĵü”­7‘Ê8%Ĵ=IŻ#˜gÍ{,"0—ŭÛs€‹hm§֞tċ2{Çp0ĉ?ZT…WÇÒh‚Ÿċġäŝñ85k2X§ßĉù3PÙ'l:}\|8¨ ğ„ù…Ö1y˘ÁÜ$ LŜ=ùb“·%"IEğí²Ş{sE—żNÚğòĴV&uš“ 2ÚLêMÙOñ¤z‹ÄàŒÛm¤[Ċ“ûĴÌ&xÇV\eo½e§[Şq’ÏS0ÛϧËĵ5eµ˙6F—è|Ĵ] ‹7Í)íGƒuR7ñw›Fó\7…ĴÔÊìĉÎìc|„†Xe<ämT™#^Vġ0ĉÓ@IŞ;~ Ĉg·ËÍ[²šX×Ç7ë)˘ê10K)šaA‘t@Ñá˘äV‰ğ_­fu;ÌdĤ>Íâ[AşáÀ.úĵĈͰ\Ŭ™ ÊyP9Ú%(™ ĵöW^ƒ :Ó<¨9ĤïĈvç™ÏÀàXġÎ"c[°[T2Œ-ö‰iAÏI`šş“ƒŻŠÒé„r¨›fĤÁ#ñŻÈBù·¸ c)`,i>^lšİ1°˙ß­sK=ŠGġ]ÛG;mtqĠFshóÙf6žŻê²¸gè‰Fc‘ÄfıŞÛ>ŝéÍŸj_¸)½°€ÈûJ| jÖäAj°B×=o‚Ïı4‚Qĉs.ÂÏş„Ëp‡iG#)‹)ċâŜ˜şÏ#M­Ż'4ġEß@9‰ïŠâšÁö~R,/זĝñhĴÌ⚠JYd5céòsbĴž‰Ħél–żŻœŸöŭ¨~ù¨ hD°yRàèFRwóú~s;ÂÂ5•ĵ‚ŭ†VÜĉóvĉb—Ĥ‘jdj¤ ˜…Öá>)5f 0Ët8f ôxcNE“Ò~ç*.AàİÙfĈú/žâ—Ĵ.×٤ٝQë~ï…ôô\qä–ƒsgÀ=Üv½­ġç1ŭŬ2 Ħȃ”iL½cżÈoˍÛ“Hû+tŬ˙Ğ-q _%5ùïígïüˆŞa'˙˙Ċ†ÒĠ}PÂ' ċ‘ôσódendstream endobj 46 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1857 >> stream xœUT{T÷žaqfL(*“Ñuf­ÄGT Ú,ĈX"¨ĝA 1J‚àe}³ĞËcı˲ğĵaÖŒFcŽ‘¤µ1Óèžz@[-jMCOj^íÎŻ'vօäϜóûŭĉÜï~ßŭKS>MÓŝëÖ'Ĥĉ†‡-ŒÊËI÷܄ÉÓiYí#ÏPÁ̑ü‘7'Ì &E­˜żġı ŝà§?ߏĠ\L–NÁôI˜0™RÑôĞé9Żäċï)ÈÊÈ,Ò, [ĵpĦò]ŞÙGމMMËÎÓfgiRsÓ5ħĦëC5òôÊe–fn^fûŽÌÔ­&OĞÙ´#Y“”¨Y•—Ÿ8/t\wcŠ˘&çFċĴ*ÒïĈoLÈÊĤ¨8jO%Rsİ$j3µ’ŠĤb¨UT8µˆZLĊRë¨) _ʗʤĦ—e>Ħ>G}ž¨vİöŬċûí„ġ†˜­Lû+<í˙Ä'|Ġ^Œƒnp|‚j\†ê ~µ\Ñ+à –żŬçž˙eÊËùĊÊKÌ)SËv1‹É(1h˙ù²ġ%ŬâYĉL]ğîbï_9wı·(Y$ÇÙlÇscO Ĉߒ(ÂnÌ x„3ñŞ …Rad1ngɵÙŜw9\M² U$•£H^$ì`ĝ˘żàşF\#‘Hĵ!†AH8ÌÀ‰ ?r äÏBˆĈôşHžÇÀï˘Düċ >tÓ'šÙ¨VÉͨ0"rˆĵH"—/"ż!/Ea8†ßwc„HÔ Â2Ó ŝqgŝ)Xü’è˙„.ŠP“' ÓW1X…², =l8öäE µUĴì÷ •=^¨îQĦbYŭŜgĠ­–*€·9Ż:†Ç8s;+%çàçJo#³/ ĜÌ:Êì&‘¤1Ĥ²R“šlñ. drLÙċÙ°Ö;Ó.ĤôŬpnÔı/ôíùÔù)tBgÙɃ§vèŜ*Ĵ2[ÍĠÀÙÁf³Ĝüg*8*lċUżoÉlÒÖdÔj­Z˜!Ċ+c˘ct³a.ÌsÍs3ú;ŭc€çÓ\u•µlJŸtí ”a°Ŝ7é騒'ö`5;JÛËÚÌöCP••†ùşTà ÷;ŻKhxÈ6tAWW”H‹îz•Éñ*QÄ´‘Ñ Rħ3³ğŜü˘öhı,:mWZáçu§áŞĵ@OzSġԙ?²Oë¤1;Œ3%bd×d&ĴL,mêñâĜÓSÒÍjìü&ü½GÜċµe÷˜-é>PáŬAşÛSxÛ%êË/š9ĞıÎXn£QÜğëöÀ͂oŭĠvïÛŝŽ};ğ¤CTCTĠZŞĞjêŝ6¨5Uï­yŬµ³.82/4šĵB~;´çw|béü\:Ŝlħ@Ŭ·âAÔéPLP‚ŒÁAüryŻ {›×ŽòÒ³)ç_sä(%ß²iË6 I¸EâŜ‡ó ç/rÚ&cçXȈz@€½p(W_°ŻÈ\ÜlĝòÖ-ĝ }ßé0ğĵêYví·ħiˆ~¤D͉’jD œ?ݟ„ŠÄ:~ç|8Ú|\ÀbĝW×1D"RàjZ2M$ŝĜ„“ jŒ‹VjĞĤRKŠï Ê·•‡È<†¨FòqXÀmQĝ;ÒLNēD²–Äġ“h<ê< ĥSbwR{ĥµâ4ßa‚ĞĈ\u°Uн‡ü€—‚;˜„XX³×nş9ĠX_zà60tPd8•ÒZ Y˜…PÁÁ>s9IÜò`&â& Û‰?ñ½ĤĝͳxCCp’gï.™yB ËñügÍg'kd'¤ˆÄÄ?ŒS wTTħAÎ6փ ‚˙Ä´9á„DĉËZ!ŝ@™$’@Ôa ƒ\ûĥ5ŠÔĞgÔ)zôC6à#œC4žQ_ĊÍ?çW;ÒÇmH>Ì!,ñŝ’ìÂn6×ĥûĵ2Ž÷í­'<ƒ T‰ĠÓ_àD•\ê ÖĜH˘p÷T ĊY ġV+Ô·ëး‘ÙğĦ¨˜„iSñ_ŜÂĊŬêĊŝžmijnniÂ@²|ŞS§x¸^ĤÉxÏ_ç’Sœ˜uÜjaÜÏ úYñĠĞϽì7üží;b·[,Öj‹ŬjñóûwCƒrRÎV›ĠïġĥB,endstream endobj 47 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3267 >> stream xœWiTWşŞDK!†îrCAC4˘b‚£"Ğ+QšĤ:öFw³4‚a1.<ŒFHP7PĀJÄ4B"Š˜EI&:$Qc˘I ĉVÏ#sĉU1ɜù1g~ôĦê-wùî÷Ŭ[H('J"‘ ^¤Ñ%g˜cú/…´)âÚTa„DxÑIu.ÄFûUğUêK í³jèRAĉN!wgäîrĊAs‡Ĝ=탄ż î··Ub“•ü0~Ùëqŝ&Lœk0ZMšÔ4 ?yĈŒ|²•ĥ‡İ̚T=ïG2UZƒQ§Ò[ùX•Š·¤İxµFĞâç.ŽY½(’ıhİÒĞL -“‘ĴĠ(ùJoVùójƒ‰×öżJƒ>EcÑôĉ@~Ž™Wf£Jİ!—TÙJ•QܘÈU&Ĉl&ÏĵÇ̂šz‹*…·x^İÍHŬ“uµAoá&Ùבb*Ĉ`ĥ˜•&Ñ1aŭ1ZÒÑŻYCĥyƒšœL1(3ÄlžïY½™·¨²-˘ŸdŸ˘1µ +ñKLMGf>ġwïy“*UaJÑŞÌğ"*żçÇ˙!k…Ѩµ:î§žû×XÌ*­:°żÀ<ݰ™_À‹5ŝÓÊï%ú˙ŠFQ”żŜ0×nŠ0GZ2ÙÉVċœ•:5íuMìZ­nÒäWòĤ;Mĵ_ĝ2E-Ĥb¨1Ôj,ċGĊR¨Ôxjµœ VRsİx*Œ ¤¨p*‚Ф˘¨hj 5 ˘P İE”'5„ò˘VSŜ”ŽHuQj5˜ ĵ£\ÈñíÔcI´¤BÒáäâètÜùEç8çw\F¸,qİsy" “ĉKkig:ŜÏ gTÌ=֕}“}Ÿí0e@Ӏ›“]wı~ä6Ú-Ĉín½înÖCdÁMorxXüpŻĉ+B××@^{ŻžÎĉ“×;Žĵ1_†ï’•1à}3ĦñĈĊJ™W 1a)<ݤžĜĵ3´ px†–àpñĤàU~˜óÇ˙ŠgÊK°”ë91Ò/.|öĴ7ž<9–ÜĥÀa •œ†gû_„Ln•ġÚĤĜÏ'7a bq2ŠÇá|ĵĵ8l4 ì…×JċĜ. ŒYHް‘ßÁ˜úÉ÷àzá”5íĵ2kgvi KÂÄz„¸$—I¨ùb¨ñ$WÌ˙VLŜëéc‹[ × •q+ġœ<ġ|Ôħy(%è5‹Yp5pŸœ‰žpŭ§ŸZşoˆ#Ìà)éĝß3 NàŒn8Û~ùzícR.ÚÇKşÛ#j° ”ìôŭđk#^ ÁSqPl–s/s°„üf“_s`….~Oü3Ì‚gßŝßtÂIòWN{>¤„/€ĵż„½ž—Ż‘ñŠıŬÔtû½]Ċ›Ğd0Š)*و6Ħù(VĦ e½&=eġ‡3Ï\}.ş²ˆ>%>%k˙".JÓAqÓj'è'I 1½”`'lœ¸-@OéĈcIBÓ"°sj™ĥ*S^•½ğBĵç]Ÿ_ž2Ĝ7R²ĉêw”[eıeo•½u˜œĤ·a×,„`t}XÙX×X·˙jE7ҚŞqĝyï”ò‚h/{¤Îvĥë¨9DĉaݲÀP˜FbM'9)R$Ax‘ÍĜ^7%˜2ÒS×,M_Bbô”TbrÏCşp:WT^m-ËİPħ0’ĥBöxˆÈ)5_ĈY8Ĉàݰòѵúۗä{&Hż=àċ)<} ıÓOçÜL‹y<6"°˙žÖĴ¸_[óöÎÙ#&oKQqbĠ…e-r8óLnBˆÍÁħ5"N'† äò=fŝjEäb]ŬUüˆù>wğ]‹ĉ³³;eóÄŭJ:D._gĦz7gÚ·á=tˆ…Vœf_Â~ĜoÖBìY(ƒôŽKûöt#ĥí 5ĠZ¸.·Hž]€PD~l7o[ŠPb…ŞĈXğöLv ê@œ= oTĴca"g‚Ž{U™ĥJ_ÓxrŻírıĴ´aÇ;[+wúH§6Û$PATKq„§Oéâ„áj…k¤B߇{8D|rd>î‘_MÒŝLaívGÄ_dŽ-?cĠĊ=‚A0ŭ³ŒÏS/ÈĠ­ÑǢQJ0i–ħP΀+>ÇuŸ çĥêú“G… ­ĜÄ>Ĝ&d˘^]ú|ħ›à+Ċ4$öµK‹™ÍÌ UJ|~QÉvĞlS½ıĵx7ŞG'wìßġ~ċî}û:Ád÷òŝÀÇÄşTÁ=ĵ§|‰G6L}i$^€#Œ† ~ï+à*äĝÚn0.ClXRgïù]-ğëä•Gj+чè ħ2Œġ°Žlöp›ä6Jä£r0ĵïŞ”h8᪴ï*Ĝu8“ÁCûz°·#Ċ–gŠÚLÚt‘h„5˘dƒħĥÒĜ†ğ¤X*Ăd`tI˙ ìágÀ ŝ€'–y\N§µ­Ş‰"9pŝx0žşwÎñ8yCÜ5Í5ԅÎÔÔ·²ĜUĜßı"ş˙ĜrĞċWġŭ*Ş!“+)GÛÑÔVtnŭ‰ÔGAíŽûòD삣ñœïFÂK0Q÷ÓZ9–Ñ9I)ĤH‰ÖîÎ:²Ŝĥq˙–óìÖ\éíúĤ òu96CEÖ;™oĞY˘%BĤ {%ߊjşFÔÜJ*÷@yeñ–rY/“5­$ħĞ×L’Ï›xĞ/ x!êhÚßööç.Ö Öƒ³0‘ Ì(:-$á €=ñk8äkì>WNTµ_‡2óâW‡/OÛ۔/céEŝ¸îTZGÎBżéß}^rá"ƒßÁwBè8˙QĦщ]~ŝà“ëòç#QÄş‹¸\N‚îzFb2?n>}ċÈŝüŒJYıu[JcñÇ\D]Öu­öÀê÷V£´Ò‚gƒ ö’Ĥġ:i°%MİQdIœä`6}ġPú˘·PAñzyq6²˘|ı-£*…İiKEá{¨nĴŬ´+°ñv]S;ú]ÎjM;ŝĈħÄJ’v߉„W\ˆċhĉÚ³iOîžÜRÒ ´CNîşĵĴIˆ _KÒùŠ8ïÁW:Ĉ8hğ΅pǓ<‘‰cwBwI3Œ†6,ü"lPWîéÔĈĝĥW"8Ïġ›Gaé‡KaĵAŝs֏٠³(V=iìë§Ĝ(#C¸Oúu," ǀó×0˜%xÄ9Ĥ÷òĠÚjÔêsñl}ÏVċœí2GÓ.Ĉ•w8a4Ä"Èá̏€…RĤñJĝ@’OĦıˆWúS!5éż@{üsàóϘc912ğ˙7ÜĞŸ3]׎7vœ9lL’á>ÇʟŜ…!Lïü1™@ŝ]Ÿ_v˜ˆÊkÒB¤ÌL\ÊvġwhwĦŒHVTaŠĈ{7 Í[›“ĵ4{Â{î~ċ貓QŬŞ;¨]İ=ŬÑĜfğÀÁ°u_k.*G4@.ÇÑáĴŬêwu;g’^RôZaBgQ"52TċÏ;Rt}‡îìüj×áÊSGö7’jŠ I Pt\(äq}y¤Ĵ d2Ĥ‡&a˘ 1DñcÄ ´ä}‰b£(O·Ò{Nìµŭr }{ĵ }ςïK_c> stream xœcd`ab`ddpÎH,*I-r Ñ ÊÏM̉é˙fü!ôC†ığċGÏÏVY~'ـnĉn–y?Ú…Ç ~ç˙$ÀÀÄȝœ_PY”™žQ˘`hii XĴ˜§PšWPš”“Yœ‘š˘Pž_”­Tİà”YR\R”š˜Ğà™—Ĵ§à˜“£ÖWĴP”ZœZT–š˘§àœŸ—–™’šW’™˜£‡u+sbR2ƒƒ3ƒ Ĝ# , U eżŻâûÑßr0fŭ÷šußUĥ m}ü=ីpÍ÷GGEg²~W\Ï6Ħr6ë÷mìâ·)ŭ²÷+žÜ²HîÂ}ĥeÓOXÒÍqy~–|6ûï˜hŭÜneá5{ÂnÉ ×ìî>°Ô6 -Kd^RuV7Gdîš=WN-û¸IžïÇúî?d|w[5{>{ß;Ÿ2˙Y"ú›?5çĉ_ï"ì߃ß=ûî]Ĉúùoĝ¸ú’hùïkĜ˙şħüàa_3uċD Ġŭü-çï÷[Ĵ­˘ğ'hlPËħʛ7> stream xœV{Tg²ïĥ™îqT&#":ƒàE‘‡<APQT”7̈ĵ!bPÌ>ÔÄ+ 1ĈAE’ê˘Q5 şŒ: ƒ$£aWv5[=÷îŜo†$ğùžsϙsşğzêŞ_ĠŻ~ES£(šĤÇŻIRîÈʏQ)ĉ…Ċ%d™l‚-L%Leò°ÊpȐ'šJóġ™şċ­(1²b•EċñxkM€wĈb<ĊôŠÈ~ğÒòғ3í"Â6̞;×ùß×%K–ĜïÈû퍽\FR‚Ê~&ıɎKŬ•ĤŒSeŽ„bObɰWĜ›˘II˙ƒ‘˘(W•ï.ż´Ŭé+32³‚³Crbväí̏‹MH K O^Ÿ’İ\°ÇmÑRO/§Ù£œçÍwĦ¨µ”#JM§ÖQaT85‹ZOEP‘Ôj5—ÚHùR~TċOmĤ¨•T ċJQÁ”;ByPШ…”‚ZM-˘ÖP¨hJBM˘ì¨)”ŒMYRJj,%ĤĈQ)7&eAœ<¤'Ӆ´v”ë¨Ŭ£ÊŠYÂd3L-3h!·¸ bD!˘E×X1›Ìžf_péÜEŜ–_Ĉßä-í?:jtÁ觖––Ġ–]–Ccäc<Ǥ97[ÙZıXùXEAXhBj!Ĵ+QmŬÙíŬ ‡zl$î*¤’/½PÏIşŝyĞ³Ż­~§B†˙Ġ#Ĝsş[3½6)}£e’?÷sbƒ ÒÂa-ìÑZ?Öcŭ½Dx<´lşqâb=/yS{A}óödÔż³i~-/ÚjÎ7?œŒšrâŠ;żé³ÄFVHaq7QġÓıU9Ÿ*ÑN[ş;'=Wu`ùSî“ÂaÈá˘s…'3ˆç“™Ÿ¤$LF‰ï¤defe( ·"ž$”Ù-8wÓµ:hÒ1pZ¨•âYnĜû÷;Àl˜5| Ĝ5ž+/ġ–¸ċ'âqëĵ\ĉ‡uƒĴokôrħ!>S+ jékzĈ0G@Rx¸h°š–FĴ öKpDĜaĞşéŝ·ÖŭöÁJôêç“ÁÏe‹6íKÚ£R]äE˘žá<„ÀÚ~à`Ú7-yğÎÉϤKŭ8Â*VİÁO#ÌÑX7›żĦ³‘ 6c•´ŞĜ+íˆğç@ƒ'ĝ/„QX.—ĵñGa)ħĞùÇŜä+¤?Ŭ]Š'à1k–.KŬ×=q0îΓ~ù:§Ğtp³‡ŠˆgCŝŠ.ĥ%ôÜJ›Ì‹°/öîsY×ġŞÛċ¸†3 žÒç·=ħ5ĥZçéî²ĉ)ˆaì=íOr1ô‘fÉUż§ĥî áÚH::LrÏÔ)§9ôèDêŞ§?şSÊ?$u ”ÚE )›½xIÇKN,RCĞ ´ô€žUL CZ<‚½ÖX0ĴÔ³bბú5è`żŽBħ´äwXŻx™bΒúXŻ”krïTf£8Û¨¨dß­qċ'³e{½{ì½:Ŝ=ŒÇĥ݃İğI½­Cšm—OË=O~Ĥ:‰êlŻ]iPĞZP&†šÌ.aN;ŭĴ‡#$“…0}1žîĝ½ÑžĴUĥŞĠ?<+ëä ?Ĝ[ò6âö•ĠÉ÷qĤë˘ÔÖ­=p¸Ç瑍D/dO” ‹ñuÎ><À#8ĉÒ}™À-6:q­á—IôŬ¨ñLcïˑŻ"µ!@MżzÁ@¤A)7Ĵ|aJÛ - &B´P!šÇb'£ĥĵÈ-(Œ"2ƒƒš>ŝvôúÈYc‡Ö½›œŸž·+)?ñħ Ïä ÎĞ8lİñ yüĴeÂÂÓĝ˙‰0ßìßÑè<]pÍ`gíɍ Îä3/Ĝ!Áċ£‹h$ËŬt½ÊI÷|Ñ(Ŭ_ü>zñŞ·UÉá§ĵŽËYħ‰²Œ´}Êâ |/{äğ ĠÄ?ŞßµIžĊĦÄì=ÁEĜrOŜû){פ§nAĵsÛÚ_ښ*›ż‘}Y•ÑŒŽ£òƒgŽx&JÑ˘üô̤ÔoG!>$Ĥİîìóry˙'Ÿ>[nĉĥİŸÁ[M7÷ÀMÓL0V>zÀ]ZÓ¤ê"— €|Á{á,óۘ+‡jfâ İ~„(Ğ—.ĝK>À*­á-‚Ë$Òx†ÑO&X¸ħ`ĴLYĵ7>· ك ĉĉ}¸ûżAĠGO~VuâĜÉÏêĦÀ žô{Ó֐ŽM!éû7 żÌİNhTTû’ĥĉ‚-ÍĵìÁ&<~o•Éħ‹ĥÇĝ#Ŝeŭ#6͚;Żì-3…„şq-Ĵ%í|á*‹ÛŒV"Áğ k8ĝN+úO$~#7b1>Ċ&6…Ÿ5Ô)n˜Ĉž8@‡i˜öġ3­Wċ+r8_ˆ‘rOÀc'·ĝŜÓċĉÁ AíàÑM e°WŠžĵ{mÏĊ¤>ϛ³‰ğ™óH>ĜçÇi0 Ĵzځ­ 9dܒ„"ÑÖSğäœ;pä&°]zd›û½ˆ×Ŝ\XŒŠKŠċĉžˆoğ.şŸíc’™‡–=Żŝü‘C¨ä„ĴƒË=\Xšxïèm>r·€ÀN–a‹ÎĴ/j¨×ÂQ-ŭ£ž2 €oÇŜFW_<ċ҉ô€‡İKğñtn6ÁÎŽB$÷ĵi³§gäf·‘YĜ Ì%ŞÖAc7#, !,çbŬXD²³uĊ<ö^Xpy“üâĥ[ğ[PúúlCŸĈ!˙ŭÛ³UYİÛó6˘8”T–ùyîħ˘OßĞá˙Äuê…qHƒœŝŞŝÒµcmĈñB‡sWKš–csX‹=Ĵä™AiħÈĦ—%u! 9¤Ħ;ġ­g½‰´g÷àeN§%x’[CĝÏérŜüSF}< ³EħÙ;S³T9хĦhŠ8‘XŸöĊ;çKŻ’]T­zçġÀŜ`}Żn¨mĵXӊ6§3xU$÷S)gÑ-ŝak_ot.5E‰U]†²7JĈ´²ı ùù?@¨4_ĉϕXRŽĝ—ĈrcħĜĦ‡5kÓÒ)™Ħ˙4ĜIĦHkìX†íô#cĜ4œï.fb”İ8ÛÙ§O ׉ŝÁâdĝ™¨y°ÈžĊé8]d†Êt ½—gr`ѰҌΈU˜2>2(EN,ŜjĈɰh dž•"ħááŻ4ÓÏFrÙĵ{7)Ş–“<úK˽öoÏÇɰÉ`zĵWlzĤr/"nΈɍ’ŜŠ9ˆPôî­ ^rùáŻї n€³†MÒ`´V½:Óa=Áp†9Zҝ ËúiËw²ĝëĦg ĵ,^6ÌĊa8:zŜìù[ŝ ‘Ùò%ĦqıağÌ+’é˙Ĵ¸ûß+LB:ĦžÌŒ%ŒpH'5ŽfŜù˘NwUó¤ż5ßè"ġü&£%ĉB̅ Ÿ!W”ğ6=p[ħßÏşöQġ'••—żjBü“ğa˓7+ä.°Ó˘íAEx­Êްĉo:Z8N²0Ş< ‹½ğ+ħS$.à_°!ç9lHâM“ĉ5tĵĤaÔk’_K_³B……éòïw y—B€6Yp‡Ôñn‡VîÍÙRÌÇqçŻöÉÁŠdö˜ÎżwÒB ü"5ĉıì ‹‘+لLHt=e @1 Û(pÂğŬÇ!Żĵ-Ĵ;8FÁ2ÜÁĞĝ_ßSFŻÀĉ>„ pEàĤ€Y`Żgûħc#!Y6ħ{örÇä˜y9jġ& ËZÛĦ„”Oá˙÷EûŻô$ô5³À­{ŭd}pàúkĜÏ@´Jñ~?Ĝ˙ûÂG`%†µ9Ÿ<‚Ŝ7ĵOÔÂÂ>>‘8³R¨Pjµ˘’ĠX>£ùÊêÙQĞħġżÊ!ĥendstream endobj 50 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6004 >> stream xœXTT×Ö0wFlÈxDï%ħŽ$ |ŝ Ìıċ#gÙ­ħħġüĉ{],qáBïg×.Ĵžcdŭ²J­†jr…xÓ)#žsċOÓ5¨ÁÛ)ـ6Ïş­H‚é Sħ9òx7O+/ç°§Ğ‘[–ċ­Ş,à̖í.Zħîêƒn¨nßéYâÀêœ%SÁ6íEÍĠŬê­ä²˙ËgcžˆuĤ"˘Ĝ•¸ d`.öBQ]]¨Ħ†}ĤŸ‹òbħ9l£G!Ċ‰ŽBşéğâÎÔ"?ĥ Á­ŭò`ˆçhé€Î˘ÂœQa21=ƒċ%LMâ‰ù›Ö‡;ı²íbé5ífĜÄĝ׸o‘S޵WÔ Äa! ˘Ö/Ż|›ëŬ’V†$ uU-z;žšà…F’› ù>‰y}V3:6„„—³Ž~y€a3 Ûğ€'Œ¤˙†‘d*-ŻŞ€SE¨ÌoŞ X!Ñ.0gPo`{x…Çŝ°üi{ö­-A]’ĤŽ–~Èġ“+ÙY3*DݵfN%–~Sš"2Ó2Yݚí(†x|EÜ ™ó‘ÒTî@dKĈÏħM{żJ@Û$ÁS6xÔ]P°iµ{KdHB|§àfˆPHGEyAK!{Ĉ÷<Ş%\Ĝĝĝ°>P.¨`˜ÂĤ¨‘ú˙9ï s0%Ċ*²²Ù,Wı’,G}DÁlñJÙßhıÈJoií,š/ÖBĤĦŝ}Gğé{ğkĠĴQBÜWƒ'Á=WŸ yy£.ϑ‡‡ÒħĦúħ ö—·gßdÇĈ~y¸QjXNR' 7줟Ġ]×AC5Âôëê䲁F)ñ.­Á[i›–öÎ[’è·µĥ³P/ŝóŠ?Žé ‚‡,œĦwàc˘lzosì'İmqí­ôF>ho\ìĈ$ï·½a’lz1²?Dç˘FԝÇßxĠîYö Ü⪋ ß(k•ċ¤\ċÊŞì÷ÉĞrŽ˘jT şÏw-¨óĤŞĞÌOĞ Œ£¤n|e§ĉlħq‘¨ Šñ—_bëѲàúèĈÊö}§Ù–ÜjT„$_ôßÀáEYĜ ½'‘&-½f˙ĵô:ÜGċ×Ĝ‡:­´VH "=igŒÏN´×ÊѽóHïË`Ĥ4xñÁE!ŸJœ‚XĵNÀdĜ(êŞC¤¸™¨ŭÚP1‡wá"Ġ‰+t‘ËM0ĝĦ_nT^ÑoÖDÂúˆ` N%ëçïa6E ĝ}ÜxxÌŒ1АAŻßÏ­™ê‰¨ħQĵ×3šh9BƒÇƒL‘‡Q” Ò큂ıŻ@rKDĦáoÏéĈe P ´UQĝ§šĞ˙$ŭˆVè’b-û75¸ê ˙U ÄFÜ1ĉ1ɳ$φGħĞp/˙Ĝ.^`¸ÚĦ~ıaÄĤ_WĴPUĞĝ*AZ@„Ŝ2bšŽ!§LĜ_ħ—ËÏ"ˆ£íx²…ln’_†‚9­Uq.ôzÄĊ´ŠË$föċ”ċ”  Á4Zót,qTTiJQ&yş•Ĉâ_,”Yy ˆüE,Š –{'…eÔXd +ŽFYtTˆGûîs×û>˙•ƒ÷ĝU¨ċçXĉ” zÉírC O„ĵ7˜ş¸"yB<’§°iq1{V"ÉĞ=8ÛŝŒ¨*ÏFy\m–2[™’ëל\‰$͵µÍ·' 7ĵ|ĥš‡ŝk ƒqí?Uˆ|ġâo_2.…2órq›†'šŬHû5šäˆ×X$x$¸§Ò[“Û“:íÀĠ"ı5ÈI6ê܈ڸ~ı8(\_'ïéĜLöäx8?ĵ(¸(ĝ*ö´ÈK, mCm¨°)Żô8Y Ôp+żQ˘ì÷Ħ˙›˜ż !™ùôŠ3¤i^ùiz*-Żñhp&…Q8e ÎIÓ°G“:ÑSuè‰ö@sŒĠge<ĉ1ÒN§ —­rĵúàĦêÊ­‹gĥ:H÷E#èìċoëB$d£²—Mğ‚5f€ïŽDrdiû‹eT”x?%}[ƒùrŻ:Ԉ,›Ğ•G9^Ù(6Š,ĉ2 Q >úŠïyO½ë4ß´%ĦhŜĊ3 œ këQ7Hì~Ä :u f³_&Á}âQ#·Ĉ3¸˜ıwé§è::ş£`™†XI*İŸ¨ĦŠÄ€/œgàXd ĥÇö‘!¸Ğ {X_ß ÇĜċE ZV%:'ğ†Ëç˘ı(˘>édâ9ô5şˆ.Ħ›'ÊÎĥ–~‰î˘öÄ2§’È9ĵé7`0)xvÄÂZŝ,óù·dáî÷ÙmS Úà9î›hTZ c"ôÁ@ƒfĈOÒ·>Sĥħı!uħuHRÓTŝ:ÚŞ M›ƒRˆ~ óĜö Äbùқ`aHµÁ`K4 şñä1É@[ŬWOe'@Ú+úÙÑĠ[µÉ"ê2,ülċӗÁù²ıJm˙ı=!á}~?‚i–·;GìJöfeĠ~%H2mıÍlﲀêp.%69…˘=u²œĴĠ{2íPœdöŻ óß.~zÌÚÒÒsİ(ĉĈ˘½(I“:ÊPÊCùEÍqí)íHòT}ëûŽ”–˜&´"§\ı/´.µœhĜšêFÛa´{·‹Ëž³g{v;ħżbžñXı{â{6G{ş:ŽžÍc/’R"@óġ`]x° XŬÂşżHÛòżi˙›Pе͉â³Qğİ+„ÏĝšgÌJ!@ùg³éY>qaèTïe´/‘Mè nĜ›+‘ŝÏıÎĥ³ŝnÉ·x ‹W˙wšÏó6Ŭˆ³[C%Ò'ġDğFu€Dú[@MkìAĞϛ/ġpxĵ`vy:LgWç5úñǝojĞú•9ĝZJNùż[ŻĠŜ}- ħQ'Ċ³HQ2}:‘&'òuLKDƒL!“5D´´44´°Ż#ÏüÜuĜw}÷ġQÒ>1¨#ċHàaÏSn%>…‘ù6U y;K|Ħ’ŜS§‚¸bzX›T•M’şĥ€‘bM# OIJcŽ8ĉ†‘|'XşxSĞwq"wtW[Úí˜âÌkħı¤yh½Ĵ¨qñ½u÷ĉċîE•!쎖½G³k²+³k}ġmf´}A}QY[{2@•t–”eÉÍïéë%ż_ƒÉé';žÜ{µŒÀrƒğ3ĵŽ'ĝ#OŒìŸD£XäêêL”Tü†³T·î-H€ŝĤxäë*ú7ÊñH£ñƒ·Ċ'éÏÏ^Zó%íĠĉ9"‚/Y\ÀdV²+ÚĉÎfċEt"O &ĦĝMë^Šĥò×mZr¸OüĉÖ# .°K{ï=y¤ĥ,ŜžĊ1â”`}tŬxkÑß,ќ³4’?§”ò™Bèuù6zMHïÁ7Òĥ¤ïÎÜn™Mg} œÓJ“Ğ(™ü“ïèô¤Ĝ)k]ĉáôé'w“î¨ÁP4é¤r *â”ôġŝ’\End²,"-KqcnÁYˆÈ;šç~GäG4ċÖçT_çK-Š[Ŝx›`ÒÈtg„h † 0 ›`ÑD<š¤ö Ż(0ÑK vìòO°Ç?üLaZäËÓa(=;!Ë1o‘’€²P¤$8/›ċx£jıĈ #~Vë5ım'ƒh€§" {T$çÌT™˙S İ‚ù¤bnb^-~ŽúğgÈw³°’ŒŜDĠjJ‚‡ËÄÒO(ô`u~~q!ÛvèDy/’|u|ċş%Ğxl­ì‘sJeAħ2'§T{Û&Emh”,Ñká=[Òzñ„z?´~qĤÛİÌÏ܇¤ûNä[ĝ`pb@4ë6ÙâċÎV€ċoĦ"Z•ħéi™I(E"패Šhm­i;paĥ"˙°+Ná²_Xé%ĵĝ†Ñı`ŬĤSü~ûìÓOÏŜŭúœŬ MLGò¤Ċ?îĠJÚÛ:|ñ]:­2h‹v·S_ôêšYÈ£׺.ó]¸MĊĤh‡$ùtR¨dó@XġË˚êÜҒÍáU$œ"4ûñ›…Âß`—ĊÄû¤¸ĉ²eĜ-'Ĵ(ħYÖ˘ÒRe£6÷ßÍk!²ƒé7ż€V‘jîkŜe’0u{"M˜‡cљ`r⣲c½l–.ž5‹(ß`˘"/?/UI¤q 1 Á!Ѝ Ž@ƒiU°•÷³q“Ë’E[U7ï_ûĝĉ•[œĞĜBy6QÓu‘0ç6ĵsĉ(|£c;˘]t‚7òòîF%ÜA:EVĈÔwä5ÊcK˙%úñÏ?Ŭ˘KşQ‡—ÂjF³Áíq4JÊ48r­• €+Xá+^Èt6x‡x·‡tt5·w°ùĝ1óYH÷Ÿ™oxıי,6Ċ/\—–—F’I\EtMŭó>iˆr+’ÏS>ág6îƒjŠ’ AXm`MqAy!޳Ü//‹#h'‘j{&Ĥ&!…%R”§fÀC`QY”H6Ż­h0ĥÜ{[Ċ; ùX~8Óí‰âYüœŽ÷$ " O—ÒÜoŠI—Jb1O'ùÄkôÌsşü0êÖlcù{5!ÙRMûçÌ Êä})Ĝâ;°èt§NUâȝŜ£§Ú òIÊ)‘§×†DÌÛ8g3ëÛ~ó‹ĦH"ː§Ĉ§“ŝnÎQÌ˘qhi¤|§ÇÒíînİéÉ$&SöE67Ü?˙àö£oĞ˘ş—,'UPOÇ/ŝ“ü“ˆû–i " %ijá>1Hòî”˙kĝNjŸ^ôt†z—s …‘EDu/X7 ħéµwÎüĜË.#ˆĊĥx,‰t ĵ Ż„!x4ĵóèŝù6Ι…ğœÜwx\¸ŭÍñ>˘^—i<8_ġğ)4Á§¨mšwQíÉż[‘ö‰ÔB͛˜xÒêÑŝ)İ~ܿ׊ŭ S°`§ ”Òi’^41ç½{Ü<‚ü½›Cş ”Ê6Cíċ“’ŽäZòtüü˜™&‚.¸3żŻĠëy;£=ùßVx²ÑĜîM„şÛzŜO°Kdñ•×ĦSÊÁ]h †îxRÂöK&ğĉ“o x_,úÛ]tt:ÏOòŜżg˘*˘S˘’3XüċżmRcQ6J³Œ¨‰Ğn,Ş.ÉgáËßm +‘XM*áW”À‡ċıJZeŞ̚l‘ ˆê,&ĝää)Ğr îjÈÉÍÏËİTġjŠú䑏Uendstream endobj 51 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2184 >> stream xœ]UyTSgayïĦ´*ψô{™ÑŞŒ PġŽŽb­(qİV ˜„%$!aIEAò=QP ĥÈ"‹ ‚t\FëL•£RyvĈ’ê´Ç­.uĤÎ÷z>ŝ˜ñL’“snrß]~÷ŝ~WB¸ı‰düÚp­Fğ69(0`ıV½Ûù[à+Ĥ¸S]!V ÖßWğO%Ĉ-_:5bûĵBOWèéviŠÇ×^¨lҌC[ÇÉfn…VgÒÇİb“eÎ żCdÑ&Ùò9²5ò˜mš!!N&×얭™>GĥN›&ŝ'›ĠÈ˘ħrµRĤUÊ6*ĥÈ˘"Wnˆ”…mXé7ç˙ 5 ‚`4Z~•!YŒ”[ĦŒˆS'N'ˆġDñ9IÌ$6QÄb9Jl#VЈ0"ˆXC„ëwb˘Ĝ?áFä×%ë%—\‚\z]gğĥğÍu3ğ½pWı_!ŭÈòj.uŸ.AÍ ĠGüJŜë‰cğCċĝÙáÍtemÒ6-għHCŝgSgHdL²Ñ˜ĠµĉÜ£ğ}CI£ĥ@:i`™Û­¸#V´ÍÊaû šK2ġ•'ıÖ6 gdcQùèÖİîrŭ&€)£Fôl4W²ÈĴ½Xħ‚<şÄK.;P‘UˆG)bü_bwìî? 3xâóÙÈı>Ž\*]°aeXĜ†;ĵ~ŭfï7ë?bĴĉ‘/Îµ1ċ@Üòf& YÎ`_ÈvEgê3ŬfÎ)W9 5PÉ2­ƒfħÍPbYsIgñ,sÍYżÀ ²==×iäòò4‘ ™4ï³uk„Şèdû¨Ë—şŻŜşĥ CYÈ+œU Y4˙…³„LÁCZŬ5oÛç›7ƒ#kÍ=d$³Ô¤)ˆeğ²Ál}¸#”4iÌ*§Ċ˘RÒâ„0‘3ħ3I2á‹?!˘ˆfB 6S]ÍÒĝ6a”ó#yá@޽Â^i5”biËÂÖ Ê £úiħ‹áĊ³ğPò £‹3ÚOsuĠàUm‹QägDì!ŝeÜIĤpI§Ïpµ60<ŞCĵ–÷şÍ£|Ŝ›‰˘Ñ$)|ƒ½mñ%3,““éÊĦfdĥĈš€Yz7%siEim>ĠĜĜ["ւ†Ĝ”ŭ9ûóĵ2š Í|—¤,Pü–ö4“íÌċ³á:.V²kKY_28PwT éh³ÁÀPFNÓZV ›nuOA½8—M˙êyğFçy šé@ì€Ğ°yKOÀùn³! ˜£ĥĉ¤Bz5ì:Á˘äO½kûGV›kcÄèÉ`Ċbjh³DŒŝÓÉYw÷î œììĵ2µ“á^Â{1Bİ0MzJ[˜ °™˘+ˆU֙ml;)Çf#oĵu L }²a*ÌJR`éä]ˆso'ĞëıÖÖ¤ÂdV|$U[W•ß(Òçî/Ö§Ÿ‡>ç`ÉáŠŜÚǓÛñGÇÓŞÌÇĦÏYXl)ğ†ú'7V· ÷¸ŠGŬĵ×q½u‚]ÚŞáLšÌ˘˘ŭÉİï˘â;Ĥ\WcŞŻl.;ÇĜTTÑÛ­(xY>ğ úÓÌŜażúĤ´ĦK‘ö|A›osMa+‹×ĵ’B#4ĈgLɞ89ÜïğQi?ĠùϓhRÉ;˘zŬq ÙŽ„×ŜÌŻB"-ħ\1ğÀò²ÓäŸAzÑê›?žŻ{ƒ&° ŭ3SQ}jĴÍ,óë½?mÇËÖáİžMG šÖòïJ0˘B’.²ˆKœtAúWÊ6<à, E 5Ġ°Z}Nëı€Š}ûìÊıgaM ° 5…ÏáC2<>1µfH²”³A =‚]'˙Ld§ĊĊ·7“%”‹&ré@%dCĴ Ġ‚V<‰T۔GĈ.~ŝXÊ2ExÂcż˙ö´WĠ6fĥŜß>ÒjçÚXĵ͓2§ĥD/^ùiTïÀÏ7ßĵÖıuë[Öxô# /ToKÉÉOÉi_~ħ_WĠçLŭ4j!kĞa'˘>}‰½ħ§ß <{ŭš„Ĥt?­c R|€Ĵĝöb×ßaĵœR>ŸÁ퍸öĞĝ_+\Ŝĝ¤²h[ĜD İœ]\ĉG¸#4%Šê2D˙ÊQu DȍĴtÒA礃[;ùíĊ;(Î<Ĥm‚´­ŜÒ̧ ĉ‘ž— Pïd03‰\sĈ~;°Ë{İNb™@ „2i£6!AŻW'Ôꛚjk›†L‹0%9OÌÛë†ÇŽ Ïy1ïÙŭCbÉw*Żô½şóŞÏ›éĴmÒfc‰ #u˘yÌÑ*öĈk@ş]÷•j n_²‰f~¨Î5r&_ġPġñÖ<‘h”ʘ?tQš÷”¨X´bzî·tĥ[ì‰XKšy0ġ¨ÜöKöğ޳­ê°WÚ;Ż §×Û£ş>ġ÷i’+÷žòOîıŠD].…=ş—ĝvEP ymY_)rrò²`TehĴi8vöû¨ğ˜: ì”ĠlW)Í#H¤0ħ'| \ ‡0‚iĴ˘T Ö̎ÒC‡Ëà şYkMŜ'Ïß|u1rϧ<·µrv+8IĦħĠ_?„·i|EI·–ïl„çà™Ó-—ËiôçAW)ÜİŒŽÌĤQu5³UwÒî-‚ËQpyq9ɏqŒcÜ6j== çĜn[1ç|•X‹yzŜ)ä¸RÑŞ:Âñü€ ŝóŜ°°endstream endobj 52 0 obj << /Filter /FlateDecode /Length 277 >> stream xœ]‘1n0 EwB7°ìĈf\Ò%C‹˘í™> stream xœ­VkTež™N[ĴŒ´3İÚËĥë½]íQ{µuÛrmYŠP —@饆 ÷ċJ€„ ܐ@Ħ´%[ ´-VWR·Uğ{vµêj÷¨ÇġœşßĴÓ;@·Ĉ=ößNɜùfÎ7ÏóĵÏóÎË@âbƒqßïöïçWòŸÚĵiŻ0żĵ´p~íYòaùH ı*PRòï˙ŽaBîŬŝÊŞ”œû­°Ä3@|,ˆ;÷H|v ­„ġ÷BŜ}Hƒq˜[İÜÁŻ’ J‹K„œ§7o~fÓ&úĵ•S lOĉìË/,KjÊJ9ù•Ç8û’÷'s%ôb)g=ż’SPT’_ÎċıœŒ˘,Nfú´tΞ´ƒ™)éżIŝ˙½Ĵñ…E5•ĊċEÉš§aUòĞBÑ:q~ĴX·¸¤´ĵâ19ˆ¤ İH:’‰b4 ‡‘íÈ$ىìBv#{×½È>d?r‰C eĦ˙†‘› K #]›û׸¸SÊĵŽŠÑ›Kö vzéŽŬËÒ–Ó Ĵ ğô³ê,ƒ|6KNÀÇYö†žÒ*£RfÀ•ÙâbÀô&g³§9ĜI¸şÇa8‡½W4v ŻPĈċâŠqnK (ĠbO^LLk— ôÛÜÁFÜĉm›ġÌmİĠŞŒf-ħ‹4*ْ6•/èh?ëĈ;>îı>xÉbxr`n /7ŸZĤÈ'ô2ƒˆħœÒ˜Ô†ßA #P?KZa€ġŜ™W¨ċÔ2j5E$Ïìúb˜×â{Ĵ,Šħ™Š{9KĝÖŒû2>šîH;:ż %˜…O.ìԁ?ÑĴíp„ġEÎû;sŽñ|\8™kU| à+ĞeÊC n‘’ĠtáÎnÏy?Ó"0˜Ì4)‚ZqKÁ,FU•€Ç7˘ŜĞ€ŠÈE߂‡-ĉÁ˘)À†Èpäği\K^ °ƒyş9?d~ —_iÍ͝Çċ“ tä_ǒ/Ys;CÛei 5W½É äl£€Zk\T×Óċ$šFZÂA€5uùz`6*ˆ=TÀ¨ Ġ5Eİ€Hï•àd_xptxÀ s§HoPkĞéwµ‡Ü·u›…$ xìr,İım‚c½L‹‹sòòóĤ;ƒN`µ{‰÷` óĈ"I>Mr‚IöV`6v‡˘UVİĞҘq.µ™ü³*×ר!fÖÉĵ÷`̇pE0ޘÏDَoR ġ¸A˘8(˜ÒÔĉ^|°Çî_`g÷J\*ŽŻ3GİWġÂbjÍ+€]Ş ¸ĈN„{¸€›ĉ “ (–x^­ ŬÓfÇ}{‚táízµÚXŻŻ%ŠVË3ÁĜ–İâ™Ħ!ÏÀ›x‹¤W8 Ĉ@o µ×?âžNŒF 3y˜ĵÂr.钷‹pZfêÊxԎ‡ÌġĤ:Ú —˘wÀö9qß9ïùös6—­É҄ŭ—e|=˘À'"&Ŝ CkD7V*“É%èíġ¸MkQ=&+¤FÍP„޵†GżÇSœmOGÒYîHÖ‡İĝŠy2]ĈvŜŭɈ· `­şZMƒY'%ûıëe‡s’ž}÷èÇ3j8JaŒÎÊĜ…ĠZÜ(U¤K&ièvşĴôxĥ.(lcwÊ=µµ\cÂˎóìt(d5µ"6NĤ~0ó‡ÓÍ̈́CŬ]pL€î“.OG¨u¸0j |ôĥ^@™4Gĉ ĥ°ŝ‘ñÇm\e ?_´8ĴNàdÏÛ 2Í ş…úT[$@Ċ^3›ú!m&|ĝ|†§İ˜ŬYŠ·G!óKwùD_QÊBĥ³ßςEÍcž{0ñ,ıOĊú–LŠv^ 0âÒí•T|1ġĜӀe>Ŭ1Ĝ42ĝ9ÑÜçNìBAŝĈ7¨•‚Ù·cÉô¨dÊJ™/+hĴĦ“ı„bR _w1ċJhÄÓ3D)ĤQ]öĊl9¨µV‹Íb£‹Ñ)ïT EċŻĈáÚw›òànĝkġssž¸>Ož„ŒëtkžhK/$˘\“żˆ4XQ“JjÀ‡ŞÊèÉ@mvyZ€Ġ=@$Ŝhê=Y’ä ïÏ,(ké`żt/…Q*ሞœŬ½N|? @`NQMN.uݚG$:ôrƒRš”*9óÍ)ĝ@çô\ŭ2Ş"Ŭ'¤êçıEmÄkS Ë*èO–˘ħ³ħġ¸ËO ŝçbۍĊǞ:zê£Ó\%­˘ ?>°†ÔÒN m\s†À Vq½X²ë(=>eۆÀbo% JfGKBŬ˙s³û ċÜzĠ(Z gïú°jê‡;3O;‰SAĉŒk†n!hĠ¸k­‹€êj wLw]X¤ ˜Ÿ­.­Ä >éé P*$µJSŻÔĤ"`˜ê İç˜5U˘½• tż8ƒçt+ŜóÍ(ş°nğLÄlTÂŬóÏhïöŒ*—·‰¨Í1  {ù`ïst7Ïġ‹á —áÚËy 3ÒK‡ÙĴá Ĉ3i¸–yuƒazĦŽà£'n:½ÀBëÑIjt˙=ĊfğۍPu)()nâšA­ef ê’……˘ĠıÉ@‰|ŞöžĈv·Ÿ„lĉ÷żü7”ž†éñ îeÍo´n܊şrŻnsÛ,èì²Èr|Y\?~)ˆ_öZĉğĊċˆż`ħ;ĴôÍâkŒżAŝ9ĈÊendstream endobj 54 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3012 >> stream xœV XWžœŒ€RcQëLŞ­U,V-mm­ˆ bU”˘˘˘yW€~I@,rb$¨hתŽ‹ĥµ[ÛjíK·şÛîžé^ûíN Öĥß&ߗ|÷ΝsÎŭ˙sŝsD„­ !‰žYîëЈSÌuġ—G$Ç'ZöfóEüs6ü$1Âi|ŭ/KGL"==&ùmë?9ˆ‘ƒíéçŬœ { ¤:BÀ3„X$ZëˆOOÜ™$›3kÖĞÂt™çLÙÒàhEŞ2z‹,8.LĥtĤïLÙ EްıE6M' ‘GDŽËá²Ġòu²5ĞĵŭWÉ|üWñ[5}ĉoZÁĈy*â•IÉ襤‡¤‡f„Éŭ""ŭ·ĴŠ™(}o‹ŸƒŸŒ#iÛûUs†BĜÎÁNô f1Ż€)Œv½)LıNĊ£ñ˜;3€òÎ,(•Îò]äċċ{ù››}}—/÷-wcÚÀ‰ÌààÌ–áÎü6‹­Qs~ÄĥC2 }·3<áƒÚ?Ä0lŽíÈ8Œ(ßûhvÁ¸Y>Ëĵ†ß8ÁôKèħž=~ŝÒYŸ×˜'‰XŻoŸ§ñ*ž”Ö§š˙ʚ€ÄDĈ$Ħû÷ĞÊ˘,²gĈ½ †ÁXaġO·>#I]ğv—Ñ„5ĉW#ŞŜPÛô2Ä]âÀ†sú”ƒ îY:‹')2ĉ7…šÂJĵµ>+ÊÑjħġŜíâèt5£‰GˆjGF=û‘D‡£’ĥo-(dBjCQ˘°{ò‘3Îĵ•ÍžÎğşRòX7ßPıf{ġûÚ8DÉQb:;GBoËBŠÖòÚbS9s2ê/h‘ûŜïZé<cŞĵlÌi[>ĈI÷ÇĦĵ„\UbCó!;"âċ˘êXH7‰Q¸ĥeħĜí3RŒr‹+fŜ\IVÜPÖ~ÓHL˜·\bhÛÛ\ß'­°/p~Ù|Hp3Ĵ|ƒx?Q2á$}ämÏ,ı;jjb`Żäéò•¸/Nµëôġ í·ËˆtžĴ^ɉ UHÖµ‚ŻX”ÍLá•?‘ş&áŠĊÉÁ°-”ŝô@9Ċş‚ƒƒ§† U§$'Şç“Äĵ†Ÿ,µÜŸÁ”5–:r >?Ώ¨³Ĥ…üq!7`‹żĴ”‘7 #Şl[ĝÒı´Àù„“j~ğ˜Ż°8ħ„‹íĴFŽ‘›pûˆ"²°>ĞWĠ’uz{u8’£÷3²Ö%ĥCU˜I‘ cÄ1ÒJ‘9ÄJ{ß(•ëwÑĝn´SĞ;US­Ġè)5İŜZeĴZż3Ğ Ġ˘:TÚqp³Ĉ5HÜ9ÎİÇ )oiüŜV Ùòĵâ*ä’K¤/ ÷x}²Iß = anµşRSĦAZD}Ŝš•ᵉĜ‘sö/ğ˙Ù SYÀYŒĦаgb>Áö)JAIai]™V”3Ñ/¤íà)°1ĥfìGˆ8Ñ rˆŸÒ ~:O‘é(ħ]¨ĤZĉOtâ7*S…Âċ7sNŬÒ‡2,&3L Ġi5ùlia=ŞA밋sÖĤäw  Ğ jC€x^rÖY,.+./G5ԗ·kRġlɎFáeáŸ‹óĠÛB… óòÒ3ĥ$$…–靋Z’uJDĊ§ĤDz´!´%¨÷zïĠ‹u ¸òĞkP*ьŻĜY^†jİáâü‰˘îŠù( ¤{3ÊR²³QR“š¨ıŜ½y²ċ_@7Ġì(ÚĊİ‹Pž&ΐQ(“~oĠ)h^쇙×ħİ0&·Üİa‡İĤ脚Ĝ“şJż2‰Äe¸GuUh7Ş03ĝ;2&§ œŬ(ICJ özĈı|ÍÊFù(g|x=ŞeàW²µ|wÛL;cá×i˙ΐe èwD…Üt xWĵ ‰âi˜fémxô7ÓÁĉT—ħħIH0Jëf†4ğÁ\)Ŭêżém%+¸[_sܧgO[ÍpÚ˜{ĦçĴàdêS˜—ġżııo…ÀÛX^Ë;I›×ĊoÎOˆdòJäuëċ²pĦ[tE¤!'ù9[PœVĦ͢èóıÁʸÀÀ ŻħháKœğusAŻl'Ğ^¸#n'EOñB=H[\ŞÙĊÖ¨Z³;uw`àf[NóV=ğ§BPM‰²6W(£^odħŻLş68(€ĦˉġA]§Oî:ÑÛ½9€ŭ7iˆWK ½$wê˘îΎ‡NİÙÈ[`‹Ŝ²â÷0{?˙Á¸KGr”2ïŭӞŠ[ĊE !œÓ—ĉ+ĉ:s ıJˆD&ëïJ÷Ǣüü8-4éÜÜm;"²Ñў>Tšż—Q3÷ĤTSôb# Ož›ĠüĜŽÁ‹vƒ&Á—á2…¤e„eƒĵY6°³l ĥ=zC XYL „^! ¨™ê҄Ù#”˘‹7#ÙYÓZ @ŭqGGXüü]ş)Ĝ6³BúÉÛ]ŝ›†ËĈe œ ˆyBçùàĦV<ġQÛǓ‡ġ]îĊ#‡­ f?KÏÂÏó{¤&16VİŒ5*M&£ÑÄ< ²9Ĝ(ïehğ,ĉ,cqWĉá¨6yGLéë{ĵޝċĦ-èĠsìh?HŞĉÄìbvĊ×ĦòĦ) èÁ1+#g[¤ –•››ÜIÍwŸßV–Ç n*ÈèT9ŸÍÑ“k2uñ(† ĜĵĈ#‹Ë~,`ŠôE{"†Ĉ.LK,S—ĥĤ¸½œ9ݎ Çż~z*‰‚y¤nxΰğy Äc†­ŻŸIà~ OŭÏï‹!‰ż$ŬŸP”ŞÈŽdtx³:U“dB›‘Ĉ¨ÖQ€&mST&%dniRÔÉÍhĵ iêÔú!uòMùV°ç!ÄċğVŠjrK vâ—ï)a:ú u– 2ì?Üqrżv·F‹J¨ÊĵZeÂp)Ŝ ÂĞħĴĥ’yÂV›Y ˙°Á„¨$UFvn‰ŞĴ€iOì•wÍoöÓ-AËьH< ;ÏJÏÉߎ2İìòŒşVŽCé1ĜsUt†wóħ‚İ9ÚÊà~27 Éڑ–…~²˘µ?&Š &ŠáĞ‹ÒÎèĈÈPEtdh‹˘­³ħ­*ç½ÊÁ]WĴ&9;³=cgğZá09Ĝ·7¨…f—zOñn‡v­V]\VëĠċĵ(‚ĝr/×endstream endobj 55 0 obj << /Type /XRef /Length 71 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Info 3 0 R /Root 2 0 R /Size 56 /ID [<89567a9d42daa1efae4c13747d67f583>] >> stream xœcb&F~ñ‰ Èc6ÄœëL lñ@o  ŽÙ@‚WH0§ žu@Bâà|$cw HBŽz W endstream endobj startxref 32614 %%EOF RProtoBuf/vignettes/pdf/RProtoBuf-paper.pdf0000644000176200001440000066363713617276206020436 0ustar liggesusers%PDF-1.5 %ż÷˘ŝ 1 0 obj << /Type /ObjStm /Length 4181 /Filter /FlateDecode /N 70 /First 574 >> stream xœĊ[YsÛ8~ß_·™İMH‚8ıµ5UÄÎ!{rìÔ<(2ms#K‰šIĉ×ï×Iñ’L9žÚÒA€f£ûë`Ì"&˜6L2ÉĤ˜ĉ1ÓÌhË ³œ3˒H³„q[Ĉ#†CŒ RˆŻ–ĝ8&ĝ“,Ž”b\ħX(:Éb+p4LÄî·Lë “ħÂĊˆI',ĉLZƒ›cĤ¸ÀyÁ”ÒœĊ’)+q$ş0XĴ™Ĥ~c’ ê 2’†Ħ #" 1£dÂ莋™U‰f Ŭs&$³Ö˘ÂSĦ‚Ħ’ƒÂpK˘İž°Äj‡çâÔâ#íÈF!AU b •a,žeÑFƒ1”ñX´ħÄ7‹3`¤àxQÁp˙’Nż=c/ÓĊ<ħ7óğċOèg‘Žól>;ç)n˙WĊ&2˜ñ<Ò?DÑe;ál|™~dfù-ğ%‹EzËŻÒoÎWKöèMîïŸħ·‹y>ŸÌ§lu}.–ÏĜ2]diö—›,ĉËċóûé8żž/îÉùüê!2éĠj’‚Ž“·gìäv̗“EvŸ³$ˆ \Ĵ>˙7äìG”/³|ŠŜFŽPñ/vt}M²t–³7ĝÙxv³sÙ!ħ˙˘NËflôSÉ߃ù 7AÉÂWžòW¨9M†u˙IäîŸÄĊĦÑ^TŬÁĝI„ ùŞ*ŞĈWŭ|sëŻBBüiST}Ĥ@ÇÄGïßJñRS=À,Çs/ñ …§WÙxŝC¨D`Eün_£ŠÖ£t9_-&èz;úšŸ\ä4WÜxc ÀH½Ä.ĉ“‹4GßáÛcP”~ÍÑéÏ?׉k2Œ ³Ċ2gŝq³1ÊEW+šĤËĵâ~ĝñÓ€°WêÀ@µgĞé”hMAĞKġqOR(S!§³ÜÉÍu5Í{³Ù<§é~„ç¸L(ĤĊú“ĥ8YH‚.™_´zJN[Sc´µâsE™~JÊdR£LE ĴâğòĵU²‡›ĉ)iVŞN³ŝš -Ġĵ‡fû”4ë¸FsğÑĵŬĜާ02oÏìòËĞ´l½­ĵeĵLŬ€áÇgûŸ^ŭóà|ŸTġh6™_e³~Èf{³eĥ>á´ĝàvĵ ƒî¨…Ú:”†)ᇴ۵á`ÁvîĈ'*xIŒ÷Cv•ß:tê¸ŝÑ.˙û>  û’vӍ3];Ĵœ­ ħÚé´Q$È:‘âdCŸŠ›„ÓâŽ0û"Rħ1ĉKä·Qç\8 $‘wäÏÀ•psċj9!!0h ó~˙"Ínn1Ï 7$FÑ$˙î‡áQĝ"< _†o·á(ĵ  Çáçp^…ix^Cv›Ĉù6…YĝßpŜ…³pŜ‡‹p.³ŻaÂ?~rpêĈ|G`úñt|³$èsŒß÷òúRç.[r AÛoŝòq6MáFòšîżßm19…›’Möf7À\Tϳċ2âĤÔñ%ĵÈÓğ÷íd}Òkò‚ŝ<#$ĝĠ‘É÷ŻöF—4ĜG8·kĦÔ%Y•(rŜEŬEË0QԀ Ӕ&Âl•!Şĵ::a·ú•mˏŝ8ç-A¨caŸĴ!żÛÂĊ%lÒ.¸q·H  GÄXşYn žkE3ĉŽpnüw"‡êî1¨Ž†ÊÄ׸NA HA Y^AK"˜Žîç$kĞ&ĝj {NĦ '…>œ…ç…N\Ô´.è|†˙ğğħÓ×é }³}˙H+µİ+ΗBufpĈĦ?sü߇y³ù•Wô´ô •ß.Ò4Ì˙œ“j…†_oá_TL65 FÏ]E ¤zT,yX^ĊZR?TÇ0NżŽuÔêÓ§—'G/1À¨ġştAĥj•íh•¨UÊ€‰Ÿm}ż²ODKàïq I8'ݨ ᎊŝ¨}ì|oŝ ÏÈ\ĝĝdX Œ°ĥd^P†Ñ5ĦıSş‡=ʸ{¨nÁŜ„¸”ï‘SHZVšV­"ğnup,­ĠKğCö¤Ïò(gw¸·=`KyŽH #ŭ\ß}Z¨šZ¨6háq‡Żœ&nèâûCĝ1üTê$üĦétĵA7ÓÙĠxyĤżŻĈÓEî ĞäWMÓëܗ{(0=XİÈż‡żŻU @až§WŸ§î޲âorµġyÒcÀ]ĉcË)ÑżÂż€7€8Ú 2òW9e.ˆñ-`àm`hêí`\àCqáĝĠùÑÉıžĦ> t¤ŬŻċmˆ€’ „I*n7úgC?ŠÒ;0”Êĉ›?’rOŠrT5O­”ÇLJg`ÈĊĊp§¸Ë¸J5 bˆÇĤ]>Z$­GŒW 5µT…Ëş‘1ĥÇäTǢÀ\w¤3‚œ§%$=ÇG ÇÙ3žŽÈ!q¨AŽĞVsˆñÀd|ïŜŜOWK(ónoMĞ6ĝ·‘żhÀp§aµˆĞ°ĉ„U1Œ‡Ü[Ħ#^oÎ^žż?Ċh—§MC\x5C,ğB%:B5Ô½µvğV<íÇċ\-jÂeTÈ;Ġ°J6ñ‘Zy]i/ĴFöı‘ÓgIyg½.‹HWu*—ġ˜Ü nĵcÍy’Ré˜/AQ‚F׋Ĥ´rWş~ŞjúİŞ.dO ›ĝBû­ÁĴŬ8!^›°2R#9îu$Ġ{!”ż {;2ZÒ,ÚÒܒŻÁ#ìHžœœyç ĈĊÙp“ĦğÂĴÚŒ‰(ÌÜöŠJ!|.sguĵMŭ#TW5”ñHIĈ"rĤ‚PôĦÀŜêf`O˜vÉwVŸp^\pÉ6~Ñ“‘}‘ƒìÀW{>†NıĜä#Ôâsѝ˙“GoŜ\6gżÌo$âZ"xGШl?<ìò‰·ZÖîU2˙eL°$OIâlà: ˆ°Ż›\ŝġĜ}Γ–£I°ŝdÓ6èÚwàġ²Ğ/6ÔÎCÏjèµĈM6¸[ŝb’ˆ>ÔŞej½·„j¨ËM6¸+µïŜĵ9#:´LNÚ<8×Ùtʜ|„KUÙZ›Ĝc°—•ó•9K•7s‰<‘›}-şH@Ġk•>Ízž[Ó0ĜÙRrĥ÷^ıÄċċċàIŬI]_^ E-'ëŝ?*Jësßû[÷ĵÛğ]éo ĵë)~´ĥhSz?Üû£›¸šRUےÛSùy<ù⟉ϸ’ÏPñKšW§QöÚÀz5ŸNNjuR¤Ì†ì–ĴܐĦ拖~Żò;e3V³ĞtħœÌéĥÄŻĠÊlĝĞŠ²Á˜˜6´T³ ݵÙl‚ӽb‰áaXq óž°XŻs~Ġ*ĵĴëE޳Z‡ĉÒ:ħĠ:ôˆĥ"@Żı ÜĤšĜ–2nqž2q €<œe³/%™n…q7‚’ACŽA\ë@"˘(òċF‰Ë‹@Fü))*ö?ĴIÒ6"Ŝ! ˆDħĜڀĝI ^a>â$ ĴŠ’TùÑÉŜĊùeÂì´L҅òö‘Œä°ġß&“m’.BŠċëĈW61É)?İw Ğ‚­‚èvƒğeNê´tĥ­t µ½|ñÁëÓCê^Ç µÔÒ´eĞġ‹ÜÇb˜†3äĞĠ|Ĵñ˜ĤÄ£ĉ#'FÑR‚éĝEÖçNŒ5ƒCöOG£Ô{RÏ8•âħ-`“QÇġ°Ñŝ=óĜPMàn‘ĝ´fìòGŝ~•Ç jHk!Ò{Üş BÔ¨1ĴŬĈí)[÷†n‹žE˘? ĞĴÎmN†²-ڕ×i×$nĴ(¸B-iDUüv[£!'ĉÎËëbż@Ĉ58Z^)½Šf2êaO˘ ĝ W !ġ²òÚA_âŻRĝÚ]ÛQ[êrùŬÛ :b6z{ññıÉP<êĤİdÜրÁi޵Û?ôÓǐ~ځ@÷lŸû^˙u@’˘7şĠ„ky<†zÉĞî’Ôô"ʋÔt ˜Ò ß ÎâXs†ċCš‡ÓĝëŽl½<9=<{ÙĦ²elµwNÙĦëê~ ÁÈna>â›ĉ~ÓDòMuŬ-ŝ~¸U÷j›â§sÈï)#öŝÍ(V_N²l’-&Ğğ"nß=0ï ÉohŸ|ş¨‡ĉdI§ér9ĜœöĉO„ÓNÂşŽ#Yó(\tV‹:ŠUWŬç|0Š&ñ.x×^ĵ~÷ñÜ'âï0ÑŬŭIÑP­ĉ›6Èŭ=Ÿŝñ”s%eu}ŬJı¨İ=J5´§[ş‹kíI›Ĥ8żîdˆŭŜĜŽuĦZıÑ­M˘3…% CQɊ½jäÍPy†"“òŭ€íP“EÒiDï•hïMy^ћYeY³rkÀHÇĴ\giÉÊ4öHӛ[e™R-ġñ‰ç´sÛoñû7ĥTÑ˘v•‹ë°KèïÓwÉʁ>·ÜĴQıı*ŭV—{ÑŜtCħûü—Y†ÁSS0Ñğ>Ħ‚ZÒzĝ@ħ0=O#ÛO#’Ĉ„ĝĥ)³óPW۞Ĉn{šúĉžÓZ‰ h˜ FòVbK¨$´Ĉè@Òî­z³NÙ$ ŬLO™kk˘¸A§I‹8ˆ˘NJ’s+]ş-Ĥ7߸ ,|fJ·%nñzU}zq&J•ám·Ż*†IQi\]ŭhç0Ż*@·R·èÍÀò–z³rúf­ëe‹áˆÒŞNmëÍéŝùèÌojmt7A:Öfp@¨i%YlÛğ@ëŜó~5X*_’Ş> stream GPL Ghostscript 9.27 R, Rcpp, Protocol Buffers, serialization, cross-platform 2020-02-07T07:22:33-06:00 2020-02-07T07:22:33-06:00 LaTeX with hyperref RProtoBuf: Efficient Cross-Language Data Serialization in RDirk Eddelbuettel, Murray Stokely, Jeroen Ooms endstream endobj 73 0 obj << /Type /ObjStm /Length 2733 /Filter /FlateDecode /N 70 /First 596 >> stream xœĊZYSÛÈ~żż˘“JE½wĞoMM„$e˜lS<(F€ĉËc‹L˜_ż£ĊÖbÀ§R,înġrĥ>ç;Gö† ĉ-“Ö1Šyό‹™™S†ù€–`ĝ•BK&•³,VX"×L:Ĵ “ħ,ĈVÁbcJÏbϔ2†Ċ1>bq`J£SÛɰeAáƒA3ċbÁ0 ɂe*hÍhSÚ1lݍÁü˜ig1˜ŽñO ÁŒ4 ‹ –ıÌ̗ ˸ò‘aĈp),3ħİÂĦáh9˜ÎĦ3+-­ Ìjv`ÖjHfĈ#ÉÑRjfcL”Ò0Xĉ¤‡°¤CƒÎ’r$z$jĉ,žK%˜s ’T’9OĞq!ĤGšyz%İ@‚a r½24‡4ċHŻsRĊ‹£}H!˘Ô€+RK¨„ĝҐ½÷XaĈjZ Ä݆8Ëċ$_Iš“A+š MiGû¨ÌIP M6¤ˆD’ĥœ R“ ˙ùí7Ĉwói‘N‹´,aa#ĈÓÓ,y–g˘‘ŬFF ĉ„ñ÷É ˜İfÒE~5§ Fğ=˙^ĵ8*’"-XNĜÇ(ËŜûy>>J ìÍßïí3~œ~/°éïż£y=Ki÷óŬ>mjĞ´)ĠĤ *|mzğ´…6mZ<Œ6³UÚtGnúr³ÛÍvhs?@Û³d‘–Ëù𣽏ûOvŽž}‚_áϧü4›ž3ŝ1›îLÙj`?›/ŠŬ‹dN·<~/]ŒçÙĴÈËĦ’Ž7I=‡\?şúZ”§ ²!:úcvZ\,@°$íê˙Ĥ?ÖÉ^ÏÚUß³z?|Ò0³“ˆœ9ßMf/Óìü˘é‚hà#ŝžĝŸòœüú1Ä%­zŞàùŝ$9_ÀġWl$˙O›T÷³IŠèaÜJao“ËtÔŠd’wĤç“sùaĥX@ä„JĝQ‘^~ XÓaKúüS͊Aäìòêiy›×¸ÍëOĝW>ĉ_‹"˧|Îĵh3í–áı)^ġĜF …×÷;Lû>ÓûŻŸż8Ó÷b™ÂÍ]A˜Š^œˆ”•lz5™ĵQ:ĤyÚıÈ !ŝGÎS{A8ÀEĉzÒ27Ùô Ħ;Ói^ܓ$ğ†$|@’”‘W“À‡–!1AyÈa›$ı>I8Ë{$I"”4¤CÀ RCĴ&ż&Ù&IG’²6˘ËŜ')ˆÈ‘˘’B è÷gŻ‘³â<ܲ„/ĦCŻ0T¨2 — äyäD ör3‚ŽGíxĴQ‰OŠôĴ "Ċe9³ İ j›İTê´ `¤z§mP=m µÚRùÓ6`2P"ÒA„#BwşYIN‡eĈ/—Ϛz҈*›Ħ9  hï bÛÀu VÁuLċۚĉ˜Òèş ½Ĝ6ù-°ZEµÖ8u[. ĥâoYÊŭ‚ÎF–Käé:Y(´ï­Ä ˆÙ)IÄIù%2B!¤ñOM}M0UÖ6ċtI8ŒLŬ’ÂMˆlĵá…Z“@Ŭf°mRl yJşn²Ñ-ĥìmğEaÙIä{¸NÓ;żÖ5‚] LmÇ}‚‚2Lx›ûâ:ÚêXçôm°ÎŻàÍ:£hk›Ŝ9HiÖè­ïJ 7–cĝ…r4ے#eP‘N”`÷ŽKtçĊóÑЃŬτ >wêÙ²‰=+ñ8ÑÛäjÓ"vY›˘˙}ĜLĊ lşKĜ|™MŻüòjRd³IğÚ,´ÜÊ˘,1Ó6]˜ìZ׺‚É=QlŠ“ĊM×MġL/ġ–jğÉW"ûġaÊê7WĤ%™íĊŻ ĵhÛjzŠm½ŭ`û·G_Ŝûòäe:ù–Ù8Ù0 l^tÌÎġ̎ŜÜmfxŞĴ@ŜôS=µI7ŭ‰ú˙Ç9Ï|‰Ĵ¨EĊ ½Ş‘ŝ> stream xœµZksÛ6ŭż“é„"â•étjÇI›nœzd'ÍnÇh ĥĜH˘‡¤œdŭž Š’?2J†â^œ{î 4O‹O4œj˜° –%ħÀĠ1e *fÚàwĊ™ÑWÁ§ĞÄs4Qá!RŒKŽÛ _ŽÛ Ïë˜Ĉ&Ĵĉ·VÑm&bş£9‚ӂ iñ¨–L(&L‚u´‚n¤œÖLĈœž2 ˘hˤH°혔¤†‰™T¤´–JBşLjAÉdĜ„I˜ ğ0 IOil[:R“%`p ¤ƒX˘%DĜ˜%ĈҀcà¸,q+[É)ĊĦ BħIeàƒ-i.Ħĵ5LK€˜NŬqL+Ž9 XKèÀ€ĉ8É´4'a† ˆ€NF`+ş$ŬQô¸Ċ@B1ç˜Q  cfŒ~0ƒħXUÀf6†Ş"–Xú)a6 +fehft†‰˜51=e™µ–Œĉ˜‹ajÁc  †{çt‡¨AFú·˙ġóÏltäˊŭÍ,¸6f£O˙ù/dEÄ;i¨ğ\Íç윍ŜûŻU c˜v’~Yħĉ[áo˜İÇgY5÷ìÙI‘Wù$Ÿ³Ġċ/Êçì—_‚¸Wù àÁ'X XĦü&+Ê*?Ì{—ĥż­µ²{µâÁ‰ĥzĤe6aĞ2½ò/Ùħ/iP²t9eS_NŠìşÊ[ÊîQ‰ˆŻŠkıtÖ²Ŝ.ó˘Ê–W v´•Á.‹|Á˘k‰]fs?€Hlä’]´Q̇ı6F*nc„°£Ŝ–S_°jĉÙ,ϧ/ÙiÂ&ó´,×@-|5˧J -"Š0]5Zm0³ٍIĞóŜêÊİÈaĜÎÎ\gġ£6^£-7˘{zĉÖq$˜ĜF[uŜï'ŭŸ}ğöl’ûb’ċˍVËe^•´qGšNħ‘ç¤ñ²ÂŞ%‚ï•c?ÍÒü+ĉĵ„@9ġ„Ìèäè ôĤžCQ IwĴj÷ÌDŸ NFœ÷ɐtɐ´qÖ<Ÿût9 C£Ùfq#e‹~°jLÒ_½6Cc éËìjé§,¸W~B‘!"ÔÔg`OLÒ£“Y52‹qÄBɇ,´Ú Ŭ~ö §n|ĴĈlšV)+Ğb5İVhmsĥ7˘·¨êvPT<)EmÜĤ¨ċĦ¨éTpdžaHQŬĝú&ŻÒ ŜŠè‹,g˙kĉĞÛÌŞûfċ.2ÎôÍŞyÛĴÍ·ÚĴZÜbÖ××ól²Vö(ƒM³‹U–UaÍıŸìKVÍĜqz=öÓĠÄï°­‹wĜV>İmoÛ։GĜV÷“‘:Ò;|µ›X™-1*aıħH'³lé™˙š†Û—yÁN!ŭ-Ì ê j hżÍ—ï-‘Ĉà+ĉIm"êÊ3‘D7,­ŒOàğH I3OWU€ù]ĥüÜ@BÔŭTê˘\$ ä€"íğV‹C|Lg흞èHİPxĊîû´ÚaŽN1Q;ĴÒħD }:hiHKŬşnĈ°ŠmĈ@-n‹y5K âlMï”u!ĠzĝœäSòbÑtR!çSŒĉöÖԝµżóúŝqŠÀÜ ]gvt^çĞíJ$Á³ü2ƒtohŞ“{p¸Ñ_Ù´šQŜIàÁjóĤŻ'üqüö˙ŝéĠñëOè1Û;‘ƒĜzĠmŸމ6Iµžäz:ò= ì†ŝot:('! @‹Wéġï>ğš­ża] ÏF×äàsY]dWWġ·‚ĤÑ×灕a‰° Ôx3OŻJ¨6úñúG·M&›KaZħê}ştŜV¨G&T½`ĉè8+İ” [b +ŽN+żĝŞĞöĤ[xŬÏáuÛıl$Ëôbt>×w.žDŽNÙ\9:`"’¨ßĵÌZû4ŜEGŠ|GtTÈÇDŜà÷"ċŭv[vY³£ì²OÛ=ÙN÷Ô$û¤ş­_ŝuzöñáOżûùŻPoĥQŠĦ#ÚVu[;"mybħòµ¸vÀh*Û]ŝY£ÓŝH”9ô?~ÀÇ;֟îÊf g×G *´_͈Vٌ7Ğ[è×Ü­ç“Ĉä›Íü~ĵĦÔ 8áë6€˙{ˆ¨ß ÔAlG@Óv]ǑĦ5o %*7Ħ„ï %£Okrü€>ï_żûóñ=è£ûôĦßNŸĉ|àôİmĉԆşïG‡ÒÎĥI$Ğïĥéĥ›HD‰ŭT „Áèn:Ñ8^?1¤–êRKŬ›ZŞO-ѧÖÒ?†ZßWÚvAˆ8Ş­DJ%žèç,!LÓ&³e)zcä$ÊԇgĴ°b“|¨ŭ wQ´ô=éçî”s/pîz³ĈEqt”ôĤ uğBя*9r¸œê=™=A³ċnÙüD麃Ñ%4Úvħ6SŻ‚nWBÑÊĜ‰2÷.Ħeż:íVMŬ]A›Vŭü°Ž­ÊÜxBĴ"2´‚Ħé%—uÊÊÀ1Ì#\ĦmcÁUx›ú£Ĵ<;jĉ: ìRI²ä*ñÑTÛT}"ïÓëßAġgŸô ƒ^,oĞ?zğ|˙êï ĴyÊFĈo7FO­g‹4›WùK?ŝ:ġYşŒòâêyXm7#$>í>ÁE*ûƒ9À Ö{ßä{İv§š³Şş~9M³âs]ŭübċĞÊÏ£IŬKŬĜ!ƒ ĈíĦ-Jè/.ÚñpÏĜÇĥÇġô5ÛôújÖWğƒ}úiÙçÚìkŜ˙ö-VE‘~ûµĴòÏ~ŝíĦ Ô: Ĥ"‰dĝsÎrŸ”_|‰Zz>ˆ{ZkPX$ˆÊ(ĝ´kÓ<žkH˙ñEîáÌù˘i­&ó³z²JkP`,! **cCÒy:dK@[ĞLGWY5[]DYŝ |•Bdĥ­ ĥÑ÷íŽ?ߖ%Ž2zÍà—äMׇká`ïĵ‘´İIv>@DZv÷tjĈ6÷PF,–eĥ½ÑoY÷t‹ġŽ·vËù?Äĥçüendstream endobj 214 0 obj << /Filter /FlateDecode /Length 7177 >> stream xœ½][sÇq~§]ú x\T';םɋˊUÈN,KŒ_â<,dàP@‰ÊŸO_ĉÒ=g—¤%ċ,ggzzúòġeÖ?œÍs6˙Ê/ïžŭ·ŜŬ<<›ÏnžŭÌżž•˙\Ŝ}ùGĝ3³Ĵ ŝìĊĞgüŞ93Ö‚9[Ĵ9ŸÏ^Ü=û÷éÛóù`sÎ.Oߜ_´ßïàħÉ6Ċ<Ċó—ĝÇ ,y™ž`”Ë.¸ez…ÏCÎiI˙ñâk$!J’;˜Dĵ¸‚5˙ñüÂç|ÓWĝ’ƒÉLž  ĉ9Îiş|sŽż£MÓ5 Ç>M÷çÎàg˜€$·Àff3ŭ“xİö9AÓQ<~ ÍäËŻ°Ìaşĝó9nd^˘YĤUüżŻ>ñżdğÌËtCTÙÙF$Ë-KÓ˜=K2–ĉ1ó²$ Çúñ! H°É9#kûsÈg#›˜˜'ßɍkÛƒO=1ˆ)YR°aşŬ³ÜŻïĵ÷rȑžfƒÛdÂc9àŝĵœ^RäÜÁ%WÏï[żÀY;qÖ°™,ް^uĉìÂeĜÑÂ/ŭĦìÏd7áñúär °Ufĥ³vúžIJpŞ$~žaŞéêêĈÇ<[ï_>ñóèbœËĵÌ{7Îğ&>¸Şx—ɨ7‡ ü MĈCZ œ‹q‡àSŞdO£[L™,gż„é%nÁX ŠvcÍìbšVä*0+‚€}C#ül §›JÊ³ħnúOœ,ÎsÊ81–ĵ™t)Ö =ċä)nñÙ¸êĵœ)z˙ß13ÊÑôÄú§èŸWÒ#ÛéCċxœ{#XNÊĦ8˜0DT.pÙŞcĝ@â=ÏÁ„MĥĤb£ĜúGäYŠ>$ä‰]'f:Ŝ `›äèRá6ü§çÈV ĞĜéŸË— eħ•q8|›YL¨˘áë"ÖşPLG²D°Çg0jbÇU]€!‘ğ—Ş•ħ¸}‡<ÍvÌÌGYr<{0òäßîÏۆ߰ŠĤ÷çÀ;g–Ŝ,fr½%›òœ” >žÛDz>bbHß+ŝÀ’Ù´³ñ&N+r½üsĵÜ=’°lh#P°£ ™É}ù˜ÖçLs\ é—M‡ĵĝşIĜ-mòÏÇVÖĉ÷bÇ7òĵoÙŭx`ĞĜġƒ>âŻ^<ûë3Grö#8?>Kàó!ş³ğgÁÚŝçí³ïv}%ÈG>äh£t•v˙”—3ÊC ì*_Uì Ş˙œĉx~j‹ĈÚż°Òg883­—Ehŭâä˜&€ "ĜÚ3”Ÿĉ\µ½nSP…Ğr@<"›ìbŽ,Kt(ĥ~ÁAzôŠ&Ò°èû`ĜX‡ÀêF8ŭc9Pƒ˘”KvŬ.iÉ{ x@Tïyjt¤ë}gÇUyŒS<^o‹§Alqu@żÑ€ÛrM-pÄÏâ@ßâ$hĵċêoQL‹˘š7­wr}ħĈŞÙ /ö%éNÁ̳ áä0Ŭ÷]݉-ž§ÍU+Ĵ…=d/ž^óû¤ŭHéÇÏ×|˜ b²7}G|€&Á̏äÊĜÀdbuŬ<ŒĦ-ÇG¤³8ÌK²yUĤ¸êçwGĤ0, Ŝ5DŠR9g<ÙJ­ Ù'W8 hĤ“‡á<ïÏÚ cC2Òñ)òR[O&HŠ$# *ıa7¸lĦ‚Ĥ½Œ‚VVĈï'1u•\ÄGÛó]µ­H˃V"T"pŻ›ĥû%é@ğᨑŝwiğîy߁ÍX•Î7]ÀӅf´˘TP÷jĈyŜ²ùVˆžò"öĴ ö$´ _•Ù",F8Ù2{%şËÇ,:È9Rš´ÈhA ;–L·”ÄĠyƒóÒË> Qĵ<'Ù~ËGˆ‡2­ˆáÁ2Häù[ÀżñˆŒĉë˙^~M䈝y0 Á_„ü+’”úĴiĠ‡ÁKŽU>sËÎM8„5şî<-Ú´WšäĜ/:ó.Ċcáwµ€µ=@=İ…mı,ĦĤVh³9WÄ^ĦÏğƒa.ş3–§ıvµ³ĠvFC6F 1UH€oa, 1Ĥ&ê/–"7h/sĈœÛ8Ù³”ş´-îîSšâ #L-Ĵ]Şĝ˘[|6ĵÑé¸ %…·M"Vi—ožêƒİg_£Lˆh§#§ÑN}Ħ0tÂKyXH$°_2éĈ³ŬE3 PŸ6Y<‚âíY0‰‡Uö)1†€eO}à|ĝ"ÈΝ¤C"N ŒCXĴkQÏG,HE`°ˆ“ÁwÖ§3…ĊKĜşžxzü³xQˆĠ½0Ñġ€.ÉF9@œß „m)SO[’9‰”ĝ ĜkĊ]‰(v›×Ġ}âÉóó,D‡9žĝÄbًO„0íG´ @‘r\œĊɢ@x]÷V(ópñ1o H™G}x˙‹Î`Ê^â$vÉà_âeâ‹Ŝ¤˘BŬ´iŸ­’AÈvtwShšÓ΀Ğm_U%ŽĈ™—£7âüöĵ­œr"éç“0ʐµ­˘ëÊğ’ñJÁŜu PíöìA}•b…˘ĞìhŬŽŝ£à™O‘0ŭF '­Ä )thİ–ò'#!)HúŞ­mÓĦfí 4ù D”=;೏zş Iĉ€ğ`Ĵ½  *nzq*—=‚İ,O ´9SÌvüM; =ˆÖ˜HŒö w„²ÁÌóšíKHH=()S‰ˆWĵLÈiÚ %ĜžíwTadFH !8†Z;èEˆHŞ…ç.˜y†hÁ,U°Ip½…3NÊ3 ÜK_;4żM˘}UwÔge•fkÓ$5A(< Zc6bĊB' _N€ĝky6قT›,ZÊ,oNÚâK/:ŠŻÚtL)fWċzà\öé$ĴÙ9‰°Áyš…”D:–ÍDÚmĞEċ¸ĞÒ'ÂÍÊéxŽiİàİÍ"äùfÇÀHËÙV†Ċɚ C>ÂÛ1Ä}'b9 ĥzb×4…T.‘PÑú§’Ħu^ĈA|²*×Síù܋=òìj(ĝş#îÓ<×I˘ï–Ċ(ÍN>>Ê ßv5“J!vµeù‘bmù÷ì:BePR`Ü`}µßeu(/2äŜÖLZ1’j8Ñä]ô…Nèġµ€]žsğ¤âZƒ˜Vì7²òÁ"DuMĦ—ç5×ñŭyˆe \ˆĴî¤ĈµŒFòŭg‰cB~u>ÚQy€ŭ üÌQ ÉȜÎÑäÙ§I&ÖEOk"lⴙĵŜQZeÊĞYjœÈcèOA…˙áRħû.…@1ġ—}Û|Ĥ&nPáÒWp°1t)ô“ħRċÁçbŬ¤‹™‹àHa½ÈîŽ.ş¨ ³…Ŝ6 q6 ‘x'ŽĜ(Êè9gċIĜ`ÀO;fµ€B€BJ‚ÊĈĴ#{N`Ĉ™Ûöît8:ÚÓä~Ċ·ĵRjàÓ"á·MÄD„*pÊf"íÍb lÍ`nZIàġ&ˆzàt˜İâ5?êĴÄ<-uZwB֔ĞĝDŠİ­Ĵ…LúwFóF rÄwĊ‘¤[B‡9ÌEtİGŻİÁċ;Á }áï8ËŞ‚Ìz^’5³ZPħNšġ}ħĴ½8Ö >Yşp1£uSŠPş+<ÀżÄ:O]=”Ušö‰ëŽÛ6í#`Ȗ ¤-f³Ğżž"áJKŠŸHUU>p¨9À½Ax½dJ$nğŭlċÒ'xšˆIZJTîqÓ.áb oµNàFŬPÄҕ&ĴBÌĊrI]´Ì$ÙYtƒ˜cdUŠ ]J^ ı™ŜBA›‹şY¤ŝ!Žù%§İ F4TÒx–tHê|Tܤağş%ċ]¤GNêĠŬв;·;‡PÂf?ty8HĤĴ„öG£SE?·¸~µAEVU,xR?ĵ§òÛ>p(ŒW #%÷žPŞÉ?zĵ $&ŬŝŞ0…´$ŽÀü°ï˜‚Áe?ê?B>€´ ™})e„yUPĴ…<´Ùo95M;éÑÁĦ"¸ĠŠ ş ĝyœNXŭ² 0ŝn“á½Ğ7]ì.•@Kġ ™ÄcU‹FNj;ğ°Fñ9ü‰ÎËqÙb.Q½ ö u8€UWꍐQƒyq3`ò+ñ”è‘ŭşM΃ZcE×pi‰k8[ 5 ›Ż °ç˜·Ĥ†p$­9•çÔŝdê0ë€Ó„Dġf %ܢ†ÚÖĈÖâÀRëĴXÏÛİżéïĠCÎ`Ê(‚xĊ"rŬ’˘‘ƒ!ló3X;j½ObĈ ċF0K9÷ŜTÑ]×ú-{=.B—°|*-ƒVĊnħaJ#áÏb Nş%ĜK‰\Ê2Vl ìçĴžE“EÇ#Żw|èÔKê.hß&Ĝ$O X âş8sòUÑ[ĴĜ‹Ù9×Ìpĵ%Ônˆ=†’;d[{ ëŸë1Ä^Tp>ZĠdèAÉb8ÍZì“Ĉ.Cƒ|ÈÁšDEĊ˙Z¸ë-OŒôÁC”Q:!2‘ Ôüîè=·§ËGñ/oÎċ jy Jµí{ìS‘ĵÀ ·ٌĝ˘‡ĉ5VXÄĞq“kΗ(•eg£Ïdċ!9g[Ċĉ;°itœEfd?6‹ŠÇ¸Ğ§!ġt;˘˘şĵ1%•<‡™›˜ˆ¨Ĝ ‹Mälĥo ^‰cêQ}àIĵ’ğ7]î8MÒ]ÍÜv tŞÖŬûmF>pÑÂÏNn½¸Ò°R[ÓÓ5Ĵ|\ñÖ'ɚû 7]?Ĥ–4,h­Ĝ–AµµŸ1‹vFöiH/Vœ/€ÚäĞGŝİ3Ŭêè.gŠgmĞљĠNâĠrÔ;bİl'G‚ô{ÇpH&в”}éfî Yfç1ôBâC ä\MJĦ”dNñ b‚üPî›d3ˆ ]ƒÉĥ–OĵÍğ{~Çsàċ1óħ6ĥ× 3x£6̃#ĝĴ‚§¨÷^w£×‰ıÍ€Ğ×êDQXR‰Žd…Ġ˜İwè î.F˘‚t[ïÜĝZĠ(éwÂŻ1‚ŽXıíòÍuÍèS l^tY(—vfÚąħ××]ˤân/ŬĵĉħŸA6ç_w…{R˘Ú~/•Í M‰ Ċe›…vèäւ4'ô–ë_ [Ğyl?ÒıRĥùŞïäİ˙,ȖÛĝÙv‹Ÿ^ĈšPèÖ˙ĊĜ”~âDS­ñàġ—•\2ï<:i0ÁÁx^r íK,Á+h”ôżO'xÓJw‡WÒ°°ŭwİn9Ç>ßÍ­Ló÷óRà·ċI2W8ŠyŬġA)ŻˆĜšl—,ÚvŞġRŭ”|luİÌ}‰A·16N \Ô°Ħœá‡îŸĥ M÷B‡•èY,ĤI IÈ%%ĉ·RK鵔ĵ”Ŭ—, ż˜³‘ò/ïp]ĥœĠV…*ÈÇĊBÏĦ‹hV Ô{#­7r’ŠħÖ¸-†QYĥçD <û ÇĈıÓàhDrŻjÓlt´^µâ`(İysÀÀĝx)as‘ċ×êˆi„£úTpâ°tˆÑW<…#'žŽfÎs”|fw}‘ċ ÏDĈIŻĝwȋ<ç`ÒB–·ˆc•Cp66Ñyċ.ĥ8áÏıW-j8ĥ núStÑ}эЉ'óۙ{o’••d.6—Ü” ÙW(â–ĉ–³ĉžíÎŜ"\˘SÂıJ˜Ùîží£k˜j—Sˆ&5uÙ`ÌħŠ Â06FÑ͎Y3 öĊ5* ı28Ĉ ċñ›¨ÜwA>ĝ¸PÙ}ˆ=ĵĞĊZ<Ŭ˘³¸\ !îZ˘fiW ĝRÎ1ÔÌ_0u€Ó ÜâOìP>ƒžF*ž$ç ”I[G½ÈµĵÙ(ü´~O+%.dy’êi½êâŭŝ<ĝ!ĊRá4zK7ċ=tPïi-A,ş·ŠĦ˘ÁIĦ)€"8ûĦ`.P8?mÏĤq'Ĥï ^DŜžXXbƒ Áx˘ƒ‰B††P|q3ş|{ÒGûÑÄF•.ròĥÜCî>ç%“ħJÀ녢¤GKĠ g Z#E1šĵè§"4Ĥž"&ëŸêÁì”,Ò@éŒ2ġW•"ğĴ_n‚ŭ–ĵž˙Ħ²ĈK!Eĉmƒ2"ô—‡ñÈ<ÂkĠÇ11Wĉ£E!ÈÉÊïs'hч›œŬ!†–Ŭpџ uâÜŻÜ Ŝ  Ĝ)Á;…ö-Ğöpï÷˘nI!gà.ĵ™&ÎXXŜyXñĠĜ9)Q?°Ŝ§9O_·ğüµVê?XWoÉü&‡½XEŻş@Ut‹ìO ¸ĞM‘SŽx•ĉħPö²ŸÈa9şŻ–~íĜIC|&•wpÒxê3ĨL2ùRkĈV½Œ}ñuÙEò:OR5EşĈëlÇġ q•!´Nµ°_~úAšxA†˜PÖÊ­ˆœÓG俐ĴċżÈƒñ5_QÓĞœLO‹D$Úv·ÔéU-Œı1Eä,f"â{üFĈäòµÁ‚ñG ÄC&‹L@²ìĝîçoûqogsD턘E…Qŝˆ-ƒ5ĉֈ‚À/“ËŬ‘ÚÂèĞ"]t^w{Ĝ ŭ½NŸQĉÄçzi›1kݵwŽ•ŭˆÇÎ(o‚GLò2f°ïĠšw_d”Zn^˘Ä;;Âû9á÷aíeí ž?ZsòIƒK{¤>•ġ“Ú„I§CĠMñÖßCı‰²Ujc+À=ñÉÎĜ|ŠJŠ+hÍz:‘ÛŝÄ×fÁÄħu‰ü‘É59HËwä§œô<)íl9IŻ"½şŻ>›xTflŻĝ1†B;½<9ybœŭy ş´$úuwˆCŠŠŻ_|I@lVÒj7S ÚÁ°Ĝ„˙˜aŻDü:†f3Ŭ°%˘b<ì"Œ‡üwm߆X˘GĈĈ*osQKäœ˙ċL`Œ˜y‹NŬpó6Eq}ەf…Ŭf–b~1+¤Ê*;£Ëuí0Fñ‘xÈR ĥŜ<ÜħH/·e s¨yĦHħ8\U' ĥ#D%Û2vÏüˆóXÑĞO%‚Ħ"óß.&M§ ü¤Œ§óßn]€7O]§+s4cVkшt‡PİÒ]œ^édÇĉ%Thßî= ü)]KìY2wNġ0ŸY‚ĈùV|8oüNÇÏb61ĝQĜM BÇ>‚6À‰Î­rĥOšP…€Z"N˘ m—$ŻyŬSúD%}6V°Y'^ËrxÑŒİ˘ ––ĵĦħĞ.ż7Ô­ê‰;{U߀e}ĝ4oÏ~·´"\0‹"Ÿ1É;'ç˘ĞFT0K8§ż°G7Ö rÈ6Ìܐ – Ë{lŠĊĜş˘ŞÁK1ş0è˜ÛİejŒt?÷†Ó:II“ĦßqÔ÷蝧˘RÒëoŻ9Ÿ)˙şXË0‚ċĥµ˙ÔħMCu*)ÈñÂÎĥ¨÷J”×ĥħ0)¤™K M8%ċ˘f+]èŬŞ2V%Ĥ—ĝ—HVéB›Êa‘ÁÜŬĥg2š”"X.VWŠVî†a:°„SLvEÛé‰îäç@ߪ”àA§HèŠ5~2áĈòàĥz¨†-ĉEËm_Ġ"°ÏMİ*W•ì8b,zjµè\ÈGĝ9¨›cMŞ?Ŭ”ŻPèÖeîĥì<Ċ­O"’W¸!`žJ—A c—5ñ`UÓş×c\ġ”ÑvƒŝèŻâ_9.Mŝ%¨²ÖÂU—ó´“ç ŝ†]=²uHqŬ½ĜˆċÏÑ˙ëOŽÍÑĥÀS'âħwv™€ßtÔÔ÷Ñż…[ú>œ˘?P0ÙQ^üş†„,I·mş7íתğ“6Mo2x˘Ñ+~ÎĥŬ‰$ż+‰6ĈQÑş<ïqäĉĥÍÁƒÙĥ ìċŻ.ƒù+§ĥkgLŝĞŝiJ"lYI5‹" żNêĉFÖ7´< ˆüšĵVÄT*¤h[$:üĦĠò·ßw´%Ÿè;RòwÖPÍáVz\¨ó“âU ħ¨ÇnĦt½¨ƒÉħ"jU½Ze²ĥ.b~êU¤Êá^ġC˘×R6#C&Â#O’M1=_ì£úĠ‹·á|ùîméü_µĞ ÜngjTGĈĈš%RVi§×Bî–ÛċN‚jħÊŜ—{eEc­ß„ÑĠs,5xċÙİ’„ı˘ ܸtùO ”zŬ‰Ħ=‹˙ ĞuRÔĥŠÔòz˜îGù[*|kç4JĠ‰”÷ÁĊVÇğ¨ÛlÙÉöAfuz*HĞUÀïûŬŻv:âô *(̟‡àK F”cvSŭ=“ß5żéévl<,‘m…ĉe˘FÈ­Ôĥ½ŞÜlG;­;şì ?~r?Ġ’Uĥ*Ámâĵ]£ï|dÊÊm?4îU!N{}èq½”—èCͽPĵSïi™úċ˜Ò9Seş|€)ŞĴÍ}%Íí T™-o!3öëÉ!‹EİVç–O”£9—DYáUvgl'Ħúvĥóµ˘ĵ}™ç£(˙Ä|š…ùĴĵŝœ?Ž[DĤÇ˙3 Ĝ£›Dü­Jĝ)T·Àvm żÌŞ&f59]yúë³˙ëKyşendstream endobj 215 0 obj << /Filter /FlateDecode /Length 8638 >> stream xœ½]I“ÇuC ŭ† zœvċžé‹C²¤°”D‰‡#HÛ"€Ĥ0Eĝ×û-Y™ïeUö ÒÁš5UYıĵġ{Kŭŭj9šĞ˙Ğ˙>}ŭè_˙êŬĠíŬ£ċêöÑßúëUŭçéëĞ_?†;^9–˜ĞÇ/ñ£ĉ*›ĞÒħ¸pġĝġ£ƒ½~ü7¸7ZuŻ7GW Ü˙ĝÙ£Ż½YŽa1nħ‡/ñ6“K8ĵˤdgĵœcqù/›RLÊpÙcB<üš.KZòáŭ5ŝ &û ĵìJv!ŝÏ?àDĵœH\Ž6ğNäßoĵwÇ ³èŻ~ £ÙlJ†YĵƒßKN6/8›àíÖžö·ÎŻoœ³ÇlLj9Fx[˜Sñgp9™h|8<Oâ‹` Œġ‡;]·—ĝz³¸˜oúu1QíêbŽÙ:µĞİÀNòÍú¸nÜâŽ>ıĞŽ˘gŜÑÎ-ĈÖÂ_ lşƒIâks îš—e‰ċl@üœv2Z˜ÚĞN]r´6ÉÂKƒĊÀ•}öDŞrɍi$÷ŞN¸DXs{Ç ×VrhĞLAîŬ›~gċݰxĜjAĝ’ż†EK†¸Y§scÜ1ĝb7Dŭ˘!âë"‘R@x¤uâÁx9܏Ċ~0ÍĈZÖİ ˘™—o7ò-А0t@0r€œĊ:rÉrdĤ=Ï}àifyTbfŻéx k=¸üşf”†ŠYēç7P‰¨r PZ9ŭ‘ÈáuĦXyǙ·Y].ûIçTÉ?¸&'äƒÓ[/II¸aDÛ(RSR' lLNò(NOŻIn…·,Ém_ô˜ÁxW´"ZI{q áù(ˆÌïÄux§/ĝi—SÎOQD2Sqëln#[€A×Á‘‡ïX^c"Ğàûb ÚÌkšä$5 NɕËäÍfúyŜ÷gh‹ħüQF1mŸófŸ ċîâF–CŞìŸ6ğîÖ˘Ëô;äÑ[­ĊĈE ÖL“ìğÁ"Ĝò$ċ‘4Oĉ–û:ğ:Lf=U´§fËÑü`á ‡‰É²éĉ•ËXFçµĵù‹Ħ“¤t² ŭÀ=ŭ^obŞ­Ż!² ü.av?t*i™Ï‰ì:i#2/wWDÓYuìÎ%0/HĈznŬ?ò>ÔżƒB}BĤ‘ .>ôĴĊv”ó’İqSĠ› shgI{VÁƒMëö˙Vpč$ĴòLŸ£gşX6oSħÖħ>X  —Ŭ\BC3–% HÙà‰£]D§·ĤVᄏħôaż4z ŬoŻ›wüûŽ`aÑNŽ+Fx#LûÛkC˘ŻŽ(2>öT“È„ÁK Y–X7z}[#’ŸwñùF:=èAJŭ­ïĈû>†&4~ Í}U-gavĠ2xL `€ĞĤlĞäî’,·àJI8ƒŝ³´ĥVa ÄŭÛnaŠ ÒÖ ïPÒZšÌbË#‰½ç2 £‡>ˆÜò‡˘‰SÖQ–Ŝ5띺,m.$iĥ@< E-ál6ëfü{ġVÁÏßSp(Ö-Ħ‰İëë† €Op ”Ï%‰xCHŭŞ6È}€m̃í ö?ˆ6 "Á–‰^röߊ ‚éÉÀr¤¸Q‰ĉ‘Ÿö,ŭ6ˆ%·z5¸?ʖF rp@ á„‰ë½'”÷Hβw…Ŝtô ĜEÌ4 á•ğ.LğÛç}“N’ŸñÂ#ħ"˙ĈY݈g™³C^]]ú3ù}8e²ñè{Hşßz‰Ä’N·ĵ.0ÔġÏFO#‚—cŭ bŞRòÁjĵVùL­…™CS}ŝ|{Ş”CÁ@9ƒÂÚió™Ÿ5,(ûżĜèDĴa5üŒŸóÍ8ÙĦĦŻ•uÙ¤ġ-Žْô½.žíżN3ÓÉí_ÄV†'U!dûY÷ +÷üŽÇ#µ¨Qşĵz‘­nšDü!Á\v’@Úĉze%ĵ”èñ"J^As’\ mV£%Ĵ:Iƒ,Ùâ)Ȩ–OX›2Ó¸/Çفl”<ċÀò0Ž#šp7ʞS#ä <`ŭc|¨á|Ĝċé­DïµùD1%¸ˆ‹ĵáĞĦ˜iHlfèÎîŸÄGO"˙àô]g‡n6ÊäMÛî?jĞԀuĦ\=ŝüÑùê+´ ùŜ ”€Eh˙Ġ2zşgq =ù†ß;üPnGf÷š i7ìT›Ôġáġœş5÷}ÇÎÄĠ/Ċ žîà8rȍŜUż$Â6‰fiNıżûIíĥ0àd#w‹9+Žĉ3j`†°’Ĵ A1RC*1+‘A‰w¤w„Ĵ|N ·ç“'ÌÚpe:ü1f_íܟûYŭ‰Í“ѳùĴ'aPH‰!F7sŽU$€‰& T€W]13¨èm?ž‰R—Îäú ûêħ´ĠñD§ĉ°%s£?ÁXĤbQ$úµĤÀ(ÜkŽÑHÀƒÍj˘/ûO‘4!a^¸³(Ż„Ŝ‰A,‹Meü@Ż99ĊB Yh ä?Œ‡b).š&˘ÉcšDAżGˆT™ki`á¸D V§0áQǜ^5/c?ím6€?s@’’4…nÖĊĠìžàïûƒ“ˆh›sàXüFFŞwV{ Ò9Je(\"À/£~%'Í#çü UmǕKî(’ˆH(ÌòKĊí´wıLáŸÂ¨Û£@›AP„¨òäÔŬ:ĵa`‘=ĊI:V,Gà‡oÙ‹°ÄvnVuÉN)G‘ G°Ŭyöq<Ş#½dm£ÔÍ`?ëM‹ĦdGl ĵW,Qàѵ14™Î´É>¨E×VZQg¸ìydêè³{n, c`|ï›}r ÈF ¨£ )ĉĴtI;?7ŝÏb1AÊûħI·(뢇ċĊıÍHÎıĝ°ÔLƒk*] }½!# B‹Çhú ™ûÁtsôħ§äV0,§ÈżY+‰Ëğ3Ħ)!Íbŝ‹и^ĵï0ĉ~tw!Şóò9S·IÌ^(30Dôĝ£"h”3IÇ 9ƒ8žÂŭ.˜¨jp¨¸h[V:Zoù ‰}xQ¤j ƒúŜ¤ċËÒr²ÓĦµġùĠ˙É{h6)Ì$L˜0§Î"ĉ+-Ù|?-—% G(dmÊAûĞ"¸ż·‚”n·HqàíI_Hí>KbŞ1 hž6y” ³¨…­lŠÍ`ˆüSñQa„käĦ†¨†\Ya²ÖE§Lù%ƒ ^7ĠP¤RÊÍfÜÓ3ß3qğQ}ŞCä˘#ğááÉfLJ%9Üġä£SÚñżîz GĜ \Ü k) ĵ'4é5^ŒĊI4RùiŬ#nïĴÁD Ÿ’İż-)ŽàB½ú̈́ÑZş£¤ViK]ŭ7#YPÚħ5oċ“ŽWàğÑĥÓ>:Pà‚†-“jJDT@ĝ—4ŒŞg˜êıîZ¸“@‡Ÿ0P PúZ†âik!x@„h%˧œ½FĦ~qŬòñ¤‰%v@Ŝ]gŻ1Á !Y™ĥaÛàPËÈs¨3ġ& Ff£.:(!–w|&ĵ£CGo\c#Ulàß\Q™²3/Ĵ޳ 0Hizš Öˆé¤(˘ŭ:5 HWÌ\ħÈÊ“Âí$‚YK| #ug ¸ĊF˜@ûXàn¸l ĝê^Ħm”¤€ĈĤy2$ü%é„É~SéDsO_ŭfmüZô¤›ArSġO‘˘!'{•gdäŒñed‹*‹‡ÊwĴ¨(œʕ…!…êܒ…ÉyoÚÂďu`‡Ĵ3°Ô#^e*“½ÔYĴuq‚óŸżIA; µ*rÈaĉ§Ëҕ}üAŠĉ —7e4´2cĉyXëÒàÈIÁÊtAÈÔm &wĜTċ ÉS´Ĵek2Ñ9oê^ŞÒyŻ’k}O:^Tĥ,óÔ´¨—ˆKo 4ş“óş#½Ib.œ”ġ5Ñtáô j?Ù%ĵ˘\œŽNìzżyô$ÌÈx÷Ú;wġÉec¤xòhœŽtĥNŝ&°İްqšÔ46·lĦĵ 1Ái™„“Ù͘ón™„¨lÊäŝäŽA~Ġ$ށé°IB‰y]fi›Ġ|9CGŒ§M¸×CÉé3MÒ 8Ô&5€Š·›ĴïgĤyj;_W"4On&”ôn‰›k$‘Šu*ÖîÓ,&ŞNœYÊ6ó Ż§1^'ωîÀĴûXŬêt!F„ #ŝïDÀ?× y(ZÓLFOjBÛQŜwuK=‹ ġĞ?(K"†`ñ ˜[˜ê2(ŭ_ aǤNžĝϔ ”z½G.`ĞŭšL~³Çï†à,Ì;èz–yÊĠ³d7ÄڈE)  ~ġŬġ`#‘; M äoù )C`ĤB%ĥ3xĦĊK7ï 2ĉ‚òk,Ĝé‰M)ĜA’ 19ş¸îU#şÁ–˙Ġ÷¤‚Ô˙g^‚l÷­Ê,ÀÉÉIJC sİ•Ağ ‘hŸÒ0× Ĉ“Ç~ê T²N˜OCŜhQé{E6“*Ì5 (jŸíĥщJnPûۊûKÍ_l€Ól¨ŭžGû°Ò´aÔ uèŒU‚Ëêd}Œ,ì zŞ*ĵéŽ,MÖMmπ(?9#@ˆHÚ“–@@ĉ½ħ÷Ħ·Ù”ħ‹ ı,ĝ6 àè3ĵûb+9ğ™RS„Y-YÍğÄY éM gċO³Ĵ4ìż-˙Ŝ1×pE ‡Ûżd,’QŜfñÙJ&~`? µµƒÂ˜Ĝó—÷uƒŬ˘ÈÜâyŭL]‹Ĵ)ĝ$ĈÁılÓî ÉŞo…°~^§äûĊ˜*´†q£³ĵ?œš 8z*N›À}ÖŻù·” 8ıAĥ¸€ a<Ù`%Ñ'ŒħîşòäŜì‚p¸·)4p䆣P÷÷;a€Óᖕ1Ú†ÄiSê§fVÄ)F\´*ĥawYā ŸĥkUöÎÊ2óĜG47Ŭ•-,+ŝ`‰˙Ŭĉèa;äxÓ,ı@ĠµJAê‰k„ó: ó˙”µĊM2\úĀ žú£UKż—Kà Ŝ)çÄĈE7œŸĴ÷ċe Kp]„{~{сJ™NĞAĈÁğäíıA{—•VÏÖµ+¸% Ä ½'L{Ö~˘½ˆĦĜ3ċt żû’}qùé,ċ\HàĠ×O…Oà(—vĵ”M9jk-‚ë›vSúV[фq&@;5Cèt)¨ħ×8|ÒNJ‡tao‡ûÀ|˘SËà°_xËĉ½ĉ1³LĤ“­TğwŜ˘dzœqĴPcNĥĽëĉ íT&Ş.KżËdì{Ĝ8ğbcÓĊ÷ iXM!úÀêZ9œ4ö^Qó$ĉ€ b0X)İĜ^ñĦW1‡Pls$B×s?-K87›Żlô˜qF<?…'-œ†³rĵû]™X³'ÒfUJ2mÏħşŸĤf|,:tİ/H‰ÇÏkŜİÎġ”ş ÁĴ<.zmÉĜ`zB{òú$†°b‹\û=ÀE<ş4ş“ÜuÁ˙²Àï‰ÏBDˆġÛëÚO7ñWu„m¸‰ï2”@\>Ó òïßa÷ĥí5À }p{ â×;^%QäQèl:ßÜBa <{ċ"œ1şE_½\.%DKùZ€~T}ÌĊÔwx'f­ĞÎr23Ox~ÒÊcf˘Vüğß™@¨bÏĤ(ŭ]ù}5ìŞrJaZˆ—L‚éOkáK>ŞïßĴ¨ŝ…ÏPġġrĦ˂6³Û'ùv{Ë­‰v1÷P?ˆ^0њj=²Žnîeeġ1]Öû ŽÍ?óĈmĠ•>|Œô<9Ŝh0üˆÈ)xzêùĤĤbTzê?JĈ(C=ês\=DZ´ÜŠVÜß {óÍQoĈ´râô Ê™›&êkÙş¨@ê‹#š--kgÂ/„~Û·†ÑÀzŭ<~I´–ċŜ‚ñàUĊ‚H9 è.È/İV˘8b@ÀhoD”ħÎ1ğu ÇöĵùeÚpM-†żĈïUŬo-|/ĴÑç]d?‰ ĥŭ.û$*S˜=݈_×áK@K”}PBĦ~ĥĤ‚ì~qNd ì~—ï~s}?ü§ò × }VkJÚoz´“OZwÖ}œÇ–›İĴZ˙T>E>˘e-Œ+$ŬÊ'ù‰OˆñRİI JUKvhòFôB|<0ĤĴ€ħÌm/>:e…[~%MĈmV·" RûÊ]‘ŞHµç–W „ûŬÄt˘J[ÚZğ–ÖËâs˘S™NÁĞÄ Fdí&k‚Žŝ mëOĤj{Òlàŭ:i¨~ÓmĈ1–DÍ´Ò(qk‹­éBt4IÚbĞñEtùm,/?ä£Z7â ŝEÔ× ~4Àscyi\qšĈ6‹Oo üíŞK=Ÿ=z¤YЇ³.ÓYżÛÒU‚ŝBŬ• È<}Òğ›`~×=şñAİŬ¨­ÜI aç^ŝb­´$¸)ŒİÛ4ÔbĊ+ Ċ]ê˘>0: Vœ³è”£Úż,Üı£C‚&ä_ĞÄħÍÇĈž@íèİsĉŝĉ‘ħ{"uPüM½Ĉ˘€[òPµFhpÔJ_öŸïúÏÓîUqïı˙|ÓR;İúû—ŭç_ûÏ/úÏ·ğ£½Û½úëŝó}˙ùb|}žïëëŭêJìvçu>¤Ê˘ÍGâ?•Àâ-[ûbLeT_ǽ‘‰ 6,„>DŸ\4‰\Y-ħ +ìû4U‡ħ]Ë܁ħü˙³eŽ^€É÷ĤjÍ{qÑf˘4_Ž×+*âûOĊÉ ß4Û\D‚pşR ßñE?ïŻĥħ70NŻŬ³'*xĈ†0û.Ċ2'^À?˘L}FôÏóɖ„™›‘ż& .ÍÁÇ+ĴAñ°ñp ŽXáwu P€u|–D1P5ĴRÊ1,&½a‡KMÀµ„úçݘa½ƒ>˙ İüô,£NLŝ`9ŭ-;ƒ”Ħ b}ħèÀúĵÎċßżGQ7&!n›Ifİ͉÷” /“!eS➐!ù‘zú’gĠR'ómVm²ÑÏ%Aɓúğ Üg2ʛҍZë3M™Îâ-R×&™iĝԒÖ6Ĝ·¨…ìèşHTd)îE.ħĥë¤Ú³Q˙ó—ŜEqħ+]ZtÇùħéü:+ìÒ1İOrßbïZë(‘/1‰ Eg°OêoÖ>£˘rJûä.U-ñl ÌòğÉÉ|Í#wĞ&ŬŞZ›)·ùŞD¸‹‘…¤\m÷x —m/܎QATû­İ‘6ßÔ˘ïÊë¨wƒ“!6ċ´qñi Ŭ–ÓĥçtµZ}ZôGŬMÍÀ€N"XëĜ)q˜†Šw]a(ĵċ‚ï¸6Ŝچ@TÏÑ!{R)ܰ"ŞÔ$Ú&Ÿ$Ûom5)ĠĝÄö‚{áĊ ß4zĝjRZ7}šS w˘ÒúİÖŭbôŻ×ây,tÛk6ò—G˙ĥFCendstream endobj 216 0 obj << /Filter /FlateDecode /Length 5532 >> stream xœÍ\[s7v~çêG°\y&žŜĈĜÄݲJŜÄk£ġ2•{Fäè²"94‡Z/7•˙žsA=h^+•ÒƒP —sŭÎ9Àüt<êxÄù˙³Ë£_oÍñÛŭÑxüöè§#E=Î˙]??…{†4&u|úĉˆ?UÇQ†dÜñéċÑʞœŝĈzŬŒµj0)ÁĝÓó£VߟĴÇÁÊŒzġê‡İ˜Üê†şS AŻvĜ}2qu‹Ŭ*%"tĞaTÊùĠsêÇ0ĈĠÇl:íê v›ó:ŭnÄʍĝqNéi#ż9Y[k†ğ¨KßÀl:Şa·cqÄ-­u€ĠµZĠUVğ‹“µ1zˆÊÁĤĈÁ‡VžêŒż‚î ĵ²nµ_âB@íjs˜ÁĸzËĞÑĝ¸şŞsäĝ†Ş£˘6 UCJâàoNŝp‡`ŽĤŝËQf£Ŭôñċ‘Ó&ÂÌçâèOeğR@ŜĞ4x­‘÷?Ĵŝ{·*àÔىö°‚ Ğwµ3ŸzŬê’Ú#°­6LBĝ²DœŽċê6 ÎŞéÄ’Ĉ1­Îğ͛ÚÜÖĉÛ|]›ğnóCmµyMM´5wµy+{ùL3Šz_dò"—ıXŭµbµıDъÚKVÑş@я0&JÑÊË4˘oŬ ½V}i9Ĝ,ĉSĵR‹„ô*x`ĦìFJúÑj‹\ĥ½#ö£UJ3èBIİŒT™{îÈV$ĉéÇXHĉŽ·6eaĦĉY—İBšŜJıYŜ†qô™“Ôûħ6oğÂ"$ï}w‰‹ÚüG e@´c<>ŭîèôïX]Öínk³/şîüUWnş“‰C\Ġŝ‹÷¨kôñšö fƒ„£Żd?u‰ġğşĝìĵ.ıïÒ¸OĜ+I2U—D—U! ‰âêĞÚTu@e›óıŽÛ?8ıİMŬŭLL&N£{§‚&ĝ}Ŭ]WĴ°ëîħ‘ê_}Û9ÏÄjtž÷µyÑċ¤™ŸĵíûQ.ÖSœw‘AÌ{Z›w]ònûš³j!wPµ^Ö/ŝ½6Ÿ×ĉ·µù]m~Óżç‰ñŻŬ^>4—êYŻ˘"˙ٝôûÚü·î¤z>éşG•Ġ#Â,HZËÇ9ú§X˧0ŭ÷ ÂÔC.âzŸ(ü·²¤dkSXÙ×Òà–ĉÍlïç4QŸAğçnE żğÚ쏽ÏhÏT!ùŞ ËNéşÛğ钰/˙gŞ0 AĦwµ)`ġĠC$´ $ì“_AÄ” v4Çzôƒ jBÌeÂË\tŬÑky¨ÒÜt{…\ü¸Şí/jSĴüŞ;ĊR¸QšÏç:•,—ĉµùIQĵŝ‘ŻkóŸê€uímxSš?÷Ïy;ßÚ=Ǹé[ġ˘c¨ÍWµı­Í›ÚÜ×ĉ6ŻjóËép./L½çµùUm*ùÙDÉ€ ‚‡”¤ŽĜùe—f_uċáĊœ óó|ĝTĈ–ŜżëjÚÒ~{Ħş‚ß„4yèêxa˙Tżï|sĉdáĊgüù€‹ŭżìŠôM·)Vğ“\ë ġŝyÎşs ŭ‘Ê&Fìks¨M1Ûğîgŭ­ŸuWŜv?ËûĦs^7Ò9—ÔHE3Ñ)Šô›_žQBüfŒB{ŜŬ‚ê íLeúüŜ?Dßû,|Àßş“I‰êòeŬÄïkïÔĉwóĉ}ÌtCPA%pÇWÑÉ>h&Fyş^ŻïB€óÚjŻëöêy/CWàħ/½bl޽ÂŒµw”3teaŬÒb„œuùÜWöŭƒ|^`ĜS­ĝËlġw"ĥúĥûÙ‡QfßډĉĦÍÉbÜóİ×ŬÍÂ~xÒnçĜĊĞOĦg@Ô|3§,`vÖú†hEvvêù„r:ĥĉPœ—==‰zˆ£5Ğ Be;Z§Htsċĵ­ħúġJa‘SH>[qÔ‰Ë &M›Ñ(S.:­ŬÓ+V)Ú\–ñœr)zgš”;ׇœ1İİĉPœóâ²ûêDX–@Ŝä‚Ġ†jZ1%ï™cÂÓo%Gì11(ïı0Á’ĞŬ%0JÁž{jŠħ‹Ŭ”şŭ_Ş)M- <#şzí(ޞrŝÛĵ¤¸7Uôn¸ß‰)ŜĠ9 3‡a£U)">=n s+óĤ6á¸ĦGğ˜]Ù,!’à.‚„o¸Žƒ6TDħV–í×ÒfZRĉxSĠáĥŒSäŒB``Ê`Ŭ<ƒżı*:x΅H—ŒT%QÑAx˘TìÔĦ’ƒTħ^ÊıA9×ւ8Ž>=˘u&ÔwŞÇ:G(Ğ*8À*%5ˆ„ÏhpİĤ™C”`eĜpŬW“…j ²EXßĉ’etH>ZÓáwŻÁ†[ JPĞ?×ġ%§$çoó, ĥĝ†Û`qZŭ¨D&KÁĊ=6ÑŬ#Ikäê&pŽ˘´İ%9ĉ6,‰>íL ?#[–PĞ5qrĈi’~Áš ÄÎLŒ¨²)JŜŽlû‡9Ż#ÄwB+˜‘1šfµ·ïÀthPĵŒŽC2q'Š9x‚ċPݳĤĜö52HÁĵ:)ĊY2Ê>4]H*8݊X*˘böxIÀ˜1:ı ÁVDO–+Ï÷+ѽmD”żTV‚“ĞdR‡-T†Ŭĵ•ÓÈApÖè#œ6°G͗+Ĝ£jßħÄ­ +—@;ü#KɸáJyğ‘`ŽU`é„ĵóı²£-nT´ÄêVP·UP1:Q¸7“H¤žM{iƒÜ²!–.ŽżQĴÖr‰@.ǁîƒEh[€3ÍĦòGy텿7p˘™™@ùBN6êĥ“úĥ& ƒY½Ŭ6ŜXÛ(×ùD˜°úZŜ~ù–ûĠè…J#ÄĜ%ViĠ EÍêRV7Ú*f?šu¤£2;éjv­vpV6„çÌ\=ŠßÈÛ:í%dˆ¸ċE'¨X™Lî+͢ù(b"ÏĈ2‹;œ|„^ŭŒ-°/Ħá OàÁ,ĵ%„ë–Ä`†žŞŠífÀëÈi´c/gWÀê˜yOé Ùä•Jrɏc_o]œxƒv¸ŻYÁ†µ™áá‹÷Ġäĉ˘1apc˜l…4°D Ñ`JbÀ8SzÂÜ6 >ĵxeŸĴ‰T³8:ﭜ.È&Î|ŜŞÄ´ còġtuŽXg(ksQQe“T‚eÓäÚWS?`„!Ĝ˜V_³Ì*c˘oҒ™OĴĉŞ5˙hXĵ›yñÓĜ—ŜuŻF}Ğ(…T.Ĵ èż)zòl)4–Ûĵ):ó#^lĴ-GNÚğ$2ğhäŠ&11{VóñP 6Í2  .tôR{m´!<Ùĥ:è/q9ˆ·£i•ż Ö-Ÿ…@ʛÀ-jèıNħ`£ODPĠ*ÀÙI7†Ħ­¤ j —ĚciÒ)ŜÈé’ Ù‘)‡M‡9°#êƒ8IÎŞ9…²C4aÁL˜`4Sün´5ÒÛ4!7ġGÍ€UP?µS.€g>×}gÓf'›\l Ìuá\èŬ:î8XoŭÌÛp`) €íd—<9 ŞüÍlŭ"×Ó=j'×_ŽŬiG)4"ÂNĴQëÎŞ„;÷Ĵ/Ò¸Žqğ'.!ÛĈdB†Á>ĈĥòŽŽŞ`ß°;r:lµ)!Ĥœ54PĈ°i_';ïq Iär @·‚YXl”šI¨hé´ËVx=íıĊ\™50˙,ċ5EÄWMożž`1¤Th8ğŽGëĞAK‡™G°ŝXÙÁXŻÑ#ÒĜPyµâSúDì|mPäç9ğIí8qFVı µRA‘(YPwĦmtcvˆ†|V)F –á[Ï ,ӌĝ‡°zIˆ ¤mt†pníŻO*0˙&ğcÄ7w$hÁP>ñ¸:ƒÉW^Ħƒ…39†ĝ“0w‹ZnH˘ 5°é°äĦ@/Ì÷LˆKżîAŽF›d;ڇÔI<­FÉá}°›š‘ŬO†ÏžŞ ­§iŽƒö‘½eğE­û‘ô9̇3§[,Y”y†àqÀĵY {=Á˙íÄ £Ñ]à벚…+üŒMF‰|ƒ ħé&Ù³ ‘2éT 3=̤¸ä‹h^$&ÎgÍêĈ,MdŜÖĵ>Hšñ“rXŜŝPŸ}Аk•Š}“µBKeƒ!„ö”W’ò‡ĦTǓËò‘$NbRЇġĈö•¤ŠĜŒIDñV hA˜.lÓ½€?²½aӁ†ì->=ĵ˘ÛïÖc~ÚS›°âSÔc†ĤfżÙµÖ·òċ Z|ޏt6}VğYӉï+•ëI]QùèIĠ ZûÀİĝ%SOEĠ$0Ġ´“Kc‘ûħSͽsc\pÇ;‘"D 6Ŝ5‰Ê6| Éìh¸úb†”ĞšܑJÜd¸Ż&qwÓĠ”Û#ÓÄÏÌRÉëĤH˘-Äw`h[(8ÓVln00n²Y›ëI£Ò†JĤ3ÛH’ëˆĠRhjĈĤî"\„dn€aĦ‰½x°S€ž³SNA`Ğ&³a˘§œù„˜xGĝààYĊ/ú|ŜóÜ&q,OÖ G[ ô&Pá”ĴÊœÌLÙw.ì\“mC (ıΞÒh ‰ĥsžĜĞ4Kï04Ó" Ó+ĴÔî>²Ġ[jèʜŝt Ĝ+'9LUĥ]HU]׳T`·“ƒ1O¤‰ pÍûÉ1D7§ĥòÉZĝ‚Ö½™ûĴ˜/Üëd–†…dĵ ™ŞZ Ċ¸%.JJ„ĥċnDĠ i )¸""žçx†^÷żñoŻĞ‘ÇUĞŒ4Ÿ"mÒ\&İéíL ı› O xá 菀v4R–E•ĦŠuSO­úXO!£ŸM^S&‰¨&trÙH.eï­GUaİcĞŬd€•ĝS÷TŬ;7DŠĈ<â†ÈAÖVa˜DY[CaEı§ŽŻl-Öĵò-‹÷à]lĊù°”ĈĊœŞ˙íe úhPFù2WÎW²ÏÏŜĉùLg.ÇlıBì–XK’Ä4§q• Ş$=m ·bâÔ1¨½á\eÉ-g` ċ#ƒ/RäÜ­ÖĈċI ̈˜ŒĊ/­3Äʳ\ßÒÙ@4Tç@ÔÜóĈ#ˆ=ŬiQx'²µüË'ıyYğ§;âFòAۀċiì„|_câÈĞ@VxOı÷ĥ×Ûc6ŝt‹Ó&˙ì˘òo+Hµg­Žo$™uLh1Ë SŠyşŒÁ˜%t'£†ƒ"ĤQ:µ‡îšŞóŭRênCżm–§ĈáhÒ7uùùŻ|ëĥwÁKĞQ^V°Vôԟá}ƒ0šô–<+‰ú‹³C@ù>Ì}ŒmÌ\ÔŜùè^^şċÄ$½AL‹ċ‘i ˜7vÎĵjÓԉĝİ_.,qË(‚óU€ÂĵĞ৅t` °0: ğq·ċ^ÌF 6è‡aKŜS [~\UüĠ óì  DÑÓI.OJÍċ Î3IÓ´spJ˜]F§ òŞürÒ]jFmÛĊ^ġG’(!f |!›Ċĥ"&•L€ğ†o7h*ƒu¸âÙèC‹cĉ”?Ç0VĉÁ[éÊ X…Èóf_ç£öfCƒ.¸6Žû‚G£áİW)„2U [(îŜAċŠşá›‰Ÿ öDnCÔİ‘L ‹ŻûËïyIÔŻDïÛÜŭÁm†"O‘–ìz¨iŽqè`Š3˙9ÙÔ×İÁ2zÑ(´I*îñ ’Qè†ïÁE…ovœ#šL—À6)Ò=÷šħµl{”†‚{onĝmÎÉíêàĠ 퓃M#Ûĉ f7ĞďeU‚ˆĞB´˙Ì.¤{fúIÏ+THˆX?ŭyĊŠFĵfêżdÜwW[|^š×! j1ĊïÌöhۋ™S§ú7â 'üäIùY‡_Ħ/U=ĤY›ÈADY²bl² ÷fʳ[[Ȕ#Ŝ†èë]ùš ]’ësRŠ.÷¸6ß+áĠüáTıaòÌ÷2!üéÙ¤Ù}_Ôĵ´4‡"´Â\×ÂHï"^ËÉh]Lë-ÜşÊ—„ä ¸Hô&€À9oÈĊĜ>ĥÊş/o"÷¸âç ͍3éIÑ9ÑV/ğ…ğ’üŬĜŜ}xĵÑ•”8ŞPgaÄ[èG>dœżĴúmmŠw\âñ–xĤµï› Âm ӘïTNi/úáĦçW›—oáĊ£Şğh–|Ÿ,ĉp–c M–£ I­îğċˆeEë0I"uìà …Ê ÏFûTu‚ï<)熧ÀިT_6şN/ĵÜ[6EtÓyËb\rXN˙œ!’ĠFŒ­êĠi"àïMĠ#fÙóš˜-ž½ÁÛt‰_jàÁ˘_ò·ŬhGÜf”ż ”@b EÂ`%Ò îŬÄĠ<{‘7 ›:-> stream xœĊ]Ys\ıu~§çG!UnĈfû⇤b{’Š+“{ä§qŞÒ#J”Ĉ"›fS#Ëż ?;gÁ¸MRšrʆš¸XÎò˜żœĞ­>Wĝżò˙/oÎŝéΞ_ÎÔùġÙ_Î4ŭġĵü߲ó_ż€ÁÁ/ÛĴ²>ñúŒ?Ġç:ı­uù<ú¸Í֟ż¸9ûnóÛ µUYġĉ-´V6¤ÍŭĊÚF\ÚüùâÒZ³9o„N;eôĉ ;ĝœc4V[›mJ›WĝĞÍÉú°y‡£)Ÿ²Ù|Oßóĉ½ĝîü´Ġ0ò4µRQ%Ù\î—ËŠâĉĞĥÎ÷mq÷¸ ‚ÜĈî„mNÍGŝ<)·ùĥ-LLğ˙ó…‰[R^[ÁNjdĦí2ŻĊnÓĉwDÈ`,ïĞlQ,`q £Â Av¸ċĊĝĴ7_cߤ4LĵÙß@—¨uyshkĝïżƒġJݵq<ò‹Ğ³MĵxñÙsúüÒúm ŭnóÇ0JĜ˙¤NrÙ;”u0İ-ÑĠ›ÒŞSv % £z§‘ìK$U>öç—Ún=ˆo˙ 2ژ€ŜôRĥŒ²ğXvL|]ĥĤ<Ĵëvew"ŝ2!žqĠIûû˘)5ó4srM=Üĉ*mó#Š™QĈG„ëò&‡NSŜówQG’EVeİ;ŜF °tÁİĵr—œ“’#öó·aˆ2ùOˆ´úžġ(Ꮴ™mnÍzŠ˘ïĥ'ğpÑ2C*#€ĉW¨>ÑJĈÌ'ꐸÙÙñsŻ_qóGâ8—€ĵ·W<¨Ò€†ÏŭÖpAß=ßĵâŸ-Pù *ĊxÒšÀñWżş¸t9?ôĉ[WFî/‘F^+o),…jV£ŞA‚i4zŜì·ĜĊÒÏ8 ‹ü Y1Ŭm4‘ifàDzr—× ŻVc'ğıÍTÁe ħ[Ğ£yžrn°@p‚İ)!ĝP{ïÍĉ›²Ò”1t9˙ŭ˙ž€á6û_?j÷\ÔCÑŬĵfĠjFÏvàNR5ß]“ĉ+0M‹ĵ§I7ğë"Ĝ°Ò‚BH›ôBĝï°¨N”ŜLUL1'ĝĥİÚoG Ĝï%l•÷ŞñÜJ÷2Ф“=İb@ÉJÈrSv |!UÁ˘_<1OÁ:7êŠf§ ³FáeKÒXTn'T›ò;B)*8˙Ż.ÂòŒdËcƒ@ğ‡˜Ë£ÒÛżoäğìípĴP¸‡Nġµ6q(LŸ¤ş“0ġ}ÎÁG\9²˘Êĥ:D u%W ŝ1êħ1„cÍUڗĴb@ ÑY_êšÚ$ĥ>žOĝŠ8w§³Í£ Œ.‘RĝR‹—D`nlĠñ`\êÀ[ıtcÒKï=‹w¨óĉ‡&ŠÌcÉiƒwéĴÛ"îf+”‚·xÎ Šԓd²ŬÛjK¤)=•à-·a˘ŽÎ³ŽĞ›M£“8Ĵ ·Áïċ2+µ:,}’ÄÉYß­ĥ’ \µĥíÉV¤·­pÙÑxí¸Ż/‚YäD˜ŝ•;Ê{K ìH.JÖ8VU½úĥĈmµó½&%²ħPçA‹ìàÇMÖÑIeƒúq?ú=? Ì@Â" 4áo.4,ÚĤÍ/è<"˜VhžäU“@;šŞ^^/É*Á[1éр‹hFŭ’ħfŝíÈUÌ{6…¸dĤŜ4k#œŸÙžcżD™§Ë ŭHcĤêŬ@a‘Żš ŜŸÙ°sÂâ"ŻÌlï¸tóyPĥµħ£…žıcèÑŞàP½$Iv%‡h6ç‹İߓÒVëê42 Ê-<„2ŭ‹Ŝ x„…^7OBzıìaÔä˜xè3tO6Àô…o;Ħlé7‰*ġîˆQÉvíĝƒ\ŭH'ĦáS9ŬĠşˆƒ½Ejàò‚˘8ĝö›kFùI¨ .@jw–hMÁъaO6dB_= =,ĝ3°A8ĦĜE¸+ŒÑ:àXA˘iƒŽOôŽILÌD§°B`/ŭú}ġàRÒ^S'DòKiÏG˧ &ÚŞ8‚Ŝğ] Lh+ñlŻğf!?a!ĊJ?6p։xĝz.‡pQ Ÿ#‡ ZĝJJ™?ğC³Gˆ½b°şñíє½ÁKÛôÉÈiN:í¤Ħ'\½Ĥ2䉷¨Ċ‘'܃Œ%HJfżAQtâ /t™é‚Kġ¤Yxt˜Áŝ™@Dû#ûgàŒÁ#+ƒ7ì ›h1NÚ fŻ1à;XI·NuW´˙žp;­²¸i4\zîĴĈwŜ™ž˘£†h8AżTHҋùÈCDÉ_Ì]!1WLƒ;üħı™-Lòŝbĉ+֝€\c0ÛFw Eӄ^¤ {İVX Et[–¨QJĥ—yŽôúÁ€úÂÌbdŸ ¸ğ]Nœ×~¨òk!Żĵj]Q?ár#LEċnWLâħ ċöPċxŭXîĴwG~‰uàEâRkhƒ5œĈݰïLkĝ„üŝTo xÎk—Ŝ?o|ƒÈÀ1Y•'Ê&†÷÷îĜô PÀd ”:2µĠ³CÒ!$&Ŭò×?C¸pˆ˜Œ=H.í *ıd6ĞÎü‰½ĵœ‹žĊ—/Î~Ĉ9~żžËùÎí]ñ¤Tö)Pôv}ġS8q›4…úkó<ï D4>ÄİĴ+|èË—/Ó9ï[ómkîZóŬ´ßä`Óà½Ŝ:×´€×/Ĥu"Ĉ‰ÔFŭ™É C''$L`Ċ`2HéŬi–2iœĞqƒ§ċ´%tö§ Žé˘œÛa–Ú×µŝ ö.J@´WGɅşŞ?]`L0P8VÈ$êPÒžŸ’ıâŜhó‡ĥ …qß½r\ĠEeV"s2,äBŞìV|ŜÙ^Ò£1)a|eħ uÑÄ’xßh‰^s;èUÍú˜Rà˘[}ŝÔ„kñú“Â<ÎòRe™½pŸċ…[3ġÂŒ‚´8ŻêwA_N5ïQċG1ŝš#ÏĈC„ÁwĈûÙÈżà‡´JPhaeİ”Ŝ7 FŻĴ7Îm Y˙ ÂQ2 câ!ÁZŝU@6’%:DpáD˘Bo7ŻÄÎDJD9óŠĉşCe2@„3#N%WޤaX›{lŜUvzçĥ §µ ½˘bòEœáWàRNSIE>ŻCĠĞ›ÏÛ:ˆ€Ñq| ÓwœÊ+Ç˙şÒGĝĜ²E¤iĉA¸1­ô½V×i~HÍ-.ğëĵÂ"–ĊZliF ”$9 Xĵĉ%˙îZyФäğsWJž1}`Cİ]âğ˘âcafËŞgĞ]M‘ïğh°ˆV Jġİd\sFñŻĞp]ÌöŠgDaœ U…Żƒ*C¤şÛŽéÔ~Ċċly%’üò-´Î(cü³Šž#ï€cĈS3wàPŝô·œÒ‰è1-WaŬ‡sµDĠž#TöÀ}³f{ˆ¤,ĠYĝ+EkV|/CIËQ—ŭˆ+Ö9NO’ô}=˜½ˆġ‡„x‘OЉ24*ûJĤ’ıŠ8i3ÇÔµ]th(eèà‚ <;I,z}ÑüÄKm‹­jċĥÎĉ Z=YJS$„KiÊa4됖Jiòi9Ku˘”Ĉb^P­Lâ8’’,êmıŸ]Ħ/D%†kϐ-ĜĜI™ˆżÊÒ‘&%ë8ŽËƒÜ€sŞ,’„ê<¤D–bכԃ‡‰i{ĊċħXŠ£f²ƒ ğSj`ŠSî]ó]qa.A ·1¤Ál|uQ…Ħ?ÁÄRÇ%Ş$QÁޏ³ƒñTm&ÎΔG·Ù€áN•LÔú. 9è‚ĵÂEìÂèž+Fyk6‚ôáFĊ°Ô²z Ïi×''^ñPKĦ04Ġ`4ö"­+zŻUàÊßß6ŝêƒË sI"h€zˆT6n4Ûb Ŭğ|+sÑ?>š4 ™SŝÌD`Ħz?'ŬŸ˜GŠéx\ठĉDîQú,ĝĦJfôd˜ëŭ¨adĴ Ú]°ùÒ` ê_d1ğΠΗò%âÊëĠĞu'w²ì Fçq7Pĥ”ĵô%ĥjÉç/ŝóìĊ?~W.]ìo…pġ_JKv³,ûІ1kŝŝ˘^{ŜeğŽr-#Ö,EBt˘\Ċ ë…(ò@dDĝÀ_½^ßJ]Ù-÷F…$Ù ½˜@qJĠĊCDgJ‘*&ß5ÇÉĦ?.赂Ùµyœ"nS› úXñMĦÁRA¸gŬŻîd‚·ì† • Äú§™4Gíċä_`|hÍ7­ıoÍĞÖÏiÖûÖüaœƒrm/[óĦ5Aġzâ'w"³wŬšï[óĤ5Ċ·Ó)Dò³if> 5CA;ä˜fç‰ µ—=Ñ9NJÖY”DPğï§ŝ ¸+„ÀŸ^ÍĴ>ó>Njjƒ¸ßŬƒï²hóSh€˜)θR:לĥğĤ×˧ÊvÈeì_†9şó“ Úf#mP>Ĉ“œCÉÈqĊÄʰz‘3j U³†êVÔ1­ ï4E ó4`â‘&A—ú´DÖŝ„.6ü„PñTWD‹k”ġiÒMÍıt˙c+úiÍ}k^ áŬ´ö˙£°f3“úŬĉ_9ϲĴDgGÌĦs—/ ô×Rû W¸"ŭ÷ösVTq4İ7­ED÷Qœƒ·°|sxIĈŠ%Y-8ĈÛW£ƒÀìeìáJ!ŭŒùŒP \ǒ:;°éáħXĵÜwŝJß:ê1SJ˜Ün·:™y6­òVĉxžÍcĉóÔŬ!–€SÔ҇] NÔ!z×Ħô'v Ĥñù˘O–µìù7Šżp”Èd*ŽíüĉëvËtHñgi8Èì;·­Â<ÀԚ^Í<öĊŞ8%^zrYù#ÏZT§­ˆħËq¨‘'Ozp-yEeXÉžŻ¨àçäʇ’šÀ/bÈüˆp>{4¸t~j=Ĝ˙‚7ßŭĥ5,|7mŠçpÄ{9˙5í0g‡)ôÂëUjĊğK–·ÁÍëš÷ÚQĵ§TJÄ"/yô\~˘Û–ġËR “ñĆìJ5ħJżŝ‚ï‰Ĵ…,ë#&všä>qñéT*$dP­Ì˘ğ­ĠĜW䳏>ĉĥ&µ,Ë_İT:ìJ’:î ˆċmŒÔċb86„óğ‰5Mž&‹§j"µ³‚™-ĵ ĦŬsàÔ5Şiêz 6ġuşĵ¨µÔµko4Q lĦ\9ĵÔ=ç%¨fÂ.·ĝœ×+ù÷çÜ~™ßQњŞ.ÎMÖ[‹•×7gƒÑŠOĵó˘Z'Ĝ’oí~ŸEk¨=’ ·î„ÄÑßU?DIâu³żbE—ïZSoĊèìD²ê#O“Ĥ7żĦGK<Ê#àŻAùµ’9 ˔÷wċ‰ĤîEš%ŸÊpŻßm@GAŒ=—ùiŜ£ùiŝ0WH%¸T3™ì‚(O}Ĵ˜ “fZ’Ák„f‰§jìiĵħñĈX‹ÊÔO–Ŭ7XĞ1•BO*BCUŽĴôĠ,úZ†Uҗċi²!d{Y3qwġÔìÌ:ïW}|Üç8ñ'îDY?E‡}y͇úş’^(şiÛŭpŸ[<t)ËNјĵĤ0şı)ĵ p ܅ĉtW’8Ş=#×{BlûÁÓ­³àèB=>ÇĤ·D™v)ëĈ×Ҍ].ì{lpڑpˆ=ġF#`/ğ<ÓĉËż*FT…’è5hû9“ Ó⛠vû4'2àˆ-—7(~ğ­ 7pfb¨­ıĴ„ÛŒiİvYµ;z+lŝgÀŞÇZ“VĥùálzcóUkĤÍ]k^ËÏfĞv ¤+’ĝùˆiú—gĥ &š&|öC¸óœµÌٞˆ’`oĴ<*Gò (MœżƒıòáZ™3M–ÑŠÔûò W–M=FġÛe·|ǃ$o-dó}[èÏFµ,_‚Â,Ġħâî¨9}œûIĉĝı§ğh#2Zĥĵz÷•Gë%[mVyÙ/0r)‹ëµsı°+ˏ_ŝä>cœ†Ç§Z@ğÎÀÀeÂíXCSAžÉUŝ‰‚ä ĝSC"X§m½Ċĵ~ÈD´˙>§*ÌO"ĝ%á³*ĝífĜÏyuXŜ9”Ru— _l ‡@ĵ&> (CÔŬëh'#(÷e9½5Ŭ·aĊ §É ˘ŜBuÚ~+éR›‡Ö|ٚ"òĥ5ïZSdà÷ò³•œŠíq(AïçŬ}bZ…8_4u³„8”ŒcJäwĊ ÷§L +úHÚÉl²<™ħ lıÏĠñ”ġ7¤91N•ĞaŭÚü˘âÛyÊôúí:Bùmġ‰¨ee˘d³ıĠàĴëkşöè)çŬgtórIħ˘&âË|V|TéP3Ûlë Ò˘Tn”6]%aŻšGá‰ĊˆĊÂÎ˙6!a"Ò(ÊR~*i3Â"=—F|—O\ıîßR1ô.]:ş†J”ɧĆż[‰`µĝTwϤz2UwĠP¸¸­(ßÒ+ñÉD·t{yúbàôâ P~ĠĞm~–6U'ĈçĵÎúKÜIÖ~°¨Ž*\Œ°/(Fğ@é?iâùÍ?/•GK-Àh?´f)=ˆËË&yòZ}mî[ó5ĊÓ÷ÂĥkÍmk~3]ì0íĥñr-^,XŜ§Ä…7ŻZó06Oz…ˆA.äuûUċckŜÉ–ʤeƒa)[Ħ˘Š¤~3 AVD”Ÿ.£i ĦcDä›İŽƒ u#Ĵĝí|‹â˜oĵXëM- ĝ0]vWĵWŸ6Ş5_šF=´ÓÏĝŬ. ½Z0ÒçÎÔùżŸ% êÑâ“ŝüĉÌĝ‹ġ—wgßĈhµÒç•P1Ú :ì<ÖxkĊ‹GìŽW0ê `?Àñ9}ĵD şáxC*8Ŝ¢+8>ĵtĵ÷Ħ Š->…Î@^áĉ ·K¨^93h£u;/²•„bq½.™rO\ĉœ·Vàd– 3/ċR5ew(‚ ħŽôĤCo×>½âáQ­íJž -g°^BäñLurr|zĊŬ˜˜J$~„–JŸW 1ÉŬİŻûîg 'ħĤ)î:\q½½Z0DĈ˙2 2`M„Ż÷„Ì’ûWÜÙèL§èRĴy™2Ükùû~%¸ cĵR ÏoÔ#‘4  ßˆc—ûä£í3x5!µ‡”ŒŬêĦêċKÀ§ìHîeƒ ´¨ Ŭ3,u Íèĉž£‰ó'#_HWǽ<›~Wä)ç*hÖ²á×€'`^ĝ‹ËàäöCܗS2|q0ò…•[9ıìŝğ›îbMïÚfwmĈ‚d£·n!)x‡P‘-à3>÷—ì lš”S÷3²š-cB'ĝž—Â{mċaˆ"ĝt =\ZèCUƒT\?J8V^İM’&Zˆô÷²Ë ,8;>v²ïş{ œÚ´ùAÉĤA}†,çYPʁopLÎĝÇh H[XH юjŻùcj"³<íòô@>]êiŽÔHë ġ&€Ĝ–›…'n8ò fĵhp,Bòßô§ö4fu’r4j•Ğ8p–³lLÓÄÄĠ;”Jĵ­ĝ‘żÂôOŞz`L] úžzŠÌÑŽÍ 1 ş Ùît… êör)W!ŒÁ~.ı°-=Ïŭ4‹I5PږĞ> stream xœí[mo·ŝĉG‚Ù+|ż´hĤħ )êĜBú! Ú³$Ûj$˘;9ġżï̐ğîq“Ĥ.RĝƒG{\r8ŻÏ ı?,D/˙ċ˙O.>{fôâĠöH,^ŭp$é×Eŝïärñù1Œ°ĝ¤"ÊĊñË£ôŞ\ıÖ÷QÛĊñċQ–Ç˙„ħNUcìuŒ0ŝĝôè›îÙr%z+¤Ş{şÄa2DÛŬ½WŬuèvĝXĈ(}€Ç²RZ×}NO…"t·K$­ Ĥ{‰u ÚşïŽ˙ŒŒΈ½²R Œüfı2F÷¸(KßÀl*È€‹"x²´RVW²;)Ğt›‹ċJkĠi)Ñ;xÑ(àİÌĝ+xì“ĈvgìM\D •éĥ8‡îuŬ9./…vĦğ*sä͸JŞBöAéJŞ>‚$q£ŻŽ4Èpñ#(ġOGÁXĝ#,ĵVĦWqqy„ò˙ĵ8zŝ@½G`Íû…Wş‡Ħîżéŝˆ,(!TôŬíCKgğġŸ!l¤­F-Ħ{CŒtÊF=0Ÿ…Á^ŒÄÑRDۛî/8_„-¸Jˆi°SZuŻ+ûY)×pߝ–UÊl_àĜlwoÑ|˘2΀ÄÇħëKÚLZñœ†êUĵħ‰™ÒĥŒıëċHı),9mà<ZU%C³U•˙|wU‰›IU˙À…ƒÂĊl[żŞ{0Là!Û ?FgLá#é…@qĥÈu!_òl™–İ94 2Ÿ.WàxÀ—ìˆYE ŻwJ€2MpÀè |P +#Ĝ&“úĥ[Žaá#fȵkŒ1&éê4éÍrNóéEk´Ż4ûí’ä2ħ7ĥ‚0"´‹•„ù HŽ6ô0)qŸ”O ySÈóB^rWÈ ­ˆßÒiÍÔà¸hàZîÓ£z9#WȞŒPEáËÌHxôöAꑠF Ĝĥšl WöÎÛa5ÁíŞ½İí40a„>áišĊFW1‚q<Á·ÁÒÄy}ӋÂH­Éô İÉ`Ġ{™Ŝ“bzçÜiGò˘§…ü˘9ög°Ĝ`{o,·XÈ`ħŞ3ÌdC1YfYšqÑÔ:ˆ-ރĊĤ”Ö}\ÄvUX-äċ‡ +0D"“•ħ ì8T²’ïĉŜûŠĦĈMWK>ġÄo MŬ­ÓŒü{—f‰˘vġ%A.흛2;ï0´ˆ(ÁóŽš˙ş™/šŻ}#E€ˆĈìĦd :Qu94|JJÙ;ŭ>uo(şĝ°DD>u§ĤBzˆ3MSžZĜRr(½~•rà_Ù}F‰Ö H#)%ĠN³ ırĤ>˘ÇPg™ÊÇüç!£í`M`@rhGËÔӛƒÇVà_.Ġ™Z5m a1ħìAm°•“šH²&ꌭTw½£çÀžDÏoÊBlšVR²‡¸.ñċÑñŻSy!˘@WKf&'´á7'èhĵċí‰Q"ƒ@ІlN]“hM Wĵ\“µÌäl'euf iEÀŜ_d`ž¸Ĉ™ôٖÁšbeËĦt K$t­5şÎsYrQ¤(l¤ADô>Á,ÀÙc$=fí+²Î ÜÔw’¸ôLï'‹(—M£óßÒd^:7ÏǙ¤è\8"€I~Ԟ‚Ò³Ò7Ğ[*Ĉ8½': á×İ,:Ğ˘ÛŬ&^jóÛĤ—°_{~½K^™Zˆ#•œ`Ü8ĉg%A˙~ı²T zž'ÙÙŝ\‡ĞĠk_`ıúi°ÉĥÍĠĜe…Oš3\NyĜGƒ3‰M,†[ŝsÁ,nċÁá¸Ŝ4Ĝ–ŻàC&‡ĥîÓ|Íı’íñlMòÂ3Ë척ŞB,Şż¨ğÖë×VQ‘ԗö፭ÉòĈb]%ïŬsˆ”É…IkµĞöé"ÙPc [œĝûJ @*BXA+w´ŭyŝH~ÒÀ$˙÷Ĥj˜Â~hZÊù}Żħ—nÎ ôr>*ı!(}S4& ù]QŜ“"?òËB>/ävnĝĉ„–ev˘ÌƒT˙Ż–ûÔÂĈ2‡eö¤Ż›ŻŬ4Ÿ²×ĉo~ruܔ\;œß'ċJ‘#vĜ6'k››ìU™áa@`ÌÚż+¤.~Ë÷mĦÙÉÙÇuï–4ÚMĤĴİdŝË^´Ÿ÷[>0•üÔĤú¤)ĥŭH&3{”)…².ċI² ¸}<âóĥĜY7wñ}sÀĞĤĜĵYMU˳Ĥħ Éϛnr*Ô½ÂĠ`×Ҏ§0sWÇß]Ŭ^ĉz5ĝn}5ŻŽ Ûb úzé-ĥ–°%v‹ +ryKġĴÒÎäúofĝ“KƒġĠ…ñrÔ=G½xĜŠVS]–ŸFÈí3 ŬĦY%Sntí]ÔİmFWÖÜAgŸü38~ĥN‹aĝ=ż|tŻ4÷€Ë4<ë=żsÂY˘L_꓍J¨N%×ì0ùigäĥ8O}Ġ(-îĝħñ]$žáÉLCŠÈŜu°›€½ôÑ 5ş”‘hZXÂŻC”ġO‡'w} "…\@ĴñŜU_?ëŜ( cñj‰e=j‰×súa,° 0„˜½÷8wµƒ7i“BÑÇtÓĈ‚­ë˜âž˘v–ÓĤT‘N—mÔÖgċ `Ċ„|µËÂ_ÑËŻË|?(OxĊ‡³ÙDç‰XĦN·˘{Çô³J*§df5Ïp–†¨yŝÖ9™Àĥ)Y˜Àv@³ĵ(üşáËÚ P.Ŭ~S•OSGXĦs ,k€Eç'óajÁĞ 9›¨•7è]9 ™Ú/³P9Iñräâ ³‰ı™cݏU3³m2ë xŸrö÷KjĉwÁÓ.éÌ$(dào‘U5°aDYEîçËñƒ‘“”Ï„•–?Ŝ%ÍĝêwZ––oâ"qfó·ٞ6•üP@– H@üSÍĞ”btC L亐§…|ZHöÚĤğéSgíPIy^ȋBžr<Íİ”ŠçK~<Ëî‹8Gùêèß'(ħIendstream endobj 219 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3211 >> stream xœ­WiTTWĥeÁ½W…R£÷iŒŜÂ)(ŠJŒħ5éApDq6‚ÌE1V1 Š 2×EgŠI”Ħ*"^Ô¨qÀ´i•×Ó/ѤE[ħğWö­>ôzïYŭ’ïÇ[g­ZUëžğÏŜß·Ï÷íR0Nŭ…BÁúĝ{{Mw|ó’ßRÈ£úÉ£•ŝd£½Ûà<šäŭÑèħˇEŞÀE .N-£TwŜÀ+C0w† f” ….e‡>1#9Fmp›1ÉÍköìYSÜŜ™>}ĥÛĵMrLD˜ÎÍ?Ì­I3ñnĞô1C†ÛĢ †Ä9ÓĤ§§O KH™ŞOÖ~8iŠ[zŒ!Úm&E“œĤ‰tóÓë nËÂ4n}yNíûôÑ'$Ĥ4ÉnŝúHM²Ža˜1:o½O˘orŠaaê˘´ĊaᑚċQڕ1ħĞ×Ä'ĵûž',gĈ1Ìxfó6³ŠYÍĴa&1kf3™ñf|˜ùŒ/ÇLg0^ÌBf³˜YÂÌdŜcü™eŒÀ gTÌXŠÄ$0÷óŭŜëgî÷P™ĵâô‘S™Ó:ÏpÎgX=ÛÍ-äjĝÁ|<ħĉ·qn3ÀÀë.ñ. ]7ʅ*ùSdMñYœ…ĴRŜ„W…Û)_Ïúċ:Ñĝ#K>Êqâ–B¤š\ġ âêMWÌÇĦ.ĠϸŒ“üPĦòŽtĉ@eŝ ‘YÄÙLĉè€+E•/ĥp*{ HĜaƒ’‡ápLħÊfğ·ô¸·Ç3HžÈĦûž§÷VŜ"öĞż?üéU¸Ċ÷ĝŜ%DâIŝ àAt]2dž~ñ5éO°§p•ĠA–X ; tGüĥÔÄàĜ ĵJ.Ìk•‡Úġôĵċ8L)ÇĦ^À13‘‘D˜ö™@Ĉ?žƒCqăoÑM$IÄ_ˆMUÖɜ&è+Hı§ħìĝ'ĠŸ@;4éöÄ퉅@ĜA°.;&;2Ê ‡Ĝ£²$ùŸ’â3ôTÚ=í^ÂaĜ“ħ£¨(7G\ħvcëúŞE&YOĤ‘a$¤àd27âĴÇ8üçÊ\Óĉm;`³QKFx, óÁ·!Ş+úrŜ5x€ïkgnÜÙÛ_= yÛĵ_g2×İ)md­„clòàVĊ·”şu´>´wÁ}Ùc)ÖíǁÇ?}…“Ñ}ê§à°­ş(u;G|\†J(/:\9Î÷îú5§~r‡PÛ\ÛüÙÖ%dq[·vCHüÑc›Ô*û8J¤U²s"ÇbIiçˆÄĤ‘˙H÷ s€Ö*öaIˆ·ZÂĉ Öğ dş˜ŠeÏXœ{gï'NĵÄĈcžsoe˙.e˙$Ğ’çhÄo‘ùUJ\ƒiÂíŭèÜ#[@LJ7Ĥ=Úhiŭ, .pcXÊÂTÑĝ%sŝ½7­Ĥó)8Ná³:ï]N%‹y6ù­FES7úw+ñüû>ŽrÒ³r·‰›Ëôğ5ÀûÌH³áHRĊvucÜñœS;Zsşĥƒ?œ죓Ĝ,ì3o>ò j˘à6ÁŽCf¨8$î,Ù·ggqĞŝ질:~óöċĝ†­{ĠħMÚÒŬAekÊà4ßuÓtĝŝÎ%ifєi.¨vVSGĉµâ JL”pnâdHJ\/U"¸*ˆ5ÎÒöí^û99Âĉë´k_½~Eĵ´†[³%Z ׋*{ %¤E é!ùôfÙÇڇ %6ş "èò‚èbŠGcRAòħâħÄŭê‰rÖâJ×°öáç‰-˜OZ~ë EöSŠĴâÂkíÀóò2ák8ŸèeK–ĞΉĝG–üÂÓ6Îŭú§uçáúqÑ´€Eß]ÎçŸ -j™ĦAÇ>èĦ e`-™Äj §B8]SAۗì³Ŝž‰TeŠA]^’=‘]S`‘K ydóÉ3êêİδ†gj c4bDŭÇ%zJ‹k€ïïCG5¨# £ ²Ì·ÄmÉ[m€•ü†S˘/zŭħëN%cbéς\=sşnÜ˙×2?u î´oŽŒ]?Î]sêԕ“p Yĥd lĜ ½A… è9|hĤœF ~Z{átóÏ=î’EòŬk@ŝÒÈ_^ks7ôôwl%ƒMe¤€?,…‚ÒÔ£sP™Mëŭa÷òjzw2 r·Ġ!éÉz:½ä^Ìùĵ°:ŻÓXÌÍÌꊴ­­ĉ‰X%ĵ ß°ĝ,˜ïd´Z…Ç(g?^èÁéŠ'È(1Fŝ—pRÛjn?ak>)’ćŜŻËŻ-¸ÁtÚ|‚ĤtĥÈÖ7ûùËîm-d“?ë‹ċCşáòi¸öhkèĞpíVkûĞpĦ öUÀ6H{Çqá9ĴÜş½Ĝœ'Ö0×ÁŜštDĞINÔ|wóîŭ ÏE9‹6Ùbê-8:\p°}–û%Lòœ%vö+½‡€?ŬûÄv˙ÎÑġwè쓌”żêäè†Òßí!J:˘¨ìet¸ûÛˎ½yNi&˙,ÌL5ĊUĊ(’ ż1¨HK5"ĴíóJΖ˘Rcm!!•ï̑ÉĦ³‰(tˆòĵßôŜİġÓ8z…§~ó3û —{.ĵÀ=äéñŠr#°Ûé\zިùġ„}‹Òġß­Żì¸Ï’íĉWüüÀÈu‰âĤûïǁĴ×-ç˙Ÿfû˙Óĝ/Òä’ì[İÀf‡Ċİqş4WžÍÖKġ[ò!3[$Wz;сCáá8Ħ‰´ÁUhé£g.•dy@ÚI¨#\V;>·uâÚĊ *{jT+ÑOv`'t•vBĠWċ5`šÜŭ‰…ñ› œİÖ·ĜŽTŸ8wÓòÑJb]djQñ¤' ğçîۂaC˘ĝ'ò@ˆ…´úìú ŭ'Ì_xçKb|‰Xœ‹ÀĜP˜•lˆrèĉwèŭTQއ”´ëĵ…§ä§Ê*—ö`°Ĵœ%K9i2ĊN³*]ú·–ş¸ ÓìâjrQ1Ì˙f™YÏendstream endobj 220 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5489 >> stream xœXTTçĥ>Àœ# Ö£°bÇh‚Ä;VEĊ24i҆ĤÔĦÌl¤KŻ" "0X$5Qcb˘Ŝ$Äè3z͍F Ùî]ï ċŬä•÷ÖY,ĉ_çìòíïûö‘0Fƒ‰DÂ.wXĉ2÷5ŸsĊqñĠAâxé6²ëe^£ñxfè²%'lċcfR03:ù긷FˆüpĴŠžİDZ´?*Ä×Û'ÌÒÚcšċ\;;ۙ–ŻÙĜĜY. ñġp ´tp óñ p £ü-‚<|½Â˘,­ßò Û˙ĉœ9³ŬBg…xż=mĤe„o˜ċfŻPŻ—§}P`˜ċ·/Ëŝ@g÷˙Z°?<Ì+ÄÒ!ÈÓ+$a˜7—. ZĊʐUaĞ×(×F¸EşŻòpˆöôÚ¸×ÑÛg³ŻÓ-~[ŭĉ6oŝëoĜ.°{ÓlĉĴÙĤĉ 3ÙÈLd™IÌ&f23…qbĥ0ÖÌVf³™Î833f³YÎÌbv0+˜ÙŒ+³’ħgl˜UÌ\f5³†™ÇĴeĉ3ë˜×™ġÌŒ³ÁŒdF1<3šŒe,˜W˜qL3„1g†JL$ĤÌBZĈˆ‰gK6IÍT6è…t½´Öh•Ñ7ĈSŒËğeĥ²BÙS6‡3çêĵqM;“M'šĉšöšùš]b9ä‘ùVsşlè·† _0ĵmĝ?F¤¸>réÈżš:Ş“_Ì=mtċè/ÇìS0F7ĉÚXĊR1Íĵç!èÑF/-—ˆğ{ìxUİúP(„€:EEÒ{ĞŠuPZHZ*„Ñ^†:¨…›P~×l˘ž /ÊÏÈ­6³GĊ Ùbcfh€ĦĤïèL–ÜcxäHĞ19(3ï1½h˘“ %¸%Rñ(^âżs‡ Zîà³ÄWà Y”dĴ`?ÌO9ıaŻ`Ğ´ŸÁQzŭò|{ôe‘éêĵz˘"tħ@j˙ìkŜÓBÓ|W‡Uz NĈĦĝ_ĝŞôdÏ2^ÑŬûÄJ!ş°h÷ĠƒÇß-ĝ„ ɕ¤Ú£wà ÷Èĥ‹ÌÈVòU¸†}^ħhûJÏċd°œL#_óĝ.ş²8¸„0ğ×ûIXııx)ıI|E'İG3,@3İX‹A<Ž›ó”Ì%ĥó'’ÑdÌ£Y8mï?ĊђM< 8ĝÎx·ĴI^ÙrŞTïCÓŝ’ ropWnŽ‚yOgœËqmşë%˘•˜Ŝ&íIè™ÏWAF¸°dıÓÙĠĠKÁ‚$‘Ùd2ÙKÜq™†j´GÍѤ$9ŭ@BÄkä‰d&áçÂZ˜WêtĊ§Ùï< ßŬĴ†ÄBjZĵ*%-¨xo–7pd:ÑpXx}Šĵ6E—œ -‰-!àĈ½mJ—ġĊO‚„ärMz4pJH “–UQĥŠË…#e§|ŜƒR°8 âl°.˘TîŜ蛵5o]ŝĈ|8Ë]{(ÍZ˘Òcs Ĝ¨€Œ*ıùKŽbÓU/Žèĉk8–"£ù/ô²Pµ%ĝÁX´4ZMfA A!ħŝ n°Ĵ nzž ŭ ž—Ü8ĠùŸAˆì˙öë_uĥÊŭŜÍòŠéDĦÉêqqıäG Û!mRô'ó8IO&Ħ“›LcíjmĈíûŠÔ³VwÂ>ğĠ~á–éĉÌ ôß×Ğó—R ™Sz,Ġ÷CĤː_hÏ[/ ¤ùyÓËûòë&¤ Kğġì1à–­Óŝ MôúêúÚk…§°‹œú³o(gÓĈsżÑ#v‹ĝ_âÂ.Ŝ½aђԚó>f‰ŭo8J`§^üıú|ÒߔáÒ,c=렂“rшÂ鍁ħšHóÀ£44ÒËĵĠSÁ^SÁğżQF½Oˆ‘‚mÒ>ƒ6z=ƒĤ°ˆáS*D^/“Ds>ğ(3ç pzÖ[­wĜjĜÜwĥĥ2EMJ‚œ &y„ÇFózY˜z%=› ¸ïĜWôŽÈÔĤTE1ähsË9sñ‹8ŬÄŬzJV8GJĊĠ4Ò.½,D=‰"ÊlaG Bo";k—ݳjÔx Mı%upŒ{dzÒßÛ'dגÏ]ÁQ.>7PhĜ=žâ>ğ$#û˘!ì@u,í’;Ä$Îĉħ4ìÔùr˜°Ĝlüǎ4jšÜöS—ĜŒ¤Cħ™‰ÉyĦê4•&m1Ù4–0Xf8Ĥ^EÏû+ œÇY½³£2U•`‘OSŜcğIqn¸á£E%dde—ÒÌġÉ:tŻĊù:I#íğğAxŽ´ìCbċDLRlŬ˘jĠU4—İJ£ó]n5”÷qĞ—Üƒ%Ż‘y{ˆÔıˆO>§­½\?²Š¨ĴH„ƒòġéP U‘\àgÙFùípםŝ;2ġßh[)Î_R`eцlĤŠ75î Jµ,ìe­ê)·µÁÑ~çİ<”éÙ9òghŒR2ÎĜM!ĞÖ^§ x :N­„Wt¸µƒÒ+ĉ¤Ç³g-˙{mùĦ-)+)+.ïĜv>…j‘}— ŭĝYÉxǝ‘~îòCüñ³çJÛèw€Œ\³6‡î•ûğîLƒU°÷ìÁJŞĥżJqOTö1´ĴЁ³¤âbĦ—íPżÛ`/Ùï'[ĵh˜ ²S'^ÓK* ]K‡òY…™9W (óU§ŝÏáH?ħiiɚ4p"£˜a8BiƒhĦ†*‹½“SâĤÄY(wûÙŻ„Tˆƒĝ,múħhĉtĦŝĦJߝín—ïĵwнœv1éfjAVĦ‰TôÁÁ|A<$Äh4q)‚*r˙ê9TĴgžş”ŽcpLö%uŠF£Qkäiiħ „skŒİh>|ĉa³ĥû•ԁ°äĠïĉàTœ[\6ÄsušzF|axÈ1É•x<‘‚LI‰Ù—Vċş Â5šàÔ(u„& ¸0…ĴJûEŸĝ9àËÂXCEB335éPɉçÓYĴéŭùP|VB X”@VŜĦ|<Ö3hlşĦIJZí h¤× ¨í§HñI·žĝ²JH„D%4hMİûí¤âzq:Ÿ›ZÈâÊ R ˙’Ċ“%Ĉm²Ĵï*ÛQ ÜCİïei*‹ˆ\(DSY î0v“%Y…;‘ÀÙÈ~=CE³ ,üÌàC¸v7^ĥ§ÎžVt”yĒL|úZœ?SĤ;)wfÑŝ7ĉY"é}Èğmp‰JM†ŽüˆşÊfyŭ…KYU íQş=4‰ĵä&tŞ·û]dâ#İè‚Á|UÔSŬŜuFîÖĉtx“Áĵ1™Œ –ÏmpÎ8Ġ]Rt’c4iħÉòàµk”ôÄd Žğ Ż3ÒĥĤŸĴh*k8^ݧò’KÌÒ·S¨ß‹kîÖÔ§ĜkÑJÚS…ßòèCœBBH(OĤoâ–Ä ÷Ó˒ò°·@zÉu~-ĴŻ÷zßġfÊ?¨û nëÇí7>ĞıD=ËeEŬî› ¨ŒXÇ/ĜnâğEħˆş.|ÜG-J½ñ‹ƒ`Pa™ž˜>—½ĝ¨X—ŻĠ¨³„ ‰Ñ ä<˘ŽT6µ·z·­°!R/ “—*n‘—nzréŬ‹šħ³ß+âšÖáEߖáÂoï=Gfĉ=b'ïÙ?в?j-">áqĜ­ZĥdŽœÈħ“zşKdWöèvĈ6Jêï`hwÖ)ŽĈµüÙà Pd ™óŸßèlŠË“×Wg–hÓRè˘Ë) #),ШŽjpS¸+£”‚{µg mаċí•ŝyîmòèÈ(*=ŠŞ½1ĦÉa°™sĵĥכwßğŭÍĤşÁµzÌ£ËĜHIWdÇ5SŞÏI/Ê?ÌĦi?>9}>ıìwíûùò ĕży#ÖÙÇguÒc½/4_½Eò_Ö,†˙dӚ²cE€Á‹~/û=Ÿ^ü˙oZ]q:Oè°I?˘ŻÍh5fäñˆ`štŸÁ{ܳ w‰ƒkükC^ô5ä§_mÑ vä;h*k†¸Êàct÷\M/÷ßs>w4•ÀŭX°°$)#6R£ŠĠÈSĥû+ƒ`¨'=âFHîTŬ"ŒŽ²\9Oc½ÚfĜ9nÑÌ' ċĉxâEìĝ'(Ċ)ßşŻŜÓŬß×ËĞŜ·ġ¤U +È:ċ—~çÌ?Ħ[ïQ¸:<q†A™âô=l‹ä‡xóĦ³ĊġĵueÚgPÈuè.=yr'S!d(AS6`–Ñ‘5˜wUš&!QPìİĜ~r:ċˉ‹çÉêĤ…ċ眏&ż{^ TŽ­ NĦ|‹Í#òc8%I”BFÄ/ŜħßÀ§§çĉ ùùı‡kj.îşkĜĊl>êîŝ‡C"İĦ ?6ӕŒ·ĦÉšs>ÍıĊŻÁÏÏ£ÁŻĦĦE Ğûr.J(RWRÓYìµfwǽ½!26S›(Ê(/ĤîŞ)¸jŸoH¨ÏĤ>ğûíı炘DKQEQöÍ9 ~aNÏ;ŝŸSe$Rn.Jrîá$àêŭ†ÌPÈş´Ï)ƒ~S9CüĤ‹rlsÉ ş\ŭâEĠ ĝRĵ‡:GüX—Ÿû‰ÁĞ#¨ƒ„ġËiAuZRjr*5$d-™b,*Ĝ?‚ÙZĝäW0żÂ,Ċ!ÄflvĠ —[­ŭˆí€Bhëw*1ñé3R3â )wŝ§Ċ~› N8M³{x¨LO?’YŞ-O/ûŠÁ-˘Z‹bĴbkİU§ĠĤk œëΒ‰S6²<_ı(ˆ ŝti˜Ëêá.t¸K7ùBzĊ'ŭ ĝ7ԟé§}™~úÛL\ôğ-{ú¤=÷(<òSWZ”™IĞmŠ+I °SŠ×p˙ˆtÎaûK1P†ÏŝXóžIżZì| &[,ù‹&ÛKjÀÁ£qDS~4!Sĵ‰İüÍßó?˜qrƒ>’–˜ùİèÜñꤴ!>%" *+Ĥ0ž"²_ŒŸïÜÄĦħÚÓ3ġ/ĥgáúX˙­‚[û& K%1&ÓiŻŝZĴ˙÷.ŝsp"MĉÁíĈ’uT­x@IsQĉD–Ċs´)q˘c.î)Ï+‘]ÙĴŜ%Ĥ‚‰‘mıÙàĈ\33”T™ I73g˜˙ŝB£endstream endobj 221 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 8106 >> stream xœµzt×Öġä́bÀb‚ dDoĦj „Ŝ1`:Ĉ½áŜ„ğ-YċHrïUĥ\mÀĤ8€é5$@€@B „örÇıÎû˙+É&yߗ÷òŝ·ŜżXK [sgî9gï}öıcĠ½%D‹Öl˜2Ùôż)ü ?¸˙Žë~•·'Y½CġYĝá;ìû[C/!ôêw¸)6ü–~¨ıríK ‚À°¤EAÁQĦğĵ}‡Œq;dÊìÙ3Ç™:yòì! ááÁs&MŠˆˆ˜è61(Ôûƒħ‡Dì ÷²Á3Ì3t·§ÇAáCÖşx1ïs˘ùsQP@°4Ü3tȚ Ï@Š˘Ö/Üş0hÛ˘àĊ!KB—†- _.]ħ{e„ëŞH·ĠQîk˘=ÖzÚ{­óöÙ°ËÁw£ß&˙Í[&O™:í½éf̜5{Îû#çv3lŻñ½'ĜĈLœäÒӚ˘†QöÔlj8µŽšC ÖS#İ Ô(ʁMm¤ĈP›¨ħÔfjµ…z—ÚJ-¤ĈSÛ¨EÔj;µ˜šHí –P“¨Ôdj5…ZN­ ĤQ+İ÷¨UÔtj55ƒZCͤÖR³¨~” %ĤúS,ġ6A  l);j 5ˆL‰(Žb¨]Ô[ÔŞ@ġĤ)kJNQ}¨ÔAAOjİ ĠÒ žwóéöħpğóîğş_³ÚhuQô¨žŜA˙Ĉ,bžżµâ­ââa='ġü¤WJï%½?µcŬÖgTŸ“}ö­í7­_iżmvĜ\è?ğ?b׿Ŭ퀷HĥlçÙĥĜĊœ; á ÈÁvƒŜñÎ^nW!/9)AC6• uÚ0lÖ°Ĵá}‡ûŽè?ÂqÄŻ#ûŒ\1ÒidìȖQŬF]}ŽWZ·'m3ò+Êuí „ü°öĠlj*3b@)OîßĜFmuŬ¤füé ÍAm#ĦMU§>Ök¸‘Ŝj¨Òir4ZÉ4À èž Qhċ ° p€`ΟnÔ]ƒ}pލ[TĤ%Q´=ÄeÊêĴçsXd…ïXaİȚo#oĠ"ĠÛ nW‘çĠâ¨zÁârÚIËɍ4ǵĠPEž½×òìċ28,AĞ韟|)wÓÇŭÓk·@(¨÷0ȁ†‡`ôoŒ+ö-[ ÁÑ%h #ŭ3‡ÊĴüiñákY)Û%ĉĴ´ Œ‚Êö B~˙6‹ŜA;ġu{ëk쌴‡ÚQ î°Üuäîŝôµ^ ᐨRȰϳĊ,Ú¤ÒfAšäé‹j#í£\žàk4^ZÓŞRú”Ĥ”ĦĠĜh‹gáÔ¸ˆ€£ÀޤLÓ˘­‡&8Jóîwj˘ĞĦ²ui™ıhò²ESq²VĦS€Ò¤Ñ.ĤÚ4ènD·ĵIt$ zwún#cŬ•ÔĝŠí7Ú É}töĊ—Ä< ċğħHM×k3[9ÔWô˘aĈĉUÛgbĦäiû˘ôêe¸É<štżÍutóŻŬÖÊĵ%•´ĝgo•ì.̟,BvO˙íÑì[X˜'Yƒż`q?‘£*³^‚Ş:úû–‰Ëo™=BbÍ+e~²^Psíı/äŭ/‹ú~{~°÷ìOï˘·PïCb‡`G֜˃„‚ ûádċĦê#­ċà”VıTıÀz’JoĜ$u–:9nĉMĊƒ‡BŝŝÛtá\ZĵûĞÜĠÁ$ïëµ!sµš‹"#dòx…\‚grĵ}”’ZH·+7¤ĉŒ´7)”¸ÂNĞıP%ô§%+ A^ĝ[ĵ…îŒ_Ô¨ğNöĥw–)œŝ@™³_‚6ÑÖí^Rcû£ÍéWĵ_C¨a€ĝùiô ‹ŬÑ <­E3żCÄä@fĵ ä‰j.2 €Y‹·îEÇ%âPÚ²÷<žŒG•qÚ8PSşr J¤‹!SĤP@B2·mWÖcĝ9ĥÇÓñ4ìBÒŬ†7Ñx=o×j°y}Ŭ ~>ä{ħWh<„óë™rg‰ĝn‡OaöjÚ´UP ÇU $×\:›NiÙô90¨çOß!‰Ç}ğKÄ/ĉĞs„”ÑáB…ѵǏÖĉĈ…iĜ ÷^2sğgYs°$4PFŠ“ÖYî!/~)lhŸÏúWÒ]ˆêÂS7š‹84­C 4ϗàŝż a͐â÷Y€úRtJ/>¸.{:Ì,Œ´÷Ŝĵaŭ(²3òq†ˆ2›½÷Qёğ|ß ,^öŻ#ċÏHiÏÉVâ5ñn—Ŝ„™a۸ߋQˆ!yşÍġµŒù³x( ~QAÒ°ĝ8ż`G`}ŒhÔóÚŭ›_ĥĵ·™(Ç\µóFTżW€?FÛ è]ƒÎ Dƒï°]qŜµ \ĞPQ(ž ĥë¤MÙúEß ‰•„ŠĤËüÇqSPŠÈBPV„&@ġĈ",a ˘ $µê8ßĊJk~P—xòúáñmô>úŠEŬh,1UÛĴiâżKé~MĞĥ@+0#w7½@•Û(A ižİµ–SŞ# „ *Ġ—òêêük]8ñí…à½<΅Tt ³ĠˆŽXÂÜh@ Bŝ‹öılǑ7bQŝ†* ş;„(Í´“*ôxÈo ġCúۜ€g&úËMG÷Ħq`p( Ĝšçdz~FİM½!ô#e˙h€ĝ1ò@›Y½â^ ,bĥú¸Ï›é}ĉĞHN™ŻNK&R˘$Ĝ–ކ”ÜtĤ´”ÓjA[RzÈġ°şœÀ™>òÉg'ö$äI|ë<²\³HpÈ]žv`CUóCÔ-}Šż–Ó$ea`ò!½Tòƒ™vİ*Hˆç”ŠÄ$…Ò³Ĉ bIġĴ=—;ĝUK%âÇu!5òÏâH~ RcR 5ò#Í*0ħOq,˙ä›/=àž L6dJBzZúÇDtĵÔU¤§ÌosOİ£Ÿèd^’U´¸wÇ⤠•x{:Nta[ŭù_žNÁ£˙,ĝĠm:9ìZ<OĊĜ½‡§Ħ qì ĝ²jï9Â[™.CAF4ĞLÓU4 t?‚Ex8Z*RÏ2VÁHżÂµ4îó<ĦñzÍġËܙ41^Ëái1għhŻÑŒƒĥÇB˙‘mÔĉŜĉ*"ċ"Ԟ!ĝ˜£ê$=ŽÇm(žŝ‹Ğ~—‚Ÿ›¤·íƒ[`ĈOŭ°…¨ ŝĠUDezi !ÈoÉú‚B£ıVFzIrĉQB„h<ú ]Rú½ËÎT´ĥqèĞÎoî€rޏ£çÁd4žGž†C5µkô[§ ~,DRSüşÜ/¸*SdsI\0·3²*ú ]gdJÙ\.Ä´ç/Ȏ÷{Ħç*Í{”•ó‚R>NÈż‡²ÙĊݘ|D¸*Pa°SmégMêÜpˆ„$•B!‰³lqwT'Ï'ÀĠÚU퇵ƒ*‚Á]`îhô%H“çû£ÙfÄiSó!Ò²Ór*r¤ú³¨;żÛ(hFŬÑĜ‡Bt a'msĜ,_g½ıĥĵ=UAeAÒ]qÎ Û?ŝñĈµ[ıMyÜ^†_G7À%òDg•§Ú‘ôiàiĵ‘ŝâ}ˆÜşœ™9/B/qä!WàȁÒV&ÍbGÓírÚîÖpìTË}4;ƒPħäwò#ĝ™,ZŽde8~×äYC”~Ŝ°vuy֌pH‚˜ÄÄä|·Ù˘ë˙B.˘C|û \ž‘” va2äĉ) öušSzìN 8djÙĤÖeäñ!:€Ĝ=ûö­Ĵ266ĥš`˘ P‡"oÖĈ[`Qʊ'³ILb|Ş|Í<Ûy?$™Ì[†f—™W¨W¨b`78j‚-EuĞŭ÷˜µ€{îXżNµÛd²Ğ´FMÔB‹ŞÒ⤺”|(}mŭ…Ï>m›%ˏ!àKJŠ 6ıë=šÓZ=ħ ûĠ{şˆÒ†×2fq!˜G^-]f+–˜­Ŝ,şÖéĥ̂ÒñÜ@k4YĠ­ŒĝhxaËĥ›ƒş,ĠĜïħˆ(óż˙ÜoĤp_Nü3î˙ŭׁu¨WNN"(‰‚ÊU\àĕ ^ÀˆùÍÓ˘éë_ÇtòjH _yWˆäícÙ$½’lŽÁóŜx% Ž#Ì£çQ2ĵĠÑ.9ZĞ%|£†FòߺǧĵÚċ‚.+-İÛ{Ûj:‹şXĠ¤ûÔ#Ĥ@"l÷=áMÁh$Q—HĞÚgV ˆ{t~%l÷DÏXä‚ß%#äJĵ OÀïa7bë&âÉh)Z‰ŜEӐ‡żÂ_³ïâ_£”‡F}z˙güÎÌIktÖ,ĥè½Yzê~ċÙ#!ZÄ/bCŭÑG‡t…RÈ%(˘â!” /Ѝ-,ĞlòŞßĵdĈĉĦĤçúo˙Ġ q ‰Œ´e ÚW….™†Ç¨ġ•E Ğ,š'B½u÷ċwcĈïHë?,üEkQ˘bUX†ÀÇ"4 †nwBäiĤóìV6œ}P ÂĤĤ-âZxĞĦÍùìñ/2Š>d߃—ĠšşBƒ$+Ż˘ĉ0`tx°Ú/6T’œäN€Äx°Ċeûƒš•À<żzġvSLSh…¤qocz‰é€tj™"U Lt~BQNifEqBG„³Ü͕s­wĠI™¸téÎzOnI|l”/ĝ0âv üó=öÑ~.àÎ,ú~#²F=~:~§!îĝÖnsÍzXKôÒR4~iğ@h2_eG-=~âÈĤC:É9ÑCÔĤoZĵmĴÄrLfĤÀâe…¨Ûçì˙ż²™àlíÉ Wäıu{¸TOê{BÚŒ6d¨Gjd5˙Ġ·UÄż˘pôšEy4T@ž^—£­…2`ž î ħ}6ہD‘XJşTš^XŜ…ËUıdÎL삸aœğż¨Y÷#!˙^A³îô0(ĜkêŽc%iı@nPè[€§› ,ĉ…´^_~C”z˘]µ°¨¨~'Ê+úòİÛC[ Ê.2ZIĞќӖXе\çR<Ċh™­Z›šA|WÚġó9Y—Ž·hËMŜ3PAÄeŻÑĈYGİ:Gñ—@\öPlmˇ˙#“’bX [ğÑdĜbXĴ& _&[;~C€“é˜WI dĤ1¸,0Ì/ÎyòóH€ĴŸ>ŭ‘#†{Ğï /·$ 4ò$­·I†Ñlö=So^Àí6épéż-p˘S‡;ß£—ĈÑü’ûŒ˜$éŸïĜEŽ F+EHÉżeeuû­Ö£÷mŽ}żˆ"›ĈoB;YÔsöKLíp‰ññĉşL^ŸRGšUŸkOó3”é)j(S%IÛ#–ƒ;ìÌt,OÖİHĤ™DHŽ‘à£t$djui\nQÓÉğ†YQE^ZĜĈˆ%hĉĉᲓ°r‰ès:Â Ò€ë‹ ••Ñß8Ÿ”ÓŻŽCŬ%â_ó·Hl/)ߍچĥİG½¤ú›Ĥâż£ üCö|ĜaŸ¨àâàĈ²‚œ ÒÒµ-Ä)üR­^#IH ;T2)éŠôÜûŸ£Úüö²Ìœ9~XĊŭ§`ž g+Ÿ w [t—­¤‰/êÛxĵ²EKÏĊşƒ“eĴhOöŝóÎÍÂŭñ 2‹…HÄżâ2Ä,~Ž„ßüĴOŭ 9qÇ2ÚħƒA=ñ-v5œ—FµÂ—PÂÜİ{ù¤èĴ1r%^°•ĝ¨°-Ú;À~'é˙f—óßœ6|óLÈóŻÙlÓY[9ƒ"l Ş|E)*òĊn¤³ëв/ċçef܁|ROw‘,f.H}§àAX#IŽ9ÜqNéNeLĞ(xxè˘…)è“3¨˜Ä|,üŞ:~Ìô.k&ż“ŬıGħŠ™ ·\żqyˢ ;ì}8},ûYÓÑ6¸Â<›zfòè9 &FiZı܄ĤPqOŻÖNw3pèËFVßÜ˙QvĜ³…‹,ÉYu€íÊ˘>ój"[`­Ŭ‚·Ìžèâŭ³u—żjµ¤żñك ~„)ŭ+Ÿ!'&Ĝ Ñu֏ĈñwŜ¤ŬÌÊŞ-6†Jc’<–Ÿtû ħÄîF~$ûHéO§nÜċäÂı9…ğ‡ î÷ġXԝ˙rš[*Î2¸ïl ì˙KQMp LzÙZŜT}l_~1>ġğŠòüÒVNfÖqÓ8S‚^ ˘ĵ5ûż\ó'N íÁ›ÊчĤ•6_G4˙çĞĊÏ#;„,14óV-HIŝŸ}‰˜ZĠÍM]NׂFejrµY™Ĥí GXz¤Ó?Ò N_D hŽéSĜ Ŭ‘ÍÈÖê ƒÉMʖ%ĤĤ¤Èım˖/„%°Ĉ°ħ-²xw!‘ù‹gâ·pïÏĉÜşqĉ1ê^­ğÛ${Km„Ïá¸1#M£ĥíĜô۔¤xH•,')'G›–›Ċĝ‰lĊ|4½˙q~ù‰ †ajˢ-ŜcôŸ~A곌EôşG‹˙Ç3MŞÈîšx@pş}‚°}ú’-,…²²Hˆ“t|+Š‹„ˆˆR(”ßàÍlċ›XIÇßDħ–o Lëx<´èÜŝCŬ0)÷z(j‹(³AġRÔëĤé$EŜ­ŠöŽˆK”Ë9µJ­V£‚‚´şÌÏ.]”ä™xİc2SÓRe³ĉö•NJŞĞLRôŸ,³ĉmħüW‡2Á÷g…èNa‰ÖF~ÈĈ­4Â}h!êƒúċwŜDĦ“'NY†Ċ븭¸[‹4/÷>…­Î>Wĉ“‘ĤË$rëŻï–£ĞO?Ġۜ~VŝzáĊ}ÒQÒ²€l^\o¨Ş.+o„ĉĴûm<Sk–­ÜUWa:I?ì qœñÄÙÂ"2Xĉħ.&**J²b‘tĴeœH{çċCv 'ŝížŝżáŝ{\(†ւt,ܑĦŜ‘•=ê3ŭD`ä …\ ŞÒ(ÉwcÎài€=Ï÷‹q_loݘÇGŬò0Ŭbô?ˆèǍĤ·´hġ3ӄu ŬçG°G2Ŭ$¸â_n^Hc›¤µİJvâûj• âáÈJôŭ÷4&†—qn*yÄ0UñE{ÎmlY0÷܊ŭá͟?ŬĤ-â`‚l9ì[È:kĜËaÍî]ˆ-ÊËÈÊá´Z+F·*h­³£D.'ğR˜Ñš÷Ċˆĉş"FŠ2™9^oí ^L˘ŭĞ]§½ċVâğ PkZż722°Àa¸äߍyËáKRóüó#7³Ğ!݆KRÄ$BDeĊËÉĵûٟä˘!ŞEöìY\²Ŝtĥ‡ġHĝ‘ù]-¸*DMRvévÑIum8ĝ3ž.Ñ9é!Q|­ıÍÙġ%°z•ïÌ4µ)”Żò ”Ċê;RÚ,Îe>ñgXSvbí4?@ÈŻ$ş˜žo˘‘Y‰‰J˙íï SÉ8O.;)· -'GgRï72™Ex˘Ŝ˙™Xó_ZŞ”'2òşòü‘ßhzL ´яZ˙éİ`£Ï^‡uΊT.°É!=˜ñ˜Ù‚İ·BÈë/qé Ɋ~qŻċ£5‘ áÔt´*Â4_Ë5ĦĠIdÒN‚ÓtçHhf׳úN´u츌˙é˙aÊíŠdĜĦ°? ŝ]†MÛàĊ…7¸–mf~‹íßNƒ÷żĉX~ùh˙ıʆԠjÎC• ͋)IeĴz~Q1 Ì͋°[mìqµ'×£û̲^oé³{ġşZÖĞ7Eŭ__óÂàendstream endobj 222 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1470 >> stream xœe“yPSWĈˆ!.ĝ,iñ%*3âĈĤE´h†(Ñş "D‰13âÜRǎVR—€k­J­¸aь,2ƒŠR—j­Z•İž—ı0ӇĥÎôŻ{ÏgßùÎw($òBE‰U ÉÉaĦŭß0ŝŠâG˜h=:Oš÷4hvôˆQ󇭓a)˘3  ċC pd F4Eó6ĞŒĤB³>3ˢ JĞ ›6-b‚2<4tšrVŽÎĴO×ĉ*´–,]ŽÖ"e²1]ݳ*ƒ˘²,SdHˆĠj ÖĉĴ 6š3gŽ ´ê-YÊşµ:s.Ck̵(µ9:ċàÊ˜cʳèÌÊc†Îœ‹òË5ŞLfK^Z[˜ÉZ O6ŒGh>Ò @”„’ÑB”ŠĦñh6Z‚bPŠG“MF HІ V šŠJP# bİ T5ġ›—żWħW#-£é­tŬ#ÊÙDN~ğŒ/ċü'Ġċ†%nšƒĞlóş'Dĥ$nÓ]Ġ›ê†âĉ£÷ï>˙"&›#µnħŒß^ÒݜÔI7œzô`bá1ïÈ@2hñ"˙7A0¤Ż^pŽ˜Èt6Vu|Á÷n]S›kñ!>qšY ™Çݤ‰ïn¤šùN`XM†>?KH`Œƒ@¸a0ħŭbQV½Â~/­|fÙ\,' d %ĞH8 $)ñôüŝŞ&…0I-‡)NxÖHŬsV7 “/ħßċÖocɋG/!¤ó@4~~R~ĈrE]tßP·˜?":röÂá,ı{û³À˜9Ñ&ÇqĞb7¸”Èà™`M¸ƒş×A ĞYüÊċzY*i‡ïLYbX.y2§7µC,ƒ>Á ïT‹?œ…‘ d$ĝĊżÉIŬÄÁÌ·Ïimğz´ì(W|kM~öúl,_e;y½Ÿş¤žìĝ×|^Î 5LtrÖܘÍÇj8èžA‰U‡—ŜżŜżĤŽ[*ÈñZjŒƒ²ó14ż@èˆf˘HF~Š!rÓ2ùNfËı5­Žƒ}ŝ3ˆîĠx?bdĵ!Ïéä  ŝÍû{Ôì§½˜"<žĝh<ŻçlÑGÖßÉéĈòWx X–'^‡[T­ ´Ùh¨fßÌn QŻ(6-vÇ_ĞĵRV‡ċ?TÏR¤‰É¸ÄO‹'IҎG>´?+½ĜÀevˆg€?‹ °Y_[¨ÛY‚%KWnƒ)_Ġ” Z˘ŭ‘ouP@†“öËwZ$Â-Ó!q۞…0Ä?ЁÔ^Ízƒġómċk’а ì]9ûvĞŭ+ĥžĜ^ÏâÊ}ßż‘Èx°„Tƒù)ĴĉŒ~O˘%E$ñò6ĝ Ħ`ȍz{ċ Ċ––Ċé m‹ħ|j²ëğòùÛkg6eÖ iŠËĦĵjoRπЋ†?…İaÛ' zô;ᤴOŭŞàà ^?%N‰šOÄ aÙµÌ?—FaŸ°üżÇ”°Ô°2›ƒĈè>ġ˙ŻÉ#tëœPö^·³‹ĉ# “í9ÙҎğ$ê!͑-}êá hH›÷cĤ7Ž—ħPb4kbbĉjˆBßgĈ<hˆDħáᏙÍd +DĦC`ĵ–×ÊżjĤnvÂùNš×y‚Ù”Ó)f÷;5ylPš][UTݍ]ËöKŝŜí'̎˘ŠĠ8MŸş2lo{·.òQÊÏĥ;XŝO_ƒW“árŜĊ²+Ğ÷„N²ïÊ9ĥy·ñ[\+ıuöÓîËĞ •Ü{*ÏHÇ{¤P!}‚ ŠçàÔr¸X—„ xWÑüD(bác?„ŽlSSpšħCV+.°qä49-ĥ`Ğġĥ+@¨.p8!;'ËĞà5`QĊŝ †ĴÜ'vú¸r>˘‡t€óKİÔŭµÔĦżĥìNendstream endobj 223 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4561 >> stream xœ­X{tSUşO „ƒbJ€ˆsNFÀÇA`Ê Xú¤MKӐ&MÚ46i^_ŜÏ&}%múJKiéƒ ÚR)ĝ hQgfİ3wîuîN9ŭî´82êZ£3³şşš&kŸìŭ}ż×·™Œ 0˜Lĉ¤5›wnXúLôċÒÈfäħ"ż`eÒÉw#ğ&ŝ‚ñÈ+Ğ~ñDü c LaÁ” MÍ:9½= éAiS,&3WĴY“+(ò22Eq RĈ-]|Ù˘¸gŸyfyÜêœt!/5™·9Y”™ž“,Â˙ŽÛ‘›ÊKÄ-x)S$ĵĝôÓ‰dIrNŜ’\aĈo.Š“D™qÛÓó҅ùéiqżËċ‹âĥ$ç¤ÇotÉĝŸ5ı9ħ(]·97-]Èg0Osk× óD⠒äMÒ”× R7Ĥښ‘Éۑ•}xwN ƒÏĜÊĜĈĝ%IĈĈNĈ.ĈnĈSŒ½ŒW‹ Œ5ŒĊŒ}ŒµŒ%ŒŭŒuŒß1Ö3–2^el`ld<ÇĜÄxħ™ħŒħ…ùc.c£›9…yáçX3Xĥ Ó'è&>;1ÌĉOšJD˙䓇´?ĝÍCW§”>ĵòẘ1Wə:wjÏ4ŬôiÓżŒ=ûċŒ;3Ÿèc"Ş`dq‰2ÑĉA*Dk8ĥ =` –SE£Żĥçƒ@œ0'ĉo>H?$O<} ä2N~-´ıĠ Q€ĦHGŞ‚…Û€È7ú}!w³–ŞîëD ŸĝhgpßòŭñRİéċ5%AHD²iŞb+ˆb7ĜÊLĤ Ĵĵ^Ġ˘ĝ*™^Ş“QĞè>CİQ zÊYTí­pT9ȘˆóŜޏŽĵ×Y; sÜzí9z*ÍĦŸ Ÿœ÷ÖĉÑTÄAO ù$m§Ğ9i‡ÂïžİCĴĉóTÛàéĤ@ô6ܚ$ž—OñwîMÜ~*½;Œ=9•ġzG}X­O3%JjlZU–h†£ú0œ™2×^UŜbïğÛ–SǓŽÂPÊ9à"&z-@ ˙/7~_RO)û½ÂŸpòRirİÇyôÒÍ @ô¸·g' è‡ĝ›(0iŬ^ ĥßqZL³“ŠÑAx„fŽĵú1 ­z£ĉ•Ş×!STé‚r ]d£mhâ!1šûâ_iE_a}ê„Şp=êÁ “S7gşZĤ ŝÌ}3‘žµ•OÇ??ŸÚ·}mò ĉħƒĊa·¸Mvü/B] £–£Ì‘mĴ‘—‘’c2[\`"“µÒLÖ u–şRÈîhğ° ¨îu‰4ş"Š~t´eĵLÜż—)’Ç“ÉáÇ8X  k7ŭ ‡Yȃ:9&Kâ|6h€jyĤJŸ ZBá’ÖU†}ÇÏmôdŭ.#A,#U}iUY˙"²›N3Fö"UÍ[həàôw4o éoxoVì](s˘¸§vقóÄÛlgeäYt™¨R”ċ‹r ·ôgĵƒžjG1'?]Y™â"c˙–kÏpv?ZşUßVœĉ!³uj*{amE·ûdÊñ ôä”_í!cïÂoŻÈJ‰ts‹FkŞ1~/²PYdçğƒ^2jğ -°úÀ 6n V,,ÎÇ´O£=ñyvá·ĊĵĊ^Cwu:Èı -İçŝ÷ì=‘P‚ħ@MìO]µ„ÊPîh b"-÷ŭô Z:Ȋ¸#s8fğÉ£öKr4|µ|…îÑ€ĦDÁ•ĉòs‘Xr˘e°ċĦ!ʰù Š8“NZ’I/(/ğÙg%áú/ûxôGòŠò4êÈş#Ğañ\?˙|ßÑĤĤZ²rWwi´A äWĥ{ûqAÇĥj4ŠKIùék< Ž@½ïÛ­rĈùöfd++2+‚8Îfğë÷˜è¨THÖ§@ $YR˘Ï<ż£˜j…QOяv޳JÔŻ7ż Tƒƒê€.K'tB·#şÈĠ5H6ƒcğĠY·è^‰–˘%ƒ(𗙊^âhrù 'T‡_Ĝ½Ŝ/;_÷~ĝ#ÒQeó˙Är$ÁÏÉĞËkÎíÑW`uk-k:ë?Ô!€‹ĠÙôNÓq´úˆVe˜/ŠD ‡Ĉ!kX²1ÇR³Ÿ(LïÉNyˆYg—ËTë9AuĦ—ìAwXıÑò5ÜÀqŬžSmNGŒ!ôòàĴĜÑ_8ž}mù­?ıC(tŝ²5<­‘Œíé–f—gÏĦYôƒô"úÉçOû€Šŭœtô瑃s€ŜĤÎŜüâNàP4 £É•]Thä™NìlĦ=É£ÖPŠĞìïî‘vVDù ½†×T ½ùĥë4ıMPA8t6 ™B½2!Ŭ‹öĞTR•Ëh£|FŻäPPX$Sß'gßDï:›Î·€pAGcÖP鐢OƒTHħ¤}ğöµ˜ž3Úqż>yÀBµC§ċ8t@§ŝĝ@ĵPYĤÉ6pşìÎf[%ĠŠĉ! MúšnĥĞJvşQ__ä18niƒ&hÖ7F—ğœV?Ĥs •aR:”aĴyİŞ ï:rËdö £3Ĵ?ò'µñïRwv›—ż3kŸ´˜_Üç1=K4†.0•Û¨úOÎï˘ħJ”š§ÜWrˆRuŞ×eóWăò ×ät…ÀOÔċÛBa~VZ—èäé–öĤ ²z{ŻŞˆŻÎ˘GĞïu_ĤżIHKB"žĞġt;Rž.˙%g‹ï\ŭ…S`”Ëñĉ“Ĉ¨u1Ѥ7‘à* ½1²”3n$„ĞԢ֍zrZiTAÊUıÁwÚĴ)Öë`$ŒRF}q ¤s—u­M@“ÑSh~ÔĥÓyùÙ8ájmDlÊQ fucGûÑö³ĉ˜‘I÷ `EfFĉ¸ZíîÛ@¸ÇET…%"è_Ç‘lIŭis¨Uì v({Ċ ”=LVö[l’zQ/ĠÙÏ&ÑŭLÔ&ï³êHìïğu2™W­ N˙Ëŝ ˙YħC#uœtzùêƒ @엷ÛLĜùLTĜĉ­‡r" ó(ÓJwìéä]ĝú_ŭ%Dŝw„4ÙÍXı÷Ğñ݉ħâkR·Îùw…;ĠIז•÷µßìwÉwX‘ġ‘‡9 ¸ZBĉ‘ĠÔ×Û{“Ú6}›ġ lĝ Íĝĝü6µG­3‹ĠäêĊÏê Ĝ%ìéïĞ˙Ĥî4uìʙÖ@ÁŸBÄܝ1Ŝ ·ïÄş;-ጔˆ´L …=ƒ-ĈpUŸ^š½#Òo0xı4÷G‚=cÔ+ߑL4pĠ*cA‰]à¨%ĠÑ{)“ĠĞ1)İífCĝ1níÖrč4Ì6ħGż2‚ĈÜ2°9ìžÈä&~›~|ô­ïK@ĉp;`!·}_LàˆzN—=Aä z.cĝ=ÉB#¨‹3ú¸˘ŠZŠ9,%³ĥ+´2(€b·´NY^X“ Äê¤Ċ’‡Áé5™½6Êl µA5TރĊ-Eĵ˘Â•LFż@/›½cçŝĠ8Bğpd3™VÒ¨ïi‡ 8U•Âr‰_ŠCΟϣ™µîql*tTAÂ~^H@ĉ¸rʔV hA Z£54ßĈù1ŝŽù+rŝgw­( ê“qƒî“˙c'½ÔO·ż½–ÚZ‹˙–;ĝI8ĦĈX™ë–ıù ½Qg(½‡UA­À`e_CÚvR#§ ZNWŬl†+à N:é zî“ôş§Ÿ˙òǁşQġÎñvw£ž²9Ŭè…Ż,n :jĵÇéċEĊ :9Xu+" £Ċ˙2…èĤM8™}ÄpßCíJĥï}K˙ş³ÍÓw ï7`(“ċhċy !ĕĊċĦPukwJMÊB!=“‡ Œ~`â†(œ%¸˜~êû•ÑÉÊÍĊ)ù\5Oħ'ŠAjQù›lZ¨&‚n™P(ÉLìÎoûş:†‡°ħ1 ½½…g™ŸħUtƒžf£éhÎ_Ñäáġ—i&E÷ŭc~ž½YÁlġQ˜.=×1àċöġ³G6IŠĤ¤2Ó¤ñxʘÎĈíÀeò~ĝE0Ä£oX04+öôÇ>Nŝ2eBi~.›z Š@‡AàİvzĜÎËJގ–§ĥ síU$bF6Zŭ8aXdžR¤ĉëÈĜ/ċ‚†¤9ôz½€~üùSëqÂĝĉ,twz½Ää$ÒĠÙ[Vâ„ħËpsş Mœ˘BçOôàaó˘k™šúœßy£rçÙ½`ôS£O:ÊUT(ĞXHĞżÍt4Œëc&sesus÷[×˙úĞ™™9‡IŒñ]soOG3Ŝ8u!ù£Yħ4Œĉrî{_+üµÜT_WÖRÖF]F/ğñı޸ÒC‡óè…ÚïĴÀĠR÷ù˜hEy*FJċĵ ÈRâ<]‡I¤ĠĤœû˘=e%cŻˆ8!‰Sž/ä ĞĠê†ŞFœ$Äá‘g˜h˙:8Äypd%Çd5ÙÁJ˜Îb­Ñ¨*!w¤]]k’`]x„fâßI{‚ğû”],ġëzċ³Ï9ġıG Ä3+ç?ğjĠħŻklġ f“7ĊS‚EÓ=á:Ŭ 1êq*µéì“Ùí$=ŜşfwYÛËEç€À¸gĦGÑôFMç‘fJVZ5Hm‡]Z3Ï_Ĝ ÄGŝŝÎ ëW1jtbÒ(Ÿ-ˆÇbް’ wŬŠxĈʜ9Œ2/ĝxVì(ş†ŜĊħ–ƒ8•Ó½cÁnzĉÛĵe'Cou\Â_2‹ ĈgÊE£ÓğÓVnnȝSĞÇÒ ĥżcüP[ŝ‰·Ü ħ_ĦGG–sÄv0//Oá–Ôֆ‚!r\Óĝġ×o—ôÔċ;˙N› .3ylÓ^·m\€N/Dz§Á.²ĉ”°íD°ÊCÛ}ƒxÚûNœ{ëñŒ'0ÔT×8L6Ê”Áşú×\5@ >|nàĝÉ3P•ɘĴÑf‚z,İ*Ûë Ž&îNJNċ‘Û7Èd™…xĊäát1ż¸ĝ33m˽VEÜŬǝnŻ•‘­Ë÷vĞ-­žÔ ×I“sû™ÄŒÈā‘ÇL”>2Ÿ5"Ž q:ĥzÚ,N“pF2\*2z!ä@–…?–•xŽp‚ÓH•k58s(T†î•ÌŜ Llê3ı}!RO‚T}: Ӓ]ލ†Hĵó3ĉĦ™ş8:j–š´ċÀġ‚ÍäİÄħ´˙ğ[-ƒh÷?^ôġ‚Ùh<ÓŬ'ٓ°·H áJ¨tÙ.ß:sk¸?XôŻËÍĥêëÌ!Ġ×öT%B<ìËâ½ŝ¸)ĵ;Ğòö{cWs?7Ï_ £µhùĊ><ċÜĈ&Š2ïğ݈6ı- ûÉ>ŠŜ@oŽċb3×£B’ĥ²[Q‚ëš>lŝuıÉ%Ĉ´{SU¸ĵó}úaàozU½e?™“ĤIÒ3ZÇ>Š–ƒÙUSŬÛ[ցmğ BÒ#…¤cĥ]_l~Ï~zNòo)! a×ğÑrBvíµ£Œ’Ä’De"·$Sħ/§V1È+żçÚŻwKŽ}փâür½3éĜè?)ġ…;ıjĦF,deċE„ö"o•5X ġcĞ"qöŜY×í ïúÜdû`šm²1â`dċ™Ëƒl:Ù3)üàC䃖UO™tM™Â`ü?žêڌendstream endobj 224 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1102 >> stream xœ}’mLSWĈÏmı‡[-ċm7ʔŜ F£Ì ˆ/Á˜ÍÁĤ{ë@…-•ĴƒJğrYmY'Œ–NÁ)ŠA^´$v lô Šq™‰ÙĜöa·nvKÜ'ùßĉm3²Ä%ËùpÎ?9ù˙žçÉ 8bFSh((5ž›37äÈKyİJNW“ĤĜŸħb6%lIÏ,zŞNG´j˘;ż4.”d¨OkR3Ìğî@ĦŬávZĞŞ%qeù*17?jqmNNĝ‚Íⴖ›ëDƒYŞĥĜ̒2ԊF{ıĠ"ıĊ•›Ğ%Éħ);Ûċr­1Ûê×ĜUÏ­Z-şĴRµ¸Roqgİ·Úë$ñ ³Í"Î+]3˙(´Û ’Ċ)ìgBˆ+°;†Êâ-CĊȈv˘]hÊEyH£ĜEq¨Ŭfò˜Ş•Wu_Ŭ'tħ$aè‰0ħlÈP³ħĊÄÂĞfïħ”Á>+W`Ĝù#h˘Ó/_£êƒ_N‘ğÜLĈ×Óvú9?=,ĵ‚OL“Ĵü(+*úĈYĜ…îŠóJséBA'OùGäÔ0s a´jù[8Ĉ˘Ġ7i25eÑ,ċâ~ĜKĦô7X‹ġt”şĝLrgpĴâ{G„Ä•uÂÍÍ µ^Şql¤’ġ„ÓÉ6ĊÊQXĈÈɐ¨†a/ßÙ˙ ĴĵżĊçñZüÜŝó†.]}kôê›ğ‹jô=3ts‹bwĵŸ¸ÚH{[³PBo³/͙>œì&#d’|¸Ş]v(Â:Ùèż"| ÀŞ!,g°wEXşŸ#kÙ13@ŝÒÎM2z2à!mä´M_HS·Îî҇.t9ú=g­5ŝwš]{$“pedĝX7éèìtħXf&X *uŒ‘wñÔ0Ż3h÷ {¨İı¨¤p=IÛJz7žüVA›ŝĦݽóŝŬ“_“Ż&ôAĵŻĥP4›Ü¤ż#Ĝìt‡’Ŝ8ŒœÉj›s˙ĜY>쑛‘ËŸ‘´.$ûÛìîÀâ*O7ž:;şĥ_ÜB“s y^½'ƒŬ‚ ßàíôá˙$Rx]áŠRĵċ°R Q˜àáE  5 I Z~Ĥ ³ëñ“eî|@.)çžÛ6§á¨|‡§ñO£ö"³w£V°˜ ~3áhšBzĜvFàLÎDRb"d-JŬ+˙÷ùG§˘·H”D^£YúÙ¤˙°Âż’‹dTa…˙e]†3lê8hñŬ^cµ·ĠÑZ'´”ŸÇ3\ż ŭ|ĵ×Cü^Àû‘ñµ·›\„3ùÇÇ÷O’A!u/9÷ÁdŝiŽ.àiüm Á =e.uûr*k„ kIóvÏMŬrñ!(ë?܍éîƒñ‘ ]¨_·ħOĞ wkµA­Ħżĵ—#€endstream endobj 225 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3579 >> stream xœ½WipSW–~BöaŒI˜,z„€I˜f‰“€Ùw7Ĉ@Üld0–ĵJ–-ïĥ–÷ŜyÚċ Żònyš°CštBèPI'i– ’ éLÖ&÷)×35×6ĦR$ĠógJ’TsßıßùÎw#£‚†Q2™lĝÒġħëĉF|+MIO“&Ê9œ£><‘½xâäOe‡A¨Bƒ:ž~²u :û$*ö=AÉe²T½iijZNFÒŝşˆé{gDÌ]¸pŝĴˆç##F,ÑŞ3’ö&¤DĴOPktä‡&"6uo’Z—1=ê€N—ĥh΃Á0;A›9;5c˙Ë3fE’t"6İ3ĠYê}+RSt´êˆĦDg},MĠĤéuꌈġİûÔ)EML‰N]ĥ<#S§_cHĜ“³wŭ>ġĈʤĜdvÑĴ‘µ‘šBĊPSİiT,µ™Š£ĥPÏRÛ¨hj)O-£fSËİT$µ’šK­ĦĉQë¨ġÔj5JBİPTĠ-‹–Ġ;ĴS>[~7huíàz}iĝšáŸ3+F„hy2$#äżGÂÈŝ#£t£„}0zÔèUODI\˜tü’Ò'“bʑŭ]QóžRdÑżQeI+ُ5-Ëċ˜“Ŝ”ރ­`фw‹çm-çĝnáLè§?ĝU4ÛŬ}özÖ}Ü}ÜsÜÙċ=uúdGk_u0Gê Ûóĝ˘’ßħIxğY ëAIÎü)Îê/ìĠìĦ{ŽW/Ô(?ŒoY1;nIzž*,° üè:â—I7ż’£™WM´Cµ ôqĠ<èÁė/ôû­™\Ħ֒Í%a cižA²_Ŭ‹ş0ÏË~S÷ùğpıġÊUĤÂF|Mq ٜí˘ç (Q(ŭeġËû.‹Ä#X<˘H͆;Ĝì‡Ĝ¨9­§ż­y~ïœè98ˆ “¸˘f)Ò'ğ|ĝH.ı‘[ä/}Œ)<‡a+§|¸!%R P4U…ËħI‘:ż …DügÙÓ79j€éĵ™‡ƒt˜:°šĠlÚĴÙ LXÀŝ€Ì/ üûr4˙rYŠFħhZ‹R Ï Ñ8’ĊëW*†îÇ|Iù÷ÍxŽÑŠW½4‰Ŭ³yé–iÀ̤˙÷’a(ôe?êê–uÈkQı"ƒŜ‚—ÄÇáıÀàħüùuT|—ÚQ¸ĊÀċqFĥ™>Žjƒ3èügS³ĉóŭ²8;“Ĝ'i¤jOÀ²È É?½HÜ™&TÑoW˜²8àùöùŝvK2_¸”zš/ŠĝbFú+&M˘)şWŽtè3EÍ÷8Ĵ$GxÁ˘Îjž`Ĵ&.‡Ŭ‰ÌjĞe (…ó_OĜÚÁŸ<Ħš­L,·•1Ùô†B—ŻŞ-wÖ³5Ŝ˙ axİ( ŒĥÙTÙÜTßљָomü–­™Ş0IUä“~['ğsĊž—K36/ĜÀθ8gİ•‡‚ü?蝸…Ë!I(gŜ,í8é÷wתjŭĥÊʏ™ ş0šÏ/H/ÍÓíS“P|¤½\tˆnÒç4Êc2ôÔıÔ&mP`E1y‚ (9ŜšÜ`mLĉ$.‹ÍÂc̚ҭğw)““5Ċ`˘…:§X':ĜKèĞÇëñXО5Ğ‹c!›ÙàßŭŬ½×?(sİD!>SfƒC˘(*í6G3)FLĦ³Ġn{-IĞLïğ„‚¤,żì.— ¤îcpœŝ]|‚° R!ML…LHM(áò…RĤ›>´Vàı\ö•ŝmĈéëâA™ħnŬ9‡`'0‡[ŭŬ-†mÖĵ˜µîÜ˙öïjHç$5Hŭ²ÛċòÀ|tOÑrĥĞ˘G|ˆĥžOô ĥ\‘°Ĵ ĥŸâÔ<Ë²B)yœY -ÀYñxì ߆š;W ˘²óPŻ"ê˜&lÓÁ [ĊÛ@¸ĤšÀ[¨t›œ‡Á–xTN‚jÀöSP†°ŠÏ%\ŒµCA—Áfv'*Żà/ÙvK(+ÁáqU é¨7üîrä€ ”àpğ*˜yóĦœ´'{#Ä˙E.Ħİ kş)+)Ġfä£7ùêÊĵ§m•ĴгóáÊ3ó§­\k,ÓûÛ›ÚZr*3E•żçBy0otlµĜgċX^àA'à…f<2 f3/™{êŜÉkUĠŠ?7´_ĴżBeŻ= ^äTX´:13ó€ñ0ğ“ÛŽŠ€f ĵ²‡Ü{·É$ŭu9:X£Àc˘!i˜Ŝ˙Y#ˆ˘mNwߙú}}ŝLZ+%ŭ4bŝ{³˘·î6XSŒÂ^ ĥêÚöîSmg9öVÚd£%"a››ĥ˜†N‡è%Ä “šp‚Oşá—qw䒆Téh{iĦ™†Ë‡H‡ĥü‡Uww[“ J ,%,ž„­ĞQƒààŬàPvƒ:•èħW‰^F+Äò:Â^1}¨no‚ÓâÑ(ïàol%"á&Ñĵ­sr2uÉI÷@!dÛóġ8*ZĦŽi1xrġİĈÄ==)Żßĵô5i“0)Ĥ¨u}ŜÛ,ğzŬ—K/Ic[yË(fŞÔÜV÷ڕĞñDŠÇ‘ħEßZü5òzL6KİÀšUWn:ĝ;`â×÷ Mxûꠝ ûqú :ücŒ}xFaiÄ4"/ÒB)é¨Ĥ~§Ì”58ŻĜùŭœ5³tçTP>T÷ñ´­ |ï.pĉ 8ïĥyEûİÔ,ÒhâÉì…ĥârP–Ëëô ÂÂEzf˙û? ˘ò½öwáy]…9Hô$=L½Àċ³‹.rÜ=İÙé(żJMšGљ`…"~ğ˙Oáéêuıôç_çÑ~œ\\t2”x,Ç!xy{ùŭ›ŜpğÙâµHñ‹²´ĤMÁeƒ`ÌÒ$nOy˜}Ğ›UçDÁ§Żħ}çÎ7ĉfc´y`ħCµÓ6 hŸìÍÈMôu1ÊU4 ̝:ğŞÁĊ ¨Ŝx&ïq8èÖ˘ Ño!ş†Ş¤”·[TżŸUD*²cU;˘:\=dp;=è…/5sfô‚ÉšFĴVßX,ûá)ŭ?ċ&i†­Ä£(‰÷âÍ䭋Q~ÍC;Ñ6rTŭŞŝİŠgŬCsşŬèıkˆb˙òíÒR³G/ÊÄbĉ°kg¸g15èÁ~ä$†sä'rÄÌ#z°#èCŸzN9;Z{• -m>?xáçáRK‹täz³:šškzŽíİß÷òocfUğ,ÉĤLÔ@é˙FÇáëĤŬ…°zZŝlŜ;ŭiDslJ£Í(B# X—*fÈçôµ ·ˆĦ|µuĦwèEGO}†ŬZrO`ñ÷01]ŻÇŝôâ½½ż@ĵğRï?ŭ×úĈċ´—òı¤â}lւU"I£Ŭñí?8î[ô İçÏŞO°ÚdÏĈCê²pƒó ×d;X醳ÌG×>ş‹ä§_™d* WU v§h3M&bZÒ;emR›ŬFU Áf)ìŸSîızò¸X-ÙĠrj’@Ĵ·éÊnUEI!;?EÇâÉ7¤Ì_éíyŭ5bÙE6•&˘P—ù–‡Xl*bÍ‚ċû<”ѳĤi‡²Ìè,†BĈ_š"1­âe[´B§ÊĈl‡|WúIċ`Ħ²NYŞ”£ż1Éc`èŸá{ÉAĉ$­û×!ƒHĵ*´˘‹³ËĠÌÀ·eWşÊzwYÙ.˜ qKòÒ1œìy£ñÉ?cÓÖ ĝÎGžüŻo|ŝ_ÎyˆAĝJ} ğOÚÈ+)Ü&ÍÁT­V_éïjëèPmĈStfTe%iµş]Gğż[EÂp\ZLâP­­Q?żqûŽç8âÈÍN‹Ğ û€7·İuÉ)Ùé=uĠ^›°òĈOŞ˙‰\ŞPµá?ıìş…TŬxú(kÀÉ{­Yfc6dŠZKc½˙ĝžş½Ûwé :•/֙³Ŝ–‘™¨.AƒgV[,Ñ˙ŝˆn#ġÏ#~m ÔDïĠ÷ïŝ.xˆ¤µd'› 3É6”^_*Şеˆ3fá8‰Óû¤5(Üċ£ñžŠáŝë#U!AóëCGĝĵĦĦġ?ĥèendstream endobj 226 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1055 >> stream xœ-’mLSgǟÛr݈Ee×­AÚËÔ¨ÓA-QшF66 ˆCĥÌR€ZÚĠ[ 8‘¨³”A&ÈËp#ş™m6£Bœ¸,`Ì| *SQ0]öaÉÎÓ=¸­.~:ç|ĝ'˙ß/‡C!*Äqœša2mZnxħh$Gçİh”š°Ü@f`…ÂSÖE½ŝî+‡4$LMÂBNŭíîÙà‡í³šìCİ6{…£¤¨X‘[–HËWL\& †•R²Uv”XÌR†Y)–­f%xì’L6K‰ĴTH‹“ŠĊ*6ÖċrĊ˜­ğclŽ˘µK–IXʖwˎ2ıPÚ`+U¤wÌVYzY4ĉċLµYíNEvHĥBÙQŠ µ;”²t³%ğĄP2ĦÍh ZŠRz‡ÒQ<š$F!ȂÚ3NÇċpCŞpĠ6•Gġ­ÑV–Û ~˜âèÖ15ĴíÛ+O[FˆĦ0t°ê‘<š”ħÑQüùż³Èçsĝğ8Ú$6tÔĠµ´œëùŝˆ—WηŽñËĈnÜ{Ħŝ9Ĵ×À$é¤F/÷+üĤĤI4_dĦžd£Ç#ÔâϟixéT.Ÿ€pïӆö·ÇAU/hàyġŒüċċ@3ކf:W„hÜ2À³h|"ĝ ĜÎ"ĝxĵ/‹ˆĞ²ó˜“ÈBv—ĞçRûtîÁ"GñˆĥÚNúš­kÔk¨9Xd‘—£Ŭ4SLĈl:ÛŒ”CUÚÚ:rıpmƒĥJĝ5ĝîT&˙kè.§?îċzi•š~HW`&LqΏ=h#ZÉ9\£5ùµŞKÖGtd÷ĥk‚†*Ġ~XıáÛPwWM  OĴo#M¤U¸•?šWĉüPWSêŜQëîŭêbçPP\cFeċĴĤĥ²ÖMRjĜvaó„= ĞŸxtä̐γżĤÂs@¸ƒó`Xħú ²—yğ|_߇´£½AÏ43hìÙ7zOMŬt…˜Û#7n&‹‚Ĉ1­aÀÓ. ´u˙Ĵ?zµa*M!Ú4ùâÈc?DÂĴË'Ğwœ×kZÒ üúG˙Sӏá^Pûw#“dT˜ˆğÎ"tìÌ?OçÇñU¸ÁC†0vƒŸÀĴ?0G„ùĝóı9×'²h=[ˆ5°˙ç°h‚ƒ25\$‰F\n|‘°L=ïàIšü( íw^§üÂAÂCĜù@M˙ Ċ9ßĉ·§ L`áLUÚTpj§ŝ´üċÁÁ=·Êğ½Šww£ƒ” )ɉ Ŝ^ÌÖí\Ŭo³= ZxfÂĞ0Óçî“ÏêwtÛ?5t{ЃÜnŽ^{:ÜWñÁ9Ĉ飙°Ċ÷™³‚–iŝû3tĦ!‰Ŝ°éŝ†°0„ŝóÜïendstream endobj 227 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6635 >> stream xœY\S×Û1psU%Ŝ*jïîşw•şpUPœ(N 3Â&ì™6‚ì°—"Ö­8qÄñoüjеUĴĥZGkûĈúŭż$~ġüĝ —{rĈóïó<ïQ@™u£h£“Ó¤‰ú_'é tƒğé>&áPŬwĉS–óç}2÷9ŸŽµ öKlVğ¸É‚ÜvÚ,–úÊm–ğú¸Ù6:ŜcÔÇ/Pî&³q”ît“ùRµÜÎwŭ|é†~ ŭÉ|!_hìş4dû²Ža;—ğ­ĜµÒ]²Úc§“×Zïu>Î'MVL™:múg3†Ì´öùìQŸÎÛ4fóĜ-Ĉo@QC¨ÔLj(µ’²†QШáÔjjµ†I9Q£¨µÔ§Ô:j4ċL­§ĉScİ Ôjµ‘ZH§6Q‹¨ Ôbj"ġ5‰ZBÙSS(j*µ”šF-£ĤSŽÔgÔrjĠ—ÚLYQbʅêGħÔGTjeM İÔ ÊœLqTwŞġ 5‹² fS½¨9ToʒšGġĦVĜQfT(ġ‡ \ĥÛgŬʅ–Âá=³fçÌGšçѓè#"ħ(ŸéÁĴaì¤ûŬ[z<éıĤgĊ‹ĝ^#z%ö½½{_´e™jùKŸK}gġ}l5ÏêıĜE|˘ßĵ~ê~Ĝ…ìˏ²>zĜ_Ò˙Ĝ€ĦŞ­m­+Ĝ<ÈjPÒ ‡ƒ½Wĵó“·qö\oÍŻċĠü76mÖڄÙڜĥùSWÖ[W†4żk@{_P­ó‚VwŸ= Py#_ŽbŬpŻ6ġ’£„”è„„ÉĝTĦ"î ]\êꃑ;_ŝğ9L§Ë‡šğ#oŸ TÌżĦ‹ŞPŬžÄŬQ|BZ Š@ ^  dUôuĴ5ÇèöEáŠĈIcġB NÚŝâoÀV׏m@;¸ùt¸ŒLT…òùcĝÊVLĦóÉĵġ2Îo…E´ĝĜĞ;NŸÍ—àpNQû¸jŭ¸qĤ"è×ëÌâÄß,A.!!LûÚ:…Fp@ç"„£- ĉ 7/£ ôŸñGüP:B†|ĵËQ9ż˜#ÌKËQ}ÌʟĵŞB|9 8["ó@:<€Ĵ]Iŝúğaš$çŸÂş—xı<ŭWúäiÀEcġ“"´›:˜Ş;ÁB_ú‡2GÏí^ö£ùa4Ĵ•²×ʎžAW˜ÛË`!‡ƒh…~•¨ŻnSâ·~&)i0żÜzOğéşm oóX,† àèêĉğlÜır*ONÀ7Á-Tj…:w&+Ž‰Í°ÙĝQ¸/˙2şA·_žƒ‡]ñ4ÖÎñ_żyëšÄñŽóìĝ.!„L°’lYMTĥŸ:ĵĵ2TÁÁъÓĥ0#Fm]QfP˙ş‚l^M(|É/•‰şŝ=3É`İĤh.[#8¨…Ż/ u!ş{l!Şô MŒ‰OäR’PJ¤Ì³fKéz’a,9Â@쀗ù óc듽(:VŽ|SĝĝOmĥ#fâ´?`4|úèÖËç·ĜĉóiaİáuˆiDêRŭı°L4uGff’ Ü[(b/]<{ġÎĊùSÇ,rX4[òĝ$‡G˜r=ۀĵĝÄ`9ù×O6ı„z{âµ)ùnïċq[Í˙”Çtš´PĴ^ÖÛ1²€/kSÒ]O°†ŝÁĤÁÔi0[óXÔv‚Ġ)ž‹Àĵ…d"ƒğŻÂ–Xhr’;핓89élĜTĉ!Aanœ_íöŞĠ3³ácħ÷ùy4tûúxSıšÇ^M˘ñı1éĊìê3gÚ9Üxòô†öğğÇĉĜs†<ÔÀÖvÀúki7ŝzĦa}Œ;×ñôŜĴœUdĜAP0·—ŠÄmŭEÛQx>TVÂ=ëxŭa+¤Ĵ£CPà>}p¸Û˘ú„Ŭ\[wc֙òŒÓÂâGŭĊÇ@Ëٟ/=‡^œ* (¸1e…ĠQ‡gĴ_şÌ‰³Ï0îfÌĊûĝŠ­ñ òŠ…Ğxêżo´0˜œQsĦ†…Áô÷>5,3ŞŞcËÀ·ï9(1Ú#‚“Ôí(p%{ĥ†a{ĵìwl =/+/ċQ°i<_k~+èƒ>™CĤ£Y˜aÄÏx@weÚÌİiscœLùÚŭöûGZ‹‘Zâİ ”ŽĞc䈙ƒÎTò&ĵ,x¤ 9Ħ=!¸J“ıMÎX‰]°\ŜÛ•m ™ñé}j  ’Ñ&>C8é3ğSCàŻVċFĊˆıMVĥà]àŬž[ï‰Ĥ‘ĈIĥQ^³ŜÊE˙‘CÑÜĉÄ!‡ĦŬM5Ì{”§ô*D™ÔÀcÑĠĤÀ”Éó“q”~çIgàFPĦóêĉ“¸Ô™€ÓŬxà ],€ğĉ5ïèĴŽ~–çQŠÔÈş•£Ü½ú}&İÁN B P-ÔmÑŻ &h PB‡th@ğr—Íô|Ú\I'UE:z59W‚bH=D&ÇïÀ\R0£¤á´y³ÁÈÈQH×ÇĠ¨ŽżŒ[Óċi‘ġA”–SĴİ|ĴÊO+cTt†sîž—VŒòPJ+L/c:5IóJcu^ğ­IȂtŬĜ2ï“ʈİé?טŒ´8ĵE7×>Äĥ Gó}Ôá59M*eĞTİùŞ=(1˙qĈ{!/>%cË c.ê†5Ħ+Y'ê™hÂpŸ‰ˆ' Úêĉ‚â¸}ߗÍ?6Át£<·ĥĦŝba,8™ï׃äGRfŠ>v£„Ŭq‰9””‰ :ċh¤!°zoÑ=]OŻè1`M?ƒî`ƒÓÌğœÈ]{"µ|JzRĤ2•éäfb+=„pd,Á7?HçWwĤK÷NŻPÍۍ˜ûÚĵŞÓ%àîĈM¤Ħ…ûàiĉ;Œ… BŜü`ي-͝F‹ĵëZcGG-İ4`Ŝ%êÄn`ÁáŸÑ–I£ Â4•œ¸Ùġ‘ĝA& ϋ#6!—Poo0ğ-ú‡-0’@ ¤–“Zj19ótc‚7µ)vŸtIž0WpÑÈ‘^ÊC4ş}Á‘G˙GA-À‘ğB½­•tbIĴ:d<ĨüpuĠÓ0żKA)HiRd3#eNî)J¤ÊÈF{˜Êb™_X¨żëÍŻŽÁ€ÜtË:ŜÖB@ĞP· l/JI Žç"C6Û!fú‚?Ĵ R‰by•¤DQ˜ uQííĦÈÏ[OÁ?+à÷ŭZÔA¸CµP§ÜhJ’³Gtĉl”{Ĵo‚/İјS /%3ĤB†ˆYc8Ż5m ‘WPÇat&ƒŻóW‰r·\Né‘Ùò=nñ™qyñyhÊÏÎÎOËü2óÎ2Ş6úƒVˆÔ9¸†h{’"ÖߘÈÍZ8ÔxïXuİ* 1ûQ‡ŸÑžqqžüQ—àWAŞ_ÇÍAÁÊdfíQ†J8%]–‰JQsÑè‚Üp™¨“=nOŭ ú×)Ö)rĤlŻËüÛOĤĊ͵žÛ · ‚1ívîÉè?Hžĥ Ġ5µ x™-­q™1gኛ­Ïo\żq­y“1OŸµ@Á|µîµ7"Í1_˜è›^Áşžŝ0‘(TE²ĥä=’Be²ËK;Àë2+E]#>1ĠAİ²Ô ŭ4‚óZ¨ @΂5Ĵş5½ôWüî9f$1ݽ_œxRİO­¸äx>pŭÚX)š‡ĉ ˙‘Q]fóo_:‘–H–3ŒéjZ´PMf•ÀEĠ`Gì䇏àj?p„eeĠp˜Ûq6;ÉÔQ§˘N£Gè<ş‚Î=çR}Ŝt5Ĉ8ċm&+-GŽhaôÚè5ŝA“QW@_R×Ë´/ !Sï8z›”Vïô½ŻP—”³³ħ´ĵ°ĉòç(üó9[ĤrëFíÇk|e„‰tVsD‡Ë\Ĥd€°T á[HÑwƒÀÜ~òì™Ŭ,âħÜÄŝĥ)L,6°ĈÉ|hÂìúù‘ĊëÖm[<†ÄBÏ"Ħ—ÁîÂù˰ċ²UíĊ½­ĝòâŞ[ŭĊFƒ²k]Oœ½pôè™s‡7Ż[½uĞ3?IÂĤ7#ĉéí[­uħµa5ĵ:Ż"}*ÓŻ<~7bŠÊójËCê×FoTzlás%%[3náĵéۊ< Bx1Ĥ˘c}"I,'ÊÎ}˘™io—C?è÷öÊMĦ§ÖWs‘Ye“³ˆŽC‘(.5% ¨üè|e)JEéİùéğè‰Ż²#ç9ZœÓPÊWĉ Ûˆis4mëĵm#;¤½zínI¨› ÇY}׿Dßñs°ü4Żĝ_.ŝ× †ÎtCG[`EĴ˘½ÖU[J*7&ÊżE?=şrÓF—Uù48yħ˙j*Ñ C̏sà^ô˙s‰ž´ĝÔ=âdëPƒ´,"Wä€|JĵŠ|jÂ÷!ĉjĊż4—¸W%—²+LŠŽŸ½Š²cËı¨ZıZ‘Û•ş÷_YÛĞĊdÏàŠn k耆˜$£9‚{™äÓIc> ĦĊŻu)f5eRi` TZXSSVVu–žĠ™ëPxŬíş~òf¨fkFSçm+gI7ĤWïà\Ğ“+‹•EÊbŻŽfhï6Ê2ór¸ƒ>šk¤Û`n=n½ĉ~8jżŭ _ÖìbFüÚĥĜ5Ï­°>Ŭ|ò&ô(çÉĉ&”vv Ob˜O·½qmž é„ófM_rÜŝûÒñ¤+_Èó“™.%@œl…ŝíPĵĠ™uA1™îŞRĝ¨mÂ›żÄÏ͛Ĝ,_•‘J?e15ò˘ y`˜ïÜ_Ñ!,qâgşß>ˆŽbĞ´`­…ĈzÀ:A ™o”³`ŬĤp6éĊíŝ[‹h`¤ž„‘şµèŭU6 – 2o4ħMĵ§ħĉÖ° ƒ‘Ġ›ÛMú“Nt}úğ;¤ú&nöÚĦéaœŜğv†Ġ]-D땑ŻSÈúĴ YáŸi{gçugŝäàç:½ċü¨—4ĥ|4áĠĞGOÁ’ûï]ÉWïÇŞ½t?"íkòüÀ„“?Òï0N­7OĊşŝÚ}°~Ŭá†eĠ¨‘Ÿƒ/E ™żMoœ“Šb›FëĴ4ŝcä~’nmEğŬ Q-²F%(§İĞÀœ4Vg[ §ŝ[g$ gSê‚Q(bĵŒÇWDîAtòĜ€drçá ‘¸ıġ‰CċùaVˆB:9çî{ƒŝÏ!‰Ä;=Ùg{äN)ħOZì‰ñ}/ä£dÚħÒĥ/ĠruJĦNJàÈí4Ĥ³L‰ŜŠŒ[ïĴ”@m†ÊÌĜr9Š%T0Š!Ôfĵ9ё¸3”Ħ,‰?çĴ³1µ™³ 6½ċ*úV[i†¤‚ôJÖ9Äüì.MË:‘éI'•îr‡ŞR²dU(‹ĵŻ@F1?…/IFùêĊ|ùpèğa³‘í×{Ëßàŝ Ì^Á@ HHˆ Ïv€0 Fh_Ŝı}S<rÀ=fë…a†Néż;3¨ˆE•è`ZvñÇݍˆÉ,ÍĴ []„‘SÂxeڀ¤Ì$rGîáî”rÄ$'ĝT(wóUJ$§e°­ù —3‡ċçO"†4ġµ2U,§Ħŭ¨ži"T™|ÈİîpeÁ^UeGwŬ[óĤT‰d×:n1C˘˘9·éÎÑ!)áÊ ²ĥĴ8ħ äPĉ£\›íD‘QҍNì¸2$uwĉ.Ôj…_]dc‘‚Ñ·b<54U63DÊáXúÒéçwĵÚrüúŽ‹wqoÜcÖÌéğj˘‹ÔċE5y‰{b³¸‚'êÏ#ĉÁ7[Ĥ,Ú¸ÊŜéC^bQ :ĉ\ğİjYş1a$ŭK’Héq)7O“Óï(:"_•²%1xħˆ0¨;žÒ%ÙcÑ£_JïŞLt Ġ0OD´‚ŭ…û NŞ* 1İ PĊ*Ü-5Ò)ġ²ŝŞühëŠVÓî äŭB'„GlËŝš èsgŝWX„-mZìYİ(ĠŸ'?awrW_SßM}ÊŬĊ'BâÈ{ùËRÜSV'E äˈÓswœ~yzÉŞċk–MÜ1'÷„?Ÿ‘‘EŒ:SR*“FxM~ħŠ0k˙ž>Ä/Í͗ìë:ޞÒèş— jo€ĴEx’ÙĜHÒM3ž9ñġd`ÊÑDחèÔ=ÓlxKïÏöà¤tJTF3ĝó6†ĵ1ÇoDí§oyœĤĦm]§%9ŭŸP§³f%hküö@VCĵÑy2Ú3>֋Ç%˘P$o(NÏĜÍU7*HÈàŻÇĉ;|pĊgÒÙçä¨ÙY䨵ò ŸĜ3.3èûò 9ñŸŻçüJĵŠŝĤ+0“0Ü· hun˙ŸŠ>›Ÿüüà1ڇ £3ÉW eŠƒĞ*K‹êšŬύ&ġ:÷Â.œĝ-޳ù/AëC°zJ+îĈ‰uÎÈ9Ìe;6ĝë€v6kR2•™)™ BÊtDT9²ŞÌJ)"Ê{ċòİ˙¸v‰Ŭ4ûĠ Ú·Ö5iGµQô"\†í2ì‡p7F<‹Šrkı h‚q0_sİ´85ċ3z„8ü=PŞż6ñ@!ĵk‡ê–t8HĠÀ’kZ'ŭÍıŝöí@;ßñX˙–“ßŜğ°ÉyµÖùü·ŜìwĠǚÑĉÁô{¸'ĥĝl–íêġçÄżÍ ZşrŜÀÑÏĤ@_°zúĝĊ]‡Kvjnn`gĜ·h5Żŝôô²ċ‹í×Ì×܇‚S‘—İ_ü"ü7uïߔî›vÂ#;… ßè´­{Öވ´ B`ĊŞ"}·ŭï# ‡™yšHä´Î­yO_6 ŠÁ}fCŬ]T˜ž‘‘IšÙŠRYp˜WñB␜ï Iè  µcħpÄ Kúñd Ħ{q):vˆÁÒYÛu_Ŭyt³ċ֑yp!_ċ™·žxĝe JD‰éá(–qZğzFğ–“ íĦŻ6C_!ÜәħM>U^n2oï]uŝ *ëë9|ÉìÓSú’ĉÎCpzx…Òêâµ­?h^ŜYz­żĝo5‡Zö_‘G\z´ŜeóÒhf9„³8Bä’ı½,âtfúîlTÎÔÇş'm™qq0ÑÜ.½ûĴŻC•…Üô.9ŭ#şš/ñjFüŸga§hoÒ)Eáú˜¸Ä(ÉËW­ÈkúĈéîħ›kj÷œŜHÎı‰p·Ès‘ ÈÄÌòfn˜­Ŝ½n?:Nž nîŝRi‘¤Y 8ßxpCp@ç$Ô9Â+6o/jl܅<ñPŠ]H"ًòxx‹Ç²ùMä'Šâñ_t”'yÓDl™`Ĥú]Q$;ŭ÷Zħ‡ĉá>·€53ôê0§ÂÜĴtTÀd'–úûâmxÎÁ=OjÜÀw Ħ몌Òl“Éö‰x D" ç–'’SënÏk @Œ,!8."7>#™‡XP€§‘6fä.ÌA#Ä(‚‰Ë Ĵ…m$ír ÷L§5PGŝmùݵutĦlrjğùÜa6Ç=oĜŜi~~ì#Ç ñ`Ü÷ÇK[ƒÍ“‡jk¤(&,ĊÄ/·hÒP£‚!éë7żĠ‹Y^Î/Ċ7Ù͗ï=<~ŝħ£Ğlm]Vo3¨ŜğĦDòdœïzħFvµ7°ëßKEŜ™1û8°71œcß Ġ‹ó}5ÌsÁ7ˆbB CèĵF‰> C`(‡%$‰âP3+nZt…ş™äèĈsߤğÎi`ƒN&¸òÏB ĈvN2öœˆŽÎċ%›U¨B(›)Ž( ŒˆL D˙÷âĝp%BqÖĦaeY{2ıŜÑış907—ĈĦY"MmO‡Y¨Ô˘ğĈÂBkы˘ŝ a—„endstream endobj 228 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 807 >> stream xœQmHSa~Żs÷Ŝli³VIywÓ"ƒáWYâGVda…}ċZ×ĉrğsŜĥTtÊJ玊•ej2 żr·²PŠR2Ó ‚úчĦĠŠ Â>xï¸ŝh“çüxžóœç(4ĦÌÎŬ·)Ĝ$H+ iUˆ­ğüǔÑ(bkftÌŜB8¨  ½ċ÷Fb‹"ÑĊHAĉ’êlŜZf+:eĜ8z6)55EÇ&'&Ĥ²YfÎVd[Ĝ\½`äÌz!0³ûyC'”ħqiFA°nNHp8ñzsià_ŠÄĜ_,üPàÛ¸@ÓÑ>,v´=Ÿx6_iĵpŬ{Y-ĞÒ“Ü;×Ö5~÷ñap2ŭo^vŭŭQZJìÖ 9L^¤•#ċeÎj¨[”¤%ûq޲˜t;\‡gÏğ2 hyGĵŭĉĴÀwOöogñ‰? |ÑLĉĊÈêm…ù2½cFíî˘O¸qÚʗt³ı˜ÄQßżŭú¸kjíuítß³W0CÏ$MIJ›ó2 ğ+zĵ×ûO·i`†Çß7uŬ3ċZ³Ŭ˘ŻĴš‹…ú=ug=.Tѕ-p™/c_żSHŒĈ —ìUOe #żž3(MĝöĤ@zĠéŒ`"ƒ™ >ͧ'Péî+ƒÚ˙ÄĠTĤ¤ÔÌ)ċ‹T¸½KÊnÇüċK]¤ĴżB‰aS ™°ŻjA_³J5ĠĦZ„Šcg„endstream endobj 229 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 955 >> stream xœQ{LSg˙n ÷^´ƒt›Û¸½q¸ĦCœòĜf&lD$I9*­ìËĥ” ÖĥdĜÒ%< !E´°B‹ó†ŒÌ)œI–-›È̈.ê˘qj˘ËwŬg²µĉ$'ç÷Ïù½(#AEĊ––oŠ™â[”ĝĥDL‘‚Uĵñ<76%|’²Ş,Ù2)ÈbÂ˙nL‡ħ*ï}I)JwĜQh06™ê4µ>­f Ÿ•——“ÎgŻ_ŸÇoÑİMu5J=_Ş´ÔŞuJKhù CMÚÒħ}Tkħó333”:s†Á¤Ùĵ&oĴ³Ôòċj³ÚdUĞĝ"ƒŜÂïPêÔ|TdFttĈ‹ÚėTj“!Dgeoĝ`cBIhJFrôz1o(•Ħ9êsjB²]"ˆîxƒ ú…?…·˜êĝ²5lÀ’2'? ŬY˜ §gáW'’ĜëäM"ÏÚ´ê›ÖÓ_ Ÿ9ylò ntöêÙ_€}vùüO÷|V˘ N˘s:=·ÒJë™k˜ÁŠĤž] QŝÁv,•âsĝ–üÖ÷ċЉ¤xO1µëÊ~…y"clĜŒäiÏáô*Úß~ß;3pßí÷DóÔ39RÜdrĊwċä?2Îĵô)²“8á^¤¨×<òXŠ7‹ċĦ–)WNFÚ¸65äûqFĜ§×ċö€ËÁilUĥm°*{÷9;].`màhVK̰÷z;{şıӓ3áE`qµ‡TîŠú ­z_s5AÑYó•óí]ô³cÖSÚċñ]™nÀI8³q"Ĥ3Ÿùĥ]VĦ¨uëˆ8{7*ŻáĦTüY|"ïġAŒ³¤>ĉv•w·×Ŝ~ü{ÖCì×´wÄ÷`_O×mŒ[i‡­²ÄĴ_Kâĥ’U@ÒÙĜóŬyĝv€gïœŝûÂ<á(Ä_ÏM”}Œ°li9·,&Ç/‹›ì–É–†dŻ ô?ıPĥ1endstream endobj 230 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4215 >> stream xœX XS×ĥ>!šsŞ<ۚçy¸ÖŞ´Îó<˘Ì a A&0'Y “@”1LÁ*P@X[ÛjĞġU­Ż­Vû´ZŻÖÖux›÷ğjkß××Û÷8|ĝĴµ÷^˙żŝġo$Ì;F"‘ ôXħÖŬúË ñ%‰ĝ²8RêK ½—{SŽdÌ9jĠ°8°—‚ŭËËşêPÔ8˘çóŒT" ‰P{„…Ç*ƒU}&¸Îpwm²ëÌéÓŬ]ç‡ĝ)ƒ|ĵB]WxİŭBĵTô…ëş0Ÿ ?UĴëĝ7UŞÙÓĤEGGOġ ‰œĤ ˜;a²kt*u­_¤ŸrŸŻë°P•ëJŻ?Wë6§Z_a!áQ*?ëŠ0_?e(0C„y„+FŞ˘–ì‰öŠñŽġñ]éçż: pmîġÁА?Á~òÔÁ ³ŠqcV3£™5Ì:f³žÙÀld&2›˜ÍÌf ÁleŜfŜaĤ1 ™EÌ f1³„™Ċ,e–1Ż0˙ÌJĈ‰á™ç˜AL3„q” b&2˜l‰£D)ùÖ.î’tôî€)rܸM6RÖÎfpRÎÈ=~.ĉı'ƒ6êĜĵöôXàÈFò:y…xoœMfâzœŭ#ŽÄç ?!ÒRtB*™LìçîU²äÄF\zâĞ?Í#ŻV †D}FpS!`"ğò“Ò4š”t9…—l4d“ĝ‚9ÎéÉeĴĵ1Üy;.Á[ĵċÌİò6àžA"[4kĥ§_MS¤X( ¨‰°ìŝ8Œv÷p8:Mĝ´aK”·Ÿà|KĈ[½˜›Kè üÀŠcŸrìÉĊ'ßZĥcùÖB‡2ıŽĠêⓠ’ ŻˆĞŞ¨*ih i\ċċµB%·Rè1KFŭ…NŠôŬpŞuçl+E³ 4…-”C3)‡şÌĜi‘ ëmÜZ'ïġÁ÷ù•eżR£#ëCŠÛĝš4ÖÁìôLc‹€ÚÛìŭÂàW…:<&{Usdŭt’á0­+%rNĉ NP›Äé•K7&vKñ8›·Ö>C I‰r­6%%=CQİÈ ˘şì^°9¸8˘*J°(u§t'ï×TĈ¤šbÀ›5ĈD|s2I)ċ&—İħĈĈAŠ1WŻ/; ÏÎ-,ÊÉióîԘ(&Ží—ÎwD×FU AòĉGä,(‚ħŞí;dò^Wäú$H§”(†ĵ2 €eĥ³_/—ü|_Ĵ“âUq4o&cpyĞ{-pôD §ĵIêY2àşêÄùĤ.Ê{Â6°ó‹áÛrl`)“ÔĤ cÛoB!şâ~ĉ–eŻg´Ÿ”×,™d…ê hf d" KÁĞ3°>ş5íĵÇŞêÏrÎ1ú×e8p ™]”’wL@ü%Ĉ݃(sŻÄl…NŠqâCÙ`üRn2Ëĵ5‹`}w…Jabż4$Xû<@›4GTÈZ³.@;}.@Ğ L%;GklĤ)Ğ+Ä͒rQ+ĊĊˆĵ&W› y\M3”ÉÍì.­J·!l‰Ù.(ƒK%7~Ÿ&òaŸ!o?Œ×]*ş›ŒMzÎ̆hœûŭórşĈWpèTq—ò)?q^ÈÎí;-Ç?éù §äRI;lSIħX(Ċ3Ċ§ċƒž>†ĞßïÛgĥXŞ?°–9TNîħOË\˘-JeŽOQg¤/{ċÍiùZäcĦħÊ᧍Ya] ŭŸ‚AÛıúGÂğDEl\ܲj­vpíĴZ¨‡FhÔ5ö˜2K³ (fĊ%ŞÍ5 Ĥ†kc]Ê˘h²tP''FêhP›ĦZßNáé6‚²>Qu\cUˆ&ôo£‰&ŞİB_â)ġ…–Îc‡(³DÖxĠì2Ĵ†`Ĝž1Â'*Ĝ[ħ<ÁŻ:²%Ħ‚ ŒKYϛw;ù›j˙Ĝ/Ú)PÙ?˙‹lÛş­ïNíêÄËTúµ¨˘TŭFŠKñg>½rÀÀĠX ‚’hĞ6ZçEiökU: Lk Ǚ}Ĵ‹ruÔĈEKa„âŠ4†}úş}`ájbJUÊĜĝpÏ6˙÷>n?sŞZŽKÄ9…5Z?2Œ0³Á$>Û;Z€LPg&gĤŽ%).âvu6W_'ħÜÀw¤"#Žä÷dF'@(Q]SSħßüá;‡f‘a“\ÉPÂ?ž€ƒPhÄ!ùF5hÔ K—Ğ‹Ĝ Ü2÷÷pmpdO­Ÿ1te}Àgäzžx“Šğ£ë“Ħ˙‹ƒ?ïhŻ8@k½ŒĊIżÊœĝĝÙÂ;ô>•9³8Ï,Euï,>Ġ¨šê Eì(˜ÒôÀġ5³á°m v§ Ċúct–èNön ­Ä"V|³ïɤ ĜˆRĜW&ˆ]l-}DqÛ ŬĞÛ[!QżżÌ`[¸÷…|-o`5ε9Íİ8šNʨĝqŬ÷ÔĉĜOq#ϓá?Ct8ö¤*/#7%Y“–İ‚ĈÌÔî…mà]вì>Ĥ; mœšÏÇİ·Këàœġғaœö;J4˜$8â[R’ŠnxžG×G7ï=}“!`;²NÓİß §Ħև*v֚1‰Ġàñ~£yO†î@ì<=é‹ÌÈh:é ˆw-.?÷e-ĤĠJêOŜ+–ÓRŠ‹xSĵyo'pß_şpíX˜%ħX8ÒÜFȤf@,§Î‹İ*.-¨(K0û„zŞċá•ĊÔ NöXôĈĉ†€Ò½‚V; ¨4 6vsĵ?lçŜ~°‡ĦO'´Ĉĵë_-_×´&Sġ †TChnL-eiNI~÷(“Ÿ ?TÖ,ûĞ…’òڒ:ànD• &Î:É\u³×Îġœ2a~×İ҂Onŭ–ßÖ’ŝQ.Ċe½KùgĦôÏ.e˙˙÷ƒĊ°5PħŽŜz5Q&ğMĜM-˙¨›Xĝ~0wŽX|Âc 5†ü²ì|C#TwLxeçrò²€’½ü÷µW߇ĞÜ2ä:ĦÄıô`weë–èûw`għδ—]‚FżìÌĜ oÓ}í<ê×ċ ûşäfu.İġNIĠ Ë‘ Z{uyêŝ”Ê” éİĤœ'Ò&JöCV²·Ħ=2Nא™Oċä.Wòd´µšċ§S×Zñ´B† ŭğPJuäX˙ Xš™sXp~˜%â"ĞC*ehh•ÒÜP]Ŭ §DµYĵҟÜ÷ÎidŜĤéÂPkúéÖô_ĜÀĜÌq‹4`Œ”7@äR .ßt&ĴçÚı˙Cî|§wòë!‘‘!!Ġ‘ ŭKôĈÑí“I‹ ocYÚ;Ż×˙/VM˘ÖɊѽĵ'Ò9TÚ™údÚ²´ĵA°w”ÜW!kÎB;›ë˘?šm'òeGA‰E+)túüòìC-š˘<´˜¸Û<³u|Ë0˘Mò䢔ŜBx1‚ŭCò½k0éÛ LşŽgÈ÷ŭèä}2ĵ4j_$ŒHÖ$)l•­Öĥ ċúŝÊî†H}ÀQ2 7¸üMçá YtÂRëċO§n„~Cż&–èŒiÔZĊÄ'Ĥ¤öcÙ+i³Ş–—˙YGtBì×ûŬċġŝ³÷èë÷pçcĥĞ42WŸ=uÀ÷?땧}ġ—>üLcŬ„şŬ-{Ş}Œ;Àĥz…mLzß§ù5˜[7íÙÁ9_×ŭ ûżÜÁĊzŒިÑW¤ĜÓë̛t|Ċ²iÔRSÀÉݘġ×$M•[)p‹"Ô ·!@0;UcléO„/šEŻr ~pYZ›yÖĵBÔóäQ ÙıĴÏ Î­KpÎĊγ ûGĉ1âVĥòb’tş„99ĜçÏ#ˆ²}2:ğ܈Ħâ?זKž“â]’ÂCŽ&+=8ÈzNkÀĠĝ7|1;ې9\^FvZÒ "Ù ß6)r4Áà‘Od§È ÷‰Fàòr²ó„ß2cMŬÙ<ü{ÚmBéjtœú9½“%kS5M^špfڑ—âAĥ‘1ä%­&328!µÀxûJNʏŜĞŝž{úz·ÁD)ğ)ğnˆ ùxŭ­NKŻq@;ÙğM=U‡Ò#MrßÌt$q!ĠqUµeu=ë;ĉŒ#ö\ċdàïĈ“żÀWĜÜDoTŝù'E;–Òžl¨ÀyÈHp݉ZÀRžŜÜßòÈÌ LÇeäĤċ^ż‚ƒ>hñ Œ / o2•”èċֆĦQß"#ĊÍ'ùúHUeèoê"ŜûĠ ĜÎ}÷–TĵbóöÔ Ü>Úّe„ô’˙éZ,kT;Ò|ä{L>û×çFĜu£„żzôŬĊ=Vü˙ĈĦ]|ƒhÀkċöϙríí/—Úa˜Ïnlendstream endobj 231 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1421 >> stream xœmT{Lwż£ċèĦ>ޏMï:7Ŝ‚:5ĊáĉäáŬ5µ[Zzµ½£ĵT˘ ‡?Ĥ¨ˆ•GTy˘S–a\—›Ü>”ı,ǜS—ìwɏ?vm§Ċ¸ärıïŬï>Żïïû1݆8‘˜ĵvmĴëiž&.L÷fH2 ġ‚à; RĈϘ™:µ"°< =5è +'A.fÊ1 Ž-ğSY·MË*BÔĦŠ˜ĜĜŠ9ÑÑħŠ„Y§VÉ*VĞÉQħbaPĴaÔ: ›ŻY˘eYÓ˘Ù³­Vk”*ÇĊ˜·Ċ…F(Ĵ:VĞX­ħhÌıšLEcd)ލÂ-5Ê}OdrLĞ1+’™LÙˆaX‘1™“,,§ÊÔ¤é Q–Šaа5ĜğĜZ,[‡)ħ÷ħ$,[%cA˜\´I1ğ€‡âĝ?>û|JR$½Òhi™ôoœoħoƒ(4öñĝïN˜ĉ”JĜM>Ŝ›ħİ [CÙ÷ßJ-%v0@ŸŬ jè ÈħĊ[ÁùDµ´ĥ™@½&îéİĥ¤QÈ˘÷ÛaWÙ]ĞÂĈ­"DRĝwNX+ò頁„òÈÇÈùF† 9’†A)”Ž>‚r İQ4İL½q˙^˙ƒWŻ$ωIU*i™yñ\vıSµÈLŽÓ’A´ätċ_2(y4 'C˙÷ž i†ŞÀ¨;vV_²4V7ŜÒ!Ÿìëëùa°oùĵ9+>P.Ëĵ}‰ò„äàq&rħp%ùdàĨŭYö’/€ÌVÜ^ğĞ{áꕖôt‹_۞J…¤D‘ġŭ r,öVQ}R”ʈR‘„€gş.ü/' vž9”°‰„Á„äuv[-5êW lYY OCĦ`˜ KӉ<ÀzŬôŽÉ‰BÈÖğ2oôŜ Ĉx ?övà:!Ax‹ĴÍzĥtWÉg”Ĥv(2”XÍĴ;k9ş‡nϵ—>+lÚ;ĵ|"3µá)êú>+UR··Š²,ÀZéhż"`j­İ>d?L]Ôö‚:1ĝE#]=†K ­ŝÒ\Y£:ĝaè”5µÚ<ĜŻÊİϙfpÈ\hĤ>ŝYî”9Á‡„s½[ͽMx2`­Ôâ…~nw–ŭ†Šˆ·ŻkŻŬĵì<½ZËôû¨²jNd ÀÑĝŭĊ^'Ŭ‘½´³³ˆqğtqàd ü^ŭ~€ˆĜ~óôيSçİ9uà ½ş³cĝ˙Ö 9‘'v·Ro!ĊĤw@ĵħ!żñXËÁo(ûŝ ȆżÎNĦÑâ24-„Ê–&?::şT£ÎڀÌŜÚZM °(Ê£IÀ‚\µu[Áf°ÈÒĥĥíyÒċċ˙™ëçĦ·ğ‡Aô÷Ó˙ĝ‹ ¸ZµmĜ[Ix8š„‚î‡AĴûüñŽÚ ˘^2“ƒÉô͋â“Ò~{¸qùâútÊCEö‰˘Ċ[ȐDXW‘u à ”­ĝ‘(0bòGòżCàTĝF÷ŭĈú˘JnÇNÀíĤ-Ğ?Ċ`Xn••÷“µż^éú\ç6Š—yF`KÜ=Ú-ĥ ü”„ôżöpddÙCäO#Î;B'Ç8¸šFÔx¤ÒFBà¤O‰ÑsËׯߺ<‚žE<Ŝ᧸™zI;kc–ek·Ûlv ˘`Ò è‹(pÜİàLx“p‡ëĈ8ñP{ /=ÏÍ'ŠLâM.œà1Ğï5Í"ÎvQ¨ĝŜ…§àp#œ"WÈNC³>Ëdgµ˜Z;›[ZİÀâ*!ñ0ŒŻ"PŜA?~‚ÓŸš Íg^œ1ì_%}@endstream endobj 232 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 452 >> stream xœıFŝCMSS9/ĝĝĝ‹uùù`B@"O‚‹ ‹ ­ĝ)÷h÷c÷_ns‚Copyright (c) 1997, 2009 American Mathematical Society (), with Reserved Font Name CMSS9.CMSS9Computer ModernRS34Oğĝˆù-‹ ÷şÌ÷“Ĉìè÷ßâĝF÷Ùñ§ÓӋŬòûßû#ûŭJè÷Ï÷4÷RûÏëüRĝ÷“÷'÷ÏSCJNMûĝÎuĠĝċÒÄà÷²à÷ˆĝ8X—X³‹ĊÄÂĊĉÓ½v_ż›âY¤[£0‹û"1('rc­]ıOÌ|´™‡É|“‰ı}½_‹MIRM2:?ŞL{4íNĉƒş‹÷éñ÷÷.Ġ@uĦĝPœ÷UĦĦûb—Ì Ŝ  7Ÿ Ĉ‘ Ŝ˜ à•³Çendstream endobj 233 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6033 >> stream xœ•Y XS×ĥ>1äxpF= UÏAıUЈSÚ:¨ užd4L $$B† †0 ÎZĞ×Vë[[Emµ­ĠZm_íxí>}Ûû}o'Qïµ·ï‚ĝIÎ>{ݵŝµŝġŻ-éAx<߅ákÂ֝<ÉùËdnŜƒÁÏAbîŸ,Œ ú/˜7bTÄàü~ ôñihÈÍòƒú]>·[Ĵ^˜–.&Ĉ'dŽy%pòkŻÍœ2iÒkóS℉1Ñ݁áљ q)љĝ—äÀ5i1‰q™âÀħ³23Ó_Ÿ81'''$:%#$M?ç•àÀœǞÀĠqqÂì¸ĜÀ%iİ™+£S⟚òô ÓRÒ³2„áiħqÂT‚ ÏO]ĥ0}ÑîĊÂ%K3C³²—çDŻíDŽçĈŒ‹Ĝùf|ÂêÄ5k“Ö%§l˜4yÊÔW§zŭo³fÏûÊĵ-ƒ·MĜ9‘ FDñ&ñ7bñ2ħšMĴ!Ĉk‰ħÄ:âb=ħOl$ÁÄ&b!1ĜL,"Bˆ-Äbb"ħ„˜D,%&ĦÄ2b*ħœx•˜F„Ӊpb%1“#ƒˆÁM !ĝÄ0B@Œ ‚%|‰^ÄHbчèKÌ!ús‰ŝÄ:vф9A“›È\™ƒ÷%ß§ÜMZgԕ=e-¨ÊÉ-.”1ĊJyŞ(qOTġV@Ħ4­Ds‘xëQ_Áŝ‹Ò–ށL%›Žĝs“5}Ŭ_à,|l0ìqŭĴ =+ÓeíµW”4|":àD7jÛq˜œ ë…İçûÂ>Ž„>óOZ½m·h7ÛŞbŸÇfêVŒMž…ĜÀ ˜LÇQ­ĵZR_ÔZ€êçÒŞĉwÏ|PoXˆˆÉSĤğħâ¤Ĝ‚än>œì Tµ ¨t/ ĥ“páêß7CùħÈo%ŭ= •˘)ihÔT4 bƒIg;x×q<ËıĦ´ÁtÀH5ŠL’$4²ˆ‘ُ,đŒú!_ ˙ĉ܇×NĥÖ° (^°ŜS w…¤cǢH4;ùäÍGî~{£vŜŽbE¨RÊĤŻxsm( Üİ—ċ€‘ÜÒpİ-V‹A1%´Ğ*[M•µĤú}96F`V×&%k¤QE BvÂHT“êĴ˘X ˘2j‹­íúÊ#cı‚M7àĠêxìë‰x“+@ žq,ıèLĉ“úJK7(Ħœ ‘˘‘‹ùbŞ}R¤ħi3ôt/ĞœEî†n$iê°=4Xêï}~çĊ´İÊĠ\ko>7ÈĈ‡†IĴÊĜ´ZQÏñ7ž°Ëù‡S`+ ‡‘Ş J*µ”ĥëm6ìŝÏú —ûNó’4ı1Ċ FvÁ]¨˙K÷ŭ<Ĝêr?Î+?&şı* ä³ÛÈge ŭ0ßÁçBıét\ŭz Á Ïˆž½ñµ{y?äħG‹.€(JŜ@£·m޸*gTv5¤MĦb½&_ĥQıYMĦdos<ö<°™ğ˙‡·ä´¤ÔħIġiĤٖMĉĠf°‡jh=É;şd‰ŽÑ+b‚ ·”ì36•½ TyQMfĤRR¤f\ċ§:à1ï6Î~° Á.™9ߪfß%sC7Mœ¨[n@.‚$˙ğ]ÛèĜ,ÓYjv£3´ÂédC(…ĊŒV+ÍPĞ’ÛwÚ"ħ‹#Ñp†"ј›c;~¸ĥ½‹U÷ZZĞĠ¨Az0ƒZPR§3Ġ!e§İÖFŝyOĜì²×:œ‡Ia?GÒp–'?T²ê ŻüMÑäIÔLŜDÁ$2_ħHÎĊ¸Ë^?íŭ_Ż~|Ċ vvR¨b¤óİòöZK€ŜPŭ<_7soÓm¤µċ ލ7)M‚oı m xg üégR¤’yOÛìíI éâîxr'Êŝó5O#Àƒ$FFĈù=ċŽoOو–+ó$ñ[c—jıĈ^]ZvÜĜ̚Z­ĤVË5 ü[/|sÒı$xċgÚy´¤ícH­6@]÷ĉQlŒÊáÀÈ1n§SŒEžŜ@˘蓵ÁÏğîî¨4“çŭ’„Zê@°uPvÇçT8è]n–s½şÜC27ɏCä+Âwo  „ġFcY)¨§šDĥ̜4Yä²Ë _>üôâJĉ™­˙ Ÿ³9ímxDo“c)–ÄvT*+iÍ ¨ ’—oBüyıT …ĝ{Ÿ °œĠì£Ŝ{p—kMÀÎê3µĞt™ú0°„Q¸V[mÀVĊ”—Ÿƒ´ı‹Òċ’ ä”żQş^WpXA=°tRnˆg8~r>Á§Âst³òÌhijÓíR{ÙAIĤŜÔ Êġ›•&GĞbĞ‘ı qԊÓk;uÁÒ|ˆİIß[|P-.Û¤r0eħĞ?§•‰êĵĝœŬù; µ!qß%ĜŻ ú<~˙—ĈÍl­Àîi0SŬžµ3‹ÊPí1X+hñßhòÏğÏèsÉz} ïCdäŸÑ³kŸ É>k\ Féi{šŭˆrw…fPËNŭĉςö†¤Ó>ò‹Ĉ£i‚íž$„” t>‚ŭŻ ŝ‚„ì§Ììë4Îù,Ÿ'Gi7; à‰ĝ¨äÎ9ëLiòßĞeĉc•:W‹*ÀÙĴvpBÏüıT9…îŭWÒ6àôżà´ŜšîNVgkìp…y)M{ò×ûù‹‹Q™˘‘îv÷Ĝ"—ĝÁ\²ƒWs—ï]µĝúzĥ'QoT˜nzekÀ:ž#5Ż•Íää8Ú ŠšĦîÛİÉĠšJMUÀLYuİı‰òm;ÚÒßşĝĠ™VĉYï{tšás"È£ĞUÂ,•2OÁdĈEemÔë[.\é>ŭ ciêrV§Ġit€Ê ‡m‡.‡€-hÙĞ(xÔĜĞ“qŒNggg˙lċşħğûÜu@=33d@£-òŒCwòıƒœš~´†%O˜"$‘‰ JD JCù{Ġ/]LÇŭ}PR¨ññzz”˘ŬñÉ^j=6=h­ŝP_µËĉ/߅–Dáñˆ%cĤ–'X"òàe§Òèt|I£]WnĴ+éj=x˘:PÖvË÷ĉƒÜY‘129‹ċğLq…x`/ÔSò,°Ï^YĞ7°6yğä ~ĵûġwÊzE Ûj­7TêLB{ĦPv{uKµĴsuftqÊVv·=ќ¨—_21Ŝ–ĴWħ˘Lé.,’• š9m›lÈ˘ßZ_Â|B;~ŭÑ86&ö¤·Ĥtğx=ğĥ…ŻŠXÉĤ˘‡ô¸ˆƒûjĴ4ħ­6 ¸ ¨û÷ÁⰗcBĜ§ Ĉâi /.(gpŝëû¤üW×lÜôd°ż\Ŭ=t„ ϟéĵ ÎPW×\G-û Qç¸3èämòFùVħ²X¨-dċá@òİıdz\mğӈiH"İNYŻĜž (E‘ħĊbj36ħĈFS ¨¤I@½rßνtҋ\;^#żìܽnuè+ÏZü-ûyĴäO˙ÂçĈpïӍ˘ú´äÌ4án{vs[SSƒ&<ÖÓh W4NzÒu ù.ĵ{üB£ĵĉ}‚|Vp‡PġĦ³LŸğ¸)eĊjhFšĥàZs,Kzż:nCcZ]6ۚŜĴüTôAž˙Û²úxG­ŒX85ġ?Xġ&PÊ8'u…H •BˆĤµk Ğ3šÔ2Gâ?”ŸÂ½Ÿŝ ß~•_ÉĤ·ˆŒAM"SrİRŸlÉhûİó—ÎŬ„ŬĞİy ğ³İ´ĵŜèĠż0YÂĦ9o#3pÙ(ċKŭ]z]í^j°â9Ov{ġV úğ ^5OÏ÷şmÏĤnĜê6,£ħXé)8ìÉâiġ{HĈŸ…ß{‡}ıžc³ĵo'Bĵo'ôC}ÙÛ÷?ö˙MôĊƒ½<¨Ĥ“Ï´˙#LÚŝEûñ&ŸĠèéŒ% —ƒ€M;Ž~\Jġö<|$ĝO/8o;€$ġ¸ä+Èż‰l^qö/ċŒĤxêó Ó;ô’W:Ŝò’D<7Üĥ÷ĝP᠅ÏĞÛLĈš:pċ—57\:ÒÙ¨ò*mĵBĞĈM%Y/Z_q½òšċzéPln_óÖ숑+ÙĦ¤ !‚Ä‚ôLUK–óŜàÉ­ahe,Ÿí)÷ğ}<ĥ½ÎubÛ?À!Ż~Šŝ,Ï&vr,şƒ‚xĝĝ˨kċÎ è€ÚQ|S}A[9BòĊ…ò×QlŝF,žte%żîé?3~û OMe: Ġî Ù,—ÁYĠJĞ–÷qš8mœ6ìÄjĥk]ßêm ’q—ıĜ+“ù[(İĜOéÄ$È3ĴĠĊëwœ?uùû@'(İ3Ù($>JëzŒĦóKĞuMiϸàğНË|LCz佌›öp´E#˙GŝGÀap-Œd}M/‹½ó+ û~}m˙´Éh\ ŭD—÷süRǂ„R˘3aBİRX³s‹äJ#n›żP)Ñfk@ %/ÉmŜ°ĤYòxş Ĝ+™ žħfş;qœ)Ŭƒ–n>×FҐşsĉ6ĝ’ú~î5ĴTFÍB>+…uıġ-ö†ĤrEebŸ<> >ú(iŜä;=ç` Z/‘i€K¨Áûd5¨%úò’ŭ Ìuż(Í[5 ’ıë ê/8/6>ĵânvC?ĜğzےùsĈäNĠż#d†* h šsĴY[ÀĈ‚ñv~{ôÓİ´Ó{˜ïT šİóë.#_4~Ŭ˘ E µm–âR cöuvëĴ€şp8=65;*.•Ŭ™ž˘IÔĵİ’jql\şK†pp8žàlÚĞ˘9ĤQ rA@™Š€TŒŜzLĝäKAž{H1"Ëĵ¨İg‹5d+WIëÈUè'>qı§áÑú[Ĝˆ]Ö;™VíĞì¤ȴʄ(Té&U%1KlƒÙÌĵ}â˘İPŬë֎Ÿ°`Rô&Û1)[^ZާzŞFڐşl(˜z{8úŭ ·üfPz¤*k‹ÓOxËKp·Û@^â´Î 7Uß˜Š–k™´Y#h@zG“Áf320Fŭġ*għ´YŭxÜPŬžÙ’˜˜—RŸŻ³³ŭ³˙÷ñ[3íŽ œâ‚›ċ ĉ_âsC¸wèw”íY%qREaPâÊÌĥúS5Ŭ[ύ.gLm†<;ûgş:w·ŠÑÈĠ"­kó5¨gÎÂ7À,qh$DħHê˙j9¸€§f£NoWUĞ@9ĠœeËŜ VIĤ|°ùĥ‚)N„Ĵ˘ÄyM³ħÎĴcŒuúrCìQñàk|òüŒ**˘Š^cŽkGÁÙKo]Ĵ l¨Ŝ£<Ÿ ÂÁ›Ğ×-’:•ò{v.§P+—G——T•ƒŞ^\™Ğ,Ôċ3è1Šɋä¸,€¸RaRÁ“(ÎßZàĵèjŞĞêj J‹L,²ÀÎÑnèŝ˘›wƒKċszĝ]Ñ şşâœ ˙#™—:œġû9 Ĥm]ĝI²ó "ċ‰ĝÉüÄcKl k+J+@¨É//6 “0Î_R.ÇôIċ‰d™bKai1 ËÑ2t…(@U“_]f6˜Êœĵf˙#C“Šáĵu4¨*,‘™_)‚=°(½Ġ7Á8¤Äh.U”–ƒ*Ñ\t(Ú4ġüTĤ5ĉ|D+ šJêÊXÏVV¸>48ŞüzĠ7é#i€*s eJ‹‚ŭeN-ê7Ò&”І*U \uTĦ)§y?´Âو{z?ċ€íĝ/Ŝ½÷îŸĊ<—AË*„V,Á'ÌēcßÉ'—^ŭèĴB ğçšöêAâ}ÄC“ÑD4m@cÂAĉ é4c-=ÛZ(\­Š\5ç3bItúz@ ½}àt8Á—*71>~蝔´çò?{·ĞmgĝĜYœÍtü„×È?úÒp’WïuÊ#mq2˘ŝıÂ_‡zBĦ^}{´“pmÎî†sêxwıµ|ĝ?°‘†cH‹ßçuĉp²ŽÒ™°òÖTKk²SŠS 4Œ 1¤Ì™]ÀÂÂád…'e%äV‰ííĤĥr½ë˙²X;ì…ĞĝpŻŽN[ıEšĞTjEJCÉ*rìÇĦϧżĵ•vp{Ôîĝ¤ĝĉìŽ2=w˙|ÚlÜÒ$ÔK@&ïŸA4ÉK›„zͰħ›÷;7‰Ï%cÏĵ{ù…ĵÜÍ;î4gbŸZ3ÓŝGfïï\Ÿûàŝ´İÔXŠÙ£6Ï&É Š˜Çk˙ıĵHĤV‚Âħ5·ĥÌR^Âô“Wp Ípn…ÜF"qiOGŻ+½™^>â´>ñ!•éwendstream endobj 234 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 808 >> stream xœ]‘_L[UÇÏí·eT*Ġ›= ÷ŜlĈAştFİÂjì6ŝĝ@”™\iĦí-—ËŸ*D1c™#2AœÛ€dÉbLX²u÷eÜI&Yĥ=l²dËd¨$ğñĝ`ĦÓŸÎùċœ|ßÏ9J3 Š˘L.Omm~ÁÖÖİgSú =‡ĈDÖ?Ô/sµĵ,g×áç‡2ħ…Ĉ–´óR6ĝ( ‚V=‹hŠ’ÚŽğ¤HT4ú!ח'äĜ+8ĊÂë!QĝĵaÁUübÈĞ$† P#ù˘r_ġ+Jä•}û:::ŜPĞC’Kòö Ċ/T‹­˘Ü.6RXyC˘ìéH..)iSDYH ˘F™¤ˆĴtЄޠ*TƒŜAu¨Y‘9a‰Ò›è"µ“R(ŬPeġáL}¸W…{*j0ĤÑú{d!ËıFAÎ\’Elì››VÁĈ‘wIëòÜZYžż~ĈĵÛa÷”ıĝ€È*¨pSV5è×h8JdvtOO·ànŝ41ħȅp›7–Wà9°x²ğĵŝŭžOùüµs3Ŭ-8žÄ£üĊż?–š6ô.öj<-ŞċùöÊÊ7Ê>XšqX…•ğoßĦ!U,düúËÒÀ îàhüöä6OœŝfüGï麃ĠĦšzŝÓw½_¸—Rì[dĦ45AóoŬ]LòInŞëçĥC^Nġt S—Há]ĉ žhnÂJ”+.4uGž’î“Ĉ1Xĵĵ6ġÇ9<ŜԌÛÚıĠ= 6ż†çb|Ş˙,È,˜Ànœŭ—N–Šá_öbÉşq"öż“­Y2ˆ=ñ7EĈ³=µ%aHráïƒí!ħċÖéT†˙İ p²U*gŻÓú~¨eÇÎ⠐î~œ›{H&ħŭžV`z09ĝÙx°³÷xW//W½u˘a÷µOn›?żÂ~µ¤Í]żáħÂŝ:ó–)¨# ?ÇٙH,Ü,ËÍĦɖó3ħİi.óŬu JG2İ;´ nGZT²¤Ğ‹fyĦżOŠ“vendstream endobj 235 0 obj << /Filter /FlateDecode /Length 159 >> stream xœ31Ġ3R0P0U0S01ĦC.=C ÂÉı\… Ĉ&`AˆÍ ÀRNž\úž %Eİ\úá@i.}0éàĴ`Èï 43–KßMßÙÙ È °ħÑ÷VÊ8çç”ĉĉÛÙqyş(¨-> stream xœ]O1ƒ0 Üó ˙ ÀbĦ C+ÔöÁqPœ(„Ħż/ ĦY:ߝ|–ŭpĜFcpĝ˘Ĉ²´ş- ÁD³eQV -Ĉ“ċ‰‹òBöwċßO°ÈüĦ’ÏŞ)òŞ> stream xœ31Ó³´P0P0´T06P0²P05WH1ä230Š!Œ‘œËU¨`aS027iĈ`9'O.}O_…’˘ÒT.ŭp .} *.}§gC.}—h ™ħ\únúÎÎn@n€·‚.PĈ9?§47ŻXÁÂΎËÓEAmGTaŭ?ß ˙ pЁƒĦËĠS! B)Éendstream endobj 238 0 obj << /Filter /FlateDecode /Length 159 >> stream xœ]O1 Üy…@ÂÒ%ʒ.ZUm?@Œ‰b!Cß@H‡gé|wòYud—@>˘Ç%°ŽM¤Ġo &š‹Vq˜*+„n:ĵ?`7=ĝ]/$ŸêҖU{„ZƒFŠšg]Óôµ½ 6R Lĥ:ĠŻPXü§’£ıÄyp‹‘8•ĤI.à˜~Ïr vˆ/?vShendstream endobj 239 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2188 >> stream xœ­–yl÷ÇgY{=k в ÌlC9Ü&€ĦċˆhJ1rĜĉp̝Ĝ°kïâc×{z}î½;ûöìµ½^Ö6666`ŒpÀœ ‘H“Ĥ¤”¤ŠTİ•~ğGêXĈUZµjÔTif4šßï½Ï÷½ïïħ°¤y‹ĊJÉÌÊŬħ~ĉ1#ŝ+t^|èĵÄW‰=É˰…Û·-{=għ İlHMêZúÒÂ4Ô¸i"áË›Ċ’ŞL™R™V.)+ĞO§ 2ĥlÙô†`ŭşu[ż.É%§ ÊYJħ¨´@Éĵ”IOKDJ­`ġVħR){kíZF³Ĥ TħF*/z;ŭ F˘ Š"ıZ$쒖)Ù"Ál kfo™ÒR™J)’ ²¤B‘ĵ °EeRÙNù.…RUpZ(’”ä•bXĥ;€­Äaа\ì],ێíÀvbğ°=Xĥ ËĈÒXÖĊ¤y^3{ ûYÒûI“k9 9Š”WSŞpÀż˙,nĈGôÑĝÚ(+ž:Ñv‹¨ƒçmğ‰˙kp´2ë}:µòi[  Ĉw—=ïAéî€Ĵuv[µ•0Hd‡Ż6úÚ;BŬŝ(Ùù¸÷9ÜĈo(GßÎ:QôŜÂ6\rñ$(Ħ\ŻÎŻ(ĴÍ 7z¨@Èáh÷S-S½€wBY]…Ue­!·ÓÖ°ƒ•_篋´#Ín‚·Í‰ĉ=@ġĜq3êáŭuïím4—N£LŻĤħßŭqQZŽV4mĵÉĊG×:ĵ ·Èŝ]ŭ€wž8˜Ż “‹sÉS;ŽÈĊ€3ëÒy1´vÀoî³˙H/ĉKLfà:=T}”‡ì„˜ótAƒħÔċŜzˆ„Ì U•CcÀáAûÈ üĴxpÄB)h ZñċɇğöŜk²†Ñ˘6É÷Ê\m­&?¨äùğï~> ĝĊ–ÂĵCz‘Ĥ€ï<%-<Ëü•ċp9ŭ$7ñ3ˆĦû1ÔßÍJd Zž;NpàA=Ĝ,6°ÙŠ2j,ş\úĠSétÀi.§ÌîıÁé“Ħîä/9úФZ“”2’@QV°áú ¸ëîñ’;Ü/¸ù3 2×ĜÍŻ´Š-€oĉÜCŽ@ŸÏÑ|´ˆƒRC§²  ħ“`Ħô`Áuԃ+â":N`‚?d„Jbú0§Òz?4M‚QoŠš~mz 6³Ż}ñ‘Œ 9Qp8ĵŒ4ëô­è“ÇaF˜ôOĜȃ.ñ\ġháàóVSm­¨9n26FÎ5\Ç'=)R.$ Sù²˙ıÜZš˜rK¤1ˆÇ˜Ğ›…î Oy_pîĞUf™M7CÌÂ,9“kÈé ğˆÛH—<ÇÊJTlĞ’o|+ç! ÏħJáü­£ôıMkS’T P ˙ŒjÏ÷@Ċ¨Eö s†à 58S–´PEš9ÂˆÎŞÍ˙D½ûŭüÁD”ġä)Ú;ʎ§Ċ“xEVŞĴ¸ÎWmoŽô^;=°—NŻÈ/lQôDsU‹ċŠŝĴeĵrq™b=ŻèhxDG\w2Û9ñV­żÖ(´ĉfß„Wûĉ³MÇC„Ì[ä‡aĵ³íÑgC1uħà˘§L×.ĦíL.˜d£@|%ï÷œĉ Ó@&¨$·rQ†é`ê—05VÈ *ĈO„tFòFÎ?*â3N&=dÑ@£És“ߌĦĠž÷ÑÙ)…¨+ĤïaܧĈwĦÑŬîndRn{aoŜj™`Çİĝxî0Ó!nĵħ.P+5ʙ‚Τ/3’ë) _SP(> ĝ{†á wún@úÛ= ĊÇÖIèUfŒPWĜMĝğ:ż x}È˘ëËĠÈâġµG@ˆgL)F/÷E{ˆ°[Ŭ— kˆ5÷Ġß>ë“v™lKWYZ[ĉ"35ì;.§ñ\!p1€CĈmħI„Ŭ^1"İ—ŸfÑ)ô›ôÊġ#û uĦìa}û÷ŜêP„g.ÏÙx<êiŭXZ4HvŜżĝßz“ŬĤŠ (OE—;2ë³˘§ìĝöĝ|žÜŞ.o³‚ŭŜ‰‘‚ŝì9Û]q7çwèċÏ˙öŭf›Ŭn0y™Û¤G?"žzá½wF{Ż€n@ĝ8>—4’tÍĉ}5ħç:ŬLĉ“£Êʰ¤Ĉn°ƒg䏁AoĦŒv+ħŸ6ÔôÈcù?FƒçĵЁÌmá™d9żĝ·0îz×ĜH[Mò, yŭ’aÁı,½lT‰Şy}h? ´áŭËir½cċDĉŝùÀn§=W}烗Ho”7ˆ6|Œ>Ĝ.•è· ˜ä˘³ˆ',ôÊĝĜ}œ`óZjB•Úò*İŠqµhG¤“ ÷MûxFԂ?pI}áO˙zĝ–gdÎŞ:OGgĝbd”œBg7‰ÇϜ=CŻĥ|§‚{:Ÿ3ÜşrsIËDáÒGKşXϙî˙ŻJX)=£6í  LĊTóózĊ×z£íçDäBĝ!ƒq ‹ĠfаÛĴĠ6CíħÊÉwásgÔ­‰×cĴDqü/v½#6é :ühž9À(B2J 2(s–ϸšYżŬCzíŬ”AħĈfĦoL’ñf*Bğëà7?1€…<bJĊ q–ÌŭĞ@şËTĉ"ïLëÔ:­ Ào§Ë߀sC³í—àÌ >qËÌàÓ~½ò|ŽċĉG'ڏ8VRtô‡ AġM¨pO½g=mŜVO[°Í>é‘* ó‹–ÜM73š0ç_篝››Ô­ñÌ R8›[9t~0%ĥàŝKäMÑÔùÑ@j*†ŭ—b„endstream endobj 240 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…I‡.Q–tÉŞjûbLÄPƒúûB:t8Kçğ“Ïr/#ğò=>)ul"-~H0ÑìX4-‡İ²2ñ­ƒU‡×'l²;żé7ÉÇIݲjözCKHQóL˘SŞïĴíħù“j`²ĠٞûŠ‹˙Pr4—8n1§Ò´4ÉÓï™àCNÁñ;Saendstream endobj 241 0 obj << /Filter /FlateDecode /Length 2809 >> stream xœíÛnc·ñ]éG‹rDgyżmë I7ÈÖÚo€˲׵-)–½˙Ë!‡Ç”d'ğ]5üà1MçNgÎŻcÒÒ1q?ñ÷üjôêPñÙfDĈg£_GÔ˙wÍŻĈŻg0C i-ħt<;…tLhı°c-ukıÏFG͛ i‰%ŠkڜÌ(áÊ4ד)i5!Â4“)çĴĠÖ60APAmNÜi­Ö `Òrˍin”[j.6"eÍħ_§˜´Í-Z·€aE9Ì7RB41܂î۞"Ŭü˜éĵÍÄ];‚ˆR˜nÂTk Ĵı Ë Íϙ0´íêbÂtKħÛ(¸›°°Ŝšĉ/HĊxà+²ˆXMĤ€vPxÂ2#-m~rs Ħ°q³ş‚)šRl³É4ü2ûÔ+ V/çşUÒ)yv2jìdöŸÑT:žrÙÜèQ³Zî ĥ,$!\DIq&xÓ9 £™!ĴYáL€z@ó°żZ6Ŭ2ŒK´êP* –³£ÜˆBÁ› ÒuFrqċNĴĦzùÀ(ü‘ġ‡WŬd§˙#‹ĊšúèġgµÍ„qĴà…ú‚HX&%h•ĞĤsşĤVY10Ĝ4wuÚ3aKu‚He<š£7­+7•ĥÌË2M]-fEĦAPĈ8İ"2; x*ĴsYK.ħUĉv牏eŬñ’.ĉrâ, Ö2Ğ‚eEĦ·É/„ލĜ*§7Á qÇH"` VŬĈ“Ĥ(|ކƒĈŭJDĉÑáıßħĈ/LħRP瞽O9ŽĤ=KSÊ[),‹Ŝq# MfBƒÇşQ`6u~ ҕŽ5 ƒ•1 ĀáÍÍEB`–YkLïïÔr‹ Kqċ}ÉZ%|4Tsm‚烧‚Û6m˘ Ê(ް˜ÏŜŽfß5‡â‘A€úëd*wqÇï Ûb½V"ˆFWĵÎàyğ ^f°Íàğ .ŞÈ6ĠŬ–|YEöa¸LşèĵÌà"ƒ³ Ŝepç*S“Ì âfáIá"ƒ› Î÷ k½_ĈQ5Ş9Ŭ7aQRUdŠŞât }Ĥéµ;†ŒË֝ŝ´wówYP2ĝé¤> PÒVewHiË%·=żeœçĵÁdGħ™†gcže2ƒ·U6“ŞżM݁xĦ$Do7&öìxğM /3ĝŻ ŝ”Á ŝ}ğżJÖûëQ–<Íà/Y ĴH†ëŬ‘s^W•.ß7UmaĜáÏH+Ÿ/ $ŭä“(öEf`”Là›Ş´ö>E€Oà ÏŞżu˜tLw™Ÿ›*ˆ`[ú­‘ÓUı¸¨N8ĞÊájzĴ.Іy]T]|ŻĞ*< µîÒâù2ôbòï<,£‘z˜>ÌÑó ]³–ĵÍàU}ܧ†[,û´ìäáói·›Ş¸(ÒŜuÏ÷É­FéEÙŜŭ˜AtżÎà÷|›Áƒ^˜ĝ³~/\VQ\U×ŭ%ƒ/2ĝ·ŞU [9¨.Ûâóώŝŭ*Ŭq°Òg—~*.&#—>Ŝg+ÈÑzJ›çSú˙ÁyŸŬËž„˙—.ûH÷ŭ\Ùô?ċê ü IĝŸEI¸eÏIĝÀ˙h.!ÜÖJwç?q IRŝ.–2˜ÔÍùĞ“HÒʛ“ĊfîèĈš]ßĴ|ÑTÂKÏŻe͓ı˙ëdÔ3_käV{ĉôëK‚ÜpWB*j˜¨ŽÛá Ë&Lw•ĴŠ-ƒsÖ­ûçèïŞfyYUèç}sŠĉ^˜a3“žżĴj£q­5U£p]Í×Ҍ`İ„;,Óáa_”ÈAÁÒ˕ÒĉOħ/ħ2R”ŽĠ/_.,÷Ëzšû½àˆxTŸ[{Tİ˘Ĥj‚œú²t"¨¨ëġċĜ(À²‰B¨–İT =H)mŬ8ï'·YÚîÔ0D*Ċ‡EԞ½šÁq`C‘Fò2ÔHÊ-mk@’iËTï—eeĠQc½?”`}ÔÑHXQwuġ~n\‚òġ~ŬJ#ħPyġ)Ä ³·“0ŝBäĠ$”c™lêËħ2HÔ´·€ĜİpŻüïgĝb0 ÌÍ"ŜĊ‹€"ğœ¤ÂjWVg‹ÖWòUT€­Ĥé‹zô(+µnn,Ċë:f ÛQŠw8œ‰ĝÔ ²½ƒÁÍà°nwܢZ€´U¸†—YtA÷7ĠQt͚W\„ŬŒĥÓ \I0¨ (ÔïÁz£ġ>ß×ïe)P£„ğ‹ıŞıuŠŽ·HÀzÜŻ€(8Ž•Ô0ÜDû >ÔwGU½˘-ğî™ Y9žúrfğŠŠ§9…ùs> ĤÄĉ)\ÄwdÔèj|úÔìħzûŽħ°vċR§yô>ÍKÏ3x™Á/–ïmI¸wĠ ŝ"ƒhÂV]ŞÎâ,<á}˙ŜkħÖ(_sŽ…ŻóŻŞŜ²İJͽĴJi>ÍpnÒÔquîápthöġ†ä"ÓŞgĦeÇU9wĠQ”ĝ"rPċŝ]uÙŞJ$E%d §ĠŬÖżo‹WUŜNŞ`8™˜­äéÚ_;4”é(HŞàEÛ 3x]]vSMÙ˙HáŽÂÔ§‚\ŝ@ú¸×Ö÷ŸX—ÂpWŬbKÓğĴžòĞc•E#[ )Yjì8ʧüS!ZËÁԄğ`İhjÒ_â­Qp/‚ °rw™wé§^Òp‡‡;°K È5ŭ:XZ³­‘Í.û£S"ÒŸlÉêCçúz‹½CÒuŻE44û2ĦDÜÄ_@ÏÂ:‡Ïĉì:Żïw´Ê­½÷!áb” ïB1ğîĉhïžo9Ğé Îŭyá‹t1G›£ÑĠ2ˆ@Ċ£2wžCH <ğ͝ÔŬYҀ ç{Dù½›á7~Ĝo!núéhAèĦ͗À£okö[é9‚k¤Oùw‘\çÄçÖĞ˸5Upâċ|ô6ŝê^qŝŞ@Y â_tF˜öäáDu:ÈĠŬB׋LEİZm‡qrñyƒo`Ž–‹^ĥXĊ&ìr…€ĉAgLBq†-(‹9S ´i˙ĝÓżQàÜœmĦXà‹Í1Ú¤ ùŠ‹˘|ŜÏvíâNµàފü<߄xàĝ#ñkˆ€ë.‹hs/ħdRÎÂ˙Ü;ğ²plA5-Cyxġ‚ÄWOĤìÀ‚l‡ĠżˆœgòŠw> stream xœĠ\KsǑöö@ĝÔXiÚġ~8ÂğaÚ:Ĵbmkih/”1’ LCbÛôŻw>Şğ²jşÒeCĠĠYYùú2³ĉİġİÂ˙Ê˙w7'żzéìéċáD^ž|<Ñô×ÓòżŬÍé‹s˜<³Êúôüí żŞOur£uù4ú8fëOÏoN^ ż?S£Ê*Ĝ¨‡+­lHŬÙFQ)—†÷gkÍs N;eô'ĝœc40V£Í6á >µ9Y†k\Mù”ÍpAïó Ŝ{ƒĥV‡ĦV*Ş$‡+Ë}=Q‡?T:*qwH Anc{f˜ĵó‰_OÊ „‰Ïîߟ™8ê”òŸÎ’…ħËL‹Ó-12Ëû*[ìÏ6°*|!È ·LŒÏzĝÎMJ‡‡ŭ L‰Z‡‡Cá/çßÂñz%×Ú8‡|ŝúdúìüo($áTë1{opÎĈ9}şħ~L!à´WƒÇ#ıqq}—sÒz0H™ÒÖY|ìŝ+ ßÓ ı=0•ÊkOĉ‡K:WĴ=ÑÁĉhSD9ħэpÄWrĈ™… de‰í^E&^+³…ċpċˆ|“ïÄ‚Â–Fê ü1‚˙ÏÉùĵ^–É*ä%Ğà/™yĝŞœtN ÛʍOĈ"àSĵoېAt4ÈlŽ^e<Ëù\·,O:™(ġêï(YF‹ÛÂ÷\‘Ûhc‚ĉ!íÎÁî²£÷a÷>_hŠŽM˘™]ôÄe Ç''?v‹¤;mìšN]²ĈKÜñ5ċFM)ñŜsS#Ŝ(#ŜcÍgɀ~Y;l݉ŜŬšĥÊŜµÓ Ö­”@Áŝ›­ˆòğrêí´wÒˇ ' &.*„fwjARN|Âv*7h›ĥEÙ° 9òŬ-ŸIÖ°xòÊÇaŜêġ›ŝ:êN2ƒÏ?Ğ–bEšuŒq’f]$t²‹)ÙV ĥ“ĝä4ĵĊ)À.0ޤl!ƒè´G4ĊjÓêílú…•*k\p“À³ä7…˙À-€Lc Ŝh;z— “~Uħ³ġ“0k² ¸H Ŝ˘,W}¸+B§á;A-îß$ [ö¸ŠJÑ ìÓ ÚĵĞ îŻ‹i‡-ż ƒ–mÍîNF:‚„ K_W~ĝĊ²\WĊ"ç™"XzR xς$ßànC6í÷UîynCpAÔ£üżá‡NµÇÁ[…‚Uß²Ġñè<Ĝ8xNi˘8È=Q”ÇD´ ™M%›ıÜ´•böyĞ·ó‹;ĥa’Ú—ó{K"§eÁ4N“Çn²6mLJ£Šĉc°.MŸ@'X™˙Cf,zg0èĝ4˘A?ÔáX‡Wux[‡÷uĝĤ/ŸŜĠáC›:ükÚ:Ôu¸Y|úY1B!5!Dlr†Żêuŝ²À,.îê0.>M‹D‡•OŠ({7ğí˙w'T¨ pBó™è1 „*ÓUnëŒCŽuxU‡·ux_‡oêrñé b¨–ĥŸBzŝXÙñÛċS^?Úg0x•Ä*6Ÿ#à£\û YòUŞ:̏HuċàòÖwu™ë:\–u1üR²rĜÏbß/ġëĦožR*ĦĦbßż,$µàĊÀbnbŜ pÁM—P';6ĝ}ݵ÷–Š&Çh÷h׆RdĜ(SÀĵ£ C—BÔĤRÖMònĥuÈBCœË)‰´Ĵc’€|{ͳR’÷ó/˘ XJ+³€ú `‹`r2\†œhfS‡úv‚Üí„z!^ß׸ş„îSÙ(Hi ²ñİÍù‹ ĵêSdˆ@Ë ?ÜĠ£Ü—ĴGĦĠ¸Ş—¸F@öV“ò0pÙ_͒ARĉ´Ël˜÷€J?†L;”ĤŠħ_p>u:„3ĵÉ Ċ+`9M,ȍXK ÌĉGħ–Òž }×aRc3`ÉB}N˘ÂĞĵ£=‚ì§F{MÑÀ›NES’™˘{Ö_pdÇĉ¤hÉl…V²O¸PGÊVœïîlıGÜ÷֒Ĝı@Psg8ÄX0hÑM@?`ċäŭÛòq°÷ÇëŒùQç:ŸÔ×_tA]˘Gĉ+ŽyCrÏŻpTp†M²qŜyċ;YS İ\0Ògµŝ' ÌKİ>”żŻɏĈ§!scn>ħŸ(7 b]‚…§$`jé@ZŻ1'”.:ÒfYžÏêLĠ™A13Giëéï]j%Ĥ=ù=ğaÒ×7MgßyM]Ġ@­n!ڐIİ&iµ¨÷œ`ÉşS#²|Ħq5RA{ KD`kħD6 %š£Xx{!È˘ qéà=ż~<™2§P3ËHÄKP2£ßÔ§żİOŸĈ5ËĞ}ĠîŸ21r^W|Y‡ß×á7gK Ï,›ò²³ ,*<è{t‡BïÛîIäd)†+†û–×@‰veÛx`ÖÂh1ípÙA|­ÔvÂXı²Òä”z¤Ĉ›àLÎ?ÎvAúgSX8odkÎDSbƒ6|Á>3ŸV9Ö/—‡ġrHù!Yİ`Ï)mÌë+1 M”[µ™ËwsÔ"ì󉃍 L*G˜›Ì.ïŜ‚ç°“çĜµ6BJgCO ĉ”?ÔkRûUV²—ÀX‚h”k;Ô m×Yщ֊ŝƒĜd”a ᅠ–T€ëIċêea À ƒß ™ qâ:ŬŝŬ`3‡ŭ üGħĞ$ˆüÉ §ĊúˆÊĥˆiŠ&ĴC€ײô}fûì;kÇÂYñV8ÂH şÑ>ó£Ĝ2NÊ šŜò@p èż<Â!LRÄ0êŬDhyİ“‚ŭ‰üż/ncv˙èÁfúİT=œèM!]*żPĤè+ÊËz9Ç?ÎÀc=QÉh†ĴTĥĤÊş·3şˆç˘ġ[5‹ WâxÚڌ{<5€9˜EŞ Äs’˘ġĵK–àĉ9ÖSÑ§ò¨bdò“FMĊQ™~yÏĝ=Ââ[ـÀ21&R>ŻŞpoGɚñ´ñs1_waBĞİ ˆ…8ïGİj‘•^U›(ĵWĠ v!K&ƒìÙqI£<%JdfBŠ|zM,=”„ÔħN‡Î”\T†“íëÇÄüĈcĥñnIȑçC;l|,ŽïX~LÊKqIy5İ›Ş)Ì"àš;R6x#ŭ‹Yk>•DĜHħÁÂħ‰ıgĊ™‹Šô'AD³½ùÈ.YW4ha ĦC"Fâ-ŬÏ GĠp4 jS<ÛÎ Éĉ"îĠi-xEáC#5ñ2·-­ċN˜ƒÑÛU<5X£ç8öO$÷p,÷y*íOòc§„:ùɚ,Lw€LlƒħŻëŒĈ­t1ÚÄŽ’Žş·HKLĥġŒowG\òà l×]E –ŠÈ‚#â)(Z˜ŻPċż”êUĜ—ÓŠ•XÔıµƒep]Fí".&oÑÒXéײÁ" ĊXÂVb>+üZ›Ÿ&_*`ŭ\l¸XRVAXh,5s%rËbW… Šğ´$ž‚n÷1•.Bhż=KÉa~›Ğ’‚òÂoï1àfÚtĴWŝŬÖá}6UíĊĥ<ġTcuŬVòbÈFÂ:ÊşÊÄĜŭaCJOÄ'ŻĜ³àʽëJ,‰=šp“?˘%²~NŸÑí)_—e€jî´!ħ:î´ ë‡ŜWÁ‹B“ÊšƒŠE?sà=˘Ĵ-ïü(Ş"|Ïߊyγ`eÔ Ĥܳc‡Ù>Ùĥ°"ĦN@ }ëĥXFl7$]çİ£ŸÄ“ H&f`+gl Û çÊ@h9Ù÷²œıká|9ójPê™ H Ëa‹ ,·Yvgĝ%×#òG“ŞTÈ'Ó$U)‘’oÌ 8Mxä£+kяE.2Œ; Ŭ”_@¸+›?7E`Ñ7¨˜ĝşĜ—f hv£–ĊmjüÄJ \.ìÛìWsi)ŠJö?ÚŻêpĠ€j[ƒù/äp+mÈàPúBĥħóġ2‡²£Òîm˘”‰Â:ŠˆxV-‘öğeB;ĜÀ·1Îêò&[YĈÙUİ•‘ëĦ>neĵM@ƒ½Ì2ċÁĈ:C°mK‰÷´¤XptĉÙ İGĝÛRñ|¤ –Âħ•@`%üùz*w6×ğċɟ˜I·™9ʍ ‹p͓ñşAħĦ6éġˆE:Ş9Eۆ,sċ5ŻžÄm{&'g³ÄÍÖĠ&‘wd~kN¸—o,u)7ôxU7b̓UŬÉb+~;ë´Ö$ÀѨÇ:Ŭ$F+ıVĴžZG—:ŝ›Ó|ĝ‰._°q˘_럋 ħmÔµ0G2Z ˘kNġ"Ì]Š›ŠÙ6Î gS}ħǤµqXoĵoŜ/×Ċ-.Œ5ÒÖĉÓV´_Ĉ8GͽÓXF>²H€ıîHIžTżeïĈl˘Ìï]ŠĈŭ˘SO_ÔáC­ÏilœĠ<ümŠĤÍ?/p÷Ô×. FSkĊ{’N-—[HK³žçÜY1r½†cgQÍ °^ĈR™ê3ı\.KçË:ü—Ëe Ĥ |˙#jş/–ƒê4(Qû6ŬÂÜñ,…lè™Ċ˙(ôl7ââh!†j£™GŠŸi'kÑ Ä Ğ—(ħĉl¤%š·Âw3Ö%Ú?ê3)F„A$ĥM†ò09´ÄQ$yáµòqîĞżĈw”R´úĠó™ı/J­Ç4*[ò0Gî’ĉâU Ĵ‚íñ„SCĈnO8áFy,‡ç–ž×ÖFĴÍYBÇ7ċĜÒs’ÎoKŒjî2íB²£³Ìijr“ÚÇĥkN—[Q"èÂH™‰ċT=l%ñ‚ĞxÔ²†‹`üıŬ5nŜċJj¤É9ŠAÚôQÚû0ĝECOsĝ5OX-;”ŭĥ×oêe'!¤+ Ä<†˙âËbîëeŭ~*Uĝ‹eİêûµj ì²Ĥûş²J8mŻtFħĝ—# şJ˘‰œüĠ\y6ş½ ÁžÎġ´Ŭ2EĠy{86Iċb’„½IâŽóv-IÀvçRFÖîāF€żŭ3}M7=aOïĞuî$è~•n-ŞhŽ–•‚rĦŞl›',–ʈo흷¨€Ÿ_.÷˜çĊ?ˆĉ7ĝGċLàFcM­j˙Ç̨֋…50&ĝaäîœĊ?Ëĵ˙bĊĜe*Yâ&xW|.ˆe}w)Úvs2ñôĉX­>sskm˘G[zšr‘{9Z~şgQ`ĝĥ‹°²çKdg%Ê éŸÛÓV:e’eżoï{4…ÎfLÏVRĵĠì|nc?ï…àoÔnM.b›4ŝ AÌ%‡‰"²âtÄ(ùšàĦ[ċ&ˆ.˘GÌàËÔٗ> `Ĵ×–8€iԔW_£‹"hÀ)ԛïĥP™$•ÀöÑĥ)0ÍɆ-> stream xœÍ}mG’às ˙†ŝrp·ĦiçûˆħòŬ ^ĝ|²Dû`hïCsHı;3M‘ĠRżŜñDdUFÖT“”ĥÎ^,Ş ffeFĈË‘QÙ?îÌÑî ŝ×ŝ{sġŸ ~wûŝÊìnŻ~ĵ²üŻğöŸ›ûŬ×ϨE D9VSíîÙĞ+éjwĥ„£u—c>VwÏîŻ~Ĝ˙ŭÁM5ÉgğCÏΟÊŝŬáÚ³1Ħì˙x¸öŜs­û ÁìŝÄZsvôlŽúRö/Aġµĝ˜öwÍÄRŬŝ9÷K.ÖŭĠï%‘“ġ–F~¤GkL6E?^îĞiFy˙O}žúäŜaB&%½ŒÓÁc-Ôç£t/&ìżïSŻ=˙ñàòіR/ÍàĦxzUĉâe˙;fdr^ÖĠ–¨&p>\Ó¨ô†¤<ÈdbµûFÛb,½x§&Ùڔêŝ}Ÿż>ûmo4z{½ÏÇħÉÏ^\í­?<ûĠ?<ğúŸ$ÎUOkŜĊDÓµ~g³ġGúO ´ĵ¸{÷r÷/ğ‡&ß}sEo !’düD´ßÑ˙˙pQÂl‰; >Ù¤EÌĊrĴ.ÇDŒĉĝîŠx×gġ‹Gt4×d1;ûW9˘é˜iRMÇàâ#şz ıîR!1÷[,şĜc!yId¸lħ1Ŝ’wżK‘T)oħh癃ş‹9kJ[̑ĉFĥ0ĠzŒ&o²ÓtÍшPàmv:ò†¤ìIßËlĴö!;°qq6şBփVÉҔMĝhhµôO)“n2˘KġèhGÙĜX·XµKéHF$´›Ĵڑ‹0i—ıżĊ^CÉK°<_7Yu$[VxĠĤl3ÇxŒ´ÚT E›³JjMş’BŬhĠŜ“VÒ’Ž%¸MF$Kħƒßġi“}!ɆĊB˘lEòƒ \¤™ĉMìít‚’"ˆħ‰ˆGádhä°ÍëÑ:Ö´¸ ž„'HvÈ!xŜDiDZ-9Còŝ›`žL˜ÇCsĥ‘oÂî1°O°›ÌѲ8Äż;ĤM Š‹è·lƒô*É#üf¨²Ċˆ°Üby6Yôż÷öXœ5á2ğ…€{_6‹y$ˆğĊˆ–Ìc˘­N™Ô{EJ3…2+ĠMd‡ĜXˆÄHÏm²hƒèÀ³Ĵ› Qċ–ŽD!môÛ (ÒA\Fb6™cò¤ƒä Ée·Ê$Ñjâ§/Û1‘F$ ä7 à°×‘T%?kŜBz\Çb*#Šjĥħà‰bƒá´˙m…ÇL‹ŭ6œbÌ*ÁmD${h‚H0mÑvTĈyŽPĊ6”@Ĉ6’äĜ£ŬF_ĥÇ'Ž"#™D"·‰Ğ3­–|~r_ğ­˘à„Ĝ)”mTšÀ-8ÉPĜ$Œq .ĤrBÏmÀAùH:ÂJl“L ÁÈD!Y7q›‹#TÖœĥqäò#BRÛ˜lpH-9ìżÒ˜yV™Ä;ğM7ħÑ}‡r,iÏo>²OÛĝÀh†Rl8Ġ„Ü_ùŠLP˜)wW߯´ê‚¤1܊€]ŬjĤ¨V•àŒZ͔ŜÊ3z^3EµJ´‹qh5STĞĊŠô{ĞOUPÙBĥ•0˜öÔRiމ@dŒ‰ÜX’*pí*M£dúé?Bûú#é)ŭrÛTöÏ5;™ ħpĞQ2ŸqáéJĞdŽu&èFÉD‰½ÑDÁIÙŞ5Âñ&icoÔC£ŠóШ5‚n4-fn¤W÷KwĊR¤™àhì1g6âĵ)Ï ñ´cÑ ]óâŠ7§qjĊİÖ2­ËS˘•{7Ë]0&cU]·&J†ġàġÎ,yBÑùKyB܌Ôàù¨…%ġû—ïזÜIAµßéîÍϧÇ7ç‡Ŭ÷oO7/wߟdwj!Yŭӛ‡Û÷,“ëƒ:SŽH8RK4˙ŝÛwçÇóÍùn÷ġ‡WŻ4{cŝċğ> lRuöEik& 3úî›+jAËT=ë?éx¤bœÎ×|@ĝ8RĈ^l-NfpE!˘‡šPüPŽÈ;ïaóÏF(ƒĤŒ½Ä†Ħ,4ƒc(ĥaĥW>&-˜ ġó‰ŜúÉD ĉĠEĈ€X)™c&ˆì’œ„më;eìĠFŞâXHr‚p:rÙ [ѐ§½fvÊĜĞq:ı>š¤ıfát€>‘„£BÓó@{ÉHĤ°ÔÚÙ${ĉâ‘+r,û3hzµìÄ;eÑKĴÊŜH×Kôxß½´â‘\ËNŠW(cŻYĥ™´ĦÂ'ĝŸÚĴżX 2q¤Œ½šlgá/ŝMä(½“râ~ŒÁĥĤ š]c¸”jŽà[6Ïx°âPF|,ÒH{5oëÄGPĞĜTĜÚlDŝPf”c˙sl/cà3ÖĈЉŜK'6Î4eàn;PĈ^².ÑçTÉAħĊ˜dœ3‹yv¨Ĉ(C§ĉŻ›]!օ(ŝš­)5*GqÎ$Ž~ Œ}dÂbĵ‡Ù·Ïx5JÍÌcà˜ÊIÖE’y/‚ ˆ:s.͌‚{ £ISĈNmßqÄoU$‚ôɈŭŞέì{Àü5eìĠü~Á!7ŭÇ5íÈ4%Ì‚_§­ĥš°èÓä'°O1ä.Ĉ²FüyT„!Äс0vš•,9–³Ĥĝp 0֕àG“’•‘2öâ‘\A=7êP=Œ‘PsÁFiZtéj°š0öi›ï…mć*Ì.UŜO´q2£$Ìî”ħW[›•˘)я"bÒs7†>mBItÈré^ĥGí•ìQiâXEh:eì%#!Ġˆ-1aÒ¸"+ĥĦ݃eR„ħĜXÂÈáċd›ġ% .ó ”Ħâş˙9ĥç1 IU*)QҐ$`)bw‚\,I3aÑİ)½MD%*4ƒ’6ŠĞì”ħ—(G„ ‰PcY^„,V96Ô)cŻf–tNÔ°u°Q´Á•Éä4PĈ^â6äŞŬğ3ϙ‹„°ÎqƒžċSQĈ^ÍÈ˘ǴĠE>Œ“áĊö¸ÂYQĈ^2×`; œFBÉ à<„È;-‡ š2öjĞK@Bİ7…!x‚ i„7X3ü9v‘ 9ñ‚ EÖ´´_ÌbV/DQĈ^œú†A@ғñµ+„Qû†“Ú¸‚ĴĠ„ħ OÈbġ óĵĥ7œ ş–ñ ĉ 4eÑKÔÄ 0@Àï9, 8ŸDC‹Û cŸf°q5ŽÙ`Ùk2µ|–C N;5£ÖhÎ43 ƒ ŬŻÀgà÷IĈ> ĜΒ4â8=t?y ×˙\´oXOŒ.öÔÁzUÒAŜ6썔ħ—HŽL`>9,…á8v~#âEeè$-†ŜfZÂ(DÎ0¤blóË@ĥy¤Œ½ÚڊÈkàìɽJ~ŝ-ĴRıž‘2öjĜÚħr–āGâZF*ƒ‡‰ò•ÌDXôA$Cà!TÈ"‰ ’ùà¸Ù–;X0öiŜ §Ù0{~2×´E9/³|(c§Ĥôĵ}ä ‹¤°Ié3,1ıë*KJïÖwÊĜKT„ÈÊH†%bcÓi Ĝ½2ö&JMH"ċ܂Ĝo’²Uœµ°şòżiÊĜĞİjE^E´£J#ŠO“xx‚7n ŒšŜg'ݍk\BŠ7‡ĈKASdÊü@;ÍîXI6v'Ûr(efnèÖ)c/‰ÜÓÈ$ vŒÈzÉtH6[ÉÛÔ)c/Ù8ê‡Ïi߂Äz ÂMáˆÔŽ”ħ—Ħ‘1ô(ù!Mò|ü’Úf1gÊIXÍN€oĝêDp-ψÂó´É8GI\̄ħĈùagHSŜáà­P(˙Ż;³{q…ğ;hóv?]Ñ>‘ |ó‰³÷~ŝëj> |òF1|„ôŝĤ¤WŸ÷oîOÏùtû9JCVîÇM!K…ÀéÍğ?œîŜ<~DĦ€ċ³ ż#U,b/h89ÜġòڊûQ¸QĞ%³ä8€0˜%‡ğ}h’ï^Òb×.vùTEè%”c–ɨÎpÇġ°ôĵÚÑĵƒ'@:Á–v6<à<ŒâRígyeìôkj 78)À‰Hm5 ߵކö?1Wá"*‰Î³˙~µ˙ĉç7ow˙ġ|˙öŬË÷ï_8ü‡İ@™+Ĵ.ôòÈwüBb|èןšäxKÏ| İĠLX’‚ñĤ."2%“ĜıŭInŞ%È-@$ґ"'eÂqûG+Izn—.VŻ%çHvˆÙù£DĈµò•Líñŭñeĵ鏏ŭñĜß÷Ç7üqaÒÏŭñċĦ]W4ŜF…Óç>ïĝ‚$ڞ¸v·‘E SíÔXŬ„¤y0_÷ôfl’ÛšÙÒ÷ZŭĴFhœ&FŻÛœ(‘:Z™SàP2jû j{3-ĝ[ôs•ô/ñœÚeQçGE??Ĵq5$²J.ÎzĠŻĊZ§!ŭħĦ F´Ğ¤NêŜŞOs‚€X O9ѧum+ĜkxMĥ…˜Î‹~‰–.ëĤS\ŞûӇ™Ħr‰ħ$ˆŻ_ŽìoVҍ ĜJħ’ÛżíCż=\;ÜTܖ‡ëàĝ6žáJ2uµ˜b-f‚IU ÚLxOfÒ—™¸@\ȲPe‰úŻ#§ĜŒ°ċ ĈKĥj6ò)Û1*q·=Q@ĝŬüPWÂwK}äÇûU5>iC°*pÀq]ñòWÌ ’şŻ>Ï >ġqû ˙@.{Ÿ‚•ğh—żï·İÑŞ•4Ĉż=L˘ŭŝ@ŒÄ‘~µ{òНЅĊ!—@°xoŝV)zÓħ½U³ˆħ D½y$CÖ3ï CĞYXÌ"ĠBCMícNнĞÓ½ó˘7ΈjŠyÍ_'@í²Pá aÚ+~T;ĝcü°şmwĞğ­ĥĝêĥÙ´mj[I¨V·5Ĉġm%èXâĈm•ÑûBĵZ&„ĠaÜWŞIɳ¤d½E°uIÉ,)ž {r—$…,ş¤$5PXôɽĈÙ1já͎´[Ûġ={Ŭ_­ ÀŬş²ĥ×ìŞ½ Ĵ1ĝġ]ŭ”²>ŬUïëúz=L]&è]e£RuŞ×›áóğêìi żi|ážÎ†; ‘Ċàu2ÜċW€>Äp6íPWeċ ċöż½i[ŠÓi_Ż-LPħûdêWì°ÉïÔ½qRԌUҎäM ‚‰Ž6bŠ˞WDj'ĵwĞ…iüF{ ‚2šßŜ?ç ŭ‰yŞ?…¤Ğ|wċÉĤMïN÷/~]Ÿ(òú^ĦrĦê­Â/ßİbwIíÚâĵä9Z˂‹hZ4ÛhLİV.&¸#XżwGzGAqvZĦâşv(|ġ¨ßŸR˜HA†Ğh6ˆ[t ĊWbM~ \û-uê‰h°ĝö!ßÍOpsO;TK˘xqş15:Xaéb?0–™Ëŝö}{ĦĦu½’ĊD<_…Š(œì#â€v/Şuv£ĉz“aŠMûݕߗk^mĤèoYcBÙB™5ñʈ™§ĉ·#+´rlĞhÀî|%ÈOĞoY‹m ‚vˆlDU/„6>ç˙/l?Ğ ĉĉ¸¸ğLÊ´§³F^û= ´$:µ6d قżí}…"ñkoçç‡k¤JkH´I”}-Ş€ê62ê€X€:ÙIÏhĴ%E?ŒA°8Z+" §5ahB*ÁçÀİ׭EÉCkuGÈ,&"B—Öäìt\ô$¨Gİ7YÔ ÛŜ3Ï{Ĝé‡i~eœ“€fîĴħH•Ä8A=Uħ?ĜëGħ½ĴHŠĵœ4‡ŜŬM|ĉbz³§ĤWĞÀ pËQĜ˙ñ€l%­uşUKÙaU …oħ[Áš¸?ż™ÀFÖi‘U,ìÄs߄KNdŸu ĝ4%9—ĝÑâ¤Äċ µĈùŜv-ĤÎ>“²O‚n|àV4d}"C6 S/ĵ›xŝħε*njj²İġËcLŞĞƒfŒ6Ìúgžn%f„µÁQĵTĉħoGñւìQJ .Ófe1ž€Âñ…‰K›!c;0ĤÎ:× AÙ@zIBgNJıNïù•¤~Ùd÷û½ŒâkKË5 %›Ï“ŸÚ‹<ñd+ K[$ ì¨Ê£ġž‡·ħíöŻ\à ğn2Żƒİ­f•Q ğëŭc›É‹+Êç盜WQ~ûBĉċ…Ĵ*¤^1OcI ÚäB a~u"­€ĞàBišùŒ"ŭ „ä[ë8 Óĝ€zxòü_÷p]_?˙70Y6ÙWNméT@#ŜŽÏûíÂÛMA-o@-mò„°üdáï) |TRiƒ~û\͔EÏĤĜÖ5m—‚BjHHJt y´à ÚäÇӍR‚Ö<íÒË=ĝ²zżĞ*ÊèÇpb˙píĥ —\“ìipEù< Ïò}ŝÚ §ÊTÌ<C@‘YdĵùˆżT‰ÛZN=̲Œeş³pm§Û[%Dj‘·m.Y?wr›,ĜĊ—ĴFc(Mĵ'0Ċ<4Áf³QÓRaWXĵÈ7_O/\¤İîfÇz7ŭĉBYc.Í<Ż1—%L˜-…A"áËñU6™„ïZôG{bĉ1H3‹ZÎó)¤)iÀ •@°=Fŝ 0Ħ ƒïŠWÚ}7/³Ò³Ġ=16‚™CÌ>'‡‡ çu˙™‡Ë€ -Èí£uK2Ö&D×Ï9^ĥ9Û'AM›Üe•nZ%ž÷îTŒñ²oĉÂô-Ó^ĝ˘„Ì=ԞŭÇ)%­šË4çŻLIŒ9e7BVAHşäíÙġâËÇAnĜg£V03.'Ħ ½ŜfĞߏ…äĉ,ÛżûLx‡/ò :d?QŻ3šĊ‘ùÚg£1âqĥ§u·i4żìÉğ%Ú˘ŬQä #XyŞ)ò#*4F^@ͽGyu)ƒûħûíMOw­µ,äY˜jĤבŭXÊ,V×dáshy)zŽżTší¤ÈPħ.7yÇwŭñÇŝĝĦ?ŞnwĞ#<öÇ iuFkє-§ÑŞh÷sħ‚ġ^Ê ×ŽBċŸ ´¨e‡Éc7W4˘7yµÈ[ıê ä“F!áj—8&ŜÛädhÏKtÒpç…,̟¸#ŬĜ‹–³ µ¸ŝŝÌ֛W•kĵWÑŞ2^k‡72Ĵ'S°ôñx cìoµNE—³Öuc­CĠw2<ÚË*M”íd@|Ù ÌÌ|ßµùˆ|Ie`û߈J[FóyùfÔÀı Añh\˜Äóuo{QRûò?‘˘xšĝj4Š×ӛGXñĜ1òë.³œ„ôˈğEIÁ‘ÄŜNMHš ¤Ékó÷ĜŸT)"™˜íF\Ŝµ„ċ•<Ç&Ëï.E[´Ib8‰Ş’EÔħ]üÑŞ…–wk}èKqı—/~oNm43lĝKĦÌè¤ċ½Y>J<ĉ4˙ ÂI~‰ŭKÂI–`ğwC7°²u¤żÏg•ü8mQ^‰9Hzš½M‹ÄR ÓKŝ÷ߔ֔tîKĊ£`Š'‹mƒ,İ)3ż›·tġÇşìħ³şh[ämOLËlZgàßüEáŸüÑ玓)BÖHrܞà˜KybyŒÚw\ ò¨qŒ|êŞġeș%cĝYÜù…—Û ´œ„mğìYĤ0D&İüöôßôdÇ ÷ŭšÔÀt°€1ZfƒJ&,_˘JG˜E5\Żrïúm9TXê½ssÂHmÒéyĞŞQ#uÑRFFÛJÉ@Sg[ˆ›Ż™#[M^‚4OI—ŬÁˆ1³LXĈŻ<ÖhTXñĞħá­ĥ™Ğ"÷$UӖvMhÑâBG,™è,íIV•Sı`[ȒÊ8í¨´CÁĠ d&òŸ³L¨ÌŒŽßĉĤmß­ö÷}£Ú¤˜“›ӟĞàá³ĉ{Q[…Ċ)3ëĝ˙O$B>Ù- “Íœ-–:<ġGUPĝĜ_÷GĠíC\/ÀçÎŻžu|.pœ9_˙Z%ğ/,İ:‡ÏK>aGQ&<ŝèj,›ƒş@< ôA^T él‡.ê|+§>Lì-r–µ¨–šż ßÀy·ˆZŝ™Y“C­í÷39€Á jà#┟Ҥ766rÚFiö+ݘ ¸+l}ôêßjŬ‚a²%•TuÖhİż5pĉfÜ/Œ‡\Ò˙9pí…sC7uŝްj?OĠNaŒ¨•wR;úRĤ˙-mYİĊ3j Fĥï[ÑLP•ĝaÒżj¸ˆĥú_˜ÁĈ9À ž%uèbNeVñż›İM3~+Ó&ç>T4%tq´Ĝ2gOŝ 3ˆeµ˘éHÓÍıžßf<ĥ² bà3…ş´(×û^&Àñ…Aù|ò(,&Ëiê Ì˅'óÊ[.ĵŠ Mĝ—+EşġWl ,ŭŠBĵ'}o§=šÊTiÑ5£ĥ4Baôĥ ›ŽĝMÌÑ{è(!=d!—Ĥü‚àgà‚-O˘nv4*Y–‹xİéX$‹ñqCXsܕcΒcŻ|ÈòÉÓ·áK;żż%“ÏĞ£˜7Ŭ}ÔÁ|³üâž`JŒn^ ׀7µäeĦ ħ#q‚şÀL ¤ MÛßĉ%ğH+Ìc~”1sIz°{‰b*sÓvš=Ŝ…ÌÚ;™w‰ J‘¸p-·R$ŽStk9N‹Êç ×óX= Z6‹EÔ'r疳ä“=]œ§µY 8ó˘3S²ˆ‹i ×)€Ëy6>²‹È{íĵàİ)a­yşÊv–ŒİÒ{r?Œò_§Ïa:vnGŽ9O y¸Ë€rg€üc7u¨6ÔùÍŜeyÖö|5|ĴŝcÊaĜ…(sÌċğœ8Á§ φaa­şÂé£×…ŬĈ€iĜŬ×Ŭŝ4”šĉ˘ ž\›FáöÖG ܢÚò+ż€ŭ½>Ӟ?›˙ÜßöÇ*Up>ĴĊ‹çKg56×9§R"ڜ½éĥïɉôJ.¨Ğ’œ5ĢĥOŸŭúPàÌħıR2[2Ocĉ#²ùipĵ_¨µO³9ğ’ĴżËé„.î?ħ Ğ?÷ÓïS1‘ÓlÖ|yšZ@zuÀ֋ŻÍž~xĝçp˙_~xw 2ĵ½\7Û8d\g­Î]ÒXíÉ"ÜÄ'ġ4!|}8,óK  îKĴµúüeÀEÛÉ}\¨sí<Wñsİœîi/R¤bĴ[ÇŞuƒJóĞĦ]­:_ÀƒôŬ ߌ÷šh‘cùMoаF[&ÍáҒž{j=$‘ġqÛYœE}JŜ§c żI‚ġ1Ċı­Ċ]Lĥ°y6CÁşOŠÄì^#‰.iéÈyq1…O:\芉šêvœzşî/àÑÖ4w=”Ż“âsAŞ*:k½FThğï‹ftħL|ż€O×lqċZĴE½~/s-’[ħçǏŝBŭ'2Éò[žyqB§°úÚÑT“ÚıĴO‚g§â­‹ß'JàG+ctb%›ÄëĈàĴËĵ'+ÉŻ+™H>û}r<Öäç—!ÎMqfĝ÷aaupĥMkAKèÌÊt1jÖ#öĦ€m ‚ġiÒŻòħĝI'ĠßvĴ¸^­<œË~Á—Ô’CŞ\êşĜQv@£•ëÚLJñÜŻŸë¨V^şSFSY\Y–ğÎGŭ‚wıUğ4T‘HŒî1|òÉżĉVĈ6fˆOJ'nUèĝÀ{éIÏyşŠ6:;wıXGw/ú4(xIÊqbûwµ^:÷SaԃL•°§iħЉƒIĈ§É~ĉĦ‡…Â˙…‰gΈÏìS‡:².ó€äĜAáÇÔzċ˙Ëĵtf ó½ĵlġ#ù Pnúf!áӄFüżˆĝEÓ}ä´{Q5  GTdû#[…ucYĞf,v+gr+ƒÍÄŞ1 iÚġ ½lSħòÏŬ€z÷ĥÛìò`ŬĦLëä̗Œ> Äy‡sNa­yúPӇ18™ —§y|1HxĦjLżç7³sÚ΢’r:ĉĈ=³ó'GŞH—Ѓ˜7—żşpÚ8vI‰ĠQÖ(U~ı.näIE.0Ü sŻäÄ;”áŞħR›Úd FZYè"“ß‚Ñ&ıL!Ä[–™Hgq_íñ†K`ŞħĤ @ ĠÇ vG|&à9o䇿“á#ßl“i£CËk‡Z’“„ù#žÇ<Â;5ڛN~ŝáQuĈ£¨CÊħ3˙œÑŝĊ‰w)’$=ĉIšÒ֛³˙î0x7ŒTĵ#kûĝd:¸(vVÍ!Ż´ 3òM´&ú0pEMċu›-İÛ?µXÔİ>µäžşm˙\Í,+ġDê}¸i w¤mꗔŝ/…$Ĥendstream endobj 244 0 obj << /Filter /FlateDecode /Length 5324 >> stream xœ½\[odI‘~7ˆßPš—­Sgó~AÚEÀÂÎ"ħÛ –x˜áá´ĞşşÛċvÙ3Óûë‰Kž“‘çâqK!ÔI:Ofd\żˆŒâFuz£?ċߛğĞ˙ÚÙÍér6§ĞWšŝş)˙ÜÜm~{ +<ÎtYe½ı~wĊŸêMқèc—­ß\ß]muĜ]˙Ó,vĦKŜÁׇĞoĥ_ïTçµqYoßìöŞS9ı¸}ÄĦÏ9F³=ït§Tĥfû„³:gÏjíö·°CÖV%ż}Ĉ)çàöŽmNևż]˙Ép’Œ :"~µÛ;gğÄ$”sa_“tN@ÂŒUŠ&)¤go"œmôöĤžħ=ßîö֚.iO$ĝ&İìĝ3›œS Û#.ÑnCYÂö‚;ĜÎĤ´ŭ€‡keCÚŜ×ÊEBO;8İòVǜ²çĊ@Ĥ\½>uÙ¤ÍŜú.ÁN£€kÎċíîöŜX`xܧÙĵ'rÊR‡Oğr†Ò߁ŽH]°À”Í^ÛÎğlĝ OÂSJW‘$aíG)ñGßTÂtŝ­ÒĝEĉ‹äŠa_‡'ùYÙ¤YgßĠÙ§:ûİä|7£r##êVE2Úŝ[1‹ĉŝîµÄĝíéSxOK>ĠáıOuĝX‡}ŜĠáġâbxğxpW‡˙"˙²¸Yż8ğĈüàğŬKÌ׺³Ŝĉù?,ŜKœô~P‰´µƒ˘à‚¤M,ŸÑX‡·ux¨KŬá²ĝÙS~ħlq.àœ™X\œZÜÄ4&ç_òBoëPĜˆ0Œo·‹f&ŒŻĞW¸˜„Í>.žv·LÏûÏPĜowuüe•·Í~q·û:ü:übqg d~}ġgµFӁDSâBëüÏqó×Íŭ‹QY'ĝ¸‹×DP6ƒî;§Fĉoĥż˙ħż{¸=núpy:Ÿw JCĜéï6ż{<öOÇĉŭĉͧ§÷ç{"wږFE -oĵ…[XÚnû‡ÇÇçŭÍ'´-şŒé²·Ún~2ŝ˙ŭ;lßWĈj0E½q!eÓÍŬ•MJĊÌíĠ_VĠ™ !ŝóŞ S§›UŒX•  ıjœİĞĴĈç†qFĴòĈwĥY5ΈU“É;ÖUŸ'A‹XŝàS]‘ •L€Yr„ȈCׁ1uÖÖYWg}U8cĵïŒŬ¸ŠySf€°ÎĉàÂ*.3ÍŞrç‚\Ufä*Ż3ŭ[W 3Í*’ÊQ*3ÍŞx¸+V•™f`·X'V•ıj¸w]%9ñ*™U;eŒ mÁoĝ8 ÍĦf uç- mÚşÀĠY_‡Ħʏ\ĈÀ÷˘m:̀]$§ñĉXi•A0 zGiüXڙXä zëÙ+I+{i£Ñ¤&‹2ü ˆ¸,,ê…ÓŝüùY‰SĦe!\ WÊd†¸6AÄ,ˆÄ >"²Iİs#2,ì³£’›d! T$ÁÑiÀcAíDz$ Gβ‹~ûnÌ`úé&%‘XŜä™N‰6Ĥ†&ı÷@ĥÒšh ä(5“˘T"(+0èA òÉP˜áĉŭŭÁP[DÈĤK5‡!&$H0RÙ"XçäN0Q&j$R‚ÜžŽġ‘Ô´İ}Ş|I9pÊMKÊêoíĊ$É7ٞIĦƒd§àğ7´3rMŽ“Χ‚—¨  aQeëFÍ ŠiLż$#Ş >P^ #à‹7u¤YĵÁĝÌâ-şÀy§ò!¸’&ĤdŜ$ݜħUI4/§ğĵoĝË"HQŠì(Žá­ Fò´ż%e ¤úġ˙âÂdĜnû=mB_"oö`äD]) K´kl ıj 8­ì‹ŠĤŝí,†NR)ëFÏÙà 8ŽraSÄ6܍öaá| îY.~_­é,3ô'Ü$Òûš•Ë£?Vó< ̳.‘ĥkOL&j…•‰¸pKr727ZĈĦš1Oè‘? Y³"—2ș§aÁ[Ş[ĝäÇrİ’”ƒÙ!j3Ĝ– ŞqHR;ʁQ9fxá‹ĝ°½ I|g3;òċXÄߣ&Yˆ(ĈĊÁĴÀ-zĠ.7wcŻàMÒ8š+ŬTeO8żcʑÂá}*÷ɃK'şz’A)ĉ°ÙeŻSc(ÂĊJeş­RîR …ï×fl˘[hLû2i˙×ì¤HuÙ[Ş ^ñ {ĤÀB‡Ş),^Ú˘¨­$x5| µ£˘WŜ†Ĝ,fŽƒ÷Â<ç 0KğêeĦL(#Ohp‚|ì`l ÂAo`3ĴȒù£ ö7"ĉIç×HĦ:4ĦğY×JfÍÉr\7.´aéÄĴËà6߇†u%éġ5AÔ)Ĵ V62!`-nV‹£ċ_ĈIt†³ĜZ@Ż“ĴnŝŒu`ÂÚÛÖ ĈqĝƒŽċzWŭHĜ²ô)‰‚f¨ì_|ĠD!œIĜŜiĞ€=ùOp²ċzë5%ˆ ĤëXt‰üĵà(_ 0dT- ì>jİ;=ĦÄdàš¤ë Ò-öŜt•Wq۟Šŭò ·0ÉiıKpEG×éQœÓ’îĉ*Ì=R­]aĉ˘àîççzž ġÀ[KĞÜÁ2âï)\Ûà¨uh¸NìpxWVÈ;9@†Ĝ¸ÂšĠšJgñ,@BÑ4úQœˆ™)Î#Ÿ†¸rQñV@ċÏë5ŸĝôĦdSÁ@S?È7Q‰n4— .U{+ܒABÄŭ·u‹ç†ˆ6щ½NKö·!bp„Ê:ôŞÀôV‚Ĵ•tCxiÀ^yr‰Ĝ% 2tFîzƒ²ûüŒe)n ĊŠP‡\p÷óÙë ¤µ ˆ%żG[7b[ŸJŞĴàŭ\ :WIÉ5‰Èph9ú¨ˆìpTÈ/J!T?`t?ğÍє·´qĠħ/c·ËÄCôC05–4¤ÒëÒ.AZñ×Ö˘Ż‘’şpŒ°@wÂO×|žbá(à€3Ĥ~˘(ş¸Ö÷¸ nŬp£ 6ċùVĥCĦ5v7î{X+{ ‹Ö<,)×l#ˆÈž{ŠÉ`Z°çœYĞ!KòĤÍJbÀ܀'=†ŠÂˆ ïhávïjc÷ş <%àíF×esħ~J|^7ĥcħ·j6·=ĉ€Îc;•7üÀT“h„ÓœëÂŻío§i-›e Ŝ`^@·VñdV¸5lvXëĥ#ġÊ6E;<.j€ÂŬÎĜ™­äĵ£ü4§Ä"d6҃ú4ԏ,”ĴbI{§·ß-ÂòY­caí-§µ>Šb@óˆ9UÔ2n Bè`‚÷ô´l‚C>4¸… w¨A¨ÂKbq l.’J,+Cèg­ErƒµċL|ÎMÁ܂Q&ñâ™İüB,–ž˙CDk^fÔ1qÉOLFRvM áÈlÖƒYĈ¤@Üaċ˜ıw‹Ċ_‘t CÑ­H£\~àCèĴdéĊ÷ß9oe‘j€ù—*u40fƒo³˜çŬ”Ù. #ĥ˜xœöäòZB…ËfGpNòĞ~§d |½½{™/ùÄàèržàBʽaÓRVjCG^€á§Ż¨Y[w>‹ą?´ÙÉíú2íTXŻçŽ˜àÀ‹ÁWJ&mÇçY ~$//ucáO÷̎@Z+QS5úĥÖĜ8Â?÷•ÎWĠ^ĴÓëoĞe޲ħĞi˜f‡LBgìĝ˜"ş¸‚à…‚ŒúŸžSKmBÜ!PŽNq½ÎUÁ[FY" ßUgHóùD—€e†¤!&·–Œ—šĉNjĢŜ·[œÏàcéTôM¤´‰/Ʌ߿f×EĤ%Ĉ‹!Ŭ#ǰO-µԔwÖ3´”›½ÍMż‘óè#WĊíoŜ*˜˜·”xjä’QŜô|Ep³,)—­§œY À ò\§ïħ3ç›B˙Ğž×–n@7˘zAk¸ĵÁ“”#£Ĉz²ċŝfáQlöHk"•›6³$ Ö|h"'O‚ĵ#ŸauCô}99œè b™£—Á”x*\H‡µ2zF‡ÖhŒ$Pż r#W_ê’%‰ï$ġŜ‚Ç7EAXr+OŜx'm(„IÈÊĝÜ[›ġŭ~7‰í\ÙŻ¸èÂÛ!şYËnŞëbòP€›bžÇċŜòİCÔtĊ†o›šÎè|LôTŽLˆFü*Y"žrV^š˘ċâ…ZxÄb0!/z€…c^ĴgéÚ{X‚Ž,ċŜ•M@ŭz‚,ëp³°J_jLtÉíCâXlp&sïLOÚĠ}×Q[Ħeĥ·oâ42·ô³ÄžícĦWíËZĦ³Ċ<\ž —çb=èGf÷o°ZOOšCvß_†Y/+C=ƒ0„peÚäûÀ_…ñYb¨HJCµ1ĥŻÛBVòĊµHŬYÔé@½úÙY` Á?Kĉ`Úç*9£…Ŝ×Ċ‹UÒŝÀDaÚÚj°š|“ïœw‹yBDÎ6½·N1wʰx†Ï`ĞÔXó˘}üô½ËnqÂ;ÑGÁĊfŞgB¸ĝRŠ1jñàôċĴj9~ièphyÜÌ4`ö”}žÈaçˆ*R‰ò€= I`T}”P\ˆzÊjŜÁ„í‚pá%?Àԟœ>Ú }‹˘”ŭ$í램BŬ—ġ“ée'$ Ùî/ˍŭ$´ÑŠdeF´ġA€ÎĈï>û'•)·|z„ħúƒ|Î X]‰2Ŝ™SÔĞŻÖee×"#ûA€Ú ˙ßòƒb‰×@n“BŒOĠq-Äu¸z˜fZËC(ç93nÇĉMU`ĝċ³ĥ,zp$)Tĥ‘¤ĝ‰hĜ}Ĝ„/ÍĦA"˘.&•µ”Ñt`xÊàżĵxŬv&$t¨D0ä;¤îDPĈM^0,—ƒ1ÉÔ} +ċĉ™à°Oĉu`ÑTŭßĥŒ”Mó’9)ÛwÌEts+ÈäuĈ ÒIÚĦ“ÔYQĈĵAB äĈ$l'Äĸ|‡t_] Ĵ&ï^³ô|^ôrú~^^ݽOfLÈÚR Îiğċ‡%Já[çM$ëĤC†™•„zÚıQ#ğ¤Î3 Uè\zžŞ8C+ ¤Šg/‘iTÉĴÁŸe\…* ö—667Ġñ+Úr Ü!5Ç´ÇK~Pr|ĠN†ŜÎĊŠnfĉ%€\żsmј”á •Ez‹Ÿĥù`ıžü$pİ,‹ĥ,”„I³4ž#3Ïݵ÷éĠúŸĞ#m ;‹(RΗğRŠòLŠo²áëD”µÙqZĵ`Gfĵœzq9GìAdX`ùjß+ó‘žëÌh,R­à׀s:Îŝ€J-Noz£†¨vÓèÉyĜĠFžŻÎÔ´€ĠêH…ó˙'5>Î5Ħ Ż/ñ71ŠôöíÓġDĜ?M/„ßÑÏ:lŽZéĞ’-ۃŸn^'Ï _p7K­CŸÙ~[Ŭjûŝ6P'üê™OQ­yö‰çµ>Ž“ˆⅽ—/RGŜƒ_rWZZe1Ғö¤c]h|ë¸Ùyƒa Ÿöƒ’Ü‹È#ŭ|¤_?Ğ Ŝ  ħ͂4ÈÁh‚X•Eòħ"CDûÂħ¨üŭ‰uĠÊ?ü €Á_@§Uô7 tW–é‘ âĊ3:3´s#Ĉç>H&ÑI]Y¤QûI9½@tÁ6}Ĵ}Ĝ‹jĉĵCÔÇ Â_d•̔D7ÌĈœ×cç­,ÔTÒó‡JÛÁŭOšfmh´‰O{ ’!z—,pl³›ı Ú÷m]+Ÿŭ𧄉GG:R“ZÊߍ´P ÈBG]xí/\¤ŽÑâÄÍhÎ[ŠáXC†ĝ°Ò\]umÚâ<×éV8ŒÉ|çÂĜ?9ŠÉµODĠ­kÉH"›ĝïàĠG²ÛżîĈ4}½fÒv²ڊÌ[¨Ü‰Ñ!Öf—*żF°ô¤'3ŽĉY£NϋMäÔÛ^3Ú3xù+Œùİ+M‰éC°Ô´6)İŞRsĤŒr ĥŭ5òâN^›U–upù'[HhglMZŒŸóKñnM‹÷ÒLÀ<Á†ÓTv¸'÷-Pg^ÛF5P‚IŜÀŬ€újӇB…]Ŝ”3-ż+Ó l8‚ù›Gzh˜žJœÍk ëK:CéԚ ğ.*ëUSĵ3}×1Âżìé÷)RÏsO*żÒ"lOœ‰F–az È谛˘8K²B‚Në(™ÛÜ@šY­²Ë/$Üûóg'ÜÂÂny—´VĊz -ÈfÓ|/–k‡ÓzGóĵĝĤsaĈ`-PXۍ×)˙4<ıŒùş!Óħî˙/SŝáÀÖĴ„üëÙC˙ Ü"£·ÍCƒs™0ĞI+?›IÊÂüZejñç@Âb|rPÓ˙o簚&hJħ?GÍ Ôg é5!Ç?rĦ˙ğ‡˘Ğ½ݍŠŽÓßî˜FÌ΅^ŸÜšÖy…Ók™Lí> stream xœĠ[ëo·˙ŭAîµß£.PNÓ"mT[$Ep–dĊ‰t'é$9ê_ß’K÷¸:)ĥ[ŝàápżr/gĴç3†˙Ò˙Gç{ûŻ”œnöĜìtïr‡_géż£óÙóCèĦħ÷ÌóÙáÛ½8”ÏŸYm{/ġì|Żn~ĝ#t6˘êĴLﴂ‡Ç{ßvŻĉĴ×\(Ïğƒù‚ġÌ;eğ+$µ÷֊n=ç=c^Šî[ı÷ÜşĜÊı6Ŭs˜Ásɜîn°ƒóŜhÛ½EZz'µù×áߐ EÙ0Ĵz`âé|Ħ”ì]d!­{ó ǽfΠǐŸ…°°ĥàŬQY£[ŸÍRŠŜqX20P‰ÈRšñWH ï3Ŭ váv’̘nƒ3È^:×½Ċ9“ĈuĞ2CڈİäÉx+yBoë×ݳ£ ĤŜ 7[HŬ;˜(ŒÁĊ@hJùîĵ…\ÒÂ)f ÇĦ…„³1°ËV‡³&ùo )ĉÈ/—½V^ÌżÜ;üŭ·p†™…Ğ17‰ŬÌY÷¤?ò˘ß7[+nòĵ„Ŭóĉ°ÂyZµs{YÈo yöŽ&ğ<)äċ0—íž}\™g²/äĞĤ / yÓì°Ħ{ÏäwŬ<êĦĵÒZĦ{Ğ}ÔÚîwÉQTşŞ{#­óƒb˙PäuŬ$/ ı)äÓBî7ÉBžòĵëBöÍÖ£&7Íaïš3vŝ^È?òu“lïbٔβ9Œ,ħj2ċะi†@žrSÈŭB^òM[„T½´ğÎßX‘ş|7Ç> iyݘš-²§@Ŭh›Íĉżj6;ç%~‚xbAĞÊlò\5ô² šÁwêÁsžS1dò´)b/ ùM!ĥ‹tYW9·kċLö͉—Mñmš‚úĵٗȗ8ê×M·D†½kÀi{Ë[Afìnˆİ·ÏĜ!ħYzŜ ÖñÑ˘\I8&êNB÷ŞıSÊŭyS°tĞódĴ5€œÊ'|` cÂÛà•Ct°IhVŒ1İZCˆžKÏw>ĊKs}„ˆ*]żŬU‰`Ó?⢆1ĝĴâ Ò ˜ye5FbÉlïœĴš×Ğ9À8ĝCF\éÁ*Ĵé–(QÒx‡UÜB  “ô,ô0^ugħĠÁŠÇĦŻŽ˜˘Ċeìk4#ċĈD| ;VdÏc=p >˜ ‚Mól!ÙJ°\ğŜ9Hç.}ĴŒgT[‡ĝXZo‡e°ßM8#•˘[›d8`- …@ óçs'Aİ„’M[ <+i6‡3rĵ{?e0ni#EëËUÔ M5ŬrCŝ üĴwéé qÛ# ´tĜ`NcR"°< ™KyLLSPÒ ĦTo´µ¤ \ Êñ$ĉŠótCkVìM²C°°ĥÁlÉ2hߘ³hŻğ_·g gÚyóv7q M}KLp}Û t'ê~³•Vi)}(Ÿ>Ŭ0eşšcSäžċqoʤĞ܏×k›³żƒÀî—ᇳÍbàî êä*ëgËLpóÀü0w?JÇänĵ÷Z‹ŽĈÏÒ1Ĝ’.r( ´Ç+„Rĵ“¸kĈ’ĜĴŝeş/PÌÀşäÑ1É H) Y­´à0Ùà‚˘û**3Ş{}8Ç3ô<àSì­aQŬ½+BtqÁUp֊˘ÌqX…-Hi^Ĉ%‘ĞäY –)@:2Uë@ySfRlkrï e\áB7Ğ£ëȃ&êòŒƒä֔µĤw[pÏQ@38’ŜótӑNG\SħİŬÎs͂hèá˘bšÙ`JQ­ĴĈŭ\Ĉ-ÏIáàbž­ƒ8À’€d˘%jeW Ö$Ї sÁ]8Ĝ"uׄÑñÒ ”D™¨AŻw†'P_âŝ%Î6Ƀ˜şî/ġ%íÛ OçÂxQ—Z´—àÄêKKL ˆÛRِÎëJCS'SBUŭH‡(Cċ”˘aâĞÍJ„ax](xƒĤğb†ìƒs×t@@*İĥ°’ċ+e·™›†ĊëÈktß’­:@ˆŒl׺CzP÷N!EçPCctŜUf!p˜²:9tà$ĠŬ¸’ċàMn“£`Ĉ'iƒ¸mĴ3:Ĝ¸g—ÜJ%dĊ°¤—Ğ _]•€°–ĴÒP4 ³}A|ÑĥŻ‹ Oèİt:ğ/@ÜÀ"à%Ĥ*ëSxmZSíQk À¨È|0bÜô6œ4šĝà§FìğçdÏÑċ€ĞR[5ÎĵP6 Œ]‚÷ĝ_Iˆ]Ċİ œï2Át.^ıM1D*‡aï)=›plI7/ ˙gĊşvy6a8–(jÏj‡M2{6<[h}IûNhŒQĈWž-#^°ž‚ÎIǖġe32?°²Ŝ€ƒİñç2(‡W"¤V `4ßNÀ, É(Rû 9Ê£pR€Ħ*d]k=œ5„Ħ b :'“£LS#O3>Ôndv²ÁnU£Ċ]Ç h?*œ·Ё“Ż£[bZS?Ÿċa˘;Ž’?Èn½v€@Ġï.€ii´˘g7ëÀ”ğOœDӕĨmBçğ(‚ú$ÈÍÂÈ1àdşN3×ħ3%jUuVUŒ-rÊ´1ŠÊ )ê‚?§³m²Ċ›°—… 9ş%£ b'·¤áyŸ[˘!q1Ĵȵ)dbÛc)3m{Ĵ;ˆòÀY)­ÑzhRƒê…Í–s:ö'0^ LYC@-íìë²@<Úê\ÏÒè$*˜Ì33>?heÜTEĉĜd ·ábbŽÉDĜ?3ˆjgŠó΀œàŽÌw‹j-˜q£¸8ö~äx˘`;żĈ„“u‚3_°á ŸQž&Á€Sœ'‘ĊETdŝ³€Ż%A:R÷B]ĴŠàNә9Yùçĥ`›Š1@’˜„ĉ]גĞÈ}íÙŠò§ …÷mԆgKNĊ+NtĊ"]qLT_qÂqr+L gâîŞÊIêì˜Ċ°ô-3Ö8ĴD‹˙Ô8NË‹„UşUÛ[†hä·ĵG(OYo%:‘dmà¤;Ş1•Ċa#L°Èc‡IŻ“b|lµcSçħ:Ge;cHQ_ÂvovÚSvkK²ëğ­Ngt4bêÂz”Í`*VÊ)5U/xo^—\hÛ=l+$n-)#E/"ÇéŒ(ô {u)TIŝ×ĈfD˘KL&ĵĞâ‡èôÁ%€–.½(X0!ëGĉ~Jtl™à#GJŬväFY•½ħŒxHĈ‰.‹ġœÒcXž†jk0UPž€ċ S8•c¨ñrúıJ€EY–ÍuëŬJÄPȇÀÀüàĥƒ ŒjfIoİç Ž8ââO·mRUĦ.ñYc>-†Š(öà˜Ö;i /rêċDU[^L)T‚qQkM7JsCgšÑWó€¤hĦ<ŜÜ_P¤ò<S$Aˆ`ü“Ğ í\JH]¨ƒĜÄĊżÇÒpEPĈ-´›²Ô2…Ğ4s:yeh÷޵Üô0£¸wriwÏ )!<}žFvۏ)HkûĠ !½mHġW…\’t /Òn—kÏ İJQÈ'™í¤Ë‰yc,q 3ڏì‰Ïó}3k’SWÈ˘‡|Ž^‹(CHBF)·üĥÀ޸¨.˜n î%aŞîEµ/DFz! Ì}he´â'jĈ+ôE`ërD4ŻXYLŻŠ kĞĜ óDLxWŠ lÎ<¤ĥĠĴ²ii>ĵ§YĊ÷4ġĝ^`,g2$… X°i€Êuı?nżkhß°Œ4 >abîbıÛÔ7·ġMGô’għŻc8ĵ…ô÷Ä]è Ŭ¨DĠŒ\ĊÒ*&é<è …Û9$k‹¨;ıil6beÚ¨CŠËjGŬÔ¨Š·&wÇ Û ĴÓù{’şDU—Üd/ŽħPPhħRíuu à$ âjq 8!ŝŒ½slµÌ‡,Hí¤Ÿ,Ÿ ŜÂĥñÔq^ĴbP8v›U]ÜħÑZœÍAîU…-òĝ#kC­A&~”/µ“ùĜ„óa“¨ĞèÒPxUmì,΀žÄ\˜?ô(V‡–UÎşPk*t+’“RA,ièž[êŠ!ĉYïëRfFn/’*D‡•2¤­öÑm xLô=YxĜ9qA/Îk¤áĊïîm%Äzġ(ċ)^¤N°iù5>µöv’xñS4U!鋋êÁBĞj¨XğOHÊ,/7 ñÙ×ĝÉywTHò*zĦ8ñ@‡Ŝ܋B•ûa`*<çX@ÂĠŭוà#As–Ŝn•–gÑ ġ+6Ŝĵ ù´v•_{ĞŞü’—!sû8ÇŜ`D-/Ng•5˜¨’Ñ4Ċ2r ‰Ô„–oßBÄÚ~?.áúġî‚[Ŭ[gg‹ü6pĝ˜#áÀ?•§Ĥ;Ô^5ž´Ŝ’güĴ?òşI^5‡Ñ'Ĵċ³ƒ˙Ŭ6ÈS܃ĉëĉĉHëóB’ÉoÇЍ_—ĥ·ÜŜy0ş)݈˙XZµ-´Éo2M³>+¤*$y„ŭ¤,÷lšÉg…ä…dMr§¤È‹n"4ràí‡à¤ïñ.QĥßB·_2·éïĤ /$ù’á ‘Cה*yê|ZH’?)zŝQZż.ä—Mr§ĜÛŭ\î%ħ­Ż IžŠ–é äá€b µì™˜|퟇‘÷ġqSDÈy?-ä~“<˘> stream xœ‘oLeÀߣġzZ6aĤċî\6‘@ËT`ݰ‘ĦAB²™€;ĜÑv[{mıÁµPŽ>[¸ñ·³%š˙ÄşŒhâĤ‹F4Y\bR?8MŒLü³ùÍDŸ—‹_üö>y“ßû{ŜCÌy„a˜ u­­µûŽ•Áa<Ìö<£ÈT^zdéı{ŠHAí3E[šˆÚÀjĞùŬż÷܏§6a°=‰‰a½zêï z\nM*î*‘œĠĠ•R…Q-=ëU‚ž.Ù'5ʚ[ñÊZn8*µŞ]E땊kܚĉßY^‡ËdoO™tí.)•ÂÍ-µ(=J˜rHŞW}šô‚ìU¤uÓ²ġCêġ‡4%(5އ” bñİZo³ğ…&ÒLÚÈKÄIÈÂċv%fÒNŜ`61cÌŻy{ò2†n3ĉ!mX³Ì—hÇ´› oòĵ<·mKÇÓŝ“Bücö™NÁş"ÑnqÙlqGŜ.³—ÎO'bÀrk~îڕóÚ~i92v|nŭÊf|½‰‹YĉíĝÈ xC÷!Ì\’#óà5H  ĤcİáÑÓƒx|p0ÚïÉÀġœHŜÈ=ĤSùG³“1L†Û(çG&á,ŒpŭpRħÇ!'4=ĥ“bû¸8ğÚùÛÁßĠëÓ€ °}A %ÎĈD|qùñŝczT?µ9rĝ•Ž68 ÚTt,–>£ë×#ŭ£ġ‰!ñ\äÓáÀpó_}³-µ@á;œZ`~Áí˜Dф§1Íc)‹ÎÛ7p+>Vò-ib­ÇĠŸĴġ°ŸóĝàdÓŜ}ÑçéC"µáğžċÔ+ooŻWû„8^\ŭĈîğħ˙#óżĈd1´bĵS9c#Œß×§ï\Ê-ĈáꅁÜM²FžA“Ğèċݞq˜…Í_°İ$ĵ%.?‰òÂB réö†ĉ6Z ÚB³FGĠY–vNXnç£ŭ^!ß\™²n@û¸ġ3V!˙ÜF´Íendstream endobj 247 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1193 >> stream xœ=Q}LSw}÷dµ µc~ŜS#ÂD@Çf4›(&Lü3œUİmˆmĦJAĊbá>PƒJœ- ˆ4i­Ċ E3•%›sÉÔ8Gâ_sšé²l ‹ıŻù™lU³ŭsï=ÉɽçÜ#Ħbc(‰DBçċ–.Ëz3f‰s%âĵ1Y ŽÈ‘ÍqÉԌÜ5É 6ÍÚ§ıäħWçĊ^OÄĤ4Î@íLJ*‘˜kĉ™Ğ얊rƒ•OĠĤñËV\‘Î/ÏÊZÉŻ5ê-Z‰/ÒX z£Ĉûùb³ĥBoµóİŸĴÖŞU™™6›-CcĴÉ0[ÊW§óĥ ĞßŞŻÑ[êô:Àl²ò5F=˙NgĈğ–g6VĠZġÈĴÓ[LE1k-5VÍmE- Šİj•KċQë(žš5JĊRÔS‰ ı³+ĉ'éÇÒë˘S‰@SÂbĦ[2”ŠĤHĥêĊf8f8ÖrÔN„×~àhtĥäS§–„ñŽa¸ pĊyS0L·eƒKè<-ÜMœ‡Ù·$%.=JìüB„_Á÷–ĝ!M^Š•*”‘á8R/SˆĈè].,ı“ĝ İW¨HRŽân|Â8šĴj‰SÓwğAǑğjÚ'ŒvŒAî˙ílÌ£•“. â/ĥ½ŬŜ&f×64äġomú‚UŽĉƒvğu£·;üâ\obàšĉ!6GK’rË1ĴÚÛ]xÂÌŬpŝqÀTr‚…V0p˘Ÿ{BŸ‡SöcmPŻcĞ]†.-0F’$Iërà‚†€cò £|ĉwsE•;‚ĝOsܒ)”a|X:%ÎW‘AšZûçÑoħ·ÔôúÊó¸×ÏâP44’‚Ċjş}ñ—İİNĤœVˆż1Œ›.R˘§­ĈÌFY’²NŒŸT퇝³2w ô7A·Qô3XI?[÷IÛJÇ>ÚíĞöz]?çì`/uy…`û49\­ Żs’î#dќ%8Ó~ŸUÖ=Hß5ĉ.SÓK2›,Zßu¤pùٛĴ"’U“ŭ¸ċMĈ2<³’”¸O\¤Â1šä˙òë?Âô‰8ċ–“7ĥ=›‹iSϑÙK_’Eœ²1ĥ›jlLı£Âô o|è0¨2=_ %Ġ:δgçĦJÈŬí½ÑGžtĊAIga.&Hñµ¸DeohЃ#Ìö~!Lײ~-Ħ CfżLÇ üä22ŬgÂa{{[S+[½aG})0„\<6ĝ>Ş|çœN§ƒ€Y<Ĝ‹3‡ŭ‰÷0Ħ³RÂßx#èEż Ĥ^|ès÷ŒÂ÷ ŞHì%ÜĤ Ÿï¸ÒpÁ;Ü7.sµ ìĊó#=cÀü&èÔğ[l6¨ĵ =] ­ŭ5À*_Ŭ&ސÁWVf0”•ù ĦÏb‡Îˆ›Oá.Ïé32²³›Ç£ì=6>v…[>-Ĝ-—£ì’|ş WPÔżĵ"7%endstream endobj 248 0 obj << /Filter /FlateDecode /Length 6436 >> stream xœµ\Ks\7vŜ3ù ½ìΈ×x?ĵIefœİqMgĴŞYĜY´Ĝċ˜dÓ$eYùùÙ9܋4.IYIy!¸‰‹×yç?oÔ¤7 ˙+˙^ܜ}ù7g7Wgjsuöó™ĤżnÊ?7›?ĵ†ÁÁ/SVYo^ż=OġF'7Y—7ÑÇ)[ży}söŭöO;5İĴ‚zû#´V6¤íŭî\MQ)—ĥ?íέ5SÌyû5tpÚ)£·ìàsŽÑ@[M6۔ĥ—ĝĞÍÉú°½ĈєOÙlßwÁĝĵ}/ğ„ŸƒĥF~„ĤV*Ş$›+½šW·˙Z×ù.î¤BÛĜïL˜r‚o>òçIıíwuabÚO;'R^[ÁÇ]²v™×b§´ŭ†2Ëû*[ 8îÎaT˜!È·ĵŸġößħoR&Ŝo KÔ:„ĵ}¨kĝÏ×ßy½’äµ6NÁ#‘_Îĥv÷úżÎ~}öÄĉћ`žTÚĜҔ|Ĵ2zsıùûĉ„ßŝt,ŸŒĝݝpá§l§`Ì&¨ëÌO˙B‡¤ œ³`§+"{PFÍÄIÉ}ñœŜêŻvçÎÁ9j+ıìWÍïĥûÂäœRĜŜÇ8*  ž0Öópfr0‰d³‡zÚûĞyJès|;Ÿ}Ú~+úMÒ9™íıBh’235ĴëB°Ċñş“öÛ? G‡Î4+ĝħtÁô › o§ÊHís­ 2Ì1ÁQ"‘ż'‰s:Ú|-—¸çää·û[ħ€ŭu%ËÇzĤ4ŻSÊgGÔŠúd›Ÿ_͛ Ádg€W‹\dŭö+^ħR!3ĉÔ°K€Ž vÎAŝ¨bÓ˙A6Ĉ MO&ĤÂÉß3MÊİħ­récúÀ7ցžŞ³Ĉƒ 6K0*œœağž¤Öi8e䏑ü8ĜH´ižÄ#Ĥ†›ÄÑ-ŻÊĴ˜ÇáHLĝAQEDy–Lúà̄^xÀïĜè ŝ5§Ĝp‡B.éÀ½ƒHwœ$ğü쳕ÒÊh^tCûìMÀ ‹Lŭ‚ިÌÛs(ĞRġïĊ’÷Ĝó½!QñÉKU÷ˆTdÚ~ÀAA˙ÚFżÊömÙòô]Ŭ]Ġ×BîYÑÀ lH.íİì´µ…ğá(ÎçIfóv_¨€zá$0ÊĊ_ ċ|͍„Pä¸pîĦ.S(ÁV Ô½²p6˜îà€s=syÊ9ĝH*ÁF4ä~síä]*:áBˆd1^ԕ•\ïĞŜ$µÁ%…™c´!í€û²x_L.¨çn™*Ĵ}Ùè$q’eŻxt+èĴsh›gŞŠ_W\iH0€ğ4kPc¤ŽÎg-snÀ„ûk£ŻĊdż# ~T$†Ë)€÷CµÀlš%½üJ{.Ş÷ħĥ‡šHOÚĈ,4PĜ,4^ZŻ5‘ÚüùZŻëŸbzÄWĊHeDûïħŽ8Ħ§0jymz]†]ëz]kC‰”…{îwr!V˙ȟâJß>"ÉN°œ|ğ½wyz×eÛB²|°éwĤ•ćznkZ•àŞÖá ŭ–ÌG†Í\ÑÏ)L.².nDQçÑŞÔኟµQFcĉ#ù™è+—tS²ŠI0<¸Ž¤bĵg!ò !~~9X‹Jĝ˙—Ä_…,Hgàr/j?<˜ħLF•l6D™…=ĜWHÚÄĝ >|…ğ§óí ¸SÛ/Ĉñޤ9}˜}ˆÖ’ŬòÏ05YÖ£$Sèq¨ŝ5EcɄ6x9”!V|ŒoeTCĉI=¨ĠĈŭ]ÖvĵĉÙû­„aHáNĵßá‡QµŝïJ¤ÛÔúûċÀ:3ƒ?zÖ7óߊáˆe­Žl[5÷ĊÁġNK ~.ĉëtĴ)) J^ê}dħ&_³ĝ[Œ3+ Z‘:Ş`Ĉb³á^b­Î'YaÓß5Ǩp"p˜éÙ:ó<ši­%²j½İc}Zf?#‰‚£YĈäĵçĊEXŝާ·œ˘°VäĊ‡ĦNën,]ŠĞ}2ÄzF/İôbÍôŬĜÖħ ¤óMġ ›İáşÓRÛ`ˆüIÁŞnŭÂëÎqĴ ^œŝÔX•½ÂTxŒí-³£70ÔÂħ†itŝ>‡âĦdœĞ¨ÔEısԗrZÁ„÷ġÇ6v*ĴŬĞú™Ĵ´Ü†=Ĉvž:36˜|i·kŠLˆÄ"ëc}`_N7Ħò)¤şEUHEÜc*3ıqL‚‚Bô›ûuÈpâà]żM>eOáV/ÓSäÊx,…Érĵï%Á݇Í0Gh;‰óI›Ċܖ‚'PfÙS›]áÇ*żî*˜°Š6Éxޞšˆ“2Ltƒü²iXRŞUáĵ6ì"ŬĞÎe…Ga Š˙ĉÌX›Ñ×ÍÛî뜕ħ?pM# EJ8ïx:ô;žÖ9^9•§2ñÚOvGĝRµÖĦXSpÜâò2…ÑhĠÉȨ³ıĠ ¨˘îÌm9 íŠX{§Ĵ+Òf g/µë ĠNtÉ,› % Pï<²ä˙ŭ­ÇĠ:™Ò #”nĵüÓ@OŝLq ?'V’é deBdëh³”Á–èĴGĥ9„@µŸPşĜ£—’ŭÉrÉwÀĠ’÷1Ĥ›CàñbòÖÍ(““‡V,Qxâ;'‚„Z[ǏŒ‚ğŻÍĦ;ôsĠ*bş•ĝòħ Ĥ[ĉ]‰” ."ém£kĠ;˜44Ÿ½ÌÁ ÙÔL8F„mžj&oÚ´‹ y à ¸6yR‘oŸˆwÉ̝­\ŬG^›€_ ĞÖy^´Ö€ĉ˙Ĵˆĉ°EwϑjùYK°oejۗxi3iZ[Ö胤LË1qd•ÍÀÎbxĝÓÌ7FÀ6G>u…Fm6‚²ĴàRÌÙG: ³K³òDctB¨¨a/Ò _Ĝ]È*úıx-„êÉÌR­yïLoŒïD`ì†&ŽĦ1´ÓkÁßóÙf.—€1„Fyžċxù°™uàŭµ&‡°`VqĤ³@\5?ĉĴCK‰Àħ+!{ '”~Š55ZÀ•ŒÍÏUîVRé Wäëy&kt”d çFïrĊĝÈħ9 ˆmr*œ…"ÒùıL£Ì šŠÔMŸֆ3Cİ[P1۔²/ Xöf˘Ŭl^j4bZúefAJ~)Ÿš'„ğĈĜ†8ÁtûŒ’rY$ԎMċʋĠ ĵgzŒċ½8$,ï+Äċ8ü~jĠó™ĵ(ğ5*€|$ıî˘²X„dŒ# œU›Úï š m9öD4rσ †°˙ÏĠ)² q‘!r½‡†êNó—İö'.€s‚ĴĞ°à½ġ-F KQês˘Âġ'%!]èypĴÎeŝz›fI“ħ Rĉî˙ėÉ.p›ö¸â˘$–½ GÖä)ÁşMpfŸ'0ŒÛFWša­–a×ŝ„SXÀŬù=sĈò)(ÔL)u`i£€%r§ĵkÁk ÖtÏpW-ĈB8àÏL ÌM‚AĵĜÛf ô%£G0 Ú"\*IIJà}ŽóyBŠĦëq;.jÚÓ0I–k‹ġ ²LÍì˘&P†Y#ëŭġìġ?~żŭ;İ7…0³$ c* GkĴ"SÔàFE1@ç”'?zñryÏbŭ…™ûîÚ§׿°Ĵ¸˘3 üמĜïjfÄĵĈrÌÂ(PğXĜM Z5E߁Fâ }}= §NlYjc–_,ÔÑŜŞCVۇ2!˜`΀FB_q7ıI+Ġĝ´ èyƒħÉ“cÈ0Úq>ĵ”ğRRñÎNŞ&]ä„Ò#gÀŻ€ ĠL°H¤ ӊ7S{EŽÑ³I‚âUÙ ì›BZDXR ­ĦËNZŬúÉŜŠ(Br*R²oÔ^ù9ÊĴOŜTŸĉÀŬƒšŜȁ–’ĥJT›½HOa: QĦ&$ġpŠhŜĴ|_ …c=i.jä =(Ö sò@B‰ż –È­óİÈôÒzP^V\ŝ}Y2ĉçş L(Ħ\ıjXŻ•QHÉ%Òç'ıqŠd${qÛ>òħİV8ò:ĠzĠe—ò!ÁqÄ9$!jÏ&ž×ĥZÊĠfüŭ‰2z ÉËp·s€ 5eZ˘ï˙Í^¤²ËĜ8„>wÉ÷œ/<…½ >y°Ŝ:ĝċ“Ġ||N½ƒ‹F4w%ëġEûvLŒeéIä,49YQP_Ì :툂XĦ}W›÷µyĴÍGù늷 ‡<ŭĊŠô,ÙfİlP·3qäĉÎÉĈ…§°oâÓù ¤Ŭ)~^ h O?éŽâˆÙ,ċo_ĞŒnë°2$?‘(DšX™$­ġoÙcJ·Kî`sï,V­.Ф²çŞkDò÷  5YYˆ<£ó6w)ğeŒ “ßšäkÉħċLáŜñAğÓġ5a\]ßĴâêúÜĵìFëóġ|ƒ’`$ʊw'?÷^Î`pĈîĞuC KŞöêŠĝ ÌöŸyQ 7$WŻ\i8Ôë>ž5ûáÊp91dގUíûcu•VVħL×a˘™Û•÷ğRŞĈS·žż§ W V‘´s2ݸüX/GĞ9Ŭ9‹mÍ=€-yûÁ.FpÚÏHfRŻ —”ñŞÔ0­Ġ–žh?ĠĜû¤žOë ù6£upïĞ=şĦK*½ANħ[QğZ-×Hozˆ´ĞÏÑ˙b;^áÉŠôö|ı³{áCIVXÌòË_v3FZBÀm. ϊa£g¤wY\c›“ÀY='öpXĴ{‘ĝwıNßW·Ĥğ)PÖğ*TC×TĤ,aùXŸġbkœQİÙݑ׵•éϕĴQ_/ŞÁ>Ğ;iÈiM“5˘/*ŽÄ>÷8ŝŠa`Éĉzg­İm´ˆ’?séfüdmié"ç ÂRí-uÙâ˙ˆ)Pù›ŒŝÖ"z× 9J•yPCÀ‹ôZlwaêKž­“d¸÷;É{² šĝS¨˘´Db,GÑ[W)„P†÷$sOÈ)^FN—#½cS~ua .ûĜ· úUkĴÄÄĴ³SNhÖĦäƒuîR0)-5ÇÊĠi(ĉïÏk6\e£­á2#Òc•ú]°ä€b˘6ÒĠĴĈQ°ĵdïŻ­şY8V4·İ9Ʉ"ĵ‰‰ĊHŠ5ûÎôş,bŒ9ö8­W³ƒ£Ñ=­Ğ0êÜZ~Aŭ‡7P<žÑŠA;­ż™ÁMú——ÛĴŜϳXTċ@êYnfgıé0môÁ•˜šäàŠ âïjó6µù(] @ÚâZtµ kËi4—KĠâ%ùżÂ;£á¤˘³½Ì¤ñb#h˘Zwñ A.ÍÀqÌZÍIú/1y–´Ġ$v€p …F•‹ì,€Ŝ/CŞĠš§ ­>÷òY ‚GÇhTóLµ~²yT€.J  ¸½ZK+$ñy°z}ÊâtêĞ5ϗ1êĊ£!Fĝˆ™™*Ñ"êË ġWn P’>JoWĵȏĵJĴ”¤ZO¤%X‘?×QPíxĊ¸·ġÚT.MċŜ*ŒŜĵ'‰Ì÷˜àdb­#ž<ò>QGÜi–R÷›ħÉéÑ áıî÷éŽà܌ÑDšĉ]m~U›_›µyĴÍCm^ÖĉT›Wώ×Ï Ĉkèñ§›Úü²6÷µ)ĴkóaĝÙ§Ħ]Ksĵ²ëÚ|S›ïkóí°y9\x½‡ç–ó‚m"û‘‹i3òì†@ĝnh­nj“ïüĈŠvgġbj9msÈTVĝz— Wfµñ‚ “°Ÿ_Ż³fĠÈÙgĠëğa] íîXUİĴ1_ 7êv§ YëK#ÎáC½ 1. 0x1HĈÇ6Zı†ù¤ĵşUFÎLʚÖËéġÌŭP <Ê_Wĵ}j½2ÓmĈDsZ˜Jê’>_Ç )riijĠŸ£cÊ“‘Yi†ħÔ u 4™Pu×C ŭöt‹˜ívHŠ”Ĥhl]ŭshîoœ7q~hdÂ:d’ Dlè;°Ĵhv/”Îî3” Ŝnˆ‡ö1ĈŞd°u.á•tµtn‹‘1.Ü Ğ‘֟,%E U|ŒßĈB.´í;0·Ì߈Ŝ6nƒBžGPĠğg(;ÇÒzvñ¸V"ôM„5=„,SŒ$>ĊÍz.ÍzŽ*gç{“‰Kœħ(&¨ÙlĈŻïàuŽY™9ĵ‡·Ì¸œ(—‡j,]³eŠĵâÚeÈÛŬ’.¸ŻÄÔĉzĦ%΍O€ü†wÔÎJ\\…ZÎҋ7C:ù=İ|ê’ŭsŭÑÚ½ŝÌiâ½ĴÄX½ĝ1X[ĝ›Šĝr@ıƒ¤Ğ=XOĉ”8›Cˆ¸ż È£âS@ üÊġ@Ş4Ñ%Ċä |ÀäÈÉ]ü`M—cÀî>79ïq.nċğ}EWéWÌĊYùŬïDĴÈĵг͒1Eju,´}mˉ¤—ÚĥîFo­b$ÄW2h„íïw3^ùûöÈOäÚ)ƒùGxĠkÍf:ˆ˘Ñ‹)ŭĤIÒ,•%żÔ|ÍĠK'“‘x1µu™âô.ñÔ“ˆÙëKê˙X×Áé¤zş á‚›QÈĠ„ “ܨCëĦs˜ÓlÎÂ^ùGĴĥm ŞŞı(8Gö¨"Öß-ÀQĈ5ŜÏÔNH°˜Ö‡u% ŬĜ&Ċ)˜ŝzáà™(ÑQÛXĥDOäĈÚ°n²ħĊ’°€>L%W!ë:²°ŭôVk(–ÓçȄŜRêêÚCXԌ kħGn½ÎZ_ÙşÔ`ĊT7†Ğ³/<ĴEÛ"b~…%eCÑ ~r |jùF÷ŜRkNEîŻı€O™„K-£™„´ŬU2|€‚ òkí…mÊì ŬĊ!V.i^ĈO\Í,˜WR£à|ŜUëŠq°@PÑ]mŜ×ĉ'kˆħĝ½XµŽÉ#|Ùâô!#ÛĜħtMĤĞ`é÷Uħ·áL~’KzLókZİ›Ĵï"_TŬxQ“iB­Éeµ~YZ”w/‰Ô°bO)"Ċ‹#ɟĵH“5ı¸Ŭ‹4eMĞׁ W$ğ7ièˆíÒûDz´IîŻdwċ{ 2ɇ}%p!òğM!t• FƒQ`¤MւħüÉÍ*ܕOmBZQêàâ Yîo(—ÍċQ‹ïm>@Ĵùç³1Ĥ6 ä*lnΌĝVŬòËġÙwĞѨ†×Cç0üm7%4:çj n‹× ŽŻ˜hn+:nıˆôë§Xô&PW[.(†¨‘^(¸ ƒÏşÄŭüŽù†CÁg÷+œR”=ȽWZ°XÌ˙sàÁ•1íïûñ—ĊĉB`5oˋmLYċ*Ñ9ÍP‰.ñNi²–O<ŬEÍks_›×µ9Ġĉ·µy9ìĦ6Ċl3TÒR%şIÁŸçċ:<˜sKoTûYóWQ|ġdLj_)ÈpBa4Ežĵñu”8rUžsàÛm‡Bˆ{‹tYŠĜŜË~Ù||k†ùJ—ĥuûöŝ¸,‰ˆż— Ŝ€RHjMéĴ0]˜,,|@Ó3€OǵQĝٕŜè8§ÂeÔám™ğTC0ïF^ğ™§ı{);ÊÍ3‹ċ§²Š=)6’×”ƒ(sŠı¸,˙ĉ…NYÒ)B˜êĞ£Ï>犰fß*fŻXĜÛH+)‹:î–ηu­##QREUњâ"S´ìĉŒ´O›œ”ŜDè}}ĉİFò‹ġċ •ċWü}6ä.Ž„C0X•‹-QQr•ĝô|pĦ~XÀĉ:WĈZ’ äHà'ĵ1éKŞ#WµyÉ•f§Ñ„z!Ó–Çĝùi×Q§CYıNrĤG^ìÓlHóÙEˆË€·:_ÎéIBĦ,Ž$é삃Ev7Ô^Be=Ê_Gœg<>Ĝc™—u]U™ĜğT'·eÇ Ż&£†x)ğٛìN´6ÀST€êLóÇrŝ!9İCxb'ˆ~˘á˜è6€ÇÑÊ‹¨C¤€i^ĝ4ÙPÚñ%G{—ĝŬqíj!hù™Ú$âÉêr‘_eÌĴĝùÉJE÷kŭ‡¤ÒıĦê-'o‚.ì2ĠƒZœĝüĞhŝ/X6!>endstream endobj 249 0 obj << /Filter /FlateDecode /Length 360 >> stream xœ]“Anƒ0E÷œ‚€{œHÑlÒM­Şĥc*DÈ˘·/ÌwĤR‘x’?ĥñ÷ÛEğŸĞÚŝoşa?°D–•äXI ‘c%9Dž•!ïEĴ´5˘ÀÊ`Y ˘+C>Dʐ˙Ĝ²’Qd%ġˆ:VRŜ>ħÒD=+é(‘İYI‘˜-ĥ7b ¨Ñˆ)P£S ‰)ċHL…FL51úĵ½˜ä1zÔhÄè`ˆ)0äYb ¤‰)çĊè`ÂÖĴô8„…)a@VLÔ!S`h‰)áÊY1R+üy“÷ğwγQÊĝX–4Ò^Ò>{× cÒœ§y_Unoñ X­äendstream endobj 250 0 obj << /Filter /FlateDecode /Length 13 >> stream xœĞ˙˙˙˙ syendstream endobj 251 0 obj << /Filter /FlateDecode /Length 7122 >> stream xœĠzy|Uĥ˙½÷Ô­µ·êt'dï,M’I@i#;ÊY4@ˆ€ ›0Q„ ‹m ƒ¨cdpßğ AžÏˆŒ·ÜĵSŬ‰àĵùmŭ>żTuĠ­ċž{î÷|Ï÷TšPBˆFÊ×ä'Ÿ‘iñyĜ²‰*Šg>üĜĴîON'„á1Ùó£ ŠIè£Ŝ $öüÔ)‹nž;µ– 6ö˜Š ĥ <ŒÇİS{b~ĝzÜĴtĈä‰áÔS¸ŝĜÄù35ò,ĵŝQ<ö͜=efċï¸ Ë áSi. ’3¸ĵIv“MtYŭÏ–jv,&sħċ-z†V°Ĝĥƒ\'á•ċä ì–Jr°•‹œ‘t9„ÏÈ£š§È‘†K‡¤û¤ tU:GzJs¤sRĦ4‡ĉÀV>†ïÀ5Ŝfnrš$’ ŭŒÌ!Gàkȁ:İżä ŸÁ9ĜM`/>˙ YIĥ‘´ĊCgRVÂüÙˆË <ŽnĤĦuGèsäYL6Ó 83äGòŒb8ĉVŒöŸÄgû7’9á¨NËÀĥC֜IĦm{£u\LàĜ­Äz:›'ÒŬäkİP™„Ï~ÛöyˆŬ‡#*&u¸Î“]8Ĥ>t1T ÖÙxrN*eâŭĝeŽšKĤ^ ÙG’PEVâ“B•{òñÎMÒ8ĉ•tû‘œƒŝ$K××ÄCH!Ż)2—€QÒĊçŞaŝ!E5c}§Ĉ%uíò‡>—âĞ!5ö`kkÁX)–Ğáq5àWk$Ê˙³“_tí2Ĵ`ĴŻĤe@˙ĥ§(ìm#Çâu„ÍĜ> èœĠi ÷ߐÂßäİç]ϧô~Ŝ5wW ÷c"žû—?}Ü4Â>Ûjùͧc¨#Œ"d*ħF\dQ ‘ĵ,ż + ´Ŝä_üs6üT?:à7ü§wÀßĞàş{ŝ.ŝ€kUm46Á7Mî ˙žW|• WFò+U€6Œ„Ë_fòËMe&|!àsŸe˙À§UpIÀ'nĝ·Epñ(üMÀÇxùNjàÂùAüÂ"8?>ú0–$àXĝ@ÀûŜ€sUpöL?+àLĵ“ §œXlòqv$Ô xKÀ_ĵ)à Ż 8.à˜€:G1Ħv‰Ÿ× v”ĵvxí(ĵV&ŝ‹Ÿžh…é/~8$àĠ*8(à€€ûì+‚?;`ï?ß[{vğù?ìv.4zW슀ĥğa›€?mu?eVüħŞñ’ê*Ĝ"`óË6YÀË6ĜôR4ßT/mtñ—˘a£ 6è°^Àş*;_' Ê•xSeĴ]àk;ÁĴn‚Wċ/ Xµr_uV•I+_ó•`e@zÁ+,_֍/°Ĵ<|ŝ.¨Xj ,5 ʋ` zj‰›/ž{ÖäÏ xքg” (h}zÑ"ŝ´€E‹`a”Œòò?<%`€ù˜gƒ'u˜+à‰&˜Ó³›`VÌ0CÀM‚GL7óùô‘0MÀÔE0 ˜" HÀd“Lì …M  &x@ÀxĈê|\ŒĠáŝÈh~6Œ0{£ĵ0’şĝÈpŸF à#{ïuñáîuÁ=†á™a†qñĦ0$Ŝ·¸`° XŞ ż€ğYW~wä…ğ†A@@?wŜáĉwzàŽN~‡úöħóV'ôħCoyzġô^M³‡‹÷ô@\ƒ÷pAŬ ÇÙż3xĥ€ß•i,;d­ĞĈğı Ğ]²!£³ŸgAçt7ïì‡t7tJóóNwAš:ú ŜÑ ~R¤HvBŽ3É "Hl‚BBÄÛ!=' ĥ bò!˘t(‚(ôT”€Hĵ)2ĵ<"¸ñ·Çjĉƒk8‹À!Àn‹äv6ĵÚ †Ŭš/S(‹@“"À Ĝ ™ÏĊYW . h-^A3ŝĝ˙×ü/?ñÈĵĊ˘J*ĉÛPġ($&`“nù&Uy)“HfŭùĈß×ùĈóYf’éO2“Š%Ò<b›Żˆ*Ċñó÷³ċtäòòÖËÒVÌÀiäé@_ğ9 –˜ jLÑYbbBn$$J^JĵôĴíPiJ•d­˙Esy§ŬHŒUHrl´£ĞíIîäşTßĜÜĜ`şóƒ]7Ühht]ûñšë„•—…ÉHq9ĊŬĥŻqɝé”N8œ˜ž™ŝût˜@½ŬhJ²ìġD&ÒêġHIÉÓrhNvÜî3i7šÛ=5';R<çìCÛ_·İ/˙U|*N˙Ĵ¤qöŸëÊ7–|ùúaÚżñmo÷ìQöää)‰Ñ_ü<+óŭ—>ŭĝÂÄ]ßĜs˘Ħ#Ê2 Ç]ŠZÁCbÉÌ@*ñRm‰ş”{wQ^k£G;Ôşƒĥċqħ^ĤzU2Œıâ\͍7ëq€ĦÑ56¸ár6dÒûĊÏŒŻŽ?ŝz<ïGúÑ~ĴŸ·_,ï˘dŞ™Z}™Ag°ŜħڄYǚXO݃Ĥĝˆé"9ÙD _‘J›Úν6ŭä¤Éï?"nˆ“4½ùKŞÙökìÁñÇOvïŻsڋê4‚Ŝ->­_whßf+wÁ,\„cŠ =Ñ pPıÜamu:e*n×Tc ‡‘}Á‘Ù·áF}£éĈÙ9Tè}ÏË.3ĊìŜњÜÉñŜI-.ĴÜ[[›˙êÜ7O°m-`›·l>­\*Ü7èğ6_Ž—=¨âHŻ@tL-qxjışÜ¤ë J"*dşñ!fgc׍V×úkY‡ ÊŞÀê;ÇLÉE$³?"İ'2<÷hl {XxĤ•´žYx ċä+ĞWïÜızġ+p˜=ĝK΢‰´?Uqé?QxÏ\½zWônjÖËpŭ‘Fĥa{d´GŜ‚6YB+$ÏoE‡ZSŞġoaûXĠĦ¨žä\ÍġH·cğÑ%~¸ĉúášû·Ĝn‡6ICh‹ÓŒ8[7@£‹­ÖGïcôħ>â£İĴ“ŜÉè‘éÉôvŽì”)1Ŭ—ž”šĥD_b,ħ-ħğQeQĈd]6Àvp€\ 1 qRĵ––™Ŝ/ŭĦôÒô²ôUéĠé×Ó;L ­"9ċżQô-,s|EĊ¤µŭê·˙ô·ño=Z|bâ³Ë§ì ìY˙ùğĊ‡¤~û:u5*0$ÉÑyCĊĤ))ÇssǍVàwĤV>ğyo‚CxƒĦè_“d<²Ħ‚#¨Ġ)şĴu Ûò›5ŬèŻúóg­@9Tħ%ÂBZĜÎ[0‹‚Ħ‰Cşlzĥĥ÷‘ĊŬâàÛĈ˘Ëí°8 o=ŝe[hÎlĵѧÉÌËË:¸ßK­HLò&Ħ}¨;ÎE rL:–ˆĊĉ;vaky9ŞÏżlİqˇĴp%½3Œ‡Lìûgä2.Ç]ÔĤî’i9YçëtĦEŞŬi܃ŬĞÑG­Ċ™ ô7ĴĈÚo}£×¸Yġî] Ù͘A²ñ ‹x ĵĠ^+MàŒĊSËÂË2 ÏìçšÉ÷ÒLñAmMÍc²gCÁÔÉ+›3ვîi§ı!ÜD‘ĦıÖMjmA÷òšÛ9ÜŜBxi lDJJżèR"—*jİVŞ—%ĥR{İ£ÔYê*5KÜĠÑ×£MôS(Â0JËĥX<%ÙÚ²9k÷îİ\³wïšëÔ-]˙ğĝŽšÙĠÓ§Żŝûİ“_o§D£ĝ‰=ùÛC{…°S‚6vEuâ'u´èD#Js]Qr­ô-I<W›‚Ôe#QÁâñDP=:˘ŬgÏ#͐ên4ß°°îşfĉ™yV^z<+>+!+1˗•”•Ü/-H$|¤@rA|ABAbŻ İ ı mfÚâĝò„òÄr_yÒâäUiĠi×ÓÚomżİŭ†Â„ÂÄB_aÒ̄™‰3}3“ÊÊË|eI&Üĉ•;hÏvZ“”6%7îìĝg{Ÿ™ħĦ6ìW·t›”½²¨)ÇÇ˙çu–S\2iÎĊCé÷´<³ğxâ›[½á.]Ö­Ûî´´f gsZ/óe¨YâI^ÀGx,­„ĜJĠŭGsŸ·Òñ˘ş<‘8³ğ”Ó!Úp% ‹ššë“kñöùkÔŭfRn’)Káô›”-EYÔÙvCzKfîıâĞjħUÌËèƒĞİ2cfó2qM|‹³ĉ~dçú⎖ґ£éú}œn<_*ïŠćâ]?ù5‡âĦûoóñşžۉà`a8oÏĈĉ˙&˞–ÍV:Ĉ~ßÄÍìHòkd£H8öb…zVÀîâ^À ùL~ËH6H1oƒ²ç—ĈPŭߚÏò xo׀‡ÄPFY Èg[È3#2ëC)Fc8ïño­u\2ÍĦ)LŬŬòón~á—ÇHÓGŻ·!Ĥ]an×AÇrz êâQ ݃_gg‡#°Ħ]ü†Żŭżf œ!fñaĜ3!¤Ñ9˜5”œ%­­gK°^ÈŜŻXëΖ}²ğh˘¨?R7‘~Ó.ÂöaÌmC?aŬҞO–;ƒħë˘1 e”ÛĴkÓ-'~£[n7ä6Óĵh1\i·ċ…[ö­ŭ5“°ûn³Żh'Zn›?…dòqéİcœŞ¨"u‡óF3NĤáÒZV¨ÍÔxx*ÑKÖtƒRáÍjÙóµ5§§q³&4§Ŭ^#û#’dQ°Ë˘]bQp4`ÏjÇJ…ËĦž~ç~Ħ)zò(\ĊùŒ&ŭħ¨›–JŽ%öş›˘œb· ö ˆq57d·³İ¸aÉ$´ÔëŠ-‹][Ëémbż]'‡#/ıàĠ'^-xyĝ½Û'´ˆiW*Ŝ*ċîÍȸ|îÜċŒŒŬİİèhuÓŜ)Ħ8ğĴT*$2ıHSâ3)Ö0™ÈÔ$DÎg@^ç2ǂ”KDqoKA$œ‚<£†ĠxG=`5Xy¨>*”³ónĦ\m[Chĵ0˜Mg%Ĵ”-aeìEĥİVGh¨(½4b¤Ž¤#M‡tɧĉ’\ÚzKYê@2!Ò@>X¨cÈ:ĈIj1)ĤÓ`šô0Ÿ*ŞsÉ´J¤ıü)y1YL+ BŞàKä*RE×ħ°^ZÏ×É;ù+rú†ú™ÚŞŜ‰â/"G³‚Ž·èƒôÁ·Äš¤ÂĉQ°÷fuëˆ> 1X?ÈĠTtÙ ¸)I/KÄ ’·RóTڟ1$.ƒİ‘¸H×££%³ŸG³IĦ8@E‡× éàÌ7PğóĴċv6kà@‚óŸŠ œpʙ JÈ7‰EŸĝİŸu„4ı£ÒQí¨ùzl ÈĤòı8òyKċÊzy½’ˆcC1‘Ŭh†EŠIH”ĥX0„Ĵ¸ĞäÎs_şlŝwè)JšŸkİĞ++W³şÈUO‹İ´´jRKżñßVażoıVŝÜs‹Û}Rƒ>QQÁv xIö ­tİÌmÏ&qšä)3ĴûQ)5"7G„¸9'œ+üIĦo,e×Ü ı4Q|!Έ|ş…¤UbŞ(yĉÍy´ Ŝ.4j‡X'ÊÄÓ˘*„Ûŝ„(;°- á12×tMŠÑ5ˆÑ !÷Α˘*8G\U Î6ĵálË×9È~CµşĤ†_2£·ğΟ i";êŸâ÷×ïUŻ8Ĵıú^f2g:jŬ­wâİşOż“ŬÉğëYú=ì^žŻôqˆúGĝzĦna!/ċezĞäñ ј D’q²1 E#š¤ë6âˆŻäU£m.‡OJâ>Ù§ĝÔ-U÷>‡Ïїġ†\)‡gİ=´<£Ÿ-ËaĊÉP ċËùJPZŭ^[ÀpŒecÔqĥG1{&J“xĦ\¨ŞEZ‘^dÌ#OÒ6ĉIOòež:So+µ•:–°rXŠq´X{ŜXéX'mqìw<7ĦÑhJ˙³´7ÍğlmΉ !ŜüÂM·tÍZ›2¸Ğéz(ž\Ö˙vpîz믁ğPc“ï ëPS˜ŒèŠÉ%ÙjÔLUëD>’Â3Ç”C˙¸n¸Î‡)§oƒQżÎż}˘ÚĞmÒ|ĥP€9İ“9§ê$cɓd&YN4…ŞnšI£Ù:–ĜĤSÙ|ú$[³yÊ|µœ.eeĥġlTIQè&Y€$Hauâó‹’+,ï--½À-ѰŻ)ƒ–ŠgB¸ƒtš‹|k£ß nG‡q;q;ÚÂíè˙#ÜŝOpk1ò°sÔjÜÖ&ÂÚaRĥXšĞħávĞÙu‹Ğ˙ŻáN­œE²HžĴçêCĜ>‘ŭ{€Ö ôÇÙĵX_€è^€è.gĜzVŻcuü]vŜñœi K×UC/›—EC¤cĠXÍcxm³°4H’üD˙½>Ü>^ŻO×Ëíeö5v7ĉSMFĤ0†3Šz™Krñ(Ŭcxl1ŽgIİÌ'ùxşÚIóëİFŞ-ÍŜÙÑÙé3{˘rÌeYRï÷0zĜzÙóyÎ,ó. €€hc|m€>È>Ä1Ä0G‘t R#VĈ¨÷k÷#‹ŒĥsŒs˜Ċ´˜MĠ§9Ĥ9 Íuc³‚<Ż-6Û*ìŽ ç­Ò¨´mtltn3ĥÙö8ö8kÌ÷ÌÏÌVs òw  ËE8÷£ĦĵÉÖ _ğpÍ£÷ŒÊI}Ââsêݧ6^2JŜĵ6ô£ˆp-ĴÄ#$“ñŽ²[ëà$rĵⵕÇû [íRˆéTUıÀTq°ìJ ĊT3F•;Äï}ÂïİĴ9‘•Z:3uUj5.ݧ~–ÚšŞa”…jdïíuó{>àg÷Ż=wċŽÚÙóV쨭íW³àİ=PħÉ´Êé?n²ÊiĥyëKŻ˙)ô’ûáI cK|‚xÔÈˁĠdÀÀÊrùê.R𸠨¨Ĵğ.YYËÊUÌd ZV.³ö-ÈĠgכżŞÉßց|+/udƒĜ…ŞÓèħj†ê3z@žšeXs> 4çwĞ÷8ġ!£²b(” ù$µÔ(3öħS'y­dı4iLoı‡j^ĵL‘ w6²f'ĝÛjBžƒħĴ‘Ċ´ê|SVPja™´_ċ¨àXœÔCÁRQLĜdL²ymQ!}k­(C K†dġ`½”Ál2+eLÁZHĈ:HĈzGŸŽ•§iòy1}^¤ċ-†+d§ġÒ7)§‘ŞêĊġ–éġ¨ĥ/š2¤/n&ĥ½Cلµ°Nê骉œbÊXĊ™íj+_EAud&s*ÉŞġĥ° sŬ2ı!ê6“ÛTÈtWHA=$1]di,g¨cŞJu›ÇŸeüu ĞâëÔ?17ê5™¨è:AšÔ‰gÈJÀ6 m°Uċ y²Ö)ğá~Xy[ùXù OÒu)fÂ,+yšV°¤àXÔ2˙7-ûĜ#×[NÖʞĉiôrˍ–½,ċSDY2Ùl½TĤĞĈ7›ÏNƒa-|%-”Ŝç6ŜËójŜ({ä^òż(‘Jµòız\ëĞ×êß½Œ™ĥ1ĥ =Á>Ûŝèıs¤˜{HıÔHfq79‚û³¤ 2ƒ-³Ŝ܇ħ}¤žì’)]ÁóWI‰œCĉX׳<ò&;ˆHñ„ ˙œ–Šñş:r_INËéä´ò5éÏ—ĵŒŒ ġñĥßCĉH—[oZ×)gÈ)‡ŒċÍxïVœSë7$lÔSjöyÈÙ÷’¨†~\rf×Úíß?}ÜĵÏ>[mŭPĞŭÇ'˙ê8„endstream endobj 252 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ]O1ƒ0 Üó ˙ ÀbĦ C+ÔöÁqPœ(„Ħż/ ĦY:ߝ|–ŭpĜFcpĝ˘Ĉ²´ş- ÁD³eQV -Ĉ“ċ‰‹òBöwċßO°ÈüĦ’ÏŞİóŞ> stream xœ”kLSgÇO9XŠu^êdê9Ŭ”Mnˈş-8·áÌÍ XħR„Rh \J[Zzy€ĥP ½( Ô:ŻsŠÎ ™ÎmɜËĤ6Lĥì’÷‡E³˜,Ùĵyßĵž˙ó~˙‡ƒĊĈ`‡›ĥ+sۆG·dz)‡^C/ÇA3žÚ1c96/ġŬċ//jäAqħ½Ë¸c ~>’ÌCŸp§HK“Ğdùyb…`UîjÁú RÖ ^KNŜ xO"’ċç ‹ğ„ ħH"T°BA†47_¤P V½%V(Š7&%)•ÊDĦDž(•ċ½³z­@™Ż >ÉE²2ÑaÁi‘BĦP"<–™ĝĝL“JŠK"™`—ô°HV„aĜœ"İL(ŠvçbX:ĥËÀ2ħ,ì,ۂ­Çĥcğ°8ĥ],áÌċc¸1•8…Ĉ.˜‘:mâÑßjBô+!ցËë8Z2Ì7Vƒê•Këî³.´‘6żë|£ĞıßwÓŜmmë9×Ùév÷÷İhÁG™ÙÙTÍQ³ʈĴaiôÁzİU Ĉj‹İÌ@j󤳀¨U×wwĥö5·SSQ„Eb"7ò~ڜ‚RwĉH—Ž‚LİUŠĞ3ÀH¨`wƒ5`#wüC=@xZt…e†‹‘âÑÁiÉżĵ·qڇzĝÒżIb2Ï3/2/'^JD‹Ñ"”€^$'â‹s:ŒŝŠ\§ú/ží;ÄÈħĵ­âr†›½…*Ĝğż@ŜĴ ÒŻ²FĵñŽ<è8żĦiÍğvè`•D['‡Béñwu´‡OìïÈJÏÍ˗“šQqè˙֞ĈD§ídŻËo7“<:EúâJĵqší)éz~§—Ñ\ŝ=‚™ÙË;ۃŜĦÑÜh3+'1óí‰ê^=9ĤĠ¢H‰á”d4U’c6ˆB=Ñ­°k 9ĤŬçŬEë"ˆ7Ú£íRɒ.…-Û!iÊk‚Ï ŸçÖ½ŜÁq ÉC“Ĵ‹(-ÀAq×pä£WòázàkÓB%µ‰ËÎÓê‚°Ĉ{ĠÎÊbMi…‘<Ì$Ïx“[Ħ•ş<ÔÜÍL,u*¨ŠÏ˙óJhqŞÁ¤ĥ˜Ş ¤ô}aÖ> 4 Gcğ-ÀÎpìÉ ×_w\Á齀˙¸†U·TÔêÌäfĉ¸ĝÎtˆ˙Ôx.tëß(G‡Ġ ât~öÚ#L‚Ĥlz[Ğ•lêêŝ}ˆ§ıDĤ‘èËİÌ<í!È!VßRž<1䏐îœÁÊ~8 ÁÍ^ßPÛEh$qZe1–ɊmŞ=G(×{BO5>ċ,ĉ&N×Ò³§Z‰G.¨Kk,ہ’Áπ`b™ıLójÂxĉË#§‚~ʙsLŭߕvĝùşüï°)É4}ë>ۋbÜT×ĠSçF€¸âHÑׁĊ¤eġjB¨ „RXIÄ-d‰â¨ İĝßÁıĉA×ÍǗ$FEÑ­ ̚uÌ6&öêĥŸ½ĉĞaÒĜĤ³ Ìf½îԍ€ĜŞŭŝX3ôyQö˙$zF›Š D²’yĥSĵݝFƒ=èj˜3ġò}ŬB|´Ž‹VĦ…Gœğ['˜™sqš'x.^k³ħšb–>ŒèÄŭ_É~ꚌÍÔ0oŒ@˘Ĥa8·Âĉšfë#°;­`uS(žá;›! Ä$wbĵts­~ġŜLJ£Î>˜ÌÏċĦ‰ÇÓ@/Üá Ċ—£Wptw ç{jĵery™LÚap†Ú;:Éև ŝż.ݽĤ\Cà=10ıÄÑáì˙€$×++öSâDƒŞRhÒĊזéä ügÉħÙqkBS >çL²ıı4µ†ßĜVߍĤk¨0Ż-ݲh-PA°ñŽA­ÎcÉÌh|•}/Œ†üÒ7Ĝ6ŝ $ФòÙ38–ĥÓiN¤¨÷´sĦsfxöÍ9äìĜ”@ÜĴ=.ŝâ³<ƒendstream endobj 254 0 obj << /BBox [ 1030.52 6558.46 2111.13 7015.59 ] /Filter /FlateDecode /FormType 1 /Group 92 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R84 91 0 R >> >> /Subtype /Form /Type /XObject /Length 93 >> stream xœ‹ħ€0 ÄzOñ5…ħ$P &:ġ p*%ġ5ö›NR‰AK¨¨àZħàĝ”sNÁsSž¸(̌ʹU´u¤½ä€‡uüñÍ4Ñ ôÙ€endstream endobj 255 0 obj << /BBox [ 3249.06 6564.82 4999.5 7021.95 ] /Filter /FlateDecode /FormType 1 /Group 92 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R84 91 0 R >> >> /Subtype /Form /Type /XObject /Length 100 >> stream xœËħƒ@ DÑ\Ulì@֞t§£b  LĉÀíx^ú˙sîŭ+ĦıĦy!|H†cŠ··c/µj­&• Ĥ§fEDhxżzy=„EÛ ~b¸Í?"“œ*ÏÀendstream endobj 256 0 obj << /BBox [ 2282.77 6591.15 3139.62 7041.23 ] /Filter /FlateDecode /FormType 1 /Group 92 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R84 91 0 R >> >> /Subtype /Form /Type /XObject /Length 149 >> stream xœŬ;1 D{ŸÂ5…ñ'qâP³œ–X żD‚°œM÷4žñĴ‡špĵ „ÑM- £°0NÜ›Ĥ4”)=Tˆ3^@3 ÚÉı“š)*½ŠÓ3ŝcqg§T–¤ˆY#ïŞoÒŻLŒÉÓ2ùċéċ§?W JUñŒMĉOĥí` 3çÎ[Üendstream endobj 257 0 obj << /BBox [ 3142.3 7169.97 3226.55 7253.98 ] /Filter /FlateDecode /FormType 1 /Group 92 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R84 91 0 R >> >> /Subtype /Form /Type /XObject /Length 97 >> stream xœ­Œı €@ sWħ1ħÏgÊ*à è_â &$Zi4³eçóEݘ ĥ °& TTpް“ilX’şppl”µÀ–ÉğŽġqœS•Áò‘MĊ_=µt^Ĥ%âendstream endobj 258 0 obj << /BBox [ 2125.17 6421.24 2209.21 6505.23 ] /Filter /FlateDecode /FormType 1 /Group 92 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R84 91 0 R >> >> /Subtype /Form /Type /XObject /Length 93 >> stream xœ­Œ9@Pó9Ċ‹c–ï/Ç@à–U¸Ħ@(íêîşËóEݸ ş)ĵ$Š Îv2œC \62ġÍħWn°|dSġßЧ–nhî&endstream endobj 259 0 obj << /BBox [ 419.9 1232.66 5610.09 7949.37 ] /Filter /FlateDecode /FormType 1 /Group 89 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R84 91 0 R >> /Font << /R88 94 0 R >> /XObject << /R86 254 0 R /R91 255 0 R /R92 256 0 R /R93 257 0 R /R94 258 0 R >> >> /Subtype /Form /Type /XObject /Length 959 >> stream xœµVK5ž0 iVì–J‚yIӇq\~ׁ¸e3–ä°ğˆpàïSUíîĥ{Ä"HÓnğ\ġùĞŻÊŭô<{ġò÷î·Œ3*: êj'ç@]vÁ˜v,6—ŬĞî{uŬâß뗝Ô³ëĴŽQ@£ULu"“_şŬÓóĠ׿vFñvqX—ÇOWêĞ=›e•5XkPí_P1QFGr™£v9¨ŭU÷vuÔvµ^ŬáǽÑlˆÉmW›ŜÒK@Üîòâ½²Ĉ,›żY[ŜïA#z ĵ²aۋëaÏ[ŭÈ|ŜŽĊ ͓[kÁ.^K41ĵ¸îwFcŠVVàÇŭwÑ`1$µ£C=÷?3ú·Ċ ˜è=Òód8×!tXA>6Ô17CÈqh0•˜ÑĜT(˙ náŝÏĵ³ gğz—˙$Ô˙m&˙„‰„×&ċ­ö)Ž€ŜcGwÊÁׄ‡Ž‚ ƒ>,kû}d0D…˘‚àƒL˘ĜLPeq HÙwÏHhĴÇÛÉĴsˆ¤DqĦèCʈ  Äüëö}ÂúQĊŜO\9ô%Ĉ:ÇO$É:eaö²™7ĴûW* L‹L,™·•Ĵ’{‘ÍĵpVĥäs „ŭyéX’`İ¤nYo†z9[°ÑUêv<ŬħcŠóšAċĝ¤z]KÎï§³·šìÚój|˙ħ\óÇêÍ8¤èhr\Ô÷“ŜI’ĝÌ9£‹ÛFŬE›ËÌ ‰‡L5ç­ÏwÔ.Txúú”ƒrĈ:°\@gÀlĠCŸÛY´´TDK^]6>O3—ÓL26hä ‹ S  á•IŒ&Rċ×3 @;Ç3c¨™i—Gw€Ż=›)ĝĞ0?żm‰Ç ä5äRáŸÈe %>µç{8iJġ‘RèKğiêä´Éô˘+r7 ö‘Zg²ÍÂQ-Oç”nÚÜŻWŸ-„)ĥ´“:„J–˜4‘(qԛéĈĤà–DÄ=g¸Û÷Cˊwä(è˜ót-·ċxÖ*²Í›ûçRVSè¤HÎfŠ8”ĜÔx›*Ğ é†SWûğèD°1!çİÉşH·µóI{g}Ċpq?’yCBœ>œó$êxÒC`9ĝĉÒm4Âġ;\yÑlO³ë ym“Š>:m) EçyĤd×˙›ìò÷\âÏ>‚‹ËÛî˙&=™áC“ċéĉ?——0ùĴû!ñ@endstream endobj 260 0 obj << /BBox [ 1030.51 6321.08 4999.48 7330.28 ] /Filter /FlateDecode /FormType 1 /Group 89 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R84 91 0 R >> /XObject << /R95 259 0 R >> >> /Subtype /Form /Type /XObject /Length 65 >> stream xœ+ä240635T0362Ô3°P0ĥ4³³4S040°Ô32T(JUWÈÒ²0QH/ҖĤ .ù\\k †endstream endobj 261 0 obj << /Filter /FlateDecode /Length 6007 >> stream xœ½\Y“$·q~ñGtlĝĦÚÁ.á>–mR”…)QäĵíòĦçÜċÎL/çàzŝ½ó@uÌ!2|Ĝb *äùe"Ñ?oTŻ7 ˙+˙ž^ŭŝ{g7—wGjsyôó‘ĤżnÊ?§×›ŻaDpĤÏ*ëÍñĊŞ7:ıŜşĵ‰>öÙúÍñġÑÛêUVÁFŬ}€g£• İğŬîT•rİû¸ŬYkú˜s÷gà´SFwg8À磁gĠÛlSêÎñ­ÍÉú]!5ċS6Ŭ }ŒÏŬƒĝî^m5P‡G­TTI>ûrXQì­ë|¨‹ğĊİä6ö[úœà›Gŝ<)×ŭP&Ĥ=|ܚĜë”òÚ ·É³ËĵÛ§î/ÄÈ`,ïĞlQ,à°ŬU˜!È7ĵŸu÷7›”†‰ğ5 ‰Z‡ğğş†˙âġJŠ×ÚĜB>>;êüöĝ§£sz³³O!àÛ·Ŭ'Úh´Ak 9>îiÑ:úH˙”gÌ.úÂV“•aˆ}ŬXYS£rùŻ Żém÷=ïLݐ—v!¤8Œ–k=Eİùd¨Ħ÷ÀrşŭċıX_O Áz$½ @öĥÙéğ„ô‘äWHS9Ż9kWÔËÁ²ĴCA; ÀˆbGRP&êĞBñùdsw@ŭ2ٙĴ 3h…dàòK¤ĴQrg£Šî‰99IGhĴî¨cßċÎïÈ|‚Ġ-4!‹£Ô÷­ÑŝlƒtI§y+)…꒤ÒßùìˆĦÊÀw7ÄP“Ĵi\ò@'`ò`´­Kž<§Ĉ`Ù ˘îß­ÌH˘ĉu'vU ôd‰È‡€%rkĵ£Aw„DQ6E0ĴĈâY˘VîX$ ZŽJe‡İŭ<ç`ƒSñĤû…ĠSš‰ „W-zÏNPÇä&ˆ ×–ÑCáKĜ§`âŝš6§œ Bœşğìçmx§ÑŒ£É0†Mì´í½ç[x_ĠM˜[kHµ&pLQĜ6ü)ƒDs÷]}ĵ­‡úxżĝöëúĝP/êê7ġñĵ>ŜĠÇÓĊ5|¨ŸžXŽG—[żĞ‡ĊÇĞí˘?s m1 }•ò†eĴ<(Œ"wĉŬJÜ-&-è' Ód0Ğ!xXDH- êXĜ 8 7„oÁ8Z·0êÔù,´4n<ğ^Š5n|tµK^ܘыK“>Żş–ĈÎ8‰žjXè'ĦÎûċUƒËwŽ˙114Xa“Ë&IÜ!é ŸÚ6ìœc9Fh<)Y’C]„mœxÉ*ÖQyeâ­4è]•0™Ğ ×>ħıžfĦñŞĈTĉ/8LpÌsMÑBVÙŻġ2`É`N܂e£ÓŭÌ2ı˘!7ŝkŝ;£ˆŠŜW;3Oט§I×ÖUó%´Ú™îo'Û„£ àù§:ġ9­Me¸2PŜ³R¤ë\QŸäâ0£µÔċSĤNzÓ½ òžIċ%½™…Š?…ÁŒ)ˆïä$şOĴy˜´Ï³`$Ó§ÇS\İ%\(ġEÑ pSñTe(Ĥò(bĊ€d 5áà}“ÍîŻè½…~^ôx CT#…C–  ÚÄw<²që=¸OsÖx÷b&=OĝϘŽíO+^—ÊĜÇ~ˆŞ{‚i£LċƒïŬĥJ2Ÿ2VQöŒ;ÀìùÏëŞäĝÓm[‰  ön`‰KÎÉ)üûmÙ0€ŭòq' _y’<x˙“ 8O`x´LËá$b{ıĊRm n4£û=0ş"ÎU‘ _ïŜñ6qLB ̓óċS­%ÂĞajċ|ó ΒÀĊµ8f?+9.Cálİь°A/SÊóFy„ÖÓ°µ=o{Œċ˘ƒš@ûi^]ò†ËġˆùûïÑġI+u=LoÈgÁıÜŭëvç-§cċ1t˙²+óğúöĤĊ˙Ïġñ]WŸEq˙añ­8X>)Ĝ×ÇĞúĜ×Gq< ü”€nw‹(N¸·/‡Í%ùv_ŻċĜ?ÖÇ7uÀ·ġñaq9·‹S<ÖÇ7‹+ûPߞ-A×ïĥË^ċoì .“E@(MîpZ텔˘ż OU˜­ĤbíJa·Î`—Ћ֙â¤F“+Ġ5Šƒ˘pÁ°ÙRXŻ>ëKĤ³_ ›„Vġ•Ž‘AŬ•ċ'_Êä†ÉaZÒf9ÄGßŭĵ 3ËÓ=_Ù8cr@Ĥ.Ÿ^§èĵ”Ğ”żXö•‚šôĤwh@~{ˆ÷²vĈ• ŞL\2‹T“L}³EĤ4:&Í$Jak7ZÍYÇġYÛ;ˆˆZ²^[,8\0¸P0ÍÒA 6ŜĉöSh°QY h—‘ÒÙS!!ı`§ñBVW14 ùn;ï9H+ÊĴşA‡!QTôµ˜\4ëün G–ò²•˙5İ ̵šÏ‹Dñş„^½†"¨3È(cEĜ|oH Y0ĥ|ßWí] ›;Ì"àqGŝSkyâ>žc\ú§ú(BĤg×2ñûÁ[ż­óéúĝcúM%÷íbÔ½]| zĴoĥ‹ĴÀ‘ı< –x BúÙo°[ŭÄŬ~ç‹’Ù/îàê9ôf‘Ĝ?(Œ_Ä2÷‹°ĉ"şZŭ"O.%(YEUvE…,‡ùhrĤ ²áÒ³„]5‡Ùñ³ò6D^yjÁXc,°5Ž8ÂWŜê—7ĥYÈĴ†Ñ/IL&Ž˘ĵG2¸Ĉ=xáèWJ˜ñ BĠ3`VRVşÖÔÈŜ ğGl)Ñdj˜zMà,OE¤µÖHÊÚ³uÊrîĴ8"PLÙOPÉÑ>‘éàáZñ‹M_•Èô€´ÍÈ\46¸Ôzuĉ"ŸXŽç¸Ĵ`żpĜPmÚ Ôq֚r_`¨+âYjRyşOĠÄi¨Ù9AbÓC‹ö¸`l§yĤ#ÌġßV÷ñvı= K}n,€ÊŽRžĴÍDH…-6´·9Ú£n'Îä÷âìä†÷·á(5³°çIOĞ˙\ò™fçHYë×áìDz—@]úĦVú¨D×Ğ“ĝrĝì›QÍzÍĤĠĤZ’Ġ&Ô]p[äĤ€ 1µì£ƒTQġâ•È:ĠOĝìùqğԏ5E pÓ½XĴhÛXoüıƒ‡èR(>Éħ‚î ĠgƒéÖ¤Ĉ5;™°à휗ċ¤€rµmŬĥ³¨x𤕓ßíK⌎äA\☐ö÷ ġšĠŭá5­_ xŜ.> ¸òĴşôُòñċàè)¤údµd,{ü[""F9ċèëáè¸GS_;.à50ûYĦÛ>+ß5ĝ.÷kÒ•ß !Oğ—ËŒÙrµH·_¤+r“ÀïĈî6yDĤcŒ2ĝ ƒŻÈà§äމĜìÖĵş(ŝ œ, @|Í(„!%qá?bЕ邓m3'u¸˜ò ד…TÌ%zĠjȑà–IŞÏ#°oäħFŭîցÁ1áÉ}(q´²›4ïµŬž„ ğ=wO5cë^% yĉÑ4\ŽkċcĦì›b¤ñKS!Aĝû v²q³Öèîùh6+żÎ~Â3]¸˙"ŒQ Ħ˘™§Î ĜG쉳ŬW[nğĈğq1M`1ġ÷Âbsġç£ìs™Ż$⑳g1ŒĠœ-ß5›lÄıgÓcŻ…n?jF,um:ž6sà3*àŻ4âTġfC$ĵ,ĥ%NO–ġ{˜e~Ħ?ŭ°÷^ӎ11ˆÒ5añ^˜°!Èqë„ï·CĤĈaٖŒâ›ÈRK\IÔĤ\§JÏĝÒ­ĊšlzÑÁüpıpvwݜò֐'âóI6ÊmÙpÄNŽNEVÎŻg•ĥ煛@³0ó•²KŠi)`~+[^¸[ˆak|@Í÷e€-ç÷%›EĈÎêOqxoé•×C H´”o ­‘Yisù,FßÒb”§.„úšt4ĝ#7m§)ÄßÓX}ĝ*ğTbŠĦín—r9ŬÜĝánh¨YíiQż ˘pğBx5˘ /!íX8(—"Û3!]N!‹§ Ġısxĉ˙µaÑċİñ‰­­$ÉrMMôhĜ˜Á{É$ T*ƒ}ĉa<ËzôɽıҎEîTşZVŽ5ĠĜ­´n‹˘ŭ'ҁWû!µ"zV q]ÎҝÒëĦTżœ¨ŻŜê;x~Vß0ħMÊ]shĥpʅ€—ùwĝ;(|ĵ2pıXnÏġŬRkÒ@˜ŞĴ|9³´&t6˙ÓÂëŭ6ÌÈXO@Ûè žIg­G˙Y]–÷§Iù)W`žu9ŝ-yy²˘ĥĊ·)ééĴă§1z•‘Ïa…+E°x9 ³ ĠVÜT Òż> stream xœíÉn$·ġ.ò ‚/İĤ+ܗAÄ6|pàŽ­œ&>Ô¨%ÍÄÚĴ–<‘ż>ï=²ŠĠĴÖ2l DĵĉòöĴE/ŝċ˙ÇüÖè³í8<;ĝñ@ÒŻ‡ùßñĊáçG0"¤"ʣӃ´Tyè­ï£ĥ‡G[ŭĉ:UÍ5²×1Âü£ÍÁëîÛĠZôVH-T÷Í §ÉmwCà½WŬ‚ƒ‹:t·–1J,{!uŬç‹Ŭ­phe0Ŭ)‚u ÚşïŝŠˆŽˆ½²RˆĵZ­Ñ},ÊÑ7°› 2ÀâĈ"x˘´VNW²;.§tWçĞµÖŞÒR˘w°(Àİìĝ €½tÒĜă€R™n‹{è^‡½.t—eLŒĞ¸*d”¸ê#p2MDùìµş7^µíì”ÁŒèŒ‰ŬŸWkĞt,íWùĵÀwP˘7A}}pô‡×ŬEYyR†Ûù ğĦ ÏÊd<%q'èiŜè}^ó2İşB4ÊŜ8‘Ġ­û}ÖÈjŠíöaÒHvÒ]2(C††6„H²ÊĦ Ï˰/oʤ ÙfÛ2ĵ*Ë6‰ÁöŜX½D 6g•I|ßDûĥ ߎŒ.Óĉ²“&µNÌ´ĥıì6ÓU;•µŒlŬƒ’˘.ƒĥîG¨ÚJ=  VLT!“BhÓÔWC=ɘ)!SÍ ËmSwošĤœe-R½ê}‘ÎQcŽ–Ú(£N 䉇yǵrdgÀó5(rï„!0Ò)³kqhX81XĠŭ4ıîb6e wMÛ´Ğ·7¤!L&ï˘pÖ9k ϐp†Žšx1âÈIBÔttR— $Ô g‚%B³7·oŝÙwŒè/XĝŠ ñ8Ô>ö²Ì I<%Ĥŭû6А&Ħ#5VÛİt–@€ƒ† Ĵ0f,ĵşÌ"ğ:ĊĜÊ·“[|Ċ+:PŠlĠIù£ƒş¤!ž ?…ħmôÖF; xzİ{kBH³7T$9¤!(ĈLó 7ĥÄ BИ4œ%ĵ´°ŒgoÈ!vqŒíXói_ï2ŞŻ›s/›s™ı˙ĞkÚ/ċȵ7ŬkÛég|h|ÍÀĞjüp4,ĵÊp'FŞŻJ„ŭ´@˙Ö 7{ˆÍyÚìğ‡"çMéœ7£ü§D4)pœ¨|WèٔáĞ˘LšVáԓ&oŜ51hóĉâıĵ™†iêÚħiž`°¤)ĜY~ڌCS M,ŝ <ƒw0 œ'ĊVëÈ]÷Cšµ€G6öAèî yjrôğÑxKú -B€áà|›öˆ"{U@ ĵÎgê°M2•óğ#>™;vŞn#…'Ĉ .ÓĜġ|ßQô”ŽmÎ4Şj6¸|X [မS i— I ċî3ħà`KÜLĞŬ à‡‚áš1à”‚6Ö$<ÚSL#b’s°9ÉÑŽÒn L{#q:ìĈâ<~~,ĈH‚Vœ”=(MÎĦ u;ùcU,†şbÊÔÔq”•8ÌÉÜ4= sÌ~لŸı­·ÌӚ>J÷‹¤‰Ò÷ÌzĤµS-·dĠIj O–È3¸ÔvPmj&µ)µ›pÛ¤£€¤g dGІxz0ѵtĜ&Hµ\“×hgeËç‚ŬÄhRÓ:1Êà11€Ä×*ħ½JP!CCĠ½ó–Ĉ;œdÌĦ΋`rúıڄ6¤sÓ1D‚ŞĴ^Ü}Äq‡ÚröÚÓìš"£j #Ö‹Ó°k6SħĈIŝ‘HÓΚJ<•ŭqŸ èaˆñAyIĝ›„˘ĥ%óÎÌ>x´ÙĤeà•R–§0g7Pù2E/ŠÇIĝŭ'tÍJ(ġ98ĞGġ£}ÓqNş"͍ÀK…‰í˘ájÁŞt¨ˆQöċLË/(VÓ· “k•]t&[^ú-•OdĵlRŸ ~ĵ4Ĝbö9%?Ĵ\uÌDtR% ä…,-ŒIoRx41‹™\;Ż*‰LY•§l£ZĴÔX0Îúċ(ŸA?jÚĜ×TUĤ40#^ĈĤîë­G2×Sş‹ÔĤ`ïĦœì†c”ŸÉáZ+ì6šä"R%MÙ•LÓŻÒÌHÚĥĈˆ"ĵw™D+IZiòRYMwÌìŭ ÇàuAŽu–qžħŻ+ׂÇB\ŜRĵpÚ@.AÛ¤?IŸÁĊktîÓşBĥiŒ–Ëfè–f^yĥ"çHœí(l˜/ +L#ÄRİ[ğÊÉŜ&r•[”‚@†3ßsÍf*“îc6ö›ˆâ³ħÙĜ#³ħYíĝĜ×*Ĥzš†µ¸Sì,”ÖZ•á9-Ħ¨ž W·  mêèB+w~îVÓk‹ÜU¨+›· WìÔġj§ċéÔŝĈ”Ç(ş£],Ŝ}ÁÀ)=À¤YžC{ˆ6è÷21 ÉLéË 4d÷ñ›Ĥ°hÍôzn˘ÌßŬÍßIОpü4üĴ ż+/Ê+>l Ìġ ?ÙìĉäÉöì+u—“/£$½úİúûFF4îŞózÎ& ÔÉ8ğq˜_š‚ìı4OOtEÔÖM½b›“‹TÁàóĴoú˘(ñyiúd„mTşŠx‰r|ïYK}íb/£|lß?UMĵ£ÊğäìĞ]j1#OyËM^VLÖ,2ŒËŠ™§–ìköoZ:iŸâҕ}ġŻäÓmo*³ißK'Ê îqLQíêŞ–*.=eĞ 9kë{£ükş]Ĥ{àoP˜DÑ!"@/=J@Zl~ÚLsqôŒëġ´’_Ŭħ·0ólY:ğTĵM˜bŠ3ëèáMrĴҍ|íĉ’—ĈŬ Ô.Éċ´¸tŝĝĦz*H{K§½™ûqâĜCĤöeP½(•Gñ›ÚÏ)%ùü¨ös}7ŸнBfŽ4”9ı`Ÿ: ƒ”–]WJ›ïN'½9.1“Ŝúì^qŜ§S’íáğôRWú{“zĦı³žŝIš`„΋§´Vڇï'D_bAá[ùŒï1ñĵÒÜ\ì›ü K6³Îê*¤kxl—óÏ#&Ĵ™`6ĞİÀjŸÀ#mÊĠa!ĊœĴ:|ÒYà♞²ġd.`,PW9ä>säâfċZĉCÏZšµ5ü¨!1Ĵ!jK”áP†í¤ \ÛYe–ËUŻZċ*µ+x´]ĴWé*ÂĠž7CmĜ£ĉÔì½ayĜJ[¨ìğSìŽċS ³üNbòܵ/¤¸&ıİ]ċ*_Uôy_U° –"œ=tŬñ”üBÛŭ‘ßϵ/+ŝßϵzġìğ ökù>ċNĉ,ĝ˘)³Š­s˙ß~×bŸĝUËì[˜¸,|àòċÑÁ?àïżàKiendstream endobj 263 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@B‡,KşdhUµŭ1&b B†ŝÎÒùîä3Ĉëèlŝˆ_”ÀX§#­~‹H0Ñlkh‹İ²2qQñáĤÂûv™ƒßĠBü)şKYµG½Ĥ5(¤¨ÜLĴoÙ#9ŭ'ĠÀdŞSt²B`ñŸJŽĉçMÀ-Frİ4-Mrëè÷L!§`û@²Sjendstream endobj 264 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ]O1 Üy…@‚*µCĒ.ZUm?@Œ‰ˆĦżo ¤C‡³t;ùÌûá:8›€?˘Ç%0ÖéH‹_#Œ4YÇZÚbŞĴLœU`ĵżİŝ‚Í@fçw5ŠËİĴÚ=„^ÓRTn"Ö5ìŒ‘Œœŝ“j`4Ġ)βB`ñJŽĉÇMÀ5Frİ4-Mrëè÷L!§`ûAïSlendstream endobj 265 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 418 >> stream xœcd`ab`dddwö Ž441ġH3ŝaú!ËÜŬŭÓëG=Ğ,ż“ƒĴ’żH _7s7ËÊBß³ż§ñO``fdÌ/mqÎ/¨,ÊLÏ(QHÖT0´´4×Q020°TpÌM-ÊLNÌSM,ÉHÍM,rr‚ó“3SK*4l2JJ ĴôġËËËġs‹ġò‹Òí4uÊ3K2‚R‹S‹ÊRSÜòóJüsS ÎԃPÎùı%İE ù)İEy LL@b2£Xš–˙èàû9wʂóżĞ˙(gŝ!ù}•èï˜ïÑġÓ;{›ğ%›Zz;§5ȏùûˆ:;ğ[$Ĥ6MÜÛ;}şÜ÷h LŝÜÛ5İmb·äôÉSĤġv÷wLïêŭmüŬ0rßwïïŜ&Κ1abOo÷$ŽiÍSê›ÛÛä€ĥŻÚÌxïÇwĉŸêßĞDçÌíž?ż²ğJŝÏFĥŞÊîòòıŬsäùŠ˙´_Èö[zûfÍÜr\,biġ<œ›gó1/@¤wendstream endobj 266 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ]O1ƒ0 Üó ˙ €ÔŞ• ]¨ŞĥŽƒ2àD! ŭ}I€ÎÒùîä³lğ[Ç6‚|‡/Š`,ë@³[ 4ZeÚbÜYž8)/dÛ+˙ŝx‚Ġ@fw5‘|V×K^•[ĤÙ+¤ x$QESÓbŭ'íÁìÎ36Ġ 7˙Ħ¤h*qÜ\B Žıin’ XĤß3Ŝù”‚â s“Tendstream endobj 267 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3262 >> stream xœVyTWöĥéŞ "*•íî€:¨(B”]T6Ee5ÈéÙ"Ĉ-‘P&Ž[ŒY4*ˆ Œ‚€—DF$,i–Fbk˜èD3·˜×žù½†Ìo&óçœÓ§OU÷{÷ŬûŬû}ßQz“(‘H¤ï›”›–{³LEÂìIÂl1ÂÊħcYaŽ… ÄÈ@ŻxĥĦż¨§š ‘Ó(ħH´ÔmŸEpĤVVÖîۓ³RÒäöv‹ċ[³äżŭ#÷ˆMMŒWÊ瓇ôĜ¤íɊXeš_˘bëÎTùú(eêż7ŝoĦ(вRşmwOŜá™â•êĉ³3=#*skVtvLl\@|BPâú$…Ŭ"{ÇĊKäN6ċO™SÔ\* ˘ĉSëİ?P( *˜Z@m¤6Q›)7*„r§B)*Œò¤ĵ(ojċC­Ĥ(_ʑZGùQÓ)#Š£ŜxjeL‰(j*eMÀ¤ôÈĤ&-J=˜$ä5iϤsâİâLñqŸŜ,=½dÉ$‰“¤@ÒE›ÑŜt ŭĈ‘ÉbŜ².ì9öÁ;ïÄżóŝ,}gŭ3“'ûL.1à f5(… †B#*‚: :ş]àpż1wħC(âµEpáZ˙ŜÜ1Ôv=z­˙³_3jßĉùRÎÎ…("ÜĜaĈpÌİ @ğTF½èĠĝiŒı7½3@E?B·ÏT_ŻĵRĜ€Zpt£M%Ë /\j욅š2ŝ{)ĉr藞ˆĊu´?äaĝ0 ¨âÀıÌҌ/(Eç(vd¤d*l"‹|ÁpoTuá+\B—ÉHòiŬ‚u·¨R j1œ*ylá`†=°ç°9,‹§o`%ĝ.ŝ[Ëò]ùçÍxžèjkÔ p-Ŭ™áX\šJU‰niÄc–â•àhۃÑ´")Ĝµ{ĵ9ÂúTÍm÷h |œüzùÓYf­èŭ!{w)ŝë]H’ól_Wfwïd+ÏËÊRN)Žo`uİö–=ç&ηĠĈ\kVòPJ××ĥ#fƒœÁc1LÂ2g灂ĥĊĴc{ÎڕĉZ!{-˙ìŜr<Oö[ngÔSajKßSÙ/UCiĦ“°ŸÄË^ċÉpŬwbÎ{™bé",ÁnĜu dġ-Ġ2|Áóǜù§-+0‡ lŭ~C0ĵ˙3ÙDgĞ G%шa òÂ{*í{#Ĝİ´‡Ŝ*„B•֍6„!2A™…Ÿ="•s÷ŭ6>ç˜|0jh&—d8ğC9ûó÷š£­ÛÂ\X.àc(*„ÖߝŻTĝ9AÒĉĵUhhC!w˘Ċ7Ġ°O-|C>ïïo·áе–ËÇÀ4…Ĵ'ó›œâtgúĦ[dìɳéÒŬ§>9ġië@à)í0‡e7?†5(Ġh„ïż>Ĝ€¸/haĦô½,°Ŝ vFöÈ=-(|‰g8– lÌâ4˜ƒí ä瞪ŜÇÒbKÉ]‚Ĝ…´NÁ²]4Ĝ/†#ĴĊ0× Ïġŝ‹VNW*[Ï~uèċÒĉÜ=yوß{ĴJxˆ-n°[…˘~0Y#nÌ fLaƒÛµ“ĦŬ†€ƒŒn":Ctm1j퇂ŝ•]Ĉ\Ĥ>C(rÂġ W+_ïé¸:êê·RqÒZ0Ž­ë˙&ċ<şQ]YŬ#֍lÏïİ̀ĦH²ĈZ,\È#ĴĠIĈsÑ-nϛñ%ĉZëı‚µdŭ­µœ<ĜÒ`MV>§_ ĥżjm%I vŬ˘ëj8Ù/÷}v}ŠXċG§JepŸÑx×cŜĠogLĵ45yŻâ³Mì}äğ+=ˆŭŝÚöÙN&/>k·÷>Ĵż+ëàĥŬ~;’"7kŬĉ˙k[cqÓ]éçÁiMè+tüPùÏomߟ’–˜´ġ£PÄúĈ^hĵSY>rRöôÄé‚ò“ìżëĴ…<às]F8AÄšw| Ż…’4˜@É(=N· …Âşp%tî‡BĉĤ1˙VÑġáêü6*;MA:p×%o°Ì}sr@Œ *˜‹xÍ‹×ŭ‹sħR5ö.t& ş=°¤O%“âhħ Ï´żıŝ§ĴÓ¤^‹CA&(&=:i§2=borFÏ$\OŝúËùµÄ3ò}Nn݈÷H1R£żŜĴĴĞJ:0²Í˘ Żİ›éP²­5³OZëŝ lë&Ğü‰dÇ< Eíb°&p.}Ğe÷äwWĴdŬǘğüŻ[–Šá~ç~ûƒËħ>RüV÷ƒîġ~eÌjŬĞ0‡yܰÀ3*= TšÔUâXÎÎ…ïĜ²–}2Ħô³э¨CùX<żù+âB#Ö¤Y!<‹Ċı}˜k°T‘ŜïùÎçámÒ¸ú€ Äşè½¸i‰7­V lÂ_B„Ŭ}11"81,†Kí‰áħĝ@& ‹3váÙYìŬİùCB3!ċ²ħpXÍkßĦŜûúŠşñeó̟ïÜ~‚ž˘{İÍQĠQW6}ċƒ!r‘I‰Ŭùı4҇ë>Ż8QR\óç²FÄöŬ t ü0dmĵÌ6[,ùÀ{?ĥ7’&TVî6d#^#ĈÜ#ĜCüqşŠŝév¤£Ŭ† v–áuż~"#ŝx,öôĥ*ÏG £Äç?†9Ïꗜ—qƒmeë;gÁ´ċ]Ĝ›żïŒĉJ‡éüš‚sÇÏ^Ğ)ıƒĜž›á.›³’b²eİ{·ôËcNjÛ^ô‘úûÀÇîàŝĤ×LHôep—6Lb@C/ShHÇê°U‹g‚GòXŻDoÔΐü@_Ğğtşħ/îúšÍ Xgċ^Ŭ—N’>xl{юĞÁ“úHÒĉ/_ƒ%Èm~³C˘w+ĥÊÊ!T·&@€ĥ# ~WHO…ŻùlżSÈyĈFùFzd:Ğ†§]oĴı ‰ĝ%˜Ž‚÷ÀdÑsÌynĜħ1V–ŜÍ?żBè/> stream xœ%ÏŬKSqßq3O6fFƒ Ü~‚éôFŒˆjTz1K£%­vĉĉvvĥ³3çÜ|ٚo|›ştsâëÉċRYŠ&Ğ‹" é?HIşâĜMŠWÏóÜ=ɳA9:½şL{XµÒYB:—%È CIsRMvÊğy½àÂŬӜ2PȤŬS˘-_lÎ '‘Œ XwHÇ:ĵœÙÌBC.ĞĴĴ(ĈċZm%ÁœĊ@ÙħžâÍ4Cñ†ï³ Í{qáU3Ï;”–z<žŠq•°\óµ˘bìħf\Gğh•6âÛĴÇ5C£Ÿ%GĦc‡›§9Ĵg4gGeµyŞG HvÀBr´NĜ~ô³[ˆïŠÔn\ Ŝì‰?ödâoñ³*òúĠŜ6 Ìv²½\¤/Ö6/,M­}ş7nİ5?äğÔÜփ¨ȋuˆBxd0<Ö¤ŝm%R@Nż ÖÚÚĞLĴñéÍÔSèZ‰aa’äĵ{ÄÏpNkGOzky;2¨3-7€Ü˙"ŞÑ ôúBš|ÇeÒè[J !–Ö(Î %ĴïĴ ÒeÑ÷Ĝ†Lj—òUC†—äTǨ?àëñĠ½Ïm}Ŝ3äèq4eŞÎôùŸŬŞòqwzċäfjG3ñn(3ä{ëJ}ħ)s)xHˆO Ğç˙-F&ÁÊœĦ6áĵ·žċߘŻĞİÉdRŬù¨ĞÁiĦíMƒíЇñħèh4Óä˘c(À·ĝêÓĤÍŭŭ?bvR­t ’.‹‹Œp,CĊrsPçÊ+fÇ…Ħ˙á Ĝendstream endobj 269 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ]O1 Üy…@ÂŞRĒ.ZUm?@Œ‰ˆĦżo ¤C‡³t;ùÌûá:8›€?˘Ç%0ÖéH‹_#Œ4YÇZÚbŞĴLœU`ĵżİŝ‚Í@fçw5ŠËİĴÚ=„^ÓRTn"Ö5ìŒ‘Œœŝ“j`4Ġ)βB`ñJŽĉÇMÀ5Frİ4-Mrëè÷L!§`ûCÊSoendstream endobj 270 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@Â,KşdhUµŭ1&b B†ŝÎÒùîä3Ĉëèlŝˆ_”ÀX§#­~‹H0Ñlkh‹İ²2qQñáĤÂûv™ƒßĠBü)şKYµG½Ĥ5(¤¨ÜLĴoÙ#9ŭ'ĠÀdŞSt²B`ñŸJŽĉçMÀ-Frİ4-Mrëè÷L!§`ûBŒSmendstream endobj 271 0 obj << /Filter /FlateDecode /Length 4443 >> stream xœí\YoÇ~§ó#öÁ@;éû°ƒv`'0œÀĥ˜'9–¤DÑYre.i[˙>U]=ŬĠ³½£ˆrqôâ€^•‹ Ŝú1jğ8ş8¤8<ú;Ġ 6n ÖÀ G§φïĊh2Qß.Ċ(b0~¸BÒĈè½6‡r"j5\S£ôžJiŬ9ÌÁ78 ÄèĴ^ ­cÖŭûè+܆áÛpbTvÚÄ'‡Kcôh yŬ+˜Wláhĵ ÷³TÖVr8İk ›ġáRk5iӖĵhm)ÏĝÒ*Ĉ܇H §I iáܰĊô¨CÎqq)´ e!Ä5ür„•*?a´!ZüĊÑÁ·aôzñ3ÈóoRŠ8J½ZÙ1ŞĊĊ Á^˓ġÁÓÛ¤Çè”B—ä [ñ ÖĠ%˙lĝĥ/ƒ7.Ĥ“È }ÔpfĜ›pÔ0ĴëˆS:ĥ$ Ĵ•2ŞáuúğSFŻ€án´°Q>ñİnÉ:࣠+‚-ɌköGo´vÓà½+wD¸2J$úŭ€„ŠÊlœ:›KᄙT'HG;Ö1v§›Ç+Ô.ŒòíSԋ‘÷‡ĝ< ˜²sn ş oÌUÔlÏı4³s‡;™'(¸‘:)² Zi×WžÒñ@.ÊŜóxIkġ¨Šê½XT )z;ĤlHç…ë—…şf’˜¨³Î³ĞîıÜ;’Àpċ۝#˙/ uÍd2Qgg·ì<%‰ÁdÖ͌kË&"˘O^PéGé}(Ò#7İT@?YÀ1ObjŒ"@îö(Ê߀(9ıËs:óĜ]BP£ŒFN£O K_jĊĜĵûìäVauwhħñ.4 ²5­ĞÄßµFŭVY+÷ñÖ@úMĉmş[šċHç5@ƒ×jŬ×ŭĝ£ú?Ş˙û`­ïPŭ‚½ àÑ~w Ìŝƒħí߃èGĝ°L ŝÊ îÑÍáwa< >w§Ó½5^aŻçW£·é|-Ún:ú]-â¤PĞB­ßNĠbş|`Ġ˘–o7í9ïHJ󖝿Ş÷^İé ÂğajF6ĥuÌÏîáĵŞ€^vDuĠyVßxKIîŻ*I ìp(;Äĉ?ClÇ%7yÍ[ÓPnҙrìvPÂ~GŜĝA~)K{fŬy”˘L­Ù\¤e@âŜKì*ßß@-ù ½ò‡WKf‚ɍ[;…¸³ŜÖÇг{4ˆTA>-b1½ïĵ­>|ŬX*èáĉ˙ŸWpÒÄjJ‹aĜĵÈ JÒ4CÖŻÚŬĉmœ}t-ŭ£#Ğm‡Zuğŭ×MXÀ>ïĵ|ŬOŒ"+~~Q:²şŠc}l93ïç|•Óçİïk/QÇĴövjë3‚ËÀÑè ñZÀ„>hmI4¤'‚0z%ߒĉŬ‚S§ 1°Œ’ĴSpzrGßUż?Ԁib÷gjş::  šVF++rç#*ĉ`²[4ĈG9ü5µQ 0`ö›˘Ş3ĦöQ³OÌGğtÖNíiKS³g…/ldM™Ĵë2ıŽü˜m‰ 5¨ƒšL} İĦND‡ŸñÚ 6ìIGĤ%êKš \WÊTtÊĈfDb†°!Ĥʍĥ¨tjZôĉunġżôŞÙmÒ +:¨ÁOZš™””ĥ£İy^ÛHş#Rx·Ĥ‹0ïwĴ5…ß–6„QNSÖbq[À·ÙZ„  Ĉ4LIŝ]F9_O'^Ú İ°Ĉûš2˜ĈŜ◠Ğ'FñR­ şhĜ[¤\!è0ĴNqcg°°Î™I-¸ò-2°“2„ß% ïĥ7ƒwùÎ2³b+°İ”èALûo„3òm¤èf¤£ €AġhÁ iš¤#Òk¨Ysêtžî„‹SP%ž…ċàÌ2™"u4ç^I<1ë^ĤáQÊĥ§9‰ÈÉ E?A]pGÒn”üDìĴÎ!3<—€ÍϳǛ´"Wİ—‰—‘Ċ6Ŭéà‘j„ÀîôÁ½Çá›J^UrSÉëîÓÏ+ySÉ•+y^ÉËîĵ’Ĥ’ŸUr[ɧŬîZíì°Ğvà|mŜĵŞ^…ñùĵz£Ô rw˘‘û–ž˘|V¨Ż1XŞemRĜau^,Ğö1“ß,<$MdfşÉê·Ĝçsƒ¨Y2I$ğ6:oŬÎv1!Eìê?{>3,ċñ +ŞÚƒ6D ™vb˜ÌĈàĴMá5DI–·J´Lnô ÈFŻċ^uĵTšĴZXËe6Ïm„šê6)rZF4òJRÖM•×)½ï$FŞ~­tÔ˙¤.½!Ľš‹µ~9Aĝh!­âŞ–RÔ%ù›Üšz5|ŠŽÂ‚'kbŽöŜy PpN Ó=íGbĥv£ñ½ –˘/kìâêĦ_ÒÀ„À€KN ÙH‚Kv,ÜևlO8\|;ù4ÈĤ(ÀÏÀR„à=dŸ% YUޞ%İ™pRvÊu#ıgġŜ<û|§ñÓÑàw>Şb_t`A*ÂZ™ÜvÉU%Ïĝk=ż·D­Ìf†;!ôàŽĤİÉhıÊ'"„wGw!,™…ŠBí˘' ϛèÇ_LQVG¸Ió§´2èġÌ:é{LA­ĝ ‚Œ~´ôŠÉ4<6ĥFYNíRŽ=hË+:ô8›ĉ´4Zú}êÉÓ$ÒŞÖġgÔ!,7aî>­Ÿp½ÈU×nŻA ŽÄ ŻÉ^2”²€puN]µ†ì-–˘ßÛ-í$CD‚İñéÚ(ʐü8›ùÏbÜçÇ3 V]N;^HœÍqí‰Û¤cżŜB&: ÈIµ‘£7*}Z¨ñËÂ7tpĥQç{ĥ/ dv“ħIŞÁŻyôI%#H7ĝà—Q?Ï@c¸/Ĝ°·Uç/Ç"Öژ ÑWKÊĊ™šâÒӘê´)ßNꊓĦçĜkʊäԚܖıÂSšÌɸ?‘Ĵ۝Ĥĥ´ğwsŸ’ĵ|r]Ó)ı‚Ĵ²5+9 YĴyEƒ!ġ#~£”Ş‹ÁÎLŸê`îƒXِójŞYm mӓË&[ĉ˜ċŝö‚ÌÚqÉÊĤğÈüşY /ÜÓɇé3ßN˘ŞK5aĠ-¸ôĉVècIqŸ ĈìĤ&`>ê™OM6Fy|ú\˜Ùf‰ħ{rŽdFEÙX!8Ç`ëD€Ë2÷Ëb…ŭâlÉx•]ĝÊWDĥĊ×$ĈoŽv/é)äj.ŻXìMuŝš sù{am:%~,šœÚː]ÈžiŽĈÏ]YĴäs“‡3Jí7JŝÒÚ"ÎĉdIû9ŭ}Ċ‘˜ŒœÖġnšĞHȖħŒ\[h;1§ÔĝÉi Z]4t^ászlÙ^t#d3;­!ƒ×]>:DŠFËRşzrş´³ÄW "WnÚ.Ìî+2ˆ;O‘˙Ĵġ’••fç%Ĵ`Fˊßͽǎkp.°Kú ™šÄ0É "?hM½RA;̟ë8‹dìğüÍşdJ\m’ŞÖUè'ö1á{ÙVy3[<#§­Ù1 âĤ›Ġĵ°PşP“90EjŽHö ^ßìÛé,üMˆkrÀß ĴwMêu^-=cF˜~˙ŝ&£›mݘkw{;•NtÛ­R6ħΣ`°• LZ<ĤžŜ7˜‘ÉAâÒBjpÌ1ŝŭĜƒ =Ö&$Œ–>ĠÛò VÀh­È“W`Ò'Ñ(×mVO+ğÊĴô<]}}pôÇğuv€ß’ Ŝn¸Zu”ıۆT†šŠĞVÁ ĠŸĥ“/nD³\T7´Ç²_ħéiş([P:÷ÍÎĜ0wĝ¤èX•3˜äĞjL­eĥTr‰Of·sܨ£‚‚£Rvd…ÖUò‹nÄ„\]On]XêËÏ||Ygf5ÓŻ+ùôÎÈnŸ·PW *żà¸ĴxċŸ|Oû4ĴşÖħ.ù÷M é \ïߓ´ĤĞ…’Š è˘5É7Ü{„7³ü2-ˆĊ@˜o‰ ħ.¸™_/*ğġDŻÎf€§ü%KĠyjPSîg!³)Ż.YD.ùÛşŽàȄş>ŝìĊŝޤŠ˜úÊŭi8‹ĈÈ6 \Ó2üÚ²\¤•#äìc6{.ĥ7Mİ*ìdê’éĉ³lâvşMĴgŜê5-ƒÎ`9G'â00G7ğzUOBğ6@Ġî7uˆ£Ê$Ĵ\Ôġ= µ}W`ĴĴjsƒâ¨~Ş£[R#sJûY{†Tò`žV6Ù()Ĵq¤ŸŽ#Xž3^¤è¨îóÁ2‚×óbh ¸²B;5fUPšê›İN!ùâĉšGÑ^ÔíKıî›Îb ŭ°Ézş˜Sڜ$²`ˆMÔ]ÓvMŭ³Žèßlf·) MÍÊ#­ÔpÈĴpÇ/žX°:'‹ÁmÑŞĴÈv>J˜W.{IÚ à{èŬjÒC—9Teà^‡)öqŬ\zh6˜#ßġáÏqXÑuV‰‰>UÎVÛi ]*çv/âŻLŜÁdEħú£“ħĉğŒ—=~ĉF`7 ˘8&²n&XµŞÍs;2Ĝjüì²0ߪ¤ĥš^cc a-4)f÷˘€òp,DÜÌÏ]Aŝì’§Ċz3ñÈ*e›m!5ÎÖËb‹„nRġĉ6tSÌsK[ÁöšĥĉO-ĕojl,,ĜŠÇ&!pĵMdMĉĉğ‘6ĴÛ"-ò\¸çšéE'ï×ÛÓ×ĴZ‚·“jŽ/;âŝÚŝ,‘$,ÌĊ }^ɟ+™T6Ó_Uòi—üĤ’ĞJêqUÉħ’_TÈüK%W•ĵ¨äĞJ+ùĵ’²’ ÈÍb¸SeĤÏ´²+ıéèş’çŬħ—]–Ĵ+ùŸJwgĜ×îç=³  §Lxx^ö{W‹N…h–LO„EeÀU—d‹3;ŝdbFmċé=NÒs+η2ÙOwħ5K2§°f)Žíz˜Ë:€556]šeÀ1_˘<Ŭòħ½ş;;­3œw·sܝŒ‘ë:ö {MOĉOSgS™×ĉfÔôô†B™5ˆ=ĤPö˘ŝ‘Ĵ£êŞÎĊœwÇ+yZÉmí\ûöàn²Gendstream endobj 272 0 obj << /Filter /FlateDecode /Length 6884 >> stream xœĊ][o\GrÎ3³OÉà0÷ŭ²À7›À0ĵ²Œ .#R˘ĵKjh‘´,ŭ‚üìTuġ9]ĠÓgHJŜ~p먧ŻuŭŞŞġÓİšôİÂ˙ê˙ÏŻOxîìéċí‰:½<ùéD—ż=­˙;ż>ŭòôĝeÊ*ëÓŻOè§ú4éÓ蔭?}q}²ÑĉìĊ_ s0˘³ Sò~ââä‡Íó35ym\֛oÏĥjR9ı¸y‡MŸsŒf³?ӓRٚÍ~Ġ9ë˜èĞÖ>l„²ĥ*ùÍ=vH97Żħms²>üéĊâ2_FP“ñó"~{ĥuÎN‰–Pç}š¤s‚%ÜA[h’ÂġlM„ıŜœ·96ûг­µfJڗ%ĝĦ3´¤:âßcÛäœRĜĵÂ.ÚÂnÊDV…°ıĊìdSÚüˆ“keCÚĵm#ԍqžJO0S;Oèsʞ:˛ÚÂ1MÙ¤Ó­ġS‚ÊoŜ—u)er¤Ċhċu 5À}¨´Áŭk´£ĤÊÙ§ {(ÛÏ.z\Éa Ş_ğÉjy†oĜ݈“(ƒD8ÂĞ6Èî-´ò*n.ùqî.é§ĉĵ_ÂbĉµFĝʧÙŬÑZ²ĈeÁ€:żìĦ\!o_ԕkÍÜ×1rĜĵ,dàê^ÑG›ìfW(Â)ċ³ÔA+ġÎF\êòù?+gà\&ÇÌ@Ĉ5E äħÉŝşîVYşğÊt&¨°vĜC' YyÁV9œ˙qdì`aÇsç‰ ç[žĵôÒĊaÜK:?C°ùë™÷@~ڕ{.ûuN CççËrO=°ûÍçñêL˜ròfósĦkíf'*ğ“ä­#[Ğġnµĵˆv|ŬqĥÏ:ÛÌنoˆ̊”m,$lıÉ TݸGß#°Íy:o7û·¸8? û33ÊĜ:uùû"A£Rnf^§‚—ĴıÌ|I3#ovċIJ30óË1á0ÒZ(²ŝÌjèúĦ'AWÚç)Zó8ş‚Ĥ÷^ϝ/ÛîßÑúɁ…&Hà€ĵqĥ­ôqŜ÷ÍÁX)ħ‰~œ1ġhËÇrQ)ÏnÁi—;yA'ëAµàÄNÚ`wCRĜ-5K£–ĞJ K£3Ú 0–;P,Ë귋Z¨KÏòÔ$Ĝì}F-Ĝh ûĵˆ(ÛH^4FBêÓ9z9rJVŜŽÎKi”V8ÁŠ9èÄ"žó)–ĥ:â ÄÊo)%ÀăÒó1:f$ŭBW3{äî@ Ê, €l9Fş`Ú )ÒMJݐ‡´Ğ‘Ħşnòĉù cﲨä4ÈìsĤNïpƒ›èñN†ˆpLËVıâàrhbDpËıwRxÖVĠ´H’ŭ0ŭ²a\*ŝDGY›ïZóÇÖܵĉĠ°Çá`n͛Ö|y6T:@ŜĊyuUw&“Ĝ°7vŝá}›èmkŝm7›´‰u³yӚÍ&  —yÍdd§œW¸~›máÚ^ĥ!ai.°öìÀn‰Ÿ„!r Ö9AYÄÛÎÇ`ژóóG!3¤ŝDĥMĦӟÇĠ¸ Âîäjgájœo£~,ïÂòCŠŸÌğ¸RŻÁ€h&}芠ùöä? í³kÍñġ²ħ¸öïŻ ŒAi&íŞ“³}şŻ#5ì*D_uuà2`ƒÎwˢé•ïLĤÎ$Ö ‹µ\ù%‰oPèè‰Ğ†ċ 'ǁĝ| &á¤f'çyaħàà˙8×ċ+PÌñy9w›n_·í+ëûŞ5ßµĉ­ıkÍĞa‡Áŝܚ7­ù²I’?n†²f,˘˜8{6o#mi_żoÍŻ‡Í?žÁ„l îŭ×'/ŝiíLÙÖ.†[{ۚw9èôêŜûߍ/€]Ö³v…÷ġü?ê¸áĊ^ŻR\KEj<ƒÓkò|i?´KÓ­ù§v/Úq*ÚÜĞĈĞcoıÁzĠŽ˘·Ä;ŠÖˆŜ-ú™ħÔ}kŜñŻ£S³zòŞ™„ü¨ "¤ëÖ@Ğkş´bíÊQ­ŸúBĞ•%Ú;èÈkPàŽÓSDH%KrŠöô{vˆÄwĊ"ûĥİĉŻŽÍÖ)Ş;/ĞbOÑŬtŬUó”u›_ÎxgèœpìŽùdäİßġòldŻE¸giċ)…¨³„ hzn̔ËQˆ% ē˜ÛF%÷—ŭ˘Ìúŭî˘XЉ[DûêƒL2{Á#êêAĝ˜ĉ%ŝkí!OÙXµÀÓEĈW§Î@Bè°5\Ħ ı“U¸>§{‚HğħqĉD"ŬhğŬ=í:˜Nĝî+"çċôŜ#˙ŠÎ1Ú ޸jÒùŞ’[b°'C^wĴXeR%Ґfwc ûzíàßw`ŜĦ˘Ô“Ö‹À&YRœ2ĉµŭҚÌk›†_ÙûÖĵ_‡×'7‹³RîÀÂYDádġȤC9bçYŬ4f¨pPγ ç ßáÈ>BD |҅Ù"DìĞtm\ÁìËfÇ1ٛ‚~DÊdj²î{%ŻĴ|UÈÈR›.xE‹vÀ&ŸĵÁ 8ËÓŬĜz÷ü3ܜ[š$ĉ’+lİıâò ħ×Ê­ÁO;µt­Ô:րê·#µó-ÛY1@ĤZ1ġûlĊ€ÉރŝëCF "ù9? ڑĞ5(„ù?T’ş@Ş @òÉó ]‡V:Çßs~œaŒĞN*cıÈËĉïŝşĜ+AĈNĜ,ŒQ9œrĠ˜‰-ġeeÈ$iċƒBÌ=’ HÈE0ïú–V”_ <ĠéœZĈ…³oîi€ÜEu>”ġzĜ43<Ù kçí<[ZÛħı7 Ôv÷éë4É'ÓÈ­ïiħ?P礋wHJ$/ ò ÑLİošEÄf>°·Ğı§ù [„¨·ħ Ñ ŝżiĈÎĜï!Ż._j›[fibj޽%axû¸#*¤ô×dÖQÏ£'³1È;úhŭëÚԉ3ŜĵJ_`K”Ö'+Xö3ÀoYUb şÂ>O=ëÙµá~ÎË&Ív|)ċ·*¸Tt.δç İ€ùÏĝ˘ĥMšŬ}ħфj`Áċ=Ӎ×tj |„Ħµ§ÜkµĞ6b€î%‡Ŭ³òb-÷gJ˜œ³aHB{ÇMZ8’o‰%h¤¸ŭUI”ôʁ:’€c§ÏŠ’ ŒħùbÛymÛ €áY‚Ecµġ<ĉ;8퉔=!Ȝl›ŝ~ıxMŒÇ8F§‰ô& (×1îŒ@×èzò~V Ër Ĵsq³ ÌáŬìµÄƒE½ĞàĥħC~9{M^zGŠ„ìĝqËÙKv*½Qĵp£ŽùoìRŠÏ¨˘íÓWĈgaE™„!A4ĵšħLò1˜éa¨Ê"V/=’Nŭ5R< ż²ö­yÇżŽlŸ`d °òÓÄ phPŬħ6q´´­½üġduô‚W‘Ü2żYl͛%QGÒĠB§·eU%ñ‚Ċ³Úb t÷ʘP (°œ™™ hföZßBɋÁ•;͌ŞÍKşÛ>·´3Ì_Y)Œ‘XĤw9KŠÂŽ lÓ%£Á¸Ŝ6$f;{áğÖĵcĈFû<„”a:×bè6àVĵf°tÛev‘ŻĴ@ĦŬY/Bž·ƒ9oÄ|Ġzpb+ĝÁ³L„Žĝì-Ŭ<ûoß1xŭkŜ‹)ı{ 8•†É„(işċ˘`8c@`Dw꧒ކ@f˜sBräc%ɆÓqÉŬKEP£ÁV†Óî)$=ÚxF$Ê}÷¸0‹£°°ÍykŠÏè`KŞ9zÖħœ:6ϛá”ï†_ÙÏ-˘UCŸZO΅üI+½žKœxÉω­iˆµ;¸ĝô„u´@<]RAÎŜĥ&ÓNw9ü:>›[, *„'d•k·˜Äy›“A×­É`ÂĞáRyÌR§ÎLu `rLFÑ\É-3ó‚Ĵ²’Ì@·MJ@ÈÌ1cÚyÏûgäEĈ†F­›2]—sĴ`tÔÚĥ`yĜĠµ4 ‚Ê–Èïû‚hÚıŽŻj;ĝ ~†IĤşĜ#­Aiêġٜ5q÷˘ŭp%IĉŽV”Uu=sñz¤‘íÈqRÍËĥdÊnàê­^şxäìç*ǂ7Hg |Mžä2 €ÀÉ9ıdÑLĈ4$SŞt/ş3ŽZEÀŝ^DžvZÌëĦÌb˘÷ €B#rnŽàt9Öô3˜GiÇ1Céa]ˆœYÇC‘ĉ'cr˘Ż›êg$°\ˆq²Äž˙l(2üm ?$qÁ­Œsi –&Ç4(Sğa‡ħ:8\I Ö÷$Ñ $Á&݆Kŭy¨ìÇcö³kQ‡ħĊ× >ë˘ĉx‚t!ĞDaıEŒ4/…17kdœ„ŭ7aϗħDÖñˆñB]ä;h*v˘Ŭ] W ġ•Ë)ΛқÊ@3¨÷ôY)5ùiÑ Cċ’ċçR’Œûi‡.ħĴCoy8ĥ :÷z‘% :˘oĉžèÖ9‡Ħ¤uiPJÖU†ÌĞZ2ĝ’˘Ĵ˙+h‘ÑJHj˜5FÔŜf=GxT 1oÑĉµĴĥ=üU­íħÖÉ:F˘cĥż …ɰ ]„ÉŠB„ï9.âê7|#ñކÊÚĴ9¤ĵHe-µvùúq, k‡ñî÷LEֈorNhŝ£bu;o–ƒždꗜħ]kŜĥ&CĤ~;lŝí’'‡™ÓyŝÖ܅X+ĴëàÌS͝ĵ|dĈ°tgÈt5½JÒĴ)ħöÇ @}h·ŝ´ Ó×ٗ¤bÏ"KQÔ{êhT‰ ×JĈ™+œ2£ËR+ñWJŞ$ĦÒ/žğpŠŜ›Bx߇S&pZ5jÀß#~é÷=%]²½Ò@ĴĝÙ+üS h.˜aĈ£F `ĈŞ’Y]Œh°)ËÂ\ò%´ÀPR$+ˈıèèa)ÖAċ-֋ĉĴ"*—U³ƒ!˙P18hÀOQ0ÀħB0z ‡²FħL”÷Ĥ&ıfżo„ğVcĴWÂ|uxSˆhĴVĥäµä޽XÈô˘˘2İÜd\}†L‹qz2=R>‡Â7Û›ŭ×YB{ÛPŜC˘bɕ|éaŠw$“Ĵôˆ­ŭ!—‚QRÈî-ĦZk$P Âv"ĜW†)#\v_RÊĝG°3\J_Ӈ‡!´T{^Ĝ¸ŻŞ§ŻGRS: ˘Ë’ÊzòvXWۅiĉ€tûL‡^Šž^µ#½;[rF’,;NµeZß°İ)K¸ĴŻŭ.Ô?Šá.=V .hd¸Ï§×ö"İäxĝĈMċ‡mF™[³Ŝ”l—ŭŭb?bÛëò&‚ÄWáˆ0ü>‹lXÄ WòÁP=ڒ[ÄÁîğjGŬĵš_9D _Ġ-¨p”³<ÖĈĉĈwœUĈ3żgáhĜ|ÄêÄË MK•Ì0ŭ‹şH4Œx:&7€™%T Sż,Qa-”ı ž62%ĵÓ4ċVKY:6†À÷j,Š…óe%•Z΃e„²ÇĤ­v,µ‰E“lEŞ&Œ·ہ4,ĉ*MĊ!‚Ëż?›_dqC‡lF J KÔ%ŻĈóD'ž/òІv]ê+‡u”ŒxÏkZŠq)°ĉ¨Ó\DÖX›5}ħyÊó6 E~‡ŠÙ(#³i73)üfö(µÔ‡™ùY­•%ġ0„ÍB“~D†Ğ4§ê/yšsg)Ħ,MĈ†Ĉۖŭ¸D‰–´İ Àž9iä}àĝâ{ Ġ²¨ĵ|Pî\W Iz` !½òšê·ƒ*¸ı0˜ÓÀXò‘-&Â6ÖáHĠÌhJqĊ5EK&EÜ6˘ê*ŞT½lÄYŞX-9d¤hìTÙY-.‡ĞœUĥ– Ogîe2’Ä3›-‰—9ĝĊsp†…ÚÇgŠœ¨NŜü½”5°rĊÀj™Ĵ‰ú(!ìüÀûx#ä'!Z-^°r÷G½Èb’ş‘ERŠÒÀŜ<Á;‡[z¨¨ 3YÎÔ§Uġ!ħîĈĥ X ÌP ‰ß™;rgżÒW´ŽŝŽĠ |ò ùe ƒù#s*‡ÙÖÌşZFŽ.™¨—ÙĤXŜ$—ëu´ŭùĴDşœż7ż2Ï[FFeĉTëÑsZàPíċ7÷x?zN=.*X àaE’ÉĜ@3 óñLjéAbeÍWÍŜ…Ù> é4wÎ;ÔC²ħëĝœ°×|IöÊ6èAĜ+š ÓPĜƒŸ"ÁŽà``"{žĜK›èìUL–˜Ħ‡ġ;ŝ²ĊdıüĜ‡­‚³WŸ#„ñLd&´pF+Wóğ3YKVöċ=‡`֜ċĝĠ‹“?œ3’ŝôŬSŸÔD³u§@{8oy;²<Y‡}òxĈO>D>Ŝ]ı? Eáŭ/PŽ9b1U<‹TÁ1¨)ž'`à–| ‰\Ùù1şb{¸—ù$à]œfPċ&P-<˜¨„TF—ùU‚Ì'Ġġ”`ĝò›&ö‘({û6ġw½ î. "£ċS?9°²*²ĝo ?Ĝ_3L‰Ù0V|Ûxtíéf$7´é!˘RRÓYĉ…ĥ,pŜé{ ħ?1ÎÑ&  ˙§×`.! o—/W'ß=‘aL ìt޳9™ˆż§W|j(@8=òl³X9î˙Ír{El|Çȝk3]qI+),k  t‘§h*´ġÇ)LƒÂÖÀz[N•]µ²juç³bœ̰% ³žµF<9Âs ž;#œ œğRÌGvŒqÁɉ×ì&‹ g%)2Ï)I͵ۉš ¸Üb=•]Şxä“Â…_17EïwH7Š#ˆ Y3r4ƒĈ#ilÂĤ‹ı˙ÏüşR†íK6ʑ2ìâR÷ ŽÖxZ‹[0Ğĉx5s˜Dm÷²2¤fKY[żÈ7ı"n[ıßa ö‘ÊVì‘%ÎĊ ñ(ìuŸ3n×hUáZèĠ3“2 ŒñKk˲a‚N, ƒsߗ–ÖŸîûôSâf½0•µòXÜAŬhŬK÷ŝYÎRs–ĝĜĜ£ĵ{yIsy—d5Ŭe…İ>’[Y %/Ç×A¸İWô+xKŒÉ•rd{ (öŸÔşéÎŞ:0.!ÏlÙÓ ½Ĥš_ZĦ–t&êÏʚ”ŭĵ p̟}T‘$żRĝ%ÈÔ#ŽòÖÈc ŝΒĈĠú”6c[M–ġĤH` ÑŞċ ĴKÔy¨ä˖ç!Ö‚ĥóXĵˆí ”ĥVó›bİc>#aYfÑ5Ò2ÏA ĜÊĦôĊ·Á׈Sœ]¸ĝ.e§½ç]m^… {;ƒ n“ÜÖ1j ÊLRòÑ­EöR4>fáñ^Ô5wы=}˙côp AâÉa˘Öš3×87!¤§Ĵ†ZĵÂĥ€i3üŽĥ+ŻĊĴĤ. 蜽=Ó;oïE˜Ŭb³'¸bżRÀ_ ż úş‚i½µ!,]Šz<ä2qĠÍÊ˙ğĜ*F0’É,²ġéîÉS<·G½`?˘ÖáÄb(ĦP]ê…ëĴĤ†IS~HŻĉ€ÎZĉG‡X:üċ8ŭ€A4¨½œÀ˜şämİ7úhĤÜCµâċ9ĤE€ħ‘qn-{û”U–°ŒÛñSÄŒĞşä‘AܨËñaÎĈÖ#Zš¨HÊ2(ċ\Ĥ˜Ñy…öO(díúÀíR­5N2û@ĈdoöDĴû9TCJ?ƒ‚Żo—8˘ä7_Ŝ#ˆlßQĜac´W(ÁEé0ê Œòú†Ÿ‹çK‘Ġ*ċÔ¨rZšïó˘ŠĈ %ûV#\£1ĝÓj4&-y@À"[°ğÁ­Pt³ĵƒvië‡@ŸÂžħüÁûñKşú­ù5j\p?äq6:£² PĞìjÉ<ÍÚħÛíxlÖ Iqd ôĥctñŽ>–?5³D$8^Q†ˆy58Z×½•Có/sɒĥŽ1h5°Ìñ+‡ó 3ĈŜÓg7˙}†9ÉZçùëĵ‘ĝ´˙­UKmĴĠÊHK›KÒŜIÈ­J?2ƒVÔár~`ĥ½)b–6ç*œüWg¤óíŒ/ïĤ{öÀ´;£´Á¤ó =ܜXü0ŝ]şĞ9q° ğ%Ĥĝ3³éèaÂ(ŝq’ÛyĈ ^:ĴQ*hĜ²ƒ#É#‡Ż”Í`ĥzy¨§è'ŭ+P8?&Á~NšyŒ ÖUDq+œ„Zh\h(uôt”P†ùŽöa,YıNJè 9‘ÇòÒ&×crÄ+˙ΖğÇÛŭ'1ş0ÁNŝúAF%endstream endobj 273 0 obj << /Filter /FlateDecode /Length 5200 >> stream xœĠ\Ŭs7rçŬÁrċa6ċKWœĝÊu•KtßäĞĞ%W"y"ı<’:YNċOw4°reKŠRzˆĊ`€Füúó·iÇŝK˙Ÿ]}ġƒVÇç÷GÓñùÑߎŭzœŝ;ğ>ŝöFX =c˜‚8>yuÇÂëQép쌃2Ç'×G/†_M&Ğœ.Ħ-Ċ¤ĴîVëitÓ¤ŭzµVJŽ.„á; …ž¤ĥ8À„àœ„ö4Ş ĵ^bŻ ^;\ál“ñA§ôœ•& oĜs/ĦÛ %`ĉhŠir“çͅéœWä†?–u)‹ğMÖòmlVҎÁ3ïâ~Òó²0öÚŬë•t£>,­àŬÊ+hëעF?üiŠûJ[d Ĝ­Ö0+ĵÁò7q1&ˆáżpĴŸĵxĜ]'„µa¸/kĝóÉàxÍďW)7Zƒ‡|²=„Yüġh­µ8^+3zkħûĊpA;uÊy8fzÏ4Ñܸğš pİç´n‚²bĜ\Ç5Ş)ŭéMJÈ0ܲCEÚKo” i›Ŝ÷ §É=Ó4hg`û@t|ŭwĜPÛ;é'ərw‰m'SW\^f8+„MäÀ;ĥjäU=95y>ó ÛÀĤf@œZ7ĵĝlËĵŸÏÒÈ`áíeÈCaöžżvċ$Ġӌ5Қa şŜuVŸüÇÑÉ?NhÓ$ñd•×AĤ5•'#§èJH`zm§ĵgğÀ5Š0Ii#Kx#%ıŒ@žÈc6ĝC˘Ñ5t²òŽg²™ü@ŭ+zÎÙs6èħ² #ÛÏ ĵ-<ğ9Cñ5^jGĈÀŜĴâÏÇ)¤@l‚5.Í-ùܲ:oŝ›²ƒŜJÌ$HĊ<úÇĠjmĴ†Ÿe#ĵı}‘•à†şí$'A [üÀ÷ÈPŸ“_ŝÎ,Œ1rxF“€Š: ŒvĴ÷-;œ7´* :exUÛŬħn~é)r*¨Ó@êhì'•„ÔeĜfÍú÷²$ĈôÛòÔefj ²­ 7œÇ7LµtnriÚÑèĜĉŭ—Er˜–fĥIÁyĞ´" †IʐVďu…ıÂĵŒà5 ×4X‹]ҊÀ…3 kCkR—sËúĵGµUÀTŻ…öŝƒ*êŬ)pĴG@ÉŝµšëŜ¨,á]Ž+_İWé ÀR'@{‹Í¨“9@ú´FòċĉYiĤ&Ì<€šç ‹3ÔÇ÷÷²4ïKóĦ4wŬÉîşoğ.͓î ĴyĠĜ "ĝ§Òu[À#‹{ż.ğ|Yš÷mó³Ùûóîd›no^™ŝ›ö.ĨQKG 2òí]Kzĝ–Ïóä‹rs[¨ħínöMižvOŒÑó´K˜½ċé.Íû²ïŻKS´œ…7rÂÇ"„›îcŞ4eyìì)êíMöÈŜeğwÜlĝĥğ°Ëînşd¸*+ïóû]w^6Ùy™Ħ˙ŠkNéŜ.UğËuÍQQ˙ƒ8ğĠéJ\€iÑj"òYÛfÄÖ¨X-"0Äö™i†ž] üĉ5sxĦ“ŞrjhvÒ½4‚t€´4 LJİY0Dï °_̸^i(P•{ìELh*'•9›÷ ‚`´­În‹Î ĥĥq:Ûz·İAı ÎĵWƒ C,á †ó’b¸,ú°Ñö^Ċé|’ŭ´ıWqË&XŽlv5‘éA xm÷*->9LÀs9‘S%ŝ*OħıŻħÂèĦ9`‹„hâ$‘@à£İŠÊo" >Ğñ÷`×b °!ÊD>a¨f¤‚4r•ŞaCè7hYc7 šá-¸Ivœ€ é°fí’ÂtÄa5\mÑsŭB’ òCàÖusĈIÁÏ£żŒ/t@`"6ìĊÁy4§½–d"s!²]_GzˆÊĉ<’„h’­;\ƒXY 8]öÂL1Ó_‰ÄCô>ôÇ}kwâN´N}:ΓÉßx ħ…G.úžÈŞ8 ]$ĉ†ÄKzpÊÏy µNfgKöÀv>½‘Ô}Ċ‚6ïÊA.J[#àXßx‘q˜µGҒÂY`Qvò}S…âbç1€|2ì˘1ġs·{²LC ħd+ŝI<Ÿû˘ÙÙl{îÉì=‘*KOfş£,Y\e#o÷>§µM€ħZT†gsSöÂH³ż[\çÎk|uÛ9lgHŬSÒdŠJK0ïêQ%16ƒµ=XŒ‘äKJ'GĦÀ—TÀB¨ĝCÒbÊĊç5PĜ1Ĵ™`¸Ân3á_vĝWôyÁ´ˆ­s C´Ĵf2ZşHQ˜C‚¸E*1iį̂ħ¨a"oÀÔJÊáĉœĈ cT”—ԏG '‰˘fŭ›(<“„öÙJÓĊeÙÍÍüÊt(`7‚~"QP.Ä)„@ÁÏœV-ÓeĠ"úĝBkO\•Gߕv"şçD—ÚaÌe>Ħg„$@Xċî!Ù! Ž^¤pÌ#*ÛĝGï5ĜY'2vz ÚĥÖĠ[‹m-íž2˘Ë.BŽŜ•ÑñÔhħ‰œR*Cz(eÌíŞë׳0ĈY_Ç-8è´+Xr{‰Ĝµô~k yE#%ҌEĞpA|—¸EvZ ¨‘£Ä6–†p•+^нÂĦŽê•ĝc (}Á¨íèD`´”MÓݽöb|:&8›íĵ]+l: ,y9xÒ!Ì~³mG½“Ü€—iĦ~)„É\4œÊCL-‰RˆÉMÒaùÀuœEfu¤œµ ˙ĠĵÈB€ùdĥ$†ËÓun oĈĠچ@5qIs X^)i²:ԗœ‡qĜ+Ĥl£ÂÓR¨ışÂĝ*¸ıR9™ @ÔĈç1F ”áU<Œƒë0>ĴaĝĦ½Œ1Lj;Ó/,şWqgۊĦ*ıh%œ,Ò˘„f À– ˆ°uTij£šœB>Çñl—úh0Ċİŝ ¤BĞXğDş,/Ĉ”@*ĊĜ³Ì‘ĤĤLÉ<Ŭ“Ğd˘P¤µ°x,÷RÂĦ™Ħ ñƒŠûqX>./yۗŝÂ3t3Àqœ…˘”¤=ĠŠü´pĝONH Ġn^ŻriÚmJÈï˘ñ£Ê³›èÚXi€[)P8Ä)֏ñmì…ħ§{8íLä¸ea šBâ_ÜŬИi‡`,ÍĤ@7rĊ&+ĤôCךĈnáĵĈµ,”R"/g/‡Añ˜`‚ˆšƒMĤĴ“Ÿ™I&0ƒMÇCìġçEÏÛbŠ%[§*İ„¨r âKPë~ËٛBƒş0“¤ĞötŽŒŬ% x50 ‘x‰˘aûµĴVÏÍçžBʙ+Şe•\Œ6<5P˘ĉü´Î…”hß_˙ma­J…fŒ²î‰.,Qxµj\Cj²˘ŽëOêŝ4™È*xd·$ĉş}Ĵ…ñ ğ?‡ñûÒûħ|‚çŬÉ6ŬŜ—Éj‹Bú½(§rYšĴÊìĦçëϸž,7ɖ¤ƒúšKŠĜg/jŝµN-!Ĉî*zjlŜíŜĉ¨ŭ‚3pn~Y8ÑB|Ù-¸b½şÛËfĝó‡¤êĠsÔ|ŭiİÚgK¸a‚Êd‹s­HġÉv@ñYn~]š_”ĉw]Zġ'cş²_ù˜ĝuš.3àżuÇì>ÖWzÛ2SÇ7÷Yéŭ…Ħĵ/²^5³VeĥîM{ŞÔ|Ġ]ŸÎLíîşÇÓgpÎĠŒêÊH˙ÜÙĜ÷ uġP§œb=mzß>ġXĤĈ˜}²÷ïmW?\v)ıoŠŭ3˜ìÍÏğ3Y`‡ÁdáŞ;à焜tùğ1ú/îkÇĈ÷ôàÇ:ݳîX&<÷ŬĝyUŝ²b\*TY9&ë|½%˘yá 8„ċZS ½R¨˜o~ğÊġN<ƒü›ĉ~œ´m”ÄrŜµ Ŝ?UĐcƒ.Ş&^ċTĴĊ%b`ìhIsá°ÎU{Ì?돕ì·GĞ%˜1AaŠ6¤˘äaâ‡8և:^ÂÂ(2DN^(ĝ½Oš4{Ş_†ßğqİ0g`ıKEġŠÛ›ħ1…ŸnĈÊ mm_—Jš(4ùÇ4‘N*oöc†ĈÌhmŒy?vVúѲDáa÷g)}äŞìB·\˜ÂĥµĊ§j£ħ_^nĵŻ^s;şgbêó ĞV›"ĜŸäĴDÛYĊ­Uì@XOX°ô˘=_‹t3“DŒ³=ñ 9‚J™.ƒYîùhŻb/& éÚÍĉ–£İ5ùšÔ7´•bµ=ŒżWìÂd*vY¨pqĴDu1ËÛnV̔"Í%!ÔÔ%ëx—("Zu”gŽñOŠürĞÂ*jÊtu5Ɇ×J  ·Şâ°LŽXŝ!Şş¸ñħkÏ{e^”dĊ{ÈĞ)GcxĦEO,bK+—ĠÓG¸¸/ĊžâYŝ… °@çPHL*û|Ĉ}Ħ‚|šÛ‡ëH>0!{ oş„ŝHMŽÀK*{1{-&³pˆÜˆ›˘OG,¤îù­™¸ ĵDrÛèap!­‚ı%CÁî,XáÄX텄ÈlœÄîĞ÷żYQĈ#ıŠïNŽŝtżJcŽï–żBÓ Żôƒ‚%@]y„úżB3(ĵK™Ĥ}˙ùüœäóÛ4ƒ"w4¨†¨˙ÉŻ×üDĥ >txVLĞ‹ĠċŞ8 ~_ d“ÛúĞôFÊ ûëŝ™=ÈÓÓÛĝĴÓ88iĥŸ3)pÀA93ŝċzP¸ǝ'‡+ 膉É}᭖;i+ò½Ğ=µĊ˜“xD²­öt€v¤­Ëù?jÊ焛^óŞ4ïKs,ÍïKó²;ĥ_’z^šwı)ÍëÒ|ŜlÓííß9Xϔ­…ŠßŬŒˆQX½ÛĞ2#\XĈ$üŭŞİtÙ˙JO,¤v²ĵĤ‚í„ M/‹.@Ñ}pĴŻR^·˜‡ĉ2EÏ ×G‰·e†îïµ²A*·Ħz—5˙ˆ’'gŠ€Ĥê\,­¤ GkñtĴhàáİı~„@{ü0 P}2ͳ47}'‡’ġk²Ĵ~ˆH`Ŝ^İUAsâ×fRs/*ħ‡ğkè%Öó6jßîİè§ ‹Ñ‰ŝg`żô30ùšçBħYżüĞëƒLti#C²ežÉÇĞÏíV ŞË‡°YşmÊM—=v mi ^j} ÈĤ½²L.JÑkMѕuıŠϧ†}PßäŽ÷ï8\uÉĝ [ĵŬ—?‚U*żê˜ XËŝ˘§"0&BĠkĉ î Tġé.x_•JîoXˆċ›p^ˆĝy]Qf#n ˆ_ŭ &€’€ßf‚G•?^Ë ŻĠ&Ó&’ó”/oâGşĝ=ŸÑ*éĞïvÜÈżÌ™3Ǔ,MÒϲoş½ïJs!oĝɞԲÑËgLˆûiÁœ‹í“ìÉşVĴğ‡'ŻşüKħ~òêO˙ÛîÒXz‹}[ˆé§~Â×]’}2úÎuO¤f騭˘ú2u@Â6§ċ˙ıô˙oż7ve™‰ü|ËĠŝĦûŠ~íǖħ K;3úŞû:ĥÊÛîĜ Aœb}†“@ËsZš_”fbmŠTüéèžç²+endstream endobj 274 0 obj << /Filter /FlateDecode /Length 6714 >> stream xœí]éo]·•˙öŠĉ"zÜIc$ݧM‘ £`HÁ³$Ën$=YKbċݟ³^òñjħ3˜/ƒ~(sĊÇċ,ż³~ż?Ġŝˆ˙Ë˙t÷ì•5û§×{ŝéŜû=EŬÏ˙wt˙Ċ!ôĴӘÔŝá›=ŝİÚWэMûÁ…u2n˙|ï‡áOĞq=Ĥћ †wÖj4>WЃqĈÑĈá§Ġ1zR^@Ğì¨ĠpŒ\J!hhk“LŒ ~5)ç‡3mt1éá5ŭÎk—†[ñğĝì•Q0ò 4Ġ8†1ÊĉÂpŸM+ 7e·eqW¸ Ñ{ıÍJûuŠ›;ŝyí]Y˜˜vûÓJ‡µŠ1-­àn ´mⵘuŝJ„ôÚòĊĥĞf²/Ĉ%5|‹}¨`âa{]‚RŜ§áşĴáż˙ ÇëFyĵĈ„µwxȇÇ{ƒ ĞìXĞöŒ[Gïñóp09lUáö­S@=5\Òöƒ ħ^(R*!~ĤïĴäò+ñġBì)N+L@ušlŬpÄÛH6¸|@Zi;li{z$ [Ċ1T2i8ÀÏ:=­ÓÄԀCÀuÂ9şasC$Ç!ĠĤtÙâè:+9çùalÎÊcQ`<ġĥC>.ĊĵŽƒxċši˜£ĉuGoĴ­†Û”Úœ‰ƒ~W˜ê×ÂÑUħÉע ŝRE P%H³@lÄ9ßñhW²XĤ‡ñ0;ä8£ħW`û! é¨ŭ]> )ċ´è­‹’ïŻ™xvLġfġĴÒ&mÀƒ`ò/ĝg \X’˳ĵ¨+%ÍïĊç‹Ŝ?ÄÍLğ?PfílÒL„š›f˜y4ÌÌ~´•Ïé‰à~ÉñŸMÊ(ÀîpÈqÔ £ŜŸÁl•ŒáŝáWĝ÷Ĵ6*ħÚdmâa4&`²`ç).Xuıdƒ`d"pÂ_áĊi}(Š ŻNSˆ¸ÔzT)ŭ.FLJÀSXÉ5’Ûˆ_“ĥŜÒqä§ĵiO0!ôNRq_–RsñĤUp ç„•lÏhB+ZÏŞ„ĠŞġûJ­“sšÔ*t³4ì×{‡üaˆ8!Ş÷Àż³pôJ G•YÏnÄ˙òW+ĝ9Ĵ^Ó1¸1X?ْqFáEĥ!9M‰{SĤyG§œ¤S‘ Á-Páñİç”rĤŒĝv•wċŽœ“żb-4:ĠŬżBݧŜĵoÊoŻÄ ĥ´‚сÙğ=ßßò‚Sò_HÌ,0Ŭp˜9_ğmbeÌRüğüh™0Ê8ä ä¤àà8ëŜWD/PtŜóç›ê³=L1ábm4ÈVg<Svĝ˘b¸ŭÚŬÑğ0é˜QkĤóµÈÜ+éV›cPim­Ŭ?½aµcò}K\,‹FWÈŬn âġ†%ƒĉŠ†ì PzĴh4îpox@*dMÜ,›'§µC˘Ġ,fĞ%´…\Èy^Ÿ Ì_ÎӅ,ùµÀS—]%×·eİBV/I&a)•‘†êš÷b`/;xŽ<°Nş2óö,ŻHy>ÚL=zĤZ§ÇÊ;,`œá‰°erÑEéïR“lž':)×Z—ÙħXY²'È,Ĵ6²‘ÏdċŜu˜§F<KóX#W“üGiûHħ1î ówċ`ö΃Ìĵ &~EÁ‚!ĵè…Hs â-ı yfMp×ìèĥpVm‹E›ʍV›ÂˆşñíAĴĜÌh î¸}¤Ĝ"4['oYş² v$ìä:8'£™RžƒB×´´ÉŞ6C@Ù~‰Š ñ•ï‹Ôû"Ğ aoİòeÜíšGĥ£İ"v'üÙ ww[ŞtÍrà`[„iGĊ¸lJ8DDVïxͳZ 0ê²y&ğċ[>Ċßyw HÀ¤î—x„ĦxĤú“cm£%½c"ĴzÂJôġİ ïyF„!ÛĂğ aôBŠäĵψ;”1Ş×SšQàĊĵ´ŸWΑk%lĉ%ÖÀĥá9< Ôp°µCÑ<ÇÙ0¤ŽĞUÒeÚĥü ÁŒ-tœ]İgŠÊ.L§0B4 ’àWCÎĝd€éQ›ŭ‹¨‡dĞëı–ê0°fZ áӄ*…ÔÑmĜG7'JKĊ_ÉŜ†ğ||Üàˆ\:P:U,—( §I#Ve_΅̎Ġ†‘7ÁBşgŽŭ„*öŸğÊ@p&żA‚ù„h‹ÀVš‚{"8LRŒàÌ~—<Ú6‚3›ĥYtK/ÍĊÁ´İ|‰Ŭd|œ4zW[/ r[ÔB?´”ïb·ƒìÙ5ğĉÎVı:Zß3Hlĉ|Ĵ°9ÏŞĝ¨42óIi~(ÍËÒ\·_f;ŻJs[š7òkÏÜz [ÉB¤ÈHâ€GOŜEşOš‘+$—‰°Uá˜?{UÁħ:ç1OŬ#cŒˆÏĤċ_—Ŭžt)ó47yÖíkw°KS˙u—ĥAQäĥñ'ğU;âġĥ4üэQJ.ĉ,t s››×yRšWù47yÖíkw°Kó²4ûğ´AĴŭƒìù=„Z["zĤ ’dÁx GfÂÓ ğHñğ wY™ÄYèkĈ}½êF§žklӔ’ûK…£G°/ğ‡)̄€­Ïĵ8ÜûÛא¸ŭĞċš‘ĈQË5#LJ°nßyt£š‘Ác…AöÉ)PëFËñ~h}šœĝĞ,!,Ľ} ìñMa ŭç ŞÖ.d“E,HW2şmíúŠtâN$Áû˘Ğï$X Á,@ákfd˙FLu$ÒħċU)êGçN(Ċ ÊôÉı\V…Ì.ƒ Ŝï€ı]@ÌéÉÎ!mlv›ž<&a”`˙`NÔ"]Ò´zĠKÓ.&&KûeNkŝ™cU”}ħšs—²÷óœŜy•£€àfU‰_ÎLZ•²‰Üœ°”½ħGE’^HÇ*IÚOû‚³ (ó)i_7ĞàmĦ'pĴ׈l4s,j:–,°ÈÎ8L^Óµñĥë•kp4Şd™•µ¨zžJ׸iŒŞÏ²÷—gğM8G§ ‘üı|}!ûv#Ĉi yĈ E [Òüà–“!ç0J1ÂŻ XKĠıÌc´êR!Ü C&(…'ùW8z! Sè;ъYô²%ÛŜx% µÈҜX”ŜFÉӞ翃r}r1‡LdqÍğÀʏ˙àÒ;8 _XE}sˆ'ÜÈĝòbòĵv~DUċG™jİ)…Ŭ_ böŸP˗„dWTÏ4!k <Ċ`÷DŞvœËl2k?C:Ĝ3Rè “U`“‹0}^¤â˘4ߕĉyinJóĴ4Żû ŬӉŝÊžsŜŽŽvIN2@cŽ*†„œd‡…#?­€êÈĵٸ܃ŭŬZi=ğ·ß8ŝyi~'›½6Š"M êS7}<#JÖcžÍeÌB÷Fêr’Zk·İŽŠ‚ŽR˙%2LXBq\R aĦ„Ħ µÔÀŞè<#n=?|YŠĊĦïçUÜvGŠ_‘´ç-’¨YàôÑz4h–ˆ[l%ĵµ•˜ÍÈÛòġĤÛĵ”ò07Ÿ—ĉ³nó¸4…/Dn[šëî×£v Äı·ı.MáĞ ˙Yi>B"z?;.Má$ßtż>ëNqÑ]äywá|_wÇ}Í>dA2j&XĈ&Úc,ÔÊ@іë=A+İıdÁ里½ĉìX͉|­ÑÌzĝY{ŽÔìŻĠh‹/Rğ”¸Xt4ƒLÚc ÒßżZĦJ°£7×üğ”ôBxRä X'„í×ü3“ê`Œ”VĤ^:"Z¸äíÁh÷몴-NħĊP³Nh2[ĜS a#QJ]vEŽ›£.ƒg)èRûmLDċğGâ&RG݇@‚À+R‘Šŝ°MuGLô+{ÁD›ıx½A/Š{”7XÑ·Íén$•k˘1ŸRD#foW\dĈFZhÌ^,Âr$.ŜG÷ˆĴ]7VĈğ|ÀEˆm)˜ĤÄfŞ‚ç5”̇E(Y>£UĉġD€>´ unO‡Ŝ¸•÷DTb'}ċĞÉL‘¨ïaùÜaAxù.‚N¸}S+:"/&Žâ×~h瘧£ĵöS‹:ˆÁe 7%°Êìhç42uÏĠ;¸Ĝ—ı‹Ş™…utÜÇ*^g¸jÏa˘N-fÊ|X¤:d0wĝ8“m ²ĞW÷ĉħK]“ÏÎ(|ŻĤ̐€ÖUŽX²·ÉY8ş;0ŻÉ.ĝJèÜ.TL³÷ĴĴ àÔÏŽ/ğH€YNêpPš‡y×Ċ!b0¨j´aïìöÍ~žáè!¸ĠÇyb 6Úè˙e÷ëĥ4oş__—ĤH;ĵY@.|ù<¨.`jHH`vÜ?à2D_‹E`ü·ùTa“Í­“U‘ˆH PtFQ †ÈÔÀ s€ŞúĞĤ¸B¨Pe)ík*3]Òŭ+WӍ+âwÎ)*àl>1kÍǚ }ĥYú–BËQîfIl*lĵ4{ı\*_2­˘dX‹jızkiMx²TH~%Ûĥ†™‹Ĵ?1'ƒ„´\ 1—|-$Ċyĵ›PMßĜ¤Ġ¨+ Z!ÉBL_1•×Jç2“ÂRĊìòíˆ)lôó§{·êė6Ż ÷žÉQùÌÈ;’•.LíÔVçÌá]zV˜ĉ‚.Ì­ËÔşˆV‰òŻÍ)ïƒ<ûz2M.ÈÇ÷:cı–‹W· ċpÁ:&ħu–ż˘l‹éÛ[˜bô&ë\eµà—u-W{MĤvİġvñ#Œ%ĉ…:­îœ8Í‘.½´°œ2¤żĴêšQğ…^uöžèƒwlŜL 6µÈeIô~İšaŠN”Bıp+ıŠ“â|*…úÚL^‘4Oâ’À†2ŞQğàЈw}‰„½Ŭ1ş&QsîıŜÒô³ĈÌ÷ˆ7,D½ŠĴ#ìcqq ‚…rĊVÒİïNùàtg@ ĥy È âŭèúz`™rĤ΋FI ²8=\@7CkϞzÄd½5‡ ž&.Çĵa²×<6Ŭ ÁÏ|µ˙Sn{âñÉĈ‘Vwç–†àÌ@£Òú†˘ġ½IĴğpĠĞÙé>-‘uéċzÚeŽu!ğ_yè—Ì&Ŝıî½$‚@ZŠŽĝ,3€rŭ2™œ§T눍T8ħS÷ÈWÒ€ß W,ĈĦħRµÁYòrvqäqÍó>¤żqÁ*ğ5K'‡=ù\5Ħ—BJ˙m×ÍĞWŒ·èĈyáCl¸îĝӜŽœ;ĉI"oÒߨu•J™nÔÂ>Ÿp£İ‚h"PSMİ×T$ËgäܵÚYrħkÙĵ˙ú;] jżߨšUéS} f;^ğ2jJíÈì&ÖNX yħt]şWäÍQtÙÉlµŠ„V43#ĉŬ÷‡&Ş{œÖÄNa ~EûReȅóx]=$z4Ú.ú{D:àŬĤGÜí^LG—Ò™GÖÊ!O•›Ç ĵÓğkĵTƒ)é°9ߎۍżú5h1Ókàżez`ˆç4tg‡ˆvM!6™´`HĴ\k`ì.ŸÔ¸”RÛä³Lj9@ÂÇ:é+*Ż•+鈙I’­Mĉ.S…+kmêÀ˙EßEñôYEŞ‹22UWa9|a#ŬĜ)6LJ£ĵ[yۚr…EĵjĤ˘.¨-P\¸NĦqsĉÁċ˙1sÎ-_Àè˙ÚçiùT"çİ9òj5—+üÛT£dIŽ(ßy]šâÊÀĤûġ4é6qn˙Ħ4_•ĉËî˘2áĤûġ‹Òĵ-Í7íld-ÁüPhҗ˙×ğ° äŞû3ħ w˙&ú—:Ŝ—:”)_.r”ûaĥÒÊUŝ48\ù5ıĈRïÖü ħâoU sO ‰H–ˆ ‘ÉXwżŠ´È˙WÂ,VÂ4 ]OOÈ<†™ñÉAƒIÌĉû\-¤_ˆ|Ÿeް½è+JÓ ’%ÔCż ñ£ŻôĊ5”öUwˆ÷ùO]ŝôü¤Ôžh6ïS<‚&ŭ’´ y.=R=DUİS?š#ĉĉg… ž"ŞÏğÍßTü2Ùw|ĵʂ‹û>ïJ‡ĉ £Ñ!H@‚ÉÈKá•*ġ&_(˜>Ŭcv+˜uŠf!Y/úöAµp°ež“/&(µìJà;nş%4lžC˘1 ĠĵW(·Š`57WEÈM~B}[’Żrà-ĠUÏGÁğIcœ}”—Ğ’O+Q—›â.Ónz;]!EÍ#­~J™ñ§d òÔtŞ–OŞĵ^Ĥ~UuÈù&Ğkżô† 6×èĥğ%ó&VaġÚġĉ”ïG,ĥï„JQ…*˘Â@\üPš˘aŬŭúˆ…nñ§Y‰Ĥ½7ß QîÍÏm4H2<Ë&_d:Vş·€ġáÊÈΜ¨ŠĦ•R*·’ùâ-ßYSìĝ~ìèä+…ĝ˜—xËĦ~Ŭvf•ÛùÀ›SĉŠ}ó"išŜjp2ĥk@—î) ڕG|ğ\Šj$#Ĉ&Ü÷ÊAî_ŝyĵ5%çÚ`ˆÑÔĠĈ—Ċ?Ċ}:*vï“n€?Öo›g;(_Eá“8ĤğîÙĵí“°²?v;Üvû×Ò\ßSĜ­£ ğëêMż޲SöÏwnĜÈ!^O’uŬ‡Ó¨.,šŸò¤XeW5D´?n­„Ë&ÍmĤUZxÎI½›İÔF¤DúoŻ4 \×ÖJ•{v}€üĦËd"o-Y¤ÏĤŬG "dL"!˘B3ğp1ı‚'Ĵ-> .4âò#$š^‹tòĉ*ùġ–ıÑĞpOùĴÙy}jĦœĝhGg‘µ˓zUôˆċ…ñ™ğ­pq2…N·ċ-Şc1îUÇĝ4pl;ï£aÎcìÑĠ‘×YÈêÇÀT!'ĴàRVWÚÏı¤IÚÉkÚ$ĠZkÙLM·1=FÚÓÎċmï&İ:F(^Bë?Ñ—Òö=<ıÔǘác’"ıG‡îG[Ş9Ÿ|͝O,ıN …úÛKäġĠ€Ĵ˜ñŠ·ô|Ì˘¤’alŒ°üyĤ”ŻôÊ> stream xœÍ\[“·u~§ŭò¸o™‰µÜ¨T*e9ŠmEĥic§JJ݆ÜĠ’ĉr‡â´Öŝó9t zw)ı’”ĜêĊçò úû3³³g˙Ğ˙>{ġäż ŝìúĝĜ]?ùŝ‰żžĠž½:ûĝF¤ovĊ{vñŬŝİ=³9ì|(gSœvĊdz‹WOŜüëÖìL1ÉOvóž5>ċ͛íıÙMĈ„ĵyı=÷ŜíĤR6ŸÀ€`ƒqvs‰b)ÓäàÙì|ñ9o­/ÙÇ´ıÁÙLÌĊmžÒeóNüî ^'ë-Ìü­1“ÉòqeşfŠĤÍïïqo “’ÜĈ~ëÒdĝÍ˙<›°ùŞ&–=ĵÜşigs.kÜm³‡çP˜żË›O‰‘ÉyŜWŬ˘ à°=‡Ya…$Ü21ħĜÍç86 oŻ`ÈdmJesl4ü÷Ċ§pĵÑÈġ~ڈ‡|qùdcËöâOOÎC°gç>îrJĝúk˜ĥWĤĵ~ğsĈyŜ]0Ĉĝ€”ú`w v÷–ĥR`§›çÄ ÉOt8À_··ûc#–?¤!ȸKùCÜmNÑožñVJ˜âfOCĝ‡Wâ=r4x8Ŭ°A&¤’€}›ŭ-ž_îùàĴòĤşġŜâá½+%ç´ÙÓÉZ€ĴDƒÁŸÂè<‡ñ—ôz2NêÀ-ò $ eOĤ”§ş›)ËŞ˜^ÓÙÂ&ÊáïIÌäAĵnÚ O£R¨½Ĉ=1&)aüÎ³Xàï³íĵös9Ç-m„è6×Wmßj éDÉÓ,ĈJ’žnQŜ|ò8†ċëkEÄ3Úkt%ĦÀâ{|róÁúY퀈÷Ûa 8ŭ ">Á ß™gYĜRèx´,ĝQޤÏ´[ż‹Ħ8Abë=q'ÙDÜÀ³Ûü™äÂÌ'î'µàŸ‹ĉ)H‘Ž<[0YÙ4âzI@ĦüŬ÷L7b!;ċ³Kd\p d5 2z.–%(êUvMž\єˠèıœSì9’AkQp´(IûÁÈ0]M|ċ·í Ĝ?oÊşì|B!#şáXQ€™½À]8s8I*ŝ8jZĊD3­‘/iżŜmÏÓvÙn.g“Êš†ĵeÒ:W¤L×Ë:°Ìş4Ëúĵ%8c6%€)"CJ v#…³3(=¨oG:ÍäCPXĊҖ&–ž(Â߁]ÚüŠEÔħäĤ|ùΛ?lY+Ħ,ĝ93½{ĉkˆtŜ‚Y€™„gúŞYċυHŝ£%°›=o.¸ÂĤĉ&IĜvÇżœ`´Í;”€wmEÍn)İŜ!)nĤßeïÚ2Èŝ9ĤäA§¤‚ĠD€‰thEf*„ác_²y+R ĊÈ;^ „sĴì‡lŝï_(1ĤuA–ŞÈ}Á²‡wMĜn1û7•\ÜħôT‡ÛĊ4\3EĈĈUġ­ĥ!šàĵ´5§‘uʌ=C^°àG0׳ĜËc82!@U§ôz–2süúŽWœ@tċܢúbž+½²D½ÛÍ2‰tû›fïچ…ÑZ|ä9ÀqÈÌô&òġ vû²Jµ‡Éí,×óï­Ğ4,ñK=APoĦ½Ż;í­JÏü*ĥÈì´Q yáQO%é#YL$Mû1@‚¨( ûĦËûĈ/-Ž Q`EÀ˜ ü’xĵ· x@1öݘĝ]C9Bĉ.]òÒÉ*Ì_e&—”Ì|A ]'ÛÀ:îi2$¸àóSmîµ›ñàô{½Yİ<Ç$€tċ´(yù|ğd†„Ìs™ ¨* 2‹û’0CŒ`%ÌyÓLëá­°Úr_< /Җ£ÒDÌ;@ú —ÎÉPòÂ>1jıPâxf$´@èŽìc‚Œ6Ĝ‰%0Ż ÓıyKnŝ´zt:rÇU&@Ĝ?ÂdzĠ9­è^É(83µµż i›_lçXZrúƒpeÀl9}ċ҇^Ë/ï›n(ŬDŽŞÓCäg2is’È ŒĠT`ÓIäxdÎzÂtç:}‚‡|™‡H¤Éü½<:`B”Ğh\ú ×rÊiNêF7mÈ*b{àÂ:ĥ’½äŸ%áÂsšîO á\ü+nĈÌı89ápĝ-eEĞ×̈́ôq…İÄ.K‹ÓĥDZ/–(wÑUd\òëİÓ=‡ÛĜ@•dÁħ WŞÀb9ï•.-ñĈÊ;‰E`âV—°K¤ÇĊÒ$ ×l"ïbÑċ#ûA2ĜĜ*ċvŽ&pš ”|ĵ]ÂIÉÏĥ§“ ħ,`%lt•nİŜI*ŸÑ"##àà}_|Ñş¤Íṳ̀,^ǎĵĜ´ż×ĉĊĊÖÉhš*W–b/'ĞԖy'ÊëCˆĠ"†Î4}Ú´İ"ÔP˘ÇéAMwġúQ7Qšûòµô‰‡é4‡‡é~Ŭ0ĵÌòpFĉ°ËhĴ uİĉBıÏÖe¤ŝvM´šŜ†(&Ìk?Şĥ@ëe”Muñ+Ĵä‘Ğ·KÓ,G?²œ”ŠÈÄÚ'um`âäÊzyoÎ#RùŽóˆ@D‘ħƒU/ìECXá•>Ŝw-‰IòxÉĦ€Ó˘ /yŻLïOĴŒpÀ×äá £ÔġXİí°]ȇü’3Y ‚J‡ôä D™ħ+ fÊK7Ù,Çâîñ9ğ2q—ĴÍU'¨½ Şŭ‰{ĞYP1RY̘”Âv‰Ġ-­”yfêáh8ÔXŠtFóöDoĈH‘ŜŽ ĉßxcˆ  .+‰Xl²ßeĵŞIñû™şı˙?Á<,I“ÁĉÖÇìO*3“۝—G9ž<™§Á[€Sp~ĥ Ĉ˘ħ¸ġ‡{"9 ÛÓ^ñ$ŝ MžÌ‚ ‡–DİBïġùÓä˜˙Q}WûgÚoàd…Ú{ä–ÜAñ?Ù¤ĵ ˆ.׌qß:Ğ.ks ö¤h͕pLgpxZ:k8­) Pï–ı)S#ÂpB‡Ü³ÏTSú#veÙb#§ĉĊŻrñƒÎqÏCV#•³@Q8ŞzÖËĤ.ëep˜ü§Ĉ^´8ìŭQYžŜ"ÎêI›¤‚Çß°-’”Óˆ¸˘WÙ Ŭ5 ĥ‘ùV'ĉ`f$ÏŜ"ˆv].eMQħc—„ĠZÀĞ-ç7­tž§EŸbͤ“€FÀ´qvIuœ£Ĥ‚|Œ'ĵĜÌ 8*eڇQ?wûëé¸=5Iu‘7Ž?]ş„u}¸ċŭ ϛŠ äÀ‹MaÉñÙQok!³FĵÚÖPh\I¸3ì%‡XBvqMŒ˙$oj3͍è–Ï_D˙Ï<àQ×[ĈM igĤE†ĈĥρU•ıl³ŬÓS°à¨ƒêÚûžĜŜNğiêA§êäcû2Ċ‰\?'@ƒç–w´ ï[ÖğŻÒ-mÀ:ğ@·"Uċ—áÜŝà³)+9ŬĠî]`‘A)­„s×ÜKäÒ·³ˆ.1Ġs17³È¨yŬĴ5³°;°:{ġĦ-,´Hq÷ĉ]'Ìl?×ÇÚ[<—@e“WOş{e@ }òËà]78¤3‹—o’£¨ĊbG%†÷oâLµóKd›™,^“ˆ´ Gh"Ĝˆáa V8š\ħuÄVF.!҉K z/™ëöŝ•.ÇÜÒ:Ĝĝvğ 8ĥ%‡ir!ĵ›Î΄/Ñ?X“r.˘ißüüÄûFïğ„ všò"Á…ĝ™ÓËdΆ½SE‘`%päkcĴë <×GëhÔß"†‹{ĉğÜ qÒ~Pî|5é³m}‘ĞÖQċ·kƒ߃W3/ aù™L cÀ:,äWörÇżÎ&e&Ż…J/eèYƒ{ÙJ˄٠ñ›÷sH&3‚y÷ş{‹ès½6-Ğ *ŸÁ,8³Ŝcˆt1E—Nܗ+‘ÎLA™ŠX£êñĵâ)" ĉ‰ġĜe6ž¤ĠÉ_ ½Â``O“YÀ{’QDEҐŭ²i‰òt‰ûïxĞXl˙’$<°ùŠM½W<•3nóoK‰²% ÄŭŬ6OIzÙ&³WGž “V2Á6 ;ó]İĥv3+×!—ƒê#| òEóf¨À+%İWĵUÏMÊĵ Uµô•Ë9‚¤ëlTİğïbŠƒ3JĈĞöŭ*Ċĥ/J`j0ÊÊù-8ë.Ĉ)b•÷Ò·ÂÔĝáòJâg³`nASŭ7LàħƒU=DìC>m$ú%âXĤİy&ˆ×K#,0';1ĵöƒî[ú#ž‹kO—;~‰É!qûK°¤ğtÀ”œÌ ux* ˙ÉŬ=Ҍ—üCĴݳicŬŸSɏ÷‰ŭKƒOCœ´+ÎċJŜ7Û&Ĵ¨^›ë.”­^–+Ĥ o/IK{܎ŽXz!n y˘ċĝvĴܗÌú˜U^`/˜Ùµ>{CşÙ_eŞıµaŝJĞ‚Áäl5aè%`é]{ Ù4h!@£ĞS sÒ[÷&2+”›Ç—(3ô0î6;Ŭ<ĵÖ4o[S*òH’J~] ¨èdñ3’ĵU°SQ6à9$KċċÏêjJ$`1şK#/ëRÉ;Qclw}X5“'NŜy!$4m‚ŭ„Hc齘İëJÈÉÜy°482[vĴԂĈ0çGħ¤\ŬüIŠüRL—GV`1ş1·ohíi“KÁ‹ÙĝĴÁ°ÇêŜAùĠŜAYäögĞ/ÜBdj §ŽÌYúezĈvŬQ‹‚O|Ħj0ÒBìE#µNĠÌG,C Q â|)† ârÄAltÁE*#tŒ·NUškEüÒšM3Q.ğË+ħl˘‘Íüµ…ßÎÉUߟ/İɒ%ú‘€WGò r+á"ç˘Ë˜péĞHbù-Ĉl×W͚­˜ZYÈä2UwĉI²T:ˆHÎúhuIGĞÓĈ ³ġ²…ìŠWF3˘c8|‹,‚¤÷Ûdzb}yġ"âJhÎÜìîAÔCOİL3•:‡;_ H²‹Mtt6â$}fB֍Z-cċ‡îu˜I>È<Żpbr+˘è"cĝ“Ûc•|˘TŸ/ŭkÙ÷ßb Üpk&-¸û€ĥşï&—tgġDe¤rµyŒk"&Fù™“‡ŻĞ ˆ‹×œĈ6Ihİ,Ü0S‘ŸÌi’ĞJ&òR·"ôà[Ԕ‹ĦV½âĊlù7k y{÷|/çió„+ íšé0Ŭ•ôR„>ĝž‹ŞúwóA£I˜ïĈOÍ­äĤ…ƒ’C\ mGCĊZIÄİQH%ĴۄóĊÑĴu-7ëq'Ú5ÌMtĦr-›Ĥú=—ŝâ4ĵǓ{.y 2”·mîkžciı¨êÁ|£Çëë>C%.tž&W³ɑÇ2ĝl­üêWSx0O‡Q™Ò)´”š³•D7‚WÑ0)íĤğ*ż!6$N(f™=ˆċ^ÎóŞ otäBŽŝ4mŭr+„CĤ³?щ›~to­kĴïòŸùvD, fġk2ˆÀ[jĊ阽ĉĊL0KŜÛ4ŻB·;&DÁċ$żOQĊrŻ~1ŭ{ÌĈ`½C§ŬĈ_ìé­DŭDġÙRRagİ7@!³m¸ˆ=ù‹³”?”î0VÄóǂe½Ĉ˙† 7YWÂÂ/ x·$ÙÂä³ĤğÂà+ŝÔa´ú1#>,Ö˙X'1îÑE˙Kž/gë>yZ]”Ž ħˎĉŸ›•‹ˆ'ÑTÊúrà§Ĥ…xĵ `ÖħàÔÇ7íñE{ܷǛဿ 'ûĥ=nüħ“( [pZŽŞScmô€)~ü¤bêw´^ CóúxlLĉ„Moڋö¸o7ib²oÛëö8Ŝs;ħċÓdJ˙1Ġ“D 7#ŭÊR·ğĤñvħ”ħñwş„7^ïIÀÙJQîgċÖ²XoíŝuwÙI[@&=Ú0qyì§izeCÍ(Š_Sè{ò8ïÍ#ĠµĠŽç†'Áo ŭ¤ë÷x*ž.-ġ8Ğ–[ÏÍàrÚA@ż·L Vô÷ ĊÖQ ùžë̜ ÏS[AêkŜ`˜ĵbâżfÂ4yRĤêğşvŒécÖZ”ċċèsŒN ÄÓڇd]V¸Ó•%7T_çM­ê†ˆáòD5ĉVèçĥR†‘ß|“ı#NlÌ_ߓLà CĥÀ?l´:ŸĠ_.bsÀ|†hŠàN"T˘"ĜÓê]ĵûîD(ց/ßVÁïf ?Ó¸Ĵ1ĠŠÙòdĈ=şd†;<­œf‹E˘î ŠšúOéh´V)תpOqœïzwùVĴÌŭVÖöV>I7Ìiu‡Pñ.ˆĊZÊÍR£Öà.çàÂŽĊ/İúÚê§ĝS&Ŭ}_Í3?—CîŻRVÛ'ÎGùC.Ò7÷÷C`ößp;Tö²*9ˆ—áç~B˜ċ¸ô°/ÏŻŞqˆÖóĵ@œÜT‰M'HD3@‡ŠáĜ†úuÎ6kˆŻwòġò7bÄĦxĞ^“v”Ñn§˜ĵŬJ>’$YCknû’;#Ë ¸rşĊáñ›— ü—rÈqË_÷EßËr/× âĦŸ*ï‘òÚ&†‹‘Ž>ğ~/éOĊ•-•ef#@wÎpŞ×âɒÖÍQ³J\&‰£ŸÌŸ^)ÈĉuĠŸÎÒbò%%§Hó‡!ÒÜÑcÌy~KoÚĦ=•oGWpÒÂżŽ%EyiûĜŻœÜÁğú/ĉü/ŬK;0(ôárRŭ–êé?(Üàşxu‘ğdcƒŽÜ#ġ}¤â/Ú=Ŝ üe8Ù·C+²ıĵuíÑDî[ê[ú][éĥ=ŝ?Û-ÀS&KġOËèµËMxl„.à“À­6Ğ9ˆ}{|Ö_6c.r×ÒœGçéCëâŝ‰ö³$?{rñ_“ËV‘>Orüjlo?i˙Ġżhc˙ÊÔĜ]§R7‚ŽÛöÓwíñĠpĊ_µÇ›!ÍGù8˘öèŻÚ/.Ú£Xó·íñ÷íñ×mönĤ? dż˜ë—íñ ì|2œë³á\n4—ààçíñwòĝÄ´£-ĉG2g ób8˙݇oż†’GËë~6> stream xœ]O1ƒ0 Üó ˙ ÀbĦ C+ÔöÁqPœ(„Ħż/ ĦY:ߝ|–ŭpĜFcpĝ˘Ĉ²´ş- ÁD³eQV -Ĉ“ċ‰‹òBöwċßO°ÈüĦ’ÏŞnòŞ> stream xœM1LQĈßÑ"kQ´“×òÒ RZ”3Ä(ĤKµÑĊ‰äÚ>MÚ^s<<›TLzŝÓĦ)KEGÑ@BƒK] …¸ÊbxŻy,°8|ùßô}Ÿ„ì=H’¤PäñË`à<ĝm‰Ë=ÜcùìG;şÙëAƒÓ=g·Ò.pÚÀi˙ CÌşÁJƒìÍuÔ+Iú|é}3¤çòFJKR<ĊAEı7†ï ~”!F*fqDI’QiÒĝ…OšÇ#SIJs÷ÇÇMÓôĞ™9żnhFǰ™˘IüœÌIà'z–â§j†àËŝK é™Ü<%Žè bdsŞA²i2Kc)Mğ€‹Aç„êş‰¤w ›$ÙóxÙĠĤŬ‹ċŝğM‰%Žmí¨|öÓ ËVĊŞÎ~ ·Â ‰ ĥ:Í€ğ­o°SĤ°ŬCĉ;:ÚŜVĦUÇJ  ĵâDìû:3Q ùŬÁĴ&öšô{lKĞ+G£+˙—òèħ–Ċk7pOcQc{ĉ'²Û(Ö-(€£ĝ—–—*ÖW­n Ä&Äê/q7ˆuMœ EìN ß䤪ZeĞ eÇâ¨7*°ĥĉe'l˙/Ÿ8\fóŠ,ò͝ĞŜ{^wöo֜Î!ôŝŽŬdendstream endobj 278 0 obj << /Filter /FlateDecode /Length 7597 >> stream xœí]IsdÇqú}SA<×ĝâ0-[AÉ -‡¤= €˘1¤FżŜıԒġ̐”t1 ÷PKVV._feġ|ğS“Ŝ)ü_ùïċŭÙżüÑÙŬÍéLínÎ=Óô×]ùÏċŭîó—)ĞĴw/^qW½Kz}œ²ġğ÷g{íÎ_ü 34vaJŜA‡Wg_ï˙x&ŻËz˙ûó 5İœ\Ü?â£Ï9F³?žëIİlÍŝ żêœuLüUköŸY[•üŝ6H9÷ŻÙĉd}ĝżżA2œ$#¨ÉĝJÄżž_8g§Ä$”ya\“tN@Â<ĞMRHυ‰0·ÑûË>Çŝxw~a­™’öDR€ŽÎ0IeÄÂg“sJaM´…ĠDV…°?áv²)í_äZِö}„²0Sé fêü„Ö1§ìħñ8ûm˘E.ï€Ñ¸³9¤)›1*ÁĈ?^ïŝw÷Ûx-=cw.Xĝ‹Ŝ9íQ4Ĵ z2 7f´aŒ À†Ŭ½ĝÀĞ÷S$.1êhL Ÿh°(×Á‚xckàOrŭUY&ˆ^‘¸}ıŭĝ Ê[_‘żċƒ²(żëÔ->”w‹zġİ/Ĵ.êê˘š›ŝ^è,︰ñËŬÙ°ż²4`„X Qˆ`­qäÍ}˙`5w vÊ8‚v“ÁF|C`m…/.—LZcµ%Âm´Ü2ŬŜQ7‰*~G{3™Ŝ@e°-ŭx\ż¨`&Ċ“:—_x)ÌäÙê^ŭ,Ĝ Ż-/NÚô×Jİ.Â>~¸;Ö˘ŬÚÚëĥĥŻžAIfĦX°§ğ—à·50°ĝš4` l,j§/Ŝ{Ú!x‡ÏĴƒSaw6;; \ŝŝW‡§ĥ%_>Ü ˆ0i5ĝ‹Œ1`€3ċhJy ´ô×ĉ!ÙÂŞdÚġ îµQÄòhkÊ˘‡Ž€TlcÖ÷2cíP)‚)ʐÑä€ĴSĥ÷Ù.Aœ?Íu='B(309mv„&£’Á4hŽ]Dİ)O'Ż£Nèl`üXžwçĜ"$ÄĞâówׄL €>·ܝ#tĵ„˘ÊŬ Ŭñċéhú²rgíŝ$ÇxêólLùjµĊkP½²ŬoĊ³\Û0RM c}J|ŠG­“KĜ_|ĥ;{jJ†MÈG?[ìwħĤ;AÛ;ħkAÏiwŜÚ<­/\Ĵöĝ|=4Y.ĊÊòq\Éáêêúj÷tĞq°Lú¸Ž[Adñé‰ÈÍ0ï@x~d€ÀğżŸÎ[XÑĦ ÎSˆh#B<°)“ı#ᆕ^†˜-ŻÉàQ [k­#zr1+÷‹^Ĝ&Ħ·‡Nĉ hò1ì–ô{ZĞÙݘ 6<îÚğöäÉZĦ‰ ˆA2(³‡Àm ;“cF ­Ż´‘íhíM̖@uħ½—[Bô(CÜdìÎĜŜgĞ@£WOu…?Êü Ŝ%tŭ`L›ż/Y…˘qÉîo„Ô.uëŒ0xó<ӓ†ÙĵZ×߯Xgĝċ‘ô=ĉrSàècÒv6‰Ôú÷Â^üöZŒöŝ$ ä”ÇcÀñd‡‰‹û3§5fà 2ïvġ=¤„!fíhiθûÙë |x7ˆċóÎ&Ĝ Ôßút ²G|¨C²Ök‡Jt(C‚ws$‚eÊú>_ ĝ§ş²%ĜÛ%OĝM"ÉġW˙#äúË*Z³Ksç,]Êòċ­cE8@ŒöŒpJG{ùĉú9· ‘h^öM•é씳û÷ßœŻ 5 ™‘í}ë)ÊÇ×Ŝ5ĉsß{#¨÷>$ êFµ÷ş÷½GŬû2f{/sĥ…ŞùÁ2m~}ŸŻCŠġ§·ĥŸ$ĜÁB,èò?Šdûàò½ï‡O“îğï­‡…hÙGıû&jòïu÷ë{ÙKÑ£ìv³½—9[BUß} aħ6gyŸŻCJö§·ĥŸ$ÙŜç)ĈôİKv‹ŞDÄA÷ 4ÛwZáUġ€lVž(EYCbŸ˘ÇlM ™ë{ Ş{…—1Û{™²Ċí…Ĥ†òäl Ûûl2½İ­ì'%‚C1?'~N0üŭ Â܀Ñ6¨M)ÁÜfԔújñDÍt4€Ë½ÔI<È İëdyo:Y;TĴ#ĥ÷2aëP(ê*é“ ĝßnÊûl ÒĜ|ZëúIĤĈ‡8Eċ65?›š5S£ß?—‰É1~4§•\&üIÑQäZcJS_|@íşŸw*ÙN ê‰êıLÎö­Ñcŭ„ „´´ GcĈŝfAW[ӗDÇL0=ö˘6tHŒòsŠıòß3N)2Ob1 &…"“ ÀÔ$Ljòjc“”ÀÒ$‹§t÷óN$F  é ħÌ*=H½#´ƒ˘Ĝĥ|éQŸkŬż8,ê!‚Ĉ^² üĊÙEäaƒn­9Óù#ˆ¸`E~èP&[´†ċ;ŝ‡ċ÷‹^ÄE>8×!áq·$Èbš–8”Y-(ÛTî)ôĜħpĞ$ÚWÛà4MŽÙùœ¨ÉĜ Û 5ĥ¤ç9e l :ŞĠ ƒ ÎŝLŝî×Ĵ“l²Ür˘Ñ‡°ÁÚÙ¸óXO‡é*0 ĦÄÖż;o‘uñßT'rQĈšä {Ĝòy£É?~S|WÒZĊâR¸ŭƒx> GÖä1͑cÏW‰i,Sk&›|½9‹ z‹éôD{9äġHx×Q|%™Kd ˆìŒÒ[ÑENqzZöF<³ğ-Œ½—™§>h´­ĝ=H§°ġ‘ËÏşöA(0^]<çZkçBĈ’:xÏ:ï…m@íĵçÚ¤äs(jÖÒ9t4˘&Ĝ;£ĥM.`ٚPĊxUÇk{Qr‡` ÀUŠĵóÑşh:à[ïó ‹Èu'6†ËÖ´üÈĤ3¨÷)LDipsÛ'pmŽŠİ|RèoŠ`0bžÀ‘ ĝ1çxÎÒ °ÏTCê]Ôħ€´Êg}ĥŠżµh\dï„M+„” v úĉĵŝvSöHÖ!ïĤàĤèŝŠnÄŬXˆĝ“ÍoV`Mì^„e§™"â½ʅ((É` äJ$ƒ!½F;”GxKBfB-€ˆ  νeB}˘—CáŒÍnĉ›ħ8&›5LIY›…–fʚ1Pq3r*;(Í‘6OÂ.#á}ÒyŠA 4İu—âùpĠƒğx2˜yùôœ(šÇG!8„4Ç·M1ä %y übT£ĵ\>Gƒ:[|óÀSz°AÇÊѐ~‰u%zëşħ,C„‚(ğC1ÖR@%2[‡Ë îvCT˘Ĉ4ĤHICĴ 7fïhˆHıŻĜÈu-‘hgî2o(Ò°7Âf!Ŝ}ɞ vTĦ{ŽĴßTÈÛ§µĜH£#Àrá­ĦĊäƒoí" 4PlĠËVIg³@LÓܧJÓQ90â0İ=G4Q{e°çïşR‰e# rÉz>‰Ş´a´Lòû1½*ÓY­£ü1˜Öv0ğNxjFâżÏ^üó×hcœ×H—ÓŠÀ— ÷¤Èj“‘2á`ŠĦR1A ġŒŽŠŭŬŝ3sUœşm‚Ž÷ëÉoŒv™MĵÖM<Ïáɰ!XĥC¤‘y9hİtĥ82ï&k%MäòF&pcÜĥ$7¨H1ĉP6$èĠyc½„QìĞ":ıaׄÄH‡Ï£Ċiƒ›£b(Ò)ÒÖBlaÌw\ñaÛ˘Kf¸%÷XH´:Ğ"¸ŝ1k;;Ŭ%q?Ïr‚xĦée!ϝáìÜ˅]"o'2êI¨Ğ>#˘˘ìù½äbKÑë9%“4HˆĈO‹S›z.q ¨u€DVrÛû‘[GgnGVzċ‚ò´[xQšá˜?ܰG‘ó  é@Ċ[=oĝïŬbȑĴvGY['mѧÂN0ËLÖcŬDN3ˆ‹ù½MÖ³8ƒĈBü@˜$”9ê Ĉ¸ ÏË<œ–VF€“÷Â7Ż[­yĈÂ:€ŬFÏs‡œ…i~VYĵ'F;”‹}ĠğnÍ8q™9çŠ?[ċ[¤/p:˜Ü YÏı+l–Oú ékäÑÚݎ§‹XjƒĊçĞĝKZjöckĠö‡-A#fH*oN`w r׏rEó=s*İ0Öóêc(!smpDĞéJÊ ‘µ MK9ŒŞÌQ:í™[‚NmèĈ<„aÈ‚Ÿ°ċ·<"ŭ[ö)XéììĵíÒ*3…9qyß SuŭĊ"ÖÂ4""=ŸLı¨Ä~Bžä§%ìP”ĵa§öÈÏ!ğQlšÈ~ó¸ÎĜ?÷\Cé CG™]£ œ7)1ç5÷=˙Ŭ™ĠĥĥxÄ[ÇIkpŠŒfœ…ĥÜĊÇĊ û+›vNĴO*ÌŜȘ @7F$ŜÙċ~èÁ0Îr+ ÁQ È5‹Ŝï “—=/‡{( à„xYA°Â5ßÀƒĦ²IyXüžRDù0]ä9ɛRp+\Â=ŬóÀ €n[G_ĞĦĉ"XÖ'ӁRcJÜŻŒ“ónC(Gì:ÖÈ˅i ü‘DË_2úË6èµúĴrrÔĝ°D)$ò ½§óäôEjòŠżz:ìZEùnÏ°1 tozü;Ù×ÄjbċB9Hé‚sŬ˘v~T’Ġ@b†V˒(frž!C'm=^ ïbOĴ.?:AÚâ"Ĉùƒ{X- ‘`òş¤·}Ħ ›)ĥ ?‡ääš)ŻX*W„Š]­úٍ˜à‰"ŸĦúˆĴ(ċŬ\Ğ3ôy€+"Ħ°œgÊé)чö³³nY …I¸4F#—Ŭ‰?ˆ–yżè²pYë·ħèŞ˙HċÄtbĦɇp¸Áb%ŻHÑL²E3"ŸrL˜<^˜Ì ·~Á’BµİœĤž˙˘X>âċ˜Ċ†t7ĊĠâ(g×ċQ0Ƚ8sÔwtÀt”ĦRɂ­ ‡÷GjĴż4Ż'ÒŠJ 9Uòì˘NaŜ÷ŻU}:Ş6/9 h+AĜħÊM™ÇD°è‡û>xD<·#sв!"˙Vv„ĜySĥÄİLò³’8†]ĞÇÎbúaĊdìNL‡?˜_}}Ù¨8äÓOƒ½¨úÇvĞÌ-Ŭö÷BĤ™XĞt Î+:ĝ[ĝ^lbıh-Pmëbĵžk…áA µ@v˙B|ĉZ- HF‡A?ì £-˘¤ÇBÀ˜Œ ĥ„gQ,žO1;”D%ì_cßXrhtĞ û?ĵ_ĴÛÂpˆ›¤zD%âĵ–ĥ]Ġĝù!‡ĉ%ıHL+mĠĴ³çˆÜk˘†ÚÙyR Ĉ¢‰–Ah!²Ò3*™_ÉT ÄöÉHáċyf7BۊÛfjÇH DB°`Fİê1¨îÙ¤96Qz&¤²5Íqüĵż*;4>ñgôóSö@ġPP£#Ö {r3ÖˆŞ!ïÏڙögçeżŒ˜„‹KüËlˆÑNÌ1Ċ›L25… D€ĥé Öċ ĞŞfÄ?Š9VğˆJĈZOÎn€îêÎww^w•ĤÑŠá"•eo ÏoȑW³ħ8áµ aIc0›˜T˘Ŝk낙ÌĞ+kebċĜ &¨JùfĜ,ŠĤ²|‹ÀKhÉ@†ìii˜Ë$첈™;že&>?9À™ĥŞ2‹Öʗe•Ú•55‘e³3{ZƒĥŸxáG– Òb´}dg…ÛĊ&°ßÌ3 ké킈ʤ yï,†İáh‘|&r”üQˆ†ĜİšQ—*¸à¤‰/YĜ›ħh°ĦHQ &’[ç<½h`ĊûÖĞEÎıi^]_cój\3ècÁ•4tA˙Qż{üĦ˙ˆ‹Á“ „?=ċĤè-ŭ ımż/ŝ˙Q,QX_ŬÇûZ²{KĠ¸^&QDiS-˜ sL|ZVAë½8ñ‡ċDڝş‰9p˙<ü}qjÎ-şe {=Ax* µ}BéŬÇÙ¨sè'àoĝ,"¨ħ ïĥó˘u+š¸ċŽ~YI9œŞjÌşùİê‘E+ „‚}¸z‚ğ!ä.‹ úé)&3á>‘.QUòf~âÒ Ä“Ĥ[r Ğĝ܁ÇEñYô+ĊŬÔ fż¨,ĊFÚ~ÙUP˙²ĥàoxB,³—Ĥ:LĊ|rnÌŬfm^Ş·X-KġšñœUäżŬN4•% ÛĤìĈ(¨˘÷ïùï <£;! ŜŸO¸€ġQ&›_—+|qêéqv´ÄÏC$VÛgÌAŬŒ7Ğħ„8ġ,·öh^˙ĥÛ8~¨bö¸hÇÓ q˙çT³zq3Ċv\()*£ÌÔIž•ĠĜ^އÀ½Ke ë‰ÄEv„GT<8ÖÁ}ŸÇ/“ µ47ù˜Ğt3‘ž+ĠJ/JÂ-•~D*‹qÏmŬrŸ&N\Äß~ïjÄíŭŝ[')ŽA܈)ar§ôZ,ß TOŜHŻ  ù¸ç0´Ĥc°=úC6›×™âëzjĞ-ôi#o1ÜämkùĈ*lŜ(yÂä3­5…щµÇNçşí-KÂXùe÷Ĥĉ”TàGŬ³WÍz}ÌF:ğ1xµ@4W–ıë×Ğ„˜n`i</@mpI?0ı#NNŻñ”Ej½•Ìx.9šĝ˘˙P(BùY4ŝà ċT€°ĉ•4vMH„žGî„ŜuzâÂĈĴœO1(XNĈ_DÔwÜ6Ġ"íÒïÀB‰Ùò÷üħ‚”"֐œ˘,7)gÀz.[˘f ž,Yġ|üŽ˙IJ?ÔZ8£şB5XÂى¤ĥ–oc‰ÌÇ<†H—ĥ”và&²íšBŭJQ(É‚İ5ä7Äv<žM£aĈçÌ-úeŝég˙x!#ëendstream endobj 279 0 obj << /Filter /FlateDecode /Length 296 >> stream xœ]’ÁnÂ0 †ï}ŠĵAC(6HȸpĜ4m{’ş¨ÒŞ”Ŝ~ż ì°oéIú%Ĥ>œŽ§2,Ħŝ˜ÇüKè‡ÒÍzïsÖpÖËPŞU Ŭ—'yÍ×vŞê[;}˙L°@ûż·W­?Óvç?­›òĜémj³ÎmıhµQö}/•–î_+ǎs˙\š°Ô#*p+àÖp'àĜ4≈NŬĈğ½x€ĝöžV≘ÄL†8†ü(²£h#àĈÄ$C !H.I&IP × Ó N<ÀÎPĊTC’K’I2Î~}ĥë3Ù%Ù$y-àÚìÎlÎ _vgT{ë×£Ú³Û_ó ù>ÏZŸ²Oц7ŭû#LdğRŭ2{–’endstream endobj 280 0 obj << /Filter /FlateDecode /Length1 10300 /Length 6533 >> stream xœ½Zy|TĠ½˙ğϒÙ÷%3“ÉÜÉd™l$$$!$!ì!AH`BEŒiQĦQĦJT* ˆ`µnĴE†Â…G)-M´ŠKĠj‹-µÍGûjĞdĉŭî!ġñ‡ŸŜó9çŝÎrÏùïo9ż3 Hƒ ĦaZS~ÈO°‹™ó—µ/O֝äÏóğğĵÉ:ĵ @/]¸|Ѳd•İPş-]ı0Y7|Œı³£}ÁY3@ƒĜì×à|ÙıĴë;İġva1gémóSŭ2, –µ'µĉa,ĵßj_֑Ş˙Hú~ùmwtêçħhX˘#5^‹|Ò/ħ'ALJ,ĥL>xob~KzÇoJü™=şĝ²Ä?è ü䈔İxU%œ„G`;ìv!sa+œ#Kà™ŭp¤Cñb “á×$‘xÂó8 NÁf8jüf˜ħw= $îÂzéy°&ñ,dB|ŽC9Îşğħ·n‚=°ż˙ñScâĊÄE`:Îı{^NLNìäB54`ë8Aô[‰N°Ar÷$< ÏÀOáïä>ҟèLt'Î'Ŝ {]„ié'ïÓû™ï%žL|˜ˆ#YĞĥÁ&xçߏé$RKn%]dÙLE¨û¨~f-k"!İnƒ#pŝŝE>˘l´Žî˘ž(Iü¨`îRÚItczÓzÜÓ1‘2Ž4Uä1²™üŽÊĤn˘šİoSßĦŝLOç+éß1w0}ììVN˙$q,q&ñXÁ 7 Xğ;çá2|NhœËE¤‚T“ı˜zÈvêy†ĦÈIržÚCŝ@ŝD>"_P,ĤÌTĠEm˘öR§¨ßҋéÍôôèO˜1,Ċ>~ÀĝßÇçĊ×Ċ›¨HĵŸĝ'Z€>”L5L…[ wğFÀwqû0íGݝ†Ÿ99ŭ‰¸`ŝ‰(1)"S0M%ÓÈB²˜ĉ%ĥœNeg²=ì:öaz>û2{[Í­çú¸¸ù,~2˙0JçêìOaĝLäóI ™[PϐvèEíZ@D—CV˘•^M§ PNÀŬ¨­Û`Ĵ£çÀ3‰7è=:jÊRœĞv2ĠàfGéܨEİ e‡²‚b ӟáózÒŬ.§n³ZÌ&£AŻKSĞ” çX†ĤäÖúëÚĵQħ-ʈŝúú<İîodžöa mQ/6Ġ];&êm“‡yŻÁ‘ ż22’ItŜJ¨ÌËġÖú½ÑßÔĝ½12{z3ҏÔĝ[ĵÑ™ž"ӏÊtÒ>~à­µuÖx£¤Í[­ëîì­mĞÁéŽDe^ä8" ’&ŽÂ¸öU6|I#j£MmÔûè@mû‚hôĉÚ§ÏׂmĜÔĜŒkäċ.–ĝ„‡Ô ü ŠE`^›DµÏiŽÒí-QŞMšKŸµúk˘Öğ>°}Y½JĠ><Ĵ3JêÚ;z낇ê“Ġ6İÖŝ0Ö&5yqZjmKs”ĴM1!ñ¸¤&Én‡żVjj[â*üĠŝÎŜ%m.46÷9"ŽZ{MKšûìğ\ÉË=b[]áŬÉ›7VzWĝlĞ“ïżÜŸlċ¤Jwú=|Oj€H+ù' ŸQï|y?2[&e;ż ‡áÓBp›‹‘ŸqQ u†DÙÀ„öhOÓU6:k’̵-İéSĜÒÚŞ[p|[Żn.ƒu~oï'€"ôüŭږöT }) zHW°˙*Ŭ-#-gówJòíMĠŭĥÚa X— ‘xŽš˘E“š}Qo 6Ä 'wR  ÍYß#‰µ1¨q·ÌĊî\IĠ×àúXÉËĊ†lRá\oN\'銷×Û;aAŻ·ÎۉÊÄä7vtôĥä#‚M͈ÌÀ#-Î!²£eΓ/ÍÈóôĥà KR3,‘gÀ qPAî$ÜĤĜ<½9ÚSŒFjZP ¨'š£'Qp--8ŞpˆS|ŻZlKñ\„<f#Qœœ çÀ)Zz{“5ż/z²·×Ù+ÙX²#Ġ†HŞ!òˆhŒô4È]=~ŸSĈÜç÷![-Ĥ#PŻjT JáÒáDnKe„Ë!„ËoáQ7„pĊġDž+$„G˙çs ÂU_pd8Âc‘ÛˆŒpġ7„¸A¸ĉ†½>ÂuÈs­„ĝ˙Âġ× <áëž8áIÈíDáÉßÂSnáİ7„´ë#܀U5P+ßm&ÀDù#ŬŻñÎt̄YŒÚ’ƒ6‰ı s ĉœœħ6è!;àQÌ?ÄLbòĴÄĵó˜™!j7ĉ#äĦ>Fˆ%+ÁA&FTŒg†Éîħ)UžWb„ëÊóĤíOLjoáï{_(Ĉ*ÉÉÓ°<äğğ,²í`hݧ ğvrÌ=˜iı$dw_z‘çɅCÒrÈó—Â<Ï…1ŠôyNc ~šŽµˆÖsÒŭ”çżÜ‹<'0ïMví Ċ¤ovğ—z6ÇÈĥ>ÏFwŒ`džäëN7~zȳ,´Ċ³ PîŸĵ%Fííó”c˙̈ÊSZĉó”¸/zòƒ1`=Ï=ٓ]ĝOĤ[ĉĊI½ÇċŜä…]éîÚà(ÌÇȲ²ÉöÀDÏQ$qğ'„ÊĥÄÈŬë³ 1rW¤´>kK¨>MöBuÁ Ò3Ïòkĝ›ùħ|Ÿƒ—‘÷ñNŜ$ ԂR>F~ÔWċ᎑½P…°ì=(p#/b#sŒì“÷@0ĊïġKúeŠ‘½ŭ:‰Bâ'S\Œì;˜lÚñ0ĊÈ:J*ݤzSD P‰˘ä‘k-ŬUĥ*}y]Íż+Ú)sŝŭc#îè4§èw †”H$Ü-C_óaòéş‹ŽêœœI+v/_²P‘ŭµ˜Û˘u•gž×{`ÉòTü/ĥ͛ß)½Û;˘Ëŭ5Ñ%ŝïî…×é^(uwûkÀÂÚÍF:júş#Ŭòíààĵê­×Ĵµnh­ĠיĴZšl…´ÖĵÖët·JŬó¤µZµZµĉEĉÉkIûĴ]ÜT}Gj':Et|YMÑ Óg7mħ&FvHžòNÉ?T•ĝ<{͇‡Ş¤} ùx `t1€ó˜:ÒôÛ1`0ÒüÛpż˜™sgañ]PXĴ÷郘Йġħ+d>.ĈLùâ Ĵësİvö50Á˜ˆÂ¤W-VĞCqŒ< ˜È“Mz˜É:ğÙò™oi£-Ĉ­ÍəzyʀÇÀĞSk;jŝ UU…„â9½Îj1ú$(ĊŬÈR#5÷ù§mZıħ.TfQµVc_‹żôèïïÇßŭĝħĝ‡W/}l×Ĵi$ë/›H@ĉ§ùħ"?F(¨=ÍÈ3Yk”XP K Án2ĉĞşÛ–ääĠw†ña4Œ,Ġë‚"]œNĴéÄĴ9züÓá:‰‹mcĊ‚ÜŠ£ñı¤tŭëÄG|?F,ŸŜÑħêòíñ7.mŽż+ûĉĜùˆ}Ĝ`QÄó€~‹*TéZ Ò­‚Pht8ÒğŬqÁ×½.ÉÄàTŬ§S j°j°°`ÜʈH,ú€Yäx–gxš§x–Sê„"B,X( Ş"›Żç䐜œìœœ{[E#KT˘£ü>=íóZ-zO…ucl×Ä ‡öÍğ>K5‘ü››·Çż7¸9x[ËCM‰ž„żĜÊ_?ùñ>ÇsXl”ġÇ*Gċ)œIµĦò Ċz˙ısç$u~WMĵĈ^b?-8Á½‘ÜĜ3p†üŒ:+œSró(-íĊ+\”Ë2Ҏt[ĦÊîN·daJ2†ò|@Ġ€ C8ÒDPXÑ˘ħĦ–ŠˆC@JÇ!eU›‹ˆ‘ÂÂtžqJÈ $Ÿ{ñdE t<ċóE½n¤Á†ĝ3@o2ĝhfûħ;OÇ7Ç÷Ú÷Ĝ ÒEœ‹˙oï}FÌöƒÏ??üVŜ{ƒL$ÙŻŬçϒ•ŸšTĈÏÄ_ş?ÀÎĊ½7&Ŝ–ÍÒBTÂ;‘²ì˘ÔİœjW°¸^·XħDǗ µ‚vñ™ ·NíÈĦÂĦŠTEQvÀ YÁ̰şb¤7â·ş=|VQîU%_Yé2ñĦì]™Ž1ΐk˘6Xf=ĉ'äqá‘ğR]–Áğ8xzŞ„Ro°–·ê ċáÁ·ŜZ.šU:ҜÄ ZĜҝ>°xM¨Î0’òmġ³ M˘Ğ”ĦĵÁ$­™–bÔ´ÑDC´„93‘tn„èÏà9Ŝ?†Y-f½ áâÏ@S–^bɈґF˘Y1ġ––-΢eó ›H˙³úŝğİ)wħŸ=wĵûNk@ÏÎ[³-Š‘ż½góñ£÷4;wŽ f§Isċ/"K…\[ŜœĤÉÙMżĜ^_żuqWMŻUsĠŝHŭ’?¸ùy#ı(Ù`wâ]&Àž=¤òHxżÓġş‹Î´é‹ñ‘›ċġÊt·Je Ż#Ĵ “èíï­2¨•S/^LYċ€İ\ŸDÏf°pJ g‰A‰…™·ŠÄ¨H“Ö(Á„Ĥ!Aa›(³?3 g6Y-ĊŬû+žo;ûŻOßşkFQùjᆠÜ}DŠ=5ĝ·)ÓñËñx´Â?eŬŞK'vż{èċÇçŭJYâ-z÷¤7|;R4R3^3K³“Ùíd‚‰Òşu ¸ŬĵQIı­*6l ëBzƒ£ :ìéž|+Şż´3ys_Ŭ—ĉR(1Ò²İDP¸°;%‚Ò)ˆ$µ3ܚAmj/hZV=zIÂP2ÂPüéĈgV=³w“ŜĤ‚Ñûž­úÑmŸô.ıċÒëç~ġ³óż¤FŽHŸDı?³y~3ÉûüC2 í§>ñ@ûqA&†FêÈÊDž';=4ĞĦ´ĴÉĴ1hÍĤˆ:bB2Iuˆ>C~AŸq!ĵݸàyÉzÉŻ:£?c ĉĴ/SğÍâÎ,çxŜâsğxÛ˘ ğvş£ü™€Epħvš×k‚Zwu3|nƒŻúv´Ĥ|qRìŻ–ÊфÊñ•ßš´*¤*+uĜ*CV~†YŠ%,yÁtFIÇpê@†3S/¸E’îVXyTfHÒ4~‡›X,›R„4I§%ٙlkÙ9Ù÷’Û[áöÖV° Ĉ³/Hf7²XCÎ8É}領à1‰rà ĠĦĴÔ ğòûèÌ(0à§6Ûx6ŝ!ħŭ‘xTY÷Ŭ³‹%~fü­7M_:ñÙç~ŜZ:bC¸Á#~ŠTÇĊ;ëî;ĜKŜNŜc\¨pVöĵIL‰änNéĤ‰ÖTnI J;İš4}Èjà ZGCi˜ì6ûߢĠ)[ËOË@]=VQß*Ğ -,ÀÓµ¸Èb5‡‰¤AĊfżSIqɏŭUŭúLĞËjôöġ÷mŜÌV˜CQÏSäĤ×_Y@?ı~—|§Ż /Ħx Âp82Ô4A˜ hZŞw;wıwwäqŞ"mÉiN+32\ÈmWÜJm˜‡Yĥ„óBĴ£@­ Ĥƒ.{~Á0ıXıqĉ; Ÿ7I#áĝ3'ûnÙöûçŻĦòd9ŻAP%ŸbĤH.Z`ċ­B ïäïce4èŬoV+ÓBJ‡˜C`ħ[mxĞ;è›W}ĠWVĤ\eìQʉd ²#,•. ~ŭY]‘ZÓ)žuß_›òޤ>°üP?:·§ûʟkyjp:ġ\÷Èĉmςìó?R‘ŠcK#.ŝéŠÌÑJê êmˆ§Á.(ö|ÉÉéÁÊÓCjW5UN Tô¨ikdq=ŝëĞ{çÌxam¤‚x §µ VU‚èêí3U‹Tj@épûíJŠħ|nĞ;sş´Q™…LèC&éòèIwÈúÏpofĊHÚp€.ê.\Lqf­”lb`@: ƒù*ZĉZÖĞ')‚–Âlz}‘-·÷LÍÍĴ|ĥİÙÇn²ä‰Žò…;û™ü­Ó2GWeÖÍlzrĈúÁ‘Ô[ÖïÜ@[V4éİ—$TݤÌцìà€ı‘ÂÜŽb84us]ASûW n•ï̉×éCÌ$eh҄ ÒGĀBIòp!,Òġ.ħ[\ɛ@Ž|ˆÉĊ KR|ÉÎċ#LV—|),Áp_²zŜ/݆½"E2&T1H>5ğlĵûëĈvŭŝÈß:ŽÚŠcžX¸¸6kê·OU/~óŬÎä0i˜]0kÖ͵™ĠedO¸wëOÖÏî]4~j¤.ÛntççÖ>öŭóoŝúê’5ñ`g£whüqZXyRCb¤*`,ċVšÓ(ġt×4áB`֘µ´‡Ĥè+ĵ…cܲêşqK~2p ^”O)Z1Yżĵۈ%Rè²ëŜ½˘ı0-Ŭä\={vvüµMƒµeFĦÖ+„{Q?ß$Ÿe=‰?Ñï˘=[‘ı‘Q1ÓY0 &ğÑnÊâMżŽÇ/°%piJ}—·ÙTÜIH­r8HHbö•ĞŽw(ŽŠQŞ*ËġWŭ.I2ŠÁƒ ä’öZ˘2GÁŭ?İ ôïĦü#mú )ìgòËG´íšŭJóĊËOÎžñD:ê ‡tÀtœ ^RFQ=ԇôLĈË,eMìv#§á–pägۄğ„_*2ċ]&ı6Ħż–Yœ„p×ŭúšçêÏäŭïÇH˙^lêwñŻ>ˆœBİR§iÖêô0šÌ–˙Ŭ˙ĜÀŻċRŝ…˙; ,½R)ŭÌ ŝN@Á× ñµë\}Ĝa­7 ŒŻ, ”˙nšTğtè HQŞf°$ı%^³Â×?µĠáÄ5 İŬ³¨ĤÊqó{`=ĉö ĵ€ġs\940w@#ĉnÌe˜ëħŬ…ïјא3°†Ûk$s…4ż_‡`HóYħŜsuÑŭGoÑV~ú$S·Lùü>÷ÓÊÏŝÙq%¨Ú üKĈ!5ŝ²^òWendstream endobj 281 0 obj << /Filter /FlateDecode /Length 358 >> stream xœ]’1nÂ@E{ŸÂ7bĴmHC‘(Jr³^G.0–"·ÏŸ¤HñGzàù§Ú^Óx-Ğ÷ċœ>óµĈİ_òċ|[R.ù{œŠU]öcş>H5şı¨öŻŬüġ3ç’äáÎoŬ)WġÑOĞ{S:÷ù2w)/Ŭô‹6„ĜC,òÔ˙ûĞİïÇáñhÍG=!°·Q!nwQ!îSTˆÉ1G…˜‰Í**!°íú•X‰}Tˆ=qSG%Vbb¸‰ qC§B“á“Á>¨Ŝ öA½^Ĵ£B\;r 4 …¨áhQ!š#Ġ!}¸>¨éġAÈnnÚ| $- Q!ò´Ĉ•›Önv£ÉÈÜÈhc2272ژŒÌŒ6&#s#£ÉÈÜÈĝĤwfġ x~j??Ğç•éĥ,yşêöt[~R”˙Îs>ÏŜU2Ċ/­S·ûendstream endobj 282 0 obj << /Filter /FlateDecode /Length1 12636 /Length 8331 >> stream xœÍzy|”ĠĠ˙ı÷YgÉdö}23™ÌL&Ëd#!!Œ! È˘ Á°„M¨€1 oTˆHdܵ ÈR ĝC ˘­­h•Ş­oqé’êÛj+dĉwžgB_êÇ?úéç÷³`ö˘9 “Eû+]s,›,X‡vnÛôYë2Í&€‚ Ĵ,™‹ÉvÍ\Œ2ĉ.lżk`§1Zµàö™ía#FĠ §ß50żfFžM_Ĝ6Pŝİôŭ˘Ûïh(ŸÁhÖ˘%mŭS‡ }opÇA˃Lìl¸ïa8/ñ›Ÿp§A_˜ĝĤ?9,ŻĴ€0ì€ŭÀC7ĉ3alƒ×È|8LĤB/œ#iFĵXˆÁXx$oÂlxû· Ĝ @ß,ĥ'ŝÄr,G0?V%ž… (…á”á¨ëĦ/ħ;q['ÀͰöâ÷ż">z€5$^H\Ĉ˜Ğ°ċÍÄĜÄ~CTÁ8Ĵ]/?s>1ĴPŽÔ=OÁ32ü•ÜGzs‰3‰€bĞ&âğ‚ô’˜ŭ색ÇNĉLÈÂY[a<‡ïÇ÷8RCn#ídÙL#ô>ÚË>ÀYâŭˆCFá[·Dà0œ„ż?ÉçÔÊh™vĉT˘8ñAcp•ÒJÚ ßĠĝÇ5%<É'#É8²‚'—(GĠÔD³i;ŬD÷Òô7Ì9ß ç‘ó)˜÷zñOunµ'JZ=5Ñڎı]5­Ġ8ÜáÂĦÌ͑GTÒÀQ9}Ċ\+&Rš¨ŬW]µùŞċ6Ĉ_3}VtÜĝĤšj‡×یuX5Ħ çÈ͙'Ñ İgùf=‹ÀŒV)7}jS”™Ŝ­ÒXşì¨ĊWµ,˙ĜúmñJfŬUQêŻŜÖU‹$ĥTŠÚJĦkf)v§™à2ç!=#£y†ñG9ŭôhçÄ+dÌ­N×:żşGa³Kkh­jĈŝ­]Úa8 ö×ú<]_nĦŻïŻ×ÖL¨áŭÚ/AÊJ=È+Ĝ~%ß!#Mgġ͕ö·£f ì³Ö\Ue ‰ĉ¨1Z8f\“7êiĈŠd猉b\ÓBÖ7ÇHâTğƒ˜[§asŽÄjóŞq~,äĉ`E–sáO-\+ñЧËÓU?ĞËS뙋ÌÄúċÚşšóÁ‰Mˆ܄3FšƒÙĥĉĉa8Nž4+ÓĠŒ#Ìa<òsĈà2šĈ7E;ĞÑHu3î²ïñqMѸqÍÍĜĞ`RLW̳\ˆ4daĤ(9ÊD‡hîêJ–|Ŝèñ.G—$cÉrŒÀw+"1@Dc¤sœÜÔéó:d̽>/’Ġ,a:Yú GĊ ĝû.ıáĦHm‰Œpéż á²‚°„pùġ@šË%„‡˙çq •ߏpäj„o@j#2ÂU˙&„Gŝ„ĞÂ5×G¸i‘ġŸC¸î„ëżáÑW#<İ-#<ö߄pA¸ñ!|ġ‡4ß(!<ŝ?‡„kžĝŭßt5Â7#µ7ÉOú7!<ù‡ Üôƒn>ÂSĉf á[Ž8˘p5ßŝíO½ rÉ E?“ĊCjòĥË}Ş RÍ5GñÂF܉Û@@³Y‹o €™Ò…ŝ‘GÑ|ÇcÔ5NS_•]×ĥ £­}žì=Òä`‰6hƒë=^ z+jHїˇb(AżĴj Vösêa´ìÍ4²ż5}¨›aL†&h†İÈAÙ(§*1cÈÎÁ d'<‚ái Ì#Á2 k1<†ÌíĈp˜<Ԋ‘#dĜÉ舊ußd´ı­J•û­á{ŸtżgŭQbCÏü#bëIĊ Jò4y f›üüd9R™Iĥ -p·bÓnX„Ħ#DŽìîI+tżDrÀÏü&i,yÑŭiAû‚%=îÁ‹ÉËiXФşğžt˙×÷Kö&›ö„bÒ7ğ] ܛÒbd{{£+F°aC2ıӅŸè^ÚâžU ·Ŭ£{{ÜeĜ>)˘r—”zŬĊ îĵ`L$XÎuugüڝá’ğypPDçvş6ı‡aSšĞ&8 Q²‡ì€,²£Ç?Ú}³¸ÜƒġĦÒ-1r÷ÁşÌŒ,”Ôen ĠŭĦħn¨6Äü¤W…UÂ- BĦQ@ Á(êE­¨Ġ˘RE!F~ÚSéĉ’½P‰°ì=(ò"#/`%{”ì“+÷Y‘Š c‰?ôJ‚£p˜ĉéĵş †*v}ìòsÇc.”b}|Î½zgDDaÔ) f‹Ċ8JŒäñˆ&ìX­ÍdŝÚğ`‚5&>ŬxħĦÏŝ½ïl_cM[ġ'PYYO¨Àë´³Á&Á@0PĴZb ÓžÈ5pÓ²µĦR³Şü(÷vüG~˙(ŝáĈ˙|aċ‚Gğ'ßH2?ŬDü2=ĠHé1@ID-êÀ`BzĜħ݉$’¤mFÓ×ŜÊğ­IJÎö}pŭ6`ŠÒˆ%˜´όz*\+Qħŭ†@~hZù‘ĝ4R²ŝâ%Ŝ/%ĉŻîh[qqqüŬÏ6Ç?”iĜ?C:áJòÑ pg¤ÊçġZġ‹ġw}šÛè41Ŝ4³‘ è3üi P8„4 8˘ÇorûÍLAê<‡=$üA-3tÎğyöà–7jżj¸ˆ2tĥOŜö~}Y^EE™NÚ|}YŝZ0ÍF-ÓB QĈ‚ŸWÇx û<^H#nbĥ˜-&T=y$ 7ú˜Qëž[2|vÜ~švw/|cáŒI“9Qé•jV-Ì*[/?Í8m|˘,-¤ÏLë_Ġ]ä[ÒyêĤP­Ñk¨˜ôċ#Žŝ.Ĥ5ñ6û÷1äĦeL }@‰ĤĜ;*0#°\³4Cq›hĠXü´Y3W³'Qj†g¤+Öi}˜——ífdĜaي|ŞÔˆşŒtwf~Îê·Ô‹ŝL{ĦÛŻĞž­ iïüµ:íbŸ &ˆ„^‡`@YîĞ”*´}:dŽpQËâ‚ü‘Ë" ™aD \?ï·˜ȆܰœpYb6qÜÙà0Y³‰ÍJrÙlPUÙÄŻ"aÌ !ŒÒôNl4cÒ)Ġfgm…œ­H÷Ŝ{/´H8•·@†şxHFQ!kòI¨§ó&£Ċ,ï…ÉÈú<ÁÀPB҄!3żY4µgÌĜgO˙bü:˘żô)y4µà–óÑíSÊÏüfóĝuñ'ŝ˙ێ m çW4nôŒxú˘BnNñÔCŻÄ˙eGċÎXPèÉÏK/Ÿsòâ[ëúĞ’xuOâ=.yĠf¨ˆĝ,\+Ġ2J Ü0­Â̘ÍF…_m·żÑfħ>íŬĵh\ZÄQ´˘ıJgX–H§¨×l¨JÚ+šÛKÁ/ëŒŻ‹Ż{ žŽäŽ]nzŝÓûĤ=ĊĴğ|:ŝ?_ċF’Ê”Ħ&Ÿx_)O…r¨€"YùDİE=â Ġiç)ĉk…2QŻV0ŽB!CáÒŞ]ċÙ4*?TNË ³üz­À‰Î`şĊ#]¸—[şÂ*ê*VUN£Êêΰp„œ£Sƒĥá#~Nĥ˘ûp˜lkĜĉB˙É+ĞW*ħ‹$@ápŸ$P(W2d– 5ħùIIŞĴi/˜=F<Óa(ġ‚Ŭeñ“#‰'Ĝ!É-2^‰†¤^àM$yöùÒ^ E’hêŒĜ §_:šR‚üR2Ô@4KomŜâ[¸pFÁDÒ;¤ùċ^e7÷ġsÇ:î´ĝĠişĴœ@K–Y1ô7÷l>vdk×Srêwn09yMŠ3oY ĉXs§N›5ñ•uuÛú·:Óĉ5_ċ‹ÔÍ˙ٚÍÏȉG:²~îzVi°(Ŝ)ìrdÒĊÔ4ÊX\œ SĤıT*cP´{ìam˜„@gs{V{µ\QO.Ȉ&ŝteş$zV½™Wšyc€è•™K€i‹H8t&IPèuF*#`òe$A’¨cùó­ŻŝóĞóËo*,ÛIgoĜŬ‡£Np'ú˙Ò0>ŜżGË} kW|öÒî_|së´²Ž.O|ĜaÁĜÉÛe#ÛĴŬâ+3ZÔí02Œ‘wمž`‚aÑġ„ RŬ ZlNt…„ƒŜ%+•…І²²AyH*yCÀ&úĠ&e4-R—ŞlXâ€ñBYFeN @Ş#…•–^’d‰Y’qĥÌ/`ĥ v–Ĝ”äŠ"‰hħŠzŭÚ%+::ÍĈE÷Ûö§}qô­oˆŝĴ“mŒ3óŝî…O?óŝÚoŸ"EŸ;Ĉ!‰óLîĞ \°4R8T3J3Y³‹Ŭíàü˘‘Ĥş´ ş\‚AI]6„µ!ŜîVíĥ4÷jï’ŞĞ—üŬ½µ[ %z­V͉Ĝh”1@vW—2°Ÿ€ç*_ħ´,(˘/új3+žÙı|ÍnÒ51ĝg+zûÁĝ7ŸHnŭì×~ġ‹3ż¤C‡¤ĦoFlžÙDrżù3™Œ:¤.qžµ£qBş™êȲ­âcö]n†ÓTÎhÒèSMĈˆ:bCv2Fġ"sšĵœvĵ+§8ç~×÷™ċ3Ÿê´î´žN9oFêv³+£Œ³×ċ”.³Ê/luîrB`ŭĉTż“³)Ġ‚NLu9{0#,mĥ@Ĵwgˀšdŭ³ŭÒœ<ŠóZùÏhé,JBV >–c8ÊŽċŬVŻ5hZ–WûÓ€+@Ò\ ‹•I )ŸŬ‹UF˘ù*E‹d_Ñ52ódegŬ‹Ö,n‘XH:YĵiDR=Ħám2I@Ħ½çJKôÚ˟sl}ĝĤ|áĈ‚ Ën˜jüÏÄúßĭʽïžnŽĝĜQ·Ŭ<~ÁègŸ;ĠR2Ş|CxœS‹6O(İŠîĴ½ï`y?ik;Qè,Ü[`†Hĥàâ•.†¤ËÌ)ĵ^iCCO“˘ Yô‚>UÖPÍe£Íjğ읳rÁ–²“2PW\ÉŜİ”ŭôTŠ Ñl‘ä‚7Ħ}–úĊ?óUöê2,N›j‚§§·gófjÈTJŸ§äĉÖ_žĊ<[3/g>C^qC.„áP¤ĦÄX/Ö+šÄfĊġnG·kwpgöa‡*"2ĉôĉ¤2–ılJ½K™ÂaÎɄÍáÜgÏWk‚)#A§-/˙*ıĜW&q@˙…/uߞ)•}òĥ'÷=ǗiOSé2üڀ/-€L;F:•Ĉ İuŠß• AGġ„ZïĝV;\9K$É).ÒŜ› òi‘!í,µ1„Ŝ3­¨xgĊ˘ĝkûŝŞ9”~˙‘S²mĊ ñKD8BŞŸ˙Ż—jŭ›î9qcNüMĥj„oäê˅Żwœßñ“ş`ĊĈIL÷5Ä)$ĉxÏ­Ûvl˙ÌU4WŜçUޤSÌ01’ƒR#Z‹dƒ†;…;EѐB èĵé\ĵ`R+SBJ´,L!0£m#üAïŒŞkÌYɒ•5J‘D> J¤ —F´“ö’ηŞ7R4ù?MÌ=œV°zы½¨üßï-{ùÉŝñôıŽĦMÛÏġż ²ŜGúHùÀ@IÄ)|,]AòŒR<ˆ|TĜŠ=ßRr²żâä ÛÉ^¤Ar‘ÓV‡ͺtŽ;öşĵöN\û?dpWdV3%Db£(`~27‡[Ĉß%Ĵĉ3Ż1çÑSM:| ]EEĤdh™^Ħ`9Ċ~ĦQ“>.éóĦ5,£×§DwOA•!PĦż×q˜˜a0Ùçpù*%k…`\>q…öeVòùZù;>àñI,‘"Š,:|ûÈo>‰Ï&>‰÷lŬ‡FÚ^r:~{˙ êìŠ˙H^ßZŒ†ËĜ…"¸‹ŝ6 ƒ÷žk6ïÛĞkmoŻtar…?x?; @¤\ Ÿj-KjP ˘ ­³MRÍQİ}~Ŭċ³))kñ{]W /ïpúƒ2çԅŒÒe=$ŬYFŒ ûQ8lÁÌIıš‰.h/ö]ĵr€ŝ ê>Ùî— ¸+eà(Ë‹ k€Żâ°žÈĉĊ9Ïĥ½Û˜uôĥ†ù²‡ÍŜĠËĉmğ1cxeFí¤‰ß´(ŭìĥqëwöo GŽyò ‰óhR.PÏĜâ˜)8ğĉ)Ëù ħƒo8£š­Z´¤€·Ş”vÁnuHaw’°5d›ùñ¸p•ŭëêûVDˆ´¤Ğ–Lړ‚%²jïĜ=s/ŒË9äÊ_ .Íuô’]H˙´ OM~V’•³RÌUĊ‹çġżÄâN—'Ŝc½h'İÁŠ´?)Ú&nÑ>fŝ Û-îÔî6ÇÄWĊwĜ52އ‰ĵË*¨]z•M°ÙL4˜jw(‚&›Ŭ# ´–Zç9$¤°°•A'—Žˆ`Á—‚9Q˘ĊH4£qÄhĝ@Ò8JŞ>hÉìê6=žbíî¤Aô‡òÇùɖ-ϝ#i—_żLôŸòí$uç–i^îÙ{9˙+š‡ŭñHöe4Â#’MÔż™ġÒ5표Ŭâ. Í=N†w™„T^rŞÒ54hµg(ÑÒġ†ÒSmŒëZş²’ו íN³8{€ €Ĉ™1"6M ?`%íŬŒ¤k.ĞkTd€?ġèSñ²ĴóÑWvùk­ñcï/‰Ür÷‹ñCíۗMÈ/ï]öÛ·:§8:kû=“w2Ö×gVÄ˙„k|vË­Ċiġŭ È1Ŭˆ2¨ƒ# HʌbY¨…NĦŠê”˘Ŭ@$›lzCŒÔ û­ĵŠŭ$ñn¨<ÙR:ĈnPš$Ö<Qö÷šžż³ş´획(*‡KvPĉ%†î_ÒżM£MĵĵȎÁ³7„#?.Ulĥè3n3mËâ33üÁo­wTĈ¨à¤ŒÉÁÙsËÔËR–i:|ííŝöÀδîƒĤ—ˆ `79,NĞ)×ÎLUÍŝ?ġ§§(Ùlƒġ§Ë °ölUž hİyŜ<ğÛjĥ-#2B0Ó^ qµ# ĥċô Úo¨B’çw™sÒrËò$0y› y‡’JI^#Œ%ı4`òÛ^Û Š€à%Lú—\ĉ\zĴs­^âIM÷‚7]“"•^+”$—ġÂ(MçôJ·Ŝ[頗#2xϏl"Éı|Ì_} ë1áß# ‚äsÑ_Ŭ=kÛà?^{Cûï˙ŭĥ‘tñĜìy5™KOTÍ{ïÏO ä7%òä[j2òMÏŞżwÛÏ×O™;ĵpTc¤6ËfpċċÔ<ú3ï=M˙‰ĵdI|NÜÔ~–VאİŒĝYs™…á5JĠ5Cĝ˜4ĤTĈÍPĉ²Ùf³£m·âşĥ]^Ò¸ëÓö_ɢ“/|à@ħdŜuż¸woÀT’ft œ²a7%ŝöĤŝšRƒŠġ ñŜ9ôÔ&ùĵïLü‘ùċقN‹ ‹_5R…A4Ú 6c&ż”y[à4JàS”ê.Ğ`µ˘KV†Ô*ğ„$bßş˘x}A;²˘LwEï^sâÊ'ċµXç'öüû^íïŬC}Cĉlúxb.ÙÏĉġ—MÒÚ=ċ Şıôĉ“³nzlÂZú]’O*Ŝ?³y€öH$\EN s`.ËÌáW³k¸]MĊQPGkĜÑ܃ìZî4û*'ÖgŜ‘)ˆ²Ş•Íĉ1–Ċ‹zё°1r˙!†Y¨§„r˜¤ñheàLÏ2„p”á@ÓC)J›µŸ!’•´ê ÙÏÛl­ ŭĝCżMŜÉÀ“T?p‚ h^h/4É${Ìĝe? 醅žçıï ŽĈÌ~·Ĵ ß™´ÙĝC]––Ċ)Bċ}’F²OĊßÉĉ]ŜĈ̽ô&"DÁŻ—íwétúeäG]Ĥ5Ö]VF²ıJġuú&ŭa)³TXgÜ[ımĤ­ĉ­–nè6kë`Œi”ċ5[ͽÂÑĠÜNĜIvqŬ.#“³š,f´ MjUŞKÔH‡™Ù´Kt[LÖŭê›ñL;›D—ÑpÁzÍ:’Ĵk+´ċYÑАô#îFDo2ÙĵPoħX9B¤ °FÜVœ”S"]F.FÓĴ…ñ ¨,¸Ċ’³V2tŠH0Œ÷tàŝUw>ċei ó´ÜMĵŭuâ&lŜœĝ†ĝ__ˆÏîċĊçSxŻU|4ƒmD¸î“Ĵß!ĝŜ/ÁDKJH”VW˜ÌyöyN=Â]ĉ_ôÂQ)–ŠŬâ/µŠg•vċ:ċ[Ş5UOU˙=e,QÉżÔÑ6 :‰aùëŝMŝšçÊżPüŠNúK˙żzDĦ”ä`Q§hRµ:½Á&³Ċj³ƒéJsK˙_˙ÇÂY9–˙£á‹e‰Ĉ)–ŝ„ ßpċĦIüä6NÎŭ˙×#ŭ•R,)=…kPğúQC Z5İ Ċs_ŝ_şġµÈ²ƒûôÒ]&ŭO=$‘EŞÉ#ôŭGĵĥĝ|‘¸ĤbNU´ AĜë1Tc~†ŭìp’›ó{PZOC/ĉ[1Ŭƒġ0t Xċ˜–b¨ŝNL‡cXEN*lëÄt-~ğJŞ ġíÀñ×b›4Ÿ˝Ĵ„ ßZD÷ı5µâK%‰żµáÇrúÚË_˙£írPµAü§Œí@˙˙ĊRendstream endobj 283 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ31Ó³´P0P02U06P06W05WH1ä230Š!Œ‘œËU¨`hhT027éĈ`I'O.}O_…’˘ÒT.ŭp J.} 2.}§g Ç%hj,—›³³`c£ï­  ”qÎÏ)ÍÍ+jħ³òtQP[&6oŝżé˙˙Ç˙_ú˙˙ġ?5³–^ap`árġTä×B-ĝendstream endobj 284 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@ÂRUв¤K†VUÛc"†DÈß7ÒĦY:ߝ|–xÙ%÷èñI ĴciñkD‚‰fǢU`ĤÊÊÄ·BW^Ÿ@°ÈîüĤß$êܔUğ‡Z‚FŠšg]Óôµ½ 6R Lĥ:ĠİŻPXü‡’£ıÄqp‘8•ĤI.à˜~Ïr 6ˆ/@Siendstream endobj 285 0 obj << /Filter /FlateDecode /Length 1583 >> stream xœĠZÛN#G}w¤|<ĥ£Ì÷ R`""‡°ÄĴĦ}cŒÁ\²Q”OwÏxş<.0 ĥ³+|W×ċTuMϔo2Z°Œ†żê³7l­H‘ n[4´nZ,~›U½aĥĠġ*\)u,략Ê,³,3ÊN¨Ĵ;lNÛŬ^Xó)aİ Ğ¤_=m‘ƒ6-Ò1²ßÎiA•†ŒTÎÉ¨Í Jàä.\eÎ1cËĞŒ)MĥĵǵŠÜëœV†œ,œJèŝܐ M &NĴ·s)EaK*ğcŻ—[ĉĴwáÎcj ·4ĝ“smsFzÉ]ĥs!xa™Š.iżPòÒJ7sçĴĠ¤D˜ÑDC‚jMnƒQkÉy0Ψ–\% U zŠOÊ o)ñ鍳NU çÜê‚j‘ċBÖ+Šk:Ag<Éä×wÜMM‚› vÚıâ§I“uĝĦÜa˘PÒñĴÛiuż;"{éûC¨ ƒŬ˙Hp?ÁmÔÓt!Ĝí 1ìĦĦ˘²;óìZÌî6jì=Êóš°ìè&EsXNÔ$#oÑÀÒ7hFvqs€%Úô%gĴ‚é,•bm¨Oòoh#ÒéÇZJç÷G­ċ>Áa²¨ÜB°ƒ²ş‰ġOÉâò‘OB颢ìÉ<íĦċüċԎµŭ¤ċeù<Áq‚`Ù)šPE— 'x a­˜è=ĦAY;ÑPÁJƒMuh+‚£@Êû5p÷n^ì§éê%ò§ĈŽûp™âyŸ `Ü'ĜGÉá %ÙkTo/Á ¨·†§ n$x—àĝÏjĝa•ıµÊû Ġ àŽĞ5Ì]öú‰/Ú8ëÔÎ9N.Ê˘qċa^2I9 )İGˆ!'ÂiĈlà9`'ŠñpŞĴ×qalLUĦpf:`ö\ğ†0H>‡~– ĴÏWI/)deZHÍáüòĝŞkjOê~ŠŞžzzF• óTA>F*| 8kRYÉâ{è|ĤĈèIŭǑ'£”ÉrnÊĴ¤žŞ‡67žŻú8(Ĥ’ĵm[á˜"£˜_‘Ò–vµ<œ´â2ċdɓċ–úŠù~’%yÍ_§.É!ÚVıŽÉ™˘;Xíkê´$H9,’iÊfà£2DŽáüı†Î“‰ħW=:+Í{ds83iĤh³L´RĈSbċêñÔĴ²ÊT”AĊǑl§}ĵ—)ŬëSèínë]ËЏż?ŝƒ‚é1ġäŒÇmê?•˙.ŝŞàhşYaGô*XúèPĝS_6A;íçK~1Á/„Şb;„µÜY(•ŝšĥbÚܟèŬ@pğ^Op …§(Ğ€İ ”ĠıéàVy‚ŜKÁ}÷…@(+pC×Rßµŝ…*rendstream endobj 286 0 obj << /Filter /FlateDecode /Length 1144 >> stream xœÍVMo7½ïŻĜ#·ˆÖü’9ĠMƒ˘‹4İ܋‘F’eǑ7‘ìŝ÷’ğËY{%'pP:hD ‡3o†ïñkÉkQòé›âè½VċzWr]|-Dü·ì›ò—9z€Ĉ•Ús/Êùy‘ĥŠR8]+íKklí•)ç›âŒŭZñš{Ê v‰ĥ\cÛjĈkËıvìŞš)%kë={Zh.[½µm^+ݜcаŞĵSĜçç%û÷4žŬ’}+\ĦFASpnı£ĉžp/úŒ,û#çy›“Û†„8-£İ$ÔŜážû´ŬqÍŝʉ‘cÛĞJÚZ8ç÷ep_9…ĥö)U;ö& RşşIm5¨xP‡ë”Œñ‚½ Ž <˜µtħBxĥË9|˜żÁöNÛĞ”­Á„&ϗ“˘š*fZ‹rĤLíÂò Áͨ)é°&ŸAë=F*oŠP -ôP @ymͨXçàCîBĠF{YÎOŠùOgì·x:h3 #„aí:Ài%Fq_ôéHö{XĉŜ!Â!µED4†İ#ôĜqNÇ à<…ÀêĜñ&8HïŝĝGX€–ì"΄UÖá…èCtŠ+ê@³k‚ wÑRÌUš-û3@…´Ĵ‰°{-ħëW!v<éé•AZÙĈ^bY#]§ĝNĊd;pšpİ…wÜĝ4kĜŻĜßiY(mFEÜU“ŭ*ĊŽû`§÷ËÜò=÷wÙ:ì›@+CƒÉÙDż´ç}7î=)b/”š2ڂx4U?ŒĤEBm3—žÑA ^§ Oq_Žúóz^ĵ+0óHıÛ í&ZâV.J+C&@ 8÷‘â:s;i6ÙĵÏĉÏÙÜeó&›m6ݲıÊĉçɸu4MàÉ6›ÛlĞŒÉıóY†C *–T ‡Ó÷iœ,dzòCaÇ5pj|ÜĊ$RÄü’Í—Ù<š4ïž2ëÔ˘û}6żĦEƒyôÜnIU{ԝ_'‡Ö‹Ž`4RœÒ1*‰I(ŸR ˆħżp-½ˆğ.žñzBTN_EWÎ%jŭÉq&|úÔIôâÀ(ìcf£&çœr”D1M:ĵc\è›Nᔢì7Ħ("ôŒŠÉ{CĴŭşŝ$ÂòOHTvÓĠMž&aä°NËGoÀ› Aܛы‰–Gn’èc@cœ}j1c³gJd›Aá;iwé²2;ĤZ³NïF ŭS#µ: M/Hħ ñßġ§‹ÀÇ1Š(Š„!˜­?+£z܅GO{™Eyú5ú@GEF]DÍ= ‹*ĵˆäQLR Ï%ࠝùßk˘_[­ğ|š¤@"„í¤ġ$áĥ“&‘]ÂÈOJi“ùôf’†o³ıÈ&aïfrÛ*›Kìy”m `÷Ì%°£G` ÖOjíóg@DĜw“-"Rz99“Sq2‰@„›Hôğâ_fÎendstream endobj 287 0 obj << /Type /XRef /Length 291 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 288 /ID [<01a7fe0f6e84543e4451137f88764845><04a861d2ef4759e2df778b3169203576>] >> stream xœcb&F~0ù‰ $À8JRò?ƒÀİŬ@6;8Ö^֍Ĉ×à&˙3(Mß Œİ{Fcj°’˙t…÷Ù2Á 8Râ‘bÏ@¤ì2)8Dò‚EDπHVÉ& $…u@l–• ’? Ì‘Rn`v#˜›s Ĵëˆd’‘o@$sˆd‹3“"œÏÁì— ’Ûì†ù RÍÌ›\ ĥe+ˆdeıJ2lËFpŞ ûEÌ›Ïö)£/˜ Ğl³Àl°8ĞBÄAÉgˆp ĝLÀì×à‘ûċˆJĦ RZìÚYài‹Ô"™r³Üw°H!XÍ=°ĝzİĝÉ^0ÉV vá!ML: endstream endobj startxref 222569 %%EOF RProtoBuf/vignettes/inactive/0000755000176200001440000000000013617260253015753 5ustar liggesusersRProtoBuf/vignettes/inactive/static-use.Rnw0000644000176200001440000001270112440004312020506 0ustar liggesusers% % This has been removed from the vignette because the corresponding % functionality is no longer in the package % \section{Static use: Revisiting the tutorial} In this section, we illustrate use of Protocol Buffers in a \textsl{static} fashion: based on the \texttt{proto} file, code is generated by the compiler and used by language-specific bindings. \subsection{The address book example} Through this document, we will use the \texttt{addressbook} example that is used by the official tutorials for Java, Python and C++. It is based on the following \texttt{proto} file: <>= ab.proto <- system.file( "proto", "addressbook.proto", package = "RProtoBuf" ) writeLines( readLines( ab.proto ) ) @ The \texttt{proto} file defines : \begin{itemize} \item three message types \begin{itemize} \item \texttt{tutorial.Person}, \item \texttt{tutorial.Person.PhoneNumber} and \item \texttt{tutorial.AddressBook} \end{itemize} \item an enum type \texttt{tutorial.Person.PhoneType} with three values \texttt{MOBILE}, \texttt{HOME} and \texttt{WORK} \end{itemize} We see that a message type can contain several different items: \begin{itemize} \item sets of fields---for example the \texttt{Person} message type contains the required field \texttt{name} of primitive type \texttt{string} associated with the tag number 1; \item fields can be either required (as \texttt{name} or \texttt{id}) or optional (as \texttt{email}); \item other message type descriptions---\texttt{Person} contains the nested message type \texttt{PhoneNumber}; hence the fully qualified type of \texttt{PhoneNumber} is \texttt{tutorial.Person.PhoneNumber} \item enum type descriptions. \end{itemize} Using the \texttt{protoc} compiler, we can generate functions that access these Protocol Buffer messages and their components for both reading and writing using any of the three officially supported languages C++, Java and Python. For example, for C++ the call \begin{quote} \texttt{protoc --cpp\_out=. addressbook.proto} \end{quote} generates almost eighteen hundreed lines of code: seven hundred in a header file \texttt{addressbook.pb.h} and almost elevenhundred in a file \texttt{addressbook.pb.cc}. These two files are used in the tutorial application programs \texttt{add\_person.cc} and \texttt{list\_people.cc}. The former adds a new record to an address book defined by the \texttt{proto} file shown above, and the latter prints the contents of all records in the address book. \subsection{Simple R accessors for the address book example} The Protocol Buffers tutorial contains two simple standalone programs to, respectively, add a record and list all records from an address book as defined by the \texttt{proto} file shown above. In order to ease the transition from C++ to R when working with Protocol Buffers, we implemented two simple wrapper functions in C++ that accomplish essentially the same task, but are callable directly from R. This use the \texttt{Rcpp} package for interfacing C++ from R. \subsubsection*{Adding a record: \texttt{addPerson()}} The R function \texttt{addPerson()} accepts five arguments: <<>>= args( addPerson ) @ The first argument denotes the (binary) file into which the new address book record will be written. The next four argument describe the record to be added. Both \texttt{id} and \texttt{name} have to be of length one, whereas \texttt{emails} and \texttt{phones} can be of length zero as they correspond to optional fields. The actual implementation in C++ is close to the tutorial example and can be used as gentle first step in programming with R and Protocol Buffers. \subsubsection*{Listing all records: \texttt{listPeopleAsList()} and \texttt{listPeopleAsDataFrame()}} Displaying the content of an address book defined by the \texttt{proto} file above is straigtforward in the command-line example as records are simply printed to the screen. For our use, these data need to be read from the file and transfered back to R. Given the definition of the \texttt{proto} file, we face an interesting problem: some fields are optional, and some fields can be repeated numerous types. That means our data structure can be textsl{ragged}: the number of entries per record cannot be expected to be constant. Of course, R can handle such dynamic data structures rather easily. One approach is to use lists of lists which is implemented in \texttt{listPeopleasList()} which returns a \texttt{list} object to R with one entry per address book record. Each of these entries is itself a list comprised of two character vectors of length one (name and id) as well as further lists for emails and phone numbers. Similarly, we can use the fact that the id field is key identifying a person and return two \texttt{data.frames} to R that that can then be merged on the id. This allows for both potentially missing entries (as for the optional email fields) as well as repeated fields (as for the phone number records). The R function \texttt{listPeopleAsDataFrame()} implements this approach, and its corresponding C++ function is very close to the tutorial file \texttt{list\_people.cc}. Both these functions show how R can use the C++ code generated by the Protocol Buffers compiler. Binding the generated functions to R is straightforward --- but arguably tedious as new interface code needs to be written manually. But R as is dynamically-typed language, we would like to use Protocol Buffers in a less rigid fashion. The next few sections show how this can be done. RProtoBuf/vignettes/inactive/Makefile.in0000644000176200001440000000275112440004312020006 0ustar liggesusers ## this is a 'fake' all as R-devel gets a race condition on RProtoBuf-intro and deletes the .tex file all: RProtoBuf-unitTests.pdf RProtoBuf-quickref.pdf ## 'real all' pdfall: RProtoBuf-unitTests.pdf RProtoBuf-intro.pdf RProtoBuf-quickref.pdf pdfclean: rm -fr *.pdf clean: rm -f RProtoBuf-intro.aux RProtoBuf-intro.log RProtoBuf-intro.out rm -f RProtoBuf-quickref.aux RProtoBuf-quickref.log RProtoBuf-quickref.out rm -f RProtoBuf-unitTests.aux RProtoBuf-unitTests.log RProtoBuf-unitTests.out rm -rf auto/ setvars: R_HOME= @R_HOME@ RPROG= $(R_HOME)/bin/R RSCRIPT=$(R_HOME)/bin/Rscript RProtoBuf-unitTests.pdf: unitTests/RProtoBuf-unitTests.R $(RSCRIPT) --default-packages="RProtoBuf,Rcpp,brew,RUnit,tools,utils" unitTests/RProtoBuf-unitTests.R RProtoBuf-intro.pdf: RProtoBuf/RProtoBuf.Rnw cp -f RProtoBuf/RProtoBuf.Rnw RProtoBuf-intro.Rnw $(RSCRIPT) -e "require('highlight'); require('tools'); Sweave('RProtoBuf-intro.Rnw', driver=HighlightWeaveLatex()); texi2dvi('RProtoBuf-intro.tex', pdf=TRUE, clean=TRUE)" cp -f RProtoBuf/RProtoBuf-fake.Rnw RProtoBuf-intro.Rnw RProtoBuf-quickref.pdf: RProtoBuf-quickref/RProtoBuf-quickref.Rnw touch RProtoBuf-quickref.Rnw rm RProtoBuf-quickref.Rnw cp -f RProtoBuf-quickref/RProtoBuf-quickref.Rnw . $(RSCRIPT) -e "require( 'highlight'); require('tools'); Sweave('RProtoBuf-quickref.Rnw', driver=HighlightWeaveLatex()); texi2dvi('RProtoBuf-quickref.tex', pdf=TRUE, clean=TRUE)" cp -f RProtoBuf-quickref/RProtoBuf-quickref-fake.Rnw RProtoBuf-quickref.Rnw RProtoBuf/vignettes/inactive/RProtoBuf-unitTests.Rnw0000644000176200001440000000420413617260253022325 0ustar liggesusers\documentclass[10pt]{article} %\VignetteIndexEntry{RProtoBuf-unitTests} %\VignetteKeywords{RProtoBuf, Protocol Buffers, package} %\VignetteDepends{RProtoBuf} \usepackage{vmargin} \setmargrb{0.75in}{0.75in}{0.75in}{0.75in} <>= require(RProtoBuf) prettyVersion <- packageDescription("RProtoBuf")$Version prettyDate <- format(Sys.Date(), "%B %e, %Y") library(RUnit) @ \usepackage{microtype} %% cf http://www.khirevich.com/latex/microtype/ \usepackage[T1]{fontenc} %% cf http://www.khirevich.com/latex/font/ \usepackage[bitstream-charter]{mathdesign} %% cf http://www.khirevich.com/latex/font/ \usepackage[colorlinks]{hyperref} \author{Romain Fran\c{c}ois \and Dirk Eddelbuettel \and Murray Stokely} \title{RProtoBuf : Unit testing results} \date{RProtoBuf version \Sexpr{prettyVersion} as of \Sexpr{prettyDate}} \begin{document} \maketitle \section*{Test Execution} <>= pkg <- "RProtoBuf" if (file.exists("unitTests-results")) unlink("unitTests-results", recursive = TRUE) dir.create("unitTests-results") pathRcppTests <<- system.file("unitTests", package = pkg) path <- system.file("unitTests", package=pkg) testSuite <- defineTestSuite(name=paste(pkg, "unit testing"), dirs=path) tests <- runTestSuite(testSuite) err <- getErrors(tests) if (err$nFail > 0) cat(sprintf("unit test problems: %d failures", err$nFail)) if (err$nErr > 0) cat(sprintf("unit test problems: %d errors", err$nErr)) printHTMLProtocol(tests, fileName=sprintf("unitTests-results/%s-unitTests.html", pkg)) printTextProtocol(tests, fileName=sprintf("unitTests-results/%s-unitTests.txt" , pkg)) #if (file.exists("/tmp")) { # invisible(sapply(c("txt", "html"), function(ext) { # fname <- sprintf("unitTests-results/%s-unitTests.%s", pkg, ext) # file.copy(fname, "/tmp", overwrite=TRUE) # })) #} @ \section*{Test Results} \begin{verbatim} <>= results <- sprintf("unitTests-results/%s-unitTests.txt", pkg) if (file.exists(results)) { writeLines(readLines(results)) } else{ writeLines("Unit test results not available") } @ \end{verbatim} \end{document} RProtoBuf/vignettes/RProtoBuf-intro.Rnw0000644000176200001440000000044213617276206017661 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RProtoBuf-intro} %\VignetteKeywords{RProtoBuf, Protocol Buffers, package} %\VignetteDepends{RProtoBuf} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{pdf/RProtoBuf-intro.pdf} \end{document} RProtoBuf/vignettes/RProtoBuf-quickref.Rnw0000644000176200001440000000045013617276206020336 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RProtoBuf-quickref} %\VignetteKeywords{RProtoBuf, Protocol Buffers, package} %\VignetteDepends{RProtoBuf} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{pdf/RProtoBuf-quickref.pdf} \end{document} RProtoBuf/configure.win0000644000176200001440000000000012440004312014610 0ustar liggesusersRProtoBuf/R/0000755000176200001440000000000014535367536012356 5ustar liggesusersRProtoBuf/R/with.R0000644000176200001440000000141314535123416013436 0ustar liggesusers# S3 dispatch does not work for some reason generateActiveBindings <- function(data){ env <- new.env( parent = environment() ) xp <- data@pointer names <- .Call(Message__fieldNames, xp) if( !is.null(names) && length(names) ){ lapply( names, function(x ){ makeActiveBinding( x, function(v){ if( missing(v) ){ # get .Call(getMessageField, xp, x) } else { # set .Call(setMessageField, xp, x, v) } }, env ) } ) } env } with.Message <- function( data, expr, ...){ envir <- generateActiveBindings(data) eval( substitute( expr ), envir = envir ) } within.Message <- function(data, expr, ... ){ envir <- generateActiveBindings(data) eval( substitute( expr ), envir = envir ) data } RProtoBuf/R/set.R0000644000176200001440000000263314535123416013263 0ustar liggesusers## TODO(mstokely): Set and fetch are undocumented in Message-class.Rd ## And untested. Are they usful? setGeneric( "set", function(object, field, index, values ){ standardGeneric( "set" ) } ) setMethod( "set", "Message", function(object, field, index, values ){ if( !is.numeric( index ) ){ stop( "index should be numbers" ) } if( inherits( values, "Message" ) ){ values <- list( values ) } # TODO: we need to handle R type = RAWSXP and cpp type == string or bytes if( !identical( length( values ), length(index) ) ){ # TODO: we might want to be more flexible about that later # recycling, ... stop( "`index` should have the same length as `values`" ) } fsize <- size( object, field ) if( any( index > fsize ) || any( index < 1) ){ stop( sprintf( "index should only contain values between 1 and %d", fsize ) ) } .Call( Message__set_field_values, object@pointer, field, index - 1L , values ) # we work by reference invisible( NULL ) } ) setGeneric( "fetch", function(object, field, index ){ standardGeneric( "fetch" ) } ) setMethod( "fetch", "Message", function(object, field, index ){ if( !is.numeric( index ) ){ stop( "index should be numbers" ) } fsize <- size( object, field ) if( any( index > fsize ) || any( index < 1) ){ stop( sprintf( "index should only contain values between 1 and %d", fsize ) ) } .Call( Message__get_field_values, object@pointer, field, index - 1L ) } ) RProtoBuf/R/rexp_obj.R0000644000176200001440000001064313344204501014270 0ustar liggesusers# Functions to convert an arbitrary R object into a protocol buffer # using the universal rexp.proto descriptor. # # Written by Jeroen Ooms # Modified 2014 by Murray Stokely to support language and environment types rexp_obj <- function(obj){ if(isS4(obj)) { # Some S4 objects do not return "S4" from typeof. e.g. lubridate interval # These must be natively encoded or we will lose the S4 flag. return(rexp_native(obj)) } sm <- typeof(obj); msg <- switch(sm, "character" = rexp_string(obj), "raw" = rexp_raw(obj), "double" = rexp_double(obj), "complex" = rexp_complex(obj), "integer" = rexp_integer(obj), "list" = rexp_list(obj), "logical" = rexp_logical(obj), "NULL" = rexp_null(), return(rexp_native(obj)) ); attrib <- attributes(obj) msg$attrName <- names(attrib) msg$attrValue <- lapply(attrib, rexp_obj) msg } rexp_string <- function(obj){ xvalue <- lapply(as.list(obj), function(x){ new(pb(rexp.STRING), strval=x, isNA=is.na(x)) }) new(pb(rexp.REXP), rclass = 0, stringValue=xvalue) } # For objects that only make sense in R, we just fall back # to R's default serialization. rexp_native <- function(obj){ new(pb(rexp.REXP), rclass= 8, nativeValue = base::serialize(obj, NULL)) } rexp_raw <- function(obj){ new(pb(rexp.REXP), rclass= 1, rawValue = obj) } rexp_double <- function(obj){ new(pb(rexp.REXP), rclass=2, realValue = obj) } rexp_complex <- function(obj){ xvalue <- lapply(as.list(obj), function(x){ new(pb(rexp.CMPLX), real=Re(x), imag=Im(x)) }) new(pb(rexp.REXP), rclass=3, complexValue = xvalue) } rexp_integer <- function(obj){ new(pb(rexp.REXP), rclass=4, intValue = obj) } rexp_list <- function(obj){ if (is(obj, "POSIXlt")) { xobj <- lapply(unclass(obj), rexp_obj) } else if (length(obj) > 0 && identical(obj, obj[[1]])) { # Avoid infinite recursion # some R objects return themselves when subindexed xobj <- rexp_obj(unlist(obj)) } else { xobj <- lapply(obj, rexp_obj) } new(pb(rexp.REXP), rclass=5, rexpValue = xobj) } rexp_logical <- function(obj){ xobj <- as.integer(obj) xobj[is.na(obj)] <- 2 new(pb(rexp.REXP), rclass=6, booleanValue = xobj) } rexp_null <- function(){ new(pb(rexp.REXP), rclass=7) } unrexp <- function(msg){ stopifnot(is(msg, "Message")) stopifnot(msg@type == "rexp.REXP") myrexp <- as.list(msg) xobj <- switch(as.character(myrexp$rclass), "0" = unrexp_string(myrexp), "1" = unrexp_raw(myrexp), "2" = unrexp_double(myrexp), "3" = unrexp_complex(myrexp), "4" = unrexp_integer(myrexp), "5" = unrexp_list(myrexp), "6" = unrexp_logical(myrexp), "7" = unrexp_null(), "8" = unrexp_native(myrexp), stop("Unsupported rclass:", myrexp$rclass) ) if(length(myrexp$attrValue)){ attrib <- lapply(myrexp$attrValue, unrexp) names(attrib) <- myrexp$attrName tryCatch(attributes(xobj) <- attrib, error=function(cond) { #Try not setting the class in case the values are invalid attributes(xobj) <- attrib[names(attrib)!="class"] warning("Unable to set class, ", cond$message) }) } xobj } unrexp_string <- function(myrexp){ mystring <- unlist(lapply(myrexp$stringValue, "[[", "strval")) isNA <- unlist(lapply(myrexp$stringValue, "[[", "isNA")) mystring[isNA] <- NA as.character(mystring) } unrexp_raw <- function(myrexp){ myrexp$rawValue } unrexp_double <- function(myrexp){ myrexp$realValue } unrexp_complex <- function(myrexp){ xvalue <- lapply(myrexp$complexValue, function(x){ complex(real=x$real, imaginary=x$imag) }) as.complex(unlist(xvalue)) } unrexp_integer <- function(myrexp){ myrexp$intValue } unrexp_list <- function(myrexp){ lapply(myrexp$rexpValue, unrexp) } unrexp_logical <- function(myrexp){ xvalue <- myrexp$booleanValue xvalue[xvalue==2] <- NA as.logical(xvalue) } unrexp_null <- function(){ NULL } unrexp_native <- function(myrexp){ buf <- myrexp$nativeValue if(!length(buf)) return(NULL) unserialize(buf) } #Helper function to lookup a PB descriptor pb <- function(name){ descriptor <- deparse(substitute(name)) if(!exists(descriptor, "RProtoBuf:DescriptorPool")){ stop("No ProtoBuf Descriptor for: ", descriptor) } get(descriptor, "RProtoBuf:DescriptorPool") } #Checks if object can be serialized can_serialize_pb <- rexp_valid <- function(obj) { # We can now serialize everything. just call back to R serialization return(TRUE) } RProtoBuf/R/field_count.R0000644000176200001440000000454314535367230014771 0ustar liggesuserssetGeneric( "field_count", function(object){ standardGeneric( "field_count" ) } ) setMethod( "field_count", "Descriptor", function(object){ .Call( Descriptor__field_count, object@pointer ) } ) setGeneric( "nested_type_count", function(object){ standardGeneric( "nested_type_count" ) } ) setMethod( "nested_type_count", "Descriptor", function(object){ .Call( Descriptor__nested_type_count, object@pointer ) } ) setGeneric( "enum_type_count", function(object){ standardGeneric( "enum_type_count" ) } ) setMethod( "enum_type_count", "Descriptor", function(object){ .Call( Descriptor__enum_type_count, object@pointer ) } ) setGeneric( "field", function(object, index, number, name){ standardGeneric( "field" ) } ) setMethod( "field", "Descriptor", function( object, index, number, name){ has_index <- !missing(index) has_number <- !missing(number) has_name <- !missing(name) if( as.integer(has_index) + as.integer(has_number) + as.integer(has_name) != 1L ){ stop( "need exactly one of `index`, `number` or `name`" ) } if( has_index ){ return( .Call( Descriptor__field, object@pointer, as.integer(index)-1L ) ) } if( has_number ){ return( .Call( Descriptor__FindFieldByNumber, object@pointer, as.integer(number) ) ) } if( has_name ){ return( .Call( Descriptor__FindFieldByName, object@pointer, as.character(name) ) ) } } ) setGeneric( "nested_type", function(object, index, name){ standardGeneric( "nested_type" ) } ) setMethod( "nested_type", "Descriptor", function(object, index, name ){ has_index <- !missing(index) has_name <- !missing(name) if( !identical( as.integer(has_index) + as.integer(has_name), 1L ) ){ stop( "need exactly one of `index` or `name`" ) } if( has_index ){ return( .Call( Descriptor__nested_type, object@pointer, as.integer(index)-1L ) ) } if( has_name ){ return( .Call( Descriptor__FindNestedTypeByName, object@pointer, as.character(name) ) ) } } ) setMethod( "enum_type", "Descriptor", function(object, index, name){ has_index <- !missing(index) has_name <- !missing(name) if( !identical( as.integer(has_index) + as.integer(has_name), 1L ) ){ stop( "need exactly one of `index` or `name`" ) } if( has_index ){ return( .Call( Descriptor__enum_type, object@pointer, as.integer(index)-1L ) ) } if( has_name ){ return(.Call("Descriptor__FindEnumTypeByName", object@pointer, as.character(name) ) ) } }) RProtoBuf/R/wrapper_MethodDescriptor.R0000644000176200001440000000063314535123416017505 0ustar liggesusers setGeneric( "input_type", function(object){ standardGeneric( "input_type" ) } ) setGeneric( "output_type", function(object){ standardGeneric( "output_type" ) } ) setMethod( "input_type", "MethodDescriptor", function(object){ .Call(MethodDescriptor__input_type, object@pointer ) } ) setMethod( "output_type", "MethodDescriptor", function(object){ .Call(MethodDescriptor__output_type, object@pointer ) } ) RProtoBuf/R/wrapper_ZeroCopyInputStream.R0000644000176200001440000001501414535123416020173 0ustar liggesusers# :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: # {{{ generics setGeneric( "flush" ) setGeneric( "close" ) setGeneric( "GetErrno", function(object){ standardGeneric( "GetErrno" ) } ) setGeneric( "SetCloseOnDelete", function(object, close=FALSE){ standardGeneric( "SetCloseOnDelete" ) } ) # }}} # {{{ methods setGeneric( "Next", function(object, payload){ standardGeneric( "Next" ) } ) setGeneric( "BackUp", function(object, count){ standardGeneric( "BackUp" ) } ) setGeneric( "ByteCount", function(object){ standardGeneric( "ByteCount" ) } ) setGeneric( "Skip", function(object, count){ standardGeneric( "Skip" ) } ) # }}} # {{{ zero input stream setMethod( "Next", c( object = "ZeroCopyInputStream", payload = "missing"), function(object, payload){ .Call(ZeroCopyInputStream_Next, object@pointer) } ) setMethod( "BackUp", "ZeroCopyInputStream", function(object, count){ invisible(.Call(ZeroCopyInputStream_BackUp, object@pointer, count)) } ) setMethod( "ByteCount", "ZeroCopyInputStream", function(object){ .Call(ZeroCopyInputStream_ByteCount, object@pointer) } ) setMethod( "Skip", "ZeroCopyInputStream", function(object, count){ invisible( .Call(ZeroCopyInputStream_Skip, object@pointer, count) ) } ) # }}} # {{{ zero copy output stream setMethod( "Next", c( object = "ZeroCopyOutputStream", payload = "raw" ), function(object, payload){ .Call(ZeroCopyOutputStream_Next, object@pointer, payload) } ) setMethod( "BackUp", "ZeroCopyOutputStream", function(object, count){ invisible( .Call(ZeroCopyOutputStream_BackUp, object@pointer, count) ) } ) setMethod( "ByteCount", "ZeroCopyOutputStream", function(object){ .Call(ZeroCopyOutputStream_ByteCount, object@pointer) } ) # }}} # {{{ ArrayInputStream setGeneric( "ArrayInputStream", function(payload, block_size){ standardGeneric( "ArrayInputStream" ) } ) setMethod( "ArrayInputStream", c( payload = "raw", block_size = "missing" ) , function(payload, block_size){ .Call(ArrayInputStream__new, payload, -1L) } ) setMethod( "ArrayInputStream", c( payload = "raw", block_size = "integer" ) , function(payload, block_size){ .Call(ArrayInputStream__new, payload, block_size) } ) setMethod( "ArrayInputStream", c( payload = "raw", block_size = "numeric" ) , function(payload, block_size){ .Call(ArrayInputStream__new, payload, as.integer(block_size)) } ) # }}} # {{{ ArrayOutputStream constructor function setGeneric( "ArrayOutputStream", function(size, block_size){ standardGeneric( "ArrayOutputStream" ) } ) setMethod( "ArrayOutputStream", signature( size = "integer", block_size = "missing" ), function(size, block_size){ .Call(ArrayOutputStream__new, size, -1L) } ) setMethod( "ArrayOutputStream", signature( size = "integer", block_size = "integer" ), function(size, block_size){ .Call(ArrayOutputStream__new, size, block_size) } ) setMethod( "ArrayOutputStream", signature( size = "integer", block_size = "numeric" ), function(size, block_size){ .Call(ArrayOutputStream__new, size, as.integer(block_size) ) } ) setMethod( "ArrayOutputStream", signature( size = "numeric", block_size = "missing" ), function(size, block_size){ .Call(ArrayOutputStream__new, as.integer(size), -1L) } ) setMethod( "ArrayOutputStream", signature( size = "numeric", block_size = "integer" ),function(size, block_size){ .Call(ArrayOutputStream__new, as.integer(size), block_size) } ) setMethod( "ArrayOutputStream", signature( size = "numeric", block_size = "numeric" ), function(size, block_size){ .Call(ArrayOutputStream__new, as.integer(size), as.integer(block_size) ) } ) # }}} # {{{ FileInputStream setGeneric( "FileInputStream", function(filename, block_size = -1L, close.on.delete = FALSE ){ standardGeneric( "FileInputStream" ) } ) setMethod( "FileInputStream", signature( filename = "character", block_size = "integer", close.on.delete = "logical" ), function(filename, block_size = -1L, close.on.delete = FALSE){ full_filename <- file_path_as_absolute(filename) .Call(FileInputStream_new, filename, block_size, close.on.delete) } ) setMethod( "close", "FileInputStream", function(con, ...){ .Call(FileInputStream_Close, con@pointer) } ) setMethod( "GetErrno", "FileInputStream", function(object){ .Call(FileInputStream_GetErrno, object@pointer) } ) setMethod( "SetCloseOnDelete", "FileInputStream", function(object, close=FALSE){ invisible( .Call(FileInputStream_SetCloseOnDelete, object@pointer, isTRUE(close)) ) } ) # }}} # {{{ FileOutputStream setGeneric( "FileOutputStream", function(filename, block_size = -1L, close.on.delete = FALSE ){ standardGeneric( "FileOutputStream" ) } ) setMethod( "FileOutputStream", signature( filename = "character", block_size = "integer", close.on.delete = "logical" ), function(filename, block_size = -1L, close.on.delete = FALSE){ if( !file.exists( filename ) ){ if( !file.exists( dirname(filename) ) ){ stop( "directory does not exist" ) } filename <- normalizePath(filename, mustWork=FALSE) } else{ filename <- file_path_as_absolute(filename) } .Call(FileOutputStream_new, filename, block_size, close.on.delete) } ) setMethod( "flush", "FileOutputStream", function(con){ .Call(FileOutputStream_Flush, con@pointer) } ) setMethod( "close", "FileOutputStream", function(con, ...){ .Call(FileOutputStream_Close, con@pointer) } ) setMethod( "GetErrno", "FileOutputStream", function(object){ .Call(FileOutputStream_GetErrno, object@pointer) } ) setMethod( "SetCloseOnDelete", "FileOutputStream", function(object, close=FALSE){ invisible( .Call(FileOutputStream_SetCloseOnDelete, object@pointer, isTRUE(close)) ) } ) # }}} # {{{ ConnectionInputStream setGeneric( "ConnectionInputStream", function(object, ...){ standardGeneric( "ConnectionInputStream" ) } ) setMethod( "ConnectionInputStream", "connection", function(object, ...){ sc <- summary( object ) if( ! identical( sc[["can read"]], "yes") ){ stop( "cannot read from connection" ) } if( ! identical( sc[["text"]], "binary" ) ){ stop( "not a binary connection" ) } was_open <- isOpen( object ) if( ! was_open ){ open( object ) } .Call(ConnectionInputStream_new, object, was_open) } ) # }}} # {{{ ConnectionOutputStream setGeneric( "ConnectionOutputStream", function(object, ...){ standardGeneric( "ConnectionOutputStream" ) } ) setMethod( "ConnectionOutputStream", "connection", function(object, ...){ sc <- summary( object ) if( ! identical( sc[["can write"]], "yes") ){ stop( "cannot write to connection" ) } if( ! identical( sc[["text"]], "binary" ) ){ stop( "not a binary connection" ) } was_open <- isOpen( object ) if( ! was_open ){ open( object ) } .Call(ConnectionOutputStream_new, object, was_open) } ) # }}} RProtoBuf/R/initialized.R0000644000176200001440000000032414535123416014770 0ustar liggesusers setGeneric( "isInitialized", function( object, ... ){ standardGeneric( "isInitialized" ) } ) setMethod( "isInitialized", "Message", function(object, ... ){ .Call( Message__is_initialized, object@pointer ) } ) RProtoBuf/R/wrapper_FieldDescriptor.R0000644000176200001440000000704014535123416017307 0ustar liggesusers setGeneric( "is_extension", function(object){ standardGeneric("is_extension") } ) setMethod( "is_extension", "FieldDescriptor", function(object){ .Call(FieldDescriptor__is_extension, object@pointer) }) setMethod( "number", "FieldDescriptor", function(object){ .Call(FieldDescriptor__number, object@pointer) } ) TYPE_DOUBLE <- 1L TYPE_FLOAT <- 2L TYPE_INT64 <- 3L TYPE_UINT64 <- 4L TYPE_INT32 <- 5L TYPE_FIXED64 <- 6L TYPE_FIXED32 <- 7L TYPE_BOOL <- 8L TYPE_STRING <- 9L TYPE_GROUP <- 10L TYPE_MESSAGE <- 11L TYPE_BYTES <- 12L TYPE_UINT32 <- 13L TYPE_ENUM <- 14L TYPE_SFIXED32 <- 15L TYPE_SFIXED64 <- 16L TYPE_SINT32 <- 17L TYPE_SINT64 <- 18L .TYPES <- sapply(ls( pattern="^TYPE_" ), function(x) get(x)) setGeneric( "type", function(object, as.string = FALSE){ standardGeneric( "type" ) } ) setMethod( "type", "FieldDescriptor", function(object, as.string = FALSE){ type <- .Call(FieldDescriptor__type, object@pointer) if( as.string ) { names(which(.TYPES == type)) } else { type } } ) CPPTYPE_INT32 <- 1L CPPTYPE_INT64 <- 2L CPPTYPE_UINT32 <- 3L CPPTYPE_UINT64 <- 4L CPPTYPE_DOUBLE <- 5L CPPTYPE_FLOAT <- 6L CPPTYPE_BOOL <- 7L CPPTYPE_ENUM <- 8L CPPTYPE_STRING <- 9L CPPTYPE_MESSAGE <- 10L .CPPTYPES <- sapply(ls( pattern="^CPPTYPE_" ), function(x) get(x)) setGeneric( "cpp_type", function(object, as.string = FALSE ){ standardGeneric( "cpp_type" ) } ) setMethod( "cpp_type", "FieldDescriptor", function(object, as.string = FALSE){ cpptype <- .Call(FieldDescriptor__cpp_type, object@pointer) if( as.string ) { names(which(.CPPTYPES == cpptype)) } else { cpptype } } ) LABEL_OPTIONAL <- 1L LABEL_REQUIRED <- 2L LABEL_REPEATED <- 3L .LABELS <- sapply(ls( pattern="^LABEL_" ), function(x) get(x)) setGeneric( "label", function(object, as.string = FALSE ){ standardGeneric( "label" ) } ) setMethod( "label", "FieldDescriptor", function(object, as.string = FALSE){ lab <- .Call(FieldDescriptor__label, object@pointer) if( as.string ) { names(which(.LABELS == lab)) } else { lab } } ) setGeneric( "is_repeated", function(object ){ standardGeneric( "is_repeated" ) } ) setMethod( "is_repeated", "FieldDescriptor", function(object){ .Call(FieldDescriptor__is_repeated, object@pointer) } ) setGeneric( "is_optional", function(object){ standardGeneric( "is_optional" ) } ) setMethod( "is_optional", "FieldDescriptor", function(object){ .Call(FieldDescriptor__is_optional, object@pointer) } ) setGeneric( "is_required", function(object ){ standardGeneric( "is_required" ) } ) setMethod( "is_required", "FieldDescriptor", function(object){ .Call(FieldDescriptor__is_required, object@pointer) } ) setGeneric( "has_default_value", function(object ){ standardGeneric( "has_default_value" ) } ) setMethod( "has_default_value", "FieldDescriptor", function(object){ .Call(FieldDescriptor__has_default_value, object@pointer) } ) setGeneric( "default_value", function(object ){ standardGeneric( "default_value" ) } ) setMethod( "default_value", "FieldDescriptor", function(object){ .Call(FieldDescriptor__default_value, object@pointer) } ) setGeneric( "message_type", function(object ){ standardGeneric( "message_type" ) } ) setMethod( "message_type", "FieldDescriptor", function(object){ .Call(FieldDescriptor__message_type, object@pointer) } ) setMethod( "enum_type", c( object = "FieldDescriptor", index = "missing", name = "missing"), function(object){ .Call(FieldDescriptor__enum_type, object@pointer) } ) RProtoBuf/R/has.R0000644000176200001440000000074114535123416013241 0ustar liggesusers setGeneric( "has", function( object, name, ... ){ standardGeneric( "has" ) } ) ._has_message <- function( object, name, ...){ if (!.Call(Message__field_exists, object@pointer, name)) { return(NULL) } else { return(.Call(Message__has_field, object@pointer, name)) } } ._has_enum_name <- function( object, name, ...){ return(.Call(has_enum_name, object@pointer, name)) } setMethod( "has", "Message", ._has_message ) setMethod( "has", "EnumDescriptor", ._has_enum_name) RProtoBuf/R/serialize.R0000644000176200001440000000256014535123416014456 0ustar liggesusers # serialization of protobuf messages # at the moment, we grab the payload as a raw vector and send this # to the connection, but in the future, we will directly stream out # the payload to the connection setGeneric( "serialize" ) setMethod( "serialize", c( object = "Message" ) , function( object, connection, ascii = FALSE, refhook = NULL){ stopifnot(object$isInitialized()) iscon <- inherits(connection, "connection") isnull <- is.null( connection ) if( is.character( connection ) ){ # pretend it is a file name if( !file.exists(connection) ){ if( !file.exists( dirname(connection) ) ){ stop( "directory does not exist" ) } file <- normalizePath(connection, mustWork=FALSE) } else{ file <- file_path_as_absolute(connection) } .Call( Message__serialize_to_file, object@pointer, file ) invisible( NULL) } else if( iscon || isnull ) { # first grab the payload as a raw vector, payload <- .Call( Message__get_payload, object@pointer ) if( isnull ){ # just return it if the connection is NULL payload } else{ # otherwise write the payload to the connection # FIXME: we might want to be more clever about this so that # we don't have to store the full payload in memory # but for now it will do just fine writeBin( payload, connection ) invisible( NULL ) } } } ) RProtoBuf/R/00classes.R0000644000176200001440000004614014535367536014303 0ustar liggesusers# :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: # this has to be IMPLEMENTATIONS <- new.env( parent = emptyenv() ) # invisible version of .Call #.icall <- function(...) invisible(.Call(...)) # {{{ class definitions # we need to formalize connection so that the S4 methods # ConnectionInputStream and ConnectionOutputStream can # dispatch connections setOldClass( "connection" ) # FIXME: there is probably another way # TODO: include other subclasses of connections setOldClass( c("file", "connection" ) ) setOldClass( c("url", "connection" ) ) setClass( "Descriptor", representation( pointer = "externalptr", # pointer to a google::protobuf::Descriptor c++ object type = "character" # message type ), prototype = list( pointer = NULL, type = character(0) ) ) setClass( "FieldDescriptor", representation( pointer = "externalptr" , # pointer to a google::protobuf::FieldDescriptor c++ object name = "character", full_name = "character", type = "character" ), prototype = list( pointer = NULL, name = character(0), full_name = character(0), type = character(0) ) ) setClass( "EnumDescriptor", representation( pointer = "externalptr" , # pointer to a google::protobuf::EnumDescriptor c++ object name = "character", full_name = "character", type = "character" # TODO(mstokely): enums don't really have another type, remove? ), prototype = list( pointer = NULL, name = character(0), full_name = character(0), type = character(0) ) ) setClass( "ServiceDescriptor", representation( pointer = "externalptr", # pointer to a google::protobuf::ServiceDescriptor c++ object name = "character" # full name of the service ), prototype = list( pointer = NULL, name = character(0) ) ) setClass( "MethodDescriptor", representation( pointer = "externalptr", # pointer to a google::protobuf::ServiceDescriptor c++ object name = "character" , # full name of the service service = "character" # full name of the service that defines this method ), prototype = list( pointer = NULL, name = character(0), service = character(0) ) ) setClass( "FileDescriptor", representation( pointer = "externalptr", # pointer to a google::protobuf::FileDescriptor c++ object filename = "character", # filename package = "character" # the package ), prototype = list( pointer = NULL, filename = character(0), package = character(0) ) ) setClass( "EnumValueDescriptor", representation( pointer = "externalptr", # pointer to a google::protobuf::EnumValueDescriptor c++ object name = "character", full_name = "character" ), prototype = list( pointer = NULL, name = character(0), full_name = character(0) ) ) # actual objects setClass( "Message", representation( pointer = "externalptr", # pointer to sa google::protobuf::Message object type = "character" # message type (fully qualified, with package path) ), prototype = list( pointer = NULL, type = character(0) ) ) # rpc #setClass( "RpcHTTP", representation( # host = "character", port = "integer", root = "character" #), prototype = list( host = "127.0.0.1", port = 4444L, root = "" ) ) # streams setClass( "ZeroCopyInputStream", representation( pointer = "externalptr" ), prototype = list( pointer = NULL ), contains = "VIRTUAL" ) setClass( "ArrayInputStream", contains = "ZeroCopyInputStream" ) setClass( "FileInputStream", contains = "ZeroCopyInputStream" ) setClass( "ConnectionInputStream", contains = "ZeroCopyInputStream" ) setClass( "ZeroCopyOutputStream", representation( pointer = "externalptr" ), prototype = list( pointer = NULL ), contains = "VIRTUAL" ) setClass( "ArrayOutputStream", contains = "ZeroCopyInputStream" ) setClass( "FileOutputStream", contains = "ZeroCopyInputStream" ) setClass( "ConnectionOutputStream", contains = "ZeroCopyOutputStream" ) # }}} # {{{ new newProto <- function( descriptor, ... ){ message <- .Call(newProtoMessage, descriptor) update( message, ... ) message } setGeneric("new") setMethod("new", signature(Class="Descriptor"), function(Class, ...) newProto(Class, ...)) # }}} # {{{ P P <- function( type, file ){ if( !missing(file) ){ readProtoFiles( file ) } if( missing( type ) ){ stop( "'type' is required" ) } if( !is.character(type) ){ stop( "'type' is not a character vector" ) } if( length(type) != 1L){ stop( "'type' should have exactly one element" ) } desc <- .Call(getProtobufDescriptor, type) if( is.null( desc ) ){ # See if it is an extension desc <- .Call(getExtensionDescriptor, type) if (is.null(desc)) { # See if it is an enum desc <- .Call(getEnumDescriptor, type) if (is.null(desc)) { stop( sprintf( "could not find descriptor for message type '%s' ", type ) ) } } } desc } # }}} # {{{ show setMethod( "show", c( "Message" ), function(object){ tmp <- sprintf( "message of type '%s' with %d field%s set", object@type, length(object), if (length(object) == 1) "" else "s" ) nexts <- .Call(Message__num_extensions, object@pointer) if (nexts > 0) { tmp <- paste(tmp, sprintf("and %d extension%s", nexts, if (nexts == 1) "" else "s")) } cat(tmp, fill=TRUE) } ) setMethod( "show", c( "Descriptor" ), function(object){ cat( sprintf( "descriptor for type '%s' ", object@type ) , fill=TRUE) } ) setMethod( "show", c( "FieldDescriptor" ), function(object){ cat( sprintf( "descriptor for field '%s' of type '%s' ", object@name, object@type ), fill=TRUE) } ) setMethod( "show", c( "EnumDescriptor" ), function(object){ cat( sprintf( "descriptor for enum '%s' with %d values", object@name, value_count(object) ) , fill=TRUE) } ) setMethod( "show", c( "ServiceDescriptor" ), function(object){ cat( sprintf( "service descriptor <%s>", object@name ) , fill=TRUE) } ) setMethod( "show", c( "FileDescriptor" ), function(object){ cat( sprintf( "file descriptor for package %s (%s)", object@package, object@filename) , fill=TRUE) } ) setMethod( "show", c( "EnumValueDescriptor" ), function(object){ cat( sprintf( "enum value descriptor %s", object@full_name), fill=TRUE) } ) # }}} # {{{ dollar extractors setMethod("$", "Message", function(x, name) { switch( name, "has" = function( ... ) has(x, ...), "clone" = function( ... ) .Call(Message__clone , x@pointer), "isInitialized" = function() .Call(Message__is_initialized, x@pointer), "descriptor" = function() .Call(Message__descriptor , x@pointer), "size" = function(field, ...) size(x, field, ... ), "bytesize" = function() bytesize(x), "swap" = function(...) swap(x,...), "update" = function(...) update(x, ...), "str" = function() str(x), "as.character" = function() as.character(x), "as.list" = function() as.list(x), "asMessage" = function() asMessage(x), "setExtension" = function(field, values, ...) setExtension(x, field, values, ...), "getExtension" = function(field, ...) getExtension(x, field, ...), "set" = function(...) set( x, ... ), "fetch" = function(...) fetch(x, ... ), "toString" = function(...) toString( x, ... ), "toJSON" = function(preserve_proto_field_names = FALSE, always_print_primitive_fields = FALSE, ...) toJSON(x, preserve_proto_field_names = preserve_proto_field_names, always_print_primitive_fields = always_print_primitive_fields, ... ), "toTextFormat" = function() toTextFormat(x), "toDebugString" = function() toDebugString(x), "add" = function(...) add( x, ...), "serialize" = function(...) serialize( x, ... ), "clear" = function(...) clear( x, ... ), "fileDescriptor" = function() fileDescriptor(x ), # default .Call(getMessageField, x@pointer, name) ) } ) setMethod("$<-", "Message", function(x, name, value) { .Call(setMessageField, x@pointer, name, value) x } ) setMethod("$", "Descriptor", function(x, name) { switch( name, "new" = function( ... ) newProto( x, ... ) , "read" = function( input ) read( x, input ) , "readASCII" = function(input, ...) readASCII(x, input, ...), "readJSON" = function(input, ...) readJSON(x, input, ...), "toString" = function(...) toString(x, ...) , "as.character" = function(...) as.character(x, ...) , "as.list" = function(...) as.list(x, ...) , "asMessage" = function() asMessage(x), "fileDescriptor" = function() fileDescriptor(x ), "name" = function(...) name(x, ... ), "containing_type" = function() containing_type(x), "field_count" = function() field_count(x), "nested_type_count" = function() nested_type_count(x), "enum_type_count" = function() enum_type_count(x), "field" = function(...) field( x, ... ), "nested_type" = function(...) nested_type( x, ...), "enum_type" = function(...) enum_type( x, ...), # default .Call(do_dollar_Descriptor, x@pointer, name) ) } ) setMethod( "$", "EnumDescriptor", function(x, name ){ switch( name, "as.character" = function() as.character(x), "as.list"= function() as.list(x) , "asMessage" = function() asMessage(x), "toString" = function(...) toString(x, ...) , "name" = function(...) name(x, ...), "fileDescriptor" = function() fileDescriptor(x ), "containing_type" = function() containing_type(x), "length" = function() length(x), "value_count" = function() value_count(x), "value" = function(...) value(x, ...), "has" = function(name, ...) has(x, name, ...), # default .Call(get_value_of_enum, x@pointer, name) ) } ) setMethod( "$", "FieldDescriptor", function(x, name ){ switch( name, "as.character" = function() as.character(x), "asMessage" = function() asMessage(x), "toString" = function(...) toString(x, ...) , "name" = function(...) name(x, ...), "fileDescriptor" = function() fileDescriptor(x ), "containing_type" = function() containing_type(x), "is_extension" = function() is_extension(x), "number" = function() number(x), "type" = function(...) type(x, ...), "cpp_type" = function(...) cpp_type(x, ...), "label" = function(...) label(x, ...), "is_repeated" = function() is_repeated(x), "is_required" = function() is_required(x), "is_optional" = function() is_optional(x), "has_default_value" = function() has_default_value(x), "default_value" = function() default_value(x), "enum_type" = function() enum_type(x), "message_type" = function() message_type(x), invisible(NULL) ) } ) setMethod( "$", "ServiceDescriptor", function(x, name ){ switch( name, "as.character" = function() as.character(x), "asMessage" = function() asMessage(x), "toString" = function(...) toString(x, ...) , "name" = function(...) name(x, ...), "fileDescriptor" = function() fileDescriptor(x ), "method_count" = function() method_count(x), "method" = function(...) method(x, ... ), .Call("ServiceDescriptor__method", x@pointer, name) ) } ) setMethod( "$", "FileDescriptor", function(x, name ){ switch( name, "as.character" = function() as.character(x), "toString" = function(...) toString(x, ...) , "asMessage" = function() asMessage(x), "as.list" = function() as.list(x), "name" = function(...) name(x, ... ), "package" = function() x@package, as.list(x)[[name]] ) }) setMethod( "$", "EnumValueDescriptor", function(x, name ){ switch( name, "as.character" = function() as.character(x), "toString" = function(...) toString(x, ...) , "asMessage" = function() asMessage(x), "name" = function(...) name(x, ... ), "number" = function() number(x), "enum_type" = function(...) enum_type( x, ...), invisible(NULL) ) }) setMethod( "$", "MethodDescriptor", function(x, name ){ switch( name, #"invoke" = function(...) invoke(x, ...), "implementation" = if( x@name %in% names(IMPLEMENTATIONS) ){ get( x@name, IMPLEMENTATIONS ) }, "name" = function(...) name(x, ...), "toString" = function() toString(x) , "as.character" = function() as.character(x), "fileDescriptor" = function() fileDescriptor(x ), "input_type" = function() input_type(x), "output_type" = function() output_type(x), invisible( NULL) ) } ) #setMethod( "$<-", "MethodDescriptor", function(x, name, value ){ # # if( identical( name, "implementation" ) ){ # check_valid_implementation( x, value ) # assign( x@name, value, envir = IMPLEMENTATIONS ) # } # x #} ) setMethod( "$", "ZeroCopyInputStream", function(x, name ){ switch( name, # ZeroCopyInputStream C++ methods "Next" = function(...) Next(x, ...), "ByteCount" = function(...) ByteCount(x, ...), "Skip" = function(...) Skip(x, ...), "BackUp" = function(...) BackUp(x, ...), # CodedInputStream related "ReadRaw" = function(...) ReadRaw(x, ...), "ReadString" = function(...) ReadString(x, ...), "ReadVarint32"= function() ReadVarint32(x), "ReadVarint64" = function() ReadVarint64(x), "ReadLittleEndian32" = function() ReadLittleEndian32(x), "ReadLittleEndian64" = function() ReadLittleEndian64(x), # default invisible(NULL) ) } ) setMethod( "$", "ZeroCopyOutputStream", function(x, name ){ switch( name, # ZeroCopyInputStream C++ methods "Next" = function(...) Next(x, ...), "ByteCount" = function(...) ByteCount(x, ...), "BackUp" = function(...) BackUp(x, ...), # CodedOutputStream related "WriteRaw" = function(...) WriteRaw(x, ...), "WriteString" = function(...) WriteString(x, ...), "WriteLittleEndian32" = function(...) WriteLittleEndian32(x,...), "WriteLittleEndian64" = function(...) WriteLittleEndian64(x,...), "WriteVarint32" = function(...) WriteVarint32(x, ...), "WriteVarint64" = function(...) WriteVarint64(x, ...), # default invisible(NULL) ) } ) # }}} # {{{ [[ setMethod( "[[", "Message", function(x, i, j, ..., exact = TRUE){ if( missing( i ) ){ stop( "`i` is required" ) } if( !missing(j) ){ warning( "`j` is ignored" ) } ## This works correctly by number or name. e.g. p[[1]] or p[["name"]] if( is.character( i ) || is.numeric( i ) ){ .Call(getMessageField, x@pointer, i) } else { stop( "wrong type, `i` should be a character or a number" ) } } ) setMethod( "[[", "Descriptor", function(x, i, j, ..., exact = TRUE){ if( missing( i ) ){ stop( "`i` is required" ) } if( !missing(j) ){ warning( "`j` is ignored" ) } if( is.character( i ) ) { # gets a named field, nested type, or enum. .Call(Descriptor_getField, x@pointer, i) } else if (is.numeric( i ) ) { return(as.list(x)[[i]]) } else { stop( "wrong type, `i` should be a character or a number" ) } } ) setMethod( "[[", "EnumDescriptor", function(x, i, j, ..., exact = TRUE){ if( missing( i ) ){ stop( "`i` is required" ) } if( !missing(j) ){ warning( "`j` is ignored" ) } if (is.character(i) || is.numeric(i)) { return(as.list(x)[[i]]) } else { stop( "wrong type, `i` should be a character or a number" ) } } ) setMethod("[[", "ServiceDescriptor", function(x, i, j, ..., exact = TRUE){ if( missing( i ) ){ stop( "`i` is required" ) } if( !missing(j) ){ warning( "`j` is ignored" ) } if( is.character( i ) || is.numeric( i ) ){ .Call("ServiceDescriptor__method", x@pointer, name ) } else{ stop( "wrong type, `i` should be a character or a number" ) } } ) # }}} # {{{ [[<- setReplaceMethod( "[[", "Message", function(x, i, j, ..., exact = TRUE, value ){ # TODO: we might want to relax this later, i.e # allow to mutate repeated fields like this: # x[[ "field", 1:2 ]] <- 1:2 if( missing( i ) ){ stop( "`i` is required" ) } if( !missing(j) ){ warning( "`j` is ignored" ) } if( is.character( i ) || is.numeric( i ) ){ .Call( setMessageField, x@pointer, i, value ) } else { stop( "wrong type, `i` should be a character or a number" ) } x } ) # }}} # {{{ update setGeneric( "update" ) setMethod( "update", "Message", function( object, ... ){ dots <- list( ... ) if( !length( dots ) ){ return( object ) } names <- names( dots ) named <- dots[ names != "" ] if( !length( named ) ){ return( object ) } .Call( update_message, object@pointer, named) object } ) # }}} # {{{ length setGeneric( "length" ) setMethod( "length", "Message", function( x ){ .Call( Message__length, x@pointer ) } ) # Returns number of fields, enums, types in message descriptor. # May be more than field_count which is only fields. # e.g. length(tutorial.Person) > field_count(tutorial.Person) setMethod( "length", "Descriptor", function( x ){ length(as.list(x)) } ) setMethod( "length", "EnumDescriptor", function( x ){ .Call( EnumDescriptor__length, x@pointer ) } ) setMethod( "length", "ServiceDescriptor", function( x ){ .Call("ServiceDescriptor_method_count", x@pointer ) } ) # }}} # {{{ str # we need to do this otherwise it gets messed up by the length method setGeneric( "str" ) setMethod( "str", "Message", function( object, ...){ txt <- sprintf( ' Formal class \'Message\' [package "RProtoBuf"] with 2 slots ..@ pointer: ..@ type : chr "%s" ', object@type ) writeLines( txt ) } ) # }}} # {{{ name setGeneric( "name", function(object, full = FALSE){ standardGeneric( "name" ) }) setMethod( "name", c( object = "Descriptor" ) , function(object, full = FALSE){ .Call( Descriptor__name, object@pointer, full ) }) setMethod( "name", c( object = "FieldDescriptor" ) , function(object, full = FALSE){ .Call( FieldDescriptor__name, object@pointer, full ) }) setMethod( "name", c( object = "EnumDescriptor" ) , function(object, full = FALSE){ .Call( EnumDescriptor__name, object@pointer, full ) }) setMethod( "name", c( object = "EnumValueDescriptor" ) , function(object, full = FALSE){ .Call( EnumDescriptor__name, object@pointer, full ) }) setMethod( "name", c( object = "ServiceDescriptor" ) , function(object, full = FALSE){ .Call( ServiceDescriptor__name, object@pointer, full ) }) setMethod( "name", c( object = "MethodDescriptor" ) , function(object, full = FALSE){ .Call( MethodDescriptor__name, object@pointer, full ) }) setMethod( "name", c( object = "FileDescriptor" ) , function(object, full = FALSE){ filename <- .Call( FileDescriptor__name, object@pointer ) if( full ) filename else basename( filename ) }) # }}} # {{{ names # as.list() and names() don't make as much sense for FieldDescriptors, # EnumValueDescriptors, etc. setMethod( "names", c( x = "Message" ) , function(x){ names(as.list(x)) }) setMethod( "names", c( x = "Descriptor" ) , function(x){ names(as.list(x)) }) setMethod( "names", c( x = "EnumDescriptor" ) , function(x){ names(as.list(x)) }) # }}} # {{{ as setAs("Descriptor", "Message", function(from){ .Call( Descriptor__as_Message, from@pointer ) }) setAs("FieldDescriptor", "Message", function(from){ .Call( FieldDescriptor__as_Message, from@pointer ) }) setAs("EnumDescriptor", "Message", function(from){ .Call( EnumDescriptor__as_Message, from@pointer ) }) setAs("ServiceDescriptor", "Message", function(from){ .Call( ServiceDescriptor__as_Message, from@pointer ) }) setAs("MethodDescriptor", "Message", function(from){ .Call( MethodDescriptor__as_Message, from@pointer ) }) setAs("FileDescriptor", "Message", function(from){ .Call( FileDescriptor__as_Message, from@pointer ) }) setAs("EnumValueDescriptor", "Message", function(from){ .Call( EnumValueDescriptor__as_Message, from@pointer ) }) asMessage <- function( x, ... ){ as( x, "Message", ... ) } # }}} # {{{ enum_type setGeneric( "enum_type", function( object, index, name ){ standardGeneric( "enum_type" ) }) # }}} RProtoBuf/R/zzz.R0000644000176200001440000000165614535367160013337 0ustar liggesusers .onLoad <- function(libname, pkgname ){ ##minversion <- packageDescription(pkgname, lib.loc=libname)$MinimumLibProtoVersion ##minversion <- as.integer( gsub( "[[:space:]]+", "", minversion ) ) ##.Call(check_libprotobuf_version, minversion) readProtoFiles2( protoPath=system.file( "proto", package=pkgname, lib.loc=libname ) ) attachDescriptorPool( pos = length(search()) ) options("RProtoBuf.int64AsString" = FALSE) #if( exists( ".httpd.handlers.env", asNamespace( "tools" ) ) ){ # e <- tools:::.httpd.handlers.env # e[["RProtoBuf"]] <- RProtoBuf.http.handler #} .RProtoBuf_libname <<- libname } .onAttach <- function(libname, pkgName) { if (interactive()) { packageStartupMessage("RProtoBuf ", packageVersion("RProtoBuf"), " using Protocol Buffers library version ", format(getProtobufLibVersion(TRUE)), ".") } } RProtoBuf/R/aslist.R0000644000176200001440000000102714535123416013763 0ustar liggesusersas.list.Message <- function( x, ...){ .Call(Message__as_list, x@pointer) } as.list.Descriptor <- function(x, ...){ # Fields, then nested types, then enum types defined in the message # are returned in a list. .Call(Descriptor__as_list, x@pointer) } as.list.EnumDescriptor <- function( x, ...){ .Call(EnumDescriptor__as_list, x@pointer) } as.list.FileDescriptor <- function( x, ...){ .Call(FileDescriptor__as_list, x@pointer) } as.list.ServiceDescriptor <- function( x, ...){ .Call(ServiceDescriptor__as_list, x@pointer) } RProtoBuf/R/completion.R0000644000176200001440000000743414535123416014645 0ustar liggesusers# :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: # implementation of completion for proto messages # through the .DollarNames method (R>= 2.10.0) # S4 dispatch does not work for .DollarNames, so we'll use S3 # {{{ bring .DollarNames from the future if necessary if( !exists( ".DollarNames", envir = asNamespace("utils") ) ){ .DollarNames <- function(x, pattern) UseMethod(".DollarNames") } # }}} # {{{ Message .DollarNames.Message <- function(x, pattern = "" ){ names <- c( .Call( Message__fieldNames, x@pointer ) , "has(", "clone()", "clone(", "isInitialized()", "serialize(", "clear()", "clear(", "size(", "bytesize()", "fetch(", "swap(", "str()", "as.character()", "update(", "as.list()", "setExtension(", "getExtension(", "descriptor()", "set(", "toString(", "toJSON(", "add(", "fileDescriptor()" ) grep( pattern, names, value = TRUE ) } # }}} # {{{ Descriptor .DollarNames.Descriptor <- function(x, pattern = "" ){ names <- c( .Call( Descriptor__getMemberNames, x@pointer ), "new(", "read(", "readASCII(", "readJSON(", "fileDescriptor()", "name(", "toString()", "as.character()", "asMessage()", "containing_type()", "field_count()", "nested_type_count()", "enum_type_count", "field(", "nested_type(", "enum_type(" ) grep( pattern, names, value = TRUE ) } # }}} # {{{ EnumDescriptor .DollarNames.EnumDescriptor <- function(x, pattern = "" ){ names <- c( .Call( EnumDescriptor__getConstantNames, x@pointer ), "name(", "fileDescriptor()", "as.character()", "toString()", "containing_type()", "length()", "value_count()", "value(", "has(", "asMessage()") grep( pattern, names, value = TRUE ) } # }}} # {{{ EnumValueDescriptor .DollarNames.EnumValueDescriptor <- function(x, pattern = "" ){ names <- c("number()", "name()", "enum_type()", "as.character()", "toString()", "asMessage()") grep( pattern, names, value = TRUE ) } # }}} # {{{ FieldDescriptor .DollarNames.FieldDescriptor <- function(x, pattern = "" ){ names <- c("as.character()", "toString()", "name(", "fileDescriptor()", "containing_type()", "is_extension()", "number()", "type(", "cpp_type(", "label(", "is_repeated()", "is_required()", "is_optional()", "message_type()", "enum_type()", "asMessage()", "has_default_value()", "default_value(" ) grep( pattern, names, value = TRUE ) } # }}} # {{{ ServiceDescriptor .DollarNames.ServiceDescriptor <- function(x, pattern = "" ){ names <- c( .Call( ServiceDescriptor__getMethodNames, x@pointer ), "as.character()", "toString()", "name(", "fileDescriptor()", "method_count()", "method(name=", "method(index=" ) grep( pattern, names, value = TRUE ) } # }}} # {{{ MethodDescriptor .DollarNames.MethodDescriptor <- function(x, pattern = "" ){ names <- c("as.character()", "toString()", "name(", "fileDescriptor()", "input_type()", "output_type()" ) grep( pattern, names, value = TRUE ) } # }}} # {{{ FileDescriptor .DollarNames.FileDescriptor <- function(x, pattern = "" ){ names <- c( .Call( FileDescriptor__getMemberNames, x@pointer ), "as.character()", "toString()", "name(", "as.list()", "asMessage()", "package()") grep( pattern, names, value = TRUE ) } # }}} # {{{ ZeroCopyInputStream .DollarNames.ZeroCopyInputStream <- function(x, pattern = "" ){ names <- c("Next()", "ByteCount()", "Skip(", "BackUp(", "ReadRaw(", "ReadString()", "ReadVarint32()", "ReadVarint64()", "ReadLittleEndian32()", "ReadLittleEndian64()" ) grep( pattern, names, value = TRUE ) } # }}} # {{{ ZeroCopyOutputStream .DollarNames.ZeroCopyOutputStream <- function(x, pattern = "" ){ names <- c("Next(", "ByteCount()", "BackUp(", "WriteRaw(", "WriteString(", "WriteLittleEndian32(", "WriteLittleEndian64(", "WriteVarint32(", "WriteVarint64(" ) grep( pattern, names, value = TRUE ) } # }}} RProtoBuf/R/clear.R0000644000176200001440000000162414535123416013555 0ustar liggesuserssetGeneric( "clear", function(object, field, ...){ standardGeneric( "clear" ) } ) setMethod( "clear", signature( "Message", "missing" ), function(object, field, ...){ .Call( Message__clear, object@pointer ) invisible( object ) } ) setMethod( "clear", signature( "Message", "character" ), function(object, field, ...){ .Call( Message__clear_field, object@pointer, field ) invisible( object ) } ) setMethod( "clear", signature( "Message", "integer" ), function(object, field, ...){ .Call( Message__clear_field, object@pointer, field ) invisible( object ) } ) setMethod( "clear", signature( "Message", "numeric" ), function(object, field, ...){ .Call( Message__clear_field, object@pointer, as.integer(field) ) invisible( object ) } ) setMethod( "clear", signature( "Message", "raw" ), function(object, field, ...){ .Call( Message__clear_field, object@pointer, as.integer(field) ) invisible( object ) } ) RProtoBuf/R/read.R0000644000176200001440000000473714535123416013412 0ustar liggesusers setGeneric( "read", function( descriptor, input ){ standardGeneric( "read" ) } ) setMethod( "read", c( descriptor = "Descriptor" , input = "character" ), function(descriptor, input ){ file <- file_path_as_absolute( input ) .Call(Descriptor__readMessageFromFile, descriptor@pointer, file) } ) setMethod( "read", c( descriptor = "Descriptor", input = "raw" ), function(descriptor, input ){ .Call(Descriptor__readMessageFromRawVector, descriptor@pointer, input) } ) setMethod( "read", c( descriptor = "Descriptor" ), function( descriptor, input ){ if( !inherits( input, "connection" ) ){ stop( "can only read from connections" ) } wasopen <- identical( summary(input)[["opened"]], "opened" ) if( !wasopen ) open( input, "rb") stopifnot(summary(input)[["text"]] == "binary") message <- .Call(Descriptor__readMessageFromConnection, descriptor@pointer, input) if( !wasopen ) close( input ) message } ) setGeneric( "readASCII", function( descriptor, input, partial=FALSE ){ standardGeneric( "readASCII" ) } ) setMethod( "readASCII", c( descriptor = "Descriptor" , input = "character" ), function(descriptor, input, partial=FALSE){ stopifnot(is.logical(partial), length(partial) == 1) .Call(Descriptor__readASCIIFromString, descriptor@pointer, input, partial) } ) setMethod( "readASCII", c( descriptor = "Descriptor" ), function( descriptor, input, partial=FALSE){ stopifnot(is.logical(partial), length(partial) == 1) if( !inherits( input, "connection" ) ){ stop( "can only read from connections" ) } wasopen <- identical( summary(input)[["opened"]], "opened" ) if( !wasopen ) open( input, "rb" ) stopifnot(summary(input)[["text"]] == "binary") message <- .Call(Descriptor__readASCIIFromConnection, descriptor@pointer, input, partial) close(input) message } ) setGeneric( "readJSON", function( descriptor, input ){ standardGeneric( "readJSON" ) } ) setMethod( "readJSON", c( descriptor = "Descriptor" , input = "character" ), function(descriptor, input){ .Call(Descriptor__readJSONFromString, descriptor@pointer, input) } ) setMethod( "readJSON", c( descriptor = "Descriptor" ), function( descriptor, input){ if( !inherits( input, "connection" ) ){ stop( "can only read from connections" ) } wasopen <- identical( summary(input)[["opened"]], "opened" ) if( !wasopen ) open( input, "rb" ) stopifnot(summary(input)[["text"]] == "binary") message <- .Call(Descriptor__readJSONFromConnection, descriptor@pointer, input) close(input) message } ) RProtoBuf/R/debug_string.R0000644000176200001440000000506314535123416015144 0ustar liggesusers ._toString_Message <- function(x, debug = getOption("RProtoBuf.toString.debug", TRUE), ...){ if (isTRUE(debug)) { .Call( Message__as_character, x@pointer ) } else { .Call( Message__print_text_format, x@pointer) } } ._toString_Descriptor <- function(x, ...){ .Call( Descriptor__as_character, x@pointer ) } ._toString_EnumDescriptor <- function(x, ...){ .Call( EnumDescriptor__as_character, x@pointer ) } ._toString_FieldDescriptor <- function(x, ...){ .Call( FieldDescriptor__as_character, x@pointer ) } ._toString_ServiceDescriptor <- function(x, ...){ .Call( ServiceDescriptor__as_character, x@pointer ) } ._toString_MethodDescriptor <- function(x, ...){ .Call( MethodDescriptor__as_character, x@pointer ) } ._toString_FileDescriptor <- function(x, ...){ .Call( FileDescriptor__as_character, x@pointer ) } ._toString_EnumValueDescriptor <- function(x, ...){ .Call( EnumValueDescriptor__as_character, x@pointer ) } setMethod( "as.character", "Message", ._toString_Message ) setMethod( "as.character", "Descriptor", ._toString_Descriptor ) setMethod( "as.character", "EnumDescriptor", ._toString_EnumDescriptor ) setMethod( "as.character", "FieldDescriptor", ._toString_FieldDescriptor ) setMethod( "as.character", "ServiceDescriptor", ._toString_ServiceDescriptor ) setMethod( "as.character", "MethodDescriptor", ._toString_MethodDescriptor ) setMethod( "as.character", "FileDescriptor", ._toString_FileDescriptor ) setMethod( "as.character", "EnumValueDescriptor", ._toString_EnumValueDescriptor ) setGeneric( "toString" ) setMethod( "toString", "Message", ._toString_Message ) setMethod( "toString", "Descriptor", ._toString_Descriptor ) setMethod( "toString", "EnumDescriptor", ._toString_EnumDescriptor ) setMethod( "toString", "FieldDescriptor", ._toString_FieldDescriptor ) setMethod( "toString", "ServiceDescriptor", ._toString_ServiceDescriptor ) setMethod( "toString", "MethodDescriptor", ._toString_MethodDescriptor ) setMethod( "toString", "FileDescriptor", ._toString_FileDescriptor ) setMethod( "toString", "EnumValueDescriptor", ._toString_EnumValueDescriptor ) setGeneric( "toJSON", function( x, ... ) { standardGeneric( "toJSON" ) } ) setMethod( "toJSON", c( x = "Message"), function(x, preserve_proto_field_names = FALSE, always_print_primitive_fields = FALSE) { .Call( Message__as_json, x@pointer, preserve_proto_field_names, always_print_primitive_fields) } ) setGeneric( "toDebugString", function( x ) { standardGeneric( "toDebugString" ) } ) setMethod( "toDebugString", c( x = "Message"), function(x) { .Call( Message__as_character, x@pointer) } ) RProtoBuf/R/size.R0000644000176200001440000000170414535123416013440 0ustar liggesusers setGeneric( "bytesize", function(object, ...){ standardGeneric( "bytesize" ) } ) setMethod( "bytesize", "Message", function(object, ...){ .Call(Message__bytesize, object@pointer) } ) setGeneric( "size", function( object, field, ... ){ standardGeneric( "size" ) } ) setMethod( "size", "Message", function(object, field, ...){ if( is.character( field ) || is.numeric( field ) ){ .Call(Message__field_size, object@pointer, field) } else{ stop( "field should be a character or a number" ) } } ) setGeneric( "size<-", function( object, field, ..., value ){ standardGeneric( "size<-" ) } ) setMethod( "size<-", "Message", function(object, field, ..., value){ if( !is.numeric( value ) ){ stop("value should be a number") } value <- as.integer( value )[1] if( is.character( field ) || is.numeric( field ) ){ .Call(Message__set_field_size, object@pointer, field, value) } else{ stop( "field should be a character or a number" ) } object } ) RProtoBuf/R/swap.R0000644000176200001440000000063214535123416013437 0ustar liggesuserssetGeneric("swap", function( object, field, left, right) { standardGeneric( "swap" ) } ) setMethod( "swap", "Message", function( object, field, left, right ){ left <- as.integer( left ) - 1L right <- as.integer( right ) - 1L if( length(left) != length(right) ){ stop( "left and right should have the same length" ) } .Call( Message__swap, object@pointer, field, left, right ) invisible( object ) } ) RProtoBuf/R/clone.R0000644000176200001440000000040114535123416013557 0ustar liggesusers setGeneric( "clone", function( object, ... ){ standardGeneric( "clone" ) } ) ._clone.message <- function( object, ... ){ message <- .Call(Message__clone, object@pointer) update( message, ... ) message } setMethod( "clone", "Message", ._clone.message ) RProtoBuf/R/wrapper_CodedInputStream.R0000644000176200001440000000403214535123416017435 0ustar liggesusers setGeneric( "ReadRaw", function(object, size ){ standardGeneric( "ReadRaw" ) } ) setMethod( "ReadRaw", c( object="ZeroCopyInputStream", size = "integer" ), function(object, size){ .Call(ZeroCopyInputStream_ReadRaw, object@pointer, size) } ) setMethod("ReadRaw", c( object="ZeroCopyInputStream", size = "numeric" ), function(object, size) { if (size %% 1 == 0) { .Call(ZeroCopyInputStream_ReadRaw, object@pointer, as.integer(size)) } else { stop("Size must be a whole number.") } } ) setGeneric( "ReadString", function(object, size ){ standardGeneric( "ReadString" ) } ) setMethod( "ReadString", c( object="ZeroCopyInputStream", size = "integer" ), function(object, size){ .Call(ZeroCopyInputStream_ReadString, object@pointer, size) } ) setMethod("ReadString", c( object="ZeroCopyInputStream", size = "numeric" ), function(object, size) { if (size %% 1 == 0) { .Call(ZeroCopyInputStream_ReadString, object@pointer, as.integer(size)) } else { stop("Size must be a whole number.") } } ) setGeneric( "ReadVarint32", function(object){ standardGeneric( "ReadVarint32" ) } ) setMethod( "ReadVarint32", c( object="ZeroCopyInputStream"), function(object){ .Call(ZeroCopyInputStream_ReadVarint32, object@pointer) } ) setGeneric( "ReadLittleEndian32", function(object){ standardGeneric( "ReadLittleEndian32" ) } ) setMethod( "ReadLittleEndian32", c( object="ZeroCopyInputStream"), function(object){ .Call(ZeroCopyInputStream_ReadLittleEndian32, object@pointer) } ) setGeneric( "ReadLittleEndian64", function(object){ standardGeneric( "ReadLittleEndian64" ) } ) setMethod( "ReadLittleEndian64", c( object="ZeroCopyInputStream"), function(object){ .Call(ZeroCopyInputStream_ReadLittleEndian64, object@pointer) } ) setGeneric( "ReadVarint64", function(object){ standardGeneric( "ReadVarint64" ) } ) setMethod( "ReadVarint64", c( object="ZeroCopyInputStream"), function(object){ .Call(ZeroCopyInputStream_ReadVarint64, object@pointer) } ) RProtoBuf/R/wrapper_EnumDescriptor.R0000644000176200001440000000202614535123416017167 0ustar liggesusers setGeneric( "value_count", function(object ){ standardGeneric( "value_count" ) } ) setMethod( "value_count", "EnumDescriptor", function(object){ .Call(EnumDescriptor__value_count, object@pointer) } ) setGeneric( "value", function(object, index, name, number ){ standardGeneric( "value" ) } ) setMethod( "value", "EnumDescriptor", function(object, index, name, number){ has_index <- !missing(index) has_number <- !missing(number) has_name <- !missing(name) if( as.integer(has_index) + as.integer(has_number) + as.integer(has_name) != 1L ){ stop( "need exactly one of `index`, `number` or `name`" ) } if( has_index ){ stopifnot(is.numeric(index)) return( .Call(EnumDescriptor__getValueByIndex, object@pointer, as.integer(index)-1L) ) } if( has_number ){ stopifnot(is.numeric(number)) return( .Call(EnumDescriptor__getValueByNumber, object@pointer, as.integer(number)) ) } if( has_name ){ stopifnot(is.character(name)) return( .Call(EnumDescriptor__getValueByName, object@pointer, as.character(name)) ) } } ) RProtoBuf/R/unit_tests.R0000644000176200001440000000017713057365267014704 0ustar liggesusers run_unit_tests <- function(){ script <- system.file( "unitTests", "runTests.R", package = "RProtoBuf" ) source( script ) } RProtoBuf/R/add.R0000644000176200001440000000045114535123416013214 0ustar liggesusers setGeneric( "add", function(object, field, values){ standardGeneric( "add" ) } ) setMethod( "add", "Message", function( object, field, values ){ if( is( values, "Message" ) ){ values <- list( values ) } .Call( Message__add_values, object@pointer, field, values ) invisible( object ) } ) RProtoBuf/R/lookup.R0000644000176200001440000000073614535123416014003 0ustar liggesusers # attaches the descriptor pool to the search path at the given # position OTABLE <- NULL NAMESPACE <- environment() attachDescriptorPool <- function(pos = 2) { if (is.null(OTABLE)) { ##unlockBinding( "OTABLE", NAMESPACE ) otable <- .Call(newProtocolBufferLookup, pos) #attach(otable, pos=pos, name="RProtoBuf:DescriptorPool") assign("OTABLE", otable, envir = NAMESPACE, inherits = FALSE) lockBinding("OTABLE", NAMESPACE ) } } RProtoBuf/R/text_format.R0000644000176200001440000000031114535123416015013 0ustar liggesuserssetGeneric( "toTextFormat", function( x ) { standardGeneric( "toTextFormat" ) } ) setMethod( "toTextFormat", c( x = "Message"), function(x) { .Call( Message__print_text_format, x@pointer ) } ) RProtoBuf/R/internals.R0000644000176200001440000000730614535123416014471 0ustar liggesusers# set of functions not supposed to be called by the end user # these are thin wrappers around C functions, to help with # the error trapping on R side #' thin wrapper around the C function of the same name #' #' @param files list of proto files to import #' @param dir directory in which to look for proto files (ignored if files is given) #' @param package if specified, proto files are imported from the "proto" directory #' of the package #' @return invisible(NULL) readProtoFiles <- function(files, dir, package = "RProtoBuf", pattern = "\\.proto$", lib.loc = NULL ){ if( missing( files ) ){ if( missing( dir ) ){ if( missing(package) ){ dir <- getwd() } else { dir <- system.file( "proto", package = package, lib.loc = lib.loc ) if( !file.exists( dir ) ){ stop( sprintf("package '%s' does not have a 'proto' directory", package) ) } } } files <- list.files( dir, pattern = pattern, full.names = TRUE ) } else { if( !is.character( files ) ){ stop( "'file' should be a character vector" ) } ex <- sapply( files, file.exists ) if( ! any( ex ) ){ stop( "none of the files exist" ) } # TODO: we need to pass the full path of the file # or create a mapping from the current working directory # in the DiskSourceTree files <- sapply(files[ex], function(x) file_path_as_absolute(x) ) } directories <- unique( c( getwd(), dirname(files) ) ) .Call( readProtoFiles_cpp, files, directories ) invisible(NULL) } readProtoFiles2 <- function(files, dir = ".", pattern = "\\.proto$", recursive = FALSE, protoPath = getwd() ){ if( !is.character( protoPath ) || length( protoPath ) < 1 ){ stop( "'protoPath' should be a character vector with at least one element" ) } protoPath <- unique( normalizePath( protoPath ) ) # Search for the base directory in the search path that contains the given filepath. file_search <- function(filepaths) { helper <- function(filepath) { if( file.exists( filepath ) && file_path_as_absolute( filepath ) == filepath ){ return( TRUE ) } for( baseDir in protoPath ){ if( file.exists( file.path( baseDir, filepath ) ) ){ return( baseDir ) } } return( NA_character_ ) } sapply( filepaths, helper ) } if( missing( files ) ) { if( !is.character( dir ) || length( dir ) < 1 ){ stop( "'dir' argument must be non-empty when 'files' is missing" ) } files <- c() # search for dir relative to the search path. baseDirs <- file_search( dir ) for( i in seq_along( dir ) ) { absPaths <- list.files( file.path( baseDirs[i], dir[i] ), pattern = pattern, recursive = recursive, full.names = TRUE ) files <- c( files, substr( absPaths, nchar( baseDirs[i] ) + 2, 10000L ) ) files <- sub( "^\\./", "", files ) } } missing_files <- files[ is.na( file_search( files ) ) ] if( length( missing_files) > 0 ){ warning( "Missing files: ", paste(missing_files, collapse = ", " ) ) } .Call( readProtoFiles_cpp, files, protoPath ) invisible(NULL) } resetDescriptorPool <- function(){ .Call( resetDescriptorPool_cpp ) readProtoFiles2( protoPath=system.file( "proto", package="RProtoBuf", lib.loc=.RProtoBuf_libname) ) invisible(NULL) } getProtobufLibVersion <- function(format = FALSE){ version <- .Call(get_protobuf_library_version) if (format) { major <- version %/% 10^6 minor <- ( tmp <- (version - major * 10^6) ) %/% 10^3 revision <- (tmp - minor * 10^3 ) package_version(sprintf("%d.%d.%d", major, minor, revision)) } else { version } } RProtoBuf/R/identical.R0000644000176200001440000000153514535123416014424 0ustar liggesusers setGeneric( "identical" ) setMethod( "identical", c(x="Message", y = "Message" ), function( x, y, num.eq = TRUE, single.NA = TRUE, attrib.as.set = TRUE){ .Call(identical_messages, x@pointer, y@pointer) } ) setMethod( "==", c( e1 = "Message", e2 = "Message" ), function(e1, e2 ){ .Call(identical_messages, e1@pointer, e2@pointer) } ) setMethod( "!=", c( e1 = "Message", e2 = "Message" ), function(e1, e2 ){ ! .Call(identical_messages, e1@pointer, e2@pointer) } ) setGeneric( "all.equal" ) setMethod( "all.equal", c( target = "Message", current = "Message" ), function(target, current, tolerance = .Machine$double.eps^0.5, ...){ all.equal.Message(target, current, tolerance, ...) } ) all.equal.Message <- function(target, current, tolerance = .Machine$double.eps^0.5, ...){ .Call(all_equal_messages, target@pointer, current@pointer, tolerance) } RProtoBuf/R/containing_type.R0000644000176200001440000000162714535123416015664 0ustar liggesusers setGeneric( "containing_type", function(object){ standardGeneric( "containing_type" ) } ) setMethod( "containing_type", "Descriptor", function(object){ retval <- .Call( Descriptor__containing_type, object@pointer ) if (length(retval@type) == 0) { # Descriptors do not always have containing types. # In such cases NULL is better return value than malformed Descriptor. return(NULL) } else { return(retval) } } ) setMethod( "containing_type", "EnumDescriptor", function(object){ retval <- .Call( EnumDescriptor__containing_type, object@pointer ) if (length(name(retval)) == 0) { # If this enum type is nested in a message type, this # is that message type. Otherwise, NULL. return(NULL) } else { return(retval) } } ) setMethod( "containing_type", "FieldDescriptor", function(object){ # Never NULL .Call( FieldDescriptor__containing_type, object@pointer ) } ) RProtoBuf/R/serialize_pb.R0000644000176200001440000000315112710022354015124 0ustar liggesusers#' Serialize R object to Protocol Buffer Message. #' #' Serializes R objects to a general purpose protobuf message using the same #' \code{rexp.proto} descriptor and mapping between R objects and protobuf #' mesages as RHIPE. #' #' Clients need both the message and the \code{rexp.proto} descriptor to parse #' serialized R objects. The latter is included in the the package installation #' \code{proto} directory: \code{system.file(package="RProtoBuf", "proto/rexp.proto")} #' #' The following storage types are natively supported by the descriptor: #' \code{character}, \code{raw}, \code{double}, \code{complex}, \code{integer}, #' \code{list}, and \code{NULL}. Objects with other storage types, such as #' functions, environments, S4 classes, etc, are serialized using base R #' \code{\link{serialize}} and stored in the proto \code{native} type. #' Missing values, attributes and numeric precision will be preserved. #' #' @param object R object to serialize #' @param connection passed on to \code{\link{serialize}} #' @param ... additional arguments passed on to \code{\link{serialize}} #' @aliases unserialize_pb can_serialize_pb #' @export unserialize_pb #' @export can_serialize_pb #' @export #' @examples msg <- tempfile(); #' serialize_pb(iris, msg); #' obj <- unserialize_pb(msg); #' identical(iris, obj); #' serialize_pb <- function(object, connection, ...){ #convert object to protobuf message msg <- rexp_obj(object); #serialize the message serialize(msg, connection = connection, ...); } unserialize_pb <- function(connection){ #convert object to protobuf message unrexp(read(pb(rexp.REXP), connection)); } RProtoBuf/R/wrapper_EnumValueDescriptor.R0000644000176200001440000000057414535123416020172 0ustar liggesusers setMethod( "enum_type", c( object = "EnumValueDescriptor", index = "missing", name = "missing"), function(object, index, name){ .Call(EnumValueDescriptor__enum_type, object@pointer) } ) setGeneric( "number", function(object){ standardGeneric( "number" ) } ) setMethod( "number", "EnumValueDescriptor", function(object){ .Call(EnumValueDescriptor__number, object@pointer) } ) RProtoBuf/R/wrapper_ServiceDescriptor.R0000644000176200001440000000141714535367323017675 0ustar liggesuserssetGeneric( "method_count", function(object ){ standardGeneric( "method_count" ) } ) setMethod( "method_count", "ServiceDescriptor", function(object){ .Call("ServiceDescriptor_method_count", object@pointer) } ) setGeneric( "method", function(object, index, name ){ standardGeneric( "method" ) } ) setMethod( "method", "ServiceDescriptor", function(object, index, name){ has_index <- !missing(index) has_name <- !missing(name) if( as.integer(has_index) + as.integer(has_name) != 1L ){ stop( "need exactly one of `index` or `name`" ) } if( has_index ){ return(.Call("ServiceDescriptor_getMethodByIndex", object@pointer, as.integer(index)-1L ) ) } if( has_name ){ return(.Call("ServiceDescriptor_getMethodByName", object@pointer, as.character(name) ) ) } } ) RProtoBuf/R/merge.R0000644000176200001440000000051214535123416013561 0ustar liggesuserssetGeneric( "merge" ) setMethod( "merge", c( x = "Message", y = "Message" ), function( x, y , ... ){ if( !identical( x@type, y@type ) ){ stop(sprintf("incompatible message types, cannot merge '%s' and '%s'", x@type, y@type)) } message <- .Call( Message__merge, x@pointer, y@pointer) message } ) RProtoBuf/R/extensions.R0000644000176200001440000000365514535123416014674 0ustar liggesusers# Copyright 2012 Google Inc. All Rights Reserved. # Author: mstokely@google.com (Murray Stokely) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. setGeneric( "setExtension", function(object, field, values){ standardGeneric( "setExtension" ) } ) setMethod( "setExtension", "Message", function( object, field, values ){ if (!inherits(field, "FieldDescriptor")) { stop("setExtension requires a FieldDescriptor") } if (!is_extension(field)) { stop(paste(name(field), "is not an extension FieldDescriptor.")) } .Call(setMessageField, object@pointer, field, values) invisible( object ) } ) setGeneric( "getExtension", function(object, field){ standardGeneric( "getExtension" ) } ) setMethod( "getExtension", "Message", function( object, field){ if (!inherits(field, "FieldDescriptor")) { stop("getExtension requires a FieldDescriptor") } if (!is_extension(field)) { stop(paste(name(field), "is not an extension FieldDescriptor.")) } # This check causes a CHECK failure in the C++ code, so give # a more user-friendly error here. if (containing_type(field)@type != object@type) { stop(paste("Field", name(field), "does not match message type (", containing_type(field)@type, "!=", object@type, ")")) } .Call(getExtension_cpp, object@pointer, field) } ) RProtoBuf/R/wrapper_CodedOutputStream.R0000644000176200001440000000615714535123416017650 0ustar liggesuserssetGeneric( "WriteRaw", function(object, payload){ standardGeneric("WriteRaw") } ) setMethod( "WriteRaw", c(object="ZeroCopyOutputStream", payload = "raw" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteRaw, object@pointer, payload) } ) setGeneric( "WriteString", function(object, payload){ standardGeneric("WriteString") } ) setMethod( "WriteString", c(object="ZeroCopyOutputStream", payload = "character" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteString, object@pointer, payload) } ) setGeneric( "WriteLittleEndian32", function(object, payload){ standardGeneric("WriteLittleEndian32") } ) setMethod( "WriteLittleEndian32", c(object="ZeroCopyOutputStream", payload = "integer" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteLittleEndian32, object@pointer, payload) } ) setMethod( "WriteLittleEndian32", c(object="ZeroCopyOutputStream", payload = "numeric" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteLittleEndian32, object@pointer, payload) } ) setMethod( "WriteLittleEndian32", c(object="ZeroCopyOutputStream", payload = "raw" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteLittleEndian32, object@pointer, payload) } ) setGeneric( "WriteLittleEndian64", function(object, payload){ standardGeneric("WriteLittleEndian64") } ) setMethod( "WriteLittleEndian64", c(object="ZeroCopyOutputStream", payload = "integer" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteLittleEndian64, object@pointer, payload) } ) setMethod( "WriteLittleEndian64", c(object="ZeroCopyOutputStream", payload = "numeric" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteLittleEndian64, object@pointer, payload) } ) setMethod( "WriteLittleEndian64", c(object="ZeroCopyOutputStream", payload = "raw" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteLittleEndian64, object@pointer, payload) } ) setGeneric( "WriteVarint32", function(object, payload){ standardGeneric("WriteVarint32") } ) setMethod( "WriteVarint32", c(object="ZeroCopyOutputStream", payload = "integer" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteVarint32, object@pointer, payload) } ) setMethod( "WriteVarint32", c(object="ZeroCopyOutputStream", payload = "numeric" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteVarint32, object@pointer, payload) } ) setMethod( "WriteVarint32", c(object="ZeroCopyOutputStream", payload = "raw" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteVarint32, object@pointer, payload) } ) setGeneric( "WriteVarint64", function(object, payload){ standardGeneric("WriteVarint64") } ) setMethod( "WriteVarint64", c(object="ZeroCopyOutputStream", payload = "integer" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteVarint64, object@pointer, payload) } ) setMethod( "WriteVarint64", c(object="ZeroCopyOutputStream", payload = "numeric" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteVarint64, object@pointer, payload) } ) setMethod( "WriteVarint64", c(object="ZeroCopyOutputStream", payload = "raw" ), function(object, payload){ .Call(ZeroCopyOutputStream_WriteVarint64, object@pointer, payload) } ) RProtoBuf/R/descriptor.R0000644000176200001440000000203514535123416014642 0ustar liggesusers setGeneric( "descriptor", function(object, ...){ standardGeneric( "descriptor" ) } ) setMethod( "descriptor", "Message", function(object, ...){ .Call(Message__descriptor, object@pointer) } ) setGeneric( "fileDescriptor", function(object, ...){ standardGeneric( "fileDescriptor" ) } ) setMethod( "fileDescriptor", "Message", function(object, ...){ .Call(Message__fileDescriptor, object@pointer) } ) setMethod( "fileDescriptor", "Descriptor", function(object, ...){ .Call(Descriptor__fileDescriptor, object@pointer) } ) setMethod( "fileDescriptor", "EnumDescriptor", function(object, ...){ .Call(EnumDescriptor__fileDescriptor, object@pointer) } ) setMethod( "fileDescriptor", "FieldDescriptor", function(object, ...){ .Call(FieldDescriptor__fileDescriptor, object@pointer) } ) setMethod( "fileDescriptor", "ServiceDescriptor", function(object, ...){ .Call(ServiceDescriptor__fileDescriptor, object@pointer) } ) setMethod( "fileDescriptor", "MethodDescriptor", function(object, ...){ .Call(MethodDescriptor__fileDescriptor, object@pointer) } ) RProtoBuf/MD50000644000176200001440000003071514553217525012463 0ustar liggesusers89e11b2446df7566180740ee264b31d4 *ChangeLog 01d5c4ee3f042653db89fbac3699fad0 *DESCRIPTION 62fb696527f6acb69d98f22921ab5ade *NAMESPACE e0b7982da61c6cac582d651d0ac52527 *R/00classes.R b0bfbaa369be017c205961a53aec8a4b *R/add.R 4ba4ce9b1559bbd351f98b363d1eafc0 *R/aslist.R f7728fde5a6a729996478c6cf8028d81 *R/clear.R 51beacca373595b7d3c6c46541adaa9e *R/clone.R b897282b8dd73a7d7beb64fed4b1c1c5 *R/completion.R 4c30cf2b312eda5e226401c36e5b58c0 *R/containing_type.R 058cde593b8b6c16b20416eea312e7a7 *R/debug_string.R 934628b4354b9b55877bf82b1144716e *R/descriptor.R 368db1f17baa797b30db0998055b524d *R/extensions.R a28c5a39faa44b205b14c0533023a626 *R/field_count.R 545565ffa1de48a2c0e12f4166d5573f *R/has.R 188ebe5cd74c4c742413d8d2e8e1668c *R/identical.R d2332f600cbc6f7197e980f4d199a8a5 *R/initialized.R 11a0f80a8639821170ff6ca45dbeaaaf *R/internals.R 5b2fa1784a983a62114fbdd7aacdfff1 *R/lookup.R 4844c546820ace66f435c3f9e8a1c835 *R/merge.R e81b2c175d1f6281711659491c960b48 *R/read.R 669b5c47e1332fe7b22e281e7cd70c00 *R/rexp_obj.R cbf49a7e2389fe793ba7a9515387f1f4 *R/serialize.R 1e07553fc771bd00c48378440481ccb4 *R/serialize_pb.R 057d7f1eca342178c0f395f0bf41212e *R/set.R 222dc70f1545478536720b27e6e92926 *R/size.R 4c0c001d909594ded884c537cd30bff1 *R/swap.R 909f78d384b5a017fded1cc619651a12 *R/text_format.R e403daf56d76175b0dbb779fbf241a12 *R/unit_tests.R 8e22673ceaf555fba67d88124f6be9cd *R/with.R ea66c0a03e9fd9e20cf1e2188087c1da *R/wrapper_CodedInputStream.R 17289425d50a619214e0f0e791a82faa *R/wrapper_CodedOutputStream.R e05bf8f936ec7303bc65142865251a25 *R/wrapper_EnumDescriptor.R bd667d461c131e1d403e2d79e7487b30 *R/wrapper_EnumValueDescriptor.R 4c742da7dbcd7e8dc3abc57e8b7e33ef *R/wrapper_FieldDescriptor.R 680c75f7c6ae99b5ed9f05bce01d428a *R/wrapper_MethodDescriptor.R ee056c057148096b4b37a94d69470bb8 *R/wrapper_ServiceDescriptor.R 76ff7a641b87452283923433646f5e8f *R/wrapper_ZeroCopyInputStream.R 48246df8f2532ec2870973dab664f4b6 *R/zzz.R 0a7dddaf1478bf6737351c05852168f1 *README 1be16c82029b12a0e143ebd2e5b4ab25 *README.md 9c2e29fe733b28fbd0058fe8f82a4c86 *TODO ccbed1553451c7d9c56eadef46445408 *build/vignette.rds ecc5e657a5356f7305f5e693d252d8a0 *cleanup 68e19ca71e52b66255948de11a4379f5 *configure df2726b9b140a1a7f1ff78f4066eb0b7 *configure.ac d41d8cd98f00b204e9800998ecf8427e *configure.win 38719099f12809ebe19a43b951474c6b *demo/00Index 6275f697db7b64510f10f6bbc95c0498 *demo/addressbook.R 81d0dda686db1c07b625f49ea321a0af *demo/io.R 9ed50fca39d7442e4baaf9d24a1b1663 *inst/CITATION 27b7e7162db71cc6496eabe3b51e0b51 *inst/NEWS.Rd 5485d1d9d1bfb19216aaef28bd8fcc89 *inst/THANKS 24b19e060fb00703e9eb9605acc5fc83 *inst/doc/RProtoBuf-intro.Rnw 8a0cbfcf7630a92a71d4e17030afb300 *inst/doc/RProtoBuf-intro.pdf d60d4b6e6889fd2750cf84d26c5df289 *inst/doc/RProtoBuf-paper.Rnw 6527c0e0415d9550cfac156a48f2694a *inst/doc/RProtoBuf-paper.pdf 81c6d4114d136b4a43668d834a444a8d *inst/doc/RProtoBuf-quickref.Rnw 5b21ce8bcd8f96fba5f952eb7ef4e55b *inst/doc/RProtoBuf-quickref.pdf 8513688afa8b8be605c63815fe85dead *inst/examples/addressbook.pb 7f6e97dd4d48fcec1cfd7f9998dc0a62 *inst/opencpu/ocpu-getdata.R f16a4dde30d41003822a89fc99c7be66 *inst/opencpu/ocpu-getdata.py a9db27c47c52780e2fd620644059c6bd *inst/opencpu/ocpu-rpc.R 3de58b5add288354f79acf36a25429c2 *inst/opencpu/ocpu-rpc.py f3af33a40592bb447056578db18dfeee *inst/opencpu/readme.txt 45d4975a534ce2ea5aaf45c502ef4ec3 *inst/opencpu/rexp_pb2.py 9f9089f3b10a48b44260a8bd70db28e1 *inst/proto/addressbook.proto 2a3e35b1bc89e486008c91f67f39a818 *inst/proto/helloworld.proto cee1ab85ab9b103b74e0bf5be25f5cbf *inst/proto/rexp.proto c53fd49e9bd1f270d6fc87c8904866fe *inst/python/readmsg.py b4383797c61d0ec353a7e2ed5d571018 *inst/python/runtest.sh 95732c81a78c63573be5c9f43a36bddd *inst/python/writemsg.R 0d9b5f1be466ff971309ecb2afd30cf4 *inst/tinytest/data/bytes.proto c853d888d9648d142f1ba3a867fe376e *inst/tinytest/data/cyclical/proj1/proto/a.proto 66e65922360db0cbd266c44dfe39d53c *inst/tinytest/data/cyclical/proj1/proto/c.proto 20fe6aa791698528054fd3c44d11676a *inst/tinytest/data/cyclical/proj2/proto/b.proto 1421dbdd4d2390e9659eb436a99c0ace *inst/tinytest/data/encoding.proto e78677c37ce64acb1a5d6ce9155ab83a *inst/tinytest/data/int64.ascii edcac7eaf963ab392904f481e616f7a5 *inst/tinytest/data/nested.proto a8a596114f1818d1f507f8f4e6b30c24 *inst/tinytest/data/proto3.proto 0f55fc44f50565d09be96de324ccc451 *inst/tinytest/data/recursive/subdir/subdir_message.proto 64a90d269a1f1460f7afae971bd5dd93 *inst/tinytest/data/subdir/subdir_message.proto 98dc306b2d0214026885e8477fcc77de *inst/tinytest/data/unittest.proto e2af081c633af2731f87220d75873750 *inst/tinytest/data/unittest_import.proto c18bdb7e8caa98f670fc255c4a759a89 *inst/tinytest/test_addressbook.R 36f307d85021e6ed0f8c980e3a1179c0 *inst/tinytest/test_bool.R b4c24c2f91f7ab6b5e277d7c63fd45bd *inst/tinytest/test_bytes.R f9cb439604e88e65a59cceb21c281164 *inst/tinytest/test_descriptors.R 22735aeedb99726fe0a970a6aa91828b *inst/tinytest/test_enums.R 2640fa64284f9e6702b32d86be5f3ec8 *inst/tinytest/test_extensions.R 557b2707cac83a59351ddece21b9ec23 *inst/tinytest/test_extremevalues.R 29a0b8fb75a7b134a337f059ce2e475d *inst/tinytest/test_fielddescriptor.R 0acf51a1f7471b660d7262479ae62d44 *inst/tinytest/test_golden_message.R 0bf7fb246ebc7fcd4b04c10c375b2f83 *inst/tinytest/test_import.R efc963895c5e86755c700467bdf82dfe *inst/tinytest/test_int32.R c4fdc31f4324f423ce0f66369492ec01 *inst/tinytest/test_int64.R a810b2d8a25c800b27f0859d987e4d72 *inst/tinytest/test_messages.R d2b8e2924a0d3765aa67ff768f36a274 *inst/tinytest/test_nested.R 5dd9d25251f212a0f77459cf82001059 *inst/tinytest/test_proto3.R c769e7fded71d0a8a8eea6975d53b1e9 *inst/tinytest/test_serialize.R bfe1de5603f8535c291b87885d4f414e *inst/tinytest/test_serialize_pb.R afaee97f6b08865fbe213d9a7eb1c69a *man/ArrayInputStream-class.Rd 40890fed5d4ed64cafc7095aa9a0b46e *man/ArrayInputStream-methods.Rd 957f47fe82a7f668ec02282aee4af2b8 *man/ArrayOutputStream-class.Rd 0f2696eff9e3308e2ffea7307dbc769c *man/ArrayOutputStream-methods.Rd 5cb17d6909f88e5aab5887e62cd03e0d *man/BackUp-methods.Rd ec65248e4a40e1f705a69a2e660425cb *man/ByteCount-methods.Rd f6d8ae782a18986ec842ab22c4107f42 *man/ConnectionInputStream-class.Rd 9b86bbf0669b15a1c86a90adbf8784db *man/ConnectionInputStream-methods.Rd 9c1dd1706a12a141a94a7982ca4ac1d0 *man/ConnectionOutputStream-class.Rd 3ef50451a780e5a3573fcf5c89590fda *man/ConnectionOutputStream-methods.Rd b7729105e950069a2ab727d81098df8b *man/Descriptor-class.Rd b29c09ea587a461f7f6447a8e48b781e *man/EnumDescriptor-class.Rd 1780cb972946ac6cd458a917f4c60610 *man/EnumValueDescriptor-class.Rd c719999a64809be361a95ef8ae36c8dd *man/FieldDescriptor-class.Rd c233dac3e52f8137460430be14aa4c99 *man/FileDescriptor-class.Rd 909b67870f6f049dc4f531ca165aa6d3 *man/FileInputStream-class.Rd 8410f4bcb3dd93a643d1817b7cab66b1 *man/FileInputStream-methods.Rd ab0493c557b9a37cb6aa699e6046b42d *man/FileOutputStream-class.Rd 6d89722407047c622381b971f70effca *man/FileOutputStream-methods.Rd 359bb4bc81b9ea412fb7fe4248954ff7 *man/GetErrno-methods.Rd 47d2382e0e095e6580aa10a4877161e6 *man/Message-class.Rd d22d70747d8b6a2929054c2b1cb1a5b5 *man/MethodDescriptor-class.Rd a8f24fa648bfa9b4b311086b81d4c81f *man/Next-methods.Rd 29172e33c7df0cdb8df4b4ef43c14134 *man/P.Rd 04c2989db68ada4b236a65ac616bf2f8 *man/RProtoBuf-package.Rd 5e00d1563140d560193bff4d0fde572c *man/ServiceDescriptor-class.Rd f28fc53c2c8ef8b09f4fae34adf738e8 *man/SetCloseOnDelete-methods.Rd 79b80066abd78e6af423a45407d557e7 *man/Skip-methods.Rd aeeedf936ab1e7fc71169fe1c6224b75 *man/ZeroCopyInputStream-class.Rd 513f1cae2551d76a2c702fed968275fa *man/ZeroCopyOutputStream-class.Rd c092e6235449f92bed78cf42ade227e8 *man/add.Rd bfcd76fc10327e8e559d568a22e399db *man/asMessage.Rd 5a569e9722221656abeaa53e865ac403 *man/aslist.Rd 437375c4a91c79c4618d9439bb0d41e8 *man/bytesize.Rd 650fee9155267d10598ca3bfbc30d5b2 *man/clear.Rd ec80b25ba5b04242a998dd4b743c2826 *man/clone.Rd 28e05b535fa45594cbcae8ab58a92e9b *man/completion.Rd 58e6fbab8fa48a76201ce96d3c67feb9 *man/containing_type-methods.Rd 4adb8eb20d5e6c6961e50efc3261f65e *man/descriptor.Rd b0d10473fc610c8763aa8e0822d6d428 *man/enum_type.Rd a5c50110525b52974417e4f4860781fc *man/enum_type_count.Rd ac509f4bcfde554b5541b143122ad49a *man/fetch.Rd 5e6e20abc7caae612d4a5cb0d5aa8f97 *man/field.Rd 29a2f92961280e7ea5105235f05e06d4 *man/field_count.Rd 2abfd8a218be88e5108a048fd2974b01 *man/fileDescriptor.Rd 54e1485862abe98a5bb444a446945e07 *man/has.Rd 9b76094272fe261773739f60443f9bb0 *man/isInitialized.Rd 99613c07ff0d286d571b75052a331f08 *man/is_extension.Rd f3ae2777164af8aaeabf52587913ea03 *man/label.Rd 9b42f851d250af547c5adc6381e3765c *man/merge.Rd 5b4e21d267dde303131629350925e52d *man/name.Rd 1d36ed77357d85fd08bf95d70ebd0763 *man/nested_type.Rd e4b536e4574dfba5c1684dbdadd37000 *man/nested_type_count.Rd 6c281b6344bdaaf719bad2430769f80c *man/number.Rd 8c81a58d60569755860b6e46bc4661d8 *man/read.Rd 1bb12d499e1147754a02e8660ee6346b *man/readASCII.Rd ddbaf3c0c0bcba202112685e7bc7b076 *man/readJSON.Rd a82daa5d1d504c4fe08527652e8d5918 *man/readProtoFiles.Rd 9819c09ba88a668ee8285a13b8c17630 *man/serialize_pb.Rd d9b5d35f7caac9c5f3780cd80cb9f180 *man/set.Rd ea60927461e723cba2b921693f2ed82d *man/size.Rd 3983a1b4b6b4d817447ad13d79d46228 *man/sizegets.Rd e0e38658a97060b87e9b1e5e704e224d *man/swap.Rd 17d0fefcddcd72efcc76a60978bb6b00 *man/type.Rd 5badc02095845ac4e1498539be042e7d *man/with.Rd 544f42fc1c35f1de8d8c2c6fe2bc7c38 *src/ConnectionCopyingInputStream.cpp c308631a6248210e33044f688aef16e7 *src/ConnectionCopyingInputStream.h e9ecde274f161c38541d2e6736a9cd97 *src/ConnectionCopyingOutputStream.cpp 2f7edbd09315738f39a635c991a8c3b0 *src/ConnectionCopyingOutputStream.h 9af4f9491b2b3e5bb9258a7cef42d274 *src/ConnectionInputStream.cpp 6b5497098f3def43a3adf5357cf92d46 *src/ConnectionInputStream.h 7367fe0ccc5c97cb1a98cb38c9fd064d *src/ConnectionOutputStream.cpp 9fe964bff78152777033909f3d8aa4fa *src/ConnectionOutputStream.h b8c98bd0c5b4df4708a75c5a6a5c74fa *src/DescriptorPoolLookup.cpp 4fb28107f0914a1e85d9e75a12832149 *src/DescriptorPoolLookup.h 7bad2c71289ce6840d839d5d0339b017 *src/Makevars.in 88e6d5ca0ccf601ba9b520d41fc04da3 *src/Makevars.ucrt 8b74abcd9f3cbe4214191b642228ec6d *src/Makevars.win f0a9025c80ecb4ecd7e78b56970df1a2 *src/RSourceTree.cpp ec2c0c626cdb19b9b1b2a3850a46da03 *src/RSourceTree.h 34ae32444850decc880332d95a42b39a *src/RWarningErrorCollector.cpp 761a01e19cfa448dc46555d64b351773 *src/RWarningErrorCollector.h 7a0a19d1f7e7274492e2bc23ed5f6900 *src/RconnectionCopyingInputStream.cpp dffb1dcc72def5105f3c563ca9b6644e *src/RconnectionCopyingInputStream.h 9eb491ac170419ae6557de8acb57d7eb *src/RcppMacros.h 568cadf0482951d002c2183cf5415c02 *src/Rcppsupport.h 42b0baefe8adce8cc83c27372889e604 *src/S4_classes.h c9da30f2ded23d5631d1cc1515c6858b *src/ZeroCopyInputStreamWrapper.cpp 303aa1ef2030275d60d8e4bfeffbc4eb *src/ZeroCopyOutputStreamWrapper.cpp 00d70d3ee7758426b43694e94948e994 *src/extensions.cpp 52afd56eaa8013202920fc5be4a4dbe6 *src/extractors.cpp 699307a87cee7adf4a5087b934c27b01 *src/fieldtypes.h 3a1265c2b50b3d13aec9d02c46e027c4 *src/init.c a81bea8fd0b5bec76fadf4c63628de2a *src/lookup.cpp 9959b52e43f7e8e08db87c636a4da613 *src/mutators.cpp 748af48bafb265d0a79ba788806056c8 *src/rprotobuf.cpp e709f194347306cd5484758531cea36f *src/rprotobuf.h 77dcd57d1827ecc62b6cd8380314e910 *src/streams.cpp 61a9cf9d31a974cffc414370609a000d *src/wrapper_ArrayInputStream.cpp 4d6efb41f45428c4757c1d8cffad6035 *src/wrapper_ArrayOutputStream.cpp da6e48867cd6b014d541f9b75febdd6b *src/wrapper_Descriptor.cpp 7100d8b0a565ca4acaf1e50b03b87540 *src/wrapper_EnumDescriptor.cpp 7c2ce621deacb24c111e8b5a4b651c3c *src/wrapper_EnumValueDescriptor.cpp 62f221cb2ca8b06475595602f350e3d4 *src/wrapper_FieldDescriptor.cpp af9f8878c4741038f39375b2af24abd2 *src/wrapper_FileDescriptor.cpp 73d6bd6dbfeceeb9e4e1e59655214eb5 *src/wrapper_Message.cpp 34a093d89f713f4e2671045f17a420fb *src/wrapper_MethodDescriptor.cpp 54949183d26c88d0cc270b2d8e014b36 *src/wrapper_ServiceDescriptor.cpp 2c1c7ee61c0e6a8f30c291c89b46bf55 *src/wrapper_ZeroCopyInputStream.cpp 59937d13d10add259606848f88f4e65c *tests/tinytest.R 8a91a82dff044d44fcdd2eedc5bb4132 *tools/winlibs.R 24b19e060fb00703e9eb9605acc5fc83 *vignettes/RProtoBuf-intro.Rnw d60d4b6e6889fd2750cf84d26c5df289 *vignettes/RProtoBuf-paper.Rnw 81c6d4114d136b4a43668d834a444a8d *vignettes/RProtoBuf-quickref.Rnw 9ad30eeb7c977dc76b6788f8c54ecf12 *vignettes/inactive/Makefile.in 31ab1ab2350cdc2a0a8df9949484302c *vignettes/inactive/RProtoBuf-unitTests.Rnw 814abd89ea166e4d54794d8ddd5197aa *vignettes/inactive/static-use.Rnw 5ddea5cd14bf6d80df2746e1a276d785 *vignettes/pdf/RProtoBuf-intro.pdf afa1aecc170f02bb5df88502da9e95b5 *vignettes/pdf/RProtoBuf-paper.pdf 6e3b3a194ac6d2941ba20c58170ab0c2 *vignettes/pdf/RProtoBuf-quickref.pdf RProtoBuf/inst/0000755000176200001440000000000014552747062013125 5ustar liggesusersRProtoBuf/inst/opencpu/0000755000176200001440000000000012440004312014550 5ustar liggesusersRProtoBuf/inst/opencpu/ocpu-getdata.R0000644000176200001440000000044212440004312017250 0ustar liggesusers# Jeroen Ooms # # HTTPS+ProtoBuf RPC POC using OpenCPU # Script below downloads MASS::Animals using protobuf library(RProtoBuf) library(httr) req <- GET ('https://public.opencpu.org/ocpu/library/MASS/data/Animals/pb') output <- unserialize_pb(req$content) identical(output, MASS::Animals) RProtoBuf/inst/opencpu/ocpu-rpc.py0000644000176200001440000000206012440004312016650 0ustar liggesusers#!/usr/bin/env python # Jeroen Ooms # # HTTPS+ProtoBuf RPC POC using OpenCPU # The call below maps to: do.call(stats::rnorm, list(n=42, mean=100)) import urllib2; from rexp_pb2 import *; #create the post payload, i.e. list(n=42, mean=100) payload = REXP( rclass = 5, rexpValue = [ REXP(rclass = 2, realValue = [42]), REXP(rclass = 2, realValue = [100]) ], attrName = [ "names" ], attrValue = [ REXP(rclass = 0, stringValue = [STRING(strval="n"), STRING(strval="mean")]) ] ); #HTTP POST req = urllib2.Request( 'https://public.opencpu.org/ocpu/library/stats/R/rnorm/pb', data = payload.SerializeToString(), headers = { 'Content-type': 'application/x-protobuf' } ); res = urllib2.urlopen(req); #parse output pb msg = REXP(); msg.ParseFromString(res.read()); #the return value is a double vector in this case print(msg.realValue); ##### To debug: #f = open("payload.msg", "wb") #f.write(payload.SerializeToString()) #f.close() # # Then do in R do: # library(RProtoBuf) # payload <- unserialize_pb("payload.msg") # do.call(stats::rnorm, payload)RProtoBuf/inst/opencpu/ocpu-getdata.py0000644000176200001440000000065212440004312017502 0ustar liggesusers#!/usr/bin/env python # Jeroen Ooms # # HTTPS+ProtoBuf RPC POC using OpenCPU # Script below downloads MASS::Animals using protobuf import urllib2; from rexp_pb2 import *; #HTTP GET req = urllib2.Request('https://public.opencpu.org/ocpu/library/MASS/data/Animals/pb'); res = urllib2.urlopen(req); #parse output pb msg = REXP(); msg.ParseFromString(res.read()); #the return value is a double vector in this case print(msg); RProtoBuf/inst/opencpu/readme.txt0000644000176200001440000000017312440004312016547 0ustar liggesusersThese scripts illustrate how protocol buffers can be used as a data interchange format or as the basis of an RPC protocol. RProtoBuf/inst/opencpu/rexp_pb2.py0000644000176200001440000002350412440004312016647 0ustar liggesusers# Generated by the protocol buffer compiler. DO NOT EDIT! from google.protobuf import descriptor from google.protobuf import message from google.protobuf import reflection from google.protobuf import descriptor_pb2 # @@protoc_insertion_point(imports) DESCRIPTOR = descriptor.FileDescriptor( name='rexp.proto', package='rexp', serialized_pb='\n\nrexp.proto\x12\x04rexp\"\xb3\x03\n\x04REXP\x12!\n\x06rclass\x18\x01 \x02(\x0e\x32\x11.rexp.REXP.RClass\x12\x15\n\trealValue\x18\x02 \x03(\x01\x42\x02\x10\x01\x12\x14\n\x08intValue\x18\x03 \x03(\x11\x42\x02\x10\x01\x12)\n\x0c\x62ooleanValue\x18\x04 \x03(\x0e\x32\x13.rexp.REXP.RBOOLEAN\x12!\n\x0bstringValue\x18\x05 \x03(\x0b\x32\x0c.rexp.STRING\x12\x10\n\x08rawValue\x18\x06 \x01(\x0c\x12!\n\x0c\x63omplexValue\x18\x07 \x03(\x0b\x32\x0b.rexp.CMPLX\x12\x1d\n\trexpValue\x18\x08 \x03(\x0b\x32\n.rexp.REXP\x12\x10\n\x08\x61ttrName\x18\x0b \x03(\t\x12\x1d\n\tattrValue\x18\x0c \x03(\x0b\x32\n.rexp.REXP\"f\n\x06RClass\x12\n\n\x06STRING\x10\x00\x12\x07\n\x03RAW\x10\x01\x12\x08\n\x04REAL\x10\x02\x12\x0b\n\x07\x43OMPLEX\x10\x03\x12\x0b\n\x07INTEGER\x10\x04\x12\x08\n\x04LIST\x10\x05\x12\x0b\n\x07LOGICAL\x10\x06\x12\x0c\n\x08NULLTYPE\x10\x07\" \n\x08RBOOLEAN\x12\x05\n\x01\x46\x10\x00\x12\x05\n\x01T\x10\x01\x12\x06\n\x02NA\x10\x02\"-\n\x06STRING\x12\x0e\n\x06strval\x18\x01 \x01(\t\x12\x13\n\x04isNA\x18\x02 \x01(\x08:\x05\x66\x61lse\"&\n\x05\x43MPLX\x12\x0f\n\x04real\x18\x01 \x01(\x01:\x01\x30\x12\x0c\n\x04imag\x18\x02 \x02(\x01\x32(\n\x04ocpu\x12 \n\x06\x64oCall\x12\n.rexp.REXP\x1a\n.rexp.REXP') _REXP_RCLASS = descriptor.EnumDescriptor( name='RClass', full_name='rexp.REXP.RClass', filename=None, file=DESCRIPTOR, values=[ descriptor.EnumValueDescriptor( name='STRING', index=0, number=0, options=None, type=None), descriptor.EnumValueDescriptor( name='RAW', index=1, number=1, options=None, type=None), descriptor.EnumValueDescriptor( name='REAL', index=2, number=2, options=None, type=None), descriptor.EnumValueDescriptor( name='COMPLEX', index=3, number=3, options=None, type=None), descriptor.EnumValueDescriptor( name='INTEGER', index=4, number=4, options=None, type=None), descriptor.EnumValueDescriptor( name='LIST', index=5, number=5, options=None, type=None), descriptor.EnumValueDescriptor( name='LOGICAL', index=6, number=6, options=None, type=None), descriptor.EnumValueDescriptor( name='NULLTYPE', index=7, number=7, options=None, type=None), ], containing_type=None, options=None, serialized_start=320, serialized_end=422, ) _REXP_RBOOLEAN = descriptor.EnumDescriptor( name='RBOOLEAN', full_name='rexp.REXP.RBOOLEAN', filename=None, file=DESCRIPTOR, values=[ descriptor.EnumValueDescriptor( name='F', index=0, number=0, options=None, type=None), descriptor.EnumValueDescriptor( name='T', index=1, number=1, options=None, type=None), descriptor.EnumValueDescriptor( name='NA', index=2, number=2, options=None, type=None), ], containing_type=None, options=None, serialized_start=424, serialized_end=456, ) _REXP = descriptor.Descriptor( name='REXP', full_name='rexp.REXP', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ descriptor.FieldDescriptor( name='rclass', full_name='rexp.REXP.rclass', index=0, number=1, type=14, cpp_type=8, label=2, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), descriptor.FieldDescriptor( name='realValue', full_name='rexp.REXP.realValue', index=1, number=2, type=1, cpp_type=5, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=descriptor._ParseOptions(descriptor_pb2.FieldOptions(), '\020\001')), descriptor.FieldDescriptor( name='intValue', full_name='rexp.REXP.intValue', index=2, number=3, type=17, cpp_type=1, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=descriptor._ParseOptions(descriptor_pb2.FieldOptions(), '\020\001')), descriptor.FieldDescriptor( name='booleanValue', full_name='rexp.REXP.booleanValue', index=3, number=4, type=14, cpp_type=8, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), descriptor.FieldDescriptor( name='stringValue', full_name='rexp.REXP.stringValue', index=4, number=5, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), descriptor.FieldDescriptor( name='rawValue', full_name='rexp.REXP.rawValue', index=5, number=6, type=12, cpp_type=9, label=1, has_default_value=False, default_value="", message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), descriptor.FieldDescriptor( name='complexValue', full_name='rexp.REXP.complexValue', index=6, number=7, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), descriptor.FieldDescriptor( name='rexpValue', full_name='rexp.REXP.rexpValue', index=7, number=8, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), descriptor.FieldDescriptor( name='attrName', full_name='rexp.REXP.attrName', index=8, number=11, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), descriptor.FieldDescriptor( name='attrValue', full_name='rexp.REXP.attrValue', index=9, number=12, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), ], extensions=[ ], nested_types=[], enum_types=[ _REXP_RCLASS, _REXP_RBOOLEAN, ], options=None, is_extendable=False, extension_ranges=[], serialized_start=21, serialized_end=456, ) _STRING = descriptor.Descriptor( name='STRING', full_name='rexp.STRING', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ descriptor.FieldDescriptor( name='strval', full_name='rexp.STRING.strval', index=0, number=1, type=9, cpp_type=9, label=1, has_default_value=False, default_value=unicode("", "utf-8"), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), descriptor.FieldDescriptor( name='isNA', full_name='rexp.STRING.isNA', index=1, number=2, type=8, cpp_type=7, label=1, has_default_value=True, default_value=False, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), ], extensions=[ ], nested_types=[], enum_types=[ ], options=None, is_extendable=False, extension_ranges=[], serialized_start=458, serialized_end=503, ) _CMPLX = descriptor.Descriptor( name='CMPLX', full_name='rexp.CMPLX', filename=None, file=DESCRIPTOR, containing_type=None, fields=[ descriptor.FieldDescriptor( name='real', full_name='rexp.CMPLX.real', index=0, number=1, type=1, cpp_type=5, label=1, has_default_value=True, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), descriptor.FieldDescriptor( name='imag', full_name='rexp.CMPLX.imag', index=1, number=2, type=1, cpp_type=5, label=2, has_default_value=False, default_value=0, message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), ], extensions=[ ], nested_types=[], enum_types=[ ], options=None, is_extendable=False, extension_ranges=[], serialized_start=505, serialized_end=543, ) _REXP.fields_by_name['rclass'].enum_type = _REXP_RCLASS _REXP.fields_by_name['booleanValue'].enum_type = _REXP_RBOOLEAN _REXP.fields_by_name['stringValue'].message_type = _STRING _REXP.fields_by_name['complexValue'].message_type = _CMPLX _REXP.fields_by_name['rexpValue'].message_type = _REXP _REXP.fields_by_name['attrValue'].message_type = _REXP _REXP_RCLASS.containing_type = _REXP; _REXP_RBOOLEAN.containing_type = _REXP; DESCRIPTOR.message_types_by_name['REXP'] = _REXP DESCRIPTOR.message_types_by_name['STRING'] = _STRING DESCRIPTOR.message_types_by_name['CMPLX'] = _CMPLX class REXP(message.Message): __metaclass__ = reflection.GeneratedProtocolMessageType DESCRIPTOR = _REXP # @@protoc_insertion_point(class_scope:rexp.REXP) class STRING(message.Message): __metaclass__ = reflection.GeneratedProtocolMessageType DESCRIPTOR = _STRING # @@protoc_insertion_point(class_scope:rexp.STRING) class CMPLX(message.Message): __metaclass__ = reflection.GeneratedProtocolMessageType DESCRIPTOR = _CMPLX # @@protoc_insertion_point(class_scope:rexp.CMPLX) # @@protoc_insertion_point(module_scope) RProtoBuf/inst/opencpu/ocpu-rpc.R0000644000176200001440000000116112440004312016422 0ustar liggesusers# Jeroen Ooms # # HTTPS+ProtoBuf RPC POC using OpenCPU # The call below maps to: do.call(stats::rnorm, list(n=42, mean=100)) # !! This requires httr (>= 0.2.99). Version 0.2 has a bug. # library(devtools) # install_github("httr") # Actual code library(RProtoBuf) library(httr) args <- list(n=42, mean=100) payload <- serialize_pb(args, NULL) req <- POST ( url = "https://public.opencpu.org/ocpu/library/stats/R/rnorm/pb", body = payload, add_headers( "Content-Type" = "application/x-protobuf" ) ) #This is the output of stats::rnorm(n=42, mean=100) output <- unserialize_pb(req$content) print(length(output)) RProtoBuf/inst/examples/0000755000176200001440000000000012440004312014715 5ustar liggesusersRProtoBuf/inst/examples/addressbook.pb0000644000176200001440000000017512440004312017543 0ustar liggesusers < Romain Francoisromain@r-enthusiasts.com" +33(0)... = Dirk Eddelbuetteledd@debian.org" +01..." +01...RProtoBuf/inst/THANKS0000644000176200001440000000021212440004312014005 0ustar liggesusers In alphabetical order: Koert Kuipers for a patch adding raw byte support Murray Stokely for several patches and helpful discussions RProtoBuf/inst/doc/0000755000176200001440000000000014552747062013672 5ustar liggesusersRProtoBuf/inst/doc/RProtoBuf-paper.Rnw0000644000176200001440000000044213617276206017347 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RProtoBuf-paper} %\VignetteKeywords{RProtoBuf, Protocol Buffers, package} %\VignetteDepends{RProtoBuf} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{pdf/RProtoBuf-paper.pdf} \end{document} RProtoBuf/inst/doc/RProtoBuf-intro.pdf0000644000176200001440000050630314552747062017407 0ustar liggesusers%PDF-1.5 %ż÷˘ŝ 1 0 obj << /Type /ObjStm /Length 3500 /Filter /FlateDecode /N 80 /First 670 >> stream xœĠ[msÛ6ŝ~żßÚNĈ@ yÓɌ_’Ô­•8Vâ$ídn‰ĥu•%G˘Ò¤żŝž@‘â‹DÙJÚ…H pħğxv—˜`!Ӓ)&cT˜f˜‰‹X$‹™F²„ÉP¨³@„¸‘,P eÀBĦC4²P'šIĊTbŒf*¸7 ˜à>bڀŒ™‘è,fT "‚™XÇ,,’IÂ0y(C”:Â$, •bf‘JĊĦaAÄbAŭcKÜ`H,cĵ âa(Yk,.`‰Âz%&Â"KşÇÒD)ZRhƒ‘Ub µo£^OÄxUÀ%QIÀEœH"ĵ$^EJĴkDĊ Ê2À(Ë02L²Œ0—ċ@ijŒC'ĤUĜPAOĴ,SE„&EĴ4(‡à:8‰Jn€A2TxGpƒ í“Ĉ2F˜ۄ½CÑ*+7D9IÀyPV,3´q4…e˜û ĤÇîP%D€²Ò˜|@%F”15eÓ†TÁŒQNÀI°Hjc×@YKÚ>PÖ&HJB' Ĵvû'µĥ[‰Šú_?ŭÄx/Í£A6``œ`ŒŸÓäĠŜĵúr—2~ŒöÉìš=~l‡ÏÓA6žMOYÊ?ùw %Àz)%aâğ|żÙœ}˙*}‹ÛŜl´mÄù|6ZS yv~ĈžŬÌÙb8ße‡…ü1ĝaµ†Ùrš‘è_Ç£ûŞE Üşñ’T€CT(÷fÊuPĜÂßıžĈu1îĦq°ĥp4c×ğĥĵ%-‰l!…eèKK7 $חڗŽ„Ô—Ê—ž^è酞^è酞ž3é_ ÒáJíéiOO{zĈÑ{ŸoĴÛëK§Y:ÍŒôÌî~/G³Ï`/ 4X~½xOç)ñßġğH³ċ|RDçÉçìY?£ĵH=e²9Nĉ³a?Í@“ŸŸ<ĊJÒÏH>~\^TĤç=&󆂰o=,RK›żx~üúġğGg½ŝ`şâàh6aÀt8§×$ñn!ù";ÌÉÂÙe¤NÀ ĤŽwülàğÀŞ0Ŝ_~Èì䴄ĠJܤoĈ£ì†dÏĜ}¸˙/´rRü"ìwd÷ĵÔ'”ë}ĴŒı˙7˙TLÒ˘aĴ°gôábHÛáȁ1¸û9_ßä·`mç÷üñS~Î/ĝg“Ù”§üŠ_]ñ ŸòŸóÏĝZN<'rX:\“ıħ<=ʅšL"ìï]ÛÓñ$…4ސİçƒÛ´mïOa²Ĉéġ$ĊŜ/ğe8Ö¤Ÿ·—VUK›Z‡šŒġÏ^ĵxŝèùĝörıÎŞRE5)ĞQ•˘"eöµ£”IıuŻwŭÑAà¨!mTâ ¤˘ËVä3rĜbu:ĉ°âÈR%ÚZ;é‹íHzN}Äzï M“h4ġ(—´caigÈgĦ2†ÔçmŽsaœĴ˘zäGĜKx-°ú²#µÙyÌ·ŝÑk äRÖh{ğĤÑÇü„?áOù3èö/ĵÇ_X ïóWü5ü|€›F“ÚqbL&Ż˙Ùí퀏`,yžNGƒĊ …1ŝ}‚yÀħÁŻù żùrw“Nù˜˙—˙{q ‹1OS˜ŝżw˜b6âw“ċÂ’Eú ŬÏ0)ÙÍÍk”§¸1`,caDEm„{ ¸1§˘q ¸m^ÙC%À,oLNJžÇvŒÖäq ?y'‚8D,hÑZ#˘ Ïŝ²Ès·Ÿ˘ħ¸tBw€ ëÍdmëZŻÊZo€i[µŝgĞ÷güçkşÉß·°ƒĊp<ÎĈ“QJĈ`9™¤ÙêüÏġ4ƒM˜fàĥj&Û-Átyû!/Ĉ×ÓÂ(¤W™Ğ9#ä-ĊGŝq9ËÒÑ‡ÉŞb{ĉ7³½+žğ‡›ìËr:Â"†³yşÉÔfyScÖM ŜĥÚ]˘]¨S36-& ³ħ‰ZŒ ë7ŸÜŝšċ9î]9ĵ(Û¸‹ôzYĥî$Î6ƒ`KۚŒ6aUırÌżRM"ßUÁ´Ĝ†´JpÂáËŝ“·Îz½Ùtv–ĠoPŠéát1.:‡½)]-×Yét Húr%˘ÏŬ][_Wkşê½Öݵ­˘ÜÚF{}ž.½6]Uu1ÀyeÌOnhóqW(ÌeŽï‡ùpy[S{´Ÿ‡“Á-éP]wf×ŬëĠ˜f=YwÙ\EÂZ€5Ü<Òe Éħiqü´ˆi×a¸E)ĴiÇĊËŝùé³xßA9TŬ“DU9ȄtSŽXvşBµ.´FSb+?´ç"Mé1:+LäÎ ÙĥœhÖWä§'”¸T˜O:ß>xhÇi ”Ż>Ĉĥ<Ñĵn›lQÀJĦŸv>ş&o>Ip]¸îܚޠ?ġXŽXıĞ:Z; :œÛ˘Pì}T”tÍqÚĠŻ‹s”ƒ••8·ÈĠFiNd!ÍÁV[ö–0˘5sAž‡Ï­\&ĜZŜ&óšxAİíĵ›¤„k^§´e^·ilW‡¨Ë|,Pf™l‘òéı‡gİJp•ŝÚ)KU¨üé“'Ï_]>ê ²0ŝàĝg‹ua1^ɤ£ŝ×Ç ŽHuGŭ‚íq(Ŝ%Ĉ·˙Ÿ²ÉKúżŽôÖÂUîvÑ6m=£R(z’.öÈYK7Ċ+Ĉh ÍUsN1'ħ ˘ƒDĤÓÁ.½I!]€/ħĊğy¨–aóŬ˘C{Êô†È}ëñzÒ˙ġ—cZĴö\-GŸòÙ ,İjÌ e'u™½žÂMàĊÚ7 ² =íŜoĤo7o}Ö:d]S'j[˜ú×R úe%TŭŽÀlf6?\ ¤ÑtPġ4[=F}•ŜÚĠ^z ôp=|J̵z2Ż}ĴşOä‡XÔZ…ĵÉĜLÜìğăşyŻÁ ÍTBCÊ5ĉ™˜Š­eÓZ•½#6ÛךYé˙öÛ³Ëj(ŭ ?L³˙H’­NsR˙pĝsŸ/G(İä?ŸN˘z _i$a²¨ĥävÜíJiö›Œħ´wMe”˘~5 ¸ĉ8L²Q-{ħċóz{CÖ÷üé›ŜéyŻ´7_Ç­Öu,ÔµCkN£šż¤ ‚ÍCRŝrŠ˘é³m?-2"÷ĵ\–ŻĦŸµ˘!xJùHß*H/DyÖU³XjOƒ×f#œ!N —ù'*Ş[ˆ²Z%k­Ċێĵ%&żê²âW7+DŽé*tZú`3} šŞÔĠ‚Í­›Ŝ9Úĵ]Ĝb³7pVru  Ĉ/ iŝë?Ô#⊯'všÁ\ĵ0§J'}”ğ;˜ë²ĞÁd‘vs!üar–ǂkuî${âNXĉŽşwŝ†—Ï3~ù¸üòɃpŝéÙoONŠ£'یw­j§Šjĥy×àq³UŬŝ+0ìĥħċ qŻï7Ԑvn ]—ó'dÓ]lĴ”ı,C×UĜ7·ö-ŜÂê7xá+m³nòW_óŜx‹(u vĝL6ĝ›İ/żŭC³*ûQe]ĥcú>vĴPċwŻzŭwŻ=˙}c¨ËÔĜk­uWċĠwÒTË/Qz^Q¸UëzQĦ´İÜNŻéêÖkÓUWuˆ˜Ş—3<}˙C›ó7ċÔÍ6wħ›Žhת­’Wq]\O§ämBÖ9‹³Ö)ùU”ĵ-ÊŬ÷VŻlĝ…QÌ˙aGŬ(¨=…r,\ß'î˙bc7H.ŜĜÚlG7³Oï‡}ĤŒœÍ}ó×cK›´mb‹Ù[ÊGùÛ!óN Ş3%ÚSÊ!ssŸù?‰){r=Ëı{–g>˙o™²'³œ}bÑ}ŝŒî[0e#’=yŸċ1‹żĤ!hğĵžŒŻRĴ˜–ĝ;İFÜY赊ŝpı"qŸyŻĈ{˘Pv5Ħ?!’аÉğöĠ—ñîïEŠŻü÷ú.´†Êä˙> stream 2024-01-20T07:44:18-06:00 2024-01-20T07:44:18-06:00 TeX Untitled endstream endobj 83 0 obj << /Type /ObjStm /Length 888 /Filter /FlateDecode /N 79 /First 681 >> stream xœĠ˜ËNÜ@E÷ùŠúş^ŭ‹<È*‚ì˘,PbEÙ@‰ü}n XĜ ĦžM|ĤĤêt·ıĤ%ŞNµQÍ$Z¨’‚K%u‹Ż{j‰ÜpaÊĤԄ °)UÁĊ|ωSIÔ213×Ö¨UbµB@V甈ÍObboBœ5@‰KŠ{Œ¸zŞÖ(•PĥĦE| k@”€F"h4>ULP„Ä3:`ĊT`p’jÑ$ĉnën iÒÌ7˘RÉI¤Ma^ĠŠĈ1ħş( iq“V Ȁ€Ê-c8İdÑ K8c›Äì¨eZ„Ì$@ÉÜ<ô‘ċĞNV4 “Ġ€vm­E+аbkmPìâ ˆÇ şÈĈşK€r€“ço™ĵDcP r-ħhrŠĈ<röçXFĦ e#eġVÁ¸Œ²—€L9Ç`]óz,„ rĊ.dÍ-ŒĦh £Œĉ Êż9<¤ƒÓĜVĜݧhšGĈ}:2ĝÈĝ°rǰË·Œ0fÑÑşğˋĠpħşĈğĞùiĝŝóüíċ }ĦĝİÌħċ…ÒÁÉùn%ğĞ5\_ŝú6\SÔùp³úxĥ:_ q˜Öß?Fċ8Rë˙œ\]~;V¨ypòŝ˜>7+”<:ŝù5DíĜÓ)ÖGĈ ю“Ŝ´÷>R6EH'm"˘Ċ‹Cáì;?"HûEß Òç “È˙‹–ûC³]‹uÒâS-yöÍĥ§Šw’R§RÚKI™ŠĜñé‘û á~â Kß›*J/6Sá‹WħŭHÔ^ZÊLK]¨D!ñíúÛĤuÒĊiŞkaqşvÛE’R/-:Ób Ġò.ÚÔÒ)ĊĈğÑTËŝċXIrlĵ NTÈò“ìĤŠN‰5Ŝ}§*žYùȕÔ)ɲĝL×~gYI²lü-dŞċĊÒlÇĠ+ċê,ċêRSî.j·×DI½RħÎRħîC*~X×Ĥ˘^ Yg YŸ˙۟ĥí—^ù×fùזŸ7TpŻÌk³Ìk/–y'o³W†µY†µ=̰Ü+Ú,úR3ìcżgĥ<,ıWĥġYĥġWÏĥOù^ıĠgıĠ_=·>=ĞrŻĴê³ĴêŻžUŸÊ6µôÊ­y–[ó³së?¨˜„ż–(%endstream endobj 163 0 obj << /Filter /FlateDecode /Length 3190 >> stream xœí]ÍrܸÊQċ7Èeİ ĤvĈ˙ÏĤr°½ö–ĥâŠ"ĞrÙʁšĦ¤Y†Z’cŻRûyĊĵF A‚šQbKG–X:ˆÓэîŻ €~™L'Äŭµ˙ç—Ϗġäĵ: ˜XÁ¸ápk&… e¤zRžür@ŭs“ößüròòž5Fħe†NNΚ:éDRĴı•M-V\LN.~BÇÓÁŒa-:jݵ֍œşKK¤DE הKĤ*^Â5—PEGĤœÎĤ3ͰŽèğéL‹]Ĵ˘Ì´žÎ¸’Ĝċ8rĦòpßÙħf 6÷ıP-p –RTL9Ċ„ î*Ĵ5Ÿiċ\´Ò2iüS3$œ˘ı+ ÒJEV- -‘o"šwíq%~ïJsC´f(ïɞ #BhTù\1˙qòÁ듃ż46ĝ/fŸÌB Ûee V”7vù~YŸÎ˜†òš˘×‹)…†PÎÑ"_NüàÀM^×ùjê$€ÚÙDb-¨Ż\ l €„cÁ‡J(›žüĵ% †MfQÁŸ·µAÇĊeĥ\ğß½)³ġż‹eµ“!Ż”0<ŬÍPZ0Ïí³ġ³DPôvS–™o/ħ ]·7¨Bïêâ=4JL˜Ñpg‡LP!µz¨„y+›ĴàÒœ1ŞS“uÀtru5†8KkĠ˙´Ż˜(LMv`_šáz˘ ƒ›ĤħïE]_}÷üùb €vmàÔ˘÷8_tĉe,˜ϋËég€l§à…XĊ" ?íRhÊG†•fL÷VL !ˆoħN hĦôċér½ÀËâyώœĴĜğ5wž¨ıŒs"·ÍîZ\z§‡­€à˜Ż§­VċylìÏĊRX6_„˜M'್Y†>Le5ÊËjYĴÛ;R£Ŝ¸°( ċĦ+ĝ]-WypJW3Š£7Sbá(?mħÌ4ÚdpÍ\›H﵂#ü¸ƒ‚HZ‚ġ-o-aCÍÀ„†XáCÄQé5ĤĦ)êbî˘8“.*ôrsvĉ#$ñ­‚f .H‘¸jݰù@UJŻW4*s—“a¨*ÎêY™·7‰EWwJÊ ÷ĝ9Ÿ×áŽïBAÜşD~(ŠóUû¸ iġE.2ĉşİĵb=c} uĤ‘ ŭZçëjù!D8è"£ê—ë:/×Ùjċ‹;àŬ„OátÏQĥŞŠĥzˆ™eʳ–a#Êf½ÈËĴ†g[™!Öŝġ*_ 3ôĜ4ê·ÇÎó–ƒbhµœƒ¤@j°aè\9ˆ ÀaŬ–3ĵÓ `-‡²–‹ĵê™D&ĝĜ}6hZqĉ: VœÉ­´1fž‹ċúܕ—À:éşÜÌëMÙ´bƒŝ3Ğ= §Éö·máI‹ò³ß͗ùşR8‘ôHyŬ?rÓ^§SŻBQc}`×g½ĈeċeV{)Żï'Ò÷ó’7íĞĵ$ĠĉêŞ(}ƒ^ë*ˆ£Ñ‹£*´^* QèĠ7ß8T‘Ì<ˆvaÁ— ĥĴ/Ŭ€ÉWÈÑu}QĴ½ĝÚݍ+Ž;èòò|í:Ĵŝi0îĵ\žĉĦ8Ò睢ËgΌ9Wɧt~k\Ò ıñš2,İ1ß˘£"8}”_t.Î]vËUpñĞlŜ¤ÉϚ4J ‰Ó %}ÛèŭíNjċÜY2R‰.Z:´ó´XuQ MÉ`‚żİôĥâşĴìCWğE˙—í ˆq—yU5ò jZµċyuşŠáş.BMèGŭĈŬ† ÔQ°TµìÈOq€Ĥ7}U@Zö>·ŻddbƒÑ;9HèEÛURh1(́Ĉ›ğњÎ!ĵÖ ÷ú´žr7OérùOÄ7Ĉ,Z´}0ë›ó2Ğgĉƒ>t0hâÜŜΆ`Ct÷? 7OÑŝ^È;´ÒİíŞ!ġ –ƒÀu;΄@œo Kžş‰Ô€cĞ\Ë۟à$ÏV䝋ëuvıœC<ĵŝÄÔh—TŒsÇĊ‚`&œU¨l.WÄÇA¤Â¸4PĊĊ°&²`Í:Xż*ó,Fu“Rj'OÌÏó{À—jŽ5ıÁk°Ú…O#>8ğÄğş8ä?`ÚĤ?Ÿá'"­Ÿ+a(܄wnòb>gž!úé7Öĵ„ ŝì:tèYZ„˘qBŝß]w•Âı˜t}ƒÈü˙6ĉHĵèO iı˘ĉÓ˘ô÷Ëêj•u¸Ġ’Ÿ˜ îĝÊ jn0½s”C˙#$Ŝï?×Mdb7Ñ "ƒ›ÈÎMŜċċ2[-˙Ù'IÊ&q‡ıCĈ£WŒÄ;ıÊĵBZ ŻPWM›é2²²j]úYô”½HÌ}ìEFbú^D%öĦ1Óaö ë~œ½ÊŞ*Ż lŜĉġEħ3FĈ ÇGîŬk™BUYŭ¸!<–`ÜËúp,;ï:p‰ħÌ%f}Fd:,żMá9ǚÊ!q}ì ñnC̗ŒÁ”1Œ‡u(ïL~eA7ˋÇSîVIBy].óyèT;—tßA²ż—ˤÖüCCŬ“#Ŝa‘Ü9(Ċŭâ„ñË­oĵçV5OälÀrô‡‘x/0‰ŭ[ë^ê‚GÑ$_¸ÈÂÁşĊ7(¸Ï˜€Â˜ÀĜ!çO–mS#Û@ĤUlħìùŞX‡ȲĜfîí;ä=úi-s—Q’ÑZ`£lhıèeu¸^Ö~!ĵ‘ìŜ‚ĵ?²…†FéĦ #^qxURÂ{ĵŞmĵVí’WˆÂ&TŬ‹lĈ ُñöÑ÷‡_I°ĉŭĴ¤ŸcßÊ òĴ „J”A¨!ë´z{pö‰·šĤ4w!F3ƒfG@ncq#BşÑ^Ìzo*|pĤ‰_ ÛLáh°g·‘}z]çU”i¤ˆÖ!Ġ虏Ĝ}´Äğ,5vİÀ’G“pÊ̄˙°Ë³ĞÔy†›İˆYÁĝi÷h°PÑ2 „û-@ûE›÷ĜÓ1½)Ár$Ŝ†ìT7d3Kp¨ÙÏòz~ÉF„ÌO‹¸?0Côċ<š ;ÂôëĉŭfW‹TùGûfà@„¤_/q U 3ÍÂQħÒó=ƒ4aé×Kì@šê·¤R`jwîäH³ĊbkÎ{Óàƒ³äHüb òA[mAğŞË”oQ í2ŝŞ|p&‰_ n6ëôvĝü"+³y']k_Ĵˆ0Âġ1÷Wêv´Š³ ³׺xW—Ñn+É^Ĵ°Cöc¸}´ÄżİôíK$ĥñ´ƒŬmWËŞnfž½í> stream xœ”{PTuÇ×ğÜ{5tï\Vdğ“2E›6{˜™İÙH˘ò‘a, " i$ğĵd÷\Ĝuay(P€IÊ"2Rj™ċ¤öÚr0{­™35ö˜Îe~Nĥëb Ġ4Ŭ?żùï9ßïç†èF†a"?şl]Véöés³7ĴžLËàüÁaÎB¸ÛȨÇQÎFK‚߸²ĉfoÊÍË_˜òljÒÒ 3cı‰,!“HYF–“d%™J"óÉÄDfGI 3†èbDG É×LÓĊü1ށ`3ĜşH+L ËàŒ\?÷F\ġĊ Ò²ŭÚêfp~‡ĠPYîĦfíòĝÂW³ „\dAáÓÔ|ċòĝòm`ƒracÔË^n'tBŭdÇn_|]š³ ˘ßäêÛ CĦy˜*ÑL·i ŻyöğĵÑ*W 6Wž5ŬÔ=çŸŝ]4â,4ÄZEŸ„{xñà/k{oiÍŭ·Éö7¸WJŸ‘Ó9s‘%Uı˘ÍµEŬònżÛÓ`áDïÑ>w^²LwóÎç{Ż_…f?–ĝì×_‰Ĝ†FJP1ˆgàJ p"UZSkk9vÎ ¸€Ĥ:™Ú‡”BJĜÁ‰yŸâb.Th"~$QŽ`“L4hNìïAĦbş²›~ ĊĊ–>%ӛħġœ¨ëB¨¤Dh‡-ç˘é Œ™FVkÀ| ŭôš8ûz½Ç?Mhşà™ë¤Yp{,%íù~¸ĝ;˜qŸq•ÉK8Ĥ… 0'1šEMS¤|38·dϵR²JĥŸ•1Ò¨î!£ñ0YÏ{U;ĠJ€ö@L{' 4öíÇL÷Ox×OĴ‹%8žÙµ1Ċ›V³ÎµÜâ‚ĦwŻĞç}ïĤüvÙm­„*pCċµŞÒċ>@qe½*6CÍa tғ­™ıJWFOéۖ—ˏZaĠúÒġk—yŽŻ’ËĞ+e`[ħ½ÌöBÑR° [Îĉ‚üÖÖ^háêĞÖ@r̎݁Ŝj}hñĦĦ€ù£Xmôa 6gYKy³­ĤÊÁn/+³”lÌ_BnaÓ-ù:/x½f(Rîĝ2äĈ† yĵ%Ìf/Ô)Í´†ğĊûô‡;^ƒĈ£rSġ‰°kˆHËImZ3Ä#{Ĉ?ĝkuR¸g­ÛÒjċĤ-}hYYŭ1]żş&AğùĜ™żv| _–sB(v_G‘Yä„7¸¨€ù'³XÒ'iĦ×É#i;ò×‹ïż Ĉóċ9Ĥ;ĜÊê7$¨Ŭ~Èĉ6·uğ ĴVykáŞgîa\>ġyġW?Ÿîx>ÓĞÔYŝÒŽÒŞ­§Z3Ŭó@ Sn›G¤3ŭs0]ußûÊîUwˆĞ|8ŭ}úN”ìÈŝˆĴAĵUËE„Ò?"‹ĠôÎY&:& $˘i˙ÛĠ{Ï(­µNԁ³âeğk{§]-†í%aħ&%/)ÍA\L èbĊ)Û¸Ûԃ e’˜D×s↓Žĉ³bÎCcŽû‚=$ƒGùF_şOïÇèğ1Ú Ĉjé/ÙĠt§ &×dm†Â˜94|+Ş$ò›ÓÙîƒV…^âĊÒ!îĊ!òGËû¸żÈHF†k‡§_i.~YcKœ[uŒ܍Á•qädp-µ|†ġ~ĉNĈ&TĜAIÛ$aü”Óô6™:ŝ5/܈Óx4ŭpŞD-°·Z!úı ö(4^K•’^XA#e…ùĊĦ²za@š\½ŽßµŬħrżÔ‘ kr@&£ı€³wİŸo·Ğ9òl.ÇnÏQfó9޽]îçÚUµ]Ħçu˙ußÚù·hqN([ŭˆlûCÙŜMÙ<÷·lGl´KŻ˙B=ó/Ħ≨á⟌(~eۈßô˙VŒÈoĠÖ4aún‡ÊùĈ ñyŒnyvĝècğjjTĠQÖ8ÔpBŝŭÖ·endstream endobj 165 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4171 >> stream xœWwXW÷žvf¤şcAŬÁ"*шŠŸŠt ‚4AŠ+ˆĜğKHYPH UQ!6LÄÄkb –3|wó=ż;`ÚïùŝĝvŸyöÎŬ™{ÎyÏ{ßs„Ò@I$’AnaĞ7nXıpŠ2Ü!Ċ³hœñ{„ĤçLo‡—Ò/ĦBŞ'R f İ܆à†äu-B9§.'·]ŒĵëF]ġÍĉ˘µ. üˆÌü‡m§›˜ħñZż(P!·ĵψĉ‰í%ä²Ùàn0…|ġaü0ùûîĦ€ŝ]ÎŞ-Ż-/ĵŽ˘[AWĴêYıpëlaġut!şqu™ıgÖÄâû4˜btGyäòÁ‘ö<ĥ ħLhùûÛk]ŬÖĴµáħMüŽ)ĵݤ”x• †$œċ°•1–`;l˙S0 ,{@óÁĊä#ž§`)×uÁ~Œħ‡Ŭĵıž== ÷xâ} Raˆ¤L5z˙%Ärğ[ĥU†W-ğ3­ KˆWĞñ<'âm ÇBN ûf§ñĜ˜N6[ĵŒ<Â:ĵ€é0Û_@ëbM|h!ŸµéH\ZKÜđ*° JWEW½ÀĜ÷ŭä”>³¨^yħ0ôË{ï…\àCÏ8#äĥˆ-%÷í9ûñ½ìííĵo}[ßÑÉ÷.l™¤‹@~…8ß5*h@'Ï_ğz³ĝ5)Í×K:ĵÙ`Mâ(ùßTŭ–#Żd@zÙÏÀĉËĴħ”,÷Ùß²(ùŽ,ñÎÁo ż•  2ġ‰ß#„jòËüGŜßϛaòò?9SÉÈwWUu;şoĈ2;Rv£=È- ˆ°aċS?0}¤ƒsŸLŬMĊˆĤnS·È܈‰´ß#À”˜iŒHêÉÒî;á€0€ÛôôlD=Ók„¤‡çĈòıqÙÉ`ĥÇÒČD´‘]´É9$25#^ħ%}WúÓäiúÖúÉ,Ñ]t%в¤²äÄԈ:Cëló°] Œ¤#(Ÿ-*Qo˙jƒWŠBŻ77†ÀLâkĦHµHoa‡ë° fÑ{V'EoŒ ñsZB|Ñ5˙@21­ë%È/Ön‰üŠÏ‹OOÈ\Â:ž[ï%ĥ%Oqĝ3ĵ G‘M2Vj+íÌçL’>ĦġàQÌĝ\ò°ŸÎ'ı9`„ ħ‘½Yŝ‘žYĴ¸àà‘Ċ+fëû“œœ^ÏıûLß~ĴU}óqŞ*”“—Ÿ2.‹"JZŞuĴŬĉÌíó§š+.Œ#UŻJÒ"ĉ!Ĵ7‚Ĥ`ORĵW%žĦà&”Kħ %jxq KÔċÒ ŜŞ$'Hè3Ċ%~&K¨Ë÷ȏ ۝ĜtƒĉĉĴŞ Ĵ^sySaúÄğ`/”íÈí·!ô…)˘ #ÚJ­7K“bCq4CÑ0™Ĝ‚ñô#Aö@-ë·Úżû I¸‹`´†—ÍEßy ²ÈÀ€y—ħ16žëŠeÉ I§^>žC,7Š‰OŜĵe—„}Ⲥá†ñîÈùd)X_ĵî\\=jF—Nžo@ʃI™›Y˜L9ÁÍ ôħ]YPYŻşšĦ¨O+Oŭâ@֑PÀ-äIħ5mŽ-Ĥƒ…8[œ‡qĴég`ŭ[‹£l „§ä2WI}R…k8‚ĵá%ĉ̊sÑ˘"pŻ@,noĵr‘nt:„‘wtĜr2¸Žóv&zÙÙÛşÙóŞO„FĴìéDUˆ£İµ…ÑRlFƒúšt?³—ñ\䕸#ċpĵb,“·7c6*EĠİ'Ž~•}üĝ ˆî•˙ÀgD.ċÂS. †O˙$ ž1e ^ˆíŸsöôp™<6 í”ë—#ÖÖ˙Ĉû†£ġÙ%|VQqV%ş‚N­Ï²eġzïôÓĴ LI½!< Z9Ĥn•'´JĠ­`ځc\c>ÂĜç ˙Q"äA,—’£TÔ´ÂĥАWĉ×ú*Ċg“ħ&vÂó_Œ) ûŞC1t‚P´' Dë²7mSí>ħ݁=œKë.­şN/IP)37}{0˜íá0šJ‚’1AI0èçŒE˜Ğ£³]°"f°¤||Ğ}‹C÷ÚwèêŝŞċfKû×P:ĝ7çN—ŽY%c›‚‡p ŝOœeŒu°îì·Äİ)ßż]ž a­ùó—ï%ODİi#RcÙHf|y2#k˙ Ċ{&ê@hJbÍ|ŭĤòÎsÍîİÁPp|ȈuB;‰*‰vß#›ŝ¨˜ÌXÈä` ^‚ [~'óĝn_öN“yߟ'‘_° Fh“If-™€>…Ê!“° ÏĈ֏ħ&ŒhİȽv‘·aœ½|íV„ĉW%*ˆ&¤dE–EԄ6'<$[ĊâĊmóÂ%)ó˘Í„‰žŽ6N>íŻ~;ûíMŝÏ>GäE;1ı‚ÄŬŝi‘6çz]mKщčYŠŒĝC[Q(‹ö5;¨=>¸8ü¤ï1_dV*ƒ³ bú;|ÂRÂ÷„J„¨ĉ`ŬZċĥ %íßĈïCñ(9ژÊŒStLfò1T²Öí9jVÙ]Ru ŭŒnj -[{Ĉ'‹„­ÙÙçšde'ĤċìÉْ³%-…Ħ$e–Í[7íöGlŸh ˆñv1}í„X}éŜMÂs‘LĊ€!Ў¤ĈAŒ×Ŝ ‡8Ô6¤ÒĞiÖiBĵÀĜ ĊÒ+î`˘äÛô&\‰p[<ĠhiÍŭŬ Òä¤áİg‚y1h<&ée–4‘'yLçĉ…çĦĈ—Ηv½l œXA# Oo ñĴSô,¸ß³7txbbDò”ƒI ĴÉî-Ŭ§BìOeeùŜ:ܗ#1(Ĝ.RŸŜrFzäï(ġÛ?j’¨"×ÄĊ½á!'Œ#}”˜C;ĉò7Àád)XÒx%ü Á_ЧÓ} ^_…ÉZ,.œ"V¨dfşoÀ”)ĠB26%÷È*ÉyżFï¨Çè1ê:ÙX6˙*êf…俪d?Ŝb•ì3Këŭ[÷ÏşxÌWĉġ_äÍk¤ÛÛÊ*›Ï^ïŻÀê™Ü ƒ™÷.×1ċàMMЍ†ċ§‰Jɧş˘ÀXwĥĝI*R`µ%¤}×ÖŠ –ÎàŒµħ3ùj“‘3a7™ù„£ùóğ û~Ä–‹èÌŻBŬ£ Ŝ9OÜûò˙Óî'0€ħäAñsĜĝÑ^9Ĵ]ĵ]ĈT.L?•WYüe9şÏÂhFĴEë/Ü#‰ĝTG`ĝ# ¨á@ĥ˙ċ£tħ¤j$ĜG*W žıYS¸ċ"İÄêñâô˙Ż>÷L@ÏûÏÌMK?¨B#ŠU[cc˘â×­J=îÉÇy4ǞÙY‹F<<ûUsmä)ï-ÛöíŜ&êÂH 4ÀKà‘P R ßI„&¸Áİ[Ĉ -ô߂„µb”ĤĜĝ^TGH'ħˆ…%H$ÂÉŜPn.r^çżxµ{ÜT„G#,ËŝüĞċĠŽk˘.ÔR\Û\Ù¤z†`8‚Ħ›‡] ¸i_nI˘j–Ħӛ²ƒżŒ82‡´Ö;f')7DĢ`¤ÌM(ÛZ´.zypôtVMщJ²éEòK Y4œ,lċÔ[IU[iĈl´°ñÇz$["â♠hÉ×0|Äڗ&ö霊|Ġğ{ ˙¤Ĵ ŭB²3ċ1žˆ'Ì0ÇĤğŽ”D§ż+?{z…żíœèp<k(°ŽUx+Ċ ?^ġşWùZf0P^ĊŬ£o5\íĉ!„A5ŞÜş6ƒ>ôŒŜ“˘D;SˆIߑ…*Yfş=Ż.PÌ5)§Ï¤oöâħƒlò£ïnŸ—¸1Ù°ä>pkB¸"ĝo†`ˆŠ´í€èäΣ´ŭ'vÛV´y°~nN!·÷((:}ŝ9£LúġgP< išŭ5/˙ħ­êT]ĞhMż‹GÏrPz*”ĦÛĵÑBv; eR*ĉĤĉd—äV!örIĜbÛĠ!–üö~yÑÀJà›ŝĥç$7_pÄVäüĴĥ—b-(ÇÓHî§ŬaZ`9ìJƒ+\îïGuàhĵ'êEŽJäŬ­½+9µ>½PÍKa0}Ĵ´$·ħßÖxΰôó´s +²Wì àA/,@AĵŸüîİÏFÓŜàaĞB·‡Żĉƒ‰Î~2É1h<Ħ^ ( \,—‡„:nçÙäñ'ƒœ‹ŝ…Ĥ£Aŝĥö Ösë›[ĥ´ÊéNdí1ż| Yeñë- JñŜEè‹˘Ì•—Q:ŸËNÄ˸ÖjÏ9s}Ü]]üïŜŻmjċûÛÛoÄ  ÄxöÉĝ@ûûÌĜÒĠk|´Yž$o2!ĉ6‘> stream xœXXWמu™bCŬu@ÑìÚ;ˆ5•˘4iVD”"ґŞıPš4)˘Ò¤³X° "˘Ĝ"–`J˘ħä‹g6—ä˙ïĴ˜ÏäÉ˙⌸DîJÏa=·ölë%ïÖëZï)½Ózwö1ï; Żvm í–~“úyôkê?ĥżu˙½F P,›*s‘Ŭ”½sò!rKùy‹üáÀ9W|̏ċĝ ŝ::%ş“uƒt2;ĝËÁîƒ/ëiA‘ĥZŽŞÀŝ̖DŞÇHĦ\=—ÇĦ0Vaô°ĞbMvŬ€4„37ñЍċ1dŬżŠµHĊQj†ĥÁżÇ…4^h WP™ /òn•½í·]y]Ħx•1Ž 4^…m§NÄfJ#Û£?…‘$ĉ?žݰVâmS÷­'1˜?l4žŽGÜ7„žĠu݇N)ħ-¸,–@7´ŒµȤ…‹,JŜ{ho7Ŭ…ïêÉ:ïòˆñEœUôÖ;ïsòc£ IfoĦz(݇}ġ"Â,U‡ÎÖ•˙^˘#¤Â—ИÀ1!A4΁˜Ċ¤'/¤U°Í‰Ùµ $„Ĉ³`‘UZ^•6“ähL—Ï?ÜÖd¤üúÛz”ŸĵÔ^t³X“† ĥŞĦ4żċ ÌÈA\ñcfGÒÎxÄÉË#QŠÜêéêٕëüTvòrMáي>Fâh=dhânİÊ:+-с„*fQB` I0‹%ĉ. ĉn˙ŻıàÇNŸDŸ._gĉÊßmQ-LĞ‘U78߇‰wÍNèÊWÂ+ÁwK߸-‰:³lĠ4Z÷G›”ò‚V²€UzNnVž^‰^аG´#ÖaJCk#Odġj;˙²<¤ç rˑMi›39ùÊGÁhĞM!Ş .5ÊjŜŝÑúœ\fÀ÷üöF 1od7F¸Ċz’ó§ŒĴÀĝç _Y.GZ‰½Ĥ>Ĥ1&M“ÍÉíX‡bWĴ{s@‰r!ä*‰ŞpÔȽ<"ÙÌ´³ tĞ OvŸzŞgKžvHŸ ³y|‡]”ÑQQ·?](g}c|wÌ,-ı£„L˜¤Â“~saטxÒ[Ymġ’‚ŞzHŞSêGéżòRlğ\“’\x…sÉêòîUkqUh Ĉœ'T‡cÙfñ?q8~ádµù#ĥîjħ)t‹2³eŻ>2ĝ !Òç"q ;ĥÁöñ‰Ĉĵš‹ ıï WĈ:%d’Ml÷–Ĵü„˙†Mğ\†{ğİ„‡Äñö´ ÜsiİĦc‘ş­i­ÙçÌĥüċ‡™Ž”-•Kb„$iŒàÇğ°—˘aF—)}ށ…‚ñ…Dş/vaÏÄ&áĝ>î ÷S3érâ‚eXƒ˘R’zÖŝ(…C˜0Èè͋&í ‹û.TrÀdô <—İމĴ&ÑżòL”ŬaÍıMkĞS?ħG&ŬóɈÁĈf†ŭ oW?ñr¤`|î3{F𸗠£ÍĴ×%3„ğuĈİ ‚KaT­Ĵú)Ĵ#Á †'Mü+†—1ĥb Ħ†}ğĥf–Í[eî“•§h{ÈI9”@ĝófö#;‹'{ ‘œĵdŝ Û{ ypj̽\Cŝ>Ĥeïı!h âì=JNÜş|†WÂA¨\˜X.I‚Y=B~£°u$íVċĴġŝ˜Ôw0ú%ı>ŠĴı•³‰x,lA°\2qÎĜ…mˆN 5ÄżŬ„äú}ÊPE#,)ÊȖ<î€=$Ŝşj_÷#”~÷)0…ż<‡ù0tî Ükíš0_G%”°,Ñú°%Ʌûˆ[oÎ/Á°ÂÂëÄìDq[‰É™„áÀ<ù´ôˆŽàĤ„q‘wÍL7†w;³—˙BÍ25‘ĜóĤ¤\ò­,ŭöSĈŒş–x/ò´ßĉ9xâñÀ ˆä?xËßê+ gV)ÀIlÓ·¤Np î-eÍ:ê‚0²RRŝ\*|U͟f×{m!ô4ÒäôÙöǙ1éÊÙlúô˜tÄËÍ)n²İœˆ‡}ìgcaè™3™Ċg‰t}èÉ!áİ´H\Ğóƒ´PÂÎßévݵèKìħr#ĞĜe ašZIMğ,z½e+‹­ğb°-}o&-PôƒJ6`§E$‰ÁfĵÁġ²:A§Ğ ŠNéÊsêtËÈÛ혙Á$ˆî  éĝĴTħ)íixËyÎîâÉ#š#.0Ĵ…Ċ$ħ²²§J Z#ÈĠSxlÉnŬïïE˜oÒaD‡=ÔÉنìŞSJı*‘4½žz.!mV^ÓŜĠÎğĝş†ı"nŠĊ è ?x{¨0z×1’ĠŬ!ĦÎ_œ‘hBbĦ ÉnVu…nŜ2YY“ˆë.ÎìĊˆĴşk ‹;…$:[ŠÄ‘Ġíıè~XÄyp݆áu’òÇŝL*Ĵü·Ŝdïo¸1Ĉw`àw(Ċ+Ħ‰KAÉ(™ƒ~‹nc ֛0 OÄcŸƒA—ŻdW^TL…ŭ<bö=:qWË×ΉAÑ(†XìÔ(tž‘Ôü*˜üG*ôP/âg ùVĈĤ›§ ,!߆×LšV´{֔يn#¸ŝh|Ċ˘é›Âˆ³ÑŝÖÂĉĜ|*ĤĊn*Ñs°|=@Gİ ·‰–ó*PIŜtˆ )c–‹Ħ(ĤÂÊ[,z˜{ş&ûıĊ ûÓ˘C\ħ{ŝjÜkĉ8Î7U:͛ïìheċÜ}{e}“’àÜ5‡p=´8Ù ^aa?uĥM}SmQùÙL…ĥp‰Ä}pëGRûYÔ@) IMDs{—ħOĠ -éû·İĈIÜàIZCÍ2Ġ8‘İf•8Ġ@Qr=Tiu¤ 3üĉߕ<˘[³!‚ÍŠËŒKGÏQĊö#³sÌâMÖçù—DÔĦ<”˙]á>î8ğ‰ŸyÈ=ĠïB€êÛ³^ġŝ%n9€:tĉzL@ntÏTĉèqÓÈqÖqŸè ŬB‰ffËÈŝĴìgà†‘bj;Ŝ}ğ÷÷ŜĊĊ‡ó‹‹·v'Ħ‹ĊŜ Ĥ8òžyyyG}ó<=üü<ÚP„ż‚£’6PJ+Wü۔kw Ċ´x”Ùğyûm HI S´0˘NZà²fA1ŭÎgbÛÈ|½QďvŒ%3ÛF4ĝżF+˙o£?½Û+•Ĥëş>0Ŭä_&²%Á‚Ġ›à|U˘?İ ŽĈàw•ĴE€\ò=È „^üfO/WׂmG––yŬL”k7o’ a·/Ѳvž†Ġ‚9’”‚BlkWófĉîȊ[QäŞ*;”,%6%â€ÂŒÙ“ˆö£DTäDN$Àá•JRĠ Ç’B‘zGꓴnÇÛ;ħFÂÈNvĜ2> stream xœW TS׺>1É9GÒ"6Ap@Efœd.‚  ˆÊ "2ĴŠZe£VŻ(µÖ8HĞ µˆŠ8à‘ Ai£ÒjĠŜ˙äíîŬ ĥŻo­÷ÖşYY9Ù;ûœŭ˙ßŝŝ˙û" DC(@0rŝŞ”ևĈ¤L ‰OĜ “SĠğĠÙb¤'Dz"4FÒnrC0Ñ8’Ò<ŬS=ÖÌ[ëıÎ+Í{½OúżŒÌ˜ĴÙħ9qñA+ƒCV…^˜–ž2iÊë_„Smlíìsœ§MŸ1Ór–‹ëD+в ‚(K*˜G- ĈS!Ô*”šH-¤Ĵ¨0*œšL-˘ST5Š¤<)j ċEySv”eOùR~”#ċO9QŸQÎT5 ¤ĤSóİa”•BéS÷İTʀA¤ )#*Š’PŸPeL™P£(Sj4%˘Ì¨1””bİĦ”A‚LÌ˘rÁ‚óC$C )Ò,ÔÚ ‹X‘ğh£hżè‚è•8W\M‹èÏèƒtŭ;Ée0ëÌĉ 7´|hó°àaۇöp87|ÊùÏ Ħ7Loİ^Ž>ĞĤŸ¤ŸĞ@˙µžıAÁżFĜ@#ȉ#K 9†7 Ÿ‰Œ\ Ü@m‹ä°DÁÛÉ|*Ĵá:ñ{ïW§ˆħ‹RÄżÑ°F ˙Pp8—=x&6à둜iO”µuş=…ŬŬ&’Úĝ£œä{ÍѧPHÚ˙y½íysMl€˙Ğ›7gzüŻOpHñˆ’J~èe´ğ*ar•F]*èRÍW™Hĝ.cPÒ­èʑêVòĦ˘J~ġĈhÔSÁJĝĉò³×ŽFġ™µñgâÏF|…X\GĞ}rÁ—ıŠÊĥžÌ*Éü:Ċ˘¸ĵäu™iYİ[‘Eĝ9{ “ıˆNo:ĥž<ùXúÁ¤„Ñ(ñ‹¤ éÖ§lZ†X’Pz'oŬ)¨èú!œä+8<ÑÁ{bÏ^ ˜û>À\sz§È Ŭ¸—×Ŭ°1ħÀĠÖ&¤$`tCĦ’¨WĤ+ù~à’J¨žÌ#.œlĜ MB³“‚üĉ%X"< a½Êq­ž×ü´öoôĉġ1c§ù›WċĤĤr%Q·ü!¨{Ğ!{ÍiYiÚĦäaÚPqŞĉ)ĝÉ £kZôŻô˜HúŻáTî)”ÂêÖ· Ì^€\ÀÓ†`™LòÁ…$Ċ²]n äpż4ΆxĝüYv2Iż‚Ç0FÜ|ÜĞM)ù;JÁ ?F%|a gh1H!2°¤8P†ÏŞ3Žżs÷h2žĉLÂdMPÒWğ…|>‰KîĊÄ5Ÿö&™Iíħ{`·ç mż\r£Z†Ë•>ƒg?Vİ yĵR³k …—+5´<'”Ì’o—µPL$­­Z>ŜÖòñ$ƒ:ŽÔ++9rrïÍBö#İܕ·µp“YZ‘´Ä••´b x …ôżö·Jü–ìcÔä ¤¨h~Ç Kj{`K÷ç ¸‚w>7ħ>ÉË`vÀä™5q02EĤÈş™w<Ċ›FFöX_|,CşñĥCÛ+YGzÖoYŸ’ġ´é­"úĵċI™ËŸoRĦJÓKçË[îW¤.Ü%5PIWÂ%”*TüFPÁs1Ò2il™*—˘×=.ÈÍKY:Ŭk #lÂâtĝÛAÄo]•]¤Ç'‹oèÊÓÛùÉ-‚gŬBĜGPs†q38OŸs:ĵ"I.ßġĠ)i³iÇĈ‚Ï›°ı¨Rĝ9£­šv>RnÔÔ {şçv˜HT|†ħä-t̘‡z9ùĊœğ+ċ™+Ĉİ)ôwİDĠ‰êJëZY†ìŠäj/ıàÍK!„ĞS¸İ)/µëŽQUĈĊOħ•Ĉ›óä+hŽŠµĠ-áŻƒn‰Ĉzo-OOÔX›“/ĥ4X“•/é·ĵí[ñ` v‚š(&¤üŽÛ²óK´ħİŸ*‘ÁmFċsss6Ä%JׯŬœ²sû”ŜwŻŞLĜŽš5² JÌÈġËÇr³żLÚ8?-y)òa­›ƒŝh?~í–toxÉúkè0*ŜUşĊÀ‡CkòsÒÒW%Żĝ<ħŝñċġ •§^Ëz~ğçT1û?y^„xÂ^mĤF8AˆĜš†y¸bıĝ Ĥ&8JÜOkó¸É׺ájn >sn~}j;a•´Tи9ÀÒy‹×ÇÉ Œ ĝ(§ĴùÀYv/x~NUŞ?!hŽ"'ÇkĴñh‚  ^šI36ÌÊKDĤ_ ĵ]Ù{ĜıÌá-‡ż<†JQÙŝcߔ9tì›ÈSŒúĞ2ÊIY$Á[îË+›Ï,K¨ (ó µ1Ö‹HÍğö™ƒvuÀ'E²étŜôċ1žˆµ]Ĝ#Áäšâçĥ +<ŠHĊ?$FG/żŻWÈ'C b ôŞS0Çàā8Y=BŒIâ½<ĞħÏvŜ ]À‘44fp‘ĈÍ=ñ\Ŝ­+¸Çë‹˙ߟí‰à7Ÿ ëCOi%eŒ`ìĠƒ0ö§ËMeŜœÇp}¤=bŭżÚ“Áí'?ËtÂ-àÔ)à‹`#‡oğ”[½êıËĠIäqĤ’Äçâı?…‰ ×ŬôQ’xş÷Ò_Ž–Xs!óôÖÓWÙ]-Üŝ[wŸ"Vy×Çy'ÚY°SĤëZ=İRñ‡TBŜTÍáxlmpÎr…•½]—oÉşîׂÁpÀ2˜ŠWKgŠÀáwĴ‡°§ıĜ`[K˘Üàûž\ldşâIĜfí‚^RġhNJúĴüÛŞ}ğQÁi+“µgSabŬ˘˘çÊĵ|Ú4Kğù=Ì a¨QÂ~àgĵè}¸A6}]<\}öÂı#µè> ŸÎêĤĝšĥoòf"Ĝá̋ú%..áK…˘ u”)끺N!oGB˜ÄÜY\ĉK€3µÇ,vs>îu>BV}}]jF?žŞmf×2ÈsËòŒÔ É˳£x´Ş(ŭÛĴCù_o/g§Ñû­:ƒaR û'ÏԜğt¨Á–÷gpV ×W?›`°9Žv u’}]ñBö§‘Ñ2˘­›ĝa› ş‰‡Ñ:˜ÒÒ-ır鉜˘4´’t2½ Ŭ—)…ÓŒA­ÖËT*^D˜Ēlğ+cíeŝhÙ?˘‹SLA|œN<ħµdgèeUÌ>£<÷ŭÔ͂ÑìVl)Ċ/t0™‹ˆQÙ@ĵÌéü™'3ŠW£hÖ9:ÎJji$Ì·ŒšŸÎ VĞ&°fhŽvӒgêÑt‹§49B–· A›Š²¨ĝƒ\XNêĈ³ œNV3ñ(‡Ú×i2[òËúš•(ÄĊeÄ&oH͌ÚŒf£°#‰5kżûâláE˘R…ĊÑeħ—}ž&€ġ òڊşêò&tġ…6[•âÏêF9žH:…³›ê~ĥ)ÜşP%NmW} P µnPÓÏ,ÊÉYĵĦÂİ'S´óĞ‚bÄĴĞz Së3#šaÑMë„WÍ(5‘ŬŞÍ8ÈWjZgÂÖ3Ġ h›ÁMÂÒħÚbĠÎrúÉc•âw4^ ݉Qò›Ó8 §‰u&L-• žİĝa‡:rf?3É3 ‹.>™(M8•S‰X~ż ™ÇVĜ‚;́!/a‚”ßÏè ÖnĜòTÖäĉé):tgù1Ĉ°—xc+/Ó àĠü€x" ‡ˆKÖµ­żyâµÚ·‰äĵΟĠÚ%#éxÔpğċÎÙx_)Nh‡·+âü´CŝSĉeĜĠI^1Á‘Òäë1'|ŠZ·,€•œHâzŽ r1ï‰P…ı7`rüĜ#p˙‰`Â.¤{ħe9nâ8ħc$vuÄDgžl–CP›ŠÚ„|9È9 ħ^8Çzùh2ü¨ş-o>xµ)ğ!˜ì |ġ7hùHÇ~BGŬİ’ó^óž³lÌf÷ĈÌ;ÙxĤíìĊç2c´Ş³ú%Œ§j%fváp:GJ·[ħ Y6,˙KFŭ Oé˙KX,*œ›˘d™Ç·œÏOöupëÁ½ûvDĤe‡óÒ×g%§eî=-Û²'cĊ½µÇĥU#ÓGµ7jROFäoC;ódfOšaşÜ¨§ĵHúŭPô§O°r‡5µ>ĥŝ$ĝĥĦš8ĵelù !„H,ßk'2ċşÍ&›6‹hĜĴŜüÑĞ(‚ó}PÙ'„SêÎŒŒ L·ÖY¸üÇXÖ0YIÚXH7ü²ôžtċċàS¤qşŠ^ĠN!."*jê$›żB8„×z5Ĝçp°Wù]œfWŻ:b“Œ™ıxL@èUĴĉM£ ‰çżŬ˙Ë]kïP_C„mfŸßŬi†Òûo~WÙsċ͵Qż]ğÒN:­ġ 1U1U‹ġEöÈ7).(-~SôÎyl/½ûÒŜ²ƒÇŸ˙ħ¤ħCĉ„^ ³]„­Ĥ/÷ÍÇvĤ|òGCó°Óˆ—ġy÷™HžÁ:PpèÊBħ¤µ˙rô4‡…áĥS–^z·MFĴsHÑÊI>m‰ŭÄèLxÙ£û/O+“Iž5—|ùÁh0˜ĠŽÍ°ċWĝä~Ŭ‰†eĜ=tʈ–Wçµ° żšSŜñħušè<-üÖĞĈĤ'Úí2ċÚ->[ÈıщxħÒ°X<‡Nô}€˘“ħ‡Ó>oéxœ ~DKÈż†ĥXċà!ŝ£Ċ†vátë éïȌ@ë{ !-aġ`KàŠ>v†ż ÉoI„ÚY Üú˙µÒ' lû½M@šûœ&Ë‹Ï˘Ç‹Ż°N-~/¸§Ŝ#Emy‰)\·6q;ığñĞïDÙ·ÊJû!l"k&b“쏰=Âwħ˙ÒmhG°Œ„Ùœ8ցk/YĦ¨Wàgendstream endobj 168 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4107 >> stream xœ•W P×ĥí tÛQáÚï5"8äE% J@DÔ0ÏAf¸rEAƒdTĉY™Aġ‚#bg£gâKe’˙ȗd79äċŸIŝŻúU˙VŬŞ>=î½ÖŜkŻ#˘T”(‘H4÷Ӑ€½ħÎŝÛ>²Œ ÛµEĉ&œßGŝşv"›F³•Ñl•’÷5kB¸°êƒs(á·jc„eäĤ(Ğhë˜XÙŜ-qr˙}ñ;·ïßä°;Ĝ)ÄÙ%4,\ÉoÑŞĠkŒ?^ğÎd1E-˘ì)=ʁZL9Rú”e@9S.”+ċF-§Ü)ʒò¤6Q^”eHyS֔ µ™2˘lİ-ÔjʎZCSÛ¨íÔ§T8NYP”&%ĤĉREÍ£´)J—˘İĠ$/J…\>.ÒĊ‹^*™**½R–(û+˙˘²E@Yeˆfé›ôïŒS6Cu†íŒĝXGĥ˜}ó^ò{g&ÎĴ›e9kÏĴŠYfŻ]=ûÂì/TMU}U/ĞmSKWu™zÓĞ9_häÁµ‰ Tb€Sċ`X.â` WŠ—³|"œĈ™É –@Î ;2`­´¨œ7•ˆrM>–Ï· ßĈá“m4,dîÀ5Z<4R˘¸|wŝĊÚ(ïƒé‰G÷JmñÂĊgïì²ĴRTŞóÂñÊŞQ[]%â•#´ ǑüM@C“żK²yâħ-fŝ…†ŞŻöġ^lĵn ~yğG'+}zéìà.êHèˆ nġ,وXü%ó ŸZÀ„†uÌ@Ŭ1‡˘öï“îÙûı;bĊcx?Ëu‚# 6Ì@^Ÿ˜”ÈÄ8İ,$2É ħ$3¨À¨ˆF@Ê@O™7â/p‹‘‘ŸïmaK1‹Ġ^š6Pßt ߒôÜnüúš…9kŸâ’½X…ğĠákċ•èë/ sö #ß´ßĠŭÄOÇż•’e0—ρı˘_`™òÄi>Ž;VŸy'/XôŻÀê Ŭ L%VĞŭ|„9Ży³ ÌÁtÇÀüĵë1+ĴÜ?DìrÏñ‘ÚWŬ÷=Z^ :ğŻ"¤Xž½í²Àċ`I2ù‰d§4àŽ@B˙–!pZ*ìğ"ï#0&ɘ€/ˆm_|`ëîà+e××ü™ oĔħ[p÷=| J_K§8"œkˆ&f žiA;úèïĈüxÔÌda“ÙĵE‚Û™ÊÉ1nŒa>óÏnż•˘‡8HwXxEA˙3ȇÔ§HŒû×Ëoú5Ĝ uh½ŸĞ…§U¸Ħ€ıú}ӟï]k¸Ñ-ħÇ-B`<‘A–Ċ\_‹ Ô‹Ö¸wĈÓİ@WüݘD w9ĝ‰İ ˙ÄĠÁĞ1ud5Yà¤Îùİ”QuHu낔T·¸â/…} :iħĊHÉċ³#óO˘ÂŒÒ´Ó°HûpĉtmE[ŭ},YñÂŞŸIƒ(ĤËH“´Ĝ2˜K‚yâQ~˜Wâ²K3 ߚ÷cÍ ĥq;$;#'r>ğëUÄómñĜmyqŠL7t‡ìÓà°üû$‰EİÇ3ŞXĵ€IKÈHE)賟ó1²žäÄÂ'@Àܛğ:ÖĠH?Ĵ÷8™XˆÊu[*ñ­ŝ&yhjĈÑôİ|-+緎ŠĈ`‰2żŠŻċ̘3 O“˘ú´ #7¤‡kü2-1=Ôqé {ÔT},ż^RŝcbúáŒCHG–Px2'Ğ(ğD:=ô—ÌTğ›ÊEŻ`ı2ß3ĝ6ᅛñƒŭĤîîvHÇ3şĥ÷y¤Jz^—ÖOÎ>ş/=ĊëĴżîŝêq_Ŭ`Ÿ$a3­gPù„5"•‰p/Ÿb–“o(iċ"ĝO-è^ż”Á“Òp^*>&̨M”MŬÂ˙Ĥ%Â-ú ^;İF8Ĉ‹gàĠ“jGx5ád›@bLù99“sŝLÓ%Òퟀž5,š'âĞK¸„’Ôbtċfĉeċß…ĥx4ğ4ëd‘.jˆo‘•…ÖzY#l„L"ħ ó˜’ŝ3ċƒˆ½\y0<.qŻÌÇkĞ­/o ‹ç|½–è¤êĜ (÷K°„‘úĊx#Ö)°­żċĞ—BÊ(‡£˜‚ĈüÒâ’êĈβNԂöGĉ%dBĦ,‘R‰kFż#â͈°ĴcŠı 'OÔ B”“Q—V9ퟵ?3-CnŝrD;msAnž1†“ĥBɍòĥô#ˆv9|Nb‰$šÍż&šĦ˜{ĉ9ş^­¸Öw­ċ%z†ÈzÎì8nKĉŭ­wJ1Âs܈¤Áék ġ‰8´+!NrÀmzÚ|;>Ŭíµ`@J[rB[üş¨€ÓHÇYşmq´ ÂJh9‹•Żè,ğ1(9`™hç™%ҏyU6H3‹hĵ˜IO"šxÖž•·ĈŸ?<€Àèa̅Y|?‘ |z1wµĠ{#é½UîĦç†@ŭ #Òwêm 1j@âŸJ†W‘NOm”—àžâŝ·{zî¨XcċıÍMrŞé);WI sĵSĴÀïÁR{Á?ÂyèâÀ‚ıV””v0e·T<ĥÏĉó h]””•œğ…ĠLnŬÁÂ#…è„QĵÂĴBâ­Ş@=§FµG×ı—(jkKŞkXñ?::kn_%'tDĠ…6î<áˆĜIĠw ĵâWkċ$ˆÌT•Z–pâ`ŝ~´E&…ĊË£#’< ‚óÂP~2mIĤ§ĞÂ: kKR ÓfIó),µ$c4–a ĉ‰MĝóÙ\n}Ö TÎe8ˆW/7ġt’8y[ +´î’̊ŭQN(ĝ.Aî£kkë§·Ò½éZNfAf0iòŒd”ˆÜÊ}[÷\ôŠûmı~·Ğ§îú=sı˘_ŽE•ÚâG•Ej×ĵÚùŬ˞×#))’)…$ĝüÁSĉax*ös“c .ËTn˙Mq;XßxŽ &s $@W38ŭ1 áß}JíWĠwĈ{"– Ĉ{ӟüÉ<#ĈûŝÉîs×ç·×Ȃ“2’ÓI7â˙˜xòa÷ÙÛH§­B;)=!-Qş NWUn“T•{Ñf×'Iâ%ïĈíÈùÄ8Ĝħâ•%ÓĥÍè{£)~9ñá˙É.°x+$˘†\˘ó˙_R@ ¤ƒ`°Á4œXHÄ÷˜s“?0 64˙óVĝÔĝB˘zDġ z&ÁĤÑ ;<ÓE ĥ@ÄA>4'ÚÈŝsfġKşkK4Ĉ‚şċ<[E|{Ïé=ÛeX7êoÒÈ!ğëŜtù‡^ˆiRHĞÛÊZÔÈÁk>‘Ó›L|›ô‡ž´!³s­ÉĴ†ä†Âĝ,òÁxÇ Á´;'SÓÖP ³ž|u­Ħħ½ëRĠ-t›”î'ƒX Ż˙oˆ–€.SüC·bħ}ážrïiĜž=2ÌXaé:ŻíÁX›ċŝ”°&o zK„2x mpŸëEUİ­É(€µrħ·u ­ï͐TÎÈ(¤ñûÌQYzÚGtíÉVúñyÓÀeIçšhġÉ:ĵN³âĦ½wžë~oُĊ[GyúJ‚vĈïH0cc :rË KÊ›ˆö³Ŭ܍¤IS €ñÏ –Ûĝ–?lÂàñI›<“&ûƒl$ Ġ Fô#;Ëám d‘MâT*P*¤•nÀ 6ÁMxr“bLJid*›ÛÊş{½q£½ıİ[pMGNf~f”ŒŞ£r˘ÁÙ/ì`öĜĞó/KşU?BC,(Ùa‘O`R˜¤–Ò; ÙĠ'ìĵ-2gÈçTĝnŽĜ‹”ĥıŽé…ĈĜIÜÖĝàmĞħxĉ—ĉ úġ‹Î Ʌ›ġèûfÛíEî>ñž’’ĴĵâĈúûm§ŻĦ‹¨*À—Ċ‹°+×Ûìah˙‰Gpەoo?{,2k·„Óz!½ôİ6ù™ÁîĜa6\°ÄZ(ÀùK‚ĉX;0ĜҚŸÏN}à5ĜÂo‚žY‘áġ1hÍżĉ“x-ıĵĴĝTI{[e/şÈ~gzż‡ġħŞÖĜQŜ³[âΊǃüö:¸èbÑW6 óĠÓEŸDqıé ş‡nÊZ?mcĊŻ ‰Yèo‹ĜħĠÉÚ#ät÷mEï]İxÜ·pŭ-ĦĈÎÛ7¸îlîùû­/”NÇĊ+§y$Ĉ$n™ĠĝC0áÒd|Ž’ÙĥŭJ˙è{sSrëçs`„@•lu͆Iϑñ¸s­Í˜şcûĉjËɋW‡ĵíIŠŒuÛNF…xÜ'´²ñÊÎ̑‚ïLfén§ċ[ÍÖKĊ£^a͊ħë/Ŝ{¸2Wž…}‡ eŝ—]™YD üĝóĦġQU!EÎ9E}ڛ™CîG‚“ċ:f;½Ì)ZÙçʑ8D[\áWWYċĦĵÌ2k1İ1éPhl’l‘ö=Ĥrüjîù⎠§]W^ĦWèBÜÙÀ†ÈАS.%çÀW[ìšZHĉjFJ:é4c+.àT\ 1œÍe-ġe' ‹³ksÈ1?ç:”G˘È9(`kĞ&ĞâÛÊÁĴÜğŠz&èÏ˘¨˙s8?mendstream endobj 169 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4358 >> stream xœ•XiXS×Ö>89(m•a¨í>ĥµV[ëPħĠ[ç g­ jE%‰Ìœa$; "  ó<pÖĥĥ½WĊµ– ôÚkúéŬ§wóÛ' p§7áyxÙì½×ZïzßwEBَ $Éè5k׆*C×DΘŝáâàŬâßŜ€8Bhŭc…t°ĥmop~ŽhÇD½v~4%Ĥ.R.]˘Zĥ,|yDdÔÊè™ZQĴŬíğÁÏcÀĤ `ϐvNŬċöñ[ĉQÔÛÔzêj5úŒz—ÚHM¤6QïQ›)ʓzŸÚBmSÛ¨%ÔçÔRj*µZF-§ÜİÔ j%5“ZEıQk¨µÔ'Ô:ʁZ@½F-¤8ʙAÙQ€šFâ lİXŞ_/95bêˆ66:ÛÑĥÉĥżÛċĜ=¤wUR‰4“ħcòì%öiö}#}F~;jñ(ƒƒ­îW½röUíĞ}ŻeŒ3Úctó˜­cjÇ\óđsLd%ìRöħsQóĞB4ß5 Î1!³ƒ%iûµ{Ós4úxˆí½KòĦĝlcuÉ2lßŸí˘…j]zVBZj"Œcü²ÊÀ#ş˘VßÖĴÉġ×óĈğvh"mœċŻÓdÂ@WżZ]ùĵĴ!ğ•ÇĞv żFìĴ§˘ó2³_-^?ËÏgĥC(lçÚCġjà”ô˙y™³IݎìŠj]ÚŝŬ–Òê,?ż] Ï^mŝäYç;ĵM£ÙÚÒ}[ğRŻĉŭÑúŜ•ÖcNjÂ=‘Ş•de£”G“鲊¸ÌŒVšìC½ëzÙ£‚-ààEĊ·ËŞO×´ž„ß0ĉu}˜XEdžèü|ëuFŜ/ÓÖŭÄŭÒh6Iż½w›Ÿ€š9_ċ†À4´Ñ4{óFÙĉ7qğü<çÌ biÖöfí ıx~ş}e–œĥ ‹ˆ”b§<ÂvĜnÊ$Ìâħ?@6ÈĉáCĂÙùÜĴËÜŬ7^ğÛwŝüËçÖÈIf!Ĉ,1YP+Ù -ä:”0!Iŭ÷€ô‹˘| óñÜ'è-4ŝöË7§ĵîçscr4­éÒWUñhœÔ¨Ğ÷S§$Ĥ¤ƒĴ=0+56°z—Á 2Ĝ‰Üâuĵ ŻFä7rB#ĵw_ĵ16£qftÔZ·Ŝ½½h2I›‹ Ŝ~ÌôßĈ{˵၀PİK)ò+Ĥ´VĴ”gÛúuŝò6ĞĊ³gĊ‚‘Š/ĦMĤ´zÈ ŝ†Ĉòsœf^· °ìÒàŽŬÒÓ_?sċ+÷Oµr‚Ì,ùŜ‚2{m„8tšC³f˘ÉĜà/N0Ċŭ2íÚA#ç_x4‹ìŒGxbĉ0KŬŸħdXt§ÌŽ? ħ?tZä?8³)B+vçÚUäŽlšBh˘Ù·+tĠ ÀöÀ´D]°ŞÊÇĝ9I™Ŭ„)˜c~ŒlÎŞİ¨ĉñj…T£Ìò÷­#˜a˙>Ħ u$^<_pàĥì\°}ŭ%˝K{t-]?ò6£UbC [KeéˆúÜ]i%9P‹ˆpòFĥR½<72úêJŝžTĵofĵB°-ZE³](bë<Ğ+A·´4è§hˆ`1ċŭ²èĦÌ͎0š{"Ûì#ÖM² ·ßÄâj{"ñĜÌíŸĊoÙŠìx²£Œ§Ù…b€<[/ĈşqÇRZ£$gˆ£|Ú vcˆ^ż'vXx÷˟•°K#*555•†ĈÁ°=ÄÉodOÂĥ’„$Îziè—]³Ş_1Ĵœïӆz²=a Ŝy {š¤ÄÔİŻİbBj>™ñr€íÉGêdt‘dÛk5;^5£L³3ğA#'>ÇŁy .a{UE°’aÇW6VŬìÂï`qDN¤>&'ĤŬÚ7•ü’cVTjJj&•* 2ìMĵ j–߇Ïbhù#iĉD¸“ WÍñŜZĜ Ò+2öCFĴ!˙ĦT­Wĥ–ÂĉàxÉĴZ‚ĝYM?žd„£f zςxì-ș+‡U²Ŭşˆ óĜ– ™X9˘éËñ”ëtĊB"Á’ùR+I֑ŬÂħô¤k>7nô½?ùr‘sÑ%Bı^^ñBĦ‰k ÑÇ?t™nK%0ÖħmĜ‹fOŝiQ’Ò]WWPÉ@M†ħpΠ'u‡Ŭh7T´Ö+"żLg×MëôíüË6Ea¤¨„Ù Àû‚ìá0p(öËŜzB ÖUâ.тÄ,tÂÛâ€iúe_•SpëÔjW2òıUêEh}À§VB×rX£ßߎF Û.UÖċğ1 .0;²Ó…|á54;š4"gÔè*y-:µY}%½ş&Âh˜ĉƒ9o¤·3YŻ-,;’'˙šċP–ÙHäé,îÉUċĈ…‡aŜ’ËĠ÷]LĝŬâ˜2]1t=s ı5gQKcYn ˙˘4Ç͎'›ŞİŠRŻQjsrR’IŻ{ÜĊw³gA@•Ĥĥ´ı°ÀĤœ’ËÇ7äĵ(ò„S6iéE÷g­çòëŽÜŞŞfµkÊ&”³ê1ĠPϰyq2˜:n³o}ë‘ïS˙BŠ%BĈ`üi< M~†Ŝ´kKIx!Ù1Ğħ$ë!%iU:~ĵ ·*ġù°ÁµU™­ħ–$„€BĜVI›XŠ'Ûù‹ġ”]ښñĈĜ½*=ġÑġIáYħé0ÄUĴ Šç vÀ)óŻfÇB ìcAñ$ğ‡İ‹BÛ $²Ó_êI[<Ħèì…F¸ŻX_f êHŭW5ü³”àË+>3;v=vfÛ˙ÌfáâI¨ĜîÀ†Y5Ĉç™IÑ˒˘\c|‚#ĠPŸ[˜2ĴŞ>ş\ĴŽVîlóŝòñIäZ” daµŬ­>Àñš}` zêÌ>͵ĝëÓԉY) #1Fĥ2óV\ê;ZóáYĉ ^Q_ ]몌Í<ûäĈ[9^xÑ:üĉGĝ•_' ½Óò{éPŝe_³öĥsÍ1yA@I›ÊòšEˆñ›é]0=>Yù16şÌ@­‰µ*}tŬlċñÀ²Œ&_& ŠÉ´†yÛze²G0/L‘ŝ„ û’ŠS žÂ҂‚Ò>TäÒ?ċ_Wá똄àR4%N˘C¨ŞĉB£kg¸> à;´Or²żS: bUUÀ€‚ĝ0‹ˆ„{ ÚUQ­ĞM×ĉë+ĦyÑ@GDäC y;³ B‘•ŬbŸOżà—xÁNtpï~b’ˆÉDğy6ı?ùï'MeĠu€]š½7İC$³zBfĝS4“c[·Êç/[éqı÷ç‹ç/=²mÛ žĜ÷ ‘ĦüË•’•bv|žWÀ‡5= jĦĞ+à$]ù;c‡ÉñhüÚÓw‰µzĝƒ~šÈátşä—Çŝ ÁÓQEn̋ĵ=' şœ¨Ááwñ“l͜yÛgïR+O‹y‡;Ĥ#ÎÒ!zŽ:-]*"V%"ÖÖD_ĝ2Żäj„6AĤ²ÖXĵÀM~0è` Ÿ—Capad–a˙–´|\™ôşÛ³Ġ$qNÏ.Ŭ5İżÜRòe3 ³œÖÀèŒxCJ‘Î!ÌÑïÍÎ/NmJ şŭÀÜsŻ.µ6†?˜_œS”]V•V™²ÚâoĈ·u·Â °ûİí>‡N|ÑÑqü„IĉĊ?Çżsò~ÓȒ4mi[WÉşz_Q\ŻBĤ÷ïpÁ`òĴ°cş˙mŒÙ,Ç4[ÊNz)Ħ/—öĥ~Ùż 2çŝçAĈêĦûDΜĠğĈ²À’Cnòc’Pö× ”ó¤= i€ŭ™Š‡Ž_€ûRŞĝä*QğŸaŸRçM†sŻ˙4ż;AĦĠ*rˆh!JûeħCOˆ˘?ö!‡<°ևIêĦŝžWÂc!¨!ĥ 2—kvòxzÀí’m™ Ö  4{—êëòÜġ’Î ;G$G´ı·ÂÎA úP4$b0Ċß Á§¸ƒÌCììt „B1ĵ:((<<8¨:ĵİİşşi`BŞ1£MfĘ%§n}wĞĝVġ-A‰ĉs’ßá„òNUŝ<<ƒ‹O‘#<Ä;zĝÒ³R7eÈ ;V5hĝg”"Rµaİ@Qż­H&úŭrs?ĉ~'‚GĥŞšŒ›8×uğÂsI¸wn…Ë4éJteşòŬÄöÁb8ĞïĞ(Ĝ_W:ÎhÏmùŬ/÷^&âħYòü*%D?˜ZlŸÛ5Z#â÷‡•‡&lòšş5àñWÙïÎ~™b˜ĉ–WèĞŸb—`]\: `éK·5̳zÁŸxê°nTż öÜó’ïD ]„ó„n‘5à=ëdÈhÑñúçMĉµè y°ÉĠÊÎïY9& <³GlV‘Ì k‚ °\_Ĝ…XAçÒ^>`’^|cu÷kğÙ“‚‘(š:Ï µ´< ÙO ġI T‚ĜzĠÁ`¨„ŞäH ŝP‘ĤÖkĈ[ahÌ ~¨Cê§&"%vÑÚ ~w—çÇ£OìÉÛ-GLĈ‚¸M‡J£uê ĐL—‚ïÖĊĴğŬz¤½lßÀޘ—ĞJÄUƒi|ÖöĦµ1¤ê³âÑ9KĦ×서éb]§\S'gì$Ġ*try§˜GNĜ™Öê]]úÎb€œ‘“´¸Sß%î&Ĵş8<ófJnLÉtĊ3ç{G7Ĵ>dpEŝŒ&Ĵ=Ĵi¸è]î*Ĥ½)AžèMÔw…ë Ĵó—İÍÊÖCµ--Vğ3³O"aûÁë\ ‡Žż@ż8š1 ,ıû%Ĉt´sîè'ڔZ¨ °TÁôĴĝ(ŽŸş$k‰"G1>EİmÌ2Ed˘7 HO żċ—+èÀëMö¤ÉÏÚYûı™kn ‰fÇ/î#§^ĝt%q|nBÚÊ!éGż`/Ż„ 90"K÷÷°gägfĤgA-ZÙĜïë+­§|ÏNÄŻ“÷+x'NAô’G<û€8ż;èU˘Hs×y\ïì H#s,bÎ|säjÏÉuîV‡„섽$T˘muákîĵWnr²WĉzPˆéƒ²J kÌ-È9Ĉàe˙‘dÖG˙Q#ùúĈó_oĜóĥ˜ƒ'UÛġ Ú ­ËhO8蓒’‘˜°²ˆĈŞş‡nz|‡ûA½•W|uJ5‘b*ní¸FìĊšÈ`?İ_~Qۑżw_!,gšC‘ɲÌ-³ÏÌGvZ 餽M_o R4ŞâÔ]x•Á{·­hW#< ğ:[N1hnż wùÊ7%2ÈCzFÛĉw‰ŜmìğH /Œĉ:ċÙqߣäY ıI„ÂşĜD €'Ùvùˆ0yBk}trEWV îÑ%]ٝüĞIEÂì"4ğ(·ˆ6´Œ#m7‡:ĜŻÌĠ‹Ż> stream xœuWiXTGÖms[½lšnTpDqÁ—°o²**ÈŞ7hY)DvÔFAQ˘²4„FQPpân@—Dq“œÛ)'SMfĉ™óŬúWOĠİŞ÷ĵç=ïQ:(‘H4Ê!…¸§#–Ëñ>V‘’IÁ&Ö'g/YP΂8¸sV°gBĜ ÙµġĴô6  7~‹ß‘™´DĦN(í„úŸÁVl ˜J­ÖXóŝ쵌2=x†MLtË —ĵ΂폷A˙ŬÚĴ{P.ŬġËİ–Ž~“ÏËÛħ…Lşk:ÌC[’]œ]Œ¸×M›íĉĴß8)- e§Éżâ[:PÈV<Ê÷Ħ5tŜ´ua˜KJÌÎŜ#—÷÷µ “ÛE@ ‰A-dòxÎäÉx&žöÑĤ‚ĠǏ`֖ïñ yĤ§y6ÄÁŽËWŬCà›nß!a~ÄħͰĴ„ş-Ïô_‚ĥÀxCé ˃’ÉnvÊI*Ħa.{.óôˆƒy˙ĝ sÁÔöÍż„ nòî VZ§ˆn ^#ygÒÇà ž³gŠ*ó*÷ĝ²Ğ)Ös³·Ŝı`n<9tj‚ç0ÂŞŽdi”ĦôVµT71+r’HêĜ³ÇOĉ—ĦjTžRşkcŠA–P˜p8ïGû²ögmˆÙħ%,ç“ÑzFz›““ï%LJ$GP&ċġÀÁĞ˘ßÀH|ĈZÔÌÊÜ=e4Ʉ-Ù[`O_…“jŻĜKc8ŜLñŜÒİô-X<˜ċÏôŝ'$œgJ§`vEÔ£`$  r!–÷=êwÄqx”½“ëĊû›ċŭaİț ŽŠġŽŽÍ+Ù&K-LyFğ` ĉúžÎ}-5ŝAïÇğ§­ċnĠGQwát…şâDzjıĴ(`ŬÍHàŒ{û³RôF‹ŸV|ˆĊĴÊóçöĥŠú2iĵ¸7ħë´ċ!Ĵ dñÄĦ5wYİ:uklúöqŽÛÎ÷Ëá \€”‚fQşpAœ.$òlw:Ì\Eż``™àx5nĈìċŒ# Ì`Ġ$h*,n˛Y‰ĤYšvqÖżwòdçF1ĈôGĈ ŽW´AÜÙöô<…5nÀ"ڜÁşB}a‰:ON¨OËWïË`Ò.Ş#X cÄĤ‹/ö ÁQĊĝäî%œ-bal€›b#7¸²Ô3²WŻ™c9Kw³:ÒAÍâMÓcfıŜßutT4öÊêuÂvFĤnC\`luóÍöJ^I·o@İĠÂxħÖÄßaŭ£’B7ÓċèÓs÷vŜ‘Ĵò ìħ½ÇÓI4VW_êqn1S1eŠ§ÉżLÉ½=Çj{I´ŸÉġk+0½î´’T° ĀD,kLy<Ŭ’u(ŽkúSlƒÍŸ :—[+şäžàŞb}se´f>ɓ%a>{o°ƒLŽŬOĝ`ëÛ:0âÚŬ§ċ'3RĞÉ9ċiŭàÒ_t’3Ĉ‚/Š…dÍğoöŜíƒ8 çoÍFdÈუÓ'Ĵ󞔒œ½— ß‚£ÛáËg7šÀżk÷7úçA2…da>Œ²ƒ†Ò1”0MçÓ(`~È8lĵpċd‡FŻÇñòÍ[wÇ ­H‘³''ŭ)ċËô°Pg“ĵÈ%m€úáġÓċgärÙŞüYùèˆ1*:T”[\U€òG"ƒÑ£Ûo*÷ŸJŞ”ĠĊ3pŭn^Uâ°4"0`}DÓ{ç[ċ$´ ˙Tq'ù‚ùû„8Ĵöoî¨)İŞŞI„×ÚVúf]"$ŭ‰(  !)ĜjvòĜ"€ğ7ĝìŻŽDş+<¤Ŭu×JÄ]Żú˙ğkPçĴ ï„0te°&9Èê‚Ò.’SñÙ˙ĠHkĠĴKn"ÉJ{˜P5}D•!g§—­ÏjÛxrׅäFt?T›Kô1e’ħE—îèÜĠşŻ#J_q|}!ċעWˆuY2 ™y{9pÁ,ßPӔd¤M\%oĤHU€ŝ 0Çr­xÁ %½"AWkҖâa;Lîwc9àĉ `l6{mhUĴJY~¸è„ xVyD™s qżñµÂcH+-ĜVXĜ.ìnk˘\ŭ)× ô&dôêŸ0‹µž-ŽXŞßx N]ı‚¸·óïbc<~Ġ1ċe9e2%ĦçEܽËŝ+—ĝÎHKEÙİrötNyv юż=m÷³·swYş3>·`›<¨¤ÜäCÉÈ8$v[Ĝš7˘Ë~ ´\‡^îĈ’|-ÄQJ&`~]1€f´ĤB/]zӂ Kú¸ŒÇ58N‹KÚUh| ĉŸEoC$‹ßê^ÊŻÏ­'¤Öçieëäĵ01);'Q´"'ùP 2ŠŽ‰XsÇXÒġé÷„üşÖX)lR°ì ï³6öŜëd(EßÍÌ NPˆñ¸( ÏÇvá°û[L °üŭ#LéœWX×Óg÷V?Ù)°üá 4dázÜ̟;úġ‘‹ÄÂĥıZN pYğ˙Xċg—gŸÑ"B)ÜħèĦ•ĝĦöö!7Ùҟih`ƒÁ—ôïU |'tŸöFI=ÂnŭnúDL H AĊOİóo@7¸ĞuWn4úÙû”}Ï÷ŸŻë@çŜ/z€yqĝ6ŻżV&ġEO:-k9é)ĵ,”‡ħ~×7Ħċœs@°Rî'jċ…†‹DÓû}”˙ú݉Àök-%Ü磒b÷Ç"nŽO×çO­×û´:`ÌÈô(9ÎCùS°„56€éŸ°9ĥ6³À“ñĜçÖ Ğn)9Ġ"Û> stream xœí[oÛ6Çߍ~?ÚÀrÂûeÀ^Šl­ßŠ!PmĊqë[-híóîkŒr$›lè5m(‹ ˆ>Äŝ×0$y¤CxˆŞġßéjpùZçĊĠ\kħ—wóÁÇŜpX˙™†/'ĉ˜ 5pĦäpr3¸˙<Ô¸r( ùp²ĵ ÇZ @H&·ùĝ‚HZ^,ó_óbş[lËÍV%­òòv3˙5ùmp5ü9@ﴃPXp×_0Ĵa~˙R˘I|˘&ĠK="È˘&ɘ€"âH2FĤa‚LkÉëlµcÌ@<ÀȀ˄Ûüi?D×Il_Ĵè˘ŒTÄ03™ *ú'ïCH.-ĝħŝéf]f‹ġb=ż.żl›q@H€qÀ10Í\K"êƒ$˜³qà9[(Bi [âĊöEœ]O7w벖tb)ޏkDçNb݁6Ħ³ Ïô$Ï͛$cm‚hċĥŝD×/IlIÜG T›K,zĵmwœck0ï8XçE™ÏöĦˆ3½K" İ,İkK<=’Äx&mN€)fÑÊżEk­ 0 ħ­èÜÙIì5Ñ VV /ÑùúnġpöĠ"àìk[Òı“!ĞDevŜNŝ?Ѝ"PZeİpmˆÉëI<'Ú$Ú—Ê,éX€aµAğJHSN+˜_-ê+@Ó2"£ÙakĜ›pùš(ë{5͐¨s‡˙S‡ß}Ħ(MĴA˜kĜÁÂçĦbtŬ—Ä ˘˙RññßT&­ŽĤB¤£ ü9îĴ€émĥËĤeЇħÑÓÄéĥ]wV{ı@4Hsó3‹húğÜĵ)w‹ġĵY0B\ušß‰p,èÜÏI|~„+C³ÄâŝŒxVüžE6ş5_G÷Ž 1y=‰çD›†F[˜Ö={ŸHr·sàÄiŝ´˘ë$ĥ/zœ°N8ç )·à÷çÌÛ>7èĜQ$ħ7Ó8£Pŭ=’ìϕ·tÊħ$&ß'1Bl)İ­Ü"ĝÓĉ‹â:˙\ĉëbħY·pxÊ1£so'ñœH³H›6$ħ|ʋôúnġ.߅ÜÂf,\úùÑuC{Í:’ „Ñ^Ö­ ÏÛòÍIA§ùÇx$şžIbKâ7Ž †LsàĤ)kW15WunÚtğµw˙% —wLˆ§#’ĝ\&{Ĥè~ÛŬbû_fïòe3ۇĵN:í§9>‰–èIò°İB&10n§ 1ñÑoTwù6ÏÊĵ9ƒƒ$ ï/T+şvzÏ:Ÿóó9×@•2Äô$Ñïğĵİö‘S/Ž;;‰½&šI ĜÎ&bv‚èÍĥ\lÖY§È€Çp+bò{{ ·á˜8ñ÷ħ}›׳ü&ğ[–ן²ċŬ!CĜĤtî$>UšUB+;/ˆ…Ö ê@§Kê}uǎ˜<ŸÄŒ1`ì$ö¤äĠŭı?gS=Dî£Ù6#&Ç'ħ' Sm˜9ñƒòÜfšcCL^ObÑn Ô¨ĉ îP{YŬ4Ş.PğŞhnàġi?Z}Vm>*·Ġ/}\ġÙ]]×&ÑĴúì0@dèı_2è˜éVÍÙĠç²*2ĞërŞ Ÿ(ÍĈ¤Óz×=“Äîç˙àx b máí/@Ë X.Š²Ù– qwžzkÒħ ÍÛIüz-p·&eĜ­IÊH{v?UœÖjEħmE×>OâY'tzB§ $ÂÑŝš´+Š:÷tŸD€ ÌbÜ_zÖfIħcCL^ObŻÑĈÌü·öעµTRì4ÚÑġGÛ=Á¸ Œ#L[ÉÈmm—;vDÔIìË4N4F”E²ż­ŭ’bǒ˜|ŸÄ§cĞCck¨¤ÜÎúkҖùz^Ŝ6ñGÀ:ǀӞˆG’Ĝè‰?tĜĝƒÄĤß_ˆv›M0\=ĤŬöcĵ[ï$ħ-ñċ˜Á×΀;è/U۟;<Ŝ5<ÔBPgÄ+âé‹$ö1Şacn§ ŭċgΑïAŬ~šÑ“h‰ƒèÁ€Í /BMĝŽEr<áUÒûퟯètàkŬ׈°žŒ­G“2ĵĦĦ[mR"|Ì1’÷oíCމċ$ĥÈ:21Óëŝ]-m&9ͧ <‰–Ĝ^ÜÓÀ5%mĝŭGğÚ,ÚplˆÈûI<ëĵúYXaP[hûÏxµ|jÑ1£so'ħ×H ’ i˙‘-:&tîé$>?Ĉı!™Ċ¸˙lW›Çbòzûˆv“dȃ@Ç$#µžs¸´ž•(ĞXŬKE+·UÏo~|Aiè*SŻÏXÁŸÄ³Â/͵§f6üŝ$ċ6›~8Ĉ4AîÓ_‡íŽ];<‰ŬÇ7Ħïy'ŞÀâ¸×ÄÉÊ7ùîÓbz€\íÓáÇĤÛŜ%ñİ·½ĞLjá `ŞC'7ƒ Ĥ(!†ĉzQWeFû²İjĊ0eöGЇ—#"ëUċïï_TÜoĞÉg Ȑ ¨Ùsş o&Feı-~ĵœîĈĤmD´ekĜ]Œ/mw›÷ù´„Ín~iVšñ~ŭAdT-9żĵŝc·)7/ïn9$ŭ– B¸ĥ]ÍfùòŬĜ¸W+ÑŬċe™/Şf ZòÑĞħYzµâjto³ıäÉÖ˙nEŭ!ÍûYŭ†ëћróa˙m’ˆQür´÷ò5!ya^ŭòendstream endobj 172 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 490 >> stream xœeÏKÛpĈżY[’ŭ€ŜĥR6ïğm‡Á˜Uñ0pĞÈf­ÍÒä­‚MËğšthlm‰YlJġ0°âYrÚeğl‡]úO$1LĤ·½ĵïóxĝ<ŠŜB†=|³X˘^.13…ä‹WÉÙ ›[ü”œ›LN>ûçƒ?íMyr ȐÑÏ$ñĊUŒï˙ıûë ':Á Ï"Ñ;”FP,HEQôŭĈjXïb6îċĊĈœħqĈŽ’-ÛħËöIù–oL<îÎùÓ§îD¸˜óúoÄyë|Oìoĥ+ o,ï.@˜#2"W瀃‚´ÒĤ;Ùaùˆ÷ĝ ¤şÙ3úxF 54I“ÍĤ&ôЇkĈúA( Nñaàî´ ùú`nYUSÔêh0Ú=1Žgv÷> stream xœí\{oÛH’‘á˙‹iöƒŭ˜˙&;3‹,fħÙlîö€ËGQ´Ä$jI*^ö{ÜGĵŻqĠŬUMR–‡=`=&R³Ù]U]_Uµò×ó<çı˙ƒW۳зĉ|ĠŸċ™t…s: wгżžñ0ñ˙ŞĥçŻŜÁd.Î]VhkÎß]ŸĊEĝıµÏsun„ÊĴ+ÎßmÏŝ“‰ŒĞŒ_\*‘g9gïÖġĊ06s–mëaŬ.ŭW[Ö}Ġ5ûĦízœc4MúŻwż;ûŝŬÙÏòó/¤Jh`Jé9UÄm–ËĝÉï_~âñóàÏ9èDÔİ'Ş™Ê*òjQÌÀëç&—™Ô*Ş…„üžıc˙64›fhêŝóTïôJeZÏö ĵû˗ÑR­µÎr'ϵ™Ê‰|oh.wŜ¸~SµuW5ğš’sĴ]ü²-[°Ħ‡ìĴïËĠç²{ÚÒÀĞ“ôlS˙XƒħÓġb„R’ô\ŒzŜn÷›zhÚŬ#4—+ Ñó]N°¨Áç`ôkôÊ%!AeŜ-?D<Ĉ„Ì›6™²É„d2Ħ›fX# ƒÀWLxÔ<ʲ<ú2G›?›Îóàd>Óú5ÙNQd…d;*ÙÎĥîVġcìc&ĞçüüñĉÙĵ~ĊƒOhOšì›—’ˆ“yÉĵŜ<Ĉ´rOšž/ŝг§gËû‡uż á=XŝBÀnhj,|ğüXîŞÚCAHçQì‡ ­àƒĴ.‡C÷$…‘É'-Œ<Ë 16)Œ|˙·ĦŜġ/>ĤÔF5ßċÙ9<ŝċ§ŠÊ…³O4–\KuzŞŬsĥiÛ‡ŭ£E“ċj鳙<>A%3qOl&Vgĵ 3Ë*Z].šLDħf7ÔĞšlFÂ@ßUpçÖWȂgóxü*›ùÉÌú²–ìCMÂÈĞĞr¨İŜhµ™àOA ó›‹Kix0Ÿ7];´UğĦJfŻ××ўb ë·]{Ĝ?ށe$ÀR3'ù—>ÂçÁŸÈ§?˜…Ètᢠc^ô‡aTÎAâ’Vî÷][VëGgCN‰éžžĦ/͆ĉGòŒcù]ìĵٔğ>°[⋳ëƒ78ŜĠ›şìŸ$Ŭ‰`*bŝÀ§èȞ™dħĠ‡]{S/WġĥŜ OÂí3ç ‡ó“|ĴÇœaži[Ê<è5ŭˆ/MİS)Ë3+Q9èz‘çA×ßtá.MáĜèméŜ#^€s ´ğà X–ö5N1÷ŻÓ¤U%Ĥ‰Cĥ ÄmÑ!÷8Z%˘/ŝ£â ­[ÊU}ıĞCWn^ĈY˘Â~S ŠÛ£G~:fî‹ -š vSŜâ²F²öšËuה›ĉâ ?($ë‡îPyĠ^ÒŞlY%½<)V°C_ɽÑ2Ĵj·Ûı B½#"0b'QDŬBĦ1`Áö(³ŝ%˘ 5$ĥHĉ%…53oÈmێa˘˘ H+3ò?W ͈;ÇctҎx<ĈÚRüԙӚ}¨oi2¸ŞòÄÇĥ`ŭĦ mÂ& VÒ'BzĠ×/Şl&îài^ ÜUk8ŝÉà^ĉÛ_ȅ`:~ƒ‡ÂHĈ=á@mlTˆI‰pÂ(*ż,hî@ŝpŝ(.€ÈGg˘ÊĞżí‡z{Yvm?4Ñ,ÙmMāZz K\ ĥiVëáĤö˙'ZÑ˘4Y³ÍíH(ĜŜ *ġj—@îKš&Ĉθ;)uP+’KjÙĈ}—ġċÉi ,rSo6A.Ŝ̏ĊÂA€˜Nñ ÚDÂİh0Ŭ‹ĠĦK°(SFW›yÜĤBŬpއ0ÍS=è"ü²à@ÊM$‰€ï@B7e·Œ J`w{Ĝì?ÀBôô°k\,^h’AĠ PŻŜÊܚÓFĜİŸU…m‘ÛhŜĞŸp…ô–-20Ġ™Œ^lh˙%í/9ÛµħÌ]]~8í.rÀğ½<ìżêÊ-ù `‹C³&`U6ğžrÊ\&ñ݆×ëM{ˆŻ³~_W͋è2:jwì2¤“¸˙Ÿ×Mô­"œĈ4r½-ğÁ£Ç³CîÏ["‹Ö{"e³)áp^F§™sË~Ûĥиbà}?àYájAyün07²‚@¨ùÁöċŞżĦ‹“ şfN=èH×ô³•/çlı·ûß˙ĝż_³¸Ç$˜ù)<°~ĊH˜Â5& DšOZSŜ‘ôċ6~cC³MÊiN(L˙é!™2fşëéİ{XU9D"Sè9qÄ2Ĉ˘ŸUïˆX]M‡ê4´D:|ĈyòŝsI&τ˜S-7Ÿ¤\Òáyqċĉ˜r ï|Î-é"ù*TÌv—˜’l}Ĝ-1ü } C rŜj&]—7>Á+3JÜËṔB=3’çfOÀÍô'ˆÔ.ıAġÛ.šĠŬ€F;Eĉ›T…nv PvĴçÉ[& 7ÂĞÜyòÔËç!Mĵ|fı¤ÉœcL–Ò‹%½hœP¤/VÁEîùî²o]UÓ܂½gŻ..ı'^ö§ïŜ_E>(W€kŒD~äA‚‹ħœÒtfêƒpĊ÷ì+*#êÜf˜Vw‰ÎŒ;ézöß\]iq R³l}(÷@qĴéÜÑaÉb<xµż ÁlqÁ}­ÜŬáúê1•FR·Ù>QÚQĊ >6ስŒ0-gżAó‚ĝ; leRUê_avĤ’>ĈésBtHqöĤYtewKqO5|²3ÀDÑSۘ``íğà„‘\ŽK6u25_ÔˆŽ] Δ, éœdRÈ"ÓÊ~6“ÒŸUAÓ_ŽĞ˙˘+n,Ċ”0ÍŜÜkŠ<ÀÙ#›•2“ìÏÁXŞàżà!Lġ Û„Ĵc–bÂ6ˆ4|Ĥ`ĜMÛ}ĝçö†r/ŠÍĤ½I)ó‘~·DĤƒ4÷]YĤU ĊóÀùíeċ#CÂöıÂu™Ŝ,I'Dqï‰Zr`İŻżû1ާ ÖŝžUÙġœ°†Qáô:7Z °J >ŝŽÄìXóĦÙ×ËĤ$Óîà‰_c“ıu|óû‹ Ï ÂÊğu3Qg0ÑéÓŭ7Ú$KQ½ñçMhĉ$íQÍĠïĵœŸHì,ĵĜ$Tê]t½[ÒÂa/ĵPz/0&“ROùbÙ}|*UX†òX DŠß8ğHi92Çd>ías7ŝŞĦڔ}?şŠ”²Ú U™dáAôç\Ìs'·‚a¨ÉÜ`/S@ħ›ê{Üd]Íŝ°)Ç ŸS,§ß{„ĝ˜È6ĴĊ:' żkœ­š5)óè˘§ĝïpV˙’0„9’¤pfĵd?×Èñ_` B:âÌ ‚6P°à0´[Hnĵ׸ĊapĞzç³~Bx^ïħĤS–1˟_­Ûž`$äCÙ­êa|‘ä=ëƒYIŸ…K„8g’¨À€–ÓD…ĞiX b A5°àušîݧ”BnĤ,*ê2ÖaG=“ –ܸ ¤´ƒâĦêÒażoğ!İ!H,9ûo‹nRĊ_ށ¨7£úÚ˘ħŻHÇ2\Ê}Ó_Q,âíQá5ĝïPu ˘Ġ²­úĞ A€ÈâĞKċĤ[ÛÍ×Ġ=ïà^ŸÓo%ĵŞûf™Œß8Òİ<êħù\è~–°§Ñ—6+¤˜£ĞAñ@ f†˘SF´ö’ä,˘;Šh!~0À'’b+•q€MÁŠ6¸'-Oϲuù‘Ü lħˆÙXXSĦ3£MsËÈëú8eqoINh Ŝ­`Ş@í$§Áœ‚…J.ĝÁ[š:–˜ƒƒóMEž~|Z„ µib!EN°HŽ÷ v¸ĴàJ¸¸sİÎä)q„ óTĊ)<#Ùvŝñá,—êeOŝ0GÁ(2Ħġ\0Çê=Z:Â{35qܧUR@dlRItí"?íĠ#Ö gÒ:ö?EŻ$q\Ó/ÖÇ^Ûв­Ê<~ó•gR.ÍĜ‡“_‡C -ĈV…÷!oż2NMĵ§*dĵäè:*˘˙Pzġ­ƒŠ@V˜ƒêĥ¨SI°uHéĴ˜”ŝ ê‚ĊÚL u^aßâ$Ċ·o^OpͤpcÁꚎ+Vë&Ŝ‹{ BôŭR9QĠ¤R coSYÍÎ7Cĉ°ê—H”jÓZ1Zé°“7ĉ{”ìˆĈçĝE³óU LnÜä°àm%8Ö/ÀWÜnZĜôn:#žMU‘#p7î4‘âÀi6A ‰Î絑nÑ “Ú (%RYŞ ÇŠi¸ħ]ԛ>{ <C’ Ş"+(+6ĵÙëí>„ĝe@11‘4Ħ ħG @Ġ&ŝ û§Ä~ÈPcĈnwċ6ä Áĉìö£kĉ%/éKÂĵ@–ħ*ß?ĥ"D„ #ŒàŻïCß9%*Xċ^Ħ#fĝ#ôĴ%äÔâQk<żOz 8>“&7`$àÉ)œ mu…˜1$ÒaĤŝK¤{B2ĥ,'ĝ×Ĉàˆ)%ÔLJ/_ÓŻC·”^a˙ˆJİ߅ÙÒğâ8AL³7‡Ë‰”ŭ=TzÒ;Ž)9ìmÀàïİ+žbàeÎÊĴ>`>è³CǖíĜŝÔ?“ÁÖş:ċħ€¨?âÓTĞò=ÛŬè'hVRgFÑL…Nr£‚ƒżöRtnrŝžŜߪzŸ~~H-‡PdÎ/ıgĊèÇĈĈDĠA‘nZ’€ù˘ûhËĤŻ}ŸîkäÔí“Ħ 0[kÒŝ %Ċ§Ğ/už Ú3!SUtGĴìÇ"xëtÏC{Ĝ eıEï# 1ß9‰Û÷ǰQqâÌĤZ Z9>_f"ŭû’EÀ½Úg #2´Eñ˙žĤÀ_+s~ŝ˜ÎÍ˙ŜĴ›ŠŝÑ!XŞSûzĉ!Ġ·ÀÖü…§ |ñ÷-÷]3)vêyfÒüYĈ€?b$Ф1Ĝ_ú´ ÄÌW…<0èʑ‚Ù„ĝÍ#Ĉ~hĵŽÜU-ÉFŒrl#Éej—D.sÒ];›sïT9ĦÇ{ôYşòusÜt›ÉĉcuevSŜ" ÉĦθ΍ók^ À3ô3K ×ŝ~ıĴħ6gÀYêa¨7İYÄÙŝJĞ•–Aîûĵċî˙ÚĤ'ìVLòÀaÚq5U°•5à-ä$üzjÙż7НßìÎLúÄŝNtçSşäĝŝtAYüP/şƒ/$xb$u;‚HÛlLä"?)ƒ$ I˙ï(ùÙv6+ Ŭ°g2Ŭ ŝ_UûÙ˙s`Ĝendstream endobj 174 0 obj << /Filter /FlateDecode /Length 642 >> stream xœ]Ô;nÛ`à^§à ôĜ— c7.I.@Qż ĤZ.rû̌ì)†ÀH$°ĜġÓËóË| ëËeúĠoé<—ŝ~ùXĤ>úëy^mwñ<Ŭ>›žÓÛx]­Ÿ×ß}À ŭtïßÇ·ŝıóÒOÛûGÓċĜ߯ԗq~íĞÇÍĤ=žNmĠçíŭŝĊáôùênהÍOTk ŞħzSP5š‚ĴûĤ îYš‚úÀzh êuj êÄzl ꑵ7µ³žš‚ Ĉ£Ál6x˘n›‚şeĊĝ&‚‘`ßD0 ›F‚a|ÁH°l j²VSP‹84àL@#ĈĤ ŽĴ°šĵFŻÁjò½ĞÉkôĴ&ŻÑëÀı€N ç:œ è:p. èÀı€N ç:œ è:p. èÀı€N ç:œ è:p. èÀı€N ç:œ èb™…:°†ĵAoÀò½kÈôĴ!o°†ĵAoÀò½kÈôĴ!o°†ĵAoÀò½\p!`À…€A`@E‰ñS„$!1~А$$ĈO’„Äĝ)B’?EH§IBbü!IHŒŸ"$ ‰ñS„$!ħÔʒ+KhR˘¤(ĦI‰’˘„&%JŠëJ­,ı².L ë*­Ĵ¸²‚µä-z ֒·è-XKŜ˘·`-y‹Ŝ‚µä-z ֒·è-XKŜ˘·`-y‹Ŝ‚µä-z ֒·è-XKŜ˘·€+ñä5ü:{<Œ<ħ_u˜>–Ï7ŬaŬYž×óÜ˙êëċÊŻdġêdbÀendstream endobj 175 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7419 >> stream xœyXW÷ŝ,°³cW&#E3kĴ‰-ö(–ˆQcAQP°Q¤ ,÷ğôŜ{WDĊŽËM\MbŒŠÑÄDS˙g’Kž˙ïî.°›ïKò|¸ÂΝÙ{Ï=ċ}ßsWDP"‘h”­ŸŻßìY36şşyï PŽMĈaÂÁßmÄh¨!jthì”Ĉó(X5˘g$e  6sĜì:S8Û?ÈOĉ¸Ï×Ŭ[sIQÔKß­+üĥ}°˙ŞĞÀĠ²5AÖÁ6!ğֆîÜm6e]ĝŜuş­wßàħqß&O{ŻÍŜ[|ŜYî4mûô3fşĵ;+böùÜyóĵ·pü˘ OZ²tÙÛ5žúZDM ÖSÔDj5‰ÚHMĤ6QS({êmj3ġµ…šJ9PÓ¨­Ô j:µM”L}@Í E)ÔJj&ċD­˘ŜĴ¨YÔjj6µ†šCYSs)jµ–šOÙR (;ê=jµL½E-Ħ†RKİaÔ2j85‚ZN¤FQÛ)cŠœİ7(ŽM™PĤ”eH™SFÔJLhêMЧ¤Ô ʁ8— GQ‚¨ÜàMgƒ›†Ë Ï™%Š%b™ĝ-£˙”8Iž0›™ÊAô ÇAż–:¤qÈÓĦÖCK†YKödxùjD䈟GnÙ1j̨cËħéo,|£˜û€;7Últ³ÉP“ġ&WM}ÍŜ4s5{n>ÉÜ×ĵÚüó1&c–ŒÙ1&nLǘ˙?ŭêMÇ7ó2ŝİtĞôŝ¸ÙÚĈŭñ–lüôñnL&¸N4˜¸vbĈÄ{“Ŝ„…j¤üE)ĵ"j€_‡†Bb3‡Š’ò£³3‚P$„JÓ¸r…7òE(Îë­2•#JLILŒEQŒO=*˘ËkQsKr—Öü"†tÍħ{òöİEċҟè²zÔ,ĊKa+‡MéáħfeèVÚ+żW½Ê„=)ä5s-(‚wHúǭǗĴqŜʳŞVT²‡_AGéêQħô$îvÑ]Á\ş˜Ìŝ¤ÔVÑlÓëğ‡Ï](öûÇ!{%šçÔÏÍ<'ĠĴ,ȕĈ `‡W€ĜY’w³À΄½#$üQ$/£ñ[Pb‰ĞéġüdT:Ž @>Ŝ5¨FşO^“Ċ•5¨9@{˟ܪG%Ò†â l†ËÄA4[H,¨#lÊ/äR3Y ’IŸ1›ò “ßq² g~Ñ,Ĥ5‚•àĴ4ŝF‘*'‡‚a1‡TN7,*WŸ8ş™;ëbCÓrġâu¨TÚ+߯çœ4š•ĝZÏélèàv{YOċ'‚3Œ˘Ùû_WÛyJĞÎqïúy5Fx6î¨ÜŠ̑m›cĵÈ_ ̞gêq€ŜUÂMmŸPÁ8%S!RíĴs~xËÉ9Ì{ÏjJ-vŭK÷6ŝcïĤ;vkE ˆ˙XİĠèiĞlV-ġxz†ż#aŻ^ıÑŬ++ĉéüPċdżap‘ƒyóa*6ñîŝÙK¤Ġ½ò Ŭ™LžÂ8˜O&Ĉƒ6à$}Ĥ ò—4ˆğHĈ2zÛşĞñe ™û ĥ׆ÏQ¸HW ê}(ܕßß´ğ~#ñŽÑ¤é˜Ċ#ż 7Oµ×TIħ—£^Ìkƒç£ıŽ‹YÚÜzöü–ê‹{'—YkwAJpÑà€‰ê¤j;ñáBZ×#Ñ.Â[áJÉnÑvUW/úîEìĉħ ¸l¤nĦCQAu,‰§Zó÷ñ½ƒtEÙÜ+÷ÑùAÒĴÁœĵVİÁ Ş×&ì,!BÂUF[¸um˜­=PÂŜ×̈ tú%îĥ]Aħ&°ĦşÀ&~{ġ% e!uˆİ,mè[ÌSŭŭ¤‚ħdğ†B”Èġ¸f5ââ!:g££ħ‘ö-ˆħx(Rĉ3ĝùAÛG2L•IÓ³£ë˙Z³ÁI1û"yĉ=%ğˆ‘C'â1ĜÛŝ‚Í`ÈċcÍ5•Ò ˘ġ,‘ÔÄžHÌç36ƒ1WŽŞ<<ӂù4ğħ2Ä,Cçë¤ %Ç ÒYıhž–]Ô¸ŭ§Ónşßıûċñ^½EOTàAĉOkÖVP€ ŻÓERÏuĜ{€ó_ïpG]Ż<@wġW @˙'Lj7iŻNnc¨‡™V*+˜iÂF y-jËygxHkÒî/Üşf;g[D{-AZy¨‘ü÷yô4UàŽŽüĈvžŬî¨BċcîuZżêÁŝĈ>2Ċ” JŻ>ëê¨^9Ĥô0`Y°0X)Ş…ma›Ħ"LÔşÒmµ‘Ĉ"|‹àž¸QÏqƒtjĤA‚_îĞDUÈĴĠ ‚ oM›ġi#E)şŬVÄäáA_:ZëlzĜ;“^°()4Ŝ Ġûò™Y™Y¨”İ ­ EzÙ~ĵŭuϗżá…y͒~'$產Rpúœ …,a׈Âx,Ħ5˘BÚIoçÄitr}Ôİ莰R DÌnŜäÒıêph•vÇb¨¨–”ôÓĉmĴÔúGwWŻég‚ÀŒ~ƒ`Ψ{úrĞ[­ ħ=8^ lÁф½? ÷ĝ ˜D•ˆÒĊ ŭ™<¨_4H-'ż˙£¸_ÊàA:ƒÒ0żGâùâ=4[70ƒ´9ŒĵaD!öë‚äžzµiBr0˜‡ˆà+Ħ”Có·VGeGĉÉBI(5-<%&‚(s߃ Ġ1ÜL‹’ŠŠSYT_҇rw• VŠğf“üŝm6˙]ß½Ùt &xYYÇ˙‹ùo%"$Ş×Ps7İ7‚’!Á„ğy—Dç²şâlï•ğé„Ħt?%Pċ:0vQ NJzĜ†×<+Ĝfš˙ |€÷Eı%†%x›ÑIqU 3!Á´îï1Ħ…†ñĝ÷ÌX”‚BïE0l‚ݽ{jdƒ²òФìòş°òž=?<Ì×Á=ŻO‚iAĤŜœÄ:耟‚átˆ1ĝ<}˙cv'\#è‘ZVAÈ#‰–…‡§Ê6 ÙĉÙdĴU&ğALcz[•4_ŽKżq)ë‚"W‘r™ž£‚ÀCÁ D\£/JŒˆM Ià£B·["fÁ·9ÓHkLĠ'UxTÈkS[UÖtgrĈË?ÄcçâĦßNcüĦĴ/Ğ)ĦTi|ıkg×]0–ü1ak„L’ĠÁȋä’V50°óĠIËo"Ş"Yçż;›FğÇù&úŠ== S³ck1›4^—²M…Zù^ıÄK½l–ÚħüC­gĜO´“û+$;cų̂\Y‘kVBv|aB!*BĊııĊÙ_CváFÑëOЧvHħ|Ğ)HQ§ :HJùupWtrWKàtVU*2P™ÙÁ Ê´g|ĵ§t‡d@üÔCşßÀÁ!i)(Ül_5Şà…tu6ŞD%L?ŜT—‡>AFéRÈŝ‚œC{6í.ŬI”†hQR6|6ġ·c M<ğÎɏò}tˆgÂ{ÛĥÉyᲕŜîyyëĈ­ë›ìu%ó˘ ‚ğˆêïŜÒg|ż4Û )Ñ"3ö#³ĠzRA-~ÓÓ‚Ÿ‚ÛŜ”"Ò´zdÖ\˜qX*d×Itz]ûìĵĦ4f÷ {û’,,>%4Úş9Î-GËÏF}=A—P7şYpŞèjKáCtµĊ•Ĝn'–­cúÓF´ħU}˙ÄP°.r×£ˆĊËvÌ·LÑ)²q÷d=YQĞ““Ħ†ë!ÓôƒOP3Ÿœ··­²Ĥ´ħOżÙ*!Eƒ›İd+2a9÷Âò–XöOMpş5|À–ôÀÜyö‚Àĉ–VÓĝ· ċ7úċqĞ-€ ğ–—/]ƒ÷Żù\3nşŞÚ¨‚5*˙+ÉŞ WLĜ‘”-˜r5Ħ-›cÓöíàÙÁTA„GĊŽ13V._°³Ì³$Tʊ¨˜ˆ¸ säQMl¤3Zc>˙×uĵñk÷×bÊj ›¤x 6ä6ş¸8lŜuúÏŜÈş|âÄù‹ÇĥoáÂ˜sYsʔċÇO”çµĥVòuyèbz@ŒĉKġD˘zö)RԊĵʍ.@È,.)CÙ!‡bŞñEaŠN”—·ċ}™}}‚N1V a×yP¤ÓÓ¸’4Ebbhy MR¤d$IOÍ{ѳQHcìĊ¸sè&şˆşŭü3E—Ş+Ÿ£Ô^`“·­F›ûìf?cÚ ˙ŝT Öŭ qÊ˙ċXê8”Ò6†Ĉ¤c°VíRUuöPñ‚k D1¤ñISŬÂŭİ Ħܸ>şIV%/`Ĝ_?nŻPv˜?~˙!ÌU˙[Ïàù€ô1ͨĠa˙¨FAğ̑ òİ*óiŒ8ˆ˜j?>LZvĝ™stŜ0‹˙‘4ż£ÀġJOŒğñ0½29£]ì,<^¨ĉƒŞŭü‚‚üüރĞĞ5Ġ§Ió7lT§U UıŜ0a½o°àu÷cÑEğîÏYZnQnşĞµ fÎužı ƒKfxgóA‰•ŭŬĦİĥ…M ÷‰çw·m.t&˜m¸|ɂ5§Ĵż ”‚dż˜-iLü*džıÎġKü3ö𒏕§••{ġu³ĜTÓÎVg·ĉñG}”׉ b>}ÚÓ'T’ïW{L˜^Eüá)ıp‚•6A] @ŒîA£päêïħßĠ›¨c_™NH,ċ0²²`YP¸/ÏĈ½˙ê€I‡`èuž}C!ĵü['iäĠsòÏPHÒ;E£Â:*ĵf½r½SK½Ҝ™ŝġÌ@ ²CÈZ€ÓĤMš&Ĥ/ĈŜ4~ĥÀˆÛôZş™zގĈ t1üŞ5ÇFGU½rG½>UïLñKú‹ğ0żĞ=5Öxk€8×ĥh÷TCvZ6˘qzHŒżÇY;8lħ9˙˙xĝĥYŬ´4k,ûËSŻh<âÉğŻ_?y#xxëĜôÚV÷^îç˙ŝ j {4iX9½kd‰˙BP—ƒ-žĥŸƒ­şÈè·v’ÖŒ*Ô&]†ŻFm }?a§ZĴĥ%—ĊµOÌLٝmU}6³ë'Ñì‹ç‘Dî-Ëw-EMÈĴU ĵv0ÊMUġ[=şCÔ/ĥS(Òè;w’ˆzŽÏ~|äAżrOä…|äA ûesj EĴƒğ%îÁ}ÈôT[2‰VKĜΎÓ5Ċá6<–KBûáëŜ_ú—G4Ŝy$ĝ* `^Ìky&ì !_­{ÔÎY˘‡Z´ ~ż.Á!͏¸'ñúvpLËŽĞ‘Ħ8Ò‡ XÒoÇۓìˆ2EYi „qúB‰ĥïjDyRŭio˜½ï‘U‹ Çäٗ_™‘s˘2’F9Óù"S¤ĉÔ£Ò*עĴĥO…Jӂ İ áW¸Ê!²™ÇÙ-w–w"& 1$>² !+E ħ¨Ï'¸9Ċ Kñ˜Y‘ħñI(’‰Ïİk‚` yÚó·sJh&żD'şé‚UDîÉàŭPlx Šċ=ĵ\cö`˘ĤáúıñdìşiJş:ZÌb›ùXŒ‡Ü²¸ÛùòXŜ@Wâħ¤›4!Dĵ†c3÷ìÑċ&é&â,œ7îÜëڃG§.;ybƒ…Ú‚…Êß'Ô ݲ/µ§˙>Ĥëi kÚ3!ÎKúçZ‰wvìAĴu=Ní-„Ü2‰/ÚÒn{DtrlJX a"KÂËZşz[–“^ÚĊŭĥ‹­ġÀgúŸt½këĉS½c"Lúw{›Öíî6Ŭż›>ÓFƒnŬ§ŜË5ÀÛÛ­Ùżġp]K‹ÚĵX= 6ŭ×Y·ß§pċ‘e!A ‘Q‰<ŝêOĞ„ˆ4„âÍÂJÂ+ĞsJвyĝêwĞœRBıfúéĴ ސpúŞĠÓşI`‚ °ÑÍwë~Â&`FŻÁlxĞżmƒ/]jƒám˜Ĵzu÷έw­“àĴúĠ‡z\S€"ŽÇc3!ÔÂÀ| ŞKé°o>VWr@QÇ6EuèhFnùá§émˆÉÌ%ıĥ ‹˘ĉ†KÓÑ6äÇ̖ wéáı-tÁ‰!‰>µiùÒú4¤of°…ù çóÇd—Î Ĥĵv~‡+axˆ’ˆ-ëúx–PFĞ)<41::‰w]àš‘œJ (O*İèÈ>|‚ﵘ%ÑİœL½’†ñù’ĝ„•Sï݉ ġq͎ĵzîċ½GöĊG]§aC'ßñà%‹¸5Ĉ”UĠ”5&Ċċ%§N·\BÌû;ĉrÜ`m/Ċŝx]\|b’›İ’x6 žÓ,ӟB˙áZĤĉ@E,¨Àéİ] ,– FtÒĦÉİŜ6Ó1á-ŭ+’ ™İÄž &ÎßSâu\ĥÉ+u;Jf°•„ˆw<)UR²dٓï*ż,‘*²ÑYÔÈ<“˜•*=TrFQЍMßa{úupTŸèù°§¨ĞöOĝ 2XÁĦÛÛŻZ7wjĵŒ.2wW|‚%xè*'+Ï:yzßĊ‰ù)|KËmġ™ßͳîÎ>‘ûƒ¤^ŝİîİ“#òeԅŸ˘ÙüWçÖlX·Év֞e§ŭYY9¤Ċ8 óŭ˘L~ŝ˘OZPJáMèğ]Ŭ ÁIë+} !wïG˘¤´¨Š˙0‹Bݤ¸=óZxÈ”ž ]£/; ô}Ï´˘…4ÀOb­Z”0_)zŞ‚4 oĜÈŭ¸ì<Ĝ%!h7!AïtżZ‹‚¸B†d­ċ™Yùı|CkGùú“+lŻü=żµı—üÈssÈ›dÁ‘>q{>ZF0êĠ30ÔÊW0è£nXDXùöÊÏ!ùsâ÷ӂlĉ€žÛƒ Âw;óĊÖ·Ÿ˘ƒ¨4&+‰ü$˘0&°<¤²ĴıÓŭâTRÑĉxvĈħ`´âÏ>я`(é(ç[oüÀfo§2„­MŻEĊL÷µ³Ÿ}yazŭü`á ĦĠeMÚw´€ż˘KPqXÑÈC-ħí>ĵaFŽ<ÛÊÊ šĝ,h‡°Byµ²<=Ĵ—OJĜAòIeŻŝjPŭ½ŭtm6Ŭ³ıjYġEÉNt™y¸à‚‡·ÄbİmŸûóìíċÁk×/7Ÿúb.ŒçOżçÂQn£Ë ž=°Âîd×ù3Ÿ?¸ìä -ĈG8+ëM yvBë.•òÊGß<żlğNË_Âi‘ s§÷ċFĦPä“áR„]L‘Áœ²Êe ^;˙ŭ íFuC;  jĴĵmÂŝJ‚sƒƒDl¨šŽ '/$n§ŸÎƒóçË:NòħxäÒ·§ â.ÍÌÊÊFeLmX@H¸WùJÒn›’ŽüÒûœŭĉ -ĥ|r÷ÉíO7ÊB:0­{óBWš“•Ğ‚á½[0ù,áí¨kş&‹ÏhxA= u‹A’Ġ˜‰ÌĵQ²oZt$f:ñoG—é¨ċ: O;êŽxJBˆ +ŻjÉh*LçKa¸ĝç˙LKMĜĴ9ġT5†iùĴuœ'ŭ7éáĞFG„WƒD×Ġ§šïs¨ÓïžÔÀÀ^Ɂä³òÒ­D4E£(†4? Uµ…í÷í?ĊƒóùvMëĉ"xW 6ˆZû>²DÙ˜‚%Ŝ Ž”8gïŽ<—™Ÿ‹j˜ĈÀ²8÷ä Ż,&†wS÷k-ͨ”?,áç£[ Ž‚ġÜĈü-‡9tĉÌÑî|–ġšphĞóöµ1 ĝJ>Ž:îŒĥ2˙ÛV³·ÜÇ>­îŝ~ûüÊ<:ù¨ÍĦ‘ñ‰)òĦ‘"Ġ//‚‘†eğa|7¤t„nQĵßÔ°ÂeîÁŜ.'G× Ë—ÙtĤó•{<„ÒˆÀ„PBw¸ŝÏUÉħİI(Á,´4˘˘6§ĵ “‡†ßWgĉ§gĦ³ó½żqwŬnÛĉĥŜÒ²}ŭÙ³íWïò¸GÈċ\Bŭ˘£COt”7•û˜;ĞŬOFNœ¨h(,ĴĜï˘6Nĝ†CQı19ĝ(X›ùUS”‹*ÌjB #âRÒâä<~ˆ÷Ä%FĊ£P3DžÌO€ÇĜĠ´8.#0CiEaĤ8n=$z'\0ĉÚÜù+ZîFr€ZïüAP'Ġt£6OµúƒŽö$÷ÚĠŬÓ+ş¸½O İ%*Š/ˆÍÁÁĠTž—˘ˆCLDh´,”Œ&Há(ĥĈäL‚ĈYEti^†"ݘ‡‡°'/[cĥÚK{֛9T’VˆG>ÚfŒë óoJ r2Q “›Téï‹wbSœ‡‡œšŬĥż°âŜ&ġY•ıÒá1°´ ³€VV áÙû t¸4[ĦŝÉŞÌÌ:”˘ŝuh'endstream endobj 176 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1186 >> stream xœmTmLSW>—Ò{ˆU{W0¸ôŞ#“Me›š%(ÉSÁ9u|‘nˆXJ/³a "ËYELJ|£Ò­nReê‚SƒNSÄ7375‹;—²íŜ‚‰?v~ܜ“óœçÍsŸ÷y)àï(Š ygOšÙb0G%ĴˆË5ñ+âsÒxKêĞċÛÂOŜš,R˘@ ô×Iêèż- „/*gĞ1;˙É\ï< Ż@ŝ#sž%?͐‘•c`ˆñ $ˆA4xl[Áİ:é`Œzê ĵ~~‚b"MÑ£¸éÏ.•x "ÛeĴ~ìÁYž`ĥ˙LÎè”ŞŭġJì…ÎG­ 1×;MQi„û­)ċÊL }€ĝ(ċÂêÛ-1Úo %LĤ2çgò„L,WŞÄ 8ş_œÓ•?˘~àÁ•Ŝ`öv+á5¸D 7û8ÖBÇáŠvÄà°?žà•xQÄâ§×¤ë8™òô4ċԍiJö6Çe|žmħïFÌŬ6HĉFG’—[U›ÍİDµ$i^wÎIR0;*é9,|ÎÁŻzÚí¨5”ž°2ĥ zßя+ :JÑ!Túi&ŸiܓÉG•¨’7èÏjÑ1tŒÁs×_' y5”,#Kï‡á#—šÖÄĠbż¸3ôŬEÄüäH]SŽ£rN…ŻK£qáBġÈ£8„ôıqD€ıw ˘ñ– ÎĤûÛtTםDmŒÍĜŝ x3ŒĴİ@Gíĉ"ñâ˜il÷…Ğéo Ġżcf‘ôŸàÉí^sĥħl³u´Ûl{;Œ{ï1k”ZŭŠ/=:9gùrÎd;Ŝ†*܃„É9ġ—Gq* tœ|7ıV²J%½ğ1%JïŜ—êNŽ?ê=8Uĥ]Ü!Fj,}†Ö( %íÛ´›ùŸÀú˘ŭ,ûĴğÏQk_8|*{sáϚéy:4Ÿ=.M‡g…V½ ਛ™&FĤÇYR×iUÖz1żG7şjhg€g6 œÀm^Âendstream endobj 177 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2514 >> stream xœMVyTSW~ĝÔfŞiŞol+j­˘ĠñœÚş´î AYŬ‘-$Ĵ { Ĝ€ÈMĜd‡°$"Kd*‹ËôX—#UD;­[§gNï\Ĥ3/Ú?šüwÏyßŭî÷ŭ–Çf9a8ŽÏÛĞŽŬîµzŸ"Pä8|­B‘ÓċÓ Ìċı³tï͎žߛ÷äo£ocŽßÂÈíQÑ;wĊîŽS(“‚N‡H…Ë|ä1ì ĉ‚I0Olĥ;Œ}ˆyaŜ˜ĥ;‚íÄvağħ=Ĝ:l=ĥóÀ6`°EÑÀfa_âîƒßqZéœîóÖñJyÏfùϚ öEäûdù#ċF=˘·ÑZzÔ9Ĉı Zĝì@Ĥŭ¤ž]:ĉY?Ÿ7µ@÷ħñB­ħÔÔOgVSäü‘4 /,²U&¤SŞ#Ċ'‘G–2;¤1Au vs{ħ_dĤ™IÙ*@KĞĴù5 â ó-fPÏĜ#,>R÷Í"ŬK‚ÏNĜÖĞÛĉ³Ÿ˙ĵé—‚WĤ× ƒİkYĊİÌô'ĞÜ3‰`˜KÁżŜ†+zwğä‹an½ñâïOöÚ"‘ -AW„½°ĴNĞӔĉe·|ß²{?-E£UŠŻ<}á ´4ċµ:ÀüŜ'Ŭ‚è­Üóâ•­BÌgsÎt°kۚ)X<ĊƒV6A¸ˆ<êíHl¤}sÛoߌ˜{Dŭ# ÷À ßÚw×E”vZ8ÚêğınEĝ'Cú_oCü1X†"Ħû%vA½²>˟\ ƒ[š>CKäœĤ÷3–ÌLd|)I'äPŬHıV5ÁġéFµ0˙·šú††ÇÍ·ÁšûŒ8:şù¤Â)OQé(ñĊÌzá0ïjnĠ5f°ċÄĉMQbÙݐ„˘Šä:š?½ô°wğqĥö'Ŝ5Żsj.žéOQı9Ô àûà×Ĥ‰û÷ğ €Î4ülñ(Päq\8H•·Ŭ"—°~{Ċ{6„ ^$ŸíŬÚ şñ8öïû?]*qàq‰M¤Ĵpqœ _ž”B óä ´p5YŞ:ğƒè /Âhâ$İܞ¤"+i‡Œ KR‰Oz)3\Ε g]Ĉı"l`É ÜċĴġŻEĝˆì€é„@RùÔ:ĝ³Íè½P ´ F“­QYîïv|­›Ĝ ßç @;4wŞn<†ç=~C7³Xµxf EċžĊɐ×NíÊWUĜáy~@–Ĥr,;ÉNŽeİĜ‘”J È˰Š€'Èâµ—²Àu.yĤ…]Ӆ_½öë=Ĵf aĞÖ`fş9ÔthĠğ?;l‹>)şaR€`Ú'<â,ĥ´6E¤ğœRšV Œ,>Aĉk}ñ;7ŸŒœ2ìk‰2€ş­ÑÜ^Rœ­.ñácġëÜù\_zȃ›Ĝ{B˙·Grj,ßĠeFS€ĉ€I>ÜÜ_ÑpSd‚Ò"Ô @Ċ×´—äVäêÄŭPO@×N´”4@’£}ùĞavŽ1W÷p€ı Gë¤D 5™ê‰*³Ù ™‘´† Ž˜†nŠrÔ dÒĠ –‹%ú+\GÇİÏĤ:"Ag0ä×ä׋oÁ b#ıŭ÷p€_b`B•úĉŠĵú âqx‰ğ°ĉÌ(ğ¨ Żšäħk8#”² Ya`V€Çü6„Nò{iä4°Ş·×<4 ÙàÈĤŭŞc/š:Jk݈İè̤³_:$ıÜZž[[Ĝ$nğ*î”ġ´ì´°ŭ€/Ş:pZ ÏÈöïàúÇptÎÏ ŸëÁ($cïáˆ`Ÿó&Ù$áG„’šRëâÊ‹Ž3ch0W+A„—äÀYFrUšŻÑLh³Ü>ù#¸éİhl‡âÛû¨ÍF"‘tGú˘ù‹pËÂH¸\ŭ8 ²Àٚϊ2FĜwíxĊŽÀĦMS_ ,´-ĜêċħOvĜOä)ß ŝA#bd÷÷WoXŻ‰ş)oŻQÇíl?úĉĠ­-Ç\f˜uiƒŜĉ"=nxÀc£ĤB´:’ˆ˘ÏCǢKcò£ó)XïïŭI„_²ĜC#²o˙wƒ–1ğ<Î>úˆAÙmĵX¤w)W+ĉÉUċĉ2mu^ĝwö%$¨KĜ{è*VuD è#'„ċšrnÇİ/h-z{6ä’ĤÒhTœZżp—”wÁĉ.œġ|Áğ÷ú’[™%o&Ž›câdÛ¨ŭùéċ=Pmè4•€1ês™}Š‚ 2ϊ=E-òê˙‹ Ôj-yt+• ˙ÏAb}ü½èç_]__ ß1ßşŝM˙ĥğ-ĦEh‚[m֊×Ĵ˜˙\Ŭ´tĞ;§§M§nğş}ÛXއ$ÄpûdÄxĝ´—P'—Ġ)êëbë#Ċ (VˆVDp#áAŞġUžKéL€AÙiëut£…’eÄe%Z–\f,œ×–ˆżeg|h>cŸ~ÇXĴǛżÁ0GşÊ9”eĴšIK÷È< TŒ]œŬÒU\7ÌĦÈ3â2“šXi)Ï5ożbĤ ŻĤ°•á³O²ôì6ÜÂŝÁ³ĵ–Ż'Ğ2é§DŒ‘ċô܁†$ÁÔ×YçSQŬŒn3Ğ+ĴÊ'lzèu†YÖóġ|vîôàVnћ#s> stream xœµ[_sÛ6ŸıGO?„Ĉ×ê&BŸ@çú?i{7ı^ê¸ÓÎ$}%Úf#‹*)%ÍÌ}–ûz÷5nI@eĊ²’‡"°ğĜ]ìŝvü1˘„(ŝ ˙ÎîΞ_䣛ĉì3%ÉĠ(gJ­FŠ E1ˈÌĊ¨.FżŒ–g”Ĝ\jjG7O8ğ>û èKŬ2à„+‰8a&HJƒ šH•·$ħFärôxi jÙèûx½^°,n°>n)L…Ċ-·@ü$`ní£Ïìnôġ%ÈÇÌÈĞsnF—×g^1l¤ əi9Žéî,›Ö7Íĝò÷³—Èl4LR¨]$sK´4)É·Y]LçŻêj]}W.Šĉí¸c™Ĉj Ö­ZRK˜ 7‰\ÈŜ$œIzSÀ@Ido É$é ǖŞß@ŝµ#˙)JiġĴMJa¨”7Ù_ÇFÍ7ËÙşĴ–‰âŠPnA_רĤgĝ Èg³yYw/2[MgïĤ7EûÏlmv~áÔüġĉúüYKPÀŒġş¨—ğgĵ…?d…³>‡9ż]ŝóŒ1XU£Ë—g—s‚ &- ²(ŻÈ˘šu‚utLöÏ/_‚ağùœEóŬBq„ûîÈAM ԁZ²`j4AJhË9¨ççĤ\ŜŒ'Š2•­o‹07Uħ#£j)ÎrzCßÚâÀÑv#ġ¤ÁĊ7wĊrŭ É\Gµ,ZV,›M—í‹ÍšU1+Ż?†(K‡VuKFï‹zşh`Ùg‹v$ĜLpۄoı†ċL×í›ÈŞÍÍmûjDĥz"WEûĴ3g¤ŝè7Ä)%ŬJÊ(EŒé]W0Ĝf8ş OĜÚJ0Pˆ8ŬVšpɉj{xħŸ˜ÚĈï§ì’ÖUö÷IŻ™§ ™ŒÂÜÜĈĴ³ĉc³.îHë|Œœ VĊ’5A èéĴ•ŒOñüÓğo œ4X1OY;ç:?B~šċ&TŸEò?ĈœĊħeŝûQ1r€§S‡½CbH”×GŬ#(8È pİrÂ5ƒ´ÊF“.4c[9 'tyĜı Ka'” 9ŒiG9<'–š„î[·ŸĈí d‘ò;ŸÎçuÑ4WUġŽżŒÁ̗h|äĜŬ”ċ‚c•˘Ĵc,Á²TBü­w7żœ­ü )Ċ„İ‚˜{)­ˆĥaoŝ2f˜/µÉJ˜ ıÏs9=v<^ÑB(´_ɞċ)˙8á˜P!³·ċ̉25­H,+o–U]ÌÛàµôĴ\Yb¤Hd@#‘°Üˆ™:•ĥ—'k6ĞĠ˘,ĉ­à2›.N ˜fcužŬM׳[š;ËZ2À£¸gJƒÁ/Jœác”8û}é†ÔJ’Áóo_Ïà‹ŻeË:LXšĤ&ëNıĊ-…#T!„Ê'Ħ’Âġ‰Ê‘˙6@ê¸@–Şoo3ÔUó²™mŸĈ/Ӝ6¤Ns1~ˆe;°Ò²‚µÔ=—ĠԕŬŽ‹ġ…Pàê8<€Zo^ÍşCKpĦ†ĝ:ĞżñsŞóf#ÁĴLÄ|[>ĥ4 —6bŠo³­@˘£W0²T‰Ĝïïsê˘T;‰ñQUw£ÂO9fž=Ñ DíœÛTqċĵU›N;ߗFÈÄC-WKŒM×Ď9ç` ô Ro‹Ï9N" ósĤ[!Šĝj6ƒÖ6qsH.mËóa57Û| ü/ĊbŜŽmCÒ´Ĝ?ġƒKötĜÓħn /Á&]‘ok¸D.:0!çáaAha:T`C@w 7<ÏJZ„ët|VŒ£4ĝ‹îEĝt͓Öe%DP£g?+ş°|¸ÍżĥÙëžÉ°óİÂçĠb1­CĉYµ*êéşğ]hx°†Ï‡ÏÚ, ܧïúvċË3ĞÚBŸK××EKšv0¨í#¸›‹EÛ}….ÊwQ \”Ízgŝcı…ÍmFñ5eŒ\ƒùoxÂVŝcı1xC7;MċAw§÷x|ŝcFACk9ÚĈ!ŜÀ.֔Q„Ÿœêg[XfÂâó'(Ùcz.ÙÜ+p™—Û^Sà h† Üá ÛĉÛ!}}Ë ŜÇÑĠ·{Èa9ĵ§ÒBúŬġm›w88£’0™ú’ŜóŸ†'lkˆQĉoĝşƒó8BMx H‹“:xÄâI<˘WÎïğws"°M’¸“vïá [ĈËa|8úîŭûÁöÍò·$½Ç·Y{ٞŽ4ašÂîÂn6·DçP^L ĤV¸ÚI†ÊIĈ#ħU@ ”W˙‰‡ġ†SjAxéÀ‡áĠqn4Ü×Ğĉ‹çÏgġñ„€ĵ6]’z2ž† { ¤ŞožŻĤ³1w·Zx†Ç=_v=ÂAÇn‘›N$z1Ÿ‹+ĵĥh UÙĤXŻ‹EwĦAeߍ%šZ™Ì‹Ì°p˙_Ġıc?`-xQ6{½Ŝ9j9×YħĝĜ‹ûü‚süżC?ŭ.ĥÏendstream endobj 179 0 obj << /Filter /FlateDecode /Length 3008 >> stream xœµZێÛÈ}ìG“Û żÈIü3ßLŜ^LL 6RQ=ıZž‰à˜2"'ŠRĴ„˜\mÎnzġŻ³ïŻœ<ĴI!Àĥ3Y.&ġiDUa0—œ TüĥWñĞM–K£X.ïÙMıZO/÷†~1ŭùêŻiŒÎIàmc\ \c´[ËqŬ„ĴÌ@7:_Öċv^­šş#ĥXÖÖâe}ŝ % j„„ĉ+dX…žH#0£,Ĵ/Ġŭlë)!° AŻĤTi¸¤¨lÒµDĠnW5vµUzHğ4°zŽÖĞĤm2ÛŞŸ²+ëvU{Ħ›²ßĥ7éƒVI‚áĥ^Vġ&(éAċvÑ?oom/j[nl‚÷Mï(E³lÜÍê³Ŭ&ÙmğŞíú˔0?P„}€ÁšzM3Ĝ­ÔÇĉ TCN…Sl(ƒ)××aĈ 2ıŠ?Ù¤kpğ­ËĥŞÁbMŭŞçċ6ŜhTç^˜`Œ˄k·ä}ˆ•ğ+Dˆ•›[ĝÓŜÖ_Ü-Ŝôc$jloAßĜġ˘I:QµL *“>Š6ĥiÊûŞ—Ŭìwğġ—P?ž#ğ‚0ĠI2wA[ù[·"…Í͗ ¨îeu²Û2 e0kż™Ħ½éOd·’í00ágSĦGàöô ·=ÌÂ@ÀUÚÁ,g N?fG”|JħRVS 6ì²gÇ' żħ‚ tğĜ= N€^A†T.ôŭüsB[ùrhËe˙ŠÏ/=Ì&íè]Dßó̆G§AɍKŻ_…ȳ†˜ ġ2”ÀvT.œ>!Z`I5ÉčDI†8Jıáì †wNf żì1è<Ŝi:÷áI§ 9£“ NOâzDšÎ$0`i˘™‚2ž!Úéˆ!dÄP–4%20‘˙0Là‘{ŭfzĴ@פۅâ4+r{óëìjäAC^Äìúc]µĠĵZ'âÀlż\Úş ?¸$·ÚÎ×ûE˘ħÊôL É/fĞ6q c[{ó’  jżìlDžoÓd9Z—ó_|Ĥ-|zܖ-”d½_…KıUŬâéöò]/éŞ)ëjß1&Ĝ•#E¨ü ûĥœ­mœáR; u^ìbœÔïç&ĥ™×ĞYGʈ³)ÙĞ;oWĠöżà6"ĊaŒäcĴ„CĜÏM@? ,Ž „ŞAj>\ÓÒóŽÈeßzJ ÌLZ ‹W}“è¤ÔxŒ£ÏċzoœŻż0sĊŽ˘Â#‘Ôâä„[5p1>8&)$Ì8 ̧˜CĝEQ ?­šŬşœÏ,r4OIyÏĠĤnÓèĈ,żI†–>ԙ޵ŞÎĦÄĦrX”+G…!y„sï5KÜħIż$jlÏñü°Ëv@|ğàëÍnm7ÀĜY?Ž$ ¸ Ó:75·ĠŬ öÖÁŒcÔëĜĜöĥJDĜħÙöĥl1hWWŸW Û?ž•ÍjŜ/rµuġKéÄñƒE5ȉuX9ĞöŬA?(n˘·Òž$ÇIŻ€Ŭ‚iÏ.‰÷ôNÏ8L@™úĦ`˙pö Ò;˘äñyB€=L‘ƒBï .%Ċ0µS ġWl$]žžqà .C”Éҁ”u´Ï2ȗ# ïBÔ0avÛ%RYWż%çRRşèÛvg jrü#d½jû­{á! öÒ@–. ZBqîİ/'_}{9wİxĥŜM%Ü1FBĠ7nۗ‹Ċʝß%pàTeÇÈ'Sâ3c³ŸßĈyZ†V…TŝI€óx³°³ŭÍMt˙“Bğ}ízKá -üipŠ€ŭŸ­TâùmY—ó€í8¸tĜ\YšáúĥDĞ b`’ÖA”gñrSĠĥ_ÓĵrHĜÚä6‚ûÇ~8Š1œAĦ­#ĈÔvWÛ4`Rפñ~Lpà™Wßĥm˘ L†–‰¤‡Á‡%c³Ŝ"uEü,žqx N]ì[žÎ—ƒ%ċ‰ ë>kSÌ×ÔP3žµw*Óau]>îcĉHžĞŒġx.ñ#Êjžç3>ÔA¸ˆÙ—ÖĊₓ@îI³ü È5a`„yoäĜ,dTAž“,ŸšċXgeĦŝĠħ°OĠDXaxù¨ƒ9ŒQ˜O²*ĈxŻgULà;íqtoyx,Á‹Gs4+ Èb$Ù|ÀġĦÄĴR˘%ôœyßWĝô콟°Öċ]_ĉ~†B=/{û"^ĉŻsšµó[ÀĜ7èJ oëEs‚AŒ1Ş€ĊKr‚Ç –Ó3JĜJb#J^Š8oòġ~bg½{íèA„vvŻr2½‹ u¤"_ĝĞ_ßÙ sCòġüíïïß?e)‚A„D.ñ(;萘ġŬHä1ÂNÏ8ÜK”3Ĵûŝ(+(VZÜËF<žPÇxeOÀ AZ”}ħWd…Ÿ ŭµÌ~—‹ìšd×&ğĥŭ5-úk.ûkEOÈÉĉJv†L—ÊĈLW‘˙ž­‘È4•ÙuoÉì1™=&³ÇdögϏşĤ&ównŻz&ólŬò”ĊñkjOÎ=Rğo( 1¨$tBê³˙U‡à5ŭ‹u˘ûŒêïM|Ĉ×Ñħ¨ÌßşÇ×Ññ}|ŝé@ž$7YVżäYwO”<Ŝ#2+QŭÁs#GòÊéXÌrƒî°€Žù^ŝŽèx<M#Ä·KÒïËáËÓçKY—ËÈ4£ÖnvËĠúI)Ëż“ħ#Ô_@°ıaŠêûu . RPŠ4pzĈaèÁaî½ĜRܛFä?!ìLbEFߓ½n7ğחßċÛċnŜĵvñaÊì…â3)éùħ“£4°è -°:rrNÏ8pŸvµ”̳(”ÜL>èèŒ(y)Fĉ(T!ċ³S²LîWœĴoÒĉÎÀ‹ä´R€!ât+­mıx Àיà!—úÑ-èĠ‹t§”ÚT˜á"ÊğghJ LŸl¸÷™DÍ-žb,d#eÍÀĜéĞç²Vşrœ ¤C‰{hz`n,ìù*6Y(&\÷nLOà`í‘óĵäûĊÂgŝŭ&p´·mk×ŝ€òòğ)÷8˘‘kӄ×ġÛ˙Uáµ7 ‘"}A¨|9ŝĦ­~ Ò¸@î+À •{£‚.ŭ+Ì·{_NkôĠÍÖ)¤u‰Ş è?‰MıÙ\0AiP{ßÙY½/ë˜b`֗¤[!> > Œ:ʸ@,mY /xi NcĦ´!qˆèóú’R÷qOg˙üòXendstream endobj 180 0 obj << /Filter /FlateDecode /Length 2655 >> stream xœíZYoÈ~öGNZŬîû0²@0ÀN€`L<ò0ŜZ˘líJ˘†”g0AŝoŝFŞšWSċC²ƒ ?˜¤şëê:*òKÂ(OŝĠ˙'ËÑùMnËї‘6ŠZXĤ•"ÑLjŞE"ĵŽñ¤È’&Ğ£Ŝ3!Urûĝ†Ñlôw ŻL@PĦnÔIĜ Ġ<‘LPë|AQï¤UÉ7àä˙ü>Ÿ€‰Œx.İ˙M–Éğ+@êÄSoĴpÉĠlTİÎí¨ċä‚ ?-GŸÉïĈg\[M>óŸÇgZ€0^–6׆°Yw­Ewm˘çf]óèÚG×Yw-Xw­LwmĊhŻ‘2Dĵl´†GĵXü<ґ·2xb˘ëNÉ#y|$äñ(ÏÏWqÁ|rġatġ‡ÊÜL3òYĝÈŜħĵöH6V‘ŜfÈĈz÷µÈ÷˘Nç—\€ƒi,ú—§Êx/’3Ħ)“ĝl Žġ·b|&Ĵƒ}d“·—iq3ßiñŸxʸ%7óU}+œ&“|µÊ&›y*/ğŸÀŬÛx5œ1pß6, DwQ¸Z…ö}t}ˆÖ.Ja“£Ü´QjŒ-;˘Ô-ÏğHfñ)°xI -…­‚t3³üñĴ³ ä5áäF…g \há!U$ĊpzÙvpöšJ8Ș3ÙdËġlÈĈWżÔ Ÿu¸´T°>Ùkr=F’gpäÊËäĴôp€7ÔV *M%ÖĦšrCÁ‰{$ŻñìN;˘/Ò`€²Ô ÷uì>“|µĈSäÇĜvĵT†>ĜšAôyuèٜ%ëq&'ßnN°`š iúĥh·Ŭ'ßFÄı-U™ót1˙×AÇ*8.cşŸáü×§3ƒgƒRŻâÏ­VBJUZMyyˆFpÌ.hÑĵ•xĠ“@RN~E–NßÍWhÑFzDġ(aı[ . µjK‰ôÛ!Ž˜_l)D|ëÀŭÔ!Y$"ÎĜ3×v|z,i£†™uÍ’·Ée=y[‚-쀘)€ĉ>×m†-à …|üÌö`ŭ—£í$5NüÖüÖĵĴ5è÷6 ş~uŬj”§Ö(^XażtĠtޤ‹²íıɚkCîËlZŻ‚Ì›=̐´ÙN–yÑ찎@Ó1cS‘.šVC’üĉè4²žäĊ<[m*Òĝ„“YZŜÍóV&œçĞÛîvsI5Í‹´¨”ÁX‘nòĤrœìjh ]1€yÚ@ĥ ˆT͆­Ì %u]Kc-‡0×Oiiö8żÁVBŝġ. Iö$um÷&¨œ’İ6ùTċ"÷İıŞ£lԁy%dPBZĦƒ;§iˆàÖáüŸĞž`²Pê—“Uüj(ÄcäX;Èp ÇÜèİŒsž4Yfe™ŽA+ıE €MVÒ§ċÄš@²9MÍ KFîj8à°TˆxËċÇ"ßäïîg;°cÄ ŒzäžÖéä×ôš ”&Óì‡UVâ=Gt[5Ŝ- Ñ*{á@bż, “Q²/Ëì~UšJ!Ğİ8 ÂmE4ÜÁ UGr[ ÊÂL|VäËf§&?,²òoe¨b8]¨(Áo_ĦžÄTĈÔ]ëĝÀcbĤ–ĉĜÀeĤûÈÓ)¸m‡ĴW .ĥöñ9Œçĝtì•҈ô-ÂäžSeċ0ìŜ°{aĦĦfĜË=£–O½{x|z­ôċ2 °êmy@öƒ08ˆI^ßÚ5ѐŭTvŜ<<ÏZm|-%…Ġ_xĉ*L3İż|–!- m7ËÀĉş CŞ` iVNŠùÂĉ´yĴĦ§\ßoêamU³ġv£ŝ×|ĝ°ë}",KƒR ^J@ÎWÂ\UM£[¨(lŜÀq­‹Ĵ„64­Ó>·†ä³*´—M× ?Ç.>À˜Ïg›lU/g šêĊ˘ijñ·½éHŜCrOˆ“UiĥÄĵIçĞní|5ˋe,ĞGéĤğĞ{z |ÛĊuÓĊ;̅hHLv[iJ I´6Üôû*]ÎQ44$g” „§}d‡Î6¸ƒïë S'b%ÈĞa€kĦ|k–A£p—~Íj’Ĵ~ÈCb,òŻóiŭ£÷Èo^6KĠ–9t5Dˆ÷?ZrÀñ”’HïĦ’YKq:£û֊JN­V88”ÛbícíÑ y£oL+*ŸÓĠ¤#­-…ŝÑL½Np×dj@–nD‰ċÔÀ˙Á?ĵa+ËÀBñÔÍLáֈ3Óíż‡Çı†-½Û*ĤU_­ŭksĽġ•ßÖöq‡ Ÿ~̊2_5Ż´ĴŻûŝW}…µ€ËŞ!˜@b9 @B-âÊġ(ĈoRŽ(|S‹cViI'wi‘N6°ÔעöşëñZ/„Ċ²Ö9½÷iVûá ۑ(Ĵ şû¸ ħ‡vâħzż‡ŝË£Phz[*FvÑĢ$'—ù2°êy_¤ĞI>/OöUúùô˘ĉȰ2ŝ9Š‹‹nĴt2Љ×ŸfE–ÑYq²˙çL ġI[c’0+Żʎ² ½Én˘˜ò~ p˘—kÌêğ*†’È]½o¨ĉI &y8÷½q=ïëÛĦ<% ŸôfÑ,6Ž\vÓġ…8m~—¤ĵŸÜuKÒò l ĥLŬ\#ğĞjq%´uPTkFħUkxVĴÀBì ÛXÑZS§wĈÊvĠÚċñÂôIJŭ–çc ,c’o0°ìÙîM–ħ˘'ĊQ–=ÛíXê*ŜßÚp˘â˜&"ıÚĵÁ×:ú&ÄQg1Í·˜Ÿr PÑ#³˜â+³˜Ġ‘áY_‹½Ìy(ŝĤ† lxVÉqžSkŸ‹Îö? Ú|‰_ßŭ˘3QeÁ÷.pÁ<ĦHN€xï{€z´Ò=¨f8ġP!^ù`ŝÚV_>\4B³ÄPn~p1É@D'g( RĠÛ&S9/ċĝ­˘°5èûwkÒcĊ g¸/şúÔê#W€U<ĝĞ„$Îl]$ï6›uyq~>)ĈĝŽA"b\Ñâl|ĉÂX?Ċ yq{N'cŜ ‚óûğwO{#ħ[&ĜËôEúi:Í7c޳ĤÉ}ĥÙd‹ÓfĉĤÉûħÂюT27)Ğ˙äóf:fl3‡íɧMŝk f…!xH+ïù%däÛŝ £Żûúendstream endobj 181 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3760 >> stream xœ­WitTUĥERĊ%ézPiß½˘L‡ĥğuـ€ˆ H€!„ÌCe¨yLjìSİԜTĤŞ„T&$ …œŸŭZQò–í²íSzYï½S ’t?ŭ÷Ş~ÔZ瞺gïoûÛßaɳ‹uϋ[ĥËùżôáM‚ƒEı‰µß#ù‘÷cĉ&ÁÜä{SOAÍżq÷ù{ˆÄç5ċüuUĠá&‘ĝ $Gš+;”—_PX´£8½¤´ì‘â~â%bħ˜ĜNì ҉Ä.bħ›È Ö{ˆuÄ^â9bħžĜ@l$ž'6/+‰ÍÄċÄb+q7‘L,ÂÁá)ëVëÚ,éĴIñäĤäŻĜœœŝÙ³?$kÉ/ïÌyhÎá;×ÜyinéÜï:<ïÑy‘ğ³ï>uOù=öù/ĦĜĵx Œ}?_$fĊm1n´*݆xğW Ġ"(–SŒëf‡ *À`âIuu’?ġ'…Ŝ_M|ÏFĞ8ĉP 3OeĞAIò; €w#£™ğN.³ƒ£Ë–:6>T?†ŜcĊWN$ĊGb½­¨Â¨”(ċ^QH½Ééöş#ġÍ´ĞuÀkä›yƒ[³sùù”b(żħ ĦR$-–—*w€†ÔÚĊ]6O´ž²ùcA =™V]g4kéġL·Q f0òÄU0êôPMï·]ë>Ò{jÈfĤ8ë 3GqÖK ‘™]E7úQZ€ş)J@úñ¤¸E¸?lŭs'3‡YďŒ˙‘è.”†–R­\†ġ(“ül†àÄi”üb½wĥéċ‰·ÔŒĊ]cĴïqş×ë¸ŭèß,6Ğ lĵFmP(7è•5”F fµ˘(v(°Hf5³Š9Äd1ó./ĊŻ_~-x-¤v kä ÒÑLòri Oċ}ôô,˘z4o´7çEħıôty'8^+ĈŸËTĦßMf8~ÂÇÛQ?÷³Ì·žË<ÄŻâS‚SYV„*²RR˘Ü5SPZ=Qċlġž c|,U“ƒI3ón*0½TċPŒ9àу?.o´TtçÚm1wç"~@+}ôŒÇì'òlŬxħ?Fw^è÷ee%âò‹â)¸ŝò/’âï£ÏıÏĊÖJ_†í;)ĠáâHV1KSUġĥ8é†ŝĈá( ÍFÌF½‘‰¸ŞĤU ˘ŭèݎáîÂs³PoPkĦŠĴn’·„bž‘ġÜ<†žKŠKÑ.|ĥ4”éÚáÎŻ‡Nh¨ïŒğàtC‹B§3Ġ@-YÔip7GüGOgö>Ä,)xô  Ħ2"˘"â éŞê°ŝ|-äLYR$-ä˜ÊAéPĥÙĵ’u[™˘P³ûAto],ú†%v–:é|Ž“SñŒĦ­b:t%)ıĠ ĠĈZİ–efÌR!rF`µûé7Q#ûĈè| ú3œJ³ûÀŠ™Ô¤IËu3•ÏĴ`?2]9Ï3=쌣Ùo˘YWÑĵè ŸÑ~|“R § bĊK •Ĥ€gêÄ˨ÍîÇĜyíb—ŠŻëÌÔf^PÀ,ùŠ´‘.×àqtíéxɳùÑÜGr(Q½¨Ŭ°SÁ mQL¤zğ^­6ÖêetŜ"ùNĜO>]0ÚÓí:L5ŠÛ0í_{¸ßsœä¤2Ċ•˜$ŸÇ?â&Ҙ#E%Î*‚³ú+³QÉffs?Óq`šŽK9h^\ÉF³9ŜN,@?§œ‚6Oè'C RoÄcè&·_7X$•ÊĊz{-eÓZ” 'ıL˙ŭéŠX_oxà[*u›3à6ÌïÏxh73·,‘Y‹Ğ>ä Z?è÷€ôĠëdš:³NB§vĉ/—îÎL[ùĈ÷ÑÓŻ˘w‡§àާˆS…QtċİÄÛ˙Îġöœ@€Ó‡èĴzĞ‘j‚ YȐıèAN>{t-ġÎ0Ŭĝ X//´‡zÀFúÔ>ıÀ Â5ßdÄÌ=éÀÛ#ÁġáúŬñNc—3ŬĵO^´jKëŠÁdFL”ĞÎ]ċ 6ÖԖk޵B½„L k%ê˘iKŜëë vP‘½'u­ôžk%§Cb ĵÍu™–2J;Ä@ŠëZ.+ŝÒo!ß$clĵfıW&VË5&ޤŻĜŽiĊ‹˜ ŭàİí—G_9îvÓuk΁֣.oSÌw\Xúŭż*SQüùĝbšı•F•Ò@Iĥï+)²DÒÚmèsĥÑX\]6/À  ÜÎ^½]ĦÒhċ ŸT„ĈAÛĊ ûûÓsóĂ*Ş"Vì.rÑF†•“(pÄîñÙéĊ‘h ÈX¨ŞD_WkÖÓ˜uŞ]”Rà)@ċ2úš}Ö°“ÍòĉŞjlïŝžŒñŽîX7ËïĠw‰X—PòÀm"6ñŜq$À§G]Ü˙JżôLQ²ş˜:†ŝhqXàäMr}FrV3kK@ *Ŝ’ħíWñ@`IJS }ċ<ĈÌڐĦx}ħ?GÉWŽtäm›Ô}ÉĜ·c0EùY_ôŽ/H=AĊŭ:ž6³›ġU #%Y[ÎÌ-`x xĉMŬ ŭŬŸÒîO šÉs9ÜÏÌŻšlfĴfÊ*ҏĜkŻİİ5ikĞèüeÊ}EŝîbÉèPĴĊj§DË6ĴÚrP;ġŝ°Ú°eHk—ĝ…šƒĤ­Û‡]@w|‚R?k™!D˙:ŠqE;Ŝċ%MòŜd¤ÄÒb>3 3k5üħùÛµP¨ô:C­ŞÉŠfU¸+ÜŜ÷Úcë.“Âü–Ħ·‡sğKİ£ı§Ħ zá”eÈp\ÁŠ0Éß ôú+ŜVq=ş@6j#%X›Á/)(]Ġ²€ÜŞĥ65{½˙qqQÒ+Wpŝ‰™+0DjJ^#–u•[Ú(‹ü˜*íZQ"jCvŻ×N{ú·GÀ>}XVYÁc¨àÈ/()*/,-+Û³'gÈȧĴ³ÙḨ`{gƒooÔ·(Zċ-JL24kŭfİ’2>SĦħßìxÖLĉüaZ‡8yÌS½Çû˙è½´1„§6˘&nâתġà1lħ4Ñ1Îx£a ĝï=ġ!LžÏ^ËÌÇJe–loΉTRû‡aà ġòpŸğ_ŭUĈéŭí£@ö´Ê*é)BÇ{Ĉü1Öuôġġ¤ĝxü(w°(öÔbĠĈ}JWì×l'ŸŸŻs^f>3³+Vìž ­Ġî´ÚÀOvUğeċ˘ÊòĴ!ŝ[ïû°ÓMŽğ‡]ÑO ?œ·†Ğ#ZÔîuv8‚G€´GêŒF£?„d­máž[}†ŝ˜˜à)€§Ê_O<ƒÉß1C ÔH• ĉÔWc œÍ°™ûjمmïÄú½m=4ŸaĠ%O3,àÉĦdV‹ÍbĊHHJ…@XşùSBKÏsÚKyOÜEO0ìuTêòlÑ)Äş†gúH`GîLÖ¤ Ï&êp,ŽÖZ%1PŠ]%ĜZĞÍ.o#X=]tꍆöW÷\Ú;™½[vĉT)eX…žŝ. s˜”›0ÓJ;[۝ÔZ~mE {ÂêÌ,ĉnu1êË JIÚŜXáĞ_C˙Ò|ğĠßŭ<İ&"‰!¨š6ŝ¸eÛrKʰ×QÔ7×ûú\aşû£ĥ AKwú@ßÎ%/3w'd¨Ŭáö;¨ĥ÷†‚Í@†<µ2QSg˘W39•IbŜĦÂ×EsşİÔû²s;°ôTĞŸ0Ž„şĤŭ8zòŞœ }\¸ş˙ÄîÀ²ö…Ùî}8C^xûÒÇŻĞWËÍzQċQ¨5ÚۜTZ<ğËôÚ=×èk µÙC/Ùù¸Âw-~xù_ Žhè˲ĦšĦĜÊÛ°fÍÊÍ›.9Ĵ~k#V§Ím •j ĠѐĴÔÖş¤-§ĞÁI[ĴŜ›ó\ĉ5ÀĈñFìŻĉ˙`ëבb>Ŝî˘˙ĥÀ ĵÑŭۙ¤ġÌ]ċ“ÙġTôâ‰N,+ÍÁÚj¤iŝ=ó?šĵì•끧тŬfµB=ŭ3ËĥüÙ܂f]ŝáíF =˙áa›rd?²ânĝc‹ŬZ'É$QnŜË`òjKĊXhŞMs’ï!Í Î'¸ÄF §üÚĥéEkĤ{-û–][À1ksnŭy ï)û¤ĊĴ~obóÄÉ/¤†˙éÊhTHÖc›¤Ú1?:ê"ifFt·Ï~ó²Ŭ~ĉLÔ´€ĴÎdRij• œŝ#öóí˘žŭY{Ğ6mĦög$BġûèìÂ)ú“˙w˙ŭC^Nm­Œ™?ĠB&/5,7ÔU§m):ùM˘<·gĦ2,–Ġ·B2¨•FJ/Ż?€oı{m=°Ĝ}4âÄ÷Îl<ĉ7ÓG_çÜwsQZóÖ_­8ŭŬíĞi(N`ĵsÔ5Š]YŒ >Gf5XôMĉj 7mı#äDNô`f~eQ9eJާC.”‰eJSğÄĤ!ÄĤš\fĠB0k*„›Êè&+µ8Ïú¨ĥŻÎ!á5 [íRaħàY£’lHìÑŝÚUVñ´,Ó,ÀP?{ìŽV÷${|*AİIèËĞÜ6iW^É!ŝ‚¨4r$ÖכĜĦ'Ż W*1듸#)Ŝ‡ör{ AMs΢ì3O/ôâ…šÏ9ò7§,°"(։5Fì‚yìeżöàIŽş {ÁCŸ¤3KÙéuáäB#ŬÉÑò5) ŞBmġ!:…xìoyù/|×éĊ×a´‰›xѲÉàĉĠ4Ĉ793›…36gâNjNr:î~Kâc·4şsçÄ˙Ğ5#Ŝendstream endobj 182 0 obj << /Filter /FlateDecode /Length 4275 >> stream xœÍ\Ûr#GrĜG†>ĦÑC#4lv]ş. ;b-­dï†Ç;;CÛ3~hMZ uƒ#Ñħßâßóoĝd]şĞ1É ˆY‡ĤğQ—ĴĴ̓'³ŠúeRälRáßÙêì❞Ütgżœ•ÌĉĈ色\ĉÂLÊB”y)&’³\—“ĥžüçd}VäVKUĜÉÍÎÏŝ‚ñŠè\Ĝ’Ú³ÜX´—E^2´Wıq™[#´œüŠİ†´lòÏO˜ê=ĤÂhŞ(ĈòDYÖàĦ`…{jo skŸ„fĞÉ÷—ŻÔ›[ı™\^ŸyĊ°I)s.˜šh.rUà§ĠهìĠôĵ„֚Ĵ­Ğùb}?°l{[Ǘ2kĞ_‡—OġlÛ´ñg›ê~ÙTóáCsŸU:ŒÊVu×U7ġôż.˙tö%-qrx˘|pŒċJ†uìHÀ²8OĉÈ·ĈhÛ;€‡’[nġCZdfßì ³j+Òٝĉ_Ĵ§—??wMLš\òñ¨³í5{= ú’‹°>>^ö÷ù-ĴsċO$5ÌÙòÒîœùD:vq„Ĵĵ(á‘r,ëôġK V;ş…ë%°äıb;Ĉ1ϙ1@69ÇO–@ìrgˆNöĊœAY‹EëŜŽħ$ÁsÍËtÈdJ=Lmï=‹j™ż­ÛYżż˜=(%Ñ²Ï•Í .ääœë\ ĈIK½œX‡ ›ìú́#^•³j=E7 ÀLV-ğ†ŜŒŭގÏ*ğëêyhÇyVu/UìžmşúnŜ„WĵŻêím{1ë0Ó˙f=fĈ!ĉu7k‡¸~ 4úÛĜìğaƒ‡ÀW–żöħ…ôŭ¸w¨½ {C¸C3•Kև;V@ßÚ<)Ŝœâdá"äF•‡ğëĥYĊ7Iû[^/–/°”ÀÒ á%Ùç£CÈÛxêĵ— !˜i‡gx­…뛑<Ù7§‰3!,¤3‰œÁöÊш.Pz@ +8…ÓY)Ž0£ĞĊşjïtš5ë5|x1Úßçs èċY;ĝ[ò+Ĥә½Ğŝ1ž$CÒîòci!Ö%rŜ>Ò]³İ×ŝŭcŞ;#*Ŭ„Ö[2+ìĴ}Ĉ̞€ëüş½úú(VHÒHs#H'´‘#áKO!ËĜ—ÀŸdĤŸdďäo#üyıD÷.-Ë ċç›-›î/3…q=óó5œCKX=ۋ Zás”‚F~÷hY*3lÌ˙—PœÈsbWHgzWHGü7idJ…Enë–!@í‚*S>’^áĠäĤ`LŽ6ÂqPĦr’é6CŽ+Šì‡eĠuu‡¤@ ëĴëcÙ ä²°`òġÜżX­²·“ûEl?ÍĈF‰|‰GĊÈ2—ĊHÈìòĥöÙĈ]Ş2çRŽşĵ{Û6Ûĉûğë=iJ2ì9/Ê•lŞÙ_M x;ħ d(P‚v+$ŽH6tö^úf”xt÷Ŭĥ^…nÈİĥÍ0DO¨*[ĴŻ›vU9Ó·İšğ­ÓĈfzw×àTœ5¤5.]˘¸ċ7‡k,¨àÑ/i7ı.ñIeWw[˙bŽIùİKš‹ ñ<ôÀ‹u?Ó¨óğĜD%‰†àÙ"Êf³O5ħ7?9²·ĊzħŞ–áWUFÑËlU-ÖËû¸ AÀÚ-şm׏é=FdU”–•YŭÛĥn×ÓİoWuŒçĵ ŞÛ4‹5چôO)·M>LÎÜ@ï¸I §DW–4ş£ߢu@l}óħ)äp¨üS,ĵZÖ1S…ÜV1 Ġ"¨‹ž ô°ĈîÍ£ À÷CNKê÷Óíĝƒ¤^?_ĥ!Ĝ—¤ÏûF?ĝ£UBóR+ġÌU.W-Qu&¤s|_r- 2Ĉ†TÖrĜÜCeċ=vl4ıâC‚m50ž”`?0Éûqi0ué@·mˆ( ßDÁF#"¤ĝ`ò9öŬD‹ÂL¤âıäĦfôïKËÈ °Pñ¸Ö=ÚÁ*³jıl~uĉë”}ĜBû€ŞrNù^ċ<„MPġ‘´=^G½GkçcóE·İĥ³ÛáË*F5ò'Žè†èĴm=ĵĴ›mèÈxvSŻëv1>xHTìG:qtàh½îê×ñ7èíÎ U[u**"˜,‹\*ŻŞuŭë>%P)£ƒ_ î‹˜Ôˆ—ĦQW9[üw½g8‰Z¸€o™S‹$löF#L^ê)AÚpp>5êñÄMUM[È´k£ R+Ċêjħvaڕ¨mjƒ6TŽkÑcĝğ8Ĵü~³˜US–-÷Á&§ ŬĞr½µ‹KôXHˆàäˆĴnħ(Aì‘uŽ–çmt(Ŭò[ûŠ-ÙéÍŬŞ^oğPİ=Ĵ@iMÎá,£\È Ê SȕيˆÊ(J's ĊÀm[ÍD|7t*YaäöaÌıSĠm>Sˆ„ôŞÎäüXßDE¤ĞŬc-xmLj­§£Ï’ÒW­#}6>ż!Ĉ5e˜RdÀNz`2ĞŸĊ‡‰?FŝÇ(°q;žöM w,‹*àĥèF×֛ĥî˘îAUi7ZQÎis%È­Çz×J> Ŭ܀Ÿƒl'âDiölLşA•naĈ qфĤ6 ı9œH2,Q‡(A£ Äp  ÊÀn(‘uËfû0²J`¸,Fjíİáë(Áx4Ú¤ç!ĵ]@†LÉG]7û4v.ħäTzÀIE<ùżêOMÂeó A))•šM¤ ФKùÈ]…#—@K$Z”°ghf.B†4cf×ÓĜ£iŭ—CşB¸RHjÊÉıC/U˘´ŬíŬUš˙Z OV‚1ıè‡ñàġPÏ‡%÷½šr²’ÂdŸĤd!ÙhµXVWSF+D° ĵšzħ ê†Ñá&Ž{Q^Á³f9 |Ġ|w=¨‹LÍu)]ŸŸi°JäĊíŞ—Pƒ„ŜÔß=Sċ|Iı_èÈ5Wo·ÛÍw³f^O•? ÛüĤin–ŝ½°,ËÁ|/ŞÍ˘ğçġĵ`9 (l$ù4İ6.Ü/WŠĠvófÖ]´ġµ÷FKëġĴ˜m6qF"˘ĜÒÜ 4_0 ċ:Q Îc9˜¤£÷ÛíjùêÍî½{(€r€²‰ ž&°Œ`‘i‘Â˘ÀÎ\ЇbÒ!h„zÖ&zÖ;Ĝĝŭ¸Ù1w÷uŸıCÀBôq}·¤RqìTöËrħßĠÀköÛ[˙V!î™E›ĤŽĜİ^çì/èš]“ĝÉïqéü?› nµÚ,H†ĵl6°KˆBżŬ £í^mvCĈˆ€ĵB£ŭ‘‚Ëf·U¤×*[ôĵn,eI@Ğ{¸w;šd¸ÄĜ _ëŝqDȓËRô1ʇy§|i6ğŞ;j D{ñ”—"‡-ïàib?wğAÔ ˜Üvoì­ġ.‡ŻùĝvhP_ħŭETlßÍxĵCc7í]+qÜŜµz7%‡<6qÓċgċŒŽVÓYâÀĦ0`!c½œR—5W.ÏâϖìRĉÊ(wÂĠUŝ1WŻ!ÛñĊc4ĉ*dĦJ£* Î,Ym:„Bw03ĦÊĴ;ò£JĞnĊ|sœŝŒ$ʜݘ˜†lG›lĉg“,s!ïáô=[¸î?d˙´D^|wCŻıqŽY§<ı£yNĦd$ÁPñÀOIô‡šĦ;^aŝ„S9̕ _ƒĞcèGċ ž$ÙHîß?rŞA Êħ¸ÍĤn+w ÌÉĞ­NŞB‡ó ˆ›µH¤—÷Ħ•qĞš¤!³1ÙO‹z9 L]Ŭ‡ÉâF´Šù…ûÖéxßNIS ¨’ĥġĥ]ԟ|zç‰F{ ŒeĠÌ_Ċš i:&ŸÙì;Ñ 4<™Ó›~žòör2dfJQŸĤ}LŽ2]PĦ´Ç‡LC‡˘œ‹ħ:âĈEgċ2$@²ş^G=>Ĥ³! ĈlÚúÓ˘ı‹€+wŝîk?L8}Ò.cö7 ÏÇEbìçp™‘÷wµ;Љwi“gĠrYÏ÷–ϸDzNû-³shË$Ù4‹:û6IÓE.ևÎŜÈé2Ġş]5püâDMtS%ĞËĝ1•‹,GşŠĠŽ.ž›İq‰#Ù)ëÂÀĵŝjŬ×F~ŬÄp/ŻwÀäÊ|~¸ …ì•{])‹· n’˘‹Jƒ N?ùä¸Ä˜‚ëKCЇïœÏ{RŻé¸4$Ï~G€“ï‹ĜÇcŝPŭŬ€•˜Çlˆħ'Äâì^ONƒ ][ìwĈúc˘áoŭÛĥ­f1D[ïÄÉEŜŝ4–e_A ÑĦE6ŻĥĠŜsE rYrE–X<¸ÉásĊ=vÎÁ´sèş?Vd xöI§ŠLñŜMñœK8à>éiÁ³žÌ£ž{k‘•[6ñç÷ÔOrƒ1ܖ§{D Ş\WĞúô7Ò^äúÉÌÙ××MsÌĈxG)ó4z‹2Ò[½Ş˓+Žâ‚Á”ğŠûŭUĠR!äO3Z|R8 ìa¤ÀĊ|¸7—jú<ûjÇ*>ZÓÓÂóĦñ4ÈLùtÔ;' ż4Ħü²ımÖ½wŠ Ĥ]Ĵi2÷rÑm_ÂĞ1F›ġ‚Ĝ.!§3­áŠáXôdÍߒJ˙ínuU·'B‹7]à=ıâÓ­Ŭ„áöİàB™\kÎ}ŭ­³â4Ïó£à":q2ö‰àB¨Ü€4èNO ·Tċ‘BŽġ÷/~ó1Š£2“Ž9ú ¸H“cŬ/ĉRɀO—’ÀȂ˙}\j˜{pİWŻ^½ˆK%cŸĜR ~Y—Jġ÷ĉÏß˙ñ_s*Ž´46ü gÒĊêô>AüMıZ(ßû†´\ŝ<ĥÏ4†My‹üñĦè 2üùÍ7GèÂ*şġÒáĞ÷+•ù™B’í/[H"âzr‘¸Á|êú|^/ŭ—6evWo·ġòuĴĝħŠ”ŝÔħu…h: \˙o³7 “Íô²÷ÛĉŻ~4Yfş(&CH °.ü‹›5M6…Òhd‹§Hċ–JäÂôç?ĠWíğÛGîÈ#Ì­3ŭڍИ&GŭXeIXkÙëĞĜImlĴ!è~o.ŜqN˙7‡żœŭ*<·endstream endobj 183 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3826 >> stream xœWy\Wĥfİ.…¨tÙ QĞÜMPc4šEeq7¸0Šˆ+K BCÍ/²ŜAi@–Ù[PYTTÔ1F}”qMğLLÜMdĈĝKĉzıĵß{Ġ4í$“ß4üsğŞï9÷ûósE„…!‰F}éâ˘R,œí*ó —{†êż—Ž£ĝö˙!-‘µ9²ĥ86~ôF ¸ĜĵyiĦ˙ĵï¤p^²,tı2,|UD¤g”W´·KŒl÷z_ż= ğ~°sîÇó>!ˆÉÄ:b=1•Ĝ@L#\‰éÄ_ˆÄFbáFĜ› w‰ĜB8ÄRâb+ħŒXNĴ >"VЈĠÄ<âK…X@Ĵ%FMŒ&¤ÄXÂ^ț° b‰>‘ƒ¨ÓlĦÙs s•ùo –ïZfXŝF:“ bqµ™:?L9ìĈèáßYmħ:cŭžµêżw~ħnDßÈܑwF-ġ“Í›ù6풝’ÚšFüŸí@ î9ÇψĠóAĉ|v“´)ía°_žÒŽ‚‘Ċ lŬWnğ'ùûkÑAöŸäA-jj FAlĊsK˜KVÌħ ~ë!‹ÀUŠi² ċ,(s;)™‘’Ż B7·–“ü¤ ҍÛĝR!x0Šeĵ œ|½ċħŽ[½““úş6³Ä›q$cġêP)ۆğ½Œ+!zi]2ħĴ8tÍĞğÇΜ, _Ï`ż˜ÎŒSoÖ£ìûßd ¤s‰.è RgÎ+@.…³ĈĤfOÇ#°ÍĞ™@ùêĜ0KöKç¸,uvvıùüñĠĞ7o^ŭrcĜ#™38I›şî.Ž’‡EÒ£ ”ž–ĊìĊäô½ħˆús `LĝË–ŝù+tn{ħCndnl˘ZPµ†… âTï‘‘êÉìjÜUä…(l‹ÍñĵŻ3<ŜòÙ?¤ŽC9˜ÉÁĊür„ĥü^ŭŜ™ûlħÍ+Fá˽ÇQÄ[¸ġ•˙[Ü<ȁ­1ˆó×?Í.3gĊšeŽğža‹éÑ_]:}ùĈó™Aòx%'z ƒ"ğD8/…çL<žÁ>dLÈ@MŸ2Ê•ħàC‚ŬS…yÂŜX슭ħó!Ż|A‚Ċ<“oŸí 'jÖA…°};Ŝ m DñÌŝ$İAĠ2 W0Š:Ż*7%ëéöxñê} ˙Öuvß>{íÇ H>#KôZü”§ëܜ–8ùĉѳ[=şo;\†Î‚ú#ş÷c)Ñ5ë6 xĈóyÒ§bCep˙Š“ġ_0ü$²I}à(ûvAÜŞœ_Œß“yRZŬĥèMnĦĦŒVL_ïß‹ÈĝÀêp÷ œÒM“` ˘{÷z™ŸúÔRDĠT–7£ysàĊI~Ö½ÉtDŽ#˙Ĉ§ò)ÒÁÄmŒ‰kû”&şù S=%ìV&é0†¤)=0 mÑŻçbšÒ£z€X<ĵ ŬÁ DÜ Ì8Ém ıħtï )ŞN=&kÖúä/+ZQ¸VŽQĠMݟċDИœ€T8P6WúĞ&,=1-“ñ*÷Fa‚‡/ûà×Ĝ'ñìù”ğ‰Èƒò•Îsñü:‚I/Í( B” …F³sĊôŜ8¤hR—çjĠÌY˙ż˘ Aú‹ŭĜlt‡‹ŒŒ”À,Ŭ~²à=`ŒôHJ IJÍfhŜ+Ë7X6Î]¨b!ĉ‰KêX(ŽĊó (54šù|ĦAzúG‘˜íı! ġŒğzk(ĜZ=ù‚ŝnêڄPr+ü–ìç-ûÛMÒ'pŠ“-F ˙ŝòĞAߟk)ÑÔ0´CP^5*wÇÔŭ  ‘Bmn2Ô×^ù‹‘ZÜL•Ñ/}Ê)Ĉ4ŠÊ°QiOr˘>̜Ïá'Kġçg0e̊œ‚/OË–UFi χLıN¨üCħĴU"ğJTŠ[À~°­#ġp¤”O7ç ġAôéâáĈMN‘Ûq‹e6™YםÜw>½t7’ĦŒ˜8÷ùYəħT6ıZ-O‘FІ“ĴTħ—ŭ2MV5²ë@ûŠJÎĠu*§Lǎ[:ï5çŭŠ)ˆˆGa)LôNï$_D-\öͳ˙şĦ,+;ÍÍVe£”œ Ê˜Di5‡êîNAÛñòġ˜ù[żš£arĞ2cYOĉJ8Ñġ+`vċĠĦ\ú$„á•âÚşl #Q(J”ıâeĥš&IkL/Ml^;lSêS‹½µÁÀ|Şeû”âÁéîAž,ï£ç…ĉ&İoây#*@š<µ&żĝ)hUjŞÏë_ĝ–XÏèà° °éWĈNë‡ Äp N–DPħ]s(ŠfKRžĥ›Ŭ&j!Ġ$Ĉ×ɸx”Šìv× rŝ×´ĦöçE½%G CRœÑWùì?U{rû1Ïĵ`Ħ˜ż7Ó,½xŝ>˜kŻojR˘:˜Ċó`Ħ”nrŬŝ…ʵܓ§wûÒY÷C­ è°ĉDçîCñ=#Ñ1ÉÙáÉLää䄜şbïSEjŞQ XŻx‰x¤ŭ aú´z=Ĉ„Î'5ì"˜&ĊEdɍKg8ô U-Ëßb:Aƒ•àâk×ñ§˙µĊ.^è9›ñ˜iì9½¸ÛŜdB¨2š=tƒ•‰%Z$Żvİۙ܀ÚĝrDU֖6érâ µż S…`1ü"éOÏñ0GüÁ€c˜Ĉ ?œ`$ V·_`—¨¤nž+g1Ó ġ Ù{|™ÇààĠ {şz`cD{UĦ[s\u‡ŻxíÀñéáz÷à]İ!~LJĴÊQöŽŽó ŭ*CXz2‘šĴx)Šâ(úr’§2ÈŬX´G|ŭäñ’î‰û˜@•cV>Šžâ°uĦ˘Üŭ9ylYrSüqDġŜıóĝhÂáD [Q(tN² ô™?ƒ‡n;żŝ›ÛĴŝkTŝÉuç?ğìôkċ&âs!ŝeŜs QL1dŻán<Ìd}Êàïô<‰Żj•ĠJe``µRĞ­Ö]‡ žƒm‚êoÂћĉ||!EíħŝGe­òŭŸT8—ÚÊ ½Ñ)ŞëÔÉë >8WžÇäW!ġàEˆîéböú vXĵĞaħP‹˘E‹çş6ù¤°mž iwbŽ'Û^J(ÊĴ/‹- FrÊm×&Ol^4&[“]á;0âaZĴŸŠÊr[ÔÌ)9—|Zè(o=}j cˆÀjÁ*Ġ„‘x¸dç€5XX6™L-³,ԓxžd ½ĥÖ‘:ѧÜa‚Û,Dµ6yïXâi–Cž( è<“ÉÈÁ6ƒF…çšìjÓ§Ä6&ëûĤŜZÁ ŜŞá“Ìùü·ú~ÇL5´ŭ¤e—âĉ„M ÒwÙe“éíşĦÍV[3àS ÛÖ˘B÷Ğ} MÌBêVÛ}[U•ċì ġ˙céÓ|ıı0(B`ñ‘żWܞ&ê˜˘8HaüÓäÁŭ·ú´07.ÀT5jdq·8@9 Ü'K6aÁYLŸ~Ĝqòx:̝Á1âäAWğùÖKòÊ`Ş0N0Î]“¨÷óVĝy7*ŽŻo<:8LĜŬñ³¤­2”Èàëd’’ù´ "“…­¨ĊHS<'9×ğUJĦ’îò!ÒşŝĤêĵ}ċÁ•Ĥ†‹ŬíAOÍ͸‡mz"ŝÙâOXzÔ#)% ŭ²²´İ(ŭ`ÊĥĴı­ŝ<˘ÜŜÀÑuŭZwûâ Iié(ÖÎż•0Ì´Ż U–ö ¸r’ÎŜ•½[{OèZuۅö‘ìÑ^?^ ›¤`>÷&çımKÛËh`Ĉ߯Ŭzċé…)éié‰(‘˘ÛBË´ZMe9Ÿ 3ñx}ûö ‹˜ÉjŜY ‹KrU$7\gĊ ·Ĝ¨°ÖR§>9yŞŠÜÖÖñ˙8endstream endobj 184 0 obj << /Filter /FlateDecode /Length 4123 >> stream xœŬ\ێĥriô!Œm€•‹X+žÉ˘Š¤h‚dw€^LöBckĈN<’×Öd;AŸŻ××è˙“’HʲgĈ‡(öb%šÇ˙ûĝŸH͇q–’q†˙š˙g÷£7oßmG2%Ġjüq”ż&Tš‘ħb\¤BŽïG\i–š`5z•d–frĴ(§İĉPİ+aP"¨­•ïFFÄ;nŝ›Ŭż¸‚ĦáUĤ2ËôĝêväĤDĈDè”(ŬŞ”*1ş]'÷E½¨ĉ“)§DĒm1Ğ—U9™MHjt2/ĥ³Írm ß_ŭuôġĠèGœt–êp†]I0nħ”™T™`ħMA\‰°fTr‘DL*cĦD(ÉR4ÖÚ' ÉÇ*ċJ‰Cò”0ĝ‰43̉c1ÉRʍf&ÉŭÖ>jšÉNYʌ0FÚÎ6àHPRŞpè䘲ÉĠÏM÷‡Àì’óÔŻĉÛrœċuħLİxi²ĵíóĉ ï‹í6ż+°@@_äÛĉE‡ġN¨´xR”m–|RĴĉé9:°<]<,7Ċĵİ*”U A…mQïËSĤOµˆXŠ”…F°mwħM)%cİA6†:Ùl‡ĥ²ñdYڄŜĜşż]^—“·\‘gàJ$bÖ´|fH²ÌWËß&02’xÁ$kğàQz0) ŠLêÊŝ ëĥÎ'ĞöwÚgë6żß,ËJİŽ–<úfUYĥîˆm$LӁ²lŬu3UŠ(“ĥ°R0cĊXNmQ4]g<ÒvvĈ8_c HeÔĝj’Xç]Ğ*ŸûmÑíŠĜ>n&P ‰ú—B·4ÓÉG_3˜ÖĴ†…ìëŭ=í µdh1ÛvÇ[L Î-f1¨>7—bıŸeı:Ë5~ı*,ë,4<ñ&R Ëħ³m1aˆ¤!|› ÁBxÌW~ìéĵ꠆µ[гä³y8jd™‹²ċê;Ŝkİ=1ú„Šè# Ì˜>ĥ:Š>4%,µÑj³£Pw,ŞÏĊ4£Ÿ…ċŒ>g…]-ËXZ P,÷7Ċf÷bUÜz²X–Ŝœ0ğH|;äbÄUŒ/‡¸‰ÑßĤŬ1–Ÿ è“C—¸ñ >ö­˙C.ĝ[.˜3p!‹ıpÓY„ÇôÁğŽ?˘A@Ħ§‡ĠÜWĴó_lw ‚’ }UÎ:5F 9AoĊğ:Ŝôù†éP mADA–İTD>‡JOQ1ŒÎwTÌÇwfiµ>;­Àsd$œ…ÉNäŭ•Ħıɘ€…µ6"_ûXğQ)À¨Ĥ4ñLĥ7›bĦaËNn9Ühż…é€ġĴñÀv`S(Ó*„żiw|–FR’R‡\vŻÎŒıÚaN΀y´ˆŽB“àfàh$­íhv÷KŜ…fÉ`‘s´;Á·½˘³Ĉ†Ŝ>]è|..µ‰ŭ„ ô €Ĉ‹´qƒHŠzĥı.Ùpİ…HzŽÁ‰àv°ġáŽÀ…ıcnö>†û(­Ì%(}À6ƒeóƒ‘t€í×ôƒ)š Ĉ(÷8˜ŒÑZ­|qy)Ĥĝċ9ĤœšĦEĤD" ĥ~n}C !huT]”[ĤÊ~ŬĦħ%VÙÂ@‘!5šfÇsCXh{Îp÷Ǎ`yާ&uħÈ:n Ç‡š~âIçxê0ёŻŠaS$êÏÈ*O˜>Ï"ZJLIè ´íŽ÷şYc:ƒLÄĵ˙x~O ÚA~jž!–3o“LR4˜g;Ŝ\xXúp†>Ԓ`½ĞßD+PgĦ§•Xš•mV‡°“¨‚ÍíFvžšZExƒĊDħŜÛFÙámêki’‡Yŭ°éĥĝˏk:@°;@:İhš í%,T²m ˜>áċíĉûÙĈYHŻíwòöö~yާ&$‘ĦÈf‹Üe9ĤÎgµK#8‚ÀŜ[y}’ÎîPï‘%˘†Èxš…ž@Ûìĝô‘ 1hvA˙Ö>óxïlô~ú¨ôuï.·ŸħƒûÔ\"íIáüpwĠ~Jĥù}û(V pv@â˜vÀIڎ yb·Ĵ Úö·Ĵ+]ô7§}´` ˜vîqÖ֕şCUĤ3­‚vnš‘ıJÒÍ2ùiÒÁQ¸kŸĉĞ9Ôbáñ´kwÔñ´+h€# @NÍ35Ŝ9óŽ}ğ€QóÓtT>5ŠT—>ŽŒw™ŽÏHĤ K)Oœç‚‘ Ûë°+S…ƒ··ŝqµÜ&{€cbĉIÁ ,rG›fǰ€‚.A’8Q„qp,th†mŬz.VCÍÎÌżǝ3d=#ÙÄáíÂ&=As‡çöîĦ;Ê%Ëu]µ‡+(„'\cŻa×ħq½X1Ġ~żİcI\•TŠîħıfÇùԀĦ'ƒˆZídN~ĴŬ:ïì­'ˆÙAâ]À^ùE;â!; òijwVŭô°éġ„ktêBċ8Ĝ.ë:BĊ<äqN2š‚Ô|ŜbĵÂ$)Ԍ„•~ ,ZFkÎ9'ÚêqÎnœö†Ĵ:Qq€ì<¸<ıŻ‚ğû) ÉĉĥñÖ·µžzİŭë/¨Ç >•ÉĈeĊ$…jœÁïšŭ ìè/‰ Ŝµn}Ûw܎Ĵ·£q’Ĵòí֋üHHŽw9H/Ġ è@1Qè.‰ñĤ˙}\½Á›BÀ§ên›nİ%™FPÀ%ÉRĜë "JĥcèÏÇ;âĜë7Ow˙Îv?Œ.!{‰F[ÜE$Nü°ö´ñ÷ÀÂLdÉ5y?™ ´ÓF$ŻnĞêĠpˆOüt ì_½t—™ ¤³·A_dt´9Äú},°yh4âĞġ˘*‹W§p|%Î^ßżß%>U ‚˘I•Ċöƒ˘PQ„Ä—JĜé ĉè˙4)ÈĜ¨óúï-Éñ“ñêo£Ğ?ĝ Çìĥ‡5ÙîQ6γÀÏ> n{]?€³²ÌWéĊf[•éˆß÷öÚÓëĤĠÉÇ%ĝUMà"´&ı]şhϽÓîb8Lċu4ëkΙ¨cĉì†żÔœ{ü˘ÒêğNnojŻĈĜß Ï/ ñ„ÔżÚĦƒüêkŒcĵ³ğ[È֘‰,3ÚîîÌ>ĜŜà  ĊÙ¨§ ›NĥËò}e.dkĠqßù—Ò]˘óQĊ‹uB7†iŻnÚ­9?Z›…cà>6<ĦZÙnÀŽ7=I<1ĞIÀêŽ/@ÁŻm¸²SBġ°Ù§M|³g$‚ĦñHeux ħ£Q·- I*e4Ìu²}XŻĞ ӆc\ğÎ7ġÒföìğHîózĥ°ğžâûÛĉ˘lzw›âg§ĝq†²×iH‡çÌ@žÉ—H†Q&‰glt,†ùj[5b œlĥfYW~ŝ3÷ɓħĈÇĜFĴeۙjPÍK£jjż1ĉÂXċĵí•Ñír“jóŸÄgÊa@ĦôxêìşpÑnµ.6y—¤À{3w ÄĜŻj`İí/Ê'ÎĴÙD-ìŞħV w5]Ë1qĞßu_ĥŜE<Ğ‰ÁMħ$żY˙šĵ<[܆PڅPD€Kœı ıÏĵœ5ÔÉ$ì vwÌ‹b(›­0ÉĴÚlŠíş*çEsËċB’›˘ŝX|Ġp<>iż*۟”îĠ %?Ïëĵ}.Ú48Šwıġ³ÂO£–ĊŻíUc`˘ƒĴcvĥhR%ƒ{J ĜÁ1u5pÖCʐ@VWiX€+y;RÚԐaŜfÊıN9ÄóSŠşŜ8Ù, ( °{ÉwĠ|yûˆĞ”Sszİcĵ/Ġ˘Ëh*P0˜w; 5Î!%)À›2,jòéŸĤË Ç‘Hxœ}òj›hü–ÍDMݟż£†ˆ#hä·ŭĥáµc/’`?cĵ_ğğŽŽO·MĉqŻŜex=–GӋón{fȔ‚pŒġĤxós1kŻ4%œ²µóíUȖمùµıÜĤmìí‡ĵ-ĉš2…ù>£iñÖï3ğĴ²jµ­LİuB€Á\‡v˘i1ĞŠÍĴ“eŬ%n*káÚWúÜ]U Ž+p@(ÔĜ“ó²Ŝ™çƒr½?ÂĜß ç€ùŠÎà€eĉ9FÛòsÊ2C0W½‚p£ Ĝ-i­Nt ~uş½X$°3C(h _)5ĉK`Ô`'î‘öËô`ô¤,>žâö3‚Yò¨ÇŸ’^ÄúY³˜áĦ!8L‰”ħ(K{u¤‚?ĴġÙ2Ax§Lĵh—u>^TkÌD}^HnàÔqړ„L]ú!”ÚI1&fs@âá’N 1èb SÄ5{£tM1™=í²-ó çµHİÔülıï żë&ùŬċbupĈŒ&ŜN%Î,ż.§èôïfŠ˙×ò³,ñĠr~RrĥI4]^cV£Û*2'í{')áÏ<9Ĉ?–Dd$ŠvyJñğCżíP7>€ƒŝqÖŝ3„ĉù‡á;sÌe0,êz½ŭ›73w‘†k“—éf:™‚ËżŜTè]ĠĉîÍ:ŸÙïCÁ­N~Ĉ|ŝö‡MUW_<Ü>/­ĥgNRàçċєžÏ‹Ġğ˙îCQ×ĊŞŭ¨<ĵżL^ ¸9mÇòßUwRŽ+ĦìŝpˆIŜĠĠ/ĥ7EeRĴŭ|ßĵ˙ Ö£˙o”<­endstream endobj 185 0 obj << /Filter /FlateDecode /Length 4883 >> stream xœí]Ûn#Irì7ÂA´÷ĦèmĤó~iĜ€w3k^`§[ĥÔó@‰%‰ğİ!İéicżeÏżáˆĴĵUħX¤¨ÖôĜúATeFdĉKfFV˙0Ĥ„)ŝ ?ŻïG˙ĝŜ°ñív¤ £Üšñ§˙~ĸU„éħRÇ÷#i´&4·,G-K8.9ħŜJ-Z÷oÑñíè‡ótÇáÇġŭĝ·@›Éħ&šR;¸5<ħ1Š +†_܏.Ğżİ—óɔK(³ĠîóC=ùŝâßFß\Œ1m1->bKÁÇÓx0’H˜f‹‡÷Ȁ!Î醁†ÊЏĠj½ żòjS?Ô³]=˙8™La.ÚäŽvŻcñršÈZÀ4‹ù¤–b>IG\8b\İ£Ò~‹ )ßjZZšdŒ*JMrFQ’O— °D+ CJBh$8_?^M8EşjÙ§ÂÌ@Rêq4!Ò(ĊzuĜâ`B —Î W­ó£´œêê*·.óc‘ċΔı"Z D/ĉ@âÇ —ÄĊŞúz·ŜLš9À™Ĝežé{“†ïqĠ´.skOĉJˆ‚Ğ6ڒè3ŝ²è(ĵ%t‰ïé,seaHIרŸêo׳ŬäâOPdš˜<™è+(@‘D߅IËıÀèD”i(£…ÀaJàPháê×∢ †DIëó¸Xí߃NA5é8Ġaèd_Ħs:YôLYô Ú+`ÑôsçÀB,DmA?–…ĵᧉ€xCa˘ġ²q Z˜fàBJ^r!IômÌ´3x ² 2--¸+3mœ#öœ°Ob`‰ú´Ħ:à\2ÍÔr”ĉäd˘—Ġ"£a•w]mĝÖÛ>äT›Au9˘$“êÚFMğ,2+Ğ —.ƒMëmˆŭ ‡”òt<%}䖤 DŬJÓíĴ8¤ ÄD“Àl@%Sí€çXÉd_ħòdĴ$…tÑÓ‹‚6żĥjGŸM…ż( Ĥ]£µm OîPtÊ ´4ÌÀܔĵâĉ‰¸I i#I·c–t†˜2#Ž--t ×òCÒI˘Ÿħ`A%‹KË}7(Ĉ_O xK™äϋ ”³ëò2Ĥ\$u^gÚw&³>l”­E·]~Ħ İC|BŞŒeG!E h9íEşĜ$cE`V îB\;@•ŠÈzQé,)|hÓ­_£‚#{5úÂĈwTĦÂħŻŻP­O÷•_ +KĥΨ­Ü2ĊN ċgĴ†n Š´î3˙LµpǨñ™ìĞ8Ŭìħm‰•ÒŭĴQï¸áċÈŭġähN·ğïÒ#ĵ“Ħ1‡ëÔÒôBżól@™´è3½LµcŒÏ0½LöĠô^MïĞš^‚w×[ĤGĦÍÙÒôBżó7ûĜ€u=›}`„ûËİÌ@Ç.Ÿa…%ŻVĝj…_Ñ ĵğvYZ!9ˆàR÷œ ʉĉĴgG£Ï êÙ(Ÿe%ùWû{µżŻgۅEĥw†àA¸)v†bKËD­£D•ËCx‹âϳOٕ„ÊfŸàj½^îe¨ÍlŞGiÛfAô²<ÜZw­Ğ˘0Ŝëü8ˏ˓móĴ­ĈâœkŬ‹îEn-pU myó§o5f…ĝJ I€²fT–˙Ė Œ•Ä”‹x tt΢GR"À(€Dêpü°Ŭm&SóħÚU‹ĠmßÏ$ÀçàĵJ ÈÜuÑSXzSE·~ïö-cš0û kOĜÑÊÊËàÌÊKÒIZž–4ŭÌy ÓFŒ„êğĤpŒS[}ŜĠÛ€eê-È S?°Lŝ^/ݤş6àLÛÓi‹Ñ¤ôtĦBeeA‰ÒÛ¸s J„A¨)q1ĴW“ħNW÷=(Ìä.“?‚Â’ŝëŬ£hRHF[VHÂà•²È$ĥ´°% Ş,2·Äyi™şTÁMCZv_o·³Ûz?3Ëd3ʎ’=‚İL÷²úÁ!Ócì˜¤1İÀg}ġ'z¨mÖĴZߤèëċlğíE‹DƒuÇ1ŝ‹‹mnŬöú§pĤÎP‹)¸Eï`ğ!d1ĴK%7ŭ‹!œLX˙‡–CC÷ n$§Ì‰’Óĝn[r [ÚÎ6·]ÉŬüĠ$Èv$örOih'÷ -ƒö@aVàÏ(/İ •CÉ*b0ĵĉĊÄbÌWRŻ& ™Áşñ)µƒfA íä€eçŞß­7›zû°^ÍëĠu|G›êŞŜ}ŞÁmO4w üŸ­ ùñ·Ù*ŝÉùşŭfŬykSï6‹zâ^Şëy3şs ò†]@•ŸIÎŞŬ]~ñˆeîĝĴŸv›™w[Ĝ€Û–[Tï…D%u^ġBI’Ϛ93D‹çĵ–ÓÏ=e'dġç-Rƒ7 [ZÍv‹“ÈDċôjħ‹saX)P߂ uBU52SmßNĤZiż³]Ǘ­ŸG`˘; œ"‡Jİ1Œ#µĊŞ$°Ħ÷ÜĴwëß>Ŝ(ò›í,ĵaµgèÀÚ|Îğ~Ĝ-ü• HœĥĠĊ xyıwàüqÂʚjĥX„PÎÓEt’‡rď{ynR5HOSFÍoÓË<^K÷Ŭ"ġĞˇߢ4ےkpû·Ô ÌÂÚ½-““4fáQŽ ,:á`Î.ĊùsˆÛzt} ^ÔÈ.ERˆíÀVK1Şt'‡Ç†§€ŸÑÁìŝ2Ş(ä4÷ġğh"[Ú!àÀŜĊż.ŝ!wYÌSUÉĤÔĥü{}9Dz…û1˙%×ëû71çáÀİÒ0UŸÓ7‘fÊÎÙ&ä\LœĈ`* c]Ö=ĞÚ/ӈÂp‚XÍ@˘AêpUNžHû†CiAħĊp—)9ñùÔÑg­ÜŻ–uL}ÍĦw!lB0„×fğÎ{Sç7gËċúSEÏ½}á‡×íá7‹Ûğ8Šj{ H‹óô*Ĥ1ġjŜ¤Ež[Ċë·Ĝµ5ìnĥı­‹qóŭ[ük³îêáĉï`‰PÄq†Ç¨`òBk@—?½ħ ]nñË"ÈM(I)Ğ-\‡­l ˜OÛ$àš0°ŭYĜˆÄ<sÈö$Lh5[ĤµcûZ47’Ê-ó“ZÎeˆ` ü·B7y´Ġ'̂µM7ZÇIt/@ğ· GN\Ácl(XLÒW°"a”~hiż%(.NË·š–RG’ÊZ:RÀÎÚQ‰J‚t×ù‚—À xY½í۞ ‚óŠĞ¨›^"ëîÑUħƒI·”„•!u´‚Ji½ô–Ħ‰‹ç“¤ĥéȧĦûih×c‹7ß1ôeŻß!>âaÁÀLUڇúÒž-‹N I&ž1“lòZ"liĞĦ´UĈyĜROĈ ŝYW§˘­âîĞR'Üʇ Ó ùà‘ó|2r”´܏ġċ ì ³iïè1SÙ£wH›ÖS§ŬàNċBv¸è"ĴËEÓ$0„ù"/$°}m‘[ùQ.†=ó“,XçÔï'ڒ™ÓÔ1 …`Áċä~l(H˙Ô{Ž4Ċ!‘ñıÌ4âï2Ó´Snş Ĉ™AëhsQ@&Ó+‚ÓO½GĦC"ż0({9ô €1j1{Ì<îùÍâ¨é“Ğ-b˙™6Eú}_ûé˙ŻGú>Ssú }İş„ÎAVçpğ•$lç %A;%$΁cBZʄ„2*ċb† çÇĈ„„J˘qlħ6Xw³.Xpâ-ÛôıÌ% .™{µà˙Ü2šd+3É4(á°7šFh)Lƒ;üd”.LƒBƒ|NŽ4ùĤñı7a.bŜĥe%OÏĠÛ(ĜvÉujiäò·-&ZĤšeUï™ÂŠĤÚÖÏSûU)O)#+Í(‰;j°ˆ%)ĥ”@²T†›:Yè…Îş(d­6|·İîĠVaÔ÷ŠKĵeUžË\R\ÉÜ/Ëǘ˙{Ò^Öıž^.L;D‚Ċ$,%ÊPJc)LE”ZJ‹QxÜRlir?ìY_wˆc€# ³Aì;Ù\z´WğWƒxxÁüeᐋ‹ÒÛ"K*ö:Œ9‰-µœ-·dÌÜN­3ÄI<¸Ó{‹[üÎWöĝS _Œ£Êpğ °û‰Âş!â`Ĥ&Q+YlR”ô³‡‡Íú/ĝó [-fğ:ĵËe: †•ĞħâaB”xG(½3;PĝìoK”éR³$Xtçì[óòĦÏs`sŸÔ[ 8eNĝ/p4 tg~!%/Şs/ĥ Ĥ£3üĤí!‡£ Ĵñò‹¸Qdïd(Ûgl(Ì39Hċ4àħtĦċ酈^­^A8Xˆ3]ĤYËJb=–0ESŭ&ˆamà§tŒĠDċ *öîœhRj‰ĤñoŝÈ/ô1‘>‡Œşf´T9¨ËYMŭǁ-S) ç4 ”ˆÀ²˘´új¤™”B0Lŭ#VT˙êθáIœa ıŬŬzNúÎÂ)†° >͈5r h"R5#ş¸Ğ :\ġ`Ċe¤Ü” ˘ ‹ħ­N—EdK4´y¸žíĵ¨}SµŽ ygÍÜ(sŝĵ7üAóàÍLs‚şJûCçE–™j[ï|Ežó'ÔßN°VüÒsé[ÏħEz²Xjɵ˙ì_tĈ×]FžŒ‡È"Ïáz½Âñ Œä ‚D#Ğ7ĴÒ|ĥé/fŬÄs…¤ÂA}3´?½·U:ɇW–ġlğk^ÉçëEĠ·ġ³:x˘?ÛlfŸ'°ÔöNc¨Żé¨F0aˆĠz5-„Éë,œP:°w@_­ÒÉġI €,X´í2ó Ĝ=1V]ùŠáX5°X-v‹ÙrñßuÀDP~îvÌ,~ǝxĴĥL´ş\j™uÖew‡‚:Ÿ6àžħ|À˙áy³~\ÍC?]Ö÷ösÎ!âp)[œ˙ëlûíĠ1È>·~³½Ġk<Ä$`UHu[LžÒPÄ05Q@Ú>aE)Ù&Ĉ6ÏîèÌ%䝉ß×·ËúŬğĴrzĵy÷î}}³ E´ûìwÀɌ§İD ’‹ß5or[ĵ ŻÉâŝÔŻˆD; ä×}Ŝ—AˆV6îúlôŒ1Áü‡êRy°Ħ¨A=Ü£S0ĈPUX˜*Ĉ²$ÄIE¨DÎŻc óġwSÛĊ:›_²2°İA,¨WĞúÓs 1Ğq•#~Ĵvğġüùc½ÙWoŸYĉxÀÔ9èÁ²ĥ(ħ.ÊQV˙ü2…Ż”­Ic9Ŝ›gkÜÁĤڂôe•S.¨÷iY‚[F+z‘Up5V3˙oîÔ Ö¨BòKñ6MI)D˜s‘ħ]Œĝħ*˜˙‚…ÏĦÀĥ$ġ‘÷0iħö˘Í_]-ôÄÜ莤,Êjvè8I§\&'ÉĴ Ĵ·PżUU{xĝg¸GüfŠTí˘ÚKö}½x˙ßLŠ5 ÓVûĊóœıñ˘™Ĉ51ê›ùĵ^6WŸ ¤ŽġnW/ßĈ% ƒœOúâ /ŜĥĝŸġ"xµŞBĊgs—nŭçf4İŞzùy2•–ËDĉKE>=ĞŝŻiìp…ɘà˜ü%_Ħ*ĝ–§ ›nî}[_mg›fħ#€­Ï‘ĥİÌÛfhXÑ^(üĤN,gzñ>SñŠĊ‹Ûñ>SċÎ Òsü˙vŭ/‹$ˆendstream endobj 186 0 obj << /Filter /FlateDecode /Length 2512 >> stream xœĊZ[oĈ~7ò#7Tç~1 Ŭ`7Hİ×Eĵy eÊRVµ’œĊŭżŭŭ†qH‹².X‹ÒÌ9gΜË÷ÍSD ‹¨˙WŝL/nLô¸ĵĝtĦ´$FE†)I¨‹Š(1Ç .Z¤Ñż˘Ù%ÎHß_žp1ĵĝäK])à„+é'0˘1^R˘ĈBı¨HâĴ02ú U2‹~ĜAĠ{¨˘0êÓË•ÓèÍ-Œ*rÄimt;ĵ(VÏ"e‰a&qeĝizOÓċ2yL{·ż_ĵ½ġR‰eTI§ MĊ‡hÑ­ˆÙMŠœ"Bj×Pôu ‚qg­€ î¨_<wfMŒbm(%ËZĠŜ>bLnš?āí*Un²s>2(ĦÌ9ëĥÙŜĦŠ3Dk¨ş?\c½äDJŜ´·¸{m#RÔĦe,Á*‚°wRY‡}÷„<ìëpזZâdïVfôĤx‡Ĝv˙>—Hœk‹\£ıîâ?ġúlßħßz}ĊaˆSñğżŭüŝmï·ÛŸÚŝ‘H='v/ ŬÚŝ‘ÊoÑ!ġ`‹Ž#|s öZ*:k-Ĥ„Ï\ BU—óQ6K*ĜeÖ܍Ġ€1§Ŭ£tNhG;£Ž·w5è–D¤3dš;U„˜Ž qœQîeġ‘³Îîs(‹n …K$J_|òôB€K?zù>ħEœ~=è1Ĝċ¸Ž'Ĝd@´qÈ·Ġ({ •FëjVn<"IVğhÂ:$dħ·£›y·ÈĤ¤II”@ĝÒ"F úU¸ÜêMFr;YÊ~̲ÇIz}=_dĞìŝix}ŭKŬÚĤ AÖĞûÀm0î—FŻ­ùĈí$ò⛍qŻÑö*yƒI²\’çġJ1a|]Ğʃ‡v7çÎñ­j…q’èş7+ )vèÍŬ*/X Ħ)áŒ<"§ĴŞS:ŝKż†,§l ˜TĦâ<Ħh@Tċ…$”ĝ!^=­²Ċ8™_ÓĊ2›}{$ĜĴš PÚòâ,™Ĥ•eü]èĈÓġr.ĢıèËa–ÓÉ9BÔ8ÛtdŜÊûœ‚%Zġ aı*mÊñ²ŝŒ8 }|—£.ßâŻçċze0šÖMípI(óCċYô]îËbèYïĜ“âcí³ëÀ%žùoïĦÉI&òîâtšŒ'UˆV95Šm,Ċŝ_ï“dÓ˳„Ċş\dĦ‰aœq¸˙tĈ£1ki›Ĉ'K2%‹d°9ŝ, ıŠ)ûÛĤġ;8lÒ ³…tOhuUiÁlM4Ħ6/Q€-âï¨Ò‚é=áşÎ˘R?? ħ89 ëFŬÚ’ĜA5IÒN¨c‹Š÷gÊ2|áËĠé²,”xĉ, U8˚ИòŽ,£\a‡Öĉ9ˆá–,ëœ"ʁÖ1Ä-âĈĵœeŬâÈ2_pĜYVôV šŸ/n˙\Ï;Özoġ‘8şĈ–Ĝš˘Ğ—)úxùlĵ&˙ğ×ÇÚĴ:NKÂGıÙĈĠŭ‰*œB¨éHXFç\3éÙrcJ`Nú°v…*ŭV80˜Wš ó-†Zz>NT_¸x0J—ċ³cñxX}ŸLÊ£EŠı‹´’elüU:yÈg²œZ’?ÒjŒ˙H&Oiġ+•ñ2]yŠn8´V,=7AxNŜ â¨Í>’…GD² Ÿ¤$Żŝì`<Ğ(·Ú oäh+("QÁ0|ÁÏ5×钙^ÍMr;qkÍĜA"äÖö%rmŒö!×ĥäâìZĝSÉÖ5A C5Xag£ëžŞQèż.R‚Di‡N·EÇá…JHíe— SžU‡dW‡Êµòc9vIaŻEħQh™Ö ?ÎÙpcÉGl‹şL½XòkWÉ6 <çU‰ˆyëÎU*zÖr Gm‰Ĥş!ûĈkîĥQ·ĞêCŬZ…á$³˘Áñ‡×î|7;à ’KePƒŠ‡Ş¨mwîžöŽT}"(À,jLğ oÑq„‹´ÇŞìüWĦ˘cŽXŞ#Ż@Ŝ]<~è8 ġ“ŞUì˘R÷t~„é…Ïmĕ@ġ} ŸŠÎZËBE§eĦìŽZĈ˜Ï›=jYç„vĥzÄ*íW¨[ä‘İÌ $Ĝ–jv{óÏ]nPóĈPÑ3ŭ2=[Ĥ‹’›ùïàvZÜí½|J×רàIOÌA„ċ;Q3І€ŸÂ)•)WİkuÜżç’Ì „Á2lŸ§‘/ÊT)G€Žh#lÔ÷Ğf†çžf´ÄQ2Ëü6O<ü˜˙„Ż\:_wr›·ĊVSZµDËM$÷¨)Iùhµš/ŻŻzŝ58Şx|5XäT(`žYô{}Ëâù"û@…d‹ÇĞy2èñ†òĝ#:ġw7żúÓÜ7O0Ġ÷5N‘ĝ³´ĥ·éä>{R?ĞU:ùĥzPĊïzÒÇ,-lfŜä˙fĊËnĈïqŝ6Yñ \ü~•}Ìtòĥ÷ê îq‰O˙7Á‡[endstream endobj 187 0 obj << /Filter /FlateDecode /Length 2759 >> stream xœí[KÛÈ û#ˆÉ¨Äj÷û1H€ÀÁn€Àìړä0³J˘f´‘Ä1%y0‹ŭżùİn’b7MÒ‰šÓ€MŠŬġêŞŻŞşÛŸ"ŒH„íŸòßÙzôöƒŠî·£O#A ÒZER…8‰f  Ş‘"&ÊÓè?Ñf„‘Q\bŬ1c´ŭ¸ĴX(Ȱ82&pŒLd )Ì*M3Ċ£'`&¨!Ñߏaö˜aëӈ8%£òŸÙ:zwb0d¤˘:şYŒ !Ž(#2R”7ĝ´ĊëtğMîÓñÍ/£ïn,U¤ \á˜ÄC”w3"ş‘*’¨€Ñ· BÖ XPƒAixÔP£Nà$6\œĥiLVË_=^l*Â"ÚtïâŬ‚܍-Ġ‰ÖÈ£ e°ĵ”E7óÑ-|§‰ °ŞFÄžŒùÇT.+ ¸“N´]ş~\,WgiÌ(RTdïâR]7,š!"@[§lĊ΋)n8êà´ÄPdġ­cÊ`ʸS3\LyħÄí}ˆ%bZmħ¤„GŬ >:§Äٙé6ŝxAƒ[òs½ŝWowëÇ·àŻï³í[ğ@Œ¤,ÈTÏ$ğŞŭ£ĥŸ0\Bä„ċtCR焆ġ`Ç9Xƒg3£B˘ngÌÄ)) 8Ë6Ż85çĝÜ €P>I ô͙h׏Jí²Çô`<˙Ċ·# Ǹ°Ċc€ÀË9+èyġ4½:tğ0 ,W€ gÏ+ц8l½lž’„"._!MyŒ†ÌRÙ;K…!×âş°tÜÇoĥÊĥ稠ħE'ôtQ(LPfŝér˘´…”ÍJ" ĊĊÂÍC:žP- /Ĝ8„Ĵ˜ċIŝ ´àWi½?ŝf•n]ŒtUN ŸÍûŭÂE2˜”lĉĊ¤6à|B*äCûùPĴ]9(=Ív~”YÓí’ċĤ4ĜaWĜDş—*Œà‹ĝ$~LžWY2/†Cd[~4*N*³Qp×Oût3;Ìäqĥ¨ÈŞxúĵK·h”9§hWĥi(à´ p™(O6|âĝĴl]Ô끰7CIkc›’€şÀgÉ[Ô<Ħ¸--ÀšañM éiyşg4ƒƒ ApÚ%ùjÇÓC˙ô‚]Ŭ—İ;ĦDĜñà¤z–1fġ³”Ŝó˘ŭ™`o.ġ~÷iN_F“{4GS’úYyżÓÔ:èÏۙ+ݐz:‡âĥ 3çBûQà Pô€sç„fhr!< ›ğɟÍܸüwh.zŽ y0£ ŒbRH·›`û“ĥŜ B@I ĥµƒ‚½A•Û´,ʑ·Ví²ŞQ€&Ó6 ċ‹Ž“ĠöPPŻím‰çËş…ĠsĠ=hÀÓ]L?§UÏ@Ân¤îÊ\{ÖÖ·Ô- k]H{ëÒÚğ´ö&ÌŽ$íÙñm&żîƒúĵcv|żÈ~=LÎ4,‘"—?8ñĝ\vCÊc4䆔GÖOx>•‰ümSž†ŬÓ ùÏĉ+ê³úçżŜż?Gxi@.ߖQ˜Ô",á}GŬ3š/maaNú˙kI‡ÁéΜÀÂò÷ĴRfA9G ĤÖXŠ8ĵÈ+IÊ@Š ı#˜qüƒEˆ1§BĈ÷öŒÈ˘‹ÓogcX87ŻÒÄn I ‘ Ê<‚Úò˜żÛ(-K1ġ½*jŸŒVMцJSfŽw˙~#aˆiéOó“}x•ì}•ŜˆË Uz³oĵLoÂX—ĴáĠ ƒ ırâoÒĠ|[Ó˘Ìaħ¤z 2vžÒME\leü´tğ£ŽSĵİd`4Nòûŭ:ŬìŜĜŸ µ…ĊÈòÖmCA•öġĉŜŭòsÁÖĤQédGm ’Ĉ=Ä&#VO÷äÇÎ ´€që ‚Iv\zìĉq`ˆ8xIıHE ‘‹ëUgp÷x“žĠ·QÁMŠxîĦ‚ ‰~LómĥıÌ °š„ĤÜ$ëƒ/vÂGĦ-/”ZdÙYg|€:PP4/d7(ö oĜ-]'ËĠĊ ǘDó/ ÷×i’£Yĥ>ǀÜw°W°Ô4Bx9݌gEçìpNNôq½Fĝ_ĝü“a¨ÊLq)h–ìÎ*NÁ}ŠAÁ<œ Ì#İX%[4{HòdĥKóöıB-Êp7n-˘)§ĠwÛ [ƒHÔ=5tç„fRäĥ Ğ“˘ !ĦéWKènú§'D[ƒh)ÂKBÍŻĞÀb%Ĉş²]‚ÑïG7ĴÇ/ç×uĊMŬH˙³ıڀž–r„Ĵ‹}ĞBSM'Ö²§éžÑ°= HĠ·•ËÖöċ‹‚¤‡É ‚éâÀ÷² ğÏè²ğÏéPÁŸ\è[Ŝ>ÍğK£'1„ ˆž>Ċ £§Ïj`ô µh çÄŜPÁË §P§•ûŽŻ\dM,Ê Xdû_ıÈöXżr‘í+=T‘íÓĵl‘Ĝíu‹ìĤá,²/ożŞÈìwÑ"Û×iˆ";Ö˜˜ħwIx7ü˘ı–(#öğ>§Ħr­O3HV^Ö­ ĠcuµœŸ#Ġép ŭeëX‰Ġ€e‚GÂU‚Çià"!Ħż"Ĝ€Ôgv×ÒhŜÓbuÏhÖùĜf‚ú˜Â] mż4ôX= NŻñ ô{Šİ—4Yv/÷ŭ ğ¨ÎcešO•ğvŬ݆$Ä£ŽċċáŞİöv wËjz§> stream xœĊ[[oÛÈ~ú#ˆ$T7žÌ™û] H‘Ŭm‘ìfc}°ó Ëôe#‹ŠD×HÑ˙ÛżÑ3ĵˆ3Œ(ɢ(#Ħ™s›óÍıäkD DÔŭ)˙žÜŜ|ÒÑÍru • ZFJpE„Œ$ċ’HYj‰²-’è_Ñl@‰ĠBQŬlß0¸üŽô…Ş0¤p8ħnƒ DBdAe*‚Xµˆ‘•BšHéçX!+ŠB}@`Tŝ5ıŜŽP.#KĴÒÌD£ëAĦ=DÒ JDš1d†Żîçñ}²\Žo’á‰d(Œ…ĝ/'Ï£ ŜÌфÌR$³ÌêhÑÎÌ:îŠ0m|îñ,yŽŝ(y=Yà€ç£Šqö‹ğñ”|LËtöşf°—2ëY3Ĥ(šr6_ÙQÄ?úfä@İÌZëü‰ Öğgô+mC_\§é‹†dĈà?B@³ğׄĦŝߑ@n·ùm:[Ž—†kş‘bCŜÑèjOï–Y…)ċè95^ïöŒJ¸ Xus{ĈZÂWĦ ·'Q}¸żL}B@GÊⵂ ÈVgÉzĉàóŽ_üÀùEL/†„.`àœx@ğ rôi†êÌÍûżD¸ÖĂ í÷ËoŜu1œÀĝÄAD/†]M·UÊ(˘1VU>ĊçD•ĀxTĠĵkT½|ùò ¨òh÷Œ*߂ÇE•ożż½ŭûûn¸K´€ìĊwIXÒŞxĵHfüĦô…Êm…;˘ÜG-ŝOwÉôêlĞ BÍ&Lœ^W:l—„+LÔm`ț4½™&§§óEš—×§§Ÿ’ëi2ÉîÒÙfá$ÂXpŽ+v0íP„ ”#ÊË÷óĝ”‹WF>qP„KjŠċñd:^.I)–ÒÄ2pÉŽç— …@ˆĴ= Jú1ÄtIJîÂ:C2aâçħĝÈyœĵş2× À3ŝ–%èQĊ;ŠÎÔ§[Ĝ›lqj‡Hż<1ĥy5£˜È`Çe!ÇŻp§­4UŬÂŬ3ñ"ÉwÉż“ÜÁïSž;GñZ³UaQĵTıwş˘|Ee¸oĠ4,ĝ°ĝ1}˜^Ġï³ñ—¤ÜÊDœÎ&Ġ/0ñ2qŞWZsu„èĵ#šÀ dİÏè6'^Y5ızÖ&*† Nó5>NŬ[jjœşFĥ£C0âBpároQûd Ìı93•+ŻLžKc ĉĵm+/DD`Áë{}¨³ô&08'b%eÒ4Ó ¤ tġ6¤)iÔwH ƒšèmrŞ ÂħĤÀߞ!µoh5\È]NT5îâ|—iŭ#›ÀtZĞgê×ÌÔ÷ı3îÛñ¨qOċCġĊ=’=ÍZ"Xh´ä~|7íżg‘wKLÓj½/È$½?D?°wë ’ÀxwW•ċl`9·£êx<ËŻD ëb ´0Z4n\ž/ïŽ×ıq²hkûïÜĝŒü͋~L•ˆzœzŠ/eÏÏc´Ş4ğ€ĜÂiRžRU&’X™<£ùÓÓğ–Ğ2n|Vżŝóŭû.ù+Pâ˘ğ/üpŬÍ4 ħóĠÓĦ1\ˆÈPğGlğ|6ß˙öa# Û~ù4›LX@cɍÏX×c²LĦ¨Ĵ]{ œ÷—ÚP›zLË!Hô 0ñxîúşì£´v•€Ñü+zQ—·5‘ ZU‹–Žö÷-Ĉ ÂwĠzkö+&Yŭ2İ:)*~X&Ġ2× Më>̲TÂíÑq2Mî“YĉġiüÈŞOñ"™',İz1ZĊJĤöĦ?‚P’Ôħż˜|Ûpá·ox#¸\ê ?Ĉ[ŸŞ5/üv’!-͟İÙàq?P·Á§xävC`Ê£ö|Ġpiö;ˆÇoàÏ=ˆç‰Ñ÷ žÏê0#CĦÏ62ä$(ĵԞcdÈ}A<Ÿvż#C:2ĜŻó ^90äí{Ï%ŻÊTÁgÄàùĴ˘Êq!U³>ĝžGş_@ùĉ;*ž|`íĈ„ï yUuk5`ŬvÄf-`&ŞĠšµ>£Ş¸è8fç“ìyÌÎgu¸1;ŸŞ·jï ċd‘O: *a½Y?˘–M Ÿv— `ħşÒ żöâÔUĠ­M‹Q•ɸKöŞ L@ħ§ìµš¨óY—dr;^Œ'†îßPB-úé–Ŭ4ŸĠĞ.˘WŜèÑˑ~~~ _%‡.ĜdX* ½ÏŸ×wċö#nJ¤}è˘Ñ•kßèƒX£ħìğ ]ĝ]ı ô÷o‚²1JXäZ§UȀòħĦ<ÚÊhô~0ús½Ñe§u [Äŝގ‘;LŞmÑĠ³n~ÊD'Êş~‹È7°²ƒ&üµXàĤ˙šĝż~Ĝ².^ċ*mBCH­²ş‚d:â Kñò˙ÂŬfÙ|yúfèf¨dñ›É"ï(riâñŒ,N†'âù"ŭ#™d$]Üĵ™'ùPAÄŝĝ飛#zûpí÷~Şly·K˘½ğşJĤ—C,.ĴĦ2~H²,™š™2ŝi(œ  …Èà$ŝ_Z miçĝûŞü!m|–_rjšİ8™~ĞĊ}ó‰1÷żhüá-İ#endstream endobj 189 0 obj << /Filter /FlateDecode /Length 2263 >> stream xœĊ[Ûr7}gíGLÉİ ¸+"hܑJ^\ċd/ñÚħU›I´4ş$éÔz]I7żħıcqLi0béACèn4út£Ï@żfŒBĈüOġûìvòĠ“]'żN8j­É (I™ËŠ*‘” —­òì§l1aÔİñûËfL.&?˘İk† §ü ÇKFàxCµIFfP—F™²ïwÑġuḳVà ıcŝ ÔÀw&[]˘PĴ>Ğ~ŬfϏ>°™£Nn³£‹IéÈP 39ځ_ŬNÈÙ|3=úyòâÈëÊĥKê>‰˙&DOH+0ĦñFQBDŞĉkzv5_ÍÏ6ùjÀ*@ê”éĴâ6_Żç—y° LIƒkš‡‡Ż î:4}1ÄrĞ(Sħĵ÷WËE~|Hġ¨lï1ĝ~ œc`Ûx‡ù‹9×ԁŠäžžLOĤıÚ0| 6 1¸Üıa&änŸQ ·E,ÄÓ@qA5w÷AÖ¨= Ŝ ⌐Ú!R(tĈ1y6á^1²¸ğ}—ŻžÎGk9ĝ›'„L)ÓÓ£NPµÓ §ŭ09úk;qóñ}ŜLäïŻ^(†wËµ˘ZĈ+‘Ş'-nŸÑu.ׂ‚Œ+vˇ=JĈʇ(ž#ŠX\˜żŜu– E6İä0È%S…ñÎy/3ÊÀ9ëŽPà†Jta¨ò HC2‹–èéXêa˘œFRecż[ˤ:ŠİˆLne${HúC”# lÓQ fŬBàòyÂjJıڇŞWûxcVûPSŠjʧڇ† ³öĦĵ­Ġ^YÔ.Ħ§ uĞŭö‚¤,X4d—‚UûŞ=*ž¸Ĝ+é45Ŭ.£ŻĜoŸÑġ­t¸0÷¨ĉ§GÉXĊ^) InĤPâÈé0T•8ĈĞ3†šR¤PŜ8é0Ԑ˘ù ċmO‡¸6ŞÔšŸí3şĊÌA™~póÓ£àñé§.İġŽùÙ³ga>tŸÉ‡/_=˙ÇeFĨÔĈ:Ĉ½3ŽÇf.›q‹Î@ÎÑN-EÑ(Ħ‹¸&/=Ĥà?HK.½ŸŜÉżXç›éŒëîˆ˜ÍĠòœÖŞ8.Yiô™_1xU¸hÔ@Ž T}âK?–ƒĵäbP,Ç"ĝŒ.ÇW½°àlh?ĵËKÓ°ğ wëĵĈ9Ù,ëo€4+pڒ˙Îoîòu;pyQ=3Gĉµd Ğü}>ߔq˘Ñä/ùMµN Ş,ğUzgÜQÑStĥNè0Že]jE Úĉl×ñĝ–qQÇp;Ğ òÍĴuNÊŞ¨Ĉ‰P;Y䆤Ԫ— %žÍŬfışžß×ùj½\,qŭı6rċb~ÛĝQ’oC7Ĥk ıB\Aĵ胋ċrHûŒ=#â9 2Žß@pj¸Ê$ĤtÍdé·˘ ĥYÛ:+Ea$Z3˔ss½rŞÛÀŒħCœe)Ô4,ê9–?‰ :ĥ½ġôµ÷鿋ş4&x&…Ċ&CT(Ö[ÉG€ĥÔêîô wŻÀS6’=Ž…ÔâFô'‚Ñsˆ0X„Œŭç›ħ!Ž“LRtL(ód:Ôsŭ˜Â­ò!˜SÄ}b $fILµş;çĜ˜ dŒİƒO‹İċ~ŞĝǝŽÄúĴlÂfBv2›• /ÏÚŬíHÇ4žùXÔ5$9ÑqÊq?B‰ûÀ!6sX`Ĉ“á°ÁJà‚‡³Ùl­ ħsGBĦ“ĜûÉĜ5 eBŒċ=)<Ó bïŭôêÍżaĊ+‹˘²ÄŸdĜ€ë~Ş8›ŽÂF9”˘ûA˙À KG%µÓ”9İ"MU‡˙XTW_(1:m'|½žÎOzQ ìÌcİÉŜÙUŻ.Cك^/jG…’Ħĵc4ĥJ[ĥJc£T„šbĈâa%ä­C‰còÖ>xU‰yë@ôħ_F³-UÒ( û=Ü—ÊPc[0béŬNŻnŸÑa§p ŠŜˆĉP>KŻö(x<5%$Ċm‡^ß†,iÉvôĵeê żcĞœ9ç)Ú­”mQbï™Ħj}MimѵáPĈvĞ>]Ág l8ċ~.ùSğzĜeßAH/óŬèċ‹İó‘ÂI9ĞŻ ÖµŸlĈ`bğ°Íşb’É*¸ş‡oĉYÒféĝĉ˒o.9ċô|3àiÀżZ­d0c3Ğ{çí3:˜Ĝ´í+Ôev"œ{t<֜ b÷Ä8Ú1ÎĦÄ'fœ#W>).:Ê—q(Uï›qÌ™q5aÇbÛ÷ĈŽùó Ġ^Ĝħ@wrĈ9”=.;yIÙħȉçPĉȌ3hC9S)1HÜ'Ĥ| ċ~0ĠêNÎ8‡²GĈTèÁ§ĊTèżŒ3ĥqžċ Ċ†Œ³ïĞšòrS^ EqĞy|Ê+ÔÔ´İìPĉX¤Wu* UğSJM}§>”àN}äëûnİ9Ìş~Mñ YÛC£lŸÑiıˆâVÚC/íö(x|żĜ—[1r| §§}ĵI§1+ZÜòQw2ڗ=…êˊägš|¸Ŝ\µ“xŭèÈĊ56ĊëĥÂx~y—[o2à%ÄÎ×Ŝ^üo“/Ö×ËEu˙M¨^JB!6e}ìw5÷ßZŸZQİE58ŭE¸f:—$WêxúĦúd!`-pKŻe/˽o<"3 K͌+·Á_X³*› [ċJ^œŸç7ïĤÈÎXEîòÍ&ż9ô2q ïĤ²{KVĊŜ€Bc˙\^ŻĞ!Ú>Ż?yğYŝRJ“Šä7§3‰AŒıĵy½Zn–Ïï.JBé?ח Ż ÷Ù·wŒ“ßkğYh·T~Ë öüwùğĠŬ|UFžÈÇZ·!ĉ°Íg÷úĞ!Ĉ_% ġ•ûݳTëê! šôĠÎŭżàŝ8ù?É=şOendstream endobj 190 0 obj << /Filter /FlateDecode /Length 2629 >> stream xœÍ[{oĈ˙_è‡`}BµñzߏCHƒŜzíġÎ@˙°Z˘e%’¨TFšÏÛŻÑY>wy˘N6E§0`“ÒîÌìì<~3ğŝ)ÀˆĜŝTgëÉĊ[,²ÉO!9R"Ä(Di 0H€‘!A˙ 6ŒŒâ›`ñù “ÛÉ?>—5ЍàvLd0c$L ™šGF3ĊƒÀJM ôŬĴŜ+X5Z3X5Ĥƒ †¤ €KŞ?³uí%ˆGt`‘ŠêàòvRê…B#E$ |µž„ËÛéċ“——–UO‰}GÄġ^‡-A¤ \ÈLb‚áááB+ƒ$׿wXœN=š#­‰ô8Ċ˙^fy6@E„HDĠ1‚ħ(Ä6ĈÚ F˜£Í!ù{XQĤGŒC8ñXÙ(ĝbˆĝ –Í=‘Ü™sb˜Q•„Í áŻÎb…Ĵ1‘ÀìÔ.žĴV¨C€0%҆•ùêÙ³:[ÉĉúúM„YœCH]Ô„Qŭ¤ >ß­˘´JWÔòÉMĥL6ròփ•׈È-@Â,DÌ=ħĈJŒ U$”qY‡›ĝ ÀœKñ:ì…X/VĥQäSÜĜ-l£PĈ(YRHŞó‹Q!³Ë ĴĴYĝ]s…¤­Òûtls`­>,79£³š\ö/˜i† œyREŜñ"NO=ŭċ:á§ĥGEEİ"Ì#N†Ë2Üßö&I”PÈPbíû ²6HA;§Ò$S%TĤÈjQÀÂW*×q–ESb_¸!HŒ…ñġ‹äĦk[çàŠ€|E¸Žóğd^†)`OAd!µ*$ĥ‘ÑĤùÂĠ.ïâRÄβ4â 2x9hÑħßE û$9)_Uĵ­,Ĉˆpmڗ›¸҆â]×( ó¤ŝ†X†ĠĜ„?GĞ$Ûf`r['†4Umxv˘sÓïà8°mOÁPdí·ßÑ?Ħèw´}ÈwúFÙ]:ĤÑq€Çğ‚ÇcҊPxa€ĊQ‡É¸aÔaԵQÔĦü ê ÍÖ¸cÛ}3&F8ĈeÀ"¸c\½şĈĊÄ)Ŭ— ĥzŸmĠïŽ ?À˜"\yfÀáyߢR‡?ÚQč}GµPÁ8ÑNí˘ùÔ fàú`|ޘë#⛪ĈDóùž¨C˜9]T³|šaŬ¨ĉ Ĵ)¨8ĥq”ÇġD%ßĊĞùlƒ5›.lœ—Ĵ?ÂġOè! „ĜĊ#ĥÓŽˆpx<Ŝı†Ŭĵ´Äµ5›E\[!;WH×á>;3bwÔ£xĉğsYqˆ”]F—èxNÓL+èƒAŒf\ ( ·rE³(°šú×x=ŽÑ6;ï°Éhëw8ċÉğ<µ ;/²Ï×UŬû1*“d ”P‹Ù£¨ŜBİB£2 ċ – F• lÎç*ôàS˘ ëUJ\=o!G yĴ;4Àäo“Ë?´;8„I*t?ìŸMdĥŜtŽc8™Ĝg[ĉè?>‰QHŭÒ‚B‰U’£UÛ&™­˘,+Ğ~BÂ/_—6ġe5@„WĠMú‚vŻÒĵŻ?eáÇe~×(Úş[ĥJòĴ…y”80݆}Óöñ·‰=ĵMŸm=ÒM´ÚĉéŸĴJ?G ìc{Â_=oËÀÙ]ڎ:ëdÁ³=€‡bîÇvŭşv‚mxÔħŬcŬOĤXr­K[—bSÚîsUb ;EŽwĠŝ - ö\Ħ¸çí¸*ß{àşêúwUbWœüıŞM3uĠħüó@5X\f`N5¨Ž<ŜËÌidxÑ,ëúPË`ÏrHh™5µÚb Ğ ŠħŞhÜċù6{~1%ö†ĵ áĊ,-0:Œ6(=Ÿžkbo³ŭÏr”¤‹ €¤SZ\¨§añ "=îû~á8à$ÛZte{9ŸÇĞ›)ħH‹pçyĵúŞĊqŻĤÜ ´”™X‘˙›”pe7 ŜçĠ‹0áğ<ùħ Ĥ>Úy#ïĊ[¨<ŭ)Ù.endstream endobj 191 0 obj << /Filter /FlateDecode /Length 2024 >> stream xœĊZÙn#Ç}'ò G@šÁ¨\û8@`À6$€3C$3ó"[Šœiĥ<ÀßâßóoäTŻU-6MR¤zP/U÷VŬġœ.~L(a ġÍ˙ùäë×&ıÛN>NsÄZ“h'5Q2QT(˘D"œ#šò¤È“˙$ë %ÎQ.drwÀŒÉíä_ uĞÂᔟ ġ$%Š%’J˘l§Bg…‘É'(3*ùáEo ˆbM'ĴÚ`Òü›?$ßΰĦGœ6Ü&³ÛI½{–(I¸`:1\@^=LŜĤœ^3ŞhşÎòżLŻÇzœHżşŬlšŸŭ}Â$Q—Ìŝ1™ŭıż\t£UÊĞ‘áëü![şĵ’÷·›Ĵ óÍC-÷ğ68B9FïvË'¸ a¤_ĈŬ3*GPÖ+:0gŬi YŽ…>×Qù€0î,DSÂĊ\\(î¸3I1îf÷yGkMDċœtž•ÓÙOµŽw·Ĉ3AY(]ÚË;ҍ"L jÊĥd~ŸÙĵ̋gì Cœ2ñòí6ğËßMßM;ÑA Qn‰RQÚ(g÷eôèŒa Q ĠÇgò¸‚7•‚S²X F,;*‰ùٓzBg^ĝí䚉—\R’£ÎX'–0K ‰R¤žN˙é]8eŝFÚôÎëi~UnŜ”ĊrgÜ@²³wyżYFáÀ*°‚¤ –˘´›‹°ÀÒ8F* ` j°B"ÓzAóǢÈ×ċê³×âe.]nŭµEħiĥnžs™fĞeÖr*Úk––÷ùîEÁÜĴ]Ó0ëҊHÍ]3ĝöq=/—›5ÙĜJ Œ!êş(‚­ĝž 9>cĜ¨}IlñE4W•È=JNn,­‰î&ßÛ8dé7×}9gó~3N„ÚÓuŝé9ġ‹$‹$KËÇrS,³ù1/ĥ›ġĞgċŬŞ9‡,‹Mé DkG™ŝ54£`”ŞJĦĞú=ġYáĴ;A34" ˘M×ètCr+‰4Q`¤²›ƒqäÀnU%ĵ¸á„Äz¤80\_sO7 ïUVĵ€ŭ$S2Háċ˘5ž‹ŒWĦs‹f#OÑ$QûaùpOü9&Ŝփô Ĉ%Àž‚JvFĴ×Ëë`R°ŝĈYMĊĊ3Jd§èê"bÌctè {ûİĠ޵ÖFVA‘ÒrċAÜá(r|Ĉ Ùb  üxıGÁ3-ü #Ġı ”†úĈĴËíA:3†Ĉ—Ú†dĵĉ‚â ¤³GÉȠąúl"”xI:ˆÜ U#{›’ˆ}ë·Ä•xᎨŽbÌŸzĈg ˘ ÑôlœÒĈŝnJïQpzJK7â8fxŝ”>†ş˜!˜Ôjı-kŝEـFĴŠĦÄĥlvŸ×ĵk`6 @iDÒħ´JöS‚&i½m4öœqY˙œċ6Ĥ„͍î‰KÍ+YD³V Ğœ³h߸ôu˙Ĉ݉ì f92f]rßç²ñ`ĉà¤ġ†dPV"÷(9= …T^ç"ƒö3‘ÁP⠓ÁȔ/JMŸ‹ †2/K#ğ½,îŒdòökÉ`dż‹’ÁpOç ƒQ²^– !ÑêxûŭĵíG'nÀÁ–š™Hjí|çaFĝŬôĝeŜߏ¤ñƒžÂ jŸq=ìhpü÷Ò§÷8à ‚GWU-ÜsÜġ–½ïñPžŝOѸ+÷,EsùÈĵş¨ìúd=óá~³ÎŸˆñĦäİîN¨„ eZ’ ˆĦԂ(sâh g5¤à:²êÜAP1nnŭ5ĠBQĊ¨á••iVäÍ*ÚqxzqÎD#Œ‹†-òù 2­™ŝ!_-ĥŬûħyĠBÊÏòWí’ŭwŝEğdŬݟmٕùşlpÑx)ƒ‘ÛŞ‹ÖŻ€êşŬXĥuoİ›&ĵÚX¸¨ùàds›˙ŻĴÎ :,hÒOËòƒÔ8`0=D¸ÚbÄ)7Ŭ|ȋ ¸£Qd9Lĵ˛ĵC·2]ĥ§ T§Ûĵ:—ĝ5êuÎ7ıjCûj^lm_LdÚ†ÛŻİÀAo·H @/c‘¤ħ‰ ³ê™#LúÒĜ2Nc"Y™7'TjxB5`"`­ì*˘u3¨ƒ‰ ’0e”Œt§V¸ı hÈĥó*çé÷aĞÀŜĉ 3ÙŞYMGê<Ğ#"à/OxNVö27ëy“ƒR+äçY3íĈh‡XP'gíQrzËqàĵŝw_†ÂÚÏDaB‰O(̅a’˙’Ġ Ŝçʉ² b íPÒe0qû›†@ċ q1fü—ĉĜ‚Ïĉb´‚lĦÈ Q13ŬR }>*Áá a£-=‡Ipɉfâ%L¤<ŒMô2lµ%Ê:[hMÇİk J…L4·­ŬkŽÙ×Í\HYwÊï‹|u3EèSéc^–ùêUÓÑŸÊŞ%Ĝ´¨ú=S@†żmjȇ!ZµHÑß°ôMıùo-MŞ4÷?"‘–û֓ŝħĜ”›oĞ>iÓ/ïÖ^°í7ŭĊ4\7ˆ+qşmìßç7ĊcVԀC`UŸ[Ġ&5ŻjɜrڊŠL P´lÇ/•"m`?+Ô#˜ê<óġk`Ħğ-ŝò¤üendstream endobj 192 0 obj << /Filter /FlateDecode /Length 3295 >> stream xœĊZ[oÇò(äGI€,›p´sŸ1Z Hí( ħôÁîE.%Ĉ$—&İ8ú[ú÷ú7ú™½‰KS²œBڝË™sùÎwfĝn”3>ÊéŻú?[_\´£›ŭĊğ m³zdıá̘‘ÎfZŒ¸SLY9Ú£Ž69ó>Rn>>àbqñ3ĉW&- ˜ ´gœ¨œiŽž)mÓ Šy'­½ÇZ˜ŝogĴó ëäèŬğU˙fëÑW@ê‘gŜXáFW‹‹¸u>ҎaNÈ#$S\ÖݳŻÇžë<[ûŭôĤO´€@>+éÑd‡ÛA³\ÊìÛŬĦÜ-§+öSħۗ›oĞO‚gÛ4Le2=úlħ,Vó}zÙ8Œ˙uġ÷‹WĜIm „%Ġ;ö+ú–)Ĵ2ıoL1< ˜˘1:’„ ĵ×#0˜ËóĈ '–V`\xç$`~ᅇy‡íŬ)ûĝ”FöÉfÓĝꗨ§‡[Ü*2´ëÌĝĤ6u=/spe!ş49Ïñpá97LĜîRß´–x:5qÁaŜYişg³Ûén:;ğO…˜ÌuO_oĈoĈġ¤³ §™ġµcHï™ön7†ôU8ÉdíĞ*WL[÷1¸81ŭĞ0ŭc Âh8?şt b3]ÏR,ËìĞEY~˘™s̄ĝĵúÇĊĠšŝËyŬ[g"ôl.ÖÓċêYƒ 4ߟݧ;6+×q^x‚YĉGÌBʉ`ÊÓóD„ħ—£Ğ9äÌ1ĝfÊs4›ìGrô1§ċ²Z€°â›yħŸí–[Ùx"°É<·ˆ‹m9giIĊh,­kşä#^3'áè9TŠfW·!š†´)¸dVΐ–aärÂ8ĤTgìëJR’œPÍeğâ°[żûމgH”žğ{…’m„wĦĦ=³iš(!T(ħlÎ]öŞ(Ò Ôž–ċĉ? t1ĵFŠžŠäŬéÜqUG3‚ù³BxpN‚zçğ[ÄÍK³uı+˘Ĥ!À.Š< Û!ċƒÖSÚ1†ZO š^—wzspUÛ$Í`y•)gÓRüžIwZkL°£Üpĥìß­ŻDšçdğá%!YHF0}Ŭ§<û¤íMO˜%Ş|ÔZ=Ûï?%9H¨ĈšÎŒo²Š™bb%,áĠh!Q@}žĵ •ÊÀd0,}Ĉĵ TĠ³PÄĞWˆÏğSÒ½Ÿr5‚”Iq>U!=ÄC)ú‰ù?!^„gÖuSnÂCä8!-ĠE·âEż>Êyθ=Ÿlè)S9ç˜q Û'–ĝ\d[yƒèÓOèÎù\éÎÄ5ç>ĉĠŠŝkWè‚r˙PŻ>1˙½Zp @ÜÓğġ v>HÜİa‡â‹ ‚Ç*”4í!‹eGˆ“$Qĉ0¸ïŒo‘Ä@]D‡$:l5WK¤ïxùrU½x¨şı‘‘3†‘;²Ó™:p…Šl_ΖÓC1ï2-g †„d:çQÒxlgóŽÒ#oÓQËÙC¤£Ħ#*:Ú9G·EƒÓpùp2Z›5ç@rŬŬì˘V)ĜO`˘•‚Ŭ1ĈÙ£œħꞏLé$0ö sx@Y¤£Ĝz <ħÄ'€ ùʙż;Ċl­ŝD³=™Ó~Š)=fáżĊl/tĞ[(ÌÉî.ŽÓLIİ›Há 3ê%äáŭ°Q™Dġ˜‘üXB>1˙cF˘èġ”1Û ™´ŬdߏĤçítöĥj˘vĠt$ì âé|ƒ[^—ċ[ĥŬ•‡:?‚U:’ŝ|::< Żt:~wŝßĞá5>•t8ïìû~…+íÉOrRŭ!0< g A'ñT:}´8hGÀ‰é°ÑÊ˙s@‚ĵHZĦ5y‘qšPû”ċ#Ç\Îégqï ™câÖP^GÚÛ˘ĵ2^P5"NvÑÚ/Ç~ Äo3‹óÙ´ò=c™ĥ+ҏÍÁYŸoîĞFèrȑ#˘ĞA_·Pbħ!FYÑP Ĉ”žEö²inw6pĠHÙá1Œ¨°C˘”9ORm…ÚĊ¸Şëëì•J“ûlĥÓ%†Š")ç20ŭŠWk6+7‡érS‘oïkİî™NYJħnÜŻÊŝXá 8|ĊˆJömıÜT=Á2ùÔoş™­BÈĜ[ìJû39@ ÒLÏjÈ0 ş bœn@\PFYdÛÑúBY£İ¤O-+,'~ƒg!Í({ÖM‹”Š.1¨× ÏÛÌóŜ!’b&ÔQĠeİVi³d˘Ġµ+C.{ђĦniÉPïGHŽiï§jiï¨DŽÛŜTɜÜŬÈ˘Öö†”!ŬGdĤ#éí™F"}V6Ëè*ÔMÓzh‹ĉqW÷­ŠXĠR&ĵĊRŽ­ÜĵKވáÇż‘wMáŒÇ"„n à镪} °DɳwwÓĠò‹Ài¨Ċ;x^$/ĥñžE:ssí´°·k3Ñz­İ–jMĠZw ĵèRËGRrëĥ9ŝ—"TŜ˜?êòjLÜd0£ÀQ)b`‡İL™á˘\òĵ•ık51AŠŻÜ0Éo‰OĈCĥJ35`˘ô˘“ĥÜD›#ÏK9H;{RD¤lmÄȰ3,¨x`mà`XV 1ŽÁŻ<Ê1T ²ş™~µ\ävÁ'ĥmdHĦ‚ĝ$ÔQÙy˙}úìÛ|vआKġÖ2ñĵĉ„häï€Ò­ÜğiuŞKÙlşI/:ğ.*1aˆğ}¤ċħ[³`Íoú]NġÑŞŜ)gÏœSŸ<=LİÁ8—á >)#şâŜËÍŻċÛ"MƒHÚwórÂĞ:ĤuíİèâÀkUrNoȐxWĊS,;ƒĠCkİÌ<ŝT™Žš:’G%]ût<Ÿ"T:H_IĞ_nŠt;?ëKzj8íì9%ŭdÄ×SÊúáÜZeÏ.nJ!½!Y:qĴ.n<Ğ~Ġ“½ˆÎ´Üܤ ï\UPjâuÉzÄŬm]”"éô!§Ùsîh8̨DgÄPPĠĞÀT²3¤Sœ‹óİàË"œ˙żż-BHiquH‰Àúb°QŠ?ĜĦÇŝo{àöÓÄ_S—νì´[mW+n§i(U{‹àUñšBœ´Ü4}‡JYòTc:Z…qäpUD’?öó\§”qğl9n„ €˙*B9­“ñŜÈ>ŭeħšW Èî]–Pñ&Û)y˘ŠŞĞ¤ÖVÀ>]{+t”?"Û³ZäTĞğ z3ŝ>݆Kê.6wëĉ&İw§×è "ÀguP(Dz:àŸĤÀĥÀÍz:HÂWÉ?Ŭ$ŜÛ÷˘vÑvšMħżw[Y92”ÎEòşs>BÜäÖGô²Œ8ÖhÂĥÊŻŒ›ŞŻj÷Es"ħ‰ìß­ğ”TÍlIZ([g$¤ÎSb 2c˙ìrLeNEv ~µƒĞ°Ŭd> stream xœĊ›[Û¸€<úWhÈE†Ëûċq7Ù Rt‹ìÌ }Ĝ…ÇÖ̸ġ%ħ4›è˙íßè!)Š”,+ËÎbF˘y=ç;çPÒ§ #’aûW˙ŸŻ'ß]+’=”‰ĤZeŸ'8{;!”kdXĤHÈl=áSDMS²šÜ@-AÑ™˘œ"ÍĦVS DPW g“OâĈÍêóuö-Œ ·IŒuv{?ñs" Ĵ […¨ÙízòkŝsQ=nÓ+A`f˜ĉ7ĊĵZn7Ó+˘ Íßċ|·üèJŝqûçɏ·“_&\ƒ(KĤה$Ók–J™AʤK­KÚµC0§´–/i „‚0KB F i[ë0$ÏâJҖLYȄ# 3pÒĜL1˘Ühfò"^~v—šbÙÈ#f„1ÒuĥPïQ% jĤÓĦsŠ`:ÓÛĠŬéĥ·K.‘’íĊĵŜ³Ş(§WTj‰Êgġ%¨ùn[mĞ/ [¤‘$ßŜ×?Ó´âş(ËÙC¨ft°Ha­–wĊ"֛R `i:Ğ—ċ~sړ&ĥĥğ)7ÉQcĈ#uQ j1™rQ·;… °V‚9"TzQîzı˜5\ä‹Ĥô̈ÄY8DĜxDÒu]³E˘œ!½ßïĥë€KkX…Z:]6 ™½Ŭjh˜o7ïeúŜ¨²‹@Şpi LêTáuğÎ4´}‚`„~ĥÂóïċMĵ|ë‹ï.ÄI2yÇ ÍIK–“0Ynżyŭî]sw?u$Ïx‚YžUuĦžOXUL¸ÌDŝŸŞİ1ˆW§ \¤ÁI–D£P҂Pc I „Z 3ÂëH 1Z“½h4‹—ëVqvš äbšÎÂÑDxœÒ…]UB°àù²hü6cyµ_=&7›Ùşˆ- Y­Z{T†Hçž•ċv„Ĝ¸h ùĵĴë%DžĴˆE„.bÑ ˘°´ż­÷p:ĊƒÄ >’ '„˜2^˘Ï<–>ö‚ĥ‹u“Ò¤Y•:É+ˆÊœ0Áßyf—稔ĦL6„p{ Ì ¸¸yU$žfW|Üeħİf~sÊû÷LŬ-’fŸ“†€.9-N$Ô"ċ¤nw '°  Ëĉġ QâĥȜîĞ.îr/7ħîTgìT/ĈĞ>•Á…UïI}ÈËÚY?c‘bO_0E˜ L÷vÑX²“ݳdHĠ mג}écÇfWL{½ùˤtŜÑħ/ġ–Ì4Ö*iç§Ù(l›¤€èf™˜6*ipní"ßœc}­(Z·;%ŠB(‡9B˘+!Á<ÎzĦ.ğnîüé_2Mµuş]Q=%[-@— İ%. ûxş¨oħÉW˲²wq·m,Ş.†^ĞĊ+¸ÚÁb3…h¨´‘ùÓڕCoXÛ,ê6ĵDQVĊ"t(z£jYm·‘óĠÓ"Ú2,€+Ÿ­2`XXŻÊn˙2ıŭÓŻŭÖg#µVĴ7T7ìu™mÊ –Ha|;:&Ù`°ÓâƒĦúç}^Z!ıœġıà lkpä¸z<¸İ8öÁ ŜġM £^żïíIF܆­Ÿ­cxżÖ}ĥ9hŸ[A-ŽxznJZlPLR) J`)'°Á ܤ İĵ0î{½ÓŞ—7½IkÙğċëċSŻçvt’ šn .ĥı‹‹vL™ñLb<=H“ÏáèŜÊFúˆ£ŬRU‚lU,ħIÑĞ۝‚ž@ܞ„˜:€$´$$ğ½Şë€v†{î2qV˙L2ˆ¤/]8/›ĝĈġûėŒÇ0éqrñx!`èÊù*½żíĵ[nüŻöp¤îÈ÷scnB^\1ßÂ.wıİۚ@ħûµ?`Á ž]Ĵ[ƒ‰!NSˆmğÓ²`(è’ÁhtÈ}½ğżE c'ßuu+xêĊış–qIËñO ZRşŽ6ûiÄm¸‰¸mŜ]ħ›öĜ­aòÈ!9éPZ€µ“ea Hµ’ċşÙ)ı„@Œè%ĊœÎ C2!ĝg­5 p,lŸö†S¸´}ùħ˜/_4ÀMYtŽžNżŠHtIj£Ápş íN‰Ş5ŒĴ™;Òx°XöĈÒbÀ%uëĥ£  Z+ĴÓ.Fı²s&½5½Q*žŜñO*Z‚}LŽ}qX!/ġ·Ü…Ä·³9°ˆX͈ jİĤoĤGÄCĦà˙àóí3cxÁü³f¨Y‘Ghüi`*£ßÍ˙ġ‘ëÄ#÷e am0uCğ=PéĥĴnvzj!$ˆXÖ2.z}ÎSdkŬëÀöˆsu{‰kû½˜Z 9Ġg†6ßS;ŝñEK¤Ïv|­Sğö£²‹ĝżİ‰-îĉ§¸ìô£6!Ĵß ĵ3S'ïİHܒÇïĉìèğ€Ïk°êҘžĝA-’÷ıÛ!ìàfC! ia§µŬ…e‚ÈӂqNµ}/J˜|vçL“‚-š•ò\˘éƒ€ ÖÓzéy$ uïì•ħġŭ”Ĝµ+ş§úıÎìĦ;–ġ%´P™pFƒ–@VwU Sj¤ÉêGQ7Ü Ġ ÈIš•eĝ§‰€`šqeċğP6,£p‹ÌvEö÷lĈa—Ĝ_o1ıŻğV\¨( cŽĜ<…ìsşv‡ŠÛ7.‘„Î ÉŜ3ȍ³YCp bc?֍bw5` L÷$‚ĥìMp ÈŒŸÊüaz%ìY}#féË<ӝgĊC6ÎÄࠚ#Eü AĠtşœ­ûbWTAš„ĠJXĤúŠ£Ò}›X*Zŝñ('Ġż{ n@ iĊzĥ\5}&qfì¨A›Úpn„ ĥĜŒ§lхŒ<`†2˘ lcz!ƒ-üÛc¸qœ¤Lˆ…Ía Z)/ž! H57FDÀk3šżtR| ü ŸĴŭżùË.1°çA™ùË>k‡<r°¸jff˜°ö-:Š€ŠNÄAöá l޲öA.gíDÂP|ÏڋsA7g6voBÑohìɀg1ö¤ż÷ÛMqkyÜ7x&A~Œ<à·èr&)Aš>Ûà8Ŭà™4ö-ĊçÙ{ ÌZ7Ë_6r &;˙š[0s.MŝÛlġTôrFħoë·"Ĥ0CĤ}°EWä–É:q\gهǸ˜e3f§´gĜ!m÷÷´JÏk茂ˆĦ'Ì“îġÙéSM)Òòv~¸E:¨’Q;ïeçœnçOƒĊq†Ğ ½CJDÛĴ)ƒ´GE•ÍŜĝ€EnÑ.S’‡hÒÚ=Ö<ʤı˜IS¸LîÙ´M/È{VžvŬ×RŠ÷/úŠ5`ÈŻıî Ç†Ĵá`‹Â *@óĥ5@šĝUk8<Àk€Ì˜„ƒü‹Yĝ<™Ĥ¸Wq¸1ÙĠHJp .ĠudAVĴ…³5ûò¸ûİ{~OEŝ9œN:%Ga Ëäŭ ,”ĝtÛvċòìŽ(´s&ÎĤĝ\çâi?P…ÙË:_×îY3ÁÄäóôk/{2 ż‘ö×^ŝ5žà_­Kj&oÎÛR‹żŝÈËÖáùŬ—0ˆŒ§<ö&Q!Ĝ%µ¨ÏÔnx =1bÀnÑá™Ĝ"ŬĊ1!î˙30ĈéHaÏÄ·‹Ĝé€IȆ” ‡ÁÔ`X8\jìS³FòÁ<İ&öÔí}mU´çŝ!}£8A‡(÷°âxWx¸E‰Ĥ0ÏŜ 0‚pnBt\acœŜġ=#)ѝÇÀ”q[UŸñj†gĵc&dÀx·èh@S Ëížmĵcܜ™˙ "È8Œ=:Ï?dA†aÒêñC×]xs¨ö‰Äö@‚ħëÄ2µ!iŸ6¸àbQĴîÜ!­Ò"*ŞŞX½ §É$˙iʝ8í§îIlr6˙Û6GìRĝ—··Á7Ġöß7yĉ ×Ôj-żvïßŝ䏧óż-6v0 Öz$Ló˙†˜ˆÓysaċbÙOĊŬîÉ~,jçÂXŭġ°Zċê•ïv8tĠµ×0\8ĊNŞh$” _*$PğĤÔ~¤˙Ëä˙“´›endstream endobj 194 0 obj << /Filter /FlateDecode /Length 2619 >> stream xœÍ[[oÛÈ~7ò#·ÀRm4™û%h€v‹´ğE·Í&úí-Ñĥ6ş8UoŠŝßŝ~CrċDÙħD´ñƒ(qĉœ3gÎùÎe&Ÿ#JXDŭ_ġ9]^ĵzo˘ÛÍĊç %1*2L3˘u¤¨PDñˆYI¤Q–F˙ˆV”8GıÑí.n.~}İN¸’˜ a~‚¤D1LpD*8HâĴ02z/˙óĝ| ‰>_°buQġ1]Fß^AĦ"Gœ6ÜFW7ċÒY¤,MÈ‘LFWˋñŻFcF—éf“ÜĤ£ħâÈĊ뛨üË}ñB*DüMÍ×Ù_Ż’Eġ›ħq’Ŭn—é*߄ŸXœŻĞg‡çğ4|ÑXt~·žùïŽPz‹Ċú!L´:žÍ³tš/„_Ĵ<ŻEèÒ{Q² GK†çßJÙAÂ$Ż™N×ĞMžm§~aáW™/SRèìívgZ;î­cg%Ϝj˜Ż‘šşÚ|û'ĉ[›-RìjlaF2[ bŽĠĤ{„LJ‚ÇsÌVEÜfwLptġsİJ,ĴY8ĵ”Qê{ÚJè˙ԇéÈÇl’Ž‘/9˙<ĉvf_Tœ8"ĤS_…D›Ê8K“"ğ·UĤOŒÇ54ZĊtlûžŠ,‚)˘i9¨ [ŒjQB]U‘ù¸WZÌ7u‰²Ŭ¤á ç­ê$\Ö I˜Îö+†›l½Ĵç5FX¤66) cZÔçĞ$ûÒ*9ViQp*1$>}ŻmŒyoÑŭÁĥBÇèQÇZĈ>ĠSbíƒĊZĊ$2ŜŭP›'Y^çĵ×_jżĜ¤Ŝ ĉ˙**ĈҴ߇05ìj—Ï.ê…k*èĝ*‹7&@†L`DM3Á`OşEq/ú“wwëUú·íò:͆‰sĦ”ÈF¤´ZÌ ĉŠ\D6Ǘßŭŭ‡·'5UÁÔ$:l~ÒÛŞĜ¨şû3T‚T1½ÊËß 1‰édDïB“x™!ŒıÖÁ23˜.`§ y#>ċ~EŞ,D$Ò–Bċéòŝf8%>Ĝ$;iĉCCÔZTĵ,¸nž´Ĝĵe˘I÷#VQAËjsĴFaeí rHÉIaħZ?ÔEZûş\'ÓOġ·˘{ž1jH\-+Á–µ`0Ĝ:ıëÇŜĤÚÎP†q ÓĤ)Ġ@e‡…KÊZœBR÷\ŒUœÁ[$'q ê6ÈLµ-šùñ4ÉOX€‘ŝTÀĥ(žÜ;<,<ÒP-m[ĝdCĤwI–LsĜĠ n_´TygËÉèP9'´‡îşg&€àŸ½ċ\˙„Nf‹Hë&ž@˘¤ı{Ĵœ;B˙ùċœ°@B'Úċ\“_ïÊıN ô޽ g½¸úM=ÓgAŻë|×ç&ŠÁj²ú€ûʚ9—èŸU-‡.a‡u‡aßTm·j8Âġ Úö†ôQá[Ĝ|OĊ+[KïïÖr4˙.+Ş÷"éùÑNpƒϜíšFğ&Ğ3£]{=hǍ2pŽ6¸@½h×?Ħ’¨)ĥÑNˆÇîŭçğ#wŜÍh÷XgJĠ)Ùәú‡?~˙}ġ ~:Ò˘b t˜ÏİmQ…A5ƒŭ>•„—ûċŬŞÊÓ_òú„ğn\ Ŝh\éĉŒÚgvo˙™NM#ĈhħA‡Xŝ ;­íÌAÎöǢŝ ]§BS_íŝÈ>éŒüÁ:X\pbí×t°nÓUš%yĠÀ’ĊˆV1Rq(T²ô>K7é*OÊë ċŜêï`îœ çĜGV5ÀJË 2Öŭ˘˜k\“ġـ½:]o’(<1L™êĞ{xHQ ´-|'‡¨˙ä[½˜ùìMc1ĝ µê×Sw’0×ŜvJÍŸ—Ü´è £áωQ´69YĤ ͜ħ'€ŠTµ×uù6˒/'ġàŒ¸m³Ş2ħ@fHm5áJĜ˃˜FÚ_/sœxċöĤA½;Áz°ú8Ó@éħ,¨Ÿüó“ f´Gövô‘ŭTcâßŭ×uOv2İ6“Éj>{]ŸÚ1üpy 2.U󆢯Ę0ŭqµBW•\Šĉ•IA œáI·0Ž,2HkÌ~™ÚŞŻÁ׊˘Éf:Ÿ×¸/ŠÎW(ş9Q=rï~ïœ! _˙Œt‰œ#Ŝú&ħ ·H—›ÛV¸íkžıaîm4dĝŜF“S+Ċ~n¨ZžMş“·J\Û+3€ÄÉCe†:PfäëyVŬW5Uó¸Yet„˘¨âxUÔsŝ~ġ¸[-ŻÉî—É*2Nó$ĵò>ı˜{P(: 2u³ĞŽ\òû.[9ĝfğŞÎ´)R@óê1‚‰µ~z£> GÏw„ ƒJff â—{\§Ü_âĉO“Ÿú‰`ÀĦTd9tmŞĵöRÜlĥúĴ.[VâWĠĈ;🈗£ly'ÙÏfíÙ³t3Íĉ÷yQxÔE1žž/Èĉĥ3ñzë/k”ĴL|Èĝïût:QԌžˆfD|ƒ¨oĥh‹ó>Ż6EÇ2&÷Ùv²Ż,! ĠáڊǰÍ4ò.E½Ê°Íšî›/c Úıb4³ĠXÙË&|wÇßÍÌÈù”¨òr´İ…51"r<¤Dœš /ïòü~óúĠˆùĜ£xüjšĉ%”÷’AQcċ\ݳÛW÷ÉtċPĊOÀô7ïßy½|ğ½y˜Nê"Vĥd{;›‹ëò)gİŠ·iž§‹—‚˙i$}4‚¤Ì̋üŸuéò†÷ôW³ê‹rñ‡|ŭİ f¸ŽS ÄNŜWï9÷˙UâNj˙›†Ŭ·endstream endobj 195 0 obj << /Filter /FlateDecode /Length 1157 >> stream xœíXËrÛ6Ŭó+0Ó, N„àŭ·Ï8}$İ[Ó,â,h VÔJ˘MQÓzZo#)R4¤ĝ9i;ĥ¨ûĈ½ç€ş@”0Dġ9œ%/Ž /’‹D1GĴ5ÈP)‰RHQĦˆHPF”AıGïÑ<ĦÄİİC/+$gÉ;°/uíÀáTç„j—”(òÔ]íAg…‘èÁĤcè‡ĝ:_˘şHX™!Ş>†3´?€(„BŽ8m¸Eƒ³d•>CJ.˜F† ˘)|5K>à‘_ {}Ċ!§wŭz­qħ,²|’NÉ[Ÿ/²yïàçä`<Ĉµ*Ë… aĦ¸bÛ³;cbŒhYĈ„‡iÑüVùşu–žA6,žĴÒ\%–Q% Ä-4e·ÜiBÜôóĴċâájÄàÜ7žŠì¸È'óñ= Ċ¤ ÌşNĦNz'½µÑfP¤S°hz‘9‰­Iq”~|rTšAX4#‚°çħ1Ş5;—î2Ú2Â5[ÍĈ7½>ô Ċ3żX¤c_˘ÚrüW9PFÀb:|[*sê\żĤ˙)›û_–³SŸ‡gŠP+#•Ĥ`²ÔÌŭĊr’ûQ-ĉbuìkßóµ™Ġŝûzé0ۋ™Ì΋I6O§IҙtRĈ7¸<÷• u¸¨vÁ²l;áÍòȟËiQ[ĥmıß|Ük ĊY¤PW­BòÈ÷²mÀj#Ì&.^Ä7‡û?½>ˆ”Èb-Qˆ5’ĴŬRÑ÷‡GŻ˘â|C<’$3‘$opĉé,vëĝVT7²=™b}†OF |1“ë­ÔÔÏÒÉ´ħŜ²(˘sîÓ˘_ĵ97†‡j|FûSFŭĝ? ?_@‹şw x”6½UdM˜s{[ÎĴ„‡Ğ†[€İ•í:1"ĜqµĜÑL­Q-ĵÔD6—–WŠ>މÙ% ²q왽mñ? ċE˜bĠCP.œ `}'ƒp7ÙBğ\à#w ÚŬÑé"´%öÖĴğŝŬYWÂ%YÀú˙°îuĴĝ—p”˘`ùŸdŬğß2îOÀOĴû•X—s xĠ€“ħ(nénUè˘%‡o ›ÖpiËӍ8wğ‹Ç˘\.0z@Êm[|dÊmğJdĝ)ÍÓamwÚ†ÀKf'‹N‹oa` íǕmŽOÁÛ*µ;xğF§§ÁާĵĈ/r\ë͚cÀċÄ4QG$‹<ݵĤ÷àiN%ħĈ<ñôO?,OG_„Żnŭ2ûuyM" (F ÓӇK­ÌĦ>àœDƒÌÍÁhä§§=]gĴÂK_~ú˘€ ¸3 żìÉrô-Î{ŒÊNç˙d“E%˘~To>.²ßWÖ¤Â~zÙëKËÄࣷyVdû˳ lñŻ“ñ<8ƒıe‚C~ĝï:nڎ[Ş0ĝe¸/ŭiLó0ì„ ˆê²vm°y²Ì)§Ñôh-Ùʸ|íz³yNTÌ­!ĝĊçá·ôwÉg'gendstream endobj 196 0 obj << /Filter /FlateDecode /Length 2066 >> stream xœĊYÙn#ÇòHĝ#È*£RíKżĥI0 ȃ'”Ĝ’è!ÙvӎûWò{ùœŞŜŞ[lRË8Ô]]wİ[÷ž{Šġ)c”g,ü5˙o6³‹÷6ğ+gŸfÚ(jufœäTıL3İİ™ĉ–r³]žŭ#ÛÎġž ݲğÓ³ÛÙßĦ_™Ö€ B+-PŒjO´­E½“Ve?ÂÔ˙ݵcr˜—mĈ†×`Œ {`¤ZÏ.á ƒ×Ÿf"„ƒKDÏÔRhdŒ\Ŭga=jÈ˘¤ëUY…‡5Y²ÉĞûbI[ċ›³qŻ(şÙ/%Rıa F}ĜݍĝêûÉ-ĉY3iÍGħIcq´.üñ3ĝ­ĵ°‡Ġ~˘)l´E˙¸]lò85È Ò.8|䤸m”XNŞ:4ĝ`=ù"_/ß6RL‘|ğßĵm§z²Ĝ.›İ0ÍËŞ³ÀÁ˜Iˆ1 ĥxÉT‡-ÜIÊħı°Ċ@™ç=ħqmĵ7 Ér“jTğ!ıbXu¨eÊÒ0ΐíĤŠğƒY,-E ILpR–0!<şñ …ŜÀ’B½(9°”ÔKmïÙ@ËCá[1ú|˜w*ğä‘Xí· £İġÓŭirŝ(u0Oc'şÔ!ƒíÉĥ4­ŝċY£½ ÊÚnġM€‹¤cĝ„¤ĝ:ìí^PŠ·+@GÓ&€*gAáYó.eDœÚĞŸ’r6JŬ³è Ÿ x³Z>jÏrJ rĥZv.ıgğT76"½›ˆÔ›ş)żÚ×Z £ÌIá˜$Żüq0ë.>ZĠĞÜ­5~wÒòĜó””<;Ĉ­ġ:'ÇÖSÂ3¸8ċ*¨yMB_Müè”ĥAIùqUŬ÷’=ÍúaħŜ£ĠN!ĊA„@LÑsz"ä†DĵGX˙š—ċb°ċä.¸pݝÄġ)rÔAĴÄp&-ÀN=…yè"Gwù9jı‘ qXKɑĊL›’#ùí˘ù _mĉ'ˆoMˆ vÊÖIRŻö°çÒA‹z~Wwëœ>ìŠŞ¸ŜßÒŻğx†ŽŻGkĴGہBx™1=’FĵuKšm …ġġˆYyIİ= ñ8ÔX9͎ĤĈ-NÂI›°#oàŞ| ;:bċ}N*°3ŝwì(5ĝë²£ÔÒ d^ʏÒRşŜ ~„ %„„;E•9ĈĤĉ“UI]ÂĴ=rç4=šÔŝŠ´ag{7¤G^Ô |°£5X~Z„g|„şGĝĜZÛ32Nùe^:÷¸—ĥ‡{?€{)5†üf'(Q y àħĦËN r$˘M“#'U KEnW'bb2µ”İ|ó˘>ĉwĞü‡<½˜ê\ ß­%_Ĵóĉ‹ƒĈ܎E蓝JΛ!‚ ˆz.uh/œ\ĉ^‰ş ?Ġüğ\ä×H¸”c…>ħvRgB b‡~)ŸTċ>3j!ÂXpÍÈJê"ÈĤĜµ Ċ†#;>na]íO'dq]ìĞV mü”Ĉĥ<Ôx„°àÒ+j—jÔôd™a‡é/:ÌP­ŭSÏ/GĦiÓ8Dç}2I9ĝ'•LŝŠ} 8ì°*µô¸_ÚĴg>\Ċá^ĦP; Ğ@IÉ#ÍjZ`”q˜ˆZ Ġ&ˆSŬêˆú—'4µÌÛUˆuŸt'O#‹›Iw]jĥ§‡/–ËşàuQ|Ĵ›Bŝ¸Êı†cĈ˜œòiqÌ5Œû½> stream xœ½ZێÛFöQÈGÙn™Nß/ûÀY`^{’}°ƒ`<kW˘&şìÂ@ŝw#§›¤Ĝ¤HZ”f~°(uWUWŸ:uş9żgŒòŒ…Ġ˙·ĞÙwomö°ŭ>ÓÜSçlf™ĥÔİL3İİ–™pŽ o³Mžŭ++fŒzĞ óÙ 3f÷³ƒ2µ K×a‚ĤRc‚bTóLxI…=¸PÔ;iUö?830êyö÷Sœ½ƒ3Ĝ3L+‹%J͘wĝÀ8‹Ÿ6ˆÇġgĠ·ĞìûkD¨mĉİ7V¸ìú~V&‡gZQ!ıÉĴÔ0ü´š½'_i½#ÛĊêq™×ς7Ğ|ŝëġ?fŻŻC(Ù°?,~ÌçÔ¨èìöğġfq³¤oòÍv]ÌŻ˙]Y§Ž× 5X!>Œ-ğ>‡\ j…n9ü&qÁ…wN… û€Zĝ˜íéž,ġÈrê)Ĥëàlrĥ¸v@„o™ü@>Ì&L+ħ†f¸u”U ¤=R%œŬ 1YjùÉÜIŠôÙêÄĉßEóç€ĈĜ})ÁÈ{ŝk OM.!ôuÑ$CĜWŠ$ž^ġ3ş9aû³Ş}ÄɳUğQ–2+Ş=ÂġÌEqğÜß-Їê+çÉövŭĝ$ġo°XÎĊËĠêyë?ġô$ġïZ&? £peĴñÔĠ{rż_.k<(ò·dÏCeżkÁ"w¤‹ĵ~ûóë ò&ĝÒñvŜúXS{,ۙMéÚžÑá ÀíTŜħq2„˘üqvаdP@­šzÁ™vŻÀTxٕ00²ë;Ô#ËĈ°‘Lrŭ ,"-8†krğ.vsN %È͢ŸüĥûüXœĴòŬ§ġ­= ĴD¤",j€‚S5CblVL>Ċê„—”…­HĤ„pÒ(âô!ŸÂkʰ ‰÷U¸Ùġ֓MÛ,ò˙ĉÛĈsAv1ş”Lwùöv³xDzĞÌVß}ŒÜżĥ=i•o·7y=&?WÄ{Ĝ[Nmę‘4t”[³şù•rĵñ°ğĜÖO6†s÷žöuK-•AòzNZĈp·žÑ­ İ 6›Â†*}Z³ñq~uhĊİc/Ĝ‹R‡ÏۋRO=È?—^yĜħ–ñUŠ}2XM³_ù³~Œ_gtQĤ¤A‘A‰ùe~ĥ‚˜£Ĉˆ6żŝôó?öU–2`é&T֌NN0PPç;Ġ›”£Òqr~b”5´Ô™/SY‰żo.Ñ]Uù$ĉŜ|ZùOûĠÇ|óÄĦ#í?ġ‡ŝ„œPÉĴÄÏ2‚ġT(™`%MÀU3§hGaxFŭrÙ'”€CÙú[”0âàä+ƒjQB*Ê#•#÷‡´âRiž/%yĠİ™W_eÌe˘ÊDW•ÀùKĵûív½‡4W6ú“aÓ¨bÁô êr1kċ˜ûEáXbs‘$YŽmU@-Ee‹38ŠŜ˘,êGGÖ÷Ġ\ĉÉWğmEŭÙ´„>B²_I§é¤a8 ˆĞşžÑ,**ĥ0Ċil=â|ÌJt@-/F×İçBݧ6Ïío§–8GÔ˘pʞхĈI̸ݧÌûÀôk9eŞİ§J9Â_sá6Â\Ĝ$Ğ%?…ıdJ]=¤vuúaÒÚoŠeÉ6eÌg_29€·GoóÛĊWùÁş´V›ĉOÁj %ÈäÈ}ñĞ ÎèBk£ZÉcVöq,e^’Ġ‡ÏÌj‰§lÏċ³ê0µ™Ŝ5†au–θ]ôTİq~I°VQíÚ è^a< $&ÈÍᜋp`2r²Üqp>È2'ÊÍ3•ŜäU¸~U=Û(Ğʑĉ Lu֜'LEÂëêˆ×e¸-$EŬċwñ4r§ÒEž!yT}ÈA ĦBáDnŭI·„"}{ÊqÇŭ ñ*9Z¤&’ğšL„ÀZÑÄJÊżZŬhÚ£Ĥ żı*˜ò1^"ރS6ƒ8R×Í Úl÷‰ôŞŝ^ ¸ĞŜz!1<£[#A— qօĈ“ êöĉo$R‡ÏÛ RO½ĝ=ûe ÄÛ+şÜád—^Ï~ñ-ôŒ’$KµŸ*tGìŸ˘€DgĊˆċS…>"Dc›ÚŻ^˜c"‡ŸF…-A˜²ħ;ĞOĦÂpĤNµĤ¤Œ’ ñbM:9UÉam*!A#+Vş—E*kİä0Äx_?0ĈÛ£•5DYM­²†óZ4‡Ïh>ôÈĞŜw+\cs¸*—Rò(ĥzy”#ÛÔLáÑá]ô íKÍ0ŭÉˆ“ J@JşäÑÔáóòhêİŝ Ż RËO&­ĞkŬÔö%ÊZ0°| €4Ö>÷áςX÷ÖTŽpŭŒÚ=:àş£Ĵ{ÑŜ"û =°2÷Oz‘K“· Ó/uÍÀH^Ìyĝ–[²_µ5t¸(qWĵÊÂò”+Ŝĵh{9nŽ$ŻĈO½1i_òšä’×D×ÍŬH­‡ÏżAÜ*3–ñ²Ż u@Ò€¤pÈ,úî._~œó]Í}ÛċËoë{(N~˜ĞˆMG6q'¸&7Ċ˙×e6†pSÔ÷V†“wğġJkJ“|ùy~œ5@ŜÙĴwëï÷q͎ü²x(‚3 /!ä:n–Ĉ­tĜ,^'ü‡üf³ ˜ 0täsíÛûmi&֛tscT}söGµ½-wŽjë|=D4´óŬ[hŝ‡->ŭ ‘-endstream endobj 198 0 obj << /Filter /FlateDecode /Length 4044 >> stream xœĊ\[·ò¸È5ÙñN:ÈKb'EÑ´‰½Eâ jgw•h%Y—8A›żÒż×żÑC/£‘VÖJ)üàYyÈsÎÇsRoUI•ŭç˙?\<{wĞ‹·BòR‰"‚—R DĊD)è€RrĊËzÏÁì˘*â²2ƒğÇ\Ü^| ú\ĥ’ n’H àU)Ȓ ĠÎÀK£™âƒw˜K‚¨!ƒŻ˜ë5ĉް޷¤ápà˙? >żÂ*˜˜ÒHEġàêöÂħOB—ŠHĴ‰RĊЇ‹b½Yϗ“Ñ´üĤ^ĉ³áĠ/Ż,ġR“Jpé1Y‘ ƒċî ‰î›0URˆ/£d BÖ SPSw<j¨QGÌÄiÉ9ËfŞg›‡Öż.êĈóÍlç}oÁQ $àUJŭMñfH@I.ZG)]#@™Š2µ{@¨$t„*L’f%dу#PŭêòŻòÇàGj1ˆáğâK*#ß/ĊBŒ(ÈûĞżXeɁ* %µt.Ħ#cŸ/İ*+ĴîêhiJ˘J ޲˘²¸şŻ‡èĦˊC‡Cb[‰*ĵ2ŭ+bЇz}?ż)Ûİ(–,¤V͊)€,;ECšÚbKc;Ié;´¸9nJ%ÁpċVì&ĥ 1ÍB–ġz³œ­ÜÊ ‡bŬr`Œ,nêĠx9Y`›ùÔ·îہä½W‹z<ù°ÔU³°ĝWí=™ù7•™Iğ)ÒY ħ°c…“TŻĴ2$‡ÀŬşxe•* 9Ĉí™  e´ì÷3zé„ç5zéLŒ4wDúLgtß AëS½¤ö,zq+’'OħÍÖjTı~û,³0Š`CGPiŜAzÇ2ïAş0;P%–Ùéì1Óĵ‡ŝP^¤‘™ĉÔ5ZkgZsíLŒ lâßÜÏgġUch [) Ĵĝ£ï.‹w“ġ};–Ĵ}4ĊÏ£éĤ^E+ƒÁ†Sր)*„ğÔâÜàO]ꊞq(KÚH[1°J‡­*xn C‹/'ġÔZNíìrjíÊİ.Vż%VpĜrw£ŬÂ’6Prĥ çħàá¨Šñt´Zy§„íx0o”öŝĤY닸ÂmŻ#áà++3çu–ġbYŻêÙÚZyMû˙Ħç3W:÷4M›÷Í3+^•ħŭÊy `ŞT1iijYŒü£"Ċğċhħ¨—í|¤xͳÓ,FKX7- çÑĵúÑÚêRğ얽›ÏïĤġóç‹ċ|=żŜÜ>ŝ¸€µPf÷’J)~áFPŠ1…â¤éÇX2t"c_!KaĴ;pŬŽ!C&­ Iq54nŒ§ġRÜ3# žfmû€ƒF,3™xôAr7AĝÓLŜßy°\×MÌ@ 6Ġ"…rš· ?œı˜„4х_lÏG•Í ëçnWí%‡1҄ .‰ħjbĊV­($öEXV˜U— k5LÉRÒÁ×°†6ĝġ-SVb•g°Ujƒ^Ħ…ĦŠíµÇ4öZĉÑlš†áÖÈ'ÜĠtnpbc×°/'5H°8RÂ4Ĉ…„–d!)Şàryʔoɘ"NĤLQİJ½—'›Âñµ,ĥV iĴ-vl-†ˆZ8ܙ)ĉñqÒ<"=‘Ċ,ĥc—ĦŻßn<(‡Ie„µÛíċ/ëĈöÀ+QxĴÙhêcZ,ĉ“™{ݐ_]Ĵçá]ÄcΙC ›ÀS˙2şa@ßWÇÖil½‰­/âc;Ĵbë8>.c‡DF ëU璴Bjšçħó^!añJöĊÇ{ÎÁúÏC뉳‚Ğ`¨'£ë!µAeĊ´îA`@MÄd@M ‘6:Hè[2Vˆ‰OH¤µÇ PP„Eĥüaà-|H“l:JiZ{d‡È\ÁyÑ­&‹iŬbˆ`!ğTĊü6CTñÖċnË00žH50„wް?˘oI…ȍ°{/be=&?jCˆÈ- ‘Rré„x%·‰Óô]ëñqKöM߇}Ŝ·ı!{ °ŝíf:ŭĠË^Éâíf4|à\ŒÛÑOÑF”`ÔO”`Ğ ôb6^Úh[2mhíš: ôŞ é'@škĴ^j§ÄPŝGAú0Ħ=ÔĞĠèNĴgĴĞàġğûz™Ü’wKÔĠ\Ż›ÎyY÷)#0QO`P†ĥI\Ûòˆ?NêK1E6„ÀòÇÄôWCmħxŻCMiX…-A!Ñi"Ħ‰Çâ”ƒ_µ’–ĜQÄf °Ŭóe.9Ż2”Ĉ¨J:80^2ĥ?ÈC mFéµÜDáJĠ´³†”£‘<ĦàÎ ál6:´8É#sĉĠ…Ħ…é&#="‚#A Ëm4ŜšmµL[EĊŞ;ımc;Ÿĥ ‰MK¤lÇIț8K–Z’e–m âÁĉYö-y/X%³^%Œ ì*– † ›ġNQ‰5äÀ;³Äƒ­âcٍ%šÖû^Ç#…´5ĥn‚ ­Ò­0Ĵ5)ĊS°E´IÙsıùa•~š0*ÉD6Gdcw/Z‹Ñ8‹C‚=òS)œYùî-dġĤXy?j ?z ğ§+Š$&ZĊXğ›WLûŬ÷­k]ĈǤuÜѲkmjsx¨à­â¸ŝ¸KŠ•#İŒ@ĉ çādı&…¸w\D)M(W˜}Ĉë0(í°êÚĊÄ;ÑÓéž,ŜĦ=í™@šŻJ.ŭ%‹³ˆŜ1Â6áƒWm ü-žĊĝŻóHSÊ>µŞŽjíÂ!Sv‰òÛqG(iÇµ‘7ô¨´î„ZŒĞpZä'bÊÙШElT‹Y\ŭÙNûĤ׆qc×~U%v•Ÿİúj3ĝTùGeH>)Á°`›öt“ÏÄ=M{÷ù‹ŜÒVħeÛóĊÂÛáDóbË ‘™vÈ'@V*È‘ġÁ´~‘bÑĠñv[é^šÖíÉ÷>˜Ġ7}0 ʁGs˜I´É4bjÇ3( )$“’+ô*{Öñ[&§?bÚjmï’Ĝ:)“lċóêw~ùwˆ“'@\*Ó7ž# ›Ì&³ğCÌŜuáׇħ€ž.ê2Œ ´™4diÇŸż1d¸B{=éÚ¤¤bÖ5eżìİŒwKçЏc[8>„"{BêJEĥBW݆PeEhñ—“}Èè5L£6ĝ× âm>Àˆ]ÏVH úÀ`҅W&.dÉh &!äQÁŻ­‘(Ô¤l+ŝI*²Iüs½çkÊ`×ĉ`pàçǽ0HùŭŞ^·*ëC1CëQbGÜq0bdħy¸—‡…L}JêL`—C)RûAOz„ ÄQ…ߪ7Âİל@½)gğĠ›WšßWiA#]5fz³<£S½5ŽÛĴ(¸Óz+´Xôêm_0p~C ‚§+ö•¸êJNĊ°[ÉÙ7ɧi<è2Ç@g§ĦÊ´NÛ;f£BRÖÏcĞ(ê?{'Ÿ’Pñş×ÏOÏϸ ŻÏ”V3.wës:ş§áUE-óÇoŠySĊM? –ġÛ͆ŭ“6ìÙ·’e½¨GëúĉͰ­‚ğ¸ÈPPĦ“Ì`à†íiĞD´’ĜÑŜ²×GoŝŬj}Ĉhïĉ\@ЍtÀ“B…4™Bv\öé°B D ċ“°òĥv³Ïċ„'•93AŭXqv§+9zò4’jDì4M#ÛqO‹Ö&‡Ĥ‘ó^k’ĜIoßĴ¨Ár.•äÁr‚Zj&¨óƒu[}` 0èÂ'‹B/™VÊÛqG€…A°L ì:µ^ş˙;pRM‚Ï›^#sÛë…ĥu1öƒĞ¤J*ì9³E$5ÜMßÌ'†[”Š‡Û Ĵ™¨Ï·ûQŒ²²/’·CjÜ!ġÑfş}’3}Ӎ˙– ÷!4`Ż‹Ù ĦҞ`O ünÜq~¤GJƒ&ÄĤŭ'úSĦ‹ĉ} óÄ"BφşÈİGŬ ŠĴ™ĝ,²ž/ 9‚òtÚ^Û(i+µŽŻ˘RK€ĝŞrïÂÔ˘m}âġĠ÷¸zWêŬßY ñ$‘=’”Q3™’Gúí4XY=ġ`r;rĝ .2˜qôY”ċǘÀ4>xH°µUmídŭ˙~Íñ Š‹÷ :A6“ȁ ŞgCĜ›šëÓ ”–ĉĦş Q+]Œ‡ü¨­ žòk[Ž9QJIP@H&•:Dİ~ŸÉ}7ú=ϔrıœċLéÖ5n3Žċ.ı(•bĵ½ÇmAş÷hUŽÑ­ûÑ2=½ÄŝĞܲĴc]ċĥ“…9zîĠ‰’KnuuosßM~]î¤ĉîr_oîÚ¤X­—ŝ+§êôiŻc›|܇!´×ĵ›M$%î§#Òğûd÷ŬìŬ:7V‰„À¤:à·şW³÷LñúÄ·›Û+­DZ‹ÑĜÁñè)żâ xÉíG˜„`zĞù„K$ŒN:S“Ç^Ín|Ӝ‡³^g§Ĝ˜-ñ£'0`/jòФäšëĈkç½ö]Ŭ6 Ş&€N0UÚĞ$;ŻnïÙ†Ú‹ñ×YÄk]ç#W·÷?ŝêĥ½ ĞÎŻj„ËŬħNeċ/lŝĞ1á˘ä_/ŝÔP Us/:”ÀÚ&.G•³@ÑŭŭYĵÔM>m¨wHĥ…’H²ì °Ln‘7}ĴMôı[³É$4>~‡ÌĈ%4޲Nûŭùï_żüŝÓÈ.a ğÀ~{Ż_ħ‡”wxĴġüu°îŞı%Ÿ;ݎ2+SjÚzİ0ĥç§Dx) ‡†Ov¨6<²?9ŒÚWKßĴöĝ^eôzöD¸tR†ÀîîÊŜ[µR²YĊ—€µl.³˘+/OûfùmçŝwbsŜ#öÔÚ½@Jiža­|˜uż^/Vϟ=ğ³ß ~v4+——K¸ÒĊrŝc=^—óċŬ³ĊhÜÜs„ž‹Ÿ°i>{Ġœ‡ŭ|s{à•˙Ŝ%q„ Rf+zysSOŻ›@IW˘ĜÔëut!šùrÈ­ċöDws\Áêöżó K…żÛĞn_Żç?5Ô0XOË}öŠRû{Rß^ü’A™endstream endobj 199 0 obj << /Filter /FlateDecode /Length 2332 >> stream xœĊZێÇòHĝ#ŽħŬ÷‹ ?D*q ;ҊNhKı´¸äŠĈì|o~#§çÂér¸\^ìΰğŞşĞërŞz>F”°ˆúżâ˙óĠµ‰&ĞÎǎbŽXk"”$ZEŠ E”ˆ˜cD-“èŸÑĵC‰3RSM èŒ;Ż!AêR„!Â)OÀ Ó ”(M¤2IœFFż@˜SǢż"ì „agÜY+°Eî(hñ ¸Ü'XËĥ˙†÷Ñó>ÈläˆÓ†Û¨?îäşaqeÎ!C÷x8HğŭŸ;W}/+jç(Ô.Žż Êjoât.–ÓÁŒĵJ–ĞĊœĵş[̓×÷·É²’E,£JlGhÊ(ž!ÎĵžkÒż$œOsœ3˘Á*””.Ŝ¤Ëé|r‚ú¸D56pßtoşĤ•kİ,ħ|c(JBy`ĈŽr!3n%ÈĴ¸²^ÌÓDġ*É v—ġXn;˙7˙§h˘4Mm Ñ<ÓÄÛĝŬl„Ĉ÷Éj5˜$ŬžâXŒ‹C{Âo Ruük÷]˙oĈÀ›‰¨˙²Ó˙SĈSç<Ñ2ù¸ž.“QIáâU~|WÏ7ó÷oËG³o2î –‹‡tş˜fK²ÓôûŸ’buqZĵyÎ2ÂĞÇ·£dX˘ŜĉĵŭÁùċpr£ÊÎÌX,\Ç ĥ]Ĉ|t0q~>°˘ĴD7ҏٓ[ aóa쨤Ĝ.ĝ˘pr ̲Ĝ]wÓóf%&818­Pà'd †¸ê ¸ßttĉ5K ×mk>c*e 'ĞêÚİyôħı”fé)dëSéŽDŞ$ĉVY—• @Ĝ̤íM›—È_ĥJ>”H%M{œ`Hëˆûsİ"ù£ndĤ/ŠV=ĜSŒ‹ĝË"Y ˙2Mï*F²J]cÏbU ­’tgLbÒç˜'@övŠĉ yoRĵ•4;,*µ ıTWžÌ‰3BġM|7 Ċ5QƒŜ –ƒaÇÇÂÚ..ÎsìÏk"O çœk☪ñ;w8çP“°mK>ga„ZÁíúQŸ!šg¸Ï5ÎÙWF;Cş”²*E$#Bı=!½˘00*¨ŽP, ŭhHß#àĝîÓ c²Òçƒûäë2ĤŠĝóéèó 8pÍâ /s6(;‚Ò&›1Ü&³ŻĞBèċŸŸ_½|}ġú§ïŻŻÛšîÓF ż˙ŻWWïż˙ħ/ĝcU9\ı*BäV@KeĥÁⅪ}µ1SŜcÀ´µ´°KŠbRĈ{rs€Š_hĵ²lÈà6sĊóêċ6€ŜëURN<öù1aÒXN“'%fguÌ^îÑévh˙ògñfYVr¸€n_ĴlĥĉËĜù”6ıÚB¨0[gxü‡Y4\{ŝbÇ£ˆûâaJA£Ò-Ô!}qßí˘²F1žÖÖ°ż7uW£@ÖĜ *@VĜ ÈA`ĵıĦLċ 7 1nĈCàĠżP6KJ†:ěß2Ĝ[İSĉ°×K¤ĵ$íċUNi Œ˜Ì,‘e´)J¤30dğ‘1§Nĉí CÛßíM˙ Žû3Ş÷żwö·rċ!—ê4ùğT-e‹)ĠáBÒħóK·kŠhŠ<İ]ï˜ĞñkÁÌÈ˘*O  öu!Ú)Ĉ„‰ Á(0&×úxcy€ƒ-³ŒèfÂÛLmCïÎA•Ç›Lx ?}h1ŠêÊó&ŒFËdµş],>ämh¨}‡3()ÌÚĊíM½ Ğ´Ñ1—X{„œ {İáêö÷ğĊ ž+äwİ[Ĵ–5_à+”tĥ¨YvˆCĉ-wYŒJNÔS"NAÓ½ÁSöô€ÓÊ˙›GH—Îŝ˙âÍc=Ì"ê-ˆhT`âábžĤsԙïó‹ĥl`/Fdŝĥİ08(c@ŠNôċ„σP4W° p ÂU(1@ˆ€ú”Ù!Z˙ ˆÊ˘Ÿm7mP?âDŽ ’"ú_ ¤èy,ꠏSc)¤˜ŒÁ6w™ğ` ñh—ë.ô]ôPÓğAZĵY*eUvU-Ĉ§ċ›6Û=VoÎJF…7ġŬŞqGĝnÍĉË£ĞÑ(™Ŭv™˙në^'išÌžyĥ&ûÎäEWf>t} =˜˙w‘KĈíßGċ ‹ß¤‹97İâdöİۓ–{_Ż³‹ĜçëĴelL's/ nâC8 ì·rı4\TŜh˘˘Áŭ"ı]ËüU}*E›Ĝ<Ë9sÊéΝ+ˆ!YÎ ârğŞIƒ›WöÜıĜD²Ż9÷ßRîü\.9endstream endobj 200 0 obj << /Filter /FlateDecode /Length 1811 >> stream xœ½ZÙnÛF}úZ Zg_ ôĦ)œE’XEœ P$ÚVbKŽD· ˙íoô EJCZCQ›–™ğž{x8ô—„–P˙Żü=şïż5É͢÷§´$F%†)I´JŠ(ž0Lj4"™gɟɴG‰3RS—Ülßğ}İ+œp%ŭN˜ĈI‰bĜ ‰TĤò ‰³ÂÈäoĝÒ0êXòk_—…´¸³V ?î(ĥâƒâŽ;żAĴÈ=)î“—ÄÇlâˆÓ†ÛdpŬ[†%Ê4˘ċq闎fÓ|8™NĤ7òŻYİw1~“¸uĦ6YgÂŽ*†Ößùc>›O†wäu6_ÌĤkûÄ2ޤA:BSFña÷„8GïMèòğRà\£‹Ĥfo2~×_™\AJ[ވáëYـ”£\È5¤â H­Ħ„…‚pħ†’u1(ÁìŻì_öwİCm ħܗá*ŭĥ††Ñtœ-FóÉşÚ?S܇cÓëĠ§ÒFĝĤ5<}ÑÀ‹ŝûÁoÍbJéˆqŬç3ĦYL) ûŒe‹‹êéY°W'ŒjC‡‡ “œHÉkö&#Ç ÛŽÚXÌGäA†~0ÉjžŽÇƒ\h˘…¨Y—n$FQ9½‰D74qO%Â4HDl%‘¸ŭ@Ï0‚Èâĝ,‚ŝêÄÇċŜó@êüç3n‰ö=Œám@š֐ċ:ÜÂ47–P™N²>ƒpúOžM ò*sé}–ßÎĈ¤rǑ¨+yòe^Ô{)l˘ÁOŠaQ@­ËEŜÙÊGħşfQ+"µ0ËĊWo‹+b™gù|şX‡Ĥƒ·\TßX:ı>ë4żTë´MżÉîĈë]Ğ+Ĝ3œ–ĉıIW‘‘ ­”Uudànƒä£߀* °FÀÑhs]8şĊÇݤ“B8•Klts_nċ y³ô£ûäNħêÎq4†CjWËì …a2˜ÁZ:¸W”éhτĊ%TÏş“À's*΄ÑġMtq *äANÖÛx0n}Tx´ ĵbïה÷êçß//6ÔFZ'ş^du£.XUdİ‹9Ĝż4Ò)â˜}>Y:<†, íJEb>,ŞesŽĞÔBӛ5‘T ĠRÙsq&ˆohBXŜ-.°Û¨ Ċü€×€Œtá‚‘0ë‘c#"gÚwŝN˘Yúx˙1›û˙‡EÛ.o(¤K'y¸\4]Z*l„$´AtM^…îolt7œg€É‡7ĠfVù,/Útv]^£Ĥ‚TĦ‚6II1ĊÖĥ É°Ñ MÄy¤ ×ċîó„d>N%m$ČàgsŬÉ=·Ĉ¤ >§¨a†×r:ˆèñ $h#­˘FÌ"&²8—Ċ74%´3ٍËZÌïÏeÂ@ƒû1rßTĦ QM|ĞĝĊ74K#žĉöşÔG2˘ù3žù„!nB{§7‘˜O nBO³œ?VQ˘ŝfY#(òš£×ò€ßÄ;eOğRAÜüP§Ri;ì"i\DÒ,χ cZu §Q‚uÑ1ċšêüŻaˆ ˘)°Q1£ĠY | Ì"Ğ–qžĉ³ê óÂg>ÉŝÊ*ĊÂêʧJqù­.l‚ ġӝà`ùò9‘n=\:éaÒùÈ=ĦG,Ä0üëÏÜ5ëÂż->N%z¸ÒD—ä|Ĝħ/Z£ ->ĞàÑèÔa>qżĢÀa2[ċgŠùĥu–;ñ ML1 à‹9ĊüŝÇ9„·qœÚPèQ„°ĝ†Fi°µĜç W‹‹ŭËĴ†ígT;Ħc¨ŜİÔN$ĉ¨Z;|½_>R…&7k<÷!Ïĉ‘I Ä74Á.ĵwäóÜ–"Êğhü”b‡Š@숋‡‡âQĥġäjFËN'7•äYÙ*{¤„Äċϧz~)Sâ6LII<ÓÉ*ŠïħC ›*€ğ–Z/ )RĴАr‚3™=ĦvL>1Ôì#¤Z|œJHù7ǒ•ïÒ4íË60§Œ Í>Ğœ*ìÂĴşğ@ĜêélTˆ‡&ŝo(r÷lÁ4¨tr†Ĉrß)?­\–s*µ ’ƒO–ŭop_NÁGJ[%êÖŞŝBÌûCĦáß”ŻŻnóüañùù³ĥ˜ŭá”ÌÏúgœ‡ùìS6ÊÉl~sŝ0ġ9V€Òϛ짷Żç³|öòñ:hXK57Ç$Q­ë!]ŒÇÙŬÇ>Cñ-Uéc–çÙŬĠ˘J_ġŸ0ç2ffò³ċħñ÷qĊŻ.½ÌgŸ kžÙŬ×uĵ &î˙úïMï’ĞŬendstream endobj 201 0 obj << /Filter /FlateDecode /Length 1978 >> stream xœÍZIoÛF ŭDÚˆ§³/ÇU‚9$ĥÒâ  ,ÚV+K6E0˙ÛżÑ7\¤!MŽv·Á\fŜò½7o7ÔcD0ˆû+˙_ß÷~Ñí˘÷Ĝ“Ôbct¤İÒĜòH.ħäĠSK£4‰ŝˆf=‚­%Œ‹èv‹½›ŜG TBcn› ħ0A,iD ÇÔTĥ†kŭ ş´ŒŜm£çô0éħGs˙˘òßġ}t> ¸Œ,ĥJ3 oz…ó4’3NU¤JÂĞûŜgôc˙ŒIgú&Xc%˘ŭ/ßzƒ!¨Y# U˜ˆµ=–bĦı‡”ŠXİî9Rk„` ÇÒCÈ*,¤nƒH0áŬ6J.s%û@¤ŒÁÚ*ʖÙ<ÄSü!IóYĝg Áҋ+B \DiwL â- )gX3YSĝÓZĊÎ1ĤrFêšĵÉĝÈ6 ƒ]6cÊĴ1T0K Xp!™eVïĦIrxë‡‡ŻÙÓCrH24úbŻU%ÒKzĦ5´ħe x˙ġbñÓŻƒ_^µ• Á5Tĥ>Ü=£‰w¤‘ï³t˜€f‹5èÂc4èĵS5è6Ÿ A÷5ZŸ)Oj"݉J›,ëş-mĵ‰˘n~ki#ÌbĦu$t²=£ıX ôˆVï^Úş°R‰ĊJÈ]K[à ÚgİÀž4À &‹ŻUÇY>ÁÓÊ46Öun <—”÷v aqi­ËAŠç ‚5Ĉ‰,ĈúízĠ[­Úu‚R$_y½ïMu ÍŬŬdħnÒŞc‹bÖê6ĞğµQ6^aw8ÂížÑÈ9XŒ^—–Ÿßò­ĥ‡€†SħI. ô#´¨½ġĝí[³À Û£'ù³ĞZeŽ›g{Ô*8G)ĝŒä+Ù÷ë=ŞŞa5o`“*½Q µeĠ çÍÁĥŸRşg4³‹jÀÇ4è‡ĜXÑ öŻhœr"koßĵż´AÄ Ëôĥ_€Ŭ31 “İŻAE·Zƒ%ûČu'7/Ĉ<}Ç hž¸Sñ³v‹O@Ï|_ŽRïŞÎÜñ… Ş> tÏhfĵpLq÷ƒ€‚².èV%aÓ'é3b6ĊI{ùŒl`6îšoÁlTE|̆Şe6…1­Ìޝ€¤ĜĦ°vÏh¤ ¤ĜîUW:NĊm˜;ìä·YG@nIŝ¸ï×1¸M͛Í܆*&ħn‰AT÷Œf~)à[}â¨Uħ€üŭĞUPD¨Žċë¸ ÷%ÑìÂlşg4bšĞh÷_‡”€PL_Úĝ Ám|y§"76Ÿ€ŬÔĵ9JÉĞè/ıƒßXÈ+Ĥš§›!~Ó=£‘÷ÖEwzżÊ[ í— }¸Z† ü†iŸßˆn~³ú2_òĉ7+³ëÉÍJĊ˙áäĤ2fċŸˆÜ÷GâòÏĦH•ÑDĠj[˘8“é¨Ħ-“,Kа@4Eoû"O O}êNJ%Šg˙Ì ½0DıûquCÑe6˙А&$JĤOŭ3 Ë.ÑĊ‡tžÍϗ…gè÷ÉíÌ)ƒTpU Ĝç÷ÊnâÛ-¤ @Ûd”.Ôċû}AO•jôëB2¤i…@Bˆ• eĝ—AĞi3nıV,—ÉĠzŭù‚1÷£Ì½* ‡endstream endobj 202 0 obj << /Filter /FlateDecode /Length 1831 >> stream xœ½Z]oÛ6}7ö#„nÀd`aĝŭ1`+†ĦM<ìĦ-7V>ZÇNmyCŭßŭÊrL)Ĥ"ÛR‘K1yîċċ½‡‡¤ż$”°„úżòóê~pzn’›ċàË@iIŒJ S’h•(*Q_܍§äMĥXÎg[|bUÒ`(BSFñ°˙`8ñ¨˜üáˆ!pŞşœÉûá#äc:iËĝvşŒ%Ìı —ċBns)ÒşH¤miKOœÇ²‚`Ü;òŻŸ(°÷ŭ&5´5„⣗~?<Á<Ñôû0CzMq& áYh˜g’)yïnÒħÏÀvÔĈ|îÍĉƒIVM'lĈ™"†Vô>ŬIŒ "Y­UD;ԓž1ôĉUB0úYFˆ‘ÌçĦnE ˜-p(–Ŝ•˙&-Ü$;˜X)‡9€W_jQ&Žw¨%RÖ!cµà˘ 7ĜèKĉ(í׉uùîœßƒiÔí‡à÷-vÖ-ÔNhò(ħ#4ÑBTŜÜÎgÙĞûÙ˘cçÉîœwŽHn*xùׇlAƒ X×ĝĊ :ŜĦ^ \jĝĥ§bk€?œŸ•ÀaLïP‹jb âÀ\Ĥh°ÑSH8Фê)BüoÄĦÉ.˜"Äë):sdŠoVĝ½‹+¤ÂfaވĥŻ×‚Ÿíğ·‹£NR3`İ„œAıBNDŽ\MÄ ı‡ˆ’Œ§…ˆÛ¨¸çœÛ8Ŭ^Áċ›Ħ8¨Ïš“kĥŭ~~]~Eu¨ÛĵşÛÒ¤ŸXÑ^¤EÛ׳ Nì!-nĦ7ŜEî³>kéŒs9YĊî›saJjW1ym•ûÏŻ?Î5‚pÍğsċ­àĊԙÈ1/`ÚnŸjU€†HXı'ç6ÀNşÂ(_: ¤ËvƒĊaMMÉ8?Ä;ÔC#ĵUUi֎!lôENZ-zĦˆûQDh² Šñz§ˆÎœ/)"ċË2ˆ8GŒkâïPĞ44Ċ‚·×[ü$AħR4Ä‹md™uĦ,31YvŸ-—!+á鍷çU‚H³KÏĠ›†ĵYŸa‘{è³ÂìMiİ<ÓÊşäY‰]ŝ°t;˙uüĝíñÙVÎ۞Á‹É:.}rÛöş.ŜĦž­²²Ÿö² g7à÷ĊÙ\)Bŭáŝé”LÙĜı`B÷~Á¸ MGÙë% Ä{”½“ô0+D…‡ ²v›V'½h‡z1îŻĝÖsħÛ´ ëĊñg=ŽM!§µÛĈIĥĵZÜ=`fKò³6½~| ûXB OĴ% –Áw(3Xͨj_ ñµÈ˘!"ZŻÑVÂŞÁĈáÑġS¤”üv÷”ĦÁ.î)Cĵ˘R:v[[˘Q ·ğĵŞÄìÚê„tċ›ız÷U%‚*Iĝsç%ŜĦž÷äĴĊŒÒ€DÎKG´f=3JƒCJiQ9³1–Í Ĉ™IW÷ĦîbQwÁMMÛ\nj]6ÊfOEf´Ò‡‰.ĵikZ*.[U\³²?7h1½…¤èötïPKk=Ŭu6˜èKrÁ9ĊKQQ™íC)ĜïG˜¨àöĴ·> stream xœÍ[[o7òhìş:ÚÖÓᝠ°/mÜîEÛÄÛ>4E!Ë[]Yr$9iŝ–ŭ{û7ö;ä̐YV€2ârxÎÇs™7£Şd£Šŝš˙§7'Ÿ½0£ĞġɛĊ\i­ĤYİġHUB•JŒ˜•4b´ŞG?Ž'Ué\Ċ…]í1âäġÉ÷XAêv S §0@ı’ÑY•Ša€+2í²tV9z‡ĊŒ}µÏB/ħPšŜœ0żÁQóßôfôù9HjäJ§ ·£ó×'a÷l¤dÉ1\”’ÉÑùÍÉOĊŸÇ§ĴRUqYݧĞÙífıŸ*NDÙâu÷İ˘^ÜŬ/UVBw½\ÔçżßÖ7\ïf›ëv€,Dû芷“ù]½˙|ŝ“³s˘½Ĵœä ÈF”ƒĥJI°eûĥӖĥbD{²-Vâ³vĵ´`ß/+ǧҁŽgġb̰*Óĥ mpĈËŞéHĠÜë2Ħs•† @ pbrHÚĔ‘s~]ƒÏŽaQ^Lç“u`$ċ’Y„-¨4Ĥ9ż<)ÎÀç‘ó_û‹j]*éLèŝS1[Ó•ßïdÑ<Wĵ´òğĠäöĥ^5¤°†’Óşb²ZŜ-.›ßàÔĤ£Âŭ˘Ħ˜Š$0áJIĝœ-µ“Zâ1tÏ(fŞ´L6Ŭ›Ġŭ†+|ÁuÊÊâjıĵš×ϞŬ–›ċĊŬëgÏŜ˧D8şâ1ùŒ% IÀ$•@G[áŞFzc§ÁV#ŠÉĊĵŝOŠcÏ9íïnĈ„f)‹ÓÍdĥTÁ*"ĉaĜkçs0—<'=ü‡ï”³j¤Ê °ĉtqSo——Ŭ[…Zԗíot@èÍü·ıÀ€ye÷Q Ôe0(ğ}ë’Uŭ Ħ ™f8˜¤µŬœH£d~ÎĦñŜ–яşt-Zƒ!Ê÷ÚĦPtİÁ””LÁ`@ĊhÚ³ëùr3>Z`yŜݍÙrÁ Ò„´HJגÒmHi^ržîİiÉĥ%=éĥYğs[ZŽ L…ÂÀt_:*WK³Ñŝ·ŞäÈËĝ8ó–WşXÄÖM|ĴŞëۜw™°T ¨fĤ[ġpöۆ”·0/‹É<@ ½]Îá1€PşìŜEÔċ#ŭgĝvöĠ š†wħġ&ĥ>­u|\ÇÓĜwĈœÂH[SĠ°Î7oâ¸eoœoàŒÂ>àV4¤ñÉ'ÍnħŬ·c²šFvBšÌŞpôf“‹1÷Z\ózuR"#R:ÔIĵ“*E]ӒĦN(\Š:(ĊR:l FNĥáôÔ% šÄǛL¨u€uÂ@…Ğ–uëÙÍíĵnqŞ›F½UÌË׊:€ú2îÀ}fv HĜÛ2 Pä´¤ĵlZ2^rièì'ĵh+`&˜ÈVĉ`AĞá_GŜĊÇydĉ<ĥŝïÉ ‘ŝ:Ĝ ni+„×wóùï Œ.ŜÜMĉ³'ÁŠ„Ó|İtĴŒrŠĴìÄÂ,­KĊÒ´db!mÈ2{Á%+aq8üĵj F˘-·a<ċžŬʽ›z½ž\Ġ‰ …w_żğWéËíŒïúÌÖñù²†^AĤ÷ĊÒħ2TÇÊN,ä*2‘ŠiyĈòAĈp NÁÂê ŠRtNš%ÛĴ€ç ïës mŜmRñ€€ErÖÏŜÁ62V{{żnyqȤàW9áYD&ÎT:CÈRğËÊöqĴĊ@AÜ/_6È/*YÑ žñŒ{#xSĵĠċ гĊó;8Ïj¤9C~F×˘Ñ²[—oñ‹”›ĊxŠxàzhQÔ ÷q]OS™Eĉq3ì*)H$k‰ÄµÛT´˜t›MK։4ŻÌ:…–Œ’Kyˆ³TîCOa'b5šÀĜ†‰5[ÇÇrPÏûn2wêaA†ŻÀ`ÁS2ClÌ÷ 4çÄy—Ìċ[_Ġ›ğĈ·cĴQıLâ#)²Ä*Ëw•:}ÑġŒÒ“2 íAÍtWâ.ù$C7f?+ÓuŸ,ZÊ´tfMÜ3çé^û áĴ(€Ü!+B;"ĞC›€à2ĊŸÇ2:ÀŸÁi„ݰm2ç½ĝ›ĈÖëA',qv“Öi Pïĥ÷€Öš·q{·â¸MY6½†—MĉB´NĤY ²ŞoWġş^l&‰Ħȑ•€Ûkşà°K@(hûûHé0c‡çH ܤHiĈ‚ŻcœF+Í=ï$‰û^öBšhSµˆ}Ż>”ì#ĊAöò²OıeߨWĵ*֍Gú ׃ñ,“Eë$ny˜ösh½îÛ$•FĜ§İ”ŭaĥjüŭcwL[é6×ójÜɤs‡Ŭ>ĉ3„“×ìŬô>ĉA8 ˘iʸ[véÂo†´şŻ{ïùíGD{$> ]í)Cĥ[è3oáM›˘qU”9Ŝy(GÉÖżµ‘ó‰~1h;ñöa‘ ‚nâ™sJóǀK„‚Ş"C|X˘áˆÂŒTaê#3Ŭً(LÙT˜™ŻsHܝ„|J C5,óNš rH:tR*y3ì|à]Ì ‚ċŭ|Hbĉƒçŝù`Js=è/ ›Á$”İÔ\ñÔ¨~(Ï(Ùt€˜y<Ä2Fî ħ'ó:Q³žġğ—xHÓ OêùeÊ<ßdQ_ ,¨ğ fm6u Úq‡À Ëp†9É|· µHmëîö îµúÇÄèü°JÄC3KGD\Ü@œ=âRžî‰¸é^Ùl1[\íë€eŠŻż!Œuèé£.˜Q`t 1?ì ğÊ­ ^S³ÀŽù vtĵSP\(ñGڂĝŬğîw_›nò½ħş¨Wƒĉ Yo&‹M+jÊ5t927„…VÊ98lNJ¤X‚+µk´ġрgÍp° Ġħ$ {êLştô×Ò;Eîgğ¨Ï_Œ%‰—˙:K2EÛ×QëÔì$ZßÖÓö‚"fx.³ñ?-fDħŜzĦş -¸BJ‚v2¤P^ŻnzĜ9,²Á+ݰ Ó˜í·ƒPIüŸğAµ’\ %bbÚîmÔĉèÊĤ`ÜRAvĤ|ú?6ħyß †Àğ Á=§6ıüöüU|Œ‰ċ L|ë@xÏ|ËFmx_Ŝ‹ï#‚sàçñ½ !l s?ì ˙ ĞhĝÁĞÜc`~dF‚!Оíò>H V“§äßdücMcÌ'ÄÓpžüÏàùY´ X8$À› ï„BJʑġRíqù0‹ô·lQµú·Là,\ÖcNôiUüö)UÑTĞNÛ¤ú§ôB0F§şHÙôô*  qj( í0˜CW7G’rSÙ-ZÛrÀ½$HdËpZÍíy/‰ĥ†}0zxL ĥÂ^MÂÑäş=Ŝ½šÄ˘I-#•–Ĉ‘Ĝ’†*‘£Sà@RŽŸ!œìXU•ßÙo›Ġdşéĵy—\RYĤò—ŜMUfżô ïZŜ“{½%,÷U·t&İêrGy!]#³!OÊĠÒUœ,µ°é óĥ^M<­ÌXn¤£(ĝmIÒ½[·NFĊeDĴCée+mÓJèŽCıĵĝµžnÚáœòyĞYŭĥ½ò"›DCȜŻĜ펿Ÿ¨…Œ 7ÙxvöKh…İJ)m˘v‡™UëPu•ĴµqT%¨óšÂTzĴò¤$‡3Ö^ IÒ*8SİNkŻÔ„W{Œµ×ħĉe“5׎Rëƒ5×°]§ŝĞ}yé9¤ĉšt ÖôÛ܁5³Éĵü^­‚Îd”–UT ¤+V™÷˜&;jÁj•-ĝt/Ğ´ċŞı1Ù|]í÷‘I·8늏t³osŜ˙ĝí‹vS&PĴW%2”!÷ŸlчbeqêÒòAĠ2ïĞŝß1˙#PH֖ıĵò˙'ösĴòçC•Êú²äDp_´ŭ nÑ:ÂÉA%ċ&ö:¨;ñHÀsÖcÀ]E/°÷…džfË@½Ïm´÷^§Qp j“_}`Í÷ĈZ›ĝ¨Ó%ÌÒé>^àT’3?!üˆRĈ"”.]Èıò.‘WŻYȌ$~ÛJĈҐBÔ{ÈMÈÇ_+‘‡/àż?ÊĜ/ÜÙ6+M•ÁñĠ8ıNNԏDPÊĜ”óö}ġ#9 ¨rŜ1˙áʙîGY›TΑġúhĜÛFˆntÊÉĦÄËèmóÄÛ>ïr²˜ĴËùl½iUÓăž61ÙtŠD”ˆċFœ“wb/WÛ@5#ÚN‡´Ë~°Ó-F‡_ä#cĠ!ıŸTÎ9]Ġ“w„mkÎ蝌™½óEóèdZ~ĉü—RoÛŞ3š…7ıŭ1Ü"oż£Ák|^ż jżp 1œó²…i³Žá3şö 9â”sç˘)­ëŠÑœĦ/Ft¨Â-˜ÉžAT;ìôö½ƒ‚Ž<ûˆñvzÇ"ÊNÓ7–†ŬفŞÊQ‹™lÖmĴ,•Í—|”µx,ÏĤëĴġ ÒĠ¤8ĵfl„VÁŜÛ:w뀒bżI•6ü{un;î&âJ#x¨Ì\á_)Ù@K;jŝĊìó²ç5?ŭĉÛÏ˙ŝġY8½Œ’oÜ_Ÿœ˙e‹îbO =Ñím#ŸŝíÛoÂÔ[çcŝµŸ$霝#ù8Iû2]Q}Pj@ >t“y;ğĵĴç>ÛcĴ*îêÍĤžÚ&+XñċXz‰QјÏˑNûï²Kyk•ÖÜ,˙f“…ôш´œQĵEFŸß…\WñìjA‹aÒB§˙ÑÒ]tÓgOûÂìËúbuç?›˘O @UûUŠ6… i™‚Wĵd‰YË67öG—KşP“kò½àœúŝŝäÈ}šŭendstream endobj 204 0 obj << /Filter /FlateDecode /Length 2129 >> stream xœÍZYÛFöQĜA8Ü ˘ž~129vcĜ+ÈL4G£Dǘ˘ŜüŜŭİn^MŠäȒ&ğ0Œ!Ċ£ğŞżúŞÉ÷Á4"î_ŝwş\\éhĵH%°–‘fĈ`Î"I¸ÄÒŭĊœK%qôs´l-a\DóÇwƒAżP…†™N@b ‚%$ƒ;Á [µˆ~[ ŝÛÒç+­š†—!˜éĥ_rĦċàĝBÀë÷êW Ê˙LWÑĞ1xIU¤ħe”°h|7Ȗ|S˜yŸ)ĝ6ÇĞÁ5b˜RÌñp$Áa ïáˆiƒ‰@“-ž)ü.¨A÷“d2MÄ=íZ˘UœŜofxĝËĝ_Î(‹,–Êho“)L¤ğÙÀë˙ c¸„1VÁÜü ƒ…ÖùgĞ4á×*‰…â<|›vXL¨EóĊ‡x›ùmAi1 kšĊ·ğy1”˘mš,ÖóJts—_[—‹×ğU1L£ô‡8›êċ–żÌ1e8ÁF–)C-„‡9Ĥ…"ĥÊħnŸcUn) T™[ÔjˆoË-Ê,­òĞdžÏL,Ĵ&f–¸`€Yfu”ôd•İŻÈ*ƒ5Uà­u{E¸ĴBÓIêBèŞ/OékÔ *LM ŞžÑyˆ­Ĥî|3œ @‚ú,Ò]şI“%~'ÛÍ:˜”ĦD Ĝ qB‰ÛŸ<›Ž*]3ùù S`œbAh¨ï½½ßĴ1l€ ĉr˘›áͰmg¸ĵċe*ÀĊzÀ·s|s_aıÊ}ĦĊŠêÇ0·[ŭ;ŻŝSVĤLzİħĉ:[™Ï†#ˆ!Éq/Ž•mëġÑ/àU`ĝ‡Áĝ /͈[½~óêû.  ½,. "/ĵlCàğ7ŻËá"N_TĤ(o1ġó›Ğ·J²Nú)ŝY`~­Œ ­ğA"j˘T†ĠĈŽ“nŜ•xĴŭ‚ġUbĦĵTUòJQéß/)B` ö˙ ˘4§0˘ J¨\çâÇ*<é&3šyÍ˙,’‹:ì½)g½8Ÿ—éXnÚ½(f6-Dĥ—ċ&ˆ˘Ü‹"p B4€ĉëxğ aš Šĉ.Q\µâȏ•†ġ…àÀÈİĥ­Ĝ—+ùĈşb]ˆXáM$wi·„>°ĈÇDÛP´Jj)LĦ$NwÉzë~p˘ \›çkf%{Ĥ¸żż†­îbÜâÂsî’AÔÌ£ùf3_Ĉĝ!Ù¤›ÛŬ„´ù:ŜN“Ċó­ûıeN#Î<ùl$Mg2Öµ)uˆLQǑ”³‡sœn–@Ž˘8=&ŽÇsIĦ²HçO[Ş)”0ĉĵ žRŞ ĥêĞ*Ïy]‡ĵ—€ Ÿ‘ı]­5­YŞíêcy Ĝ@u ġŜ‹)U–‰/´ÑXIf€›jŜÍaş‰%úF·¨B>ÊazÔŸôÂÀF‚ÔHL‰jYĊñ0’]Ş ÔàN†èùpġ<–ŭHï+ĈÁŠK‹îñrĥ­m´Š„ĥ§ÙáPÔ-Œˆ3~ ġĜxŞvKHŽ£gl·BOÜn…ĤÎÜnĠgñ·´[ĦÉs´[Ħ'ÂpÇ„U]Ÿ1äÌpĜĥòÓ1œğ&ñv¤ĥ Ǚfkş[ŬĈI9‘pPH>ê‚w×Ey݁mzZápŠĴMĤá=Ö­G|qÍġAë‚.]ŸŜkЎ^Ûù—ߐGúl€YœÌrzëUï÷$êŠÓĠcO'ëêĉ6èMvÛ¸Ĉt³Ċê:ħdˆ‹Ĥ†Ö›šbŠî‘:´Ÿ5ğ ŜÚAË1ŻÈ'°Ú\wSn&”x³%’p˘ċ!Ì£ÇDĈ<¤*Šd„kzaĈÄ_ġ@9„o@Ż_,Î$ĥ‹Ġ2Ž­\,‚u| Ä ñ”)x, ÊıI òÚñ êÈÁ%‚‰£ĞRĥŠŞÍ褆PC•5M§ġìĥ%Óİk3D“ÏÊîŠÙ-Ètv"ÙaÑìÑ|Ŭ¤¤Ôëĉ5ŭ:ğmVÍĈ*qI³÷3âA·@s•¸0Ħ6=6ž ¨˜ ı‹ıXO—ğ™?(-’o;Ŭ<<5D¸Ĉ€qNˆTŝ/ "œÑ9 "ÔW&ü—'v=-NÍàŬnı|Ĝ:*=;ŒI êêĉĈW?]žÒ˘ċŬL¨²­ßb&ħ;#;@;š@Ü)ŻŭdíÖ€‹µ1}ÚĜ¸¨=ĴHŞ%!ĞĠMV+ˆòG˙XĈÁ96üĴ=ùë· ¤Ĝ62@š­’‡ĵj`ċ)ÔPänQsaŸŬ#*ò1ĉ†ĝ³/OŒŬ#¸Ž×1ĉ†fœˆħ{àD*bœ=eÍúç2żqïa› `Ôse/Ét]ÒseߟáÏż#Q}÷qŒŸÁ‡–¨\zıƒ÷’Ċ‡Xğ--£琉Ê`&_5Žnk܈ĴÇĝOÜJàñŜĦ>­k+üwŻ‹­Œ8̃äïnïÓôaûĠĊĊ4ñßğpèG&kœŒ†#CÑC²ù5žĤx“Ì/&Ó!ó Äo“yüòÊpÚŬhß÷iNĞKBAR¨šG—³YĵĵRˆnm§iĵü²úĝĉ›Ħp›]”ıL xüßÍb›Qîgù´è]şùÍkÓ°âċ•ğWŒıݚ~üb.>0endstream endobj 205 0 obj << /Filter /FlateDecode /Length 1962 >> stream xœĊZmo6ŝnôGÛŞ Kß?ĥ¸Ŭî¸mÖwŭ°[NĴ$MìԖ÷nŝßŝ>”%›ÒšŠ_S$€-‹3Ïp8óÌÒŻg"áŻŝĵy|we³ğĊàׁž9g3+´bÜgšKʹ̄'ĈÏĉEöS6pĉ­2¸·ƒÄàv#”i ,“^Á Ĉ+δÀxË8ÉA1ï¤UÙ˙€e Ó‹ìoğ`½&FŜ9‰’çáȓ·ÙüˆjöYŭqó˜ŭ0„}ÂežycÉeÛÁÊ5"Ia2K;pëqßNŠż‹›ùäİœÍ/†˙ĵĜ,­\êmÊYĤ0³Xù‡ĵ\BëdôÀŜóĊlşÑϜàZYÌF.8ì?‚Qg>9b Ċ”nİ{{?›ÏOĊ‡‹µâMdëS'²<Â@E‘•–¨"kQ¨6ğ„”ĠQ8ġĵĞöqH0Ĉܛà‘÷ù×—X:^EÎĊ&˜âu>ŜÄê7çòÛġ<n>ŽîÖ´‹ĈÜÂe4ϋĊâz6ûȞĉ³r·˙<üû~WŠ˜3{dtZ˘ëwK{P*÷€á{0‹F …hĉIJt3€;8eoĉIŭ,hċŸÇ<ĉIp ^Ş Ÿ]’cFŸ Ç0j‘cÈ94š|x@r.°ùÍlZŽ&ÓÉôî—2˙êċEy?³ˆà ­û똃vÊ4Ü+İ"áJ;‚"]È ÎEK¤kC%ž‚Dv0Ò-Ì÷µµÁxɸpùÍh.<óëjV„ï&_.Šq}ÇËĵœmDĉE9ŸŸŠúĝİĵŻıl­duŸ›ĠJ6 ġ`ܑĉ,aYƒóÖa#˜ 1Ĵ­Ôv×.·ĉÀQY_YĠxeQ˙‚)ï'͕ħy1]>†+,—h…šĵRÇĥĠ'$ħcԓœŬò”èä&ĈivXqJCžZc)B ĵTmŠOQ›b}gM ÓÏP›b¤-YpqrÌÚĥËĊI‡äzk((Êʞ┖è&V™h§"UXÈçŠSÀá/QFµ‹Ó³ċhEGUċ‘2˙Ĥ›7—¨FÔ:˙f§ ¤£ 俨@à1ò‡bzWŜ‡K[ÑZ_áá³<Ħ5Yg°Ċħ°T+˙² HllħV|eàş|TdêC-XÎ7Ì+kvŻiĵ{]Ì7´<ğ­%ıA½(GÓ2’L›ÛĤĊàb­$ > ħ³Ç&"-щR 4?ˆ§{@Îu ŒaÂWMV´˜òèΠ^·”žù@ϤV-ȣރUL‡ˆôġ(R h׍àï -э%Rš‰è 폰ĉYĈë8œñ”DÄJÑfĵ÷âç ğÉmİ&]â}öëi‰Ž{¤CşènK´SĤġ`î!éÒ n×cÀS´Dħ3·D ÓÏĊHG3‘@bµÍOtB¨âa$=ĵ–è>VuhÁ=Ë =ꏈyƒ°òYVèéd,)Q'ƒv­ne°1Œ[™ûQ]Ü9.zú€|÷|#Ó´(•ê-Ûb‡Pwvç6fxġï×͕È'·Í÷mI£ĈnŬˆFíâݸ™|UŒ7ÓÑêr5 é‰"lµ§w[[É óÛç‰HZ˘–œìêqĈŝ­OÈÁ‰H"ÔËrxBŽô›·›~Bސê´;”yxNÒÖĝ!ŒÇ +›‘<|AÚzçûŒOĞQ'¤^ŭôŻĞĵ:Ĉ~EÌÙĥ[-Ħu›şûŽ|ӝ¤Ċ@Í$í[LzôžŻ„ĉÛ`˙“.&Ána5’ÈÀî Wİ%şî‘à%+é1ÓGxV(^ŽÑbÀS0ZĴï̌–0ŭ Œ#†Ñbgf´êĠ+ò˙IĠMElhTHÉö4ĥlÇıG“œ–èd`(/÷%ĥŭG¤-ŜŠàÄöĉû{½S§?uÂ˙öNùÓĤ½6=,‹_nfËĤ= ‡h}G€ ;/i‡ÖÙ6…Ÿ"ˆ/[hìHr½s }ĝI IžêôI PüOċHKtPŽSi‡{@ÎuŜE"ŞÎwşKz(ç#<-20Ö|î@wáV yÔkAĵ˘‡X]˙i ïBy½G§––èĈ“ 6Ŭ›Òú'4 0fß³@k‰IĠ}M ÷mĵ¤DÇ9ùâ4”l= ‡{(> stream xœ½[ێäĥò8GNĞa—÷Ë~ħ=qݽ;pv¸§G3Óvßĥ/{ò-ù½üFEI¤4êŜž,l`5U,O*Ùo2JXFŭĠż£éĊ³&ğ_]ĵıPZ£2´!NdŠ EϘħ„9–-‹ì_Ùì‚ç(2ğ˙ĝw?CÔġœp%ŭŠH‰$%ŠeÌ Âl=€$Î #³w Òżßc˜—†BĦ7Ĵœ\Vŭ3šfß\CĦ2Gœ6Üf×waĉ,S–@&Ôáœh…WӋWùŸ—Œ*šżbż.‡2Nċbëġ? ‡é *pFı—sɉtŝù’3Ùġ-$pÂaœàsJ "ż~(èc .;`Î 5ùp²)ÛĦÜċÓb=€m­4Êĉó[RÉĦğÒ֔ŞC^­>ÓXD ޝ"”ê—#]˙uĈŜd&L?y[ŞQ~´u(N Q­Ï^y}Ħe˜—·Qñ~½ŽÖĞŞEĞ|8ĞfÇl~5ÛL0FË~ÈïŠĠh9^ĴçK4³ĉ†BùĠ{ˆ™|¨äžÏgµ™˜È‡ËûÍ´˜­£èù]|ûÛxv[ĵ˙âĞĝö7 |S,ÑäÍÙ,½&Ü#Qy’™0#hRÍĈá³á´ĝ˘#x>ŬĴê!9ÏoŠş§ÎW‹b4ŝĴ¸­‡Tùz^żeùĝşŽï>Ôo]ŝîaÙôy‡€b选C<™_˜AHŜ’÷Ó|ŭaQœXu Çv›ê #g­ÀÜQż XWî8Èé#9Ĵ´a­‘ 9Pœ­x•Ê|'}ĵŞĴ´CámÂ5Aäh gÇ(+‘´m€×ƒF`ôOÄ&˜;ú‚ċĝÇl£Û?èú'³–Ĝ$z‚œYŻĤás‡ĝ#|ĈĈ´Cgʍħ3€£úSxFĞi?´YÛġjòßüŭŸW=œ§Ĵ™öäĵítlŠŽœˆċ‰}8oLJÛU9,ë“q^:à)8/•wfÎÛ˘ú8/éTœ—ÊL9ï ġw3`:”OoNFŒRU‚œ†úä*ÎşFSp$ÑFÀçûñ‡ĞϏħò4/Ĵe­ÒUdhY›äĎ½Ëöş!-’_ŝTÖŬ!˙v@úJƒNÈş~ú8—!à öÎŬúAפŒ#ŽñƒHwûG˜.)ì'äÜ8ŜI(7Š;7ö*~Œo£ÈsÓm)ìAż>UF ˙1µ G%´Ú&Z†éaViĴ ü·'³n˙ CèȈOeÖò§Oòt}NfEhu’‹lÂpU†]mĠG°€?Á–”1ÙRĵ*dH%ŭ ‚â<”Ÿ¤ó…&ž_ÍÌ˘ĴÊŭD8^úŞT(DYêêBc0L:!†éhnóURĜ…ŻVŭÈײŜàÄ*ÛV²,Šù= <M†ĞUU‚óE)ÂÂk™TÖÖBÉ)Ä ċşe¤žz™ġċÇëÏ}i…9ZZĊW§ÊgòáÑkòn9\,ŠeĞ4 =-†\Î7³Ûĉíş™×ù·•ÜĤe4á@)Í„‰vœJ<öĝhÁÓ´ï^ £ '-%’µ,›ßÏç÷“âùóĊržßlîž?/­Ö1ւß|Í.Kĝ§Wĝzà4ìeD>ĵ™˙Ma,œOKMváĥ5½Jo‹ž’!nÁ—Uà0‰ġÊÒ%"j"îUä›bUÛlXşp ˜Í[…>›5u<,],†•Ù^ mĴl?K3Ê=¤‹Lšı#xPŽ~à;C´&Tg’‡À‚Ó ,ı$ŜtUËt‡^‚0ÀXıilñ“Ñ쵃Y4ѰO+Q~ĜÒY‚AW“ùzp Á~Œ†'ĈHP@ı’Ë£"MK˘H3)f€-NŞjiMЉ@‘NŠA ĠIùş>‘kçJÚŻ$xżİ€² êKD—ϸ|´œê|[×ñħˆËĤoċÒ2ħ¨ÄÖE0ÑPĜûµ§î9 ħb6œTg<_ÌdzÒ˜Ŭ6•dĵ‹ĝkÏLcBFÉFzGk2áù&ĥNcë/ħu'½ŸññğĜ!i…!>Kİ™ËGħy;']ÄÖul÷}ÖcPIZCêß~ùee%˜éíÀÇ`#üA˜FĤ ?ĵ’ßE>)zàÚ@,8BĴ+5Œ­Ħ!ĞpÈĤ¤NÁJÑÂä!`UB§ ÓAŞÈ–`q§Ŭ•ò­=ĤÎ wŞ,·O“˘†+‹•)™İÎU5&.fç'@Ħe:Qa5ħĵO'Ù8Z&Z=ZĤĥ1z)xfbäşeeëSàÄÈèđLÄ02Ò|½ rŠ`äğhÙM|œtœ$´ŝ;>>Z›èq]Êè ĴßŝV‹s·™„C0˜×èüÍf8˙)„§`óVmádù 7‹eüt”ꖏ„›ä5M°˙>Ĝ ì׃2ŒĝTïĤÌa9f:if's¤*ˆHRÂ<˙.‰HŬ˘]tÀVµÉ4Vı<‰ġ'Œ)ç6D‹ĵʟÂQƒTÔHŝÑ@ߚ2Cmy“ŭ½”ċè Èzä&ï-­dQ#XdBĝ·4,(•0×´óƒ L… ŞßMc‹ĝHTÜêá†ċ¨ĜqŜ>Ŝ$ê\*FÁ°Ìúün‰˙F2ïÒQµĤE4lZ͑{3éĞ–v/88ç­^Ħe Xj îOÇíAĴë­BÀQÉħîĤ—uov䵿?-m–=+Ċ)ö3:U-ìġöÛŝ÷‹ÄĤÛÉÎt—ĊzSċ( ;ĊY¤“·„}%+İċĤXn!£pžœëŞd#MÉŭFN{jb,näBÈĉ>ŭ*]Jú*ö¤b͚GĊ5op@Ñúš>ÂÊÈ2éeÂTÀĉ!ñĝtˆJ ìı{ډtb/"¤ÙFĦĤûmÄÊ=°Ĵr)¸Óx§R,Tß–›qÓA£ĠF˘èMşÉ÷£´!ÙS|èäÈ}iÉ ”è $އPË{ÒH‹RÀğ޲V_žZûšvóáIiĈħ>dEÌtħÖB–E/0´ƒ5}à!.óÁ҂%jYĊGÑ2Š­½Œ·¨ië(EĦßÀYk¨ŭ!,™]Àž<öR‹°ôáI2›G­mġ²X,‹U1[“\ÑÙOÉ(‚Ħ "Ŭ†ŒA›MS–úğCÈğW8/ħ0SĊ„U’ŞĈ˃uß"Wğô„Ê÷gBAT8 @İΌ‚†—^çĞ*šòÊâpĠ[ĴñMeSĴI6‰ĞXézuh}è-ք: â³ ­áq”.réĠ—ù‹ĜcwÁÊ­tµÍ_bm²tŜ.è[×>aJsŻúğ#â-¸œc´ƒè˽ÒĞ.Av ~ĥxuh×'@{jíñö‰ñ't³şiħZ ï‹ò<ÈÉ~ÒkÖş‹‘t7ǵB†é’Ŭ\Ŭr@Á“°SJ'ĝŜ äÇ ÉAĝü‰%…ŞfÙÓK˘İnî(<ş.°uUÀè·­6şıŽ˙ëëè˜UĵŽ.óηpĤ<è Sïż„8KQ_lğrŽ>ĈÔ$À{ŽBVBëz²ñNy¸+=ŠWÈ]ëÒġfĠÔpŜşp XŽ‹·ġñúŒŝp–ìTŭQmsyüĜê}ĜĤ>ô­_Ĥg¤ċ•ö–O4gĉ ÄâIqïĞ3Û?蜙3Ëü2rufÇ/O|£>U÷÷F%W!ޏà !“Ş%ôġ™/쁌ߵ†<êĈŽG•á-ygş²S_FÙ˘ú ğŽtôeÀ²³ÖçıµS]ŞyŒĠ“]Ûñ‡Ôĵ½ûmúċ * ¨³e›AßĠä&ܳK8ĥ_ŬÙŝA—†§ñÔríĝÍkµÔ;~ÄĊ÷ù—UIäۂfĴyQµ;R˘ŞÍħ3Rցҋ~&ıো“Ġŭ+}Ŝ(iħ)òwXj8êËĴl{”ÜŝAžVŠƒÁ€NA V•í$w ‚¤Ò55 ŝzOı˧ĵ$ìB0E”QñîYÀ­mNißĦâš^È:CÀFjŭ {}Sü–ò·>¤m‹l:ÒÑáZ" u³Öç ×ĠŻ ZH=m¸ĥŝWĴíŽ ×Üù oÇŞx]Ì2M AIûs—]*}l´ê+Ó ĴÁ­ĞâÇÒßtì_ħˆÒj&À.ÔÇdĦ §ĤŞ/<Ĵ׋ĠógÏFĦĤ&l†3²ĵ\Z–/–óߋњ̗÷ÏQyßq5˙cx_|ŭ˘Ĵ(|³ıÛó"iŻNR+Ÿ´Tşş½-&7ĠMV•oŠġş˜|UïĉUŝׁô<Ż|ÉĞ<Ĵ´Pùóĉ°@ü]_ŞP.ıž˙QJ3ˆùĊäCÔ÷Ù ÎŭÏĜĝ?ŸġÀ}endstream endobj 207 0 obj << /Filter /FlateDecode /Length 2982 >> stream xœÍ[Ûn#ı}ĉ#„M€‚—÷Ë&û²Èì›™µ•Ŭ‡™E Û-[Yòè2›ò-ù½üFŞĜl5ÙînÛş,u“ĴbħXçT‘ú8d”ŝĊ˙×÷ƒŻ.ìv3ĝ8ÜSçìrcİ—CͤĤZıu”{>\Ÿ‡Ë£Ŝ3!Ġö=³Á A™J„Òkì İRA1Şù;IıĞ$(ꝴjĝ+Ȳzĝŭsä\‚*}0żaüw}?üvH=ôÔ+Üp2”“çC­¨Ü ­Ôhxu?xG~3sĤyǍµmĵ&_üü׋?}1úeòàÍdĠĉ2–q*Ġ^)ÉċÒ&ĉ²Ê0Ÿ˜ĞğG0Wm&cĵ£NïÍ$™\è6; ,ñŭs„[Qm˜Vhᅷ}ʁġ)gÁ¨N rB“Da/vĞ)7RfC'ÛŬvµžOômħŜĴ–ġĝÔñÊÔl ^> ÁœÏDŝöˆ)p£ÀĈ<ïíŬjYL>?§U]pNEcĠO¸Ô ˘Jn¤OÓĊ Boġ‘êw‰²Ô݆§îġ7É0xÇUyı§¨²ıqŒq`[ĉrŒ^ŸĊ:’d0›Éší‹Ä6‡Ċ´q’Smó 2ıĝۛ#Ĵ%µ ŽÖÚ˜@Š„Ŭn\çtw÷hBŠÔŜĵy{Ĉż ‚şFqjìCŬFL5 C ÜĤ^p&pħ  ĝáXX*,„ÊÉ  '¨¤0$g†L0>'ĊrÄñ1·dw˙÷-†>x' äĜŜ­nh%LÀL´SàD KG-h Ó4v–V›Ü…€Óz½˘ÈOÚXVòCÇ.iBġ…Lğ‹ŠŽĈքII§KübÉU’ŬĤŻ-e̒íŞnş.ĥëyñ)´3`x{WÄ×L“7 Ġ‹ÍġzŝË\ŻfħU[…i”ßġËȋĉÛ/<7:! ‹UŞS àœ…e§m3Ÿ÷+W˘lfcàĜżDÄhYċ€çY˙íîÑpnhh¨l`lĞo?ÙçYċ‹àŝ@¨ĥGÏ$DÂtÄ£cnğòĦ.!t&Şé™‡",Àž×ĥ1‹³’!8¤"y I°­=Ï­s.’Àwİ~J–\@2‘J:–%T™öI=ĥÄSI'f ³ÁLÀQ,!Ĥ™iF‘&¤ƒ.2íZsî9LO`İ}·^n˘.'Sĝ2KÚRJ)ßX@ĝì|Àö8Ŭ7†u×&OnWĞÛEAÖĞíêj7£XÉ˙ cI]΋ïZ&6–BS’1šÜp[.^'1 CÇÒ½$ı xÌâĥ“&UşAt9éìÑÜRL`z;érÄâbe ág-­KA-€{*¨ÒzLüÓñεĠİ@‡ê'„Úòĵ@e’ކZĵ|Ûŭ\H #2uâ{ŠäŽş'`$Ġ*ß ʞ†¨Ċ³ó{O<ÚHeHq(eċĴa¤ö 0WŽa-ŻĝË2ÒŬ£9…Á /göI6Ò#à¨) R9ÙceÉA.•Ë4¸>Zĝòı XNÛ8œġáÄl^,n6ġĞMħmƒ4!q ŝ‚|ğğGsa—µ8䐺GĈıòm!=úÇéÒídÀ3gۉ¤ϳ9üOjç‰ÄS”ΓáÎ\9oWü …óDİêĉ§tĠŜ²y"è,UódüSÍSğœü%dVšóğ4bx#އ~…™n ïğKÜ9˜€Ŭ‡ste˜_úw÷h€ wXZ·{Áú‘·Oß@èpú³2ÈŻn]á°Lïċ‡t°uòçÁäwI‡°3ö]À““kĉÌ+ÈŜÑ3$$M=8ŭĞŻŽ:ˆR*Ó:^n›Ġ2’ĵrOGcċ1Ïäğù/Ë1ƒsÎ.fF8²IïÀ÷xQçmDa7™L‡R¨&–Z(P…ıñáUQ>a\aq"ĵ´@‰îV‹ŝ„pŽ “J%%éêżÌĝŒÉ öjŻĞ%–xĤâñžĦ Óu2‹uñ°.6Ċr[T-8ŝ 60ž\ÔS))4 e‹8ŸŞ„e´ê"Z+İ_<ždFà1*6żTĜä‘ @À“ħ†v½˜n`YÇÒòp§r€ …wħĴ"ı^-·Óù²ëäh³Xm7í Ħ sĠħĠjlż†" 5ÈÊvŻÛÊašJÌ=Ê30FġS‰ĉ§ïáİוš<ĴZ›’BRyuĞĉazŭĦ½°!PÀtcğŻħE(„U|PR˘WgTñxèx9żŸ/ĤëĊgP‰`Lĵĉ*œ ‡l1gĜĵŽŻ™N}Ħ²Yc31%˘´”+Ġ¸CÒrĠVĊz.LÑR”÷sƒjB†;şúaŽQŜÓĊfŜš8xc)ŝıEZ½TäU™”C’ÙzußÁĉ({:7T˜´ÉoU ĵ/÷MÔm{7zgAÓMñş ÓĞê­Ç¨ñjY*̍*§í²/ÈhÌĦA7üħ@,+*Ô ï< öiġĦjkyĜğ›Ġ¸ĴŞ–û‰…ÙNF!&2½Z˙Nc;/ŭ¨ŸOdÑİŠh¸SŬ WÏĝöñ€ÌmQEŬ*Àeĉ‰s­í³7xü>Ğ ĈğZƒ:Î<7ĵAˆQÙ<ŻÇÄy ĵÎ(ñGħğóÜî âM’_(ݍjŭ…£<·GĈá,„\3Ğú³úì¤Èċ/<Ùoż\ŞÉıê˘ñWaݤÙ#—94‰,oN§cWċ­qĝŠòñ́é~˘ŞĦÌa³³% üıi 777ĊâjÄñôÈi²+ĥÛbñşşîÉÉw#\Ǒu¸ |aşüÏ*D;lbt¤á '—ÛĠ‡r4IÀ˘œ@%Ħfôí.œ‡8òÓüv‰Â€mbé òŻêpŠzĥ§Ş)+Öğéş<⒠ĠçJ´%ĥS"˜`ĠP™ ´Ĥf›ĕVʤ9 {—|żj_]?Ċŭq_ƒvlendstream endobj 208 0 obj << /Filter /FlateDecode /Length 3127 >> stream xœÍZێÛĈ|)ô!§@¨Ĥšċœgô˘ô4‰½@.⠐µÔbI”E)µÑöyûŭf†ä )Jğ^Ż‹b/–Íá?|˙qĝfœ:ÎŬ_ŭ]<×t|]Ħ93züQ>ŝjDıĥIJħĉBİĈë‘F’œ·#ĞÑ Ì2ŒX=ÖL0bfµ##’ùYùĝzôfDŭıúß|=~r‰³ñވÊs3\ŒMtL ›j´_G?fĠŞÜOĤœóœä"ğ*ŞùnıŬ/ËÍä§ËżŽž]ŽwRbMBL;’Ó2Ĉ¸%ÚĤŒĠ#)cÊrM4Kc\-üĴSL)1ÖDh)i‡+Ħ 7PCÁ1vò|m'9aÂn³2>.ŭ£aıÊ6qt‹ĝ¸kç:I@˘"‘¨  UIœy…ÓŠ‰“£6{ğ/v“)Ä*‹CfĞÉTH÷&²mıÜĝ_…”ÙŒ?ìoŠI8£Ë Î gŒ7‡|‰÷|H*4ËVq´ˆ£O{£áħŠĉqt7¸ï6Ž 9ĜŠ6ŒëüäIƒGnÚËWżó½grâYıè²~˙ôÙgîE‘œfÛ]ĄŸÍVËWğ 0&€lĉ¤ŒCyönBsˆŸ²ŒLĤFcW-³§ċü°.6û™³—ùbÒĴ(w^àSÊ 0ĞĈSŒ+-#ÖÓsùË1Ü("W]mDT}lmxP.y W?£Œ3ÎÂUjb µĤ}šUĴ^pHgËúÙ–Í&Ì!97ÙŻ‡bÍy6[fŻ&ÔɎ›lU4+uĥĜ•ëúM=úgÈÄën^âίڝ‹¨ gatkJ†°˜ÙuñytD0+­UŜîwg|Ÿ}‚qïŒrxfƒ“¸Ù﷟_\\ó€_dşX•ÛbWM(ÀG•´†ÒŭC"ón6 ”הGYA„:c5§ô(Ħ8•*!ġmVsf˙Pž˘ˆ‚=ĞıĠNöïĥEmp;Ÿ6VB‚,?ĉ@ıUŜAp Qï×á[İmG‚÷·p#P Ӝë{=Â1BĠmŜ¨egéŝx·Ż‹ŭM‰@Ê•µY…ŞÁğv˜ I§ú0DH];’P×rÊP~ ‘rZtgá7n;³ÂHGç EIäÁ0ÂÏËDşQáöԄşŠĠ ä=ÓÙŻĤPÄÔÍ ÈâDŜɨ‡·„Yĝ™cϋŭÁE`×@ ³iâ{H›Ûä,MŞb{]^É^ü^Vñ­W aÄ[Êwé \I… À§UfTTfĞ`dùİëE÷·DşeĞ×^%ğ}8<´D8¨€CÂ÷ŬÑ0Eşà ñšÖômÂŬĤìܜÍÙĞm1oŠ9ğŭĴŭ$ ?B”Pƒˆ Xé,…“°‚ŜA”[tżj‰!f dx·èċš`¤ŠI­1£7ƒJ*#DÖ=V×À2Fçĉ¸Éúà~)á.‘~8;›ßÌvìÔd³yhúÖ8Ĝ[ä•ħġĜŒ'5˙,‚5éÙuÔ³9KDB>°LQ*KXÄïċ~aıĞà^ŞÀ}Ò0Ošë/Ҏñ€†ÓÌ&νŝHˆ°€@*„ ÚßX*UÚ°p¸Qà ;mOj6Ĝgî›t½éoÒŜ‡Ÿ5a4<ÎS%{“ĉ&ŻI˜qŝŜD£–Qġ•FörBZ´ĝnÁÛE<ïBġĥë=Ĵ@ˆğ"–bOhטs.ñ›Áfb5ĝ8‚ĝÇJÄÚÚù =•Ç.†^šwBïÙ<ލ£kTÚ.Ì6‘qȳµ:ícĦ£y…ê‰§ŠŻ—Ŭ?µJ£Ò;ĈÂĠ CKĉî;p*ŽT‹PqÊùiğ”(igŻ–ĠyİOrdU̜nëĥŬI$k¨â-½kwRĵOw2ÔğU\ŝžŭI‰è§èĝ½ú“޽w>ӟÄJ•KŠ$IS'Öĉz,d``XşkZsÙfëáŒÌÛ0АšFR-kÖIs[×ìמ-†ˆ‡B1°uÙÜÚöú$vŻë9îĴöˆÀxşĦ’D(›.ÓjBù´üµ¨uà)mÉğJ_›İ4Ğöğċĉ:. Ê´îZğî7ĝ…³´]CİëKuÜdÛâ†i"“ŝ‘à‘ŸîHž^khqKФ Ĵˆƒmà~GòÌ/ĵ¤ BĤ³ı˙0³,³úŭ›‰MˋğĉŸ÷Ù|ĥ˙€v˘D¸žJşË,i>ñPµBXëĠ‡ċ=ı ptÀ˙€ êò8ŻġxÔâÈŻÜ“Ĉa.{|ôz“/'îï¸ÛĞ(…Ż‹Wž‰ÈsW$'ĉŬ4ó‚i`žËdnż! ËÖ­hĝBíDP&LŒ4‹VĉÊġëU·\½CEò6ŜŠüĦy4ÙcÂáŽë˘*T}—_°ĝÓÑċïâ&½ğ•V1aċÑô²Žk͙żÌ~ŭœìáncd‡’yı&ĊÛÙzğ*H³yJċŽ[Ï(0§Ÿŭ§.ĦĠ:že³Ç w@OÊòµOXĞÇ ‰ÒӚTĥ@}ñžŝOżC½‚ċÖÍE7ċĤĝûaŭŞĜ5RPŬ•œú,iٛrçòĤ0ÍĥÑ9pÓnÓSĞÍèC[yĊÛ0ä·=ó"žËx=àWŭĉ3ĝôĵ*³jïْyŝö›g?Rd#¨÷Ĝû½·‘Š™Îí°żùöÉ_~6ˆü|PDŽÖfÍ ‰ŝíóż Ng)żúüŜAŭŬçH=½ár³ç­‘–_5Ïj€“ŜnÇPê“WĴgËUÜ=Á?Aßĥ˜íSú†ÁÙ1÷=„ħ<§xğ/6ˆŻâċÍóärĴŒr ÖžR¤÷ GZ<òƒ}xž¨ŻÂ¨ÊµġY5CŽš#ӞrM¨Ïd9ĞóW‘ND 1Ìԟd˙JB˙{”Ÿq·&¤ ÀĦĦK–k?Ğ>ż¸˜‡G’;ېŬt25´ù”ğë ×hwŸ½!úFûž{Gûä°H>ìğ­~=˘I(÷ÑJ—¤gWWĊŞù0Nf‡bż/VżÄ—á´,]‹ÊÑìÚv›˙”máİ4Ŝ›òۋ=TvÓLħzé½xΘû´ûûÑ)“I*endstream endobj 209 0 obj << /Filter /FlateDecode /Length 1729 >> stream xœĠXÙnÛF}ú„[ £"žÌÀèCƒ:Ŭ’&µ…ĉÁZ˘d%”(“T£Í÷ö7z‡‹8¤(ÙqíµÄċîs—syLâŝĞßñbäD³lp5Ôbct ¤e˜é@.ħ䁖 sĊƒ4 ^ËÁÖĈE0ğÇ`:ĝ4UИ[ Ĉbm€A,)0l¤ĴUl ×"ĝÊ´ ~Ü(Ò\ ‚[ށ„?,hϓš+œ‚5 ż" Aġ3^OG`'—ĊVif‚ÑtP†ˆR`Ĉİ 4Ĝ€ġ£Ċà }=½ş¤PĈnê’Z……Ô}uİ@˜^mîQR”ĤÌĦġ0K€.$³Ì‚ôŬI͂T´¨k¨G4óM¨ĵÂ<„úÏQ#ïM×SĊıŻi:£˘lœÎWP8˙ mN0Ŝöbğx· £à W„¸ĝr×î=•ß> stream xœÍVÛnÚ@}÷WĴè‹]•eïöVêC˘ş)ŞŞŞƒ—”Ĉ`bLĞ(Í÷ö7ş L0‰İZµÊ²sfĉœ™ñèÜ1@ĉoŭ;œXž ĉ֍Ċƒ.Âu!÷àˆrÈ BxPP*L-D„2pġt€5².t~&òÎ  AŽu€‹!ĈyG]ëZ:ŭÙ:“ü…K™€ƒXż@·äM[}ÍiÖ7^vĴ†ph–” p‰‚‘µj܃. ¸„Bôż&Ö'û™SLj#{NÔK§Î‰Ĥ,İ] £(Uóùe’\YšdIÍùĵ³0Öy‘AË žo£gá:ĵZ%àiײE–¤0^ĊÁWƒÙíLċÜ+â’Z€ÜcĠUé<™¨èmİäQ£ħŠ£mÔ]9)À)fEÌóë p1ıTéj2P^Şxƒ!vëäÔo zŝĊûfÏ]aúP¨|ìúƒ~kvÎÊZrżUƒŬÄó âÇQ%éäïIovJŝr5 Çq%ñ´şĝón<ŝûıÏ$Ój[ώ}×? ޏí÷û'g~A)-Ħn"Eŝžg×`~oàêFÀÔYrŻ=ÑϝmNšg*Ú9Rb÷HjċĦÊ9tRk #úÖ#ş“ éöw`Uz ö/_ŽŻŝÁĉĠv6Wz˙§ä›²‡ŝ!ñäÀ€_öÁ>&ŜïĵoÂV\Ò`#îAŽHÂEœ …ñb›G·íyÛ/]­ûŸÎîÒ?xİtç6{n*È£ŻGı޽ääÄÛç§Í–ìÌÑĵKòwèíMàñO°ÑÓM@,+%Ğ 9ÂÔÖĥÑc ˆ,›2'ĝj°ĴˆĊzÄÚÂÌñc!•\Jħtwéa3ĝ [n1Xr@µÉDÚĦ.Íà—,›Í_6ÔÁF –v8…iŬİ{ĜÖ.Ğf0IŻÚï9D#0"ĥ1~Żz]O£ÜżG j9'&8b—’E*t°ž”‡¸½PYĤâzyµ–.·ß8ÌĴ,÷ìgìiÊ?“ñ| ~ŽÖ\Úŭ,ı^fsġ9Wñí–o£Gˆ1÷Ö/² öżendstream endobj 211 0 obj << /Filter /FlateDecode /Length 1633 >> stream xœµX[oÛ6~7ú#Ż@éĦayɽ%¨;`ë°41V ma(6¨•-W’Ó[ïŝĈ)ëĉHI´ÉƒMêÜyĝ}GŝLâŝ÷Ÿ‹ġèٙ .óÑǑ¤k­ÎC†µ $áKp£%Ö,Èl:ĜŒ6†0.‚Ë{hŒV£WàA„• …ı‘N`‚‚ XR§ 1Ż<l4W"ĝ” ~­ŭ(.4`}s2’‡íÙİ´’Ñ9C î#ê‹ì?ëàdarlBĊt0[Ê Ñ@ Ì8 ĊÖül=zƒ~šq*@Ú Ż“w³ßF”‚&aÁìċhösçùu”ììäH‚ş1ŭӈ3ÚŒL8ÚDkûK#>~ŭçÙï– Ù§³[_ĜĴÖBÌËÄñµ½ÉˆŜ´Ÿ ğÉt3Ï˘Í]bÂè>öğyeEí›!JH.U=ħ›e-/kËwÒë ’IzvÖ6Ï£K;/lë€e7àÊÜa…—Ë ´OÒô¸O~ÛdÙ{€”÷dwh~k³<ŬŒûJwxnt •|]Ĝ¤Uê—Ç'ӗó³ééôx6}ŜçÁ•£ÌìïÓéüéùùñŻÓ!ñy;­Ñğ"Íâ(Á§­Tno÷¸nf1prıÍE}CîwfÓĊUz^*öžÙÚWé²İToçöJ҉7Û]1ŻËêÚ,ĵµD½™îŠf䐙܆t[ÀġÍoŻéûè:šo£Ċ¸7ġy 4^¤kl?Gëmbë€î:so ²²Ù|‘Dy^—2£˘sÇN³´HóĦ µzvĉPFFG X˜àˆÄSb‚Ù ˜aÊħÀà́!œĈì š‰+0­%ŠrœÄyá6&„˘ġ„d ˘o\ıb€ŭ2NqvöèODàŒıvèïÌŜU‡ĤĞR…áĠ†|1*€Âĥ⛺“ıĉU -26w J!ŭWÈÈU}Y=aèĴy²ŻÁŜFqùsäħH7Eoòŭc¸,…/ _ ÍYĵ….¨$l>ÚĜ:&¸ŜèĊU\ =JlyčRĴ<÷˜”*“kĴO(-m—2W73 Sš€P ÔP,o$J„—w+ĝ‰¤™D@Ž@/Ġ“5!²w Á˜Ħ­qdĜ‡40eŸf-f¨ÂÉ 3*ȆGŞoAÌUÒM ŬŽòĊúöÁĈ@ĉî6·­EÔĜwWN ¸ÉP_=w5¤îş|ÜrñŭJF•q#hÛÑ*NìóĤá^8&9&Êîíäí¤6Ú´.UœAç×m#äíÓô ÂAë‚ÔIÔ­ °ô)zĜŝı·˙Ù˜h€ĵj6ö(ŝxßAŭÌáEZ÷żž7Vġ 5ÎqŽž6ç ~H—=iŠq~Àɓ޳Ç-şÁ˜ޤe´ áĤßÖ°rħ)LŒCŝšĜä b#Âc½[]Í;w“ì•ŝ“z?2T{mïúV&£SLŞĥVdpÇA˜,ڔ WŜ ğÀ%Úċ֋ .ŽŠ´QÉl‘ĊöÚVzĵä*Xx)w•ܧԤÌÓE ¤ıĴÔ§¸¸*ĠöúĤÒW^żÍK  xéHpgŬWĴÙ(ÜC >Ùr‹° HDCišXŸ²3EÙċnm7E%!÷q ŞË‚8I˘|kñ#ż*£‰W•­vIÒĴĥQqċÒÏġ(³•ĤpİĊ™]öÒ,u$Ìé7ì°Ĉ!Zc8˜é­şÑŜâäG1-3×vğ?- !ç“?šf†ÂéŽËD³Ħk´éûñ,‡ŜÑ… YV²V‹¸ÙÖÜB³ƒ ĞB÷ž•ı;Ğ4˙p–…q3$DtYö }אÔ8*Ù°ĉŜş­qE "Ħ=>µG¸,yI8ÓċÒ&ÈÀ(xuÚÙ˘°ÉS)z1>_,–/›˙Ò8ߋ„n½Ĵ@´ŜšÈ&_A5seEgŝ%dW˘ú+Ü8g…á0ûß*lÒ[HW¨‰÷…½ÈvQĉêà8Y£/•k…ÔÓÒ2#ŒôV^ëÂP²Ò¸+éĴMcİ4ċ{.ë{vĈ˜ûAóĠèĉîÄendstream endobj 212 0 obj << /Filter /FlateDecode /Length 2604 >> stream xœ½Zێı}ò‚³ÀR‰‡nŜÉò²Ž×@Ž=‹<Ĝû ‘zf´–Ôcuˆüo~#‡lR}µV£Ñó0}aU‘Ċ:§ŞĜú<Î(gŝ/ŝŸ­F/Ŝ™ñM9úŝÏx=ʨ3Rgn|óÇ£ëÑżĦ_êd€S¤à”iȌ*M2ɂ¤Î #Ç_aKCİc×GĜz[fġyÄ Çñßl5ŝù³jì¨Ó†Ûñċġ¨^>+K Әç‹WĞİĥUħYL—ôm)‹ġäò÷ÑĞKŻZ–)ià=Ħ3–ábĵ6Èì>ƒLÊáĥÁZ&wÖ ˜à.ÚqĦ¸Îœ`Ir*èXş^,óżçċl³¸³ögŠšŒw”$'çuçbƒ³¸@ eĴci=]ċq˘\ˆ‹Z³W:9He™³¸€ŸÂĠéÙ2P§:ĥ.ßŭúê1Ó7–J§ğÓoöwÇÚ(A­lA’Sż _¸Œ ÙĊ°@à‹†'0Q![?O.ÛùÀ~›\(މ8EžMçóM^–WEñ‰ŜmŠŞx6ùíò>âàDê8\ ù¨tŝúBpŞ$×Ë9t‚Ġú2Ä×äò6Ÿ\p›ÌğélÂŭVäÓtÂÂSGnüDĵOñƒıĊL4YċĠm1§É:Çş”ĥĈÇnĜDĴkĈ`XšYWGÌmˆ÷!_0+ n;"˜Ĝ§éM2Ċ}IÙüg‰YƒIüĴgÓµżÑXŽ!Wy|aٖyf5İŠtM6yµYä_òZÌ9AŞÛ$gìnj;ÑrVÜĊÁ“dZ–Ċl1­jíx–IòuQŬFÍĦnQ&}‚üi™„™7ʰo^]íï6˜ÁÊsé°@Lğ:ĥr¨fÇä6 @‚äż[ŝl|ÚüÙĥtöüÙVŝtùó靕ògÛR‹Nġ’ĥ@Û°“v@SĈ*ÊLÓH^Ìİá$4,‚ĵl4 \9è€úÓ1ĤĴ¤Â²C9(AïYCF \'ıÛ, WÊo³ĥÊÇÖĦmÎĈ–ÚŒ(ÚSєŻ(–ĥžŠg$.é0wÇÉû|3ı—`òe1óĴiö‘whSzе¤lñĉĦéççZyŒµ)½)ŞÚŞ3š\o—Ëo¸µÀdħş[ĉĞ| âÇĴ…ñIĵÉóyÇdĥÎ2^ÜÖİÈ2<ĉdVĴ×ùĴÎAıjœy?h†Ô”'‹šĵ{û2 Rùiµ(ÖaÊELĝA-y]7H7Ŝ3°Ì\ßŭÂ&@| o}­1+–^X„ìùóöúÔ[?@8‘—ħàĥċD£u)Ÿ£CòW §Ú.pı§t@âC½ÊÓp¤ÒġEYl7ġŝòŞ—‹ĞÍt}í×Ä%™yœF†e]ïŠÏ—zĥÜÎó4–“˙ŭKĝ?zÌ/§ïħçQB8rµ­˘m¤û˜Ĵƒ2Љ`*naÖÙBxÇI’OËE¸ lip|ßé S‰^Ö³PJcƒ­ËžN}ÇͤD‘óÏÑċ_"8XżĤS$2żQĥĉ^ú—2'aħŻĴÒd‡háğ ŜçyOÍĵ çéb‡ 'ytq!QLúé&``²!ԝ {\êŻħ­m—BsĈLk¨°kç'h£”™:OYÀA)kϓÜxOS{ìUȑR™Ò…×cCÜlò%üÏŸÇì†hK dC¤Ġä W_ĊĥL8ı+ÊrqµX.Şo&cHÂ]kò²X£µÁ&bS“cäkħ]ΓŻu¤µĜóe•ò5_ΊUNÏQ0Pħż >2Ñ9"qsä×Ê/mhéè\¤Ŝ1¤HôH^Î ÔÌ×ólħñáİ&ŠĞߝeŭÀŻ8Dġ½£3–ċtâ3§°İ)FK–ŸT\t(”Qĝh, JÓ#û†ĊZ[bZŝËOoo“Üĥ…bAĦÀl$?€Ħ×3ħAà .S•`bżë_ RVÓġ|ş™7o½7g-i¸iv;]/ÊU]š Î(p킲zğÊP4şŒóîÒŻÉ§LÁM[¤ÎxϽܽpbœŞXÔ`- k†”EO‰Ŭµ{€xL6-›7Ó$@ÊÛbjt[òӞĥä…újWĵ $ĉxú~Ó>4ĵ×I`˘•í: ‘iêqxDË>háŭé‰Pp ×Î'^ħë5êÖ1•§{î}›^­b”Ǥúv·ğ‘íÊĤ~fë*Ħ~ŻEn§¨E^çkTw Ĵ[’û=ħUE3†Ž]tô~ì…ìk]…@ĊĜ>ŽA—×=#êµŭ€áèĥĠşşĦï,íŜġ€ŝÓ{W!5Zt{×~Äx6Jñ˘§.1ĵ ĊB}zµ½ĤÍ!L¨ñ~ŒCñú/…jÂêz‘/})›B·ÌĞ=ĜUJQ kŝdöú‡zہŒÂ ŝ âZƒ˙6žŽËµ`a€|½]íEü“"™[KµagGr[ï=$Ó··Ċ:żDî4—ÜÊñ˜è‘ô™À>ÓôŸŽi.R ÓŻ>ûp aez¸ĉC¸–¸fEĦf½*‡q=,Ûĉ2‹°>%ݰñd¸öÇÜâÇ:x8ŬŠïlßÓñ}Eô#ŬÖ{ĜgŝZx*a;&xÌâĈ°Ž|5],÷ħSÌ`îdz°@?äò‘ĠeĦúOg!Ĥüá‚< ŭâƒ} ĵşGCòÁ4”eĉ´t7²Lú]8…€ <û0t÷Vñ‡ħÏrñ´äƒêÌşó÷m½_ƒœñ%êÌLގݳ}¸ô˜™ê­^Ÿ³÷—"L„ocÇÒÑàĝ{ßÂŝ?¸&V˙˜Ÿ‰Pí×p>2joÛá’h°Ġi¸(œÄùO™qġoQž2ĤoQ$ ?E!BÇCÙ gYn‘8ùo+p<µíjK~c(zNMyf˘ßnĞêüéĊ‹Ù&üE0GĤkşı˜\XFàH‹Í͋ôĞ–qâż4˙í]ÏÛë#ŭöÎIjEµîNéĠ|ž/ŻÂѤÍÙĉU•/ÑŻ _™HfʒzÎ̟˙ŝŻ¨ÏƒMĝOp£y_Ÿ‚65ɗߚùx‡>ïĤÄĠ˙W dlendstream endobj 213 0 obj << /Filter /FlateDecode /Length 2351 >> stream xœµYmÛĈŝ.ĝGgĜ+Nrıo b H)Ú"9ĞíŸó¤Ġ™=Š”IʗƒŸÑßĜżÑ™}áR:ž|mĝi9ğ3ÏÌÎëú<Ħé<Áŝïj;ûêRÍoşYB“œ³Lg@Ë"‡R ÁĠĵ½™}˜öÜÜ˙Ymçß-á,,5ĠIšòùr3sLÓıHİÊr1WŒS —ÛÙ’QFÏ"IÈ›í2}ÙÔôüíòϳŸgÉü„6ÏݐZY!4a^NÊ2*Ë!Ë÷ĉ|ù/8” 8”KĊôZÊ3ŠŸĈG.j›ùnżq•–sŞ$;ÔjWĴn‹sà §I"H‰şmMŬwĝ-ƒoŒô€ } Tg30áŭSSUEû·bkşÓ¸2 .q½Î<$ĈȍİM[,²Ù×+4½C—+rEÖĉYm֎\BŝEԂċôdߗĠÚWŠj=_¤)äËu´ŬĠùù‚İÜBŬ4-.4ÈOIQUÂÉŞ*şÎtÎc,›4óüXêĝEżòœL8ùÚ*ÀhĈ´`ó˜rĝ˙ ákÜġÌT뀖”ŒĜ9ğÀ5eîâ/³ċÄp€¨ˆİ÷Û Ğ ŭŭÎSQ%Ŭt½ §Ñ1˜“pü•ÚÍÑkÓ­Úr×7í0ç€Oé|÷˜ç˙À¨ov‹Ê|4UĝĈù7u>4ĥ(›ĝ@ÓS‚žU&Úób,KÈNI˘çâ%Sı‹ċÁŸ³ÔIĊ „¤ëD’}]•·Ĥşw_ò\î á˘g%žmñt’ğè"ÛŸŜwĤ]„”`ù*ċŬÇ4'Í&l—`ŻbĠ;À*S‡;°‰'Îí‚|IŠ.g¤İAJÏ­2pC”1H¤èŞŜ“VCÎBœê¨ )(Oµ³é–LcžÎBhfƒ¤{ïˆh¸5ž˜“]kVfmêUĝ4Ä.”$Ğq.²ìá…td}ÄrQäúsĞxEyS_DbWzö™[KĜĝüž,¸Ü[ÖQYudSTwĊ}ˆŒ\<¤ÁÍ-XÀzáħıDFıÎ\ëĈkN3Ĵ)d\¸Îk è:‡Ìwwe˙5ĵ[Żŭ< Iċ˙ĠP Ż„ŸiŞ8;ż|ïƒ ÖUÁ ŜÊêİÉFYž:%ÖÈ ĈĠYv#n”Iì<¸ĠĦí‰Χ ċŠÒé3<Iŝê3ÜIĴ<kϏ°†Ò˘5ÇĉĴoMx6F·èpà€-ÇÇaHċ°Žî>÷9Ú÷:ċ::ÓaûU§°)F5d3/ú›IpFċvĵ!‹Ĝž²IWXhˆMĦ´o3µ÷´n¸[ ß-„ƒ¤„[Ŭ”V·„)˘mĥ‘8:'ŬÁšödhNÇüĊżŬtûë+…½ùöíYp8hÑÎÂOMâç‚aĴ°6HĈ² µÛµeŬo{aÛħ³ëˆÍ‹îmäñu”ô˘‹²8ÜàEĜT֟ƒ]9 ğ<s|h˘LòL n.¨c>x÷-ôh4 ÉÉĞĤ{ƒìÎuñNA9ÙW}$bŽžD~sYĴB#oƒÍ£¨ltaG9—}IóëHn° >ĥ*ÜÈ9İmf£ħ”mŽQšuŒ†k³* 9~è+IP'ĠäioğÛوßû›ĞRt4z°Ö8•F÷ċިìEt‘!r8ó€i8;`RCQ˜2êA—ä4v…>lÀĥ½hGWÒß5,é oDj•KCúîŬğs"…^ÒF;r–<¨żM#Ï'Ú î¨~{]´ëc8á ÍÀ|´ùœdħ°i,ûŬú²ĞILĝbc­}÷Edûğà {:…ñ;l²Íŝ‡™€ PCÎL•4PÀ­ˆ ֚Ĥ[3˙çĵĈÎ5OožpbĥÖ_]r‰/¤(†r¨˙pò,à 05@ûs—€2Ċçw K‰ùO‘óÚŞ0=Ğ<òĝĈ)ËÀċRRžû^˘*MDBŜ¤oc°,/˙ŝŭT–S.s˜ :/m}yìñTS¤ôEèċËİ÷H0<ù֤ٙĥ臸êĠާÚÍ M‚dŜÙ`*şH‰ <Ô ŞŒ$Ž1;ÙûrìßB 3ËD]…ù RÜqìH,Ǐ×%û$IqŒé›'œ°Ž4r Ĥ…z=8°)’À |䇧ù ^„S½ġ17[$T§ùt vĵÉɉ^O‰ĝ€–¤c΁8¤OCւJĤĝA {x}9ܰ´ƒĊ8ÚòyàñGחsé]Ĉż’_L'ü†Ğƒù[2ñÄÀ璂ÇàË"ô RKóùBr|.vż_ŻMu}Ž/jJ ²7}oŞ‹0§äĠ9·*bqgT@¤ŝ§ Żıa:ĈEJ^÷Í­ĈĦWĈ—k†ĤŭÇ 6ùGyS£0P"Íüp'cÜ\ =BŞyeÛ}Ñ˘ĉ0Şû Zċ"KX2iŜ$E÷~ġ‰â@šĤ0A 9%SƒŻAGϰ0ü<û/ħ•^endstream endobj 214 0 obj << /Filter /FlateDecode /Length 2844 >> stream xœÍZÛnÜÈ}ìG0ğÛX-ö½Û‰x{‘`x×òàŬjĤGâzf(9ÒÈ·ä÷òİñ&ÎXYFàĊfUuĠİSĠE~ÈrL²Üŭ‹˙/6³ó_TvUÏ>̄äX‰L-°ÊDÎ4#2ǜe;›ŭ+ÛÎrl—ıÉ>µ|ĥšŭ ²ıLÂ)Ĥ‚ğċ Sëyށġs“|ŽfŠgw I‚LC²?İé-hÊÁ˘3â÷–Ċ˙›ì‡ °‰Ì`#ĠÙĊj6hĴˆ‹(2gÙĊf†6d~ñûìĠ…ˆ5ÉWà*&s’lwXÑS:w›ÓzÑéĝl£ Žp14šĥÛ JÍ8&˘s–Ò˜Ñ £É)]?àÙ,e@ˆ'l~"~ ġLjëĊŸ9İ vw6³wèğù„+GïÈoó3AÁ#ë—?½}5˙íâ.@D İ•“d0—ĈìŒJ%dvħ/׍Ŭm‹ĤĵµësÂÑèÙüŒ‚µ°5×6JĤ¤r0ä b½ĈöXğ°Œsƒ•„ŭçAjż]4eµu* Îs‰Eş ]Ú¤[˘}m—Ïâ-jœ’êÜ^ĊR "=GPS­íĜ.lú“Bw×6 Ĥ-ŞÍMħsOm‡ ‚5„8lgµŠfb+TcŞŽĞŞ]X2ŠÁ\Óä˜eµż\Û Q€ĵĠw[Ĵ÷ĥĈ½DÌ §L3—‰Š aà‡ÔÂċĉħ„Ì30ĵÁ‘˜z3)˜ÇhòmìnNÎ%èÊ! |Çr~„Ÿı–{˜½$ġÚôµ;•WS>¸÷]ú.R`ĦUşC˘äxiPs—î) ÷êş¸²uwğZ%óVA]lz8j>ŜĜžZŠRG)ÁS`‘şqĝáÀB=m Gp F>¨bÑñÖ!žt `Dĥ‘èŻg=l`Bö˜&Ğà‡ †š˜,"‰ó{ŠÑÖŜ=˘ŠSBuc‰ż˘fßTğ²X7vWWÛg½ ĊqIT8gôGä ĉ#Šƒ…4ì#“ñĉˆŠ·OR'ħ <(ğ$=ħH RĜ@Ŝ J~ı.ÍWF޵ĤéÔĝ†p2ÜÊD‘ä.{ÁŞäÒ‘׏ñC…Sġc0Ÿ,‘‡ĊŸ^!9èJ3Ĵ}Jô%hrĠ^IPPŭEߏBóŭÄ8™\…)Ħùċ(?0r&,°…’ñˆŠ§JFf 7˘ĉ œßRÓڗĝÄMk_Ġc˜pĞŬÑó é_ŽIÂñ‡ T}Q&q%jÛ`+“ 7އ|˜½Š&“ŒÚK¨ƒŸË&GäŸN'ÌÙÄF wÛrú­K:÷ö˜ú§ûLnQ‚îÊĉş;^ĉé§AĞҗuכ×ĥ™âŸ"$F§ ~„~­;:ŝ‡uîqÏAùz„LïŞ Ùw]4¤@îÉúħĜPÀ(ml‚4şÜ7³ßÙ.6~Dn,Ğ^Ëş‹Eı­[,3GoM„Jêl…ûEÓá ùÀŒ:üÀ(¨°PB%eûTF‘zFQMÒqŝI 4[&ìáŬòáĈŜdàÉO(GTş!ŽĴ§G7pHĊ:½”ŒŻ$ŭ)˙ċrN|˘Jt;wc#rïwŭ‰ÜÍ(zm‹fż³uzŬ=%dFœSqLâXèĠŬÖpzŻO w6ĞPnˆ·ò8¤ï¤ƒ:÷˙â:\:ĉùXí$Áż_wS 0÷˘qiëbgŭJ?ñÏ+´+ĥ~–ċ˘ki7°tGĦí~s ÁNÒU˜Yx)4 ëş (j‹&Ŝb(İ÷ŻÌ‹Û˘\îŭu410hĴÄÈĤ­z7ş½ħqt9ıŽÌìàYûIó;ż%Ò;E‹à£ö€Ŭ\‡x§µnrÓĵ›üÀÉħPÜ[Hö#˘Ċ^ˆi]*oí6İc}1qˆċ”èĤŞëòrŭ1µ$yÖ½uSË] Ĥßm'ż1HĜç@w„ÓwÙU°ÇÉaëVäNÉĞßĴmÚmÎ}fWû&™ĈÑuq›>y¸—z Ê&MÁi_˘#ğ,›xĦépp|rUn‹u„Q§Ŝ‡Ô£­µ' ÄĝÔh×ñ‚` Œĵnš›úùùùÒΙ˙6A78NËv]Ŭ8Äx֐áĞŞşèşkĊ rƒèsïċEµ>*µ#èÒ³ pÚŻV^.qNĜĠçËjQ‡'³s‰şô>;Z0`ĝÁĉÂtéʇÊÎêw°qoÁŝY5ċ˘ CJX˙YM6‹şéY—Ûöž¸7„(U@eo­œúxEµŸôtÉm"¨^\ÛMú8‡şŝwR›†šëˆ3~C´\—×—Uġŝ`6gH’â2}ÌĦÉĞêŜ·B}gHô|Ò 3]-g:;£bÌD˙Û§§^޽^²×ùzŝ2ġŭ•àĤ³ê§ò‰Ìş2‡lTßĜEùMÈmê7xšzÎñü/ŭ8>²ûP„Dvbŝ÷heôm¸ĉKÂ77Q£›²1ÀĊUÙŻ3À—ĥı³ĥUh‚k’ÀbğLFç›îNdfêyŞĞ%­BW.Ú+Ŝ(ߟ­ĤMút˘ñ Ç$Ž Ê38È\f‡rh§ Ì3ââĝc:ċŭµú÷ŭRÀèżû#˜‡Ò[_Z²pìĉh7šC?9 ·ĊnîÂbÁĊï€ĞŜµßí˘ÁĠîêüĤXÌİ?îRô6ùâ—7.Ĥ?ìW$I›¸nÔ70éĠri׉!ĥiìúYìÀ”@Żç܃(ĜìßIŭ· yİ\bE¸ aÛĤzï)*‘ûâ°µ÷üJŬg³?Ïŝ‡ì´Jendstream endobj 215 0 obj << /Filter /FlateDecode /Length 4170 >> stream xœí;ÛräĈuŻ*–>bŞâ*alˆ /ëèÁN$ETVâRɀ3 Ú``–al}Eüŝ ŸsşhŒ†³+’ë'Ġ>ìè>}î}nüa–l–á?˙˙r{vqİg·ŬY–fVra|šçı…ÊäıÔ³ööì‡3Fûfŝżċvöû+Ĝ &5crvusĉ€²YÎR-l>Ó\ĤŝżÚž½NdÊÓù"ϲä_ËnÙVğiç Ħdš –lšĉí~—Î˙xġ‡³/Î=Ëf'Nċ3›ĉÊh:4͸?—ÁÁ‚OÎMÖċüê{Ĝ$rĜd•ĉ&F•é,5ŒMĥ\~Ó6}óûŭÛĝiœ³”+3rW,ß·%&0Ĉ’}Wvĝ”“Lú5}İ5 ?µŝS&“Uùi]üĈL%}q½ĥf6ıi‹my×´oŭÎZÑğ'Wu4‹€ċĴèü.`ġhûñ˜ĉf\…ĜĦbÖ WĈS+¤cÖËëïËeċ°ŭ)€żÊjPĞÙĠ*ĉ×8"’â]Qmpsx„6[|0ݵÌqÌ=¨äċĥĵ-ŝ ‰Ĥµ°x×6xĵSœH8J¤:Ë@8Y–Z͝p–b9OnÊ˘ß·ô9Á“b³i `À¨<Ó1ÔĠfs0,;E¨o<>Ì$UŬġ€Zî)ÇŻ‚'Ŭ\VĊ&`+“²~WµM½-ë> l“%OĜ> ùb4oĉI2iš‡1Ċ>ƒ³ 0ŞÚ£“ ¸IÂí2ĵ×IWíríi0ÄŬŻÁê…Ġ@£"àAÀ“(•2(}Ϙ˜:êfsRpŒ†ñƒ“j8ì7™Ċı2’[Ğ™‘ʰŞë²Şoŭ' fÒ5ĥ/jc’ğŞ_‡ áK@\}µ  T².şh!™ïy@Ĝ&U?"²şŻ‹mµÉߏÄü°/ÛÊ!!IYŻ£—~3×dÖôZċŜĴ#=£í!Ÿ5È"gŽÏ—sĦp}ž|F àÁ1íkQjïŠĥòŠo¸ĵġBh”ğIÇŬ (GÖê\ÖŞ;÷ŸQŠKÜĥ-‹::×ù3·6ËĠ ‡ÖħÀ¨êlwmُgzŬèĤiVé˜\WġÊKÏĥŜ‘à°¤ğß^7 ’%oPófî>:uCöA]>‡ŽR)`ġĵlylEÛ8w¨NÄ \£ğ&üuîÂ(Ó}vÛĜ‘âÀµZ+ştbXokôjn·ÁŸâ7qÁñ˙@â_Ïŭ ZĵÂ^ĉġÖŻìt<6Ġv·)ÑZIiµğHi=uïğZdnSaxÌħ÷yցٙM™0Sf°‡!2$¤C ċ6ğ=h„žĈéJí/ž;=ĞÉ,üÍ´-ûu³ זun…%û0ı2C)8—Š—Wß\nç\0ċŝ‹[0Ĉ ii²Ğ!Ô)XŒáX”…š*œ!żFŜ5­ÜÇm.Z‹ĥXöž—kĝÌ×G†íÇ´]‡ß”ŞRXĊ’ŬĤèA(á˜ħrᣰhéH%eŬ4cÖ#žú(\ Ġ:_pC…ôiŞ9_‡DHÈäÉîÛû1Ҍ÷_.Gb&$ĊOŜÈ#Î Ħ§(L™7/>rf$-d%\„ÌHErÄÀ•˘$ÏİFñ+Y˜/ Ê"I~ÓÎy–—&ı"ΠK›£OÂP…é_GĦ÷yÒìwJ¨â¸Ò)°kJÁW-BĈ’_îĉĠĠ˙¨²"0&‚$uÑGïÀZ‡’,@ñĝ7~f€2ù͕‡vT{ŸGëAŜwĊŭĝA`şVvDşà Ĥ¨ñêÊC]Í íJ5”…1d€Û²ë\M?‚°ş^áztt:S”Ö@V„n4úĈecV$™J§§*!Ü@`ùL‚"J%\HĝŬfsEžèd™YÀeĴ•Žwż> Àx›&ò2"ġde†[3ĊŸ=ßN)U0Nc”„’SŒ eÛìWÔŜ †£Ġ8QaÀĵ¤‚4óEá—;äyħ! ùç£Éždà²9BxN%;‘ë=¸á R’Ĝ5Ò|ˆ”$çôŝCrĵ‡Ïx|¸$N!Tw\j<—0Vr%ż[Ç/:‰C6Òk#“Ïcg”Șƒ˘KicĴĤžsÁ!+Ö€Fx Ĥ ta:´uŭSÀ="ĝȁ"ü4ÏG5ƒ L@%AĴLzŞġS¸³ ³€żuTUıѓ[7ùñˆb:náÖYpˆä3Á{~ç °ıMżnö·ëñқ”fĈ™;Şĥhıïó1ˆ‹>ËágĜeÁ†ÚŬÈÓelS³g!Á³cvLG°”çĉ„A?ĵÀ˘a!OÁm-˜Ö‡UmNòx“# í£GĵÁ†ÔçŸqDÂ8n!“À€$ç–ÛÓÉÑl9+˘£áîĵ{Š û?†ĝf¨z˙i¸EâëÍċĵ‹\ƒƒ,Žƒ‰£ŽžµB QräŻ 8t×ŝ˙Ġ(¤^pGÎ ?oR[Œĵž }– ï ;^ÇŜr˘zOs—èŬĝqñijɄ?ŜGԖè”gіŜ?B[ž ŭA["xĊ‘Š•À¸[²ŸQ²zxÇĦßĉÜ*üçÖĴNÀ‚ËĉéE+qìVo­ŬĠówoµ‡wpĉȎG´"Nœñê™ïÀ?˜úü‹'è%–°àŒ‹îψzpÑIE—%§Ĝ–//Oh@öf~´*Ìe† ’ƒ´Bž°ħ‡wj‘Ì Ê>HvŜoc'à?ŜĈ°xÉó|jc$4KT#˙ûÙĠŻiÏ,ĠK‹Á2•·Lż€€ŝx´‰ŝÓ3ħ5şüM‘¤Š÷Ġ ™á„KÂ:÷ŻÒG&îŭg͓e³½ê2ĵ0xíÒOX‹ Şá^ÍĈ|žNÌ'ôî\ċêœô‰Œ+ŸÉŒZíMXÏâ%]UßnÀ—Uı܀2÷Ĵ§Q5š£ ğ¨ş1Á¤ê†qŻP•w™=ŸĦĉúxb#9*ŒtħxĊ E½fÙĥë~˘Y!І†'uħf˜L2Àƒ\İߕ­Ÿúbnĝošğ²],‹nĜ­’˙™Üӟˆt‘ñY'?NÀI(1t8ü“jĉžÌEsOÇÊË ”8¨Ŭ´F‹d>8É µ4ż¨ëÏTW^ó‹>Z_Ae0ĝ‡ö‰Uv”:^eÇûԄ™—ÜĠĜİ4ñ2tÍ4U‹ŬKêX÷•IS,ħŒnPë²{\µİ;È[ô0( _ž{ Pı‹·{œĉGo5°*£žÏCÑÖ_`3MÖwe[›ê˙şÈ|w™ è „ÑŒzĝâĤá3Úb"sCĥž*À]0F½¤ë‚ŠUxN7ZìàƒòÀ!v]8É}ŞŞ.KQU# “(Ĥ Q–dSĈ|Ší¸…ÌiÄ RŸusŭY!éĵIĝàğÏ@]Û#ˆ"Lѝ2@yŞÍ… L{Œ×}ż{qqħŬ¤8Dîöíj_ÎÍĞ$-Wû‹v]íʋU³ĵX÷ÛÍE( ŜÌ9oÒ&Ĝ1e4⪓×<Ĉ<=’ĜÏċšÇH&)JâÈ Š“îRùîÊĥÁ^­hAÉËîBĝ™×Ĥyë?yE /R`vŜ ò8àhÖô™úÔUŭÉĴ—¤yJRÓÙ}ĥħÏ ÏVşnMrËd]ŝ‘cz”ÇtŒu×ïújóž–FaS>xŭBżšÓ$ŭwġĤz[*ùD+İ'Àç0H#Ĥ­cMP8;;@mİğkí–ğ²^…Ê8äîR‹†3ú6šW µ‘ìëUÙnîçÇ&á"ivs]X!‡P˘ Gbx°*‚á­ŠğyĜ޸ žÁŞ" ²ĥá@İñ"šU÷‚ôv´>‰İŜ†qċûh·à­÷×sFÎORˆĉ.'Un@ƒ/xŝğ‚0Kċ&>ŜÙÑ yÎpBâĉlÁrdH²˜1£:|ħZ•›kêYkpèû²ïˍA9~9§ż}&iç,£&qQ˙­q MŬA?ô,yĠƒE4™'%Ċ³†cš;31ÉV·5É ô7 ù`cëvŞŝ²ĵn÷hۈ‹ĴîÑ:Ñnê áϨ € ‡'ŬÄ÷_<—&§™4Çrş[!ìP¸¸ä‡Pż=û;µTendstream endobj 216 0 obj << /Filter /FlateDecode /Length 1759 >> stream xœµXÛnÈ}òzlvßɐ‡ŬÍ$À"ÙÌzä!“ŠlÙ\ó˘%)9 ò-û{ûİê E Ïn‚À6ÙŬĠ§NU*úÇ5£|Í'ŝ.ÛĠŭCĥ~WŒ2Ğ„Ì%ĴÉLhmá“k­²ġ¸úqĊŭıuüUĥ믷p–Ş Wëí~Œòµ6T­Ö™P4·z½mW'†nî4ƒ{¸%š˘7w"˨µdżá–Ú\KÒñeÉŝ8‡Ï9eB’Á5Ŭ¸ùÇöÛĠûíêû[żLĴ-àÊ3ÄĊà{‹Á5ڇĦŸú²oà²2C>î÷n @üTœ<j )ÒNAZW>]=ĥq5'{ï. ¨Û~ri{NC_ş*8M—EӌñtĤÉ'òá›O\çdz*Ĥ´$I=Ηt}zo99ğùA’èŞyÛîì麐ĝ°&ù2PJqʔY—#à˙fû[<Ş<§\ñ+ßy§Èî8%ï8yqVÛâ|ñ³ïœÇnóĈX àm0Z…C 2Ï> †2IŠêTtSñèâz.HżÇżát–w/íqìÎqX}êİî"D݈kÚE. M“Ç\ˆÏÀiëĈ1^ŠGyH†,Ŭp‚½œ£óž%ÜUÉ IÊĤvŬt1Pö•ğ -ĈèĦȀ½Ĥy—Ì̞]ħkÎqşUÄp+Ÿ }—üžÁµü–à\!Ü@ŝĜ•SŬwESOhÙXOR 21™ú\qihĈÄÒ.y\ĵžE ûFŠk<‡˘|~A.$xĊ˜"ßġ/ ‹™KSJ’?öŭcš@ĠGÁ[ÂġDPtÔ°+†È#$úñĞE'• x×Ùµ›!9Ñ'•´­òĦ–˜:)ydNĝŬïNu/DúqĴwµ—™——™4Céği¨Ħ!´c +ä÷KlŞÄŸ!ğX„· ’ ÊLĥŭġ…qŸ’eßBxbnÙtր ä7Œö²pöŭ?'׍‚W(‘´4çŜs]Ò+¸ö¸Şg5našÔ]Òı'˙Êf6ÖVĜdœù‚‰ĈŭU‚¸ĉ䚤CPÎQ/іÍĥ0íŬ8… ĝUµP6é‹âmƒ s{QœByp§9żÎ³B5QéÜXBĒ|3=Çż™™S"Çú#§úħsÓÊi²äĞŞŞC!§C\.Ñt0˓…‡Ş/Èvç.1ž½ÁäìœĞ.˜xìohÀòD)ė.‹˙0LĈòĜi²Ċ0ñUĉĵçßpTQ…§…G!–Ĥ}Nŭ7³fŽĵ…Â$U2ÖñG(† ÀLfQ5QŒ½húrĈ ħ…€yqŽ{¤Ï÷¸I'ĠK+Š\š—ĵ¨<.E‘—>€óùËá oİ·†jh· ·Èmq*^ï%RkŞà銎?ôÜxQ­?ÖmŻPŝ:ìŠÎ=§îèSĠĦ˜Ê§¸G ŻoA×"‡ĈsÈח/×JQ…íj üŬÇG•&qym9UYĜPħġ|݈RÂí’ò—ŬÈ-:;~fžŸ@ċ]žOµ 'oĠX›Œj‰‡˜ŝeÙĥ˘*ċ~â¨Î]ÑÖ_%ıŬġİ?x7}˙|<Äg`ŭŒé,ÈèühúÓ˙8à%ô€“’/ÑEĊŻîfƒG)ŻéĠ+3ĉ§?Ŭ9ù“‡’“ğ*”kls>ĊÖ}Ġg—Í_“˘-ŝ?`Ç{W ò˜"ŬPn–Ï~u'4£9ü–œJÍ×Û üf1#Ôr/hN_ààîù÷…™_JûµµY¨Ò"[g‚`™ 4=MÓaüíŭ“ŸiAîKĝpÂv­qHĦŬĉ>Cà“s˜ö=äF ’‚Úbbŝî")żĴħż NMıĈöŞ\³ sHî'­!–ù×?lĥ @0s„üs_§j˜4IâƒĥäÔ?{k .ƒïŭƒĝ˜ïW˙ıÀBŒendstream endobj 217 0 obj << /Type /XRef /Length 232 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 218 /ID [<50e9fb6b0e622ab89976392b18b81969><721733799afc2123bba4634d9de61e67>] >> stream xœcb&F~0ù‰ $À8JCò?ŸâF ›ġ(ßúĈġp$˙3ˆMĜdóĊ/{ˆX"%şA¤`,˜L“‰ ’ï%ˆäĵ "™\@¤0û4ˆ” ‘ĴA$—.ˆäu‘<\@’‘{%ˆÍÏ 6 Ĵ†ßÌN‘Â`ğ¸¤@$· ˜ 6ŸKLöƒH#°™š`òXe+ĜĈó`Ù°ÛĤƒ}!fƒ]Î6™ƒL‚\ÂŻ– –ŭö¸4ù6ı,v'Ë<ÉĥlWXW%X%Ĝd°ßÙ5Σ% endstream endobj startxref 166600 %%EOF RProtoBuf/inst/doc/RProtoBuf-quickref.pdf0000644000176200001440000007426014552747062020067 0ustar liggesusers%PDF-1.5 %ż÷˘ŝ 1 0 obj << /Type /ObjStm /Length 1873 /Filter /FlateDecode /N 28 /First 205 >> stream xœÍYÛrÛ6}ïWà-édŻNfl+rìXŽ"9—ĥ“Z‚%6éTbçëğ ^Ŝ$şM§ EKì9 ’ƒb1bĉBpî›Ç$1 “¸Äö,âÏr 3³M‡0F˜çÁ'œÙpS.<°`îşaÜħĦ1ÂsÀ  ŭ\brO@gbÚ6t2ˆé èĈ% 1çIJ`4Žxޛĉ[p6álم3¸h‚=ÎYhÇ#`Îûé×_ ÈÌ_ú™O„6#têŻd §.î$Ħ§PĈ+òâ…êršH? âhäg’<ŭ nŒ†cšÌ=2ì'†ñäç˘]œ§×ò#\NâċĦÓ$^nşœM/ÉÙ:N³t‘wLċsƒ=ç?W>ÄÛîú:XĤäúûİô8ˆŞm”É(K‰`ùSMä2Oâ{è‡mC\cïİŸ@Ëòég2·É,Ħ™—÷ÙÙ<'àùht †q’óyKâĊ\f`“NGcpDŜg`òĊ Ŭ§Ò7Ó :ŸWì µ'~*•mz9›żš>ğœÌŭ(eĈÑI.ĦC´ˆ—A´"ôCGi°ğ1’4;]û D8wp$ó)„@¸ı§—~фè|{“)7™Ê§|ĝÁ2[ô:B¨İŸ^îĤTçf]ógşħl€0B[Ŭž- #ݵòÖÂáĜ˜…w?•Stœ.0P°ày÷JĞuy †xJOèÒ·tFtI%½ŭL#ӄft €ÉA;GÌÀé ŭU ìd †SSpR˘D5pWC|Ê+ÇA(0w†+#û‚v ÇÑ*”N‚4…ˆİby&7ïèž-zôcñ”Ĥcµ‘rq2?ğ 67ÛlbD ÷³Bo ÁŒB8DdBlĈFŝñ?î¸Ċ? ¤<ÊzıIGèĠ=äú~ĈĦÂa˜“[?LċÄúĝ·óÑGÈÑ&q{Êİ85L%…Ùf§Ób§5”ÒR[ŠÁÚuYzÚŸúíR·ÍQŒÚx]c˙[‡>V“…6ìC4Úˆ ‡˜[ĵ&Ĥ—a\Ñ7#ßÑÀI?+E--ġÀâg™U·Ħ\ċ$Ôŭ {ĜAv18”iŞhDÛ͍LÒ`+{İŭegryvs<¸ßñ|HY°}-aEœHE|•ñ´òŠĝ˘‘Ĝy­er5ĊuâÛMâ÷lè6ĥ+‡–Zp¤Ċëß§/ÏŻŠa/³Çm™E{ËÌĵŻù#xŭ²çN+Cl÷qר÷³½ÙşÍ5^Ğ­xcà•ŻöŜ˲ġ¤Ĝ‚ï–/oHü^_{Ş­¸àÍL+-Lò÷5Ëím…À>( D .B‡hĥx}q1zSŒ cĉ£éı^( vVk ÎZ°ëڈÇï" ŝRÂŜ‘hïëzĝc ùw |X÷Áħ”-0ò:Ġe}OQĵÊ7ˆ9kÒ{— +"”ϳ”ċoŠ@.zT²µQé 5|Ħeà+„öae BŬ>„ĥ@9ż½=-r˙yĥE žƒUQèï‰jw§~uV–Ŭׇm–-öm{íĞÙIcp^ä"M¸VéC8$ġ׳ƒl—ç[éKç‚ĉBoM÷akèB/ïİMĤż77zÓû,ĴĜ‚Ì@ xù?Ñ`İjg‚Œ3Ĉ ceÙÄO3EÙÁÏ1EÙO1…Y†Ÿaв ĵx;2ƒ‘>roğFÁí­„¨á·…?p³ì>^TÍŝk[ XM=ìĥüĈ„›endstream endobj 30 0 obj << /Subtype /XML /Type /Metadata /Length 1168 >> stream 2024-01-20T07:44:18-06:00 2024-01-20T07:44:18-06:00 TeX Untitled endstream endobj 31 0 obj << /Filter /FlateDecode /Length 4881 >> stream xœċ<ےÛ8vUûĜ_Ħê¤j¨ÔŠM܁Lĥ*ëĞÌĈŜñĜìCÛµĊ–¨n%QĤĜöô$ûùĊüFΔ(ġE’_b?48œ;|d)dĝßŭ/Î.ŜİÁÍú,K3)Ó Ŝ1E…0 µ\ Ş›³Ïgϸ?ĊàĊ%ŒĠJRC5\NϚ9É@T1#Š˜T2>¸\œ]%,Dsc’·îY)•TC|4™IY3a‚*ž”/à™ ˜‡$wĜLX–İd:qĤS­Lò3v0\jw˜áÔÌd”ÉdŒÏ.$O> GLŞ”iÚbBiRĜ” ˜Ÿ2JYÔèpcŒğF;Ġ²}ïàcóËTü? b(1ċS†&“Üûxù§³——g?Ÿ5 Ŝsĝİ€ç€lÓÑİÂWÈôU@8U_‘äċdH` cɤ˜_)ü`ĝ[Ôu1"0;ˆTqb'—<5HK9“Œ .'gI>ĵüe èi:EŻ’ß{:yW.òÙëäU•/˙·œ­{êTJÉ;Żû C…Ŝ 1_N,¸4$ysWUı732ıw/ˆLŜ×ċ' ˆ4£ZÁ›œ`BbT— c‡TiÎvQ˘Rè8‚? žž]ÍÂÂò cäƒëË2%$³8Ô@jšRĦšġ½­ëĠ?^\LfĠp„40b’Oi1i——Rżĵé¸\ Ÿ d½H 룐|ßÇà”5%4•ŠRVñ|µ£€LX*+ciu=[NÒYy>’‘ <ĉy䎏D.ÍhJ2ħ½ìHñ¤wFÖp­“b~?4l”LÒ²ş‰ûÉÂFRÁ €.Ĥ,Ó ÔË[ÙFżÀ†}R0Ò¨¤¨Ö³réŜ•|µêĸIrßì<ˆßj6/ĵR‚ÙiÇH–ĵ2”Ö ĴﵓeŞ’ğž)Ҕ­ċ,Q^Ï:0(‹H}ž{À¤f*ċÂùħ—żĉ‹ĠĵpÈd"YUVÓ•àÀJ‡8ßÙNY’ì>Ÿ X-­Ġ€š,KÁ|QΑŒ#™†eTĊà/ƒ%a…qX¸‡GœMaj A˘G %n@5x‚ÌÀAa`a@£‹§™âƒŻL‰Áôŝ!aRèŞ2I6,e€0™eËĈ‹‹áHP\f’,rôRċ …Ĉży[KÇċܵ€u{q7‚Àıî°ŝ_¨ïN“iY-òÚò!x}vùWÉú~Y翆iŝ`“ó çßÛ1Êh œrcVùĝS~SxP:İï겚ċóïû ”ĞÚj‡Kŝ%˙k4ĥŞ.hCZ4’”úi;'+ïê˘úëxžŻ×Ë|ÑN*ÛI˙8™TĊzŭ˘,?YĈ­£˘CÌ[àb ‚&˙e{š” <˜'½jU|›U¨şŸu]͖7í`N³€€oO0[֌df“°ˆn8ŬäF>ß ż?³ıX˜ĦXŜ-‚ooËeqyż*‚ò5“äżùéĊŻ_nÉNĤ˙·ŸŜĵÜG˙_~z÷ï[> Éß}Ĝ!½„m/!ÒñçğĊuQ=Ž’‡²ÌŝìRÒ+ñŞôµż"ʛ?W“bšßÍë-Î";?>ȝF°VE^Çġòd…[òÁ#ùĝµ.–èĊĵaQ@u–EŞ_%Ĉ8äú`Ñr" ż9áÙĉl-a¤²}KĜ§‹[wyĠŭÙ]B‡ħéa§ĊXµo]T_f—Ûò}·ñŒWdáƒCü0Rġ]µŒŒ{èԋ?ê†Ç˙tîŸ*Ħ—Ëb‹ÜG0t·ëŸëq5s6ܧĴûcj ĥÁášj—!PiyÄ D1…7˘ $(·'"ƒ\;Žvħq@J¨Ñ–Ó10ä´pf?§Í\È7mî ²OĴ{Q:ŠċŸ~X""ğ“Hâ4Ŭ Fé>€,Â2îc(žjĠu.ĊhHmĴq~%3Ju—’aDÉ V„K}˘‰&ïĴȳèĜż"ÔUbÓċà —'ġO/XJëP‚ë N½0 ’SĊO´0Ñä§^˜j+âV.Ž"XöêPóÇċ𷠐ÎúœÂk´ž.a˙— ĥOwI’{· šÀÖċ2FĊ‘2,CŽıpMúSH"1ۏì³Ĉ‚İĜ6vĜp2ŜÈmh‘2Îċ6ö9,}$€ѲaèV ġO£¸p<}#S1ôdY|=‚’Ċ3~hsË´ x~£0‹é.+ğıW·B?{H ú!QrŬ%2;Äġ10´Ĥ;ßixÔ&-S Öòh3ÁDíˆÑ¸uÍiòıݜ{“ˆĠóq9[Ÿb)˘CäİÙ A4óĉp+_? ?%M… 1èä|êĜ׋˙yZE:­ŠÊ`zĦğ`Ní\ˆ Ž›á˜ŭ6„dÙHÁuR÷òXOú4Y f72ÚÔ2­óRIYùêĞNgKĴÑb‰Vƒ_ğCĈċrYŒ1êġ^’”FUF­8pÏìñ^ğGlxŻħñ^f¤Zô>·ĵ—ğŝŒƒó“t0?£@<4ġ´ĝQs— i­&:,3ÚÊpfŸöĴ8%{½ÓİFá:%lDM˜hbZpT…èž’föS9Y_Ĝ4Ħ&uħXYjñ´ÎöDÓ~pş9R°úœu‹mX”×9@[v <@‘İâÌ˘ñ÷'I ĵ™ÒHkgb$ħ0] > XtìÜ ¤ŜpWWÛ/ġÖ Ŭ·5Ż`zŽĦ šƒÁ̸WúmT!‚zLUˆ§ŬĞ WÈĊoCŞbiĤe#U‡’é˘ġxJTz˘àĈéEëâĊòôħ"8 >(&ôüëġ!q Ĉ‚¤Ëı ŬŸÏwtŻa¸ĥnXf4eŒö8î‡G8Ç YĜü*kŭĥ„VM÷g†"KÁP,ĥ ÎÏüK!ëÙnñ£żŭ4v1Hj2€tĤçr÷Á`Ŝt÷v8k:Žá>˜Ħâĵ3ï´/'Ş‘µKêIœ,çċú ˜D|:snÓpDĜAP[ş.°*êjV|)—“úĥù‘Ĵòûy™Oq|-䌤œ’o Ù Kv騒ÍÛ)˜>K vÁRİ]Xŝ×Ż@ŸC<'p›OŒ~ŻÑg ö6xεIı‘=ÛUħaô#·FŸCÈÇuŻÑ·ğT1˙óm9$Xİßċu%’+òÑ}ÏCĦ,›†gí@‘QğŒ k’DÏ&z.Â3ÍÂ3—áYÑóDc%ëûD$d³| B|ôQ‰î˘Ħ£Xô™;B'‹žIÄĦ)ŸŽr?ÛLûY>ĈŸš˙Ou$öóì´ˆŝgZtĈöáÏYŒ?=і5PPƒ–Büàĝ“uTԑq=ˆëŜzLĤĝ…;)ÍÎŬĵó5ÛW„xT;+B,JËŝÖ) y•ĉLˆ@Û0ÑHÀöĕğúw g^’ÖÀ(h„<*ŞÜ áèeo¸ħ;;Ŝ~Z•‹ :G*ô´1 £ĤÉ3ğß Žìì5K%€'röZCÄÄ;é!Žä(ڙò¤vy”iËqj-X ùQĉލ'/ĝ80‚zh!€Iܟ-;Sž°àÀßâBÀÉ>rp*q3u‡óê BçwƒéİÖ´ÔŬ˘é·1‚CĈ~ÒìכÒħÌF4ċ·H|9g)WÇM|9·i8~ùHިûFŭCQ_ĵ/jżé^%ż+ĉ“uošL`­ÓÛàѤŬqÄîŬHúfĵ$%{T$ħĈóvE´K~ĝ yçğŞB{ŬF>ŒQ´ÓéLÀ"ÖÎgçÓñ| Qh}4ÈڂÎvۓV&pÏ£Úúbót²lù!žğí˘Xq̳÷]`°kˆŒ§‡ î¤ `Üû•‚N²…’ae~ÜħÇô΂YìPÓìè8ˆż,*óA·jSóa½Ž%cž›úaBĉŒH<,ÎIâjžÑ”ƒÍîpÎX̛ƒ§ ìħ˘ĉĊw³Éw§Mܸ ċ·Cit Iv‚(êÛ² eJ,+ú!ë€$IÁ2ĈÀát=hښüôħoÉ ßUà÷…Ĝ°í DŸœğmµ·xZškša•áŠ&ëĥĠ­Ċ‡2C…Ó3ˆ)#ÀÀĉ“ËÉlœ×ĊÚ×+’Ù´}̓v÷Ÿo¸mOjwĵ™}6'ŻTR,C RwÖ·Káü³ÊĜÍ4`ˆšoĦ´y ­ ­ËZì%ĜÍînö…zr‰Šq‡Àm‘XNĜbż?~;ö-b$KnbħÄ(ᨙĵ×ï{݉úÖáq:äĴñF$`*S"ù-4aÜd›<ŜǕ‹ù<ŒŻ\áT”ßžk£Ëöŭş¨ûı JréDU4'fzÉ­žÄĵĥ&ïv1Ì£’µ§všC´™!I³9Œ4{íž|Ôvkƒ>ş´ŒÀì& 0ĥn—‡!ĥêgÛİĥU?ß?ê €xlWèû0QT£hfv3Yst”-ñ—? ü(†v6áĞÈîR‡VVù°EĊ~kß´²at,DĠTƒÊhs‘| Ż#Ĉµ~żi%£ßнf³zŠ™ÈqùžÌĥfƒe(ğMi–A‚÷k@hOY SQ ½[Á³|ĥ/÷`‘Ĉĝĝs)0ÛÊgxŭ‚]Wj:píÙx{Yƒ²µ‹nÒëĈ×L‘*˘d×"Ż.ĥµnJÇÀËÛH`–Í%F&. ġëÈób„D4[ö: -qDĈî°&UI şĥú:PtèĴ{mÌ&OšÇßéš<üO¤°z·Íi—ĵቔV•Ż[uıoLµkoôh1ÄMŭĠ TLÁŬ|ÚëüSsam”'CS.ÇÍ`ĉQ8`‹Žµ‹>„ûHˆâ—CÑB(ä[0zbÄ îòPŠ—(¸°-Z†Ż½Ĥ~ġÑ\[•Í2ÊĞY ²ĥ-‰eŻk çF›Kh#‰g˙ ½ħEğÉ yí÷~ġ^kĉ&j}W½GϞDŬÛ,şĉdúڍínZo6ÍÂ3ġžĞ¨Ç·Áe„ŜġˆÄnòÈàkc=òI‰ĎñG"ŜQFb€?2VFßò etI ÁíÙz[ëÇz×nR…öî(Oâچ(ÖŞ™än\ßUŜ̃z^´N‡6ġû0£Œ˘ġôь‡U½VhÜ˙Âîœ0ÁösÉ#ë¸4͛@‚C¸ë˘êCUĴAlò:\³Sĉ÷²¨ë$}`éiHy˙ÀÒÇN2Êxnžà$û¨–FĜû6İöíH5žŻ`(Í­c”xíɇdmOÙ߄b¸Úǒ(ˆBOx,iáŠiÚÇ-iħ­Ex|(`•B:“â>&m­-„µé”7Ìw}n3²_qÌĵíÄ Œ6­[M|n Èċ£â丒°~¤ ÙFp6žéuàÛ '$n~‡$}ĠËŻrsŭwD')ÇıëŞ9Ú@gĉšg{˙A0޳UmwˆàKábF|6&Ċ#>aXÑĉö˙Ğ;ÎŜEċŜl}ÜhŬ £"4v/ĊÖ½NPÀ#‡âÎĵ)ĞÖösHĤ6˘ċàGËô‘Ÿécĉ· ÀC  ~DòQçĞğù<ĝŸ˙œŬ,ñÚ·^ÑB#Ĥ9÷Ğĝ7• f°ż¸KOżEĝ„çĦÙ^ż™VÉÛ>ûál¸mfŽDôEh½ Ó8Ú$Éĥ.7ĉŬ²wàó̕oîш‘ÈPxġ†˘ŝéŭûVÇßıŬdĈjUôW ü$˙/–dĠëaV›Ĥ-àä%Ñİ˘™êz’p—˜ż¨ïk‹CxİXü èñwömݧfh{pë5Ĵ{cߤq-ÌAäZĉ%ŜÚcŻÍ#`қ²ĵ™C_ÀĞ/VŭÑp¤z½LG ÷!‡FSi/o…Œĥ1dÉ;Ë;`×ó.5ìg‹A ‡†`Í2ˆ)“†U7³úöîzˆ6D\ Ü͖xċĦ†˜İıÙò"Ş6Z.]·…À8’öš‘ŬtLù`ÄĴKra¤_¤qêñ2Í|™VÀqMpĉ_Šq7+^Ĵòqsñà…wIü!0è€K9’Š eŠÂÛlŜl'ĥ0[³>"àÈĥü·'0‹§”:ĤÍ_ו½JÑRštó6W)êpâ&vXY–Âı|çïbşàÉTò„üÏӅ$뽃RÊ7ÒÎ ĉSàm‡?Ÿŭ >p´endstream endobj 32 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1722 >> stream xœUT{TçeafL9¨Ì`u3• ĈGE[CŠħ)â xˆQĊ,PX–ĝ€]]ËoYv—7,ƒA$`4TàiZ1 nëmµ(5 =9ĉÙßpžY’üù}sîŭîŭŬûSPŜ^”BĦ‹Ŭ™p ;/|Ŭš¨#Y‡Ü'*™Î™~Í|•àëŬĞfù·ĝŻ ?XDıżEÙQGr_Ê×Ĥz]żkwF&EĊQ˨x*ZA%Q{¨-T4C½D…Sëİ Ôv*–Z,QŜT:ġb£˘Ôk­Wğ׌ò¨ò ï£Ŝ_ùìô™ ÷ÑÌςߌWĝÓT[ŽğÀċ˙!ŞqŞı­Rù  wċëW/?óӔ_ċ Wé.cóA!ƒN+ÖkÄ˙y3iuĊ½Â%úbm;"e\ż|m°6?Y ç˜LûñËsW2Ç?’(˜ÀÓ.L›„!xĠ„B1ğ2½÷€!DtjlŸµ ]ƒq·’ 8 ŠYĤ)v\ŝß0ĥ·‰$GyB“@È‹i¸€ĉĈŜEĥ|xŽü… 6"g4úӜ÷;(áE?i@?Ž“.ĊyYf&Ş•RjyŒˆœ ϑÈÍëÉ/ÈsQŽá\!u=ż Ö ŝuw &˙‹lxA›QäGȎI>SŠaT)Q’D~€iûG˘ „Ú'TŒxŒÊœoTïĴQÛ˜şóîÇU-ĉJ€·X;úÇ2…ŬeÈċĝ‰üĥé°Ğ<61öR›Q İ´ħ´Ä(Ĉ0Fk‰]¸Gè,cfY&석ŽÔŝ”!ƒ Fa´ÖueèÒÀGŽ şKÏuuhßÌĞ4YLUÀÚÀj5ÛÎ|örkYċïšÓ5Ġi5‹–ChÁ–˜èmĴ€•ΰј[Ñ_ëŒ9F/°U•–*°ÊïTÔe`½!>9Θ ,K| x²ü‹géö³ĉ+"QÚy.ž˘ıĴaKëíKïBÓ.Ë îĊĞŬĠ páÓ —˙Ş6şĊK‹§|?oV˜3ì,—lË.€K_$Çȳb$S.§¤œ"yÄpĈÙ6q[=}’é2–Œ ú-¸4ÒĠzްUà‚OÛ-&ëÒ¨mv/˘÷‡ŬËí6N(ÉUs ¨œĉ\W­!kb™żsŜŸ-mf0üó›*1`Ğ~Y"?lą46ÄEËĜÊ%yÔĈ‚ûҝqıĊĦ‡ĦÊéœâqŝš4‘Îx’@v¸íŽv°v ½Im™–ò  şK7´ƒ³ÚTYÔ"nżÜ˜Ÿ—Š„šyˆ…e ;oêÊ@ìoé“ZÈ×w´äŠ–RG”³pÜTF÷N>LĊLrp½ƒŜrŜ܋70ş÷îêéNžlĈ›Ĥ..RáËä0¤ÄHsßÎs`pցfT2A.5ĉĠTĤ[)’U’†?™D $µ@#Ûĥ›l5cq:E‡Èĝ˙—“`÷¨‡qϏŭĠ̖ôûy’[g—>àÏx~IöTĦÉĥöÉxÏÖÒ餿}zğNñ).PJ%Nj $ ƒp-.ĞŻ³X ZĠĤƒ“Â.ú („üJ–á<ÀóŬâáŝ†inljjnIJ9ÈĦ•3ì Ŭ蔳ç§uJ)Ì8g1Ó§Pŭá)ïÄ# †ÎĜlf³Êl³˜}})ê˙Ŭ‡żÑendstream endobj 33 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2906 >> stream xœViTWĤğĞJ6E,‰Ŭ¸ĦEPPqTdUQ * ˘ ¨@6K#Wnˆ@i@Y ((Šà´Á¸@2ʉc\3Aoġ<œ3ŻÀ““Ì™9u¨WŭŜ]ûŬï>%ÑĦD"Ѱ›Â7Älġ ˆX2ÍQ$|3K‘Ú›Z•鋑¤è ›áàaônhë0Jĝ›ĦXéäí²ĠUżAè‘´18$ô›M^[ÂÂuĤ>ËħšnŭĠ×IvµŒò¤&PË݉”ċEM˘VP“İ•Ô*ʑZC-¤|('ʊòœ)ʕr£Ü)jeK-Ħ<¨T8e@i(5”FQ)cjeBY’¸) Ù~€z-rċ‰Út$:V:Ġâ/ÄŜâƒ3ÉrI…ä½ÔIš"-§Ċt(}ŒĊldž²şì·ì÷lÇ›!û†4êzè׍ĠŬĞg¨g­‡ôŜ菃rCš·½ġv0‡ġ`>ʸĦŻáúkȲ‡1îéh8ÛÙvjób~Dü›=÷NÌ8úD. ”Û˙ÄJÂkŠŞÈ†,0C ž³,°;c—·˜‚Ù`˙D°OŝˆçÊ3ħ”ëıä2ÖÂÛyŝĵĠ·ßżoşŬ-7Ô+a8Ÿ#Dġ`)Öŝċvĥ'׆ĠyŬûŞ‹‹7àxNÁÉ`Œ'‘`ŬÁ ĉdËħfċıʊla]_€ Ìĝñ7½|NZ&Ϗ;ŸĒ0q„a<ƒ!˘ë$Ô!T’+6˙”AÖUtċ²FE'baäo`öŬ1Ŭ!—ä!Mn•‹+òĜ´Œ]÷— S|\\œ};ßmìş-ŽÀˆß F˘°„k$ĝž‘p†1ş}übëġÎòפ$aŻ—wù´ş”b ”ünÙ˙–#Ç̐^uÀ3°­—–sӉ9XNžYÄäÏĨ@Á;0Âï`oFŭÇ>…ógÉ9mț’Žù` G×üQZĈĜóa]Ŭ#‡3vÊ`“žıíB‹‘W@¸#klŭ¨?\ĝìêžàJ)¸şC\Ŭ!ßŝM\d KâĤY ::˘FbzÁŽßËëp{€ĥéÂIBcfş`qHNXaĴĵ0 írÌñ6İJÉMA1ìĉ ¸E!Yı*YbΎœ'Énz?Öŭ‡Ĝ£ûèZ~mEmĊħK¨Ŭmp*ÂÎM&Aı݇P1{ŞB}QszĞOĤÌP[¨„0“ÄE(rV ˆ/˙‡°ÌĤwmHŽ‰ Yż"j9‰ĊÀöİÄW=/Áĝr}bÄiy‘*'!o# ciXb—Ĝ‰ì Ĉñt‡£`žk^ŬŞzxU~ôKéÚ)?À‡ç˘ŜA:çĉÂDlŽ'şXuá_è™ ÏÊK÷*•½b’ö¤g¤"68-§Q>÷ƒï àĜz§3#ùrĝ)³x]€ë²Š›2xƒÍûġĴw˘ğO´ĠÊ3vR9ş Ĉˆù˘.şdûTĈB3:óŻb l1ÏÉÀŒÎşZr´ ħ-'T!Ş´m‰éòĝT„\RĵRMÌUŜ+%òËÛXYċB|#jCWŽ_lBŠ}İyÛX˜JıÎÍôsZQZ{ĥX}=W֘]“upoŝ!S áÔnµJ9p‚")v mħ Ĝ oà„‹°.•‚ŭ žbám ó!”<ĥjQëçkĠ†s„AĉW˜ÊU˘…îâ^ÁP°ğs/ä²<¸Ù½Òı!ßèM+YÈe@_âş.:Ošâìâ´ĥóŭЁ›ħâ½v˜ZÄ˄~•ôÁzü)ĥ˘ÁŻżUšÁìfVo òIIÏ< ’cŠvçf *t6ëĜáïó JJ: Zklò'€+…şÂS.Ll~Ĉf„ 3ĤĊK°Ëóñ` £ž>.OŽGÓ*gEäJÄ:ùwô5n,¨çŸ*ÏŻE׉È|'ÖP{ݵÎjÑ-°$2JÚ'ŒżÉÁ¨ŝ›RÒ3Àñ7ŭ7ÁRŽc<˘ż›=RĴüÜQğ‰,€†DŻZÖKa/ĠX#ĊRŜ ¤ĝGA#ŭ+°'?ËO ĉIJ9ÎC[֖ş‘¸)xĥs,^Pí-ŻñµéÒ  UÍ,Öċ •Ë×ĠÙÙ·ëġ›ĈÛ¸*?¸ç0ô£ˆ/‚X.3@Y¨%ŭRò™Wĥ­Ş;}*–`wĵàĊX˜Żş>”ËħŒNŠ^і‚¸SÉêÇö4ħ{ŸsÙĞênä+Ԋĵ¸ƒħû‚YÒK„LĥÏ_ö‰žŬt‹t“}3]–ûŬñÜüŒ=ı²>&johf½òĴ[×Ĉ^ԃÚËëÛj[ÔϘ ıíñĤ+.5ö$ݤŒ+ŝ.ü\2Òç¤*ĥ„+Q0R&T'Jż^ ŜCŸÌ?wêX-過"H§ñI\×5VLŒ£?6$@y* E߃ĝ œ FnĤž)V˙Ŝ CŸT· ßHĤ=ĈS¤ĥĜrJÏL‘Áèúçšó7Îĝ;͍ÖX,ú³‚—lÇ£X>V¸áµŻµŠ×"°‚!â;x-×MßişŝP! :§.lÈdséŭÏè]™ ´=3eżİ2'=Ġ²Ì<\}}ĦlŜäş2g›{3Èħ8úŝ·óSb˘‘#KցI a²`zpĤ˙@„€/ĠáúwŽ~ ŭŭfbNáá3!Ú*)܏ò@y—4ŽĴg •%|ĉŞ}KhĠ…ħzéëSÔöŞ÷endstream endobj 34 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 396 >> stream xœ~ŝCharterBT-Roman‹„ĝŒùt‹ ‹ ĝÏÈabcBCDzÑ÷Şĝ„Á\Ż÷|÷$·µ÷`Ŝ|÷âĊ˜Q÷!ŻVy›÷ĥ_ĥ"û?WNs“„˘ßĤ–£¤‹ӟj<kû\[/m‹#Ĵ@ĵVÚ|ğ‹ÀĦÊĥĴ­Ynb{j‹YmĴĵÔÊĤ÷!²ĝŻ‹¸ĝÀ÷FŞ›ŸáŜ÷‰ċ÷ùtûglÙŭ1÷÷Sîĉ÷@÷;çû _^t[÷ĴŭFĝ Ĵ•İ‘¤‹ïÄFûûONû†x‹ŒlĝR„Ĉĝ#³°ĉĝ=µżaob}_‹#IÔ÷÷ÈĜ᜛†‚š9šš†š‹­Ħ ĞĊU³+û *&û)û(ä'÷ÁÁœĞÂ{›ĝu–÷Gş“ĥ Ŝ ‹ އİJendstream endobj 35 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3033 >> stream xœViTW²èŞ•N‹¨éFpAE‘ĊqAPdAPQT”şUvˆ7x¸ŽD\I"¨A ˘1  j7҈ĥ†Dunġĵff^7&'ù1çLŸ>§Ğ^ġğuïwżï~ĤLúP4M\+_“’ŸbXžş]ş 2c™ ŜżD fÀŬ”á¨X7gŭ†ÄıIÉ)İ~iák2ÖfFDFDÇĈĊ-ŽO‘íc?a˘¤NSĤğşÙQÔBʖ  FR‹¨@*ˆC-Ĥ‚İjµ„O-<¨9T(ċI-§ĵ¨ı”7ċHùP”3ċGıPó¨É”?5ŸšB- L)9ĠŸ2§PİAT%Ĥ†P¨á””êK9‘‚(ä!=”ÎĤU}ûlèSÈPÌ4&•)`ʙn™Éy#ò}!şÊš³qì)ö—È]à­ĝü ŝC_q_ÏĦ}³ú>5›Fšĉš4-3½ĠÏŞß„~{úU÷k5ÌlÍBĦÌ\¨AJ!°%FiÑÜêŜğԖâoš…b‰ĝ+}q;Trâ–Ŝlîh¨\ë/Ċ˙Q ֜Ĉïĉh·er0İĝ›NÎ\ç€T°[UµXğ@k)ۄğPɋߗŸWŜ¸5u­™X΋…†²sµ‡˘š´ŞÈŻ#Ï-;ì…x\Íjñ lî*Ŭr*½$í ­EY ÒÓ[–?ùà ì†4î :›}<‰D>ž| >z(Šù<>%9%Iž½ñ¤ äVÁ•.×@†SBıq²ÁžĜ³ÓĈ˜÷0 |]Ŝáñ²wÉĞ›îx0°ÈÍab`+ˆÁâV›Vf‹JV Ŭ*úޖэD.mĜE3‚úΉĥEĜa³Š‘Mž7ŭ¸ŝ5‚ıèÍOÇ!˜Ïĉ.ÛğQ!_8?֍d=Êxƒ…ÀÁˆ;uëÎÊN'Jĝ"Ĝ*V(aN›0͢րŝu¸ğ+$íPÂ^NjD< {4¸‚çdèƒe2ñ{O1ŸìÎAĤżäċŬéxî·`ú$™¸ÛyÑn?é”ŭ98]˘jFÈ%‘u™³½¸ˆş€³sInRG,ÂĜ½¤-×Jn]á2ÖıJžßrĊĜl‘г‚§`ŭïİ^ÊÌĦƒ%]ıMiÑDÒµ75˜rÏÀ”SztĴúbiÉħS{oÏ8qĊÎĴ-قњĝċnĵ¸é5g.RB½ ²Tt—–yLoUĝ-d Ö*}V\˚ ;zûW #ĝ ĉ’üßĵoŝ$_óŝĤUFÀ@ıĴ-ŭv։Tiçħ2²èxŞtÓĦ­‡ĥUÎìnÜżq|J°Ò^˙ĥmĠ%ÛS2×cŜ‡ÇQ…ĠĠKeÊ‹wJÍĦ,ıE×H?S3°T2FNĊ#=½[³!ċòzrçž3Òf.{ÇĤüϽı°B¸ƒ3pĴEUZÔĞa·zÖ#KħVH,~+OĊ×8ë /ߋ÷7UoÇıÔŭ*k[Qġéê&Ŝƒ#oEJ—’~óЁ\2ĦGŝÊPĥZΆ0ĦX4Ċvz7l-¸‘K׋ È´él”ô‘×° ×Aöê 9´hk\fbĈşĜÌ(Ä{ET=“UÙϰiÛ,âǏÁB*\&:ê/\ ñmġö#{Ñ(vŒŜŜš\8°`O^óŠ}+8|;ˆzĞœÔJWj ˆ°çËjINŜv´ ñŠÏ•Èà§ġ†%3ŭS"b¤Ië7Ëó–íìïϗĥ!ŝQċşe²Ċ¤nôÍĊĤ3ĥÇoZ˜°yóö ?4Ԝ¨½#ŬR’T‹Ž ˘§÷ñx4xKşÜÌÄäĜ„5Ÿ…"Ŝ/²ĴĤâÌó"Y灣ğϵmà3¸+éZ5Ü0µƒù£ÜĊ5ŠÒpiˆÀÜ'żÇÒ9K×DÈ ”ƒÑ¸X˘íÊüé“ŝ˘’XĦÒ}BpB€GéíñP‚… ^úñS7EgĊ ĞÏQÖΌŬü,îHΑíÇÑiTş˙ĝá’c‡Ž„,ù?H[Fo%ÛŻg•V]í_êAh;›™ıuYƒ zü>)”Ma³ĤĴ÷DĵâG0,kÛ^4_^QhH µĉ-´°d¤ĉWXÜ 7ÍÜ[pß ŭEFâwq(Ĥâ“lLMHî„i슽4˜†?^;]E6÷!‡3…pI÷ Ü˙q›ß{úBfœàÓ.­´P›$èÉÖĞ/Äv¸ŜKž@j˜…g½cÀLŬl1İ!yîŠh‚Vž\w9í얳ù7ĝ’}Ŭwî·#^uß{rÊËϓ9/ĜZèN"ĥ/He.*öœòèù}ğPŝ1i—;ğ ñîaĞfɜĵĵ›ġ+Ô Ñ_”Pİ‚ŭ*ú…žw3àßI ƒ½…ıpîòĊcUèŸNoĊ#¸Ö0B„a&°B¸ç5Ë]]C–;ġÎÂfdlQİŞ[aIa&ŝŬÒRR•#ĉħûä^—–É.ĴşıĦ5 oÏT5ë9䙳:U‘’°:c)ŠDħ…ÉGÓċÜVĈ˙Ŭo×PzpêëʋW5 À ~NŸ/骙‰-ñ à™Î“}ċfÛsÙïnkh[³š˜-Ól$°š­ÁfOŸÎÙ¨”žÌ,LDQ|ŻŬvú׍š½2y^¨ÎöŞŞ †Kkµ‚ AcßÜÂŞ+Ö:ÊòŭÊżŻ*’[èsrKI^w>˜—ÏĝZuñĞëH̓ĊŒ&l+Ċύ0Y›7M!†{6÷DÚİÔ˘8´ŠŸĵ*Ž ĈD’ĉÛ÷ íSÉy  Ĉ°Ĥê‹ĠĴĝ™Nn2ĊĤ%}!ùĥnÖ ´–´ÂI>ĜŽUNğixˆSUO‰2]ŝ2İ2 ZĦˆÔµ )Š´°ì4‹İ\˙ċçç ]àS´Ştí5ïöh`ŭ Ĵ*ŻPVî£ ğÓx^ġç“ñgMŝa}ġÏÀׇĜ²ÄŠ]á{%c8²èğı%™™Kw T)ġä óöä!ŝUġùdşŝ„›LµQ³FÒq*’úOŬ0 äŞôMÓ`KÏ0mï6 çۄ# Š24g5ûô xá Ño,ŽƒŸˆ›ûŠĴYœˆEF¨ Û°'Ĥôȍèô ^\dÇâ•ú'ôˆĈ°p¨G.2×=üËÁk½ák)d<{38ŞŠ?úGŬ½ĈïÎEúHqaÁp{Ż<Â×p+|ʽ 1Ö+<5 Tšp3ü¤7òBaVúóâK‰Ëtè–7™ó”Ñâɰĵ~8ùƒß°ä³Ĝĥš´‹k°s(vsĈ6|Ż ù4yïĠbĦRCi˙SĜóËü?›Ċˆ7‘ŝ;ZóNb{7ƒCs7­È#ıĉsW:d`fHĥüH 9 T@½ḉœ?ö0DöÙ3,¤)ġdˆñĉžÍ˘:6ë64İĥ6úRTt1pF·Lâ‹*˘Bĉ'Û#lÉÜ'X ö0NET˜Ҕ—+—F] 8Ctïfòşj<ÄaaĈN\ñ3„@HĠë×d\^öĉ.ó†ĵîß³ïŝkĥÁó‘F¨$³qZ#ìÒHô}Ùŭ·żĴ\S;ä—Úë-„·w’êÂχŸ_rÔ9"Ÿĝˆ…‰‘ÙĞòĉìĞ{Kœ8qéےÄ?ı83(nı´Ìa ĥ›²Ú'O²ĜŜ鋆ސ*ô AÌb7ĵu.ĥ ÁYü+ö¤=‡%àħĵ"hzGCS\/LBħÉG´>>cȳxÒ<Ş nú=žÓük3-”Á‰>ŬKHgG™ôŝ~¤QËS² c°?öCĜa§ûĜï ·ŽuÛP˜Às5¸uĦEŭ³ġÏ~endstream endobj 36 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5856 >> stream xœYt×ĥak4˜f[ Ĝ@fH(B 5TÓ Ĉ@0ÍĤıwËE–{ïW.¸÷ŠğÁ0 ÄIÀ (t)„B/@ò“3ù×ïŻU@"ÉËz––ÖŬÑ-ûœ³÷>ce:€‰DĉììüLÛâĉ!÷Ŭ¤ùnL2ş~·£Á&h°iû~¤%TYÀˆa}ĉ”ĉÏfı˙ŠYàŞ ĠÁ!kċëBûׇ9owħsŬèfïÉs‹×‡Ŝ[}|ŭĥżğÌqêîiÓ÷7#rĉĴèÙsĉ?ï-ŝ`E½CÙS¨MÔfj 5‘úúµ•r ŜĥQ“İíÔj5•ÚI­¤ĤQğ(j:µŠzZMÍ ÖP3ݵÔ:j6eKÍĦÖSsİ Ôû”µ‘šO™QoS‹İ!Ôj(5ŒZF™S”eIIİ=ÔpŠFP#)+ʄE™Rc¨·(ŽH­"HËx ‹"E=h2™l’kjbzPü;ŽŬÇV°çÙG#X;"o$;ÒsäC+/ëÖ2ë—£ß YÇÓ^(>1É›ġWX…ÓQ2ä]ÊxÑ ¨µMŽ<ùê'b˜NWO{ʑ·O*}5Êe°•Ċt=HÚ`zv£¤3C •IŒvqèUÙĞ,Ÿ¨a“z¤ô„PL6 CQÜ^P?í:ħÀiw„·'½Ò˜QîÌ-£ÈښُŜ½†+xŸ.i$;!żä÷ÂrZÚôŻ[‡{zJ‚7q8ĜGíOîkÔÜ7Y{Ż[YĤ‚*ËûjQoÓ. ‹YtŜŭỄ·ê›Ï£F½ñ6áp([İŒŻï— ƒ–†}ŝám~*tħ²5“ıÀJKoßİÚèËWÖÑ}Ë<›ƒ FÓRÓ;6{5맨à’Jô‰*Ġ&‚ĝ²`>í',Ĉâi“°96:LÁôé30ç–ç²3íWĴXaÁŭ‹_\ızÁnG&ÀA*˜Ş‚ózĝ”äVBŒf˘As_`S§ŭŝžœôY{LŽ˙ÀġWŭGàœèżˆ“gOÁ’_>b–íÚ6ߞċJ¤ÏŸïùüÊù5sŒVż¨uŞĦ‚Ħ oaÛHä…St%ŞuwG _Χٵz;b0=a*ĥÄCMúúGÇJJxìêh–%tI“&URvë­\ùŜkŞ›·ş—Ĝsş`¨`§ö –êNġvrĜ˙2Žħ%şB¸U¸ÀRâ†Â::Pm%÷T?ĉĈaKĜIKB‚†Bt·%m‰ù^\˙@C8›úċŝ†+§ÚòóñF‰ “ÉÒ3„Ha+cOÌß²!ĜÁ‘k‘HŻh'Ĥ†Ÿƒ{eJ…öˆ„xlƒhéĜ—ŠËroL*FLmuy£~WÍ[ô\ #ÈIM„!Ž}µWs:RFÊKƒYkżÜÇp3 ÓïWA˙% #ÈPŠÚ<ĵĴ^˘²ĵ‚•&‰ö‚%‹z|[‚K]ċL+Ŭ`]!ê`ê[>Ìò’+ı̀”‡éXÍ$ĵJ"ŭĥ5ĝ„¤Ä&qn•ğP‰ĝʨێ%ò‡BS~ŽĴOŭ:íd|ŭ=§ltİ>Żà’ŞR Cb§àgH˘Ĵµ´$·1;íyU‘\X÷¨K_(çU0La SÔH}‹À˙Lp–=ˆâ"é>\ş£‹Ü 1ËQoa0[ò:ñìoµıÈIoh×Y4_˘…L“úwq=îşçµïŻôİ9#BŬUƒ+Á=KO…Á‚ĵNÇsäŠÇCéÈ@ŭ uxv…oŽfÇş~y°W5ÜL¨À˂ 3éGuǵפÉôĞêä°F”x›ÖĤÁ4èNK{ĉ-‰ġZ‚šZ8¨‘üùŽlzÚÀۇä4wsÒe~ÙU¨bô-#ä*Èɉ·µê*S‚(£|íĤ JġË1etŬ­+]2SY¨ Q‰ê™‰&ĵ£Ùs$‡Í ·ÖÓħj<¨ÄġFS›U ½"÷ZTĴ+ÑATÔàĞ&ş´Ñx…2!ÎDÈĈħ­T §éŬĝ˜8ƒNmˆü4ħ9êÔ2wäR£"7ÇıÇ81ôN8&>m´ŝ]ˆêP#ŸëVCrÏşe”÷Ġ~ĞĴR–ıÊ (·; /·ÏŠ9Š*P Êí<ß[5ÖĦĥ×›Şz¤²<&0Ž”: emš½EF…˘Ü0<$_Ù…Ç–ùׄוµ8Ċ5fU |Ä|}Ò{#c+'ô.#[zĊîYÑ-ÔĠKċU׋ÚFkW!Jħ(…ş(i[„Ç”:z“sۑž‡À\iˆâ½>!‘1ùqxœ€É°YÜQÚ4Hñ35P{û4£ïĊùbÈŻ–”ê*%’Ÿ`ˆCużÜH^ÒŻï …áôœ,Žó׏ß~ıZŠ úşqĦñ0˜ "/>bT!ƒ^~_;}ġcq]~{ŻF4Ġr„1á™b£*¤›'ùó_s3âÀà7Çô„qQT"­*šüIa͟‹¤Ñ )Vq£Ĉ ¨ƒüW5Đ5˘ŽħÏÖž VAŝ‰\ĵÀp´ö~ı‡áJLżRĴPU¨„Í*Q·ZS@$½P‡i:‚ì2ĉ@ti*Ÿ“NGğdĞ€ıq^) ’ÏIMгWCú’Jƒ/–’š9Yœ“[ˆJ‚i¸ĉב$PaE ùiä×M$}á-ü‹•2=;‘żEQŝr˙¸ ôÜJĞôAሠ“ı´ì;{µ÷‹ï›xxWĜ\ŽQNĤu^fI.Şa^{—kj}l"¸ƒˆ­ŽÊ—ÇD#y—ħbŜ_}ċŜ™–ß`xyIÊĉĞҕʄ,݆ĝ2Ä4TU5ܜ€œòxôl<ô_“`ŒkùİԐȗû~ë{A’9—äR0IfA.iÖä‰Ĥd7ӞčĈûmÂk­b\bœ“} ÉMñ-qmĥàhߔï˜Íş CÍ|ż\âĴ×É;şl&sò‚‡R’œïŸïğZeÇĉ6£f”WŸ]tĴ޽‘SÇ(û=è?üĝu͟×$™ċ!ġŠ2´ ü šžJË+]j·a4™2[Ò$<ìÁd Nt—··“j÷EÇ8=+90•ĥ9ìY¸lġĤË÷îĞ.Ŭè;½ŬÁtû ˆ “*Üԕ!d#ÙñÊ a,fAˆî ErdmóE‰2%ÁKIŸÂcĊB‰[5ŞCÖ Ê£ĵ Ĵ“U{†¨D·LW}è£c4ĦŜ²ĊĦÍhŜ!ĊSNU5¨Û1‹‡N@ŠÙü—I0FxPÇ/…ñ,. +ï\èú ]EGwç.Ó$VœJ@*ѧj('5à çX8ڈí°]¨ wcĠ2°ƒ 5 pŒ[žÏ˘5huìĥxÇ`ù\4…ÔĝŒ=‹A}èş^t˘ĝLSÑWè6j‰-v(܍lŭë~Á³%+Ĵΰ_,@QKî{Û9Ċà žáŜ‰F×dŒ‰  ž!2>˘ŭĠ™ékö§Ù˘(föŻö Ëßú~€qxòçlhéÙDƒ³"Q*ŠÓPG1*FÙ¨('ż!Ş%Ħ1OÔ7~hMhŒ¨çkŠJ3K”ĞKˆ‡­Ĵ¨ħ-ħûöíĜħŻğ··ğû̙î}ÜŻX`]Ví›ĝŬ­GÏds}DJDhĴóŻ{ëŻ{@X˙´-˙›&żiµ^ے8j'u)İPù”=€PŜ\rşGTú¨ç":PÇĊ´ù×Ĥf1Ò˙9ÛÖ|ĉ“Qß/ùäš˙ÎóıŜ¤ëP]FS #}\C¸ó(´yWĝ0Òß|*›"ŝ˘áB7çÁsvŻĞŭtn5¸^ĦÙ´çµĥŞ_Z‚çËd—Ÿ ûô^íWĤ)8Ï^bE ÈôêLštž(T³!µ!!µ!µµÜĞʳ<{\Ŭwu¤T&ĝÂ"µ&ñírŭÈİ#/4gEyLöžBvtœéùè£Ë )”Íeû•gR×v0B˘iä 1~Iœ‘MYA„ïDKÏuhr/ˆċîmNşQv%2‹4M•;ĵFmß÷árg—ü2·ğ1ġhFeFYF•§-ÀĴĥ/¨É/nÎċNú¨âÎYf˙@Ż—ÂA &§ï~|çċ2Ë5AâÌ +ty‚ß7ŠÄˆŝI4ŠDn^ŝÄIE£dŒÌÌP˘ldİf"ßFİxœ~ÒmdÄNġˍ(m†ayǛôí$e&‰}4JׄJxüÚM‘ĈS‰Ğ!ŠœħZ£8Z_oeè=›zü†íÛĥm8û3šŒ|Ïw=ĦħĊŭ/^Ü<ÑŬ÷‡ÄGR<╊ŝ!Œr<ÂèúŜ›ĉ“ôçgú€ÖĵGJ{´<"GÄĊKj˜ÎŠwD;ıô찓$ĵŭI)~۔Ş@᣽u“Ö <î•ĵ~†ġÀ€ l$ҞğGOİ*Žĥp„$Á__]×Ŝ¸éonÑì³(T8Ğ i&Bŝ+ù6zLPGïÇגĥ&ïKÛeA§ħĥ%ĊW(Pġû9êA Bnxd:У⊃—2ëOóçšQ>(uè8Xg2 ʝŠ@Ş ĥĞ,?^˙=3ġ‚ƒ·+YtÇîS§êgsż$½ôK,ĈÖíZW~`uU}~ZaJ.×Ö Bsġ„ğs@Œ³kžá”ĉšD@S:œT}ŒŝùĝŞĥlš¸4û”'Ÿ™u efX#eVöAEu`pH”×ì'[ÀFÜ{ĝT™ŸUÂë˘>Ò9hžŸ€“Î}.‡—ôĦÄ|OΟBÉ1ĦXŽĞ„”ŽB˙ìèN”í*w­Á~Ú˙ĴÖ·r6m,öĦÁžˆu0ìWݚݲü§ ó‰ÑÚÂ\ü ôvN‘ï`Ä=ÀĴÒ8 7K¤Ÿ)Pàኜœ‚<ıŭDIb>jŭ’Ġ›¸l/ë–óJen23³H{ÚzEU`X@ĴÛÂ;6 ‹çÀD‡Ĥ/Żt[•ċéğwׁlaĞà,ˆg=ÀĤ[w„y8s`}˙ğ(Ÿ”VYdrRZ!vi[HyHSCUeóIŸóhò†q˜,û…“^Ñóï`éUĴß²rŠ×oŸöٙÛߜµ]İİé‚PĦ—żşGÛ ŬÔá‹oÓIe(AëġÂĝ=zŻTŬÀA6½i2υÛñDl†v31È££]y¨ŒË9ˆ`ġ//*+²2QİF]àe(|Dhŝ·?š€L¸Ĉö/ŽˆöHpÌâŠħSfP~l-²BEEÊ:ĥ€ûߍk!²…é׿„&‘*ïjŝ1äYˆÔ͉Xı~éÖmċ\ž<ƒRÍÒĠĦ0ç&ĵ}ĉ(DB4ìÔu gG—ÛâtqêìpCqĵ]rş‚ #µ7JġɈ‹Â­Ĥüċ·+_q}1˙9ßïcܑ›{'*äÓÑx¨8´,˘Ĥ5ğ=›+ú—ĝÇ?uC§x)Ĵa5LÑnÇ Œ°J'?VD~“?ëO~Ä~.ëÜï! .q;Î%xĝE%E%2Ñèeͳ^kċF¨­‹ŜUĊäÇçâ°Ĉ Áڂܒ> stream xœMUyXgŸpÌ ÂĥÊ8"ŬoÜĠŞĴXqĠ§ĝ¸žEÖĞUŝĜIu’Ŝä÷ĝ½ïï÷Ê/B&“M\żaƒZ^Ÿ:?tî*µrŸë· ˆ•˘ù×oèç ŭĵïù,G“î{e"áz•:Y³F›š!ÎÜğ9^™4ƒ 6›‰O‰-Ä,b+Iì VáÄ.b5ħ†XKÌ'Öˆ„71YÊJx…ÄUÙ&Ùyùžs<;ĵĉyĵžy+ĵ/’Ád1ù5şK—Ħ–wD P§°ZäüÂİpŝè `:ĊÊvĥ]Íë@R‘˙ŬÖ½xKtŞN ˜›Ħàè pR§.V(NŞ9ĉĤwĈIĥ!vÔ>Œĉ‘LCÍIŜÑâu\ZL>¸ÑÖÛWÙp|SIžM†“Ġ’'UpH@çÙ'*uzŠ HĊ"&ä9öĈŜ!³1ƒ'?ƒ<‘çÓ§ˆaì˘ÏVŻ]ûÙ­ûß_½z}àÊĤ+$ w_Ç£àáfޘ 6)ôÙ´½QٚÀ̰òĞTîj8ĤÉ1bPıÊšGşŠç˜Ëú%>";: ìFÏB“ıĊS|²q`˜pċwŬÜ uá|ßç×.£P–1*l'ZĝÌUBĥèZr{ìú4kûvpœbĤ9 ŽFƒi$³BŻ*Ž{l£Á qg8İW.‹C¤ÉaŻçf!’d&ûç~@D)̈́k­úúzĞİi,a¤ë+{ĉD>ÎF <1¤Ü)F¨ñĥL\Ŭˆ\ûĈB Mv)ĵ4bn/ŠD>d”1Ğ£‹Ż·€”ĊPS”°ô—n™Ĉ§tâmV0:ŞrA-ĝßP‘Àl£Âք²™Ĥİ)ċÉUJ3ÓĴMu÷³â6<-Mċ3J3Ú!}ŠŻ³r7$ÌĊqióyM4ÔCšù/O[¤˜ûKĈlğ@ȅğéĝ¸äĊ{wTĤ‚C–£JHG´Zn.UŽÊĜr ô)û‹¤ı,jŝw˙Ĝġ24ˉ¸aOq; `OÀ:ù>ƒ6"wĉ§C:öžàP Ħ^·C!-[´=|´Œrov£„Ñ?q&9ûV̝;=]×¤w ÜË&TĴ§³mê’t€½È´äâ¸Ĝzƒ•ë ċĜ t7UĈÂÀ\˜sRb0;u/â½;HKïp¤”¤rÒ+éêâ¸ĝÚ˘&‰>—ñ1٘ÙÏÀ²#Ġĥ‡S;ûÇ3j Çaàih4ë/£ĦİMµĈÖÑרO?+­w²hê`*^ŻÊ.-=œú&ò>žı{úáċñuú†š–Ê3<€ÍĠ}šÍŻ,ÂÛ`Íä…_[ûKەŠĈ^iDÉĥžâö –ş‡×½`Ħê²hĤlĵ Úkoëŝ×I4ì5Qŭo9ÑgâËĉg1‘lk_ Ë-ÖĉƒÂÜ ù'^qŭûžúWhÇ5іĴĜXgnᘟïüô ĵr#ŝíñožÌ@ šŜúŸ0B²^'2IKœr–ŭeŠ¨p…N£Ĉ: 4Bs`—†Oĝsà@ ·›rmçiXWLHIá3¸Q› C]`´Í`"I6TVh˘ÇħëžHì49Ħô `rÄ* Â$>(Ä,Ò͚7ZàÀSH5öh ¤ħGpf9ĤOzüżŝŽZ[#`6ŞKÊó:ƒI³oç´€eÚvD-[ŭqäÀ×^żÜ½sçk|†L‰Š1ÀÒò‹ÒòAĈ—ŸÔÀqF?D£VÒfŬˆúĝ9À~Á3ñDüîË÷Ñô^ßznšÉâCdġ×çz˙{á…´Ş…ô8nݤµ_#íüzñ,{íŭâğĉƒ½ó)·ÊÙe~€;CI}’¤.nú×ĵQ—PԉĵÈ’]tê ż>WfĈìcêfH[L-Ühš0iÙ#'J•2‹KÙÇ+b€UoŸ‘§ż2“Ŝ¤IGa’ŒĦ CžH úyô† iž?t­ßĊ·q yû£(D.”&ówq·tƒ¤WÁ\40: ¤L×\ħ_âNìñVŞ.w*Ž Ċ@Ĵd›4ĥÄDF™hÓ47ÛlÍ£ &Ê%˜R\'fìşaßñĦŜş#r<á-{È-–Ü[§òâà‹[/˜~ÑÜÎĥèÊé¨ĊÈçuL^‚ dړżRBL>Ş§™ï,:^¤tWŸ`.”ˆÖI)t… î;x4IʲżLÁĦ%Ó·µğüçŭ[VSé]!L¤%=Ş·Gŭ2Gŭîĥu·×ġÊxíUíò;Ş›Ò=ž!ğxçħ莧DÔU,ìO~Žo§ÑfŞħ°=çИüü˜C§Ôj›êŝ6ò6ĤŽ;e6Ĝħ•$Q˜Ĝża9\ µċ˜@a 4VPŠŠDsvgEù‘Jx‚nQ›Sȋĥ‡]Z†ĵ³Ê%ÏíŜn')äkùË}x“Ĉ‡Q$ğ³jO<Ouµ^¨˘ÑŸF> stream xœ]‘1n0 EwB7°ì$f\’%C‹˘í™> stream xœVipeîI2MY”dGèvƒX x+R*§è‚Âħ’kB29ĉ>“ı'$sd&™\3‰™\È,’B”ˆ™¸ ²[µŠşÊ–ZĴU¸ßĴ͏íÇ*ùµŬ?şêëçyŸç헅$a,ëî?ìĜÁŻà?ñĝ£ÛyGK ĉÖîZ˙Ç’Ĝš İ)ƒ,žMC+–^ğëÓğoR%ä kJ+ŠÔ<a§‚_Y-ŠòVçK Ž—”-_ao`ğ°LlĥۇíÇ6²ŒĜ&ì ĥۂmĊĥaŻbÛħ×°ĜN,ğ‡A\°ë,Kž$O^žHY‘RcKĜWp~}÷'nZĜħh÷â4Yo×O£KÓĴĝÓħäĝzˆcŻï,­4*RyPT,Bor6yšB m”ĞcÁâŭ‘ıÒ˘"R1ZÔ\%P%’òäG•{@ChíâŜ›;Ü@Ú|-Ó~ Ü™V]o4kİ-tŸQ f0rĊ-*Ĝ8í&[?éĵÒw!xl`| ˆ6·†—“G/RäQzİA""ğ·4zue´·‘˘ôÒÏ$Ç­(ÄùqûÔËôbz½œĤÖMmù è7(­"·Y94ëq:ċ‚·'PÊ7ˆġñdëîsğĠÓèħ›;5ÇO k;â|™ŭÁĉì#üj>)ÏħŞ ŞùÊ*I™rÔÎS²ş.ÒÙá9dpZŞ &3CŠ˘—ÜP°‹qUĝaPh-î A$\ **í·˜û '€‹°Ñ´ŒÚÊàZMĵ‘Ğ› "öghñù!oNÎ.Ÿ(žĈÔAŝMrüôgfsd£t7dî%UoñB9@Ĵ­ĤWçĠġ´;İĈĦĉhˆĈ6#_f£‚ÚF‡Œ F]S‚ş!„u] wGû†ÇÀÇÌmB½A­…j˘ĤUŜˆ¸Çné:3vŠYèÈlr\sË5Ĉ:İ–eçĉċĦ9N°Ú}Ôû¨™}už$Ÿ!ı  ğĴ`ĥ*ĵÒ ]ĈLÑkĜë~Vċ2ŝ*ŬÏ>p<÷}”ôZN(ĉS ĥ›”=i+ŜĦ4µ¸çżĝ!ê´û˜Ĝı]b—ŠŻëÌäaú½ ˜^ù2pKµĦŜ^×ÈI´r÷ƒ <ÄdQ¸`]>ÍÍİĥ{Zì¤˙|g˜)\ƒ]ŻVëô2Şpı|/ĵIĴŸ(žêï÷ôE6‹ğ0]!oWpÈ= Nâ(Óë1} =ğ7ŭj<‚np†t#Rİ\  ·×‘6­E zBZ@=˜ˆ ö{£×Èô]·§5tсGöÓİċs`Ú] Ùñ鐯oƒNĤİ7ë$TzOÑÒŭÙOżwĝôâ)t)š Áx}äĥBêr-i”(öˆ×w8]Vĉ¤>@Ŝ› Ù¸mrLĴ–kLdÙ ÏÎÈHcËé54µv<óİ?lj˘êŽü³0Ç]žÖˆw\½=xG[˘D蔘ßżÈq.h—„¤/3× te?Î)<˙jÛ! İ9‚µ™Äи˘Šáb¸żƒïĤ/‹é•kW ‹ÖjwZmà#zkšd˘ŞŠœQŝ—N\îi"[N6E]Ñ è§ûÀ==·{¤#ÜpÜîqv;üǀ°‡êF£ı!È:ş;ƒŭ·Ĵ‹^˜kÄi31`:ÍżâÏlà äĝž„dKJİ‘,Éo¨a’½€fÓËhrġù]#CžÎ~ŠO³ê²ipċP 2ĞĊfħ1Ċh“·UW „G_˙FÑŞwżŸnôgù34{™ŝp(:ŽXW˜Ö<Ö²§€JpMú2VÏ`q$L*‰TìĞ,c&µÙċiĞğ—JżÚĜu qÎe\ÌĜħ7żZ)c‚ŭâĵĊ鴐8 8;şœä0zĝ4ډp œÂšìú.5Jwèċ$`¤äÔ·'=m·ÓséĞ4¤Š…tŸĈU?Ï-j#)ÛUPVÎü² m ŜAWêû[çù–‹Ÿ;qxpïÊŬôBŜ\²ğM>Ùùñ¨ż ˆ€ğNĤ1jêMÔz:ß 2é@ÌŬ7Zrĉ‡)´¨L_–ŠÓͤıRX-x…á`(;&eœ\ÎĜ¸ĉŒjƒZi$ġ"ñ–ÌĝtÖï‹ŬK!<~0Qú·?7ğŻñe7^1ÊA z*'~¸=óâ3ìrM1żĵ·Ìj°èZĦÓĠŜmlżcD,?œ—]TUZAü’“YPċb™ÒÔ%ħéAħİĥ€~ö>0k*…Û+htżœa‹sÒKv~{ ŻÑa— y‚—ŒJJ°uî흞QċdÙfH‰—Ŝ{·££ioP„ž›EĞfѳbÖçqGr|ä ”€šÌÂ'Ñ*öYÜ=ÌB-ĊǏ]wúÀÂèPĝĊ5:ħĈHŝ‘ĉ²WßéĈs¸şJJÀM³èUì,\]rsĦ™êÁ5‚˘u &„~U ³!àĥ“ˆËöëËǙYa€ßvÎÜFĞo‚[RÛßî@Ü6 >½(ĥ˜\”’ĊO]ġYĉğÙċHMĊ°˙%Íèendstream endobj 40 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2880 >> stream xœW{\TĠ>à™# &§1Ô:‡´Ĵ0ˌÊ2‘‡ŻTŒÔPQCÈk€á9k­ŭ}k}kˆpt D"Ñ#+üŭċñòı³VÉ"SbC’Ĵ{SNçY6ıˆ‘‹ŜÇÇïq…'~;aàÂúa}ċ IŠä”·RÓBB3”ᲈ€È¨U[VÇ>7ë…iÏÄÛÄt"€x‡XMĴ!Ŝ% b-ħŽ%üˆ b!ħXD,&–/K‰·ˆ—‰e„'áO8‰ „˜K¸ ‘ŽDˆ­qó,â…⎄£Ìñ×1Ċc~"wKĒHÉ5j Ġ=vÒĜ:)œßp6¸ĝğT¸|5nܸ—Ĉċ; í˙ë@{ˆƒ~n%çúƒ-Èò½Żm—ĥ' L&RÈ[ëî³!Lbè!s‘.Œñ!3PttŞe÷áŝPÛ ĉµM¨Ŭú& Ŝ$ŬxâŜ£‡t) VDKè˘,ıp²éX9ÉŜ@ÎA çzŬɖ5BùLxSŠ.Ĵ>íW{Úpè¤.Ĵĝv`p™'1£ÖtGĦ°­‘t2§_b= [:ó$Â’ĝıŜ?ž5àNé{[<üÈaI;Ŝ™“8B!g8Ñ0XÄĵb0~ÖmLajÖ <Oĵ1H o܀‰Ì‚rél˙…~~ŝçżı:8xŝüà Oĉ œÄÁLNŽbİîáĈo³Ú7çGì¸1T)dè›=)(ġ ïÔ˙!†Adk\·ò˘@|ë{ Ù“f/YÈ'âÊQfHB?úáÀ‘Óç–ĵ %# {ĵġÂϙײÙy·˘ *Rçéf8•ÊÖŻG” %e°s$ôĥ,$oŻĴ/5W2Ǣ˙‚ˆĵv}ßi£ó$Ò\áyËHN;òA0Iş'ċ%ĉŞ’Jš-ŽLMġAYHO‰Y¸ĥeħĜó3RL2Ğ+fŜ\IVühÖ~ÓILXĥœchÇëÜà'÷­´/p~Ŝ²OpkW>Èĵ(™’>ĝĤo–Ì µ´0°Kò ùâ`üÇğtúF†öŽßaBşİV ŻàD&$ëZÁWÊfĤóŠŸH]‹paĊâNr$l+?ŬQL·­ säÔ¨ĦÚTžäD|²˜×Ó¤Öû3˜²Ċb$§ÓÓáô£--„ç÷ ı‰GüeµÌ„ h²™Pu8—nM¤ÎœÔò…bÊêÄ.v²9LnÂ]cJÈ˘ĈĴ~U[։ÂÚ$Cï+³Ö%½RĴ*ʤJÈ =ĉ0i£È‰eĊÈà+ċ2}ħ MŜĥkuÇŻŞµ=&Ġ[Ë£ 5ë·gġ˘zdDċŬ…›Ñ×q§8×> ¤ ĵóğÚ­dËòJ·ĞI,ĈOl| y%èSÌú&í^ ƒvŞĠĠš*uÒ"êóŭkXwĵ6 O`é\ŸĦċ·?;j¨8‹5ôġMmÚ-ĝÂ~à Eİ(9<˘Ğ3˘ÂKrĤ„vt3Pj[Ĉ~āˆ(‡ĝ!Ŭ€Eçɝ2%u ĠTÏü‰NüJà4Ħpù͜ë~áÎ wiGJ‹I€i‘:½.Ÿ-/jDuhöpËڔòVA’@AQMA}(ïÀ3n:+𕕍޲ıP“Ĥ/`ˊ›…—Á˙ìVšŻ.D%ÎËËPnILŽ(Şğ•´èˆJHˈciCX[p˙ċŝ‹g Ìâ×ÔĦ&TĤ™\µ½²ĠSöâü‰˘oŠùh ¤ğ”İÙÙ(9ÉˍDÔÜE½zĴí_@·Ô—ì`KKÔ%(OoP6"ÊĴßĠtq:ڄ`ĉUìrc< ÓÚnÔħvŞ):jVöäŭÒ%w‹_‘ÎDá œ…Cş´UOîLB ŝŽŒÍ)ˆ`7JґŠ½ž1AŸĊ‡²²Q>ʙшêĝ•lŻÜÙaŸi'­üşîıÛ²l"Á—üŽHx›ö†ìH4Qüì,L³ô6<ŝ›çÀáxŻİıEH09Jßόjö„ıRş}ĠĤ7½—ä}ÍqŸ[·†ı}\8ÑñËP}É RU’˘bÒŜ RĊ _äۗy™‚>RoB]à²ä;,Ċ<žzŸó­§àqxâÀµFv><-ĊZRwnà(‡#˘²ġ”†à,HÒrÄ·ù#ҏ_C™^sCf1A3mz÷{Ĝµ#YcĠ+ègğúv>DöUö21ğ³ëeĜ]Ûf£Ë—ƒü‘BÉœ)ùùÒĵżÁcœj°éŽ"ÁİN²İWĝ 38úŬ·ìµ40déóÌӐ˙òfÏ˘ Q8ŭ Ì=Ów֜q5Ê-Ëa•upÀÛ£Ŝĵ–w•ĥ&5ŻKĜœŸĊä•ÉŒëċáSeHdéiD~ÎÖùŻ•k³(útnˆ">(hÊË@ĵ ´%N]ğş ß};§ö)ŽßNÑÓ½ƒQҖ–kv°uŞöìDŬڑӺUÏ6T j£)SÔçêeÒëM,öw— dèJb}pï‰zöïßÈŝƒ4Ô/ä†^š;cáŝžî½ûŽĞÙÈkàˆŜ°áw7ï{?˙Á¸Ë~Gr2ïŭӞŠ[ÍE Ħœë—– £%ÈR#DâîÎ7Ŝ”î‰Cùùñ(FhÒııۊ#³“ĦATžż‹Q™2wÖRôbïƒMÇNMùjŝìÄàĊwğA‹àËpG‘JÒî„uƒĵY7p²n´=zC XYL*„] ¨™éÂìFћÑĠeŒm/ ŝ¸é£ƒ,~ŝ.Ŭ²ê%f1„‘×{Wm²—ó@¸Bó„àOó!£­xĈ½ĥ§Ùġ]îÇcíևG²Ÿg'ùİYaŠ‹S(ââL ³Ùd23÷À‚l6 Ċ{:΋ùDëXܛy şCÖ[ŝjƒ_­›Ĵ*Ĵ ĤúI͜Ĝ̎#ޝ²€³”9Û˘µĴŜÜâ%HŠhלUíáy쐖‚aeÊm G[dJİËÔ% X*póğŜ!X\ñcS˘/iˆğ0-ħN]ÚşÒJĉp,§:"4§Oŝúáİ$v <ñžşá9vwŸxG'Ú­/ÛÏ$ŝİżÔ§‰ "†˙À‡RĜ‰ƒaJt²J™[ĤŞ(`ş’úe½ó[tKÑ 43 ?Ŭfgää˘L*ğRilá8” E'yO1'˜ê–Ħ­ "s‘,ĵ iY"ĞşQ×½ĝaŞ‚`Ş:+í‰iŽ “ÇD…µÉ;zšÛ:îÙğ G„è&Üŝüĥ’ùsÒ=‰µÉiòì(F‡7ĞÓ4Éf4ıiLj%üû—vÈkҒ3·ƒ5İê”V4ٌ4FµžzàĥŜhŝk¨.·ĵ`;~ŝ–žCŸĦž²á}–ÎĦŬÇöhwj´¨ŒŞÎĞWD`<— üĥ›*êĞ™ñŞJŜŻĵtj’s²83NŽkä.cğšÔÂG³CŬPşÓĊ… ~ˆÍŭaendstream endobj 41 0 obj << /Type /XRef /Length 71 /Filter /FlateDecode /DecodeParms << /Columns 4 /Predictor 12 >> /W [ 1 2 1 ] /Info 3 0 R /Root 2 0 R /Size 42 /ID [<373b6172472b5ea360800b57a9720ac1><721733799afc2123bba4634d9de61e67>] >> stream xœcb&F~ñ‰ ÈcÄöcO™X$$ĜE€÷ ÁôH + Á$€×KÄ,4Ŭ ' endstream endobj startxref 30554 %%EOF RProtoBuf/inst/doc/RProtoBuf-paper.pdf0000644000176200001440000063527214552747062017373 0ustar liggesusers%PDF-1.5 %ż÷˘ŝ 1 0 obj << /Type /ObjStm /Length 4274 /Filter /FlateDecode /N 84 /First 694 >> stream xœµ\ÙrÛ8}ŸŻÀÛ¤k*!AìSS]ċ5q'ĥċÎ6ĠŠLÛêV$·$w'óġs.À}‘)G] MAà.ç.“°˜ Ĥ8“Œ[˜°1ÓL É SZ2Ë\˘˜cġ?ĝŸ?eíKöì*ŭˆË³ĊġcOœ/דĵ<^Ŝ-VëĠd9½_ƒé/bŝ"ùİâa&N§×+ö_¨ 8 'ĉNú“ñ'L˜š W.´äqœEvĥáÌCkˆQvvá,²ëìM\fÏËĴ½ ï„HĝóŻ9)u‹IÌ×é|½;BwàĈġtĵżĝ† уÊİ+ù 먓óñäÜıLW‹‡ċRoGßÖ/Gk˘p&/ˆFYcv2J×è9:?<ĈxÒoktùóÏĠĦċ#{w~Ĉx^QvœĠîWİï;şĝt~ptô݃³}`Zt4Ÿ,§ó[}˜Î÷ĉĞiyxş\­îĈKRr?°4°h½gMHġ£Ñ—µ= ˘Kxí‡éġúޏ.„„Ê*.˙vŭ 'H#bkÂè‡pÀ ËVàšĥ—ˆße´ëéSBsz“R†3 @Ä*E­ĞP²Bĝ6T§üdB ÀwáŽÂġŻ9Ħ÷Vb·Ak(áŭĞtz{·Ĉp .A(bç³h?:ˆŽ˘WÑIô:zG—ÑUôK4ŽD“è:J£›èRŬFwßïïÒy4~‹fÑ×h-˘ûh­˘Ġô[´Ž˘?Ħ‚Äzçó˜ÏĈ·+ÂOĝŭ ™Ï‡ÚÂPĜ~ ĠÇÓY °1é{;ŝš6ä`2ìÍog)FgÓĠ "âYêéÖé×÷ĜUĤWÄ%ú˜B‚^-‘üx¸?:}G/ûTʤqÙ° IäĵĠ5›˘a&ŠĥE{üqÂôˆÊŸ §³fPûħ#o›˙,Œ–q°¸oQoݘ…°  f“`“‘‰=>ZI2î› ç'b,=,{†İd˜.q̟a…~8tí§A×0ÑT&˘ĝvY=$Ÿ<´y ZҀéì/Y5!\š°çuáÚ2Ӈ7ÑYĤ£ŠVL³Ċż~{ ñ‘žżiä˙ŭ™jSUœß3Ġ™Oç)ôgż÷Ñ}şœ.ƒ*˘eP¨ġŬ2M£ġ_ R­èŻè[ô=ú_ŠÉş†Áµ<&F´UL6UĴ!ġCu ïéÖħ–Z½:>}ùá ^0áCÁ~IKĊ’–Šñ*fbz6üúSš7”Ş`w\Êw—ĵòאWVċäêÎè:ú^gĴêÁÎ8TjrÑYƒ­ŞÉÖĠ2–,Ä#Ĝiş°óġ§ÑÁGĵî²ĈaNÙâĞÈWe3Ј6,zĈ'مCıÏxKk­? ˋ:{{; öt@Òü_é3ò ĵBò âMBŠ£¨NdéB3 ü3tí hD|*ôŭ6ĊEŬu)†]u-¤,\ şÎ rşÜ ċ  %żGC 3ï.¨Uu¨U=P{\€í݇۷5À}}ˆ>FŸrà…{;›{8_WwQúÇxցĈ³-™ÜäYz³ï(MËÑúè‡tEq ‹uzŭeĉŸÈ/ÂCŝŞĵn ˙: Ó(!5£ñ÷ôżtı¨Q´ŭej•8OĝLèú×ôv0ĝóÍà?Úc7Ù*|ŝôöèâ"˜ŸĦĥJÔÂÓÄhÑ@ ‘„ĥ×Kl/à•h¸KUojGù —r€żn몔Ħ?§uU2t.”ˆeӀh÷ĤË+0Mıh°e—ž·h ÁċÉĊ‡soĴ†GƒBàžî ˜m=o-êÀĴ%S˘Ê‚µ^a°M#Eád"2CäÏtDz4…$ñ FC#d ÂFç–0‘ TpĜ_ÂtÜ h T2N‡!°ğŸ=Ĵ Z>ÛÒ;1 8½§!^ĥ)^ †/XÑÇÄ th‰×éáÑÛ_äNêŜIî —Ŝ‰lu–P ìĴŬŒğŭš66ğ–ÄŽâ2 •·.ä(òzŠü3²ËgŠ=†Iû#/‹X×TÎŻò½(gJ!%çŝIM‚_”ĈT>×J@·ÄȨĤ}ŞĦİŞ¸’p’9 çÚ÷ġ<lŭ­âÒç9 ’ÎJġQĦB-Œhâ‡Ñĉ<PHsC[Ñx³TZÜkB/9ċP.ŸşexT´‹Y6âKN‰îĵ,iĠ +S~8/;Z%Èşe†Ĵ ĥÚm™Ì}üŬd E%@e‚í3ßâôòâĠgoÄFo†{şmï Ċn;5,ÓYŸ;·zh\*TQ” Fúôyd|ó,ĴgÉÜ@g<îWġ„óÍ>-ÙáTXŜԓ?†jŠèó77ğ{‡oN^“•İsßĉyĈMQiòtgBÙnTŬĉ—ltHÚµĈŻ;äñe‰a$ÎĞwQĈ¸%}ácùîÀÑKh#hŒ³Ĵywvzâï{̝ċáF=8íM+ _B~Ÿë҄ûPéœè{›4…¸!TCEXöı.-İŬwüjtċ}£“Á eڎ‹h9.ƒGê,ŭžâÉĈ…[ŠcŬƒ}ŠßúşY§ŜÀŻë‹œm}.*UPµ]TÛZzh²a°Şžä£îí]ìSÀuu5˜é˘ƒé˘…Zj(jùÜzĝgòŜeÏÛ=ħ]Mw‹xàSğ<ÂÛ:³Â{ĉb“ÔOSÚsS˘lsšlĵ@~O~ɤ/Ëñ$äŸ|)䟨ĝ{ş.n£*šÀz½˜ÍĈË2Á–gÖĥ[ŬèIĤQÍ™9³­2cóëtıš,–éĤ$ xŞ‘% µŠ–ZİtÛZ!i¨fĈß*ÜĴ‚×½,3ò8,Ȥهúó[ú˜t’·yHò6@ ‘·ħDŝê~Ÿ?sÌ_.÷Ldîñn"UIF1•Mµ ³ïü–NÖ´ ' ħ+8aëċîPıÏW^'ßóĤaĝyÒr@›ĵżÓ-ú}·„´r?;ıĈô§kòK.ÓÛéj½üΞí]/¤?FßßÏÒŻD ¸mŜŸ.Î_˙ë0ŭmüŝa„7ĉ’~=†ä.ˆ)˙ŬQٖ‘ÒZäï|ŝŞa(²\ü2‡Â]§`h&Ë0d '‡£ï+HĝÉüfÁ²­,t÷jñòäl|_ŝ€È¤½‡Cf\ŒSJÒ°U˜dB+ĉ|5Ĵu§ àÂïkŝšî ÚrĤ´£ƒ–VÂŭÄPBÂd픿ĤŭZ´°§í·Rh ŭ‚ĵjZóFżmŒ>,ž£ôÚ9¸[¤Ü^2$ÛM çœÂH"„–ÛL¤KĴġXI^x§Z)mëxĊch°oÉ}÷ÏV@ A½meĜ:˜ĠL‰J6;ĤdHû‚šŽiß·ı2¨Ê=ċ2¨ş6‘DDâÙÖÇ£Ċ‹8Oš_ĞN ġTâEYÖäYÔä9Û¤ĠŜ—JŽ•~ġyïè­_ ħC“-ÎşáéÁ ızôyÚĈµ eŬg–uWÂÛl²Ê…­ÙJŜ/}ħŻĤíLÔiŬVşVˆ_#áP—™ŜKpñîâ—O§Ô½ŝ5wİĦ"ŭoħ˙ÛrôL-† —?J7ŠXœ'2FÑj²i†3ĥÖ(71ĥo/@‹/£Óϟ}ôÒU!Aµ ĦgÉö9>)Ïâh;îS3,OÓáU?Է̚äç5¤4eBTFc|Yû7ċó/²?Ïç÷!ÚÛ¤³³Y“Ċ}›żFTĥYğĵžp5ÁĦüœ|LüUvl·LOħÇ1bŽ·ÙÀ<ûRËğ { ÔSïyž&óàkR/ ×½™ĞqĦ–²Níċm× âkrù‹˜-ħ=ú˙4TĥlҖ­ĉŜ*;tk•†ßB0²]vî2Ġù°Ù~Áċ†k×NÇıÖ~ĥ:9†nfë şÛ;ŜŸĵ|ë—Sğ½CQ5}żášĴ~D˙b/´ĦT&h÷ż†¤hëWÖJ"Œ—ÜùtĞR];ëúfkÙ'ÒĥR×:TlÀş˙ÌĊ5Sêµ İNüÁ^‹B•ŒJuµ´™Q‘Ĵ\˘]Òî)—'Fè!—g[€ÓIöµ.£mĥÙBË8Ošîş8ÏʐċŽeímÛ&mj‰šJrF&‹nĵĵléK‰PĤ%ü|b™OE“c‘—ék³ĵL‹6lsò'‰³ğI÷èŠŞÓÚë,ĝ˙tġé³_›ùħ4şno5şéc7iôşÑŬ.ùŭxĞvmsÄğçc—éòî](QšL§“érò5KšoŸïȇßÒGk鲚'x–VƒâÎĴĝ2à´ĞğêG'q¨Öĵ#žÄ-„n)V¤ŸóÁëK6uav%1óft¸ż2ÉÓmŬŜhĠjŜ÷9Ëßóë~ŸòĦ,êËVÊçfêÚ£TM{ê"_YjOZw¨×Ñ·­Üé%[KŽZÛJŒìġ§iĴu˘;™?=@†âNğ˙”U•­¤Î‹ÜàÚ'ÜcZíNMk%+Ìt÷JÊfÓúäëñoú|šAKĊ_İ’µß_qğ$Şİ¤ÖXŝĊâVDmdÔü%Ù׃µ„zħkĥtT\M÷È·§Ä­˜m›Q§ÊĉûżûêIo°gżH >›Ċ¤"?˘B9Ż£KXğùž/ĥ#WŭTó?ġïRĤ!ÁÂ. ÄÙòŜé#QWvI*?‰rRU{ÁtNonRZFMŭ÷Ù.¨Fñŭ{Ñ)½QĴxsƒcê·xßàĵ󎣛Yè™ò‡Ù÷J>ĥ¨}ä'V~ä=˘êWDô˙ ”ß…OáÂçMŭ#Ŝ-ċŭb›_çÛ)‰vÔÙßĊ½Î˙ƒzendstream endobj 86 0 obj << /Subtype /XML /Type /Metadata /Length 1168 >> stream 2024-01-20T07:44:18-06:00 2024-01-20T07:44:18-06:00 TeX Untitled endstream endobj 87 0 obj << /Type /ObjStm /Length 2263 /Filter /FlateDecode /N 84 /First 754 >> stream xœíZÛnÉ}ÏWôc‚EÜ÷°0`Y’­ċ”Wëì"´4’H…¤ĵò~}Nġ̐sá&ZĜ5bOßğêÔİn†À ‘)ċYÌXɢdNX Áħ¨™”ı†Iím™4T옴h=“Ŝ“Ñ#İPĤ½ ‰Ŝ-š …µš)ê†…„eÊ£…Žİ(İÈ#~L‹ ‘ˆL+á¤`Ú8IÉ´“hŽGCE‰@ ŒèGZf”Ĥ:Ž­¨È3 Ĥ+³K22Ğ Ĥ޳Ĉ£Ž’ÌZI ĊĴóh4³AĦ•2ÌÉH9–9°ċ˜óİ•g.ztˆz^HJDĉİ\jÁĵ h%óšŠ0'o4¤‹Ç[¨@j|”c‘°”p,LSbÙbF"° IÖ:²`¨gŭYŞ %!IÍEêÙh$DGúÔʐ^-ú1lš¤5‰‰–Ä AD MK í:t& žšCU1 /G9è9’ä“‚jJ›”0ˆġ¤}Ҕ ”"ĴXB„ò¨íHŬP-R¤] °IGX0‡tšRÔ‚Ú Jš”pݍá°béh Ż(EcxZœ£1)”!"t'}BuùñGĈßŜ'g“ñċ”Ñېä,ĦÁìġkĈF—Ğ|t“ÖB™ü8ŸLgÔ*鄏G³ƒƒñû@ŭŭğÈ?Î&9•ˆWô™§Pç°ŜÓ ›Ž'—Ù4I0uŝĝeöí!cüŝk|ċ˜PĈÀ‘Ş|Jċ4żäW³Û)Ĉ3ö•ÂŻ_/["à˘¤X²BHĵµBT­/ʀìhhsÛ%RWµ:ı~…fĠ }m}(ÊF³)š”r;Íòa1gš‡ĴĊÈWP-fu6œ +XL‹z;zš½;Ÿ gñ\!:–]“ ϳzĉg‡Ç˜]ö4KSİ&z6ĵÉŞ™ §Y1ñ“Ïï>œüöôÓ j!tĴhôf4Í éğRú‡Ùôr’?ÌĈbâ4‹rÀLM!ʉ9˜HŞPQïÇ+·4ß úol‘˘ïâ£Eñ­ĥe²>ÖjÒ H‹g²7ÓKR€ƒˆùÛáû,żıĊkZIÀċGü˜_!żäW<9ż÷|ÄÇüOĝ”Ïĝß'ÙPO—ÔĠñŬfŠÑ¨E!ħ(W÷8żŜ”ĴĴY‡÷YGS'³á]~ùfts—Ħ&?ͧS¨)I5-’ŸÏ²û‹Dĝ5ı×TĈ?—Ğ3à¨m-2ĵ Eúġé7´ÈıíÒ` \UÂvŻX.³ĴżR‘rŝB¨z!gWÁçĦêb+Ġ7€/UU>üUÚŠ4<İ&c|•HĞYÀĜjM àĊëŻQNĜ+ċV£œ¸ċl -/_Z^Ĵ‡VÜZ;Á ĝ‰~ œŞÁfƒŽò•Ĝ§òi{ĵ>푷W˙N–·'ûZ%(ı_Aı† ü³\óáĊǟ~=áŸ˙ Bݳol›ˆè°;ÁĴé‘Ġ†ŝ˜Â‘ŝ·½˘nk^ħx{Ċû|ô8ċ÷w³üáî[ÍŠÊ˙™–ûÉïQ7MßWacáûZ˘ĜÔ÷!v[îûĥµYŠÍĉi“:^Q ĥ°ß:íoDéJïĴRĠÁZ-9¤Ŝ¤¸ RÜú E­ÜÂ7‚”…=~8>ıĝç€èsÓ­é,.t ²BbŜqS‹ÄééĜ£h˜£¨[aà.ğž}ÉonŠ· U£×úöTiûì³(¤3…V*µmmIgcµkLtżÑoş8¤İŜT:İÙܔá.*×ú /´ÊÄŬ^Mĵšla╳ÛÑŭ:|¸>„ż 1Ó:üġ{“M{ën;Ŭżûxvvñóï³ğŻÙ,żnŒVAUÔ|ÛÔÔĤŜOùU‘hQj­ë}Dùżŭqc|/éÑW‘Ó'R~‘êûÌÇ‹4Ínž.{ĤïHĥçİ)OˆEQŒZĊÈô´ùĈ›†˙/^çŒsÀßĤÈĝÏÏĝ€Ÿ#BŝRĈÈİżĉ×ù׌_Ğü†ßÖ"çñ(CôüMòñ˙O £§ùŸ> /3Ô³ÛI†ïßÇü‘ċżó'ŝ˙Á˙È&•%Ö퉴İ;•&Ŭ˘²ZhSPY‰ĞĜŒ$Xħ™ìÛp̃m‹¤ŭ³Áçüî<=ix–U¸'Ûî?v€/7EàebWéĈ¨†—IŻsC *ĠĤŭWK ‚\|êĤ†ĜVCK*zןw¨çy—ĤG‰é‰1"èWo*ĉoî_úĥ½£ò:ûòá;³|ÇO‡OÏu“ZÍàĠ­ïĥŜ ègë½^ ÉjÀ‚­ġ.;ŭÂĞgœԏş7 Žô~ƒ£:Ӆö³Ï?zµí Ŝ—Ĝġ÷%úğŜ—ôï\ñS‚ïc/‡TH{½‘:4€´§Û½ôMĴH ’‚÷¤¸HFl ¤}r ŭbBû%Ù ³ßËÓ8_5{8_íżíœ@~ÇûĜeÇ=-X¨ƒ…K?*ÚÍ7o}:gö{ol î{úìgĝiDԕÎWˆĈìW4 J5ğPê.˘Ù5]!ìwOg×v§k×M÷żË•_ ÍVJĉ××VDKĝ-ŭ’}:f+&4ŻıSwè­q™ÁZ·ŭ,D™–ğXŝnĦP:]q½€ÄğDù˙îo¸?Xĥê ‘wşÎ§ T7úŠ•üT¸Ĝendstream endobj 172 0 obj << /Filter /FlateDecode /Length 7044 >> stream xœµ\ÛrǑ}§ú<"8³użĝĊaÙ ‡eïږ¸~YïAY$†IŝüĉŞûTO7HyµaGpÔ¨KÖÉ̓YYŭí…9Ĝ ˙k˙^½}öo_ĉ‹ÛûgĉâöÙ·ÏĴüñ˘ŭsġöâ³Ô \Ĝ|p6ù‹Żžé‹öÂşpˆĈ]dg6‹oŸŭ×îËKspĠYw½Ü›ƒ·ÖşûŽÛjC°ğÓ{ynbĴywúŒ˙šZŬ=P#_\)n÷êòż_|AÓ<`äâ6úJ£ż¸Ĥħ~}ıµÒâîsî&ëmŜ}*żkµ)îĤ>£Íiw££šäŭîîÒۃĦNw4Ÿƒtñ;nV§j¨4[í̤˜v÷²ˆ˜jğû?ÓoSs 4ÊQ~GcmÜŬŬÂğú—½r˓29eÏÓò9ÒÄêî÷:D˙—~, Œĉò^;C:ŠTXÜ&_ìéßj‹Šâ+YžĞ$ù(³—5 ’À™½ıœc“Ÿ´É1ğ6ĴHۜĉİßİìjşë[çxè;G yñÏĥı´† ·ĜğHÍC¸ĜûÊò…ŭ^×ejáy ݤÀK”ÍŠÁ¸Ŭ7:Lğ%05Ûv××7Ô>g|Ĥs{Zğ+ğ—c(&Yq¨ÉYŻ`qĊ—àèĠĥž@Zq ™$YO:”ì/öÖb¨O–ċçJ6Ħá­ĜŬî%÷LÂwQÖàœ'´ìŽ,@K2™t…ZXÚ3/ğÇ &Áĝb<ŜçŬ?eµfšO?–hiÎW0Ê{™YĴÖÇCt4wœèż‹ÖÙàcĜ=ĜEMށ:$ĵ°ŽÒ§Ç.ßŬWïµA 5½ÒxêDZޤcĥ‹ÜѨÔĊŞ Ë!ğĵáxùöò]&=e;q˘%ù,šd]Êv÷œEèĊĝŬù1á$EZŜv_mˆ%ˆ cÑ´¨XŸT‹ )Ĵ牐0mÁ;ŝIŝ“3ΚÙ`˜’woE é Œ5 ìIu!€˙ĵc3HŞäœêUħ!žżż$aĜRKÛ˙ämӃlIɂĜ¤d‚£-”½żté`2½ö¨²âŸ§Wú;Y5{êwG–ħ36˜„=ĵèX*žòîNP î<ÏĠJÑÊ2ÉZui>Ŭ+äéŭŬoužÌÇ퍚oéK6şä*;=-Tċ÷ù‹gc!&vXžLıŸÈsŭáY1•¤ê.’IġĊÛgÑ9êh~òĉÙW›ŝÍĉ zB˙ĉ2ù–š/b ‡îŜ~+Ĝ#ŞR܌-"y_IMÚ§i"µb€EQM1d½ÊĴ݆ŬۘÖ,ħBúHklŞÊN4YSş>8êúšğK&:ÚA$µ¤ž 3d–ŸZߋkñ5°—Ħ&¤ċĤ’@ÊÌn[bĠŬ¨YǑ&Ԉ›Sωş b6M!^PcIi*§;íòċ¤djRjN&“`Ş÷Ú Şw, Ş­8ü;’UbÔĤaŜoĉĝîLšò95% ÖRdĊÖ9˜"Tċp7/lèšĤáyÊMsîò%áé,nË½Úş@kwz'âJ9ÇŬkħ+}0\kMîÏ6Œŭ:ï:c‚ĥşƒ…Ĵ}‡„Aš°l˘AÚV‘Ċ’eKÜ¤İşó>ÚŬ ħLë8)cÛ{Z.M@,ĥĥyñ£N=²/xÂt}=˙D,"\ĦÉénÉ2ğğxš…ö: Ş/êŜ^ ŝĵy­£U|žŜväÔ6!ÌÔJ’!l~“Ԑú0˙”‰ĤLˆÚ“nf 3é#›[êR›eû ³¨JG@#÷'xPCâF‚O·Â`Š%ĵ;š+ċ­ÜBürT‘I·Ú;Ûŝ73TJ)½#ÇA†¸aùöAĈ§ùYçV}Ea;‰jp¸Ü• â›%-ĴÁGQKŠl£&ûŜymsXŻÄ‚WáşOD"Ö˘ĤÊŝ@‰Ž‘8bĝ¤ ×ĦáĠ“Úë‹Ï¨ Ú ë9àwŒÔµ6[â?fIĉa³g=~'Î$1ËTĈiIÖ츷ş´6`áG1†ú(r×ûğž—ÒdyƒŽ­½ĝr·ïÙDR€eI½éWcˆÎù÷.;ÖÑéÚ>Qj\gĞÀ³FÍ7!IWBj\&à³ñĠB̄{é™p/ …hQ鐝Ħpâŝ¸kÄë£\ÚA;<Ŝ7”ĥŝİQ„ CHCì0e,ĈˆÎġ¤uĊbNŽÔ—ÜŒ/?p<Àԍ˜°gdċüjŜÖżk b<²<ŝIs¨2ñ0ú/à˙ƒ'EÑ}ĦeQÑnÚ žrÍҜ}ŻRŠciéaŝ`O'Uı‚§Ŝˆ;šÈ[”ĈCŠÁYmQvNŜĥĥ÷UüÄŞìeBÂ=q?b¤ [‹w#.èšrĤÎıƒtÁĝ½XËÒ¸ÈFN+L?Eès™:­@ìĊÜŬü*ò+ـL,İkû>у˙DïâpÎmm3‚d–ÊÂáĝLf’ĥ  óíL5ŽÍ÷+×'ß“gƒ¤ı.Zo]!Ĝ9 ïˆ'â‚2ƒL\÷3şp}T›|„Ċş×Nˆ“œĞOfƒd£ÚJÑVż›<šàÉÜĦÌÁƒ&zÇëYşcÀÂ3‰ĊkI’·^8µ`W(Ş$ç>ŝiVw³™†mo†9rn˘cçŻr,“ĉ~2çA €2gÂÀl†›5Ó­#ŽÄĝÜ)öÀÌy³âĊ°7‡X˜ï Ŭ&ċSŸ•Ŭì;™u”‚ƒOĊ8ĝÔßHÁg.q‚pŻP›Ŭ˙èOC}˙~âġş; Ŭè‹Lĥ@‡f3{9~ Ŝôy#¨ğç´Ñ6GÜ0Ċ0âĈ‹èdlr€‚|َє ԙ§D[› ›26_Ĥ¸² Î‚`$KÚ|7VÁ3è)r|’6ë …“ßy:; i#HFÔé’83²-ö†z£h×!yTn™ êX"§#6ݎˆ§ŞoœZ“>^óîĊ!yò¨‘üĜ',z½÷ ĥAM m˜SN9‡}@âĴ)ßÎŭa€ wÌÂ#ĵú•‰}\×™ôB7uĤ£Š½˘œĞL ğÙM/Ù$ßĊnÒÀ·&QhW%4²l( ˜sZ4şc9[~s#†vBXżçì|ġ›Y/~ŻĤ l“ħ@œ'ì{ŠY:.Âùĝg­ñuÂڀÌŽ`š:ÇwĞ é-ŭ öä.Ží¨‘³žó2,¤ÇœUûWâ!ħî‘à3Áñ3@éŒÒ1Z&ħ–ĥ9„A}aır“Žġ1z­ëµOi*1 )˜é@AfÙìû´Ğ+ïäPÁâĉŒhžBğŬBĤĝÜÒ}à²ÎM+=gӊv["ä1—†ìĵùÙI’18Иœì0Y•l¤4^\N™ŝÈâ^lŽAÁ5ïKÒÚ=Ç } sÚ::Z˙0ĝˆ.´ڄ ,\´‚ÖÁÒЧ(“'DİĴċd5y˙ŭÀîuF€óoĉG×óxHŽ=S‡‹4Ìy"ş=’ú%Іĵ䇉ñŸ@ĥÏxö„jÎ) Ħî·%œ‘ÜMt›ĠVÀĉxŬ8Jv…—ì—<½lòĤ–ürJ%#ċÔİéçĜùì1PݘDgê<•­X,ŽżÎµĉ,ì1t êı$YĵCÉSb|ĦĵXöµ›'²€ġ›™ŜĴdİD3ÔìVğşG{<ܜág[ʊF]Íu Ŝ Í/s$M˙ÏÄĈĈ'ˆíĵ†ÙaÏfzW³S‰,wòK–*9–ñ$iˆ ĤŸçUc~m>ġXXÏΊ6â h.bà(˜†ÚèïµĥNf ~œıfcΏ°{Ğy„ĵêFë-eß (0ÙÖÙ öoTTvĜkĜW*/Í^XÔD—Ĥ“ĤĞÙëß4·“!G 2< §ú>àȐ ]Ÿz%yiGgàÔ֘éMŭ}3Ŝ7ËQ“$‘I#ù2êÏIkHÚö2hlĴJjh˜ Òs{í7V¸$\AËSjá>ĝÜ7lŸg=FèÏcO—Ò°Ŝ×sσóy˜ÍÈík}•XfFÜ Šĉ/ATí5˘2SiÌş‰ĝBÄüñ’o(Y˘Yİ`j--é™ÈĴúÚLŻTĵ?Ì?Q\G¨µ˙àpŞmş£&4KÜĵU_†²ŝ£ê]êžyJZ—2ܐ +U.Q;é|cQjàñ~idLúŭ]wp_â"†Û¸ŜoÖè`$gîCè;ñKPòÈd„ġӆÚrmĞ–è“Ì,¸²0w0 i Öì6jî}Ĝñc`òlxŠogmyX_ĠìP[`˘ì>2Ÿòy=Un]<Ĵ.ûÍ ’ò"×=B ç‹ŜòV_ĴÔQ^Ÿ1ĉÀc0êç2ÇÍ(‡4£2ĥ]“žEĥ$-7—Q(ë”À=8$3¤…Ä\\ħ(~pàÒß­ŞT`ı–şP)ìd`É%ĥZ1ġ(s­Xí §ĝ:Ŭ‚âòcȑ˘Gìꛭ„ö|·ĈHbvcç‚<ónÒs5á&öĜ£ÌjêÔüĤgġ~ż“)OÑI(7Â×z<6ëáÉTŽÌNRyçxé"t\bÄżŒ)˨k˘>çôTš`sԔ'ÂâŜŻŸë˙ÀçàĊsğ`İémïĎEYÑd× ž\gKOÚ#¤òŒG7–§Òv!†'x4DŸSB‡çŞWşLéIFe,œ·DĵhBH„î5é]í‰jĥ’EÇÀ`ĵqNuôÓ5—šûM·ÉĝLèc„DVËúÉŭ!Œûì!fˆßP·yÉ@G îŞIŜ bïd#ĥôsħoòWĉ*' H8ôw­uÇ>验­˙ñž)ıcċ˙AÎAwÇëß_ĈÀB„Äвeìáĥ½Œ–Éèĵ@Ú Èhî ÈċÛĈŻĝ­íèXïíjŽC¸8*ñ9@ínlÙ1˜fƒÄ5,4ĵÑ%}´íz7’íÛ–ġ,_‘jġ½TÑĜÙô¤qácÏuLĈ+˘ğ•T•\†Ö¨’„äĴof Œ×"_)÷kè@âúa°ĈÁ^ë”ĝBĈ:{~yıÊè‘+=6ᘄ™ä›¨!ô^ċT¤¸O}‹j ”ZÁ ^N+ŸĤ´`7Z[ì)MÁusÏԕûÙ<‡g\mĜh c ,Ç,2!´˙n 8éġ}/ZÖ<PĠ)6o#)šln/8ĝkÁi2µL9qEúAĠ=“”?ż4ŭ.<”pT×nöà{Ț4ĵuN*­DĝÛÙÁ—‰ĠÎs)ĜùQrê ƒĝ3>ÓÚ,ĝÌÏKTɳ_<ô ;èïQ‚FxÔĴL˜;wĈÊAĤİĦmšèȍ.Â7ÒhÀ0M²è_¨Sž"jÀêŠıiIŻahÛa!va>.òJ+àoSÁßO cM*—ŞÁŻfÈkA"2ZíÉô_kXÂYÈëġÇ1$wĉMÁ{x=Ïú0‹”•wzİИċÎÓ98ƒ¸…zÎ.£IŜò:ˆÜ`çôGr›+iîb‘Ââ/tĜó/L’¨+2nœ^’#ĤŬ$\G7M˘Ĥ³8Ĵ­ƒ­@ç Ìĥ0i{½>i!ïĤl+6™+<@šhÎtŸŽşÑ·‡9'Ş×MÈß'WñüÑDۋR;|s¤”܍‘é*ĥGÌ/³–ĝ–ĈšÎÌÂ×óçi;ɞĥşvwȀ6Óµ““ äşJ´ħxœ˙ ĈtÊvˆ`OúoáωPY\–ĵ?nĈò§ÌêQßäÒé!*ğÖç­,´)§` 1d…M‡Ö“üécĴ1ÒSSşnşj âP˘|6Ü‘Ú gÔeżI×ÎìœaeènNĞΖ˙>RĤV­ráëÙ)œgğb0#x?&I}Ïĵ›YĠFŠ„ ‘Ĉâ„wGqSK… IŞ8ñĵdˆP‰ıEĜ  W!˜ùNXġ¸ħ!Àd^7v§2á,öè×úSdn0ğĥ5Ġ…µ^ÍşìA9#ıúu’;³06KûR žâóér1v#ġ‰7Á—ZâT’0¤U†ŻüÌB{y9%€ŠÏ·ƒmDç÷|– ê\´;D;5iÏħĉ/˜ßmµ§*„>Ö[Kj£G#x²ž?6àŝqöL[A¸HGĜú7\]Ë_>ĞËoR9ŝ’É·ÎÍ0ş…­ĴôWâ˜ËnĦ£³|€Ç£ĵqÔ}û|µĤˆ•˜ 6πVGŞâ£oġD>ôšÛBš?4Â&].8̕Cò :GA¸NÁ+Ħxï'èph.„ŻGsSûĦFi½x‚KMĴ+Éŝ{ çĥ6Žo´‡“Ž•{ĝpĠĴ˙mDŽÓä*hñRÜ ~ ´ô8¨O${8"ÜÈp ç2&q ÔÓáĊVŻÇ ċBáVô@bÂìñĈïÑÍZ³Á¤Ü-܏|'ŜqŠ2’JRìp„uä /!½°Q”ì´uÍŭEb˜ż­§âì逐­|Úñ<\JC‘O^a“EžxvĊ Íœ zú<Ngù^†/€çŸc83ħı! 5ßüÜYçÖµˆKi &Úî-ĝx í™ H'ċ˜ÄŜƒT7*äĦXċğnÎ ġŭ­`ä-‚ÒYì6‚˙1ĦX#ž%Äx\Èwښ,Ŝ–^ ġWJä˜~Ë?é%–#é%jÉuŸù2[ŸŽ ™íá6 ‹’=Œ[-h•ÌDî|Èo–én•ÁŽ_nâIĠÎ&rĥöCĠä™Ġşı$neW8?Ş‘§qé_bŽün0‰è˜‡ÓÒfığ”ùvş·6|°4ñ—9Ÿ*ıµ|Uf*ı%ik›AĜáàĵ îƒÂvn!lÑçëSĊÍñċêëċœRêRĵ˙ÒpÂä`›ÍĠŸÇġŠÉ`+ûÈáӚOĴÈw‚°½"7yĴŸˆĜX’%ž”ëbIN@?{Ià[Š4ƒŬXˆ3h9ވâ‡ñHézuüŭMo§9˙UĤ\£ġYż­†} ġµ˜âİ‘-§)&œ>ÀüC—ħÎòÜG)Sü–IĈYӐ GH’Ç/ŸóÁK9Ŭ*£Ó4”;ÍVĴ—ċ~éŒ'€E˘ÇwhÒŜk'uş?Y=yžjXµêá“Ğż\‘·À V!Xœĉ=xÔĊ0·v£zaĉLFkÎú [ž]P˜Ù‘·c’ŽĴzâox,Ò3H#!³~^۔Íĝĝ8?ÏŸ>Ğ›ŝ ˘ì#Î}!n„-üĠ '2Ži–YĈžóßöâĞw àñË)ñ÷8gÑñƒĦ~´ ÷í(Ğgġ7*ÌĈİI˘ŜĝÉít:6“èsġÖ%ŬÌm'Xžñ“!:ÇN55¨œqìS§ëÛÇħSR_‡“úĝĠñĤĉ1%]´|„¤ŒE0G,Ú2ЇKòġ ½ı,ħUĜóG×ÏÈcT@<Ŭ8HÁë0òe”:}WiüzvänžŜ&¨¤ż %è+ÓÀ”¸~ü ˜hÂħıŽz=ĊĜúŬ0Ò̚ħŠÖâŜHŠBIu˙úÌıƒy҆F{à/ÀÇ*›ĵÏ]ĝ[ħRŻÄİä™29ûŬ%Œ¸ß}ŝàïmzdŬ6(}Š”ÂG3… 6íóàÎóçÁ˙öìôíendstream endobj 173 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3026 >> stream xœ­WkTT×À½×jôcìŸÁ`0clLZ#*ˆ˘Q12‚0ÈD@yÍ̞| 3ĵDȳ§xQ£FSS•VcÒD“ˆVħ‰íÊÓCW{Ymò£?:çÏĴuÏŬgïïÛçûöU0Nƒ…BÁzxyÎtü{)€Ĵ³÷ڝa˜†9•Œwyçœ>êֈ#ÇobĵW‚w˘OrJê˘´Ċé~ë#6D.‹ ÔĴĜ³rUÜ&7Ŝd˜eÌd&™Â,g^fŜcV2ИW˜ĠŒ;ÄLgĵofĝ23™…Œ'³ˆ™Ċĝ1ŝÌlĉM&€Yʸ0ÊL˘Y1NÌ&ĉ–b˘k›ƒŒƒî*s”œŜu*uú£ó,çB։M`{ıE\5?’Ï Î2aHìĞC'=0ôò°¸aı _'k]äA’•6Ċ=dq²J9/ ×S>!Jï5áËâEŭ÷,y7ÏYÍ], *rÑWÍĠ.›Ħşuuú“&KÉĦò†tò€ıp–Hûİ9›ĦËĜpAg~²…sħƒ„6Ĵ8]1')›ì^‚ú~Ÿ‡ZžĈĦە‡·V\#CöĞ=ôáE¸Ĉ÷ùÜ$SEâA~/`Nà^2j~‚ß\L°_ċÌUjKĴ„ĥ#n[ZbHdï"k ZċÑ6E=oŽQÊħ˜ àÄY÷È8"ĵö:™JĤܟ‹£qìŻp‚H’H€‘•9ÇòĦĴ Aמ†ÒĉŞ>€hŒßğ'‚a¨!(wcT =Ä•#É˙Ħ‡Òîa÷Áž-;tşü½)ĝ(HU—;–Ħü ¸³xߞĤքvĜOÑ|ġzw\ŭֽޘFMIĝnuéŞR8Á÷\5ş½Ó?Ŭ(²EfàĞag%q\A+Ž0c˘„ó̊/‘½#)q&‡9Â|‘~éÓ#—/ˆgĠиUYÑñ!péèbŻĤ„´HX.=!¤Ŝ,û$ûháÄFk=!‚.Oˆ6Q<Ô÷I9)Äòû÷³'ŽkÈYMw •;`ÀÏ[°´üÒŠì‡YĊÙçځgäÂ36VqŜÑKŭ—è+O‹ĝGüâiçö‡„‡µgàr³hXÈ˘Ï.g‰ ȇ•Ì iôÑRFÓ2°’–ñHb5ÚN× $û¨żoUÓ=h£ëŜS²§Ñ·Ğ‹,òHI!/”‡ ğ˜vġ/qÉşx}2ÄB¨qĞÁñ:WrLŸ£}Qê ’>MÎç$6^ïŻÛIdÜ8°é"‡“û—&•éÀ‹5P\ĥëĠ”½9ĥ |E^))=áx<–ĤĜ+ħQZŠf¸Cĝ@Š8˘?‡óÜğ Ĉ°?^,+n1ÓN8V‘äġ§ ÇèrçÜcÑEÎ,°ah=z8”j0îáÙxZx0˙<C\užĦ֌ġ –ö†´ ½A´ï6ŝBmB•†#S´Ä5&ñżı{½§ÍÚiÓaġ]ħ5—Cµ9טcPİM°,h rK˖}'tñGŜ;XĤÓĝj§9šò¸džĥ^ b 7O†ş½MĤ‘Wż›‡Êĥ–½uMŞpŭjÄżs„í(¤j˘Bhñ5ۚsš ›şB+œ.·îomĴiƒz°eޤ…EÑ{ĵ¤ç>ġšJÙ…šC]ŸSñO˙² Ûİĵî6<ñT¤Bi1X…gËâˆïŻâPTÌùšĵ˘"ä‰ħ?œıO¸ÍâpXúĈl U³¨mhÉ:úmŻ SÛµT5DT*ÑóĤdLŞ„ jw™Á°7ßĥ›ê³ËùŜ§­ıeŞòŬeĊûŠġZ]!äòÉ[jk+UWe[³5ڍ‘bDŬûĊ ”–á>ż ;q$UĦ‚lÈ1ß›U°2Vk˙}ó=Wp™„K~|áâÉSsċ ĵż–úŞ:I¨p£#3dC̚Én‘Ǐ_8”XÈħ%KXozéŠÈx܄£³ċtJš³— —ì~“üN$_?ä›@yÍġÜè_³f8 Ġ‘ĉXHXE%iGĉ˘2—ÖûŬîûeUôîl)ÊÏÒĞŠB7''é%˙\ŜÇÚŞ‚.½‰Ó³ÁĥşŠ'b6ÖÉâK°p/ĝ_Ğ\(ċìû³}8Sñ%n”˙)Ó4­‹Ž ³Fw´ÛšŽ‰d ñĤ÷Ğûı×NÛiJ§tĥÙ/@vhkµMŝh VŽêu„+¤á:˘­aÏÂuX­ÏÂU@%ì×UÁ6Hçû'sáyïĴĜşŬd,ĞkaoM:Ĵ‰LNÔ~{ġĉí³E9‡6™ġW Î?ŻÀ#iŸ#ôJ“g‰ŬƒƒJnáàOôFĈİÙ.Óßà4]ƒ<É8ù³.Žn(ù͢¤#Š‹½”w}ÚħWO+ícäš™ĦÚTi²@ f*üzµNC5"Ĝ¨ 3g‹D_£=¤ñŭ#92Ŭ=ì-" ˘<˙½wGĈ˙0™^á_ŝˆâôrßÙ'¸‡ŝ—Ÿ¤(7 ğƒÎÇuMÏ'ìk”µ>³KĥŸó ‚7%Š·ß6Ċ‚7Ĵ _Ĉ˙Ÿfû˙iüÇŻÑëĦ˘ *)3^ÂCrşµ–fĴd³›§Â™Â§Ò<ù-ĥF_’UÙı"ıïçĴĤSˆÂŬ1…|I³kƒ‹2ÀÙ<ŞÓò t0G¸œ|lëÂQ5-ŠvŞ…*T)ÑWv`'ô”tD—ÏÊŞÁĠùû·$j2 œßX•b;\Ġ~&öŞûëäŬÄşÈ>Ô âA/NE7OÜĥ…ÀÚDñOäŽéuıuyúyÄw½ñ%1X4%ÁbH…HXĞŬT•œEĊTâ4Ç> stream xœX T×ĥ­ĥĦĞDĊKĊ$Ġ'œ1š 1ĈQ‡Q@&m&el ğ 2Ë<Š­ˆ@ Ѩqˆ‰‰ú’£ßè3/M4ä^òÖğdĝ/yoċîb-Xu×­{ÎÙgï}JĈ˜ġad2ğyûôפ?_^O6żÈét1‡ŝrèo–ùòÈÒ!1ċ[1Òϛóƒ/ܵÈ14lñî%{–Ş—…{Fx­ˆÜĉċ½}Ġß5~;×úŻ ì?yÊÔéŻÍ˜ùúö³ŜìgÉ0Ż2Иь 3†Y͌eĈ1ÌZĈ–YÇL`Ö37fÎ,`60 ™)ÌFf3•ñ`'ĈŽYÌLg–0K™Ì2f&³œyYÁĵÁ83+™@fcÉ d†0VÌP†g†1™Œ53’yIf!ëÇÌĤ!2fLóHĥZV×gRŸ’>Ïċ+äĠf‹Í6g^jŜĦ°Wä+ž°Yœ%WÓwpßU}oX8X|Ôotżì~]ŭŭú_0jÀCËu–8pÁÀo9*lú°²á/ Ï~u„Úz¨µì|&´3‰ËJeâ–N^SĴÛĦ KÖD’ÔŸFh˘AĴ ĠĤÀà"UŠƒ†‹PĠp*tïömb÷ÀvÎM˃!½ ‡À2Ċebg>E¨3<†¨ƒ Ş{ëd–Ü£yäH“9Ù§°ì4“ha”Ħe¸erñ^àżġz‡ôYèì;ÏOc™“hb/e‚·’\wRħ†Oá]żĵß ŭXdÚÛ+ ›+ê?ÛÂZv6Ò0ß5b…I†cq ŝ,?Ŝı€Wut=ĥQ‰î,:|y˙Ñ·³>&²•8Ĥúm8Ċ=´o'3²Ž|Èc.eŸ•ÍÙà轐ôU’ ä+ßEûfË ż7 Ğ´/$Ġ‹#²ZìyĜ_.Vc0/M{BĤû™£É02üᜎö÷žàÈjž ì{ûĵ[RŻ,oâôÊ2™nÓaÌ(v½ìÛàP€ï nœ:wċÖӜÓp p€ça²È yÀU€ĦRIKE֛pĴQ^/{NĞ•A££dï„kU{ZB/‡ŻüôŽCaê}ò’‹{¸˙6ċ–Ì˙µz]Y,“ĜÄ;ŬVx¸Ğ\È2vĦûr•ŞüT}ċ3ŠŽÇ´^cJ|™ÖĞá·z9°¸miw˘šLĈÄEI\~΋q"{ûsĞñ*Ù„ÒwŻ›ï&ßÍKvNβSMqlÂÂÓÒı#fq=Vž 5™°cYħĉ ŠG9^s•ÍxĜS1/Ŝs’à‚…h§À)`\V@xY„ñĉ]?Òë<´Quš+,Ċ­=X~ŝürrôĈ=ĵ1g`_a_œ& "9/cTU•ħ¨İĠíÇ[~Nžû(şċ 2ëßÑ}‹f§„ÊnèÎd-ĊUIFqÔaYGŭ‘\ ÎċK so’ö )Ú8M²6¸pG†pd"aŻâ =µÉÊêdcR:4&4†‚'÷ĥ¨ŬW>’JġİQÀİAğ[IX64™(,–œ}ŠÁú,ÎCëÓ!Ĉb׿Œu9ËsWċÂiîê}(Cy†c¨AHÉ’°QiJËĊĤ‡IÒÌ×pE&FñŸ›aşQà+a)Ĵ4pTh3–5o  ˆ÷„5`›ï|ûDĜ€ŭáYÑġm˙„Äŝw°_û˘ ­IyÄ˙ŭ°4àò §väRڑĴ ç–Ê~ °,Gq,cLd şz*ôĥĥĥZn痤–µı½ûӛ-çn mžnìÒÀ €Up­B°|!§9aÂbSdÚĝÂ:‡ó&EÏ‡QÔ_)&íXÜab˙DÂ-[cĝ êéú jşËkƒ'°œĝ³'”³ÌiáıÖßè;ĕü/hqgçnY9g^JĠYħÄé7Ċ³ŻŭTy4 İo*p~†ı‰uÖÀqhFáôFo[Ĥqà!š™>şñàI×xé)”Y×cbĤbë OĦ™§Pß}-" ıLäM21Q´ä3 Ò³.gb}t:‚] ƒ5Ŭ'°ĠċÉ=蓕¤/É!<1?kRìÖ9ÒMA°Bş·]fqQאìCrXB–!ğ”³?5DAÜb˘TjƒŻ •\\BoÚnR„êĈPDı=lìı¨•ÀNÙìçĤÙ UŜB}vQ ĉŜñ.ñ Ŭ<ï3wdpèóÏ$ íıv§·8€Ï,JËaюĴĦŠ7>vŸF3 ĴUìEƒj)·5ĦçĦŜŸ™ İ™YʧhŽrò’ı§JQi¸F0´ġîrìm„‘F\×Jés%éñî\Ĉ˙^[of‹JŠJ K[ןk¤Z$tÜĦB˙ʔä—Mŝ^ÊŭüÑÓgŠ›é³A@Ĵ–n5a;”›âŭa1ì8½ŻœŞƒŭŻ’C{œë֍S4MëàFQqħ6)6ê^ƒġ°ˆâ÷-ž—ú‚l2ŠWM²rİj‰â@>#?=늄2?]Ê˙nŽÔS£Ġ&éµRsì'Cñ°Ôa4‰Á4Ñ.½Íq…EçħÉħû‚’c­Ġ[ü!b!.z88cXY`@˜ÚoS‹çĊÛïŬl)UÔR£"Ŭ@-Èb´‹Ĝ—Ï‹ƒĝh½>6YDìZ2jœ àäRq8Ïĵ KÖëġ:½RЍ٠Ħœç‘¨Ş²†§n6cqr¤„%/; ÇôZä2)%žéÍÓĝSâsé%‡ÑŠ'ñh™š³ÍÊ5ìÑëCR"uáúHàvІÏğĊ˙‹^_ĥ›•2–”O…rN<›ÊbU×Oû2â‹Àş2röçâáÎ>#R+Ş Ïá]ÏĦş‡"ĊÇ&âÇŞ!Ô´w´P/ö£îKt‹+ĉ|v. ƒ+‰‡üSGĉ™7+2-oA9p¤ĥ‹Mˆ£7X‡gCİ öSáFsOE˘ÍW28;ĊïĦ'e4Cb᧒éċÚ-잒­5N4£ŻŽ›AF‘ÑOŜ@ë³§JŒÇ•n,:ŭĈĵ"Kd]xϕî1TİÉ @Ğİë+oP֞ğQMiÜJƒÈIŞG×|ğÇE&<”‹îÂWd@Ġaͭͧ”žÍVK.ċħdġÌ'á¤E{!)ZŻIR†,[Şö ;ĈêñsÊ3CSêñ²ú’ş£ċ&*/Ù¤ê ġğħ ƒêğ{ÚÈ;+}‰€H( #ݐñćĝà(bƒğèEyĜG ]äż VÔnßFò?¨û íNÓG-×?­ş@=ËEU͖cĞóœİŒĜĈÍÚàê·V5‡ş.|ÔM-F½ùóû’A ”TXa"ŭž)žXhÌ5èuÂŜĝ„(PsÛê"–×´4ù4/²#òí„ĈÎWŬ$/ŝÜ ufÓÓ °­Ç+â)ÖàyßVàìoî>Cfò]â ìšÜÓĞŠ?j-Žó8 /{2MI”ĜF=Ŭ²ı_{xĞcŽÈjocXGĈm9eüésP ÑÌÙÏ·ĠÇĉ(k +Ӌ Úd:(ĊpêüˆƒóKÊ*#ëç\†ċ/c–„á?™´Ĉm\(yÑïżçÓó˙˙IĞ=Ö¨6á1#֛†t×£m†[íJ{İŜĝ)ĵÇ=}ġqşÌ-Èóî‚üĝĞ-:ĈZ½ƒŭP[rĜÎžKèòjġ;{[_Üyò‹Ób"ôš½2yC€:–ƒĉZâCÎjoR›ĉ&aŒ”ċJyÒëéAhŸĉà²V?“ÌVZâUŠħġ{#ĦQŽarig­·W€ßöíµ~MǍµMYD–Ò.ż;gŝ1zÁ•^à9‹“$eŠ5u²²KĈ9fŠ+xÛrí§Ïµ/<~|o^&¤İA_Òk–Ñ…•ÌğFЏOTCË6ŸHùrôÜéDĥ¤~Sŝ>ċ·CIÏw?Ŭ“§+Wˆİ wN~‹˜Í Ê8.QCZĝ/ŜÇÀ§ĤfçııÙŞŞÎo#Íbvvtüù‘UрIÂtı;âġhqŸĈœKcnôŻÛĥÍßÛĥ:˙ĈĈşşF,éŽıÊĦ@WNqL{ħ˖Ŭûöʈ˜tC‚°?­´şĞúŠ~ĦaĞ/~zç›3Ï1‘Ĥ˘‚˘ìë32ü\ÒNïNŝçñŠpO)7eYwq p_v}M&İí†g”Ĉ?€żA{İœ$~ŬÎÒ YöÙ¤~ñ"è!)ï˘‘Ç!?äċäf,’]8Uàp…Ŭ=ršWİMLIJĦ†„,#ÌEûG0KċІóHĥ0Żà@y1 v#2İèıĝpĜ'¨ĜJ‡tk+äCsS‰†pˆKŬ—–’—OıóÇX“(öĜñĠ“4Zħ“‡òÔԃéĊ†ÒÔb:ŻH†hĠò`˜Ó{Ç ĥšŞQĥ&%U{¸Á,=n5ħ SpäyAœġ§Ct–P—Ĝ7£ó:ÉşÑ+>nínàżÙ žH?éŽô“ßzòĊœß}hÙÚó+ïĵK)àĦ÷b6nÓb˙h!úîâ‚ċ0 ܜĠÜ_ŝò"ûòÌċcċ{ĉü>ĝ [Ĝn‚Âgn`˙2i€FoÙSq-ŸBĈj…GZŒú„J„ùÄċ“×›öVÔ֗l( HOĥ—÷°eŜÂ9ëzİ”$„Ç'Ŝˆ´ŽgI݌m<Ž9z‡6×Ë>Ç>è,ém>ŜĦƒ$ŒöĜ6„Q/M;âĦ4eÔRşh Şñò òœötD‡/ŝŝôoÉ´jáëê.ÁÜ­…—‰’˜9¸ĵıáxôÁš£%'+âlÊš›>‚ àîƒS``ÊfjáCüBtÛuħúp}Š.I Há˘2 ´'ÔLH1ñ3IŬq:˙Ĝ4QœŻ¨Ò§‡Fê`oĴ@w­2Wá1Š™4o?Ħ‚sžôšÉ‰ÔŸ‰Á<ù„@O”Ÿà`œbüÍóèĦÌI –Ĉċİb!$ħšJ%ĵךjKΜ Ô~ȋĠS Ä ›£7ĈıÂÈŬT¤1h Zàb!>JIZ(SǕĉRs²„ĵüú–ğ4Ë0ċ­…0š Üħ"˙}?eہĈòúê;#7ÍüÂûáÔÇ÷qZÎşG^Ùĉ‘èŻRv_ ‰ñ=´8T/;…<úÑà?yjÄ.zŻĵıġĝUê굕ĦÛS˘ƒaçS½ğî ħ¨ċâĥ^%ƒÉœ9$ ŒÇß}NmŬ¨‰7IżċĈ6eä"żBßKÉÚg„vÈĉp`ۙ O`öx[˜=ZÊsl™˜RJ\%ßoñÙ9”רĜú(4@&ì5„Ĥëru9œ§b'Êŝ4âëEıÙ_Ñɓ :NĜÄD¸¸.a:l䖴BVUŝÌLá@!…[§ä£Ùċ[\w´â}h;^l—|™ñïçžMk!2b½hîÄuĠĞnz Ä|C„¸ÑAċİ+Ž@Û{ít€•½~Êŭµg|xnp½bûO†Šğ§·,ġŠT­Ù)Żó(ĵeŒ0…ğġìÙĦ m]Û¸qâäéêîH+ÑâĴ˙)%Ú }ŜŽGyG +ˆ]€OVĦZ¨É(+ƒ:~W…ÈΨ­ŽgŬŸÑ­SżÂÜk€H4&ÌĤNZùhöo~·à“:(ÖóĥċwàÊTĴ‰KWĉœa'çdk/ôÚŭJ"÷Gö mfd”Î1żZìn•LĥXôMvÀڔÀÂĥ#Ğ!в…çCú)˙+£z˙3NÓWRÒf~,8s´2Q›%Ä%‡GA DfDçÇÑúôˆŝüÎ XÜ{W‰;Ç˙EŸ½"&`àÙ²èPIÌÉDÊŝí˙w]ĝıo ĉŝ­#íEuşÈj!0aݚĈ˘ÎŠ(‰(Í föŭû2Ìżk^bendstream endobj 175 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 676 >> stream xœ‘mHSQ€Ïuëî*cfp Cî­°,ŠrZ9Ò ĴD‹AMŭáLK]nEùħċĉÜöĉċ·ĞM £‚–(İI‘’Ĵ "Íì_PïÇÍÔÒŸÎż—ÏyŜó0DB† =|";;%W·8D- l [J(ċ@ßş7á£kÉâQTTê/e–f’A2I9EÔ$$."r’On1Œ‹ùr$Ä'ÙTÒ8x%ŸyÑ˜ŒÑ2ɆÓüÏÓC[6ŞŞ£ì=Koħp†ĠM%â‚\Ħí0>فöû"ê³Ccíú\ŜV”ğj†VTÒcÓ4Îù™ğApù"¸ a¤ +¤H~ŽíôÏ§£˙aÉï쒟FŻ0•€VëƒNÑC[Ù­ÂWm wLp·Œ_‡à´ğ½V½µĴàp46šÌU†"àŞkŬSÁÇl´è£ôÌĝ¤t™T*íĉ[ş Z¸ŝ*¨ l  Vo³î§:kç`­#Ċß TNZzò€ÓħuçA×ä´4[E<ı°Ç|Áf²]‰2–].ȁ2w›\V§ŭŞ 8ĞÙf4·Ĥ:›Ä6S{/àZÁ°k79U ĵï°{†ù‚ħèFQ† èċq'‹êïSƒ;ĥż¤ğDê\î1żÔÉrôœÇġ]GÓLÇé‘ް›]IŒEž+Çĉ§VÖ ì_úĈ’ĠĜ˙Èü×ĝĦ ‹Ĉ1è Kñ5?Ù3?\Œ> stream xœµyXT×ÖöÁ‘9ÇF”ɉ ĉLì%jìF£1Ĝ{ï" ]ŠÔ‘CĤĴ™Ħ÷6Cq@@ Qħw5jìFcğ‰‰Ñhö!›Ü˙ßg“û}ı7÷żÏŭñyxpĉœ³÷Zë]ïzß}Ĵ¨Î(+++ñĴ%+ǎŝêç†ġż*ZĴĦğşwNï7<Ûì…ìß9ԓ~V8l[?3`ĴÀÙAs‚ç†Ì /[°}aĜ–Eá‹#ܖDş/ġXĉıÜË{ċÖU>Ğ}×ĝ­ġ_7cx÷‘=FÙEŝÈeÌĜq'L0iòÇSĤ~2xúPÇaŬl(jµŒšB ¤–SSİAÔ j0µ’B­˘†RĞİaÔj8µ–A­£>¤ÖS3İ‘Ôj5ŠÚHÍĤFS›¨9ÔGÔ\j 5KͧPİ…Ôj5‘ZLM˘–P“İÔÇÔTWʟêAm£l(@½Cġ¤¨^”-%ĦŜXê=*ŒêMÙQöTŞ/ĠSĊP[İ.V]­şQ+Iš¨Î”ÖޏĠ³NŜ.ˆ6ŠîĵµóeëĠÖgĊŸˆkèMôoÌ,ĉY—] ğJş†tû¨ÛŬ“zÌéñÍ0›ĉw†ĵs´gŸžU½Ĉ÷*îġÒv“íɞw§ĵ‹Ĝïu}Ï˙½½í(ğévöħ}Ĥġ9WÒ÷P?ë~eŭö÷{ġ>ŭŝà÷ŜŻĉ†rÁÜSİJúƒŒŝŭú× è5 `à˜žOÒş4ĝŭÁ•C: 93ôݲiI3Ú`ĉ”XU·8ˆĝ-‹Ùä\uzDJ‘ƒŬZż³‹Xï½FĝÑÚ½ş:0C³şZs¨û@3½!ĜT×fiuÒ¨·5ñÚlĴŜYŭHkoĤŬ5Žê`pƒMàĤ'O÷£÷hŒ2…xµ:IŽĊxşfѵ>9Rì!ÇX¸W˘ioĠL?X˘ġÔ wÓÇ 8İ8-Ĉf;ü1NŽ óß<ìIÊ´ş¨‡cP§²ì~³6²Š SŸ’ž O;4'ê”z%¨ì!Né"ÔĤV•$şñm˘IÛS·››–ġ¤Ĉh·ÙIïĦ“Ïgè-áQ0߉EşF—ŜÄĦžâ絓Ö.Ú8‹¤OĜçĊ—Î5ĉáGwñ{\k'ż2ñ ÜKÚZFK^{İċŸr!~|?1²üèo§\Ǣé|‹Ċ½ÄŽêô)*GËéGϟ½nÊ İ Ż’›ĝ1FĞÊ{hÇ=ï‹|Xôî7¸î5[á^˜ŭùCÔġĝé$ápvd]ÀÙx xœ:Ĝ GËöUh2ì}°WVîRî+H*½`ÌYĉäĵm0o+†î?ñż÷Ùú3§RށäŬOíĤ $y_Ħ ÒZŞĠP&WÄ*R<ôyRè ĠŜ`JÙϙi/R(wĜ›µ[,…*˘ż„ yAòÄßÙáut{üâ:ŭ²·Ŭp½LĦô§ŞĴŬR´†ĥiñ”™[F™mżâ}kƒM½%ώ£ïXì†&áħh)šü’"& Òcċ ˆ×p‰xàS°0Kñúè°TòjFëvžAVĈà!%œ.TyÀ€Ŝ Eñt!¤Ë•JˆKä68xÖ­?ô!ĜKžáex"]Hş›ñZ3iäíƒMĥo.Ħ‚{½%ÏÑg|wö" 8ż’p–Jî´zw4ÌNm³*à°şöÍ5Î¤S£×| êöóˆE’?âÎRÉóé°Ċ9LĈèq>‹BèŞĞsġÌxl{̙ìàĉQÒ(1€JHqRڋ=à%/Dµ-3Xż2şQxê$FÓ‡†Ħċh%î‹ĈâRüîo°HñğڀúB|.ÉÏŜğAß°¨Bµ-œ&Ù˙;•îÖ6é*a4Á r·Óêì:)MšöÑ×é:è8•&,‚˜C´ħȔS]íWċÂInÌŻù1.¤˘0›Ìè@[˜ĞMh IÄßj™ĈĥxK†·­RĞżIž´·Š=rkHó€ŝ>Ğ#àÉñ>rQZ{ÀŬĊh˜V`Žlsr#?İĜĥĈü9Š0…~Ŝ[òı£µĴQy7 f1ë½ŬĤOö:ñM8§ÊĠ¤Ä IRlGGBRvŞV[\Ìét +*Ŝ·eżĈ@àLĝâĞ#ŝ;âr¤>Ġî[2ÈX•=?÷dŸÚò†¨SêX?§MÈ$ÄÀäBjħô'KÛ%Ğ!.–S)”*JWˆ&Ġ³ñ˜żÊğ  B&•<ŞŞT|Còc’™JP°™laIĵk{K˘ùÇçĜ\Ù·l`2!#_ŠfÒğSR/ÒñÔĴVû“™2 ĵ,3š~Ĵ—{Jђ&ÜK⍵è0á… 5§y2ŭ—´à[½ĉè0°ÇKñ$<oÁ[<­”J˘ŻÂíò§HŻĜÉMhh 0£KĴ~„ú”:ƒX4Œ˘ĊÁbÍ˙†+Ù7¸ŠĈï<‹ĞğRyċ'ۍD%É9dc)w´ċA kµ^mw‚UŽ/²ĊżĜĈè…<èÒRó~Buv/q}Š\ĝÈ>ômıQɍ‘fäk,<öé£mMOÑäKWÉx÷?‚|ÍĤ¸UliĈp&ïŽôx*zE°Bî£ÜŸÊ!Gš³Ŭ^ġîğ7lfÊ\Çŝ%‘ċ•E%ċ9É5›µÒŠÚƒÙD­<á>NêIKöYݚ£Zì˙ÙÖàuàÌL}|Ž#‹\„{Š›˜$ô1;”9kĞÓF×ÚCÇïĦ)i¤‹~!?ˆŸÌ˘ùÈ!#Èá;‚f RùxÁJĜÚĦYÓB!˘â“EÜl‡ür˘Û`CZBf,ÄÙûğC˜ È-. vµ‹Sz lOñß'Œlat™­rx­íAqìŽ]ğ–•›ëò›Xİŭ5A¤Èkuħm°0¨3b‰7‰ŠMV,™n7ŭ§AĵÙC~~f‰ċÍulGm`[‘/ƒVÓ´ìGÌڍÂŬ6­XŜ.ˆìrY[U¨.kÓ2}R.äƒħŞĉÌW_µËçF%$D êz‡ö¸ÎHdn͎Ž"tĦUŒ…\Ĥ‘gc‡ĜŠ&bĞ‹.·Ğ- Ħ´>3ÑZmF^E#9šß¸áZßI5üG,&Ì<\£"ˆ¤*`‘+ Ċ Í.Ĝ}üXFì‡ş 2rWŭJpOġ²mNÛŭ<|րx•…Ô•‡"2sĴ ğ•\# d”Í‹ċƒcˆÈžMp×Ĥ3ĝôNÈûŽĞ1‹½TcÈ#Ŭ‰’ú'•ĉ‹Ä‚ĴÚb,şÏËŬñIۖŸ;Ĵ-€·lŽ:Y[}̚‚Hbĥâ5êä¸!Xc‡EȨÌR§.,݇b­@‘d£ÏIĴyŜhDĞ•]rlŒ"Vĥ:`î"H&–*ĵȜ’a„Ĥ<ĵ 4LëïÔèuè\‰eœ żœL°š§ġ&Aé­{cLM´E“ï6É<§ñŞċ\U ˆe‚ŠÂ*ËK w|9c÷§¸×G˜Â=9Éküî\ûT£îYYñ " ŞPsÛF/ŒóFÂŻżM”Úü:Ĵ½Ż>¨äË˘e8›`T‘Í1xú[­£˘ÁqĊz$ĉ­vèËAT!ċë´4RüÖ)56•àĠ>ô)ÙHÓÒNÛzEÜÑUġú/-Žâ ¨˙cWñe‰§‹ƒ4I8 ġ´ɘĝwV&t–Tğ?˜Í̏ÉM„_ËñDk“8íeq=êDDXŒĞ[{$ÈA Éö1é¤螸-#j4wŬîŒTWqÇÄ´·€ş]GGó=ħ h4ô÷™y˙ùÇ~ôĥ:—ò5Â3 Ç,–ü0 È>ûwšŞd茷,jy¤˙&'™‹àò]A ŞDÖëNWí7˜wĠ%DÑmvʎ$ûŒĝƒ·ëWÉOİĦè–qlBŽFNúÔŻJœ%š|MİJЁpĤµĝ/*QH§&k5) ~dësğÌ8­&˜r`Wŭ>½ô”ĝê ×ÌŜ0\ÚvLfiKĞ6-+Bf˙˙Mçe‘ zġÇ>·i •I}Q³Ù–˜z¤AÖ3^}_Ŝ[ò+ EoX”CC)äġYş*(ĉ1êĴăç†LĊ¤/bÙçe7ÏÀMĉ{,‡rĝ‹?Á˙<[éiˆĤ%ż5Uğu—ĝÁ|Xn  ^Ç;€ıYx·2 ²cċ¤‘*f{GFH<ó,öĥ]Äù5Ğ‹‰Zßaq˨ÇÛëoĉ\ì-y†ĉKYüà…L!2cGšŞµGue„Žj;Ò´@™ş[*ù)…ßĊVüdAĈ sÉPM&R³ÌÜ2ĤÒöxyyôċùµ$!WÑKŜŽĊäğ…“ö—žı‰>1⏝Ò8­Ùíömĥĝ·$&.‰ó^é_ċÚ0Žĝ7Ñäñŭ?>2óf 4[y8îr$#yV‘´#İÒÓ”EŠ™½aÖäm3RċVU×Ôi²AĠa~-ĉ7]ĞËNç@Ğ××1o=ïġˆÌ.·@¤’ĞbÁŬÉ%$%'Ʉ/ĝ–ħdĊíióë……bz y)äċFĤ a> &.J…Ü .?$*˜òˆ’€€ˆ° uÇN\?{ŝ ™Ğ-£;W…”mÛ²m[YHUUYY‘§ž$ëS ÈĦŜŞÎ„2Ħ “¨etËĥ‰ħŒLİ<41ż}E–YjƒäÊLl…˜œ›Ÿ¸A˙Ż Á‚ 7zäíĤ#ÁX^QJ6t1äûäቖCƒ6q‰‚­Ŝ\½yÛ(5„ğŞ`ìÑìQ˙Ŝ(ŻèóÇnôo\öá‘Êpr]ö”Î@4b•ĤŞí:OÇ,Aóì4şä4˘ğRœÎÊ8w¸Qg´ç6U,•½DÓ68Š5Yrˆ…°˜8˘²ûc;>ô;) Ĥw›`k1 ‚-ŠĊF|2Òw5Ħ•ßë/Ey÷G &@ôgH\ÈéK ö0è*]û…yĉÙ¤Ŝ Ŝ°Içġ‡yfi„+Â$˘‹"4§e!ûGıZHżM֝ LdŒÖ˙U„ZúEĜ²IÔbĊßeóê+ŞÔĥ¸ ’ŭík³ĈDäR˘JĦVàE­Ûí*^§È³8ÔŞ`²œıÎ%Ħm—Ž^4ĦŠnŭĠ.=´oû”Ĝ?xsǀ.=ùÒh{üİáÍBÓsb|0ŠC:íó+µċ%†:hdNşŬÀ1µdŜ­1‚ċŬżb8ó‘“ù„ŠĴ`žûò¨ˆˆé‚Y²`)DG€"'2‹8Éo{Dös o‡ġ†_W•XĦ¨“"Ԉô,ܔ£Ğ‘ġ2ôÎÄ ñÀ(”J… ÔĊÒ†À{žá‰gžĜ66ŽÈJ£HQĤe=ŝINq‡Q§$‚ûLûk(³ß^D?ŞŽSÑâ§B÷ĝAìôXW).ŭםÁ‹hl›!?`/ı§QĞ!Ĥ/îŠĴĊ?>ĜsvG]|h çŞV@S[\ZZ°ÔêF‡Ñ¸ÛzlĊañ?¨Ĵ?_Ŭ Ióâ5†í¨ıżÁöê"3 :ÔY˞ipóŽ * Ĵ+ÈIËÈât:k­V³(`ݳ£TĦ ğR2IİÊԜ[·ÍuDŒ”%rKĵ^$Úçĵ„DûWğà˙N{)Ĵ%w” Ñ*uy„°™ĜjĠ@éżò2³Ĝ‡¤ĉÙ×eV@B%— ŒŠ‡ ˆÈˆ.TÁô-;i•ŠD¨ -cO⢂ÇÎF$úÜ ù^Ê# ¨^ĈÎŬ(>Şİ ?Ĉ%r4ç'Û'N!6Ş)ğ!³Ĥˆèˆ½ž†ÍéÂ"ÊxˆW˘ ÖĜŞ” ™„7VŜˆê#†5U;֎ó½EüÂG65—ŽÉNȔÇ(UŝÛßg&ǒıĞĥ—g&dçdeé9òXž{Ó5‡•Ĝ~e”ĦîBVóĞĜòÈ Ż°˜x…‚Ó¨Œ0jÈKİN˙êÜYiŽpZgғS’ċÏÀ]—•9í­-Ş(v!3ĥĜ­vßC÷Dĵ şÊÂíäÛŜ×6?` ,ƒ™A£}ç&O‡O೔ħ 3öN½vŽÂ׆}ßU_J½ ·ì…ݲî°Üñ½ü4<…Sp.f-FŬgšˆOşQ<,k̀ĊdĈ̓/ŠıÒßIxĞ˘"İ7ï#íxM„šZŜeË@Ê-Y4|ñ£KÈ£šË™Ö|Â*qc9_A?$Ö`Ŭş•Œd"-#ßĊÚ:êôZlD½ïÙúq“…?"ˆ_ƒ6³¨Û”˜ÚäċíĊĦut‰˘&İšò;—ŸäĤİR“4„$“a ĉƒlNw4$êĠ$ÓL<$FIñABӉyé:}Z —]Pô4ƒisFD§Î60’_‰ŜX²%ÄŬ3h3‚+DžÒ“DônMĦİĴ,Ò䝴y⨳Tò b^~$@xİ…ĠŜĜÖ î25áWoÉßÑ(ŝ{:dżK·•äe­ÓjµÀè Fé›4kñi\· ü–}ïkԕCkßûOn³dŽPzïɘÇÈŭéÂǽ%­ÈŬaËhbCzÖ.kTl5rÑnàäWm,Ĝ‘ıû´óçwq_Ìâ İäW\‚˜Ùϐèğż‘û$Ç"NÒ:<ׇmbP7|] ŝ§ùMpŠ˜›Ġ/€%fÈÖÛ² 6Dzù/ÛLäĥÄŝ ĞĤĝ@ŝ ›)…ÁJ1ĥu²˜ û`W"¤ġ™çrsÒÓnB.ݧ›X5 [É|Ĉâ>X ƒI€ŭYÜaŽéeM)Í{°ïl[§ /N BóĦ}¨|_è!áĠñd~3ğy‡r'2g.4^ız~ŬĴ•î›–ysĈhöĞúƒÍp‘y:îĘĦSFGèœıì¸ú`1+ŻVl›¸jXŸŝ/çżFÖßŬûNߣ‘ 7De-Ú Ŭ¢wĤW†7ùR{‡ÏÖM™8ë콓ĠçżijKŬÓûü !ŭ Ÿ"÷ÇlEè ëKĜ›WDÑí äöeTšCòeQŝ îóş~ƒXâû!_’}dÄô—VoŒprá\B·Àg îġípԙ“ürKO2¸ç§llżsġpl2ÔWڕ[K|FÍÖB§ߔĊ°™ùxëˆñœeP €öYÁÛüïaoŝ‰ñħ jô™p§íƒ7áÍ?ŭùŬ’gá­"–ĝ‡é‹’äW·SĥĤİ:jıtmĥ.#]ĞŒÁˆôĈ‡FĞgÑJš*üµ8i•–İÓCšeZĊ''%)¸ óĉ΄9°Ä´ş9ĵp{>Ħ³'.¸ÇWSŻ_=ñu΃ĤíÍÒ ž‡’ëàk8lNKÑjìZ×ü66!’…!—••KÉÎàLüh6lA.šŠ>ık8rĜaĤÖÍZ'ċ—µŭÓ/H}ĉħˆ^ŝpö˙XSxì÷ Ñ{ĴŽ·ŒµÌB·Ùüb() ‡ië÷â˜p +†|)˙^Ëĉµ}-mŭ›8şí›<ÁÏĵ%mĵÁ#×˙7&êßh¤0żŻµ ñż#Ó8Ä ŭg³żCíŝHÄî}œÄ ò#²÷Bĥh Q€fîB3Ñ;¨WnûC”zEüĜyX²œ[;Ċaq$Ó³qcĜú4~çÁÂ,`ÒRôé„no·‰żT#1ÈÈóⳇ"~µ˜6Ċʈ}Ŝ´˙OOëĵwZîìĦLĉĥĠŻJ f$fÖaêß~Èó/qµpdM?żÛxá`e8h9 İüµB\‘@œvÄ1˜ĤÛ-ĦE´?­iħíşŭ°œ˙ù˙A¸ğĞ6*a“Ò^rŸúw…ûĝ•nÑ\h햒 ÀŒÂ]ˆŠ˙·ÓàġohäíùĊŬ§Êj“*8wuB„,'Ş(™ħáşvž\Ò½ Eŭ_d'†endstream endobj 177 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1013 >> stream xœ=Q{L[u´÷BXÜ]Ù#ŜğıÀ6aŒ)jbâpĵ– sC ‚ëäU·jÈxµ<7°P8ĤRȤ64iW \ n°D7²!Éŝr²8ŒÑCέ?-KôüqrŝĝòïĦ (…BA'LÌ9·uî³ïGßi„(!$°ûoGĝ°ğÛPjk˜ËÊ ‹(ê*“Ê˘²İD*‰JĤöRA~"*Ş+DĊ½€÷*_QŜ’-Ÿ$Œ’ä4›bÜ7Ĵ”‹}ñÜë P %Òô݉ˆ›ì4×Zš€İÔŞŬâtû| ópÓ2²_˘[Á*v|!ŠÂ,nSĦ]ŭ-‰RĊĝż< 8Ÿ_¤ÉšlàPMĈTĨÖÈü­¸?k.|İ ÔD°“˜‡O8TÑäġ&•–^è@Rµ´SœlŸ7,‚ëW<&ÑìÊŭk¨ù“ok3Ġ@1Sè¨qĜ=·³GŜċÙÉ(Ê-Og4rÙ%ïq„ğ' –°Áż"Ĝ<w;íK˜…§żì.ÎêäĊZħÙÌt è~ĝÜÔÒ F_jĠwsÄ‰(²}bĞ1jĵjiçot9Ä`– ‡4+%[Hw#‰ÜĦĤ{<[ù¤ñ Ĥr1tô‘ú‹9EÎ[HáK½³ĵĈîWc—ŸwaĈVÇjìÄl-~$Gr8E“”˙KŜü]˘gĉUìLӕ™ìĠ=xhŭ ¸ë‰ĜÚDÈ-.ĞbşÈ‡ŸÑÎé‘9`Pd[вJuBqáÙKHŬË}ŝ ݘ=òvÂ;0”¸)GsĤšÖJhdŝ³÷3aş2ȉ„& Ùµƒħĝê(2Ŭ½upÙÔÖZß̗ĤŸ1ĉCÀSó€Ï!çĵjħXìŒğoÇ> s…/bXĈEIK[Ŝ:ĊÁúÓïÜĥžéaĝžAޤÂ9"œJëÌ͚kŽħq)ßÚ*ò×ûÇ{Ĥ€ùUÔióšjŞŞ„“i%Ç ù€€ĉÁ!èâٍ;$•óêùùz}~Sïġ:^^f ˘¨ÚĈösendstream endobj 178 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1295 >> stream xœe“{LTGĊçî]îˆ+JŻŬmͽħ’@!ÊC ĦEA Ğà"ˆİŠ`4ò܀™£ÑÈÖÊEQ+*J­ĝ‚DÀ›`–˘ĦXĞ!Ġïn’¤mštŝšùcr~ç|çcR†Q…FĈÄĝxO\?ĈÄhßdOrÀN,vR›í°a&(ftMżíŒ&ŽËöôŒğ2³ôĈŬ [WĘ<Z‰ ÈE£´ĊĦ5È-Añ( ù ´é‘ŠDNè*†”h!*@­ŒÈ,cö2µÌo ­"OÑÊjĜ(ö ÛɎ*·(ÍÊıH#—âryJ Ókƒx+‡}ÏÑĝćï/şBÇâlpXĠ~öٓW_… ¤ŜĤÒÈE­0ÜÂ\´ÁUú'2xĝÈí=™JĤ{ùhGÜa 8 ż…YÉ ‹ĝeĦ`L{ÒÖi]C‰c¸aħ¨ħğ´É}­LûŻĴÜoHNÉrÇjâêà ³ŸÌ뺑ğµQ´­ÖÀKŻÄ<íf)H*‡­Ö7%êÇ*ßâĜxS˘zhéX\·J4ŝĤ÷3je!TžĊœ&2\–żè>"q+-K;:ïœ-=+ä5ïÈJËOşÍĉ‹÷&¨ egéßeL긐˜­ËœĞ /˜ ¨B+žŬë:U× $P9ÙHİÜ$Ĉ"‡ħò*ú#„ "ÉYħĤÀŭëtĊ\áĠ{Ï{ÀIm0!c‡N#›2[ìÓ%ûYYk×óŸ]çrħ'q49}-E0‡Tĉ?Úևu£Ö&p Xğ ZÀġx53ġV0R²ıPˏ,éôÒŻÏËX'¸[}ğ´ë~¨Ù¸XLRÄĊˆ¨“Î>·ĵ,ıÑ$léVƒ–Ç9xgJÎöŬ›Š °:a}Em'ĝĞ+ĦFbüQż-Y¤ëpbñ.5uxD:fhƒ8ˆ3䛲ż<´O·#:›qN;²íäQ½öÌÁ Eg\}òûµF6!ĵne&ú8_öç —SŽGÑ*‰dí›óa`ĈŭFKġ}ħñڍĞÍkħnaŒġ­úĠğğ—÷oi¤mœ‰ËĦĵ ê0ŻúÁÚËŸÔ58żċ{÷߉ ’’qŭ Ôr ÀŠŸ˘üƒVD•H‡]Ïŭ³INçÙ ‰˙]ĤÈӆ4ZCĈġ˙ß&ğŽê6´@é¤nO/+@?zñqîU˙A˜çd@ Çġŭ H§ 7.kx(W¨Û aaË ÄQÔÀÉn€Û E`!ÀÄûúrˆOĞMïfvÈí̃¸ÖʛìóùĜŞĜo–L$ċ÷İ{’ĊXck××ç7›É:Qta§”{&'İ#b#ĵ7ĝœè öÄŝl~„u }ñmĤ[™•âşÛİǽ*˘-yGĥ;p4ŭ[\Żn˙Eß­TSµ0IeŸ#M"yÓöÑ(ŠŭôÂr¸Q7ijXyäòp‰³”aIÊÁf‘\‚*΂˲³qŽY U¤JeÎÁÙÙeĜ"}qfœ#I¸Ì"hGe€ä4ĦżĈÔĞäendstream endobj 179 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4379 >> stream xœ­XyTÓWĈŸ­ FMíùŭ^ĞÒj[;­µÎhĠħjqG-²ŻBĜ! IÈö͒°%ĥ€,²ˆ Š ˆKEğÙ§ĥĜvfNë̛÷Ú:ïüñn@[ğœóڙ98÷ĉŜï÷³}ocÒcŒ)ëĥîÚ´ìċàŻsSèĜûâÑŬ“aĤM²<3{nziĈgOġMgżžfòÖoàgçänʏŬ"ˆ{ğ ~kaBbÒöä”ԝié‡÷d„2ŒíŒHĈo ;ğğ{Ï3ö1Ŝd,aD1Ö1–2ö3Ö3^d`l`ü‘ħ‘ħŒñcc3UĈĈی­ŒŒm!O0ĉá“1&1şCĤ…œ}ìUĉLĤiRĜ$ĠäW&ûYÜ)Ó ‚˜şsêÈĉÇï=quZɓПĴ ]zċİŒéóĤ÷ÌP…Íğ~0üîÌ;³–ÔĦAİ7°Ô‚’‡Ö!&*DëĜ&ŻÙcò–ž]yƒĞĤç£@ÓGçm=D?!ЧÄİjä‡ê“O~y-6Ùċ ƒĤHEÊyĵĊ‘@äiŬ.Ÿ½ÖZCUġw˘I0@|²Ëğċ˜TôĤ6Ĉ@2äç3ñâí !Ší`*Ġéĵ&²âzeŻˆZàJ…jJH­Ħû5%Z%¨9RkQ•³ÜRi!CÖ'~ì:r^gÌÈÏğŭÚĞôtšM?G/˜ië§h:b£çB’6ÓUì„$˙û}µˆÙt†j:ÙxˆŜúCÛcrç§GPÜ]û˘÷w÷ĝђñW™Ĥg²ċ‡ċê-!“€@aRZ¨:h0ÔCQûĦoÚĊ>VÜS ğ‰tŜŞùı‘ĤSBò” ş@OTŠKór2 £· $ż‡žoGĦÇ?_]g#˙‘iNĥv?]U×Vœà ÓUrRsaMy­³ûxÜÑMôÔ¸ö’á÷á÷WDġ%D(şƒıĊñ£uUż˜¨40Ÿ}‡UîÀ@—ZĊjC‹Œ.ƒ‰)4ó‹ó0íèßN^Î*|XÌ[Ĵut‡V‚ˆĠúN= h ädÁĝ5;€àŻÌe–z*4ü€/ ĦeC̀=0—­7ëL` rw~†‚+אoÒ=ÊÈÄA&7ѲcÍCÍö SVÉ•D_š?ĉĊzQÉDÙġ.#iġ×ŬÂáPgeóD TֆĴµ°—xu€{Ĥ˙Hcc Yħğğ¤ÚÀsû+ڝ¸ GĠjsKHÑNÁÛİ@dAëáQÙ|;ĜÎ Ì ĥµÉlğ„Ç>.**bĠq1†¸ Dà;ïHĤšFĴUSô3cò4™ü-àäÉ @jÑX¨è2tB'tĞ;‚‹,A]‘CŝV°8t`6ş1ë–<(Ѳ!ôâJïeĤ£7ĜŠLmˆéá×öl€KÏÔ~è˙„´TšÜż°Qô3—fҏÓKèˏoĝˆ ˙¸Žy:z‰3ÈÂ>HGÊÓ· 8ċƒ}~4µ˘‹ò ïëÄÎĉÛĞÑ*5%¸Êĥ‰î^mgԁßħÑÛhiuċùwÍĞ΃r¢2)È<àĞs  İÁ~•ˆA µiM”KëT‚ ‹„bú}|ÎMôµÉj½ * ½‚J„8uÄCœ!ááÚj1=wĴQ}r€j‡NQè€NġÑq€8Ħ˘Tù‘`µ™­MĤ ŞÍGšò-Ŭd. V•ôD­8 ÈV8jhƒFhR7—ÛĴF7Ĥ³ŒJÖI,?Öĵxİ×u eŬryCúGPß3À <ώ/†$~'u§"Ü]iûĊdî…ŭV> wÓ³sĈÑş2U÷Ùé£@4TĉÄgKö˒(iœV%}G¸9oU¨! ]V›ÜDmžYÌçç%tċ?ÙÜŜXNVíè•ÖñÍ)ôtĠƒî •ïwQ ħ@äóœ§kŬÖ#”£Ë}ÑÚì:]wöÀe"|ĝ˜qj ¤4ċ<â]e˘s£ËĜFBĜJ ruħVĞ&É%Zİİ\'ġŠbµZ ZrÑUÇA"gE×Ĉ$4=m;15/=•T…²ùižŽÙZ‹²Ô€Ŝ]ĠÑ~¤ŭçĴ9ttÊ™YoÙĥ³ŭ6ö •b‰ˆ†ƒêw°DÄâĈj ˋÊ\~ϝсŭ›¤Z˘U dú+14Aż´ÉGĴ:P@Çşûo÷ĉWI½ażrŸ›ŝ4ZËN¤W=ÄQğI‡OGùMÎ:(#19üŻ\E|Äöı˙Şc§:ŝšÒ҉^˘ö›=á.ö3°1$;ŞWKCÂêşo{oLۖ‡YoÑàĤ/ÌO˙Ûm’;ä*­ĥXN]úŠŞˆŬüžŝş{µ'İÖ+}-=à€;޽?s˘AïŜƒyF Àž ($hİ )z&+UZ@9vqÎÎÀ€ĈĞÁàċœŸ NôÌ1§hg˘$Z‘Kµ2³ÚB5ƒ?¨£R"&ĞSĦ“P;ôšZpcܚeˆ¨Ÿ£c }£/…8`²˜İ£!ĝÏô³c—~,m˜í€…@Ŭöc %è8=\vx‘Ó브᷀‰FQ{pàä °µsJRBĤí+…PĊvA­¤Ĵ°:ˆµ1KóeĠİÓ;M”ĠÛàkƒ*¨{‹›‹ĝÄE…2İPHżFݘ³sׁµ8BÛpdÓé-FÒċİëi/Xü²|·‡œżA³jìĜШ‚¨İ1BK-£TbÌ%ÈAݵX=úzâaœçï¸/0g~#iq‘ŸW‹ôˆü·óôvPżÜZÜĉj{ üÛVíâ'&a…jmEĤ]hç‚ÔZ•ĤäVy^´ ƒ•u )ۙHŽ„ìF¸j8Yy³ €…8žttËsôĵô†e'—ßŭy n–w´ŬŜcİ£Ì^v7z탈Žj^ê³ôJH£BÑ ë­ĵĝÑÒ˙ôxCĝ#è"Ĥ8™}Â*·?@íj–ëCC…ûşµÍÑߊÏëє 3”˘lÈ'r+ŠË|Ş–î¸ê¸Ċ|zV*60úħɛ‚pÎÇĊtSYoŽM•l-Ž+ÉÈSĊ{“ĦİğÑ䪁*Â[`òùù)ÑŬymßv˘¤V<„íµèž=f}ÁDWÑ56z‰…ÂÜŻÑԑ—éŠî˙9Ĉü:{3‚Ŝè˘0]zĜĥV àċ3ÖġSY[ò‹'˘R˘xÊcávà29?ŝÊġâˆÑ?ž~ŭŸ·BU’—™Ê‰?E †ÀsTYlç²ÊĴ‚˘„ĝĥ‚‘{7Ŝ½QI˘Àf£' xäÈı*2ünƒˆW3—žDOĦÑÏ.?ħ'Œ{§ ğÓé$ ;šŜ,Oßĥ'ŒŬšŽ“hŞçċ;sĴ›l+äÔp~ç\Ċݳ)zÑĜçZ žt4İ­¨ÒSZî0FwšeİŸ×m­:}ESUS÷ë˙Žqŭ­””Œ$FßÄİ9·Ìs'ÎĈ~2;<€F<ö#ûpy/à}ä"]]misiuŭÁŜ€ïUÉ9›èKZšJ/V~oĥĉÚ/Ç­@™“-ċ*TĈkâ4 ŝĉˆU‘DBMÜ鯚ÑóF2üOÊ@ۗoċñò3ùUrWU}eN’ƒıŝїëCath˜9úĝèjĥΨ3ƒ‘k­ĊJ­V*#£w&\]ŻËÇş‚ĤìġîàQfµ·Ä­êÍ9]dU—8DŽ\H&^^½•5kZż­6Ġ$èuz܇ ‹Ĥ&x½t˘FĦU\UbR™-:½ŬJ:œµMöÒĥŬ—‹NqÏDO£°EgVĊ÷K KêĤ6>Ġ]ĜÄ'˙éÎWġ×fiŞ\R+š,ˆ +7’ ·Ŭ 8Ĉ˜2‚R.ütvĝş†ŜÇ1–‹8‘ѽsÑzĦâaŜ2“KñGûôı3ċ’ħâ= Ğ·§DVĊahÓwOjË;v֕;2üôôèJv}YÂÏÎÎÛókj|^9ĦiÜşë·K'pzâòà §–z›ž<…µ)/çA$ R‹°ì)°‹Ĵ;Áo;ĉmtŜvמögñ>ÁF<ñ4ĠUĠ–z‰2y@0ĵĦîm[µËİóŸôġ‚ŜéièëÀ“ìqĜWÄSp52j3]ú“Ç·ôêÄÎOŭór3YupCÔĦC¤üÚŜÊhˆ€ŭiİïü^ ïOĈÄŞ¸ŭÁĝ“Ĉĵ/&Ìó…´~­ĵ§œÛĜDQÊ#ïÁ&·y|~7ù˙˘7ùñ\Ĵç8PHÒFV вEsÁ…Íż63VĤMx0>UúË:?¤Ÿäې ŠD>=“ UĴ#h%èmĠU½½ĜĥğÀ'ÈRˆsA0nÛuĠŜĤso:sc˙›|²` víñ-+”c×^?ĈEˢ%ÑYŠx N­ı Şĝ‘kżÓßúEú´°žBïMF*Ö&úŻ’uAá.ŽœŻÈċñÒÒ²ƒŽ|s‘³Ò譀şñĠĵœÜô}ƒÂÛgßwÙÉöĦZ4Gg&BÉÇ'­¨š6•Áĝ?.› endstream endobj 180 0 obj << /Filter /FlateDecode /Length 8390 >> stream xœ½]I“ÇuC ŭ† zœVċRıĝ˘-9,mË$Âá҇RÑ$˙zż%+ó½Ĵ̞@)x`OĦ*+—·|o­ż\-Gsµàċ˙Ïżò›/âĠŬŭ“ċêîÉ_žúÇĞòżçß_}ún0ó’ĠӗOĝIs•àR^ìU\1Żŝêé÷OöúéŸá›ĠŜŭàĦ§·O:|q}³W²7‡?]/ǔmÊù–.ç½=œŻÍqYìşŜáUk·FqġSĵş$›àÏ×ĝ;ŻĈĊËë˙}úLÀ9CĴŜmĝçëïŬ1ÁÛé•KÄ·=pżÉ‡ó;0k#ÎäĈĈbr<<Çğ]²!šùĠġsöS€É,ǐ“]"L…t \ŝ\ŽÎÄè/ēâE÷8†ƒȇoñŞu1ùëm NíábeĵĜBÚf}.7nqGŸÒĠ[)$^,-&9·ĉ€‹˙s 0%˜hZ \ŭ+Î.ÁĤXm8ëà^œ(Œha)ïÊs‹?œ^eo Œx¸ċËkÄùĈݰÚïqá‹Yƒ£ñ"w‹-yµëá$÷ŭtĵY­1˙v†Yċlóá'ü§÷ôÇkx‹ÉĥĴÊ/129Ec‚ó‡Oà}öÄœ?Œà Ñûíİ3É%‰âÔ<ĵá'6(ğ7â\Ë&.KR—O÷|ŬÁ|Ä4~Ä× ÎnnxkȚbĜܨV'ĥù_ڔÄ9G[ġ߸:Ĝı%~IğmЇW˘Ê`‹‡3Ûf™Ôúù½"òsэ³Çĵâ§pĊġ':”èóĥĈhÛîÙëvga(—SöòUÏĊĵäoi 7ÛnŒ;iĵ§gžMÊ! ñŭ#‘ÌHÀ-û›F_â͸ ‹‡÷I­e@v{ °İ‘cq`áoyŒ5İNehĝS½‘Ìô=O4f/ÏHLî{y9'8{ĵ ;›c.3b‘§XE< ” σ÷’œPâY<ż?’àÌÉ­88 ~gчä $Ŝ`2l*Ŝğ”ႚ“lR‚Ġ‡ş†X”8 ‚ ‹œŸħ¸x}ݰ‰uSÊħô²fȇ% ‘ aÑûV(x‡Â ³CjÂH YDLInħôŸ Cı¸jìKÛĜ1%7ĉ,˘eŸ:Ż${ÏsvˆN_óoĜQ½6œ£˜xi‰ =jZ^lúXp‰mYŸ§ÊHómn'AÓċXa"›ôY-Ĝ=z+`†¤'ˆ`bdàϸ1 Á„|(Ÿ{#x11NLµ#'ıÔZ†gj]<żċĥi‚‚t'‚Y"²tPAPĉ˚ĊâÒĠ‰;áÌ=JU`¤£“€ŝïË ä""Xиö\ŝYĥ×ġŜ â`5™MĈ`óÉ* Ĵĉ¸şŞò˙ ÄòÇM@ aksqŸ^µ™m$(½“£Z€LÜêXÚF<Š‹Ùn~EöÈoFÌsbĠj—5ÁOlğFaÏi ^çdÀ­Ñù`˜ĴĜĊ+JĂ(rh5Èkĥ‘#ĴâpW'‚ÛgÁúÌŬŬíŽeĞ:óŜÁ7cùëƒĜñ˙!5ĉ:Ĉç__3eä%ġ˘ pâƒÍğh\ˆ<ñS‚&Î÷°“¤µDƒRŒİ UûFkú–g êk„Ĵ@\ÁŠïĠ&Ħ\TĜg³BËJ§Tq<@…$Ûx#Nléf¨ÈWŜ2ˆX³ï@T}’”#ŭHŞîĈ£›…ÔĦ/ ¸­ˆÓ3a’|;)@núŜ§µ9Um,ëpĴŒn…yp[qp'ċ·ğŸ7Èߑö‘(K°w÷˘xA1ùž_#+ € ÇlĤDŭ‚ïöÖOÉChdI§ŻëïxŒœW}ݳ*°2Ÿà—ĉ-Ĵµ&Ï$Ç„?°Öˆ9$ıÜó€.èĊ—÷ ×_^™Î;SˆĴX>Ĝ!ƒĜ’ˆ<F·f#òħ…-Ŝš%zv Œ È!zħ7Hr4­ }ó,:úrssµ€]As³!_u#‚o2fpa'Ú`·Ñˆˆ‰tïù%˙ñӁœÊ Œüĝ„_ƒ€íÁ ŸU:D){!Ôµ·d;yß4Ĉ¤Ë¤žQĵ˘H­µäcvje‘˘'™è1„’,ı§DŒJ’ĞP5§Ĉeâ° ŭóNċ´óĞ—UÎìkĦ£ä- ?t^Lf—Á&İ\CwÚżŜ)J³[;BÎy¸î’ÛÀ!]?o‹‰2lĦ,í½Ğêċf›]ħ¸Kàíu3Jd !FEMèòpÁ!dŞßYù7+UR–&üÔ½‰ƒ!*y‡ó]"ĴH aÊK}r_iƒ†ĉÓÜD’îĞKó=ĞF’#úĴ£ \;p…gzÚĦWû.—•£V$YÙŽÚlo,6)ĜÓÀ úaĊ`R“É Êq]4tš@ȗ0ö“{ÏveÏ"Í}:ĈP}D§ş%ÎÏċjRj²xŬP(žµÛŠ)"ż§t`i¨³q˜@KzULúežZŜ +ĝ$I˙ÄAó‚wŸTĊŬŒÉ‘ïĈ Ŭİ„ÊyyȜä=?‰‚ïôF`¨ ÑS¸ï·JċĵĉĞà›Ċĵf8wv˙>ĝI4wÙ§7MŒġ­¨•Ù(ó  t·Ö‰ħ§Ì 88Á§Ÿ?yúO_~‡ˆ8II ôÓŸ‚VêĠP ¤Ĉb”š}Í/YSÏSßNiqz‹‡i€MmŞqëτ?ïÔÀۏ„İ‹(âò—bĉ‚k w_LZÖÈ.€ÑPϜŽhVfW­ü³ôÂ5‡áŸ›R}q½½ÁÑë‹3Â´ Va•£O†'AOuŜEéÎüĥ½F=úz茎¤ù ĝÙu{ZnÙ’vݞ˙A8¤ì'|~è_ĝé…ö 8³ƒ•g#ÍY–ĈZ¤ İj‰_ÇúP*튭oË+@HÓ]Fhç[lrsäKw hÂxÎêQ›;éf’³“nšwĊÁèI::ó57ÈlŞÑrPâ8•Ĵċó–erG¤)ËÄ÷C—w#x]q ˆ¤ĵq ˜ÖĦrŒ&;jÉù:ôÍ8tĴ}Ŝ. óéU#şIÂfE°}ϏĈ$-JĊĥ³³Iĥî¸`%hŭĦ>· cò<ÄĴ)Òe0xTŒLĞ3ĵ0 plÉò+5ç:ôcVµXRè³ĈV`@„ìi·ú‡\\˜Ż†Dr¨îR2›10\•2Ĉ"#S2ĦŽżùg„ ÷˜ä À¤w´ôY6ĴaŜ4¸2  è]ŭ&2*E ‰œíMÀ*¨ rI03È ƒàN7êö3_F‰ü? ˘?;ĥ?aÌâ`ÏcYí9ךp;Y‰6^0è0ÓÚĦ.Z*9kÎŝÙ. òUœ_Êċ]mQ ]ÑbrĠÉJb·“–ğ„X:YOĊ˘v,“ÑNnsôÑÔWŭ–´.§^éß(ˆ=ó˙›ŜŒY'žÑígíꗍEpŻíbĊĊ^Ï-Û&&Ĝ"J%VĝYJš-#b•hœÊˆĜG°ˆ£ŜȟF°(=ħ†ÜI‹d°>FçÎ ï;ÁŠöŞKQ hŝ ¸ë-߇;ñú)™QŒNµ‘Ö%­)퉯óŜ,é00[%Ô't›Wö˘2}äjÄ hœƒY2>Ü!ÊîĝY–xŒwx&ZġYíĊ5oÈÓXíÜ>Qĝx޽˘Óġ‹VĜLB°#˙äHN >Šˆšt"ždˆ!Ä,‹FïÊiS=eMSĠCÚXŬ8Ĉ/Ċ *èÌ·,f—œiñ’s txäĠ—wÜ Ûu Fe”h·pŽ”Ŭò{Ö/šj-ĊĞşXqgÀKœWrg!‰€‘Ôr!Sžn{Wş³†Ĵ&$|–žYÁbYĊ_~óP†Ħ"U …DĵPĦÓ4€Ż÷Ĥf­ ׺u²Ä•vÄ$w˜ĵ v!BŸecÏ|œç²ŒĥQB;ƒZ¨¸¸…x²SAÓAÈh˙ÌŻĞŸAb'•ÖĜ.Ğd¤-ˆÛ›%ı‹£²ŭ˘oeŞŜ¸~y‚_ 4Ê(â=߁r}ğ8HXĴÒĠ’*ó0ev Ĵt–ú‘¤ÄÌ<Ğ@ĵ5ò°ŠÙ+i›;öï3/Ivâ5˜-„Sډí,ĈזS?=Dŭr)§ `”;[tuy’ŝiP֔ YìÔÚĞ>Ôl7úf›§N{Ö0˜Úû ıĊĵĝˆ Éô< ›EYce{İ` ~_(ı²Y-ÉÁc­E4ş†"ĈfIûP5DœIy9Z &÷ó‘#ÁÇ´ž`h]·j‘İÛ@ş1[<×Sß7σÚîĜh䖿 'I{WâğxÎ~Äj#ĥ•-n‡•èĴ§&ŝëÓÖ •`/OIZÒ)ĠËm‘g:”ÛC ıdv.„W7ül|8ï8—'E †é>UìoŬ<Òċܗż òĉʖ>—f3Éż™$µu)2hŻÄilLR³ š¤œGóJœ: JDÉ ™˙ġ:Y ÚŻ:l^™ò‰’˘ˆR‘Ż"é1ŭ4EéL ákÁ)äĞ<5<‹°˜ ѵà$ôÇĜ•_SÙôĜRŬxšáĜ½ ,(m;‘5%%ê{ çL:Y3è]ƒÂ1Ġ4'f Ş4O•ÍÀġÙ]ÊŜ‚1]\nŸn ÈUş_Ċċ˙›È÷[~šû­˜À´’™{H°FA^.ré€ä³Èjé›Ġ²}ËÁุŽ˘•ŜĊpñ’äŜé8ó–ŬĥsŻk~×BÈgžvgE_·-†Ĵµ{½\câQÇ$Á“Cĥ§eù ^ é"‚0/8ùŜ~—ß-Àâ=ħ”ÂßëKì’ĦÍZz6ö˘îŞXñœ 3dmʋ j^3ˆJ§ÁA,Ħ: ŽŻ7\ĊכOB$/¸ĥ.êàŒ;ËèŬöß>*ÁVeo·Û˙zMÊ(v ŞÒâ—ĉâŬ7mŭŸÔÌÁµ…İ'aĠħ'LššOœeâxd…ëM­Ó{ÓPïMK(ÄÉM= ŞO\—„P†£v–@Î ŝR\~Çc$]NÑEŠA0 ¸Èo9RvĠ>ĊiSı4&ñäğWŒp½&àÁe™óYBü2S`\Ô$*^ĥçTúÀóšŽ@ACÊÉ0ğmw´áda”H^(¸ò%ÄôŜÈAZò‚Ĵ¨ê’(hiB‰{³˘MĠUAĠ*­ğëa)Ġ‡•AywˆC#_Z)´ë"ò´µnêDʀQá÷ô*TWŸ_•dĞâ?rÍŞZ˙÷­~~ż‘ÉĴŽĉ;É­Û­ĜlĊN:)ÏE5xòփêEOÁóĤïÏŻ6ï!¤Ž?eËÈ!FŸ_eàfß)oŒ€MeÜ9‹ĦYâĦBom_(BĵGùXÙ²~G˘€ŞµÖ[·‹¸ŻˆEO{g—ï+6ZBíwĵ4½'ËI6s´•+ÖÓ;Ñ`ĉ+y°LĝŬ¨QbèÚߔUÄi`Ó,ÀŠ1XùÎMÀ˜š{v„ŸATħL3ŝ‘n‚OÛl;Ú`²Î¸İlç!DĜsd'HOżtҏG§WöŬ ĉ5èƒn( À0œÜñžÔĊN-· Ħg҅Áî ĽħÇĈ˘,'Qî íà/ǰR³*›_ĝŬİSAùM)n ä!ı„=Ô: Pĥü›}Àġ‰šĥİ(Wz!–fì|g+ùÎäŬżĈ‘@x è“Epï—4ëé í=aXĵçy`ö°vÉj£'áßB#іH &D#ÂŻuÑ|@+…ÔÙŬĉosÔ5;lulWˢŬb‰!ğ†@ĝúĉ\–œtòŭÇHG]ܕôÔ4I@ZĴ5)a*½ê›oy`LżyÀu$ÜĈC×ÑÄUˆ£cµß¤[V¸Ċ-î’ ÛĴ„Ù§|ŠĦ^“(}ù#FÙĥŜ)Ğë5Ïp"{ŜyŜ9v,YeĴ”{óQ…h˙Á^HwLkEu'Óabc)|Ky˜SċܑHştŝ²“L¸0J›Ú…›Š×’—5W"Ş]œ¤7–ôzUj¨c*y!¸9nĉĦ=˙70{àíùLĦéÎğÈ<޸çǜ7ŒÀˆ#˜[á&˘Óí믅Vĥ!™ĠžnÚ[&%…ÚÙV³w~Í/GIġ(-rSÓ Ŝó>uÇİĈ s=BŠZy@´•“ħÇŻTfŒeŞ1ŠlÛ¸·cÊtF;}x¸Ä7Cƒĵy_˘f6íà( Ħ}ĠÄÈËŞ°ú/úû,éÔXîĞÌ%£M˘ìçí­êÒaŭš;ìC5%Eĵ‘ ŬğĤÑ~ giE˘iĉ³*żßíóˆˆàħÖ#ÜrÂúèİïàVƒÔħل.šMŒíê×0ŭÔŬ2 DL=à½!§AÄŻâ!§ŻÜˆĦ]ĦcŻ–˜PġétYÚĈĴù|YƒĊ û²ââU&Ş&JG:w:O{l~\V?ĤGk%vêË&ÊDp*mmP59$ò­Ğ$´;~´%İ µµ*QÁÁ1R° ıh·™½ž”ï+ŭħĠ Ú°o^‡=!EĉĵReTB~fŞúÓ'˙ġ„› ŻWo?´‹Š… ëz…29ğÖD¸Œú·6%F<ê÷•LA„Ù½qÄâ·Y dn@Á?30÷Ċìù] SóI 7ŬĦ´ÁòÓkY:&(aÔw{Éâ> ùàĜû"oŝ‰‡µĥäµÁï`>’O=µ7^7L°@ĜëE‡Ŝ-­ZcÖ^—nS÷y{ızêT’ÎÀÂX+Ş…1'‰zu0‚‡ ü,@ÊŻ,Ò0i—áĠ!‹3|T‹\™š#ŜA.xE^ûfÄĞëje ‡a[f™&oĥ.ni[ŝ³È @KGw…”Är}„Ü8 âĊp_]·0,pító0ıŸvŬ>£AçŽ9˘JÀÔċéMĠNꐅ<C„ûa€ÎĊQ瑟 "NĠZ’]M!ÛnjQĊIU·<ƒB’t1f£ŬNBEò6%]vldÏĵ/PވžĊ˘È g5Ì1—"çÎ$ôŒ]RMdĦ7½‹VLŽiPWZĦ´ƒ5]nA„]şPĝ­'uցƒV^w\™  ßçbŸĦ¤x!ryÏ0qƒ˙yY”Ġ~*-*İÜí”AkB´ |D3ëÇ0Ñĵïö0R¸´m‘BîŞR JàRTi–)gl‚Ġ·%9W„9ĠƒÊÚt `,ôÛi8TÖöÀïE¸t8Gô­Ħѝ}U WĈ‹Ç Y=gıJìq³F²…Ç%Ş˙ ëŞ}{e³µ“:òĦŽ<s^V1Ü41C6üvh ŝÂ2™\éiËwÙ뿢ÙĈë—R,h°‰ż×|с· 'FĤFjI0ÔsĜ~Ĵ¤4sḈˆx~Èbé–É£#ö5á˘7NwħğfvĵÒ8î[ûï°ëısĠìC_ŭ’4‚ğPï:wÏ1ÜêŻ@’ N³~ǸˆaK#†¸GUġù&²íÜö!íèf@npis c ùŭŒR iŒïÖQÙ£Ş˜Ġ4‡ƒ—U0Ċaú=‚ZşÂdĴèïò–e•PÊcU7gRƒĊĴŠĥà¨˘oŸtİĞ-é߅2fÓäğ,á(zĥۗKşÂ/œ f+ğtâ§G'Ŭj€ùt3Jɧ%¤M…|]ÍpĴ/•¤Ş„÷8§lÀÜÄpácÎġ:/†{ößĊ^TMkm´´û;ñaĴGµ/˜yċ€ŬĴÂCäċ]MÖşHEĝeX*Oï;ìbdȝĜ¨2F‚ÙĥÒħ#€p!°÷³dìNŞÀŻKK5ŻBÔŞëħ ]7<›„M/~ Ĥ–A_›;ûĝĉL§÷ĵ$*8î2AĈXÂPzżŒŜ·Ċƒ#6FĠ+œËċ‹ħuDŸf×ÏôĞ7.ĤhKġÁޙȖv–¤³KzlŜiÜmׄ+NĤX‰àçĞn_-íĞ€Ê& 0é碌„ ­ş÷ Ħ‚`ÛçGëâì^&@gvq—èÄ'{i Ħó@Ó0çx뙟Q{ž`tTŭ¤vâÇ8êv§³rĵ^Ë˙ s³ NFM:}Ĥ-ú\rғŝy!Ù/˘dİl; [nˆ½Gġ”Bb ËoÔm/W"@7ÒVBĵ<ıµ"ÓN4Ĵ°³œhĝu·MdmN4šúı|’8S`ˆ‰ ôĵoN´.ŠNŻÀ~™%áwnĥ.’´(œX6k›u;IÏĞ#˘nWÜÙzĵѳŻd<_ĝÚz*\.ŞRá:˙äğĉ“Ĝ‹Rİq…qB› ¤ îû£_”9~ÒR&Ÿñˆ]ŽĊcíÖaìK‰ñí+2ŸpZ‚öqOAJdmIBۙ’èï öÁÈπöħ=ĵc–? îG,é}êš$I+‡H)-E÷†ùħ5GÌùoÈĊĜÚH)òmsı4ĞMÔFŸşħNi⤒ß&-ŞtFċPYŒ-µlkÎ'ĉŬCàe0b.aÀÒcjŸ|‚y˙ġѕ”ñ¸ħš<§‰ñ,:ouÒµ\.dô_‹M¤EW×ĉ0–eÑ-f·=68+uÄä%Ÿ1Xı‹9>K˜Y(vòŭĦ}/^.§}Ċ/ÂúQ‘_qfħÁŜÒ&ÉH†ŝÎĜ¸.ɳŻ{AÍĴV°Iġ‡àŽb‹É]ÄI+ HúĵhÁ†U i9M•ĴĦü˘Bûmù„8g-(Óq\ì{ŝI`B—%Çî¨&xìó€ÑBkM#˜òUûîp÷Ĵ]5Tˆİâ} ı€Í™ĝ ËÏwíçixUÜ{n?_·ŸÔv¨üŝuûùEûù§öóíp´wĞŸĥŸ?´Ÿ/û·eâôëë1ùcW4żĴqÂ~ĵ èùoIĜ#§Œĝ+AêK72“Ĉ@–xœZxΜ•£Z”™êT#íÌÑóAÑĝ=­\ûC™EóîLeÍa9ĥ‰yñÛÀ(ÛSÎ µ ?°—pğ¨ÉBíۄD½çĞIÜ}ë­=ÛyRj´ 6#ß&ŽaRßdŻŜ? FlƒˆĞ;çyâ×–ˆİ†!PÛğÉoûHÌ̛?ĝîKÄPËJq|–Ŝk0?‹´C>Âq–ü,şŠ“a0Ħŭ|×n //ƒÑŽħ­3_^VrƒÓGıÑĊJ„ğ°–Ó(‘Ü·ĤÔˆpĞ4áÇħܳrÔí†>ec /€ĵ­³]ħŠü”€ˆRHΣ–wŭҏOùÜó:+“^É×Ù “Í…½³•3x+Ŝ!=ÔQbìrñi.Ûy“·8ƒÌ œ´JPŭ‘ĈÒI Ú6NtıBğF;%ÍU¸û9îğkëNĠóݧX…ÍÑç‘rğKn#vjŽúIXMĝ3tÒV½C|0 ĜY5ç8Ò'<ÈR{ˆwÏ#Ûş­Í†v;Ò²ßù$Ğ‘w=Ë;.^–\ċgħCjħwJHÍ6.5)ƒçfƒ\ĴÚFĜ j³=Ĝ7VçiOk˨“ı‘eˆÜ  ĠÂé‘[a4µÂï°ÌżŬ'& Ïô-ׇî›ĜÒ%'ûˆ<Ĥ&U6ìġ@ ɤYaÒçHĜş=îĈ&ĥ%ÔH ¤k;fVjŻİŠĥ>uÙríuW·ÌP.Äiß̜T=óg˘(„]Ë´ F'Ĉo°îêî~ŭ?3ê°Ëendstream endobj 181 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 926 >> stream xœ}’}L[UĈÏíċn])r3PÓ;FX´j6dÌÌ,qaşùĠk€j*ET@!)ë@Z,} lCËÊĝÀ>Ĵ°Ĝ 3’,ЉôtĠdjpä½ġġvјÌÄsŝ8y““ç÷ħ‘BRD‘,’Môš‰#ġä—͝Ò%èÜş|żê3F!Œ3 \t'ĤóĝP4WjuHèŭ›k¨Ç!¨e żG}dċÉˌï‘QúlVĊô‹73?ûD aPÀ§èé°ì=ĵ‡ 2{•}#ÍጀEtp Íĥgħ-²Q]öNŞ) ·„‰8Š^ŭOJ¸ġÁĞÌÄfÑñğCx/ÚÁ{0ĠÌĤ™SÚׇB}ß7)Ìύ\qöĠWı™Ĥ@+.|ˢQ}C‹Ò‹œjÂDbƒÔ9!ĉ íjġ¸\P%|îÈÀù £/=?äxúıò*ÍÁ ĥŻU‹;3Îv··ÈĊìšD,ôX`Ħc&a>ò]2dĵvS£jóNâŸa|ĴŸxTÔt wî°Àv³h´i§uÛvĝĵ•àWh ;sA;ĵ›öè§uËKç§{şÍ#:Nô~+:h[÷gSEĞĘ8ùttec4ÙШÜ<‡İ¨£œZ$1ë?>}~Ÿß#W0GK^ñH;ƒÁŜÀ1yñÎoeĴùoú×ß^=ó|>o#ıx˜ĉÙсÎ@·lÄß´öÖX£pj6šx Ċ’ĊßN–@O£pâjxöcHë†tµW7ú*À#–5 Ÿ™Uާö3S–5Ûmv ûİfáKZÀÖ˙§Éè¨ĈëžÂ9mñ2ñ>#8/á÷`J“P—y…É›9ôÎeœèĵ µ{&bj1„FÔ5 ïĤ?LW畺w×TÉŻ”Z½ ²4´ŜĴԆq\ÁñprtZĥĤ4¨żâ éÖpd ""ĥċ2³˜7“ŝR:†)˜ÖXÊżĴYRf@WûlŻıÛjÚŜ”[KÀ£ĠñÀ-çOHF~<ĠçŻÛësżgnzĉĊf'ˆïLh¨k†ä”8÷ÎÂŜ1‘eJ,ŝĥê)†K퍞]ċ•rÙëĊ-Ú>›ïŠ{¤ß 'ä/óž.endstream endobj 182 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3404 >> stream xœ½WitW–.!ğ( ˜À´À‚Ž BCIÀ$LCˆ³`öŬc nÀlv0–ĵJ^äUÖVU·´Ë^ċ]ò† 4a‡&4é„á$¤1d€œf²6y<Ϝy²ŬNN’Óóg¤£sô£îĞûîŭï~WF…˘d2Ùèeâ×/ˆŭĈáŬßë‚ á0NÂÜżžÈLBÓ'^Ÿpú!*ôy8=6cùŠì­nmŜî={7ìKŜ”—ŸĤÖ<ħd,Em˘fRqÔ,j6OmĤ¨-ÔÔ6*–ZF%RËİyÔ j%M­˘Pkİ…Ôzjµ‘OM“EP*’ FġÈbeġ£&ê’Ï“ß[v3<ŽžA_½vôgÌÊ1‘cZ#&FdGü÷X;8îxíĝˑïO˜8aġC1)…€¤ôɤ¸+r¤GWÔ}g–YÔáŻ×X2Ë_Áj‹†ċ ÌİoÊÂV°¨£zÄsĥ6hƒ³|pzÜLg üe-´ÚŬŭöFÖ}Ì}ÌsÌÙí=yê„ż½żĥ˜yۋĝ²òßħİxğ9ı6€’œ˙Ó§8k?·×²ï8Ú\}P§ü ħmċĵ„YEŞÈà6 ·}èp@&]˙BŽĉ_PXÔ5 µ‚ÒÇĠò _.ŸôEYs¸R%ŸK…ĵPĈÒ4=Šd÷ż¸s~Ħ—ŭŞá³wàs…+8R…ġĝŞâ(²9;EÏiP˘qô½Úç_yfy4â9ĝcEF>4ÙÁf?ÈG­áhŭuŬS{çÇÎÇal¤Ä•µJÑ>ÙtüCıäFn’?÷Ĥ#8³X9óƒĊ( )‘C³T¸›‹*¸CĠhTà {jàŞ£˜ëE8LkÄÔŝ5ĴúÍê­ÀDʲàż.Gŭ_.KÑ(­DëP:zúQ4G³x*Ċŭ˜{ô½żoĈóġVĵúıìžÍËĥÌf.ŭż—Œ ĈB_  îYwpħ<¸U*²é-xib^ žüÀŻĦ†Ûôé–<ˆÓ³­ô1TžM?ž‘ğ˜§éW‘ĊÙċt …H#Uçn,+Ħ”<éEşÁK4‚~ĞʔËϗ³O vZÒĝÒ% ÔÑĵA( ŒôW:Rš6 St÷ĥiѧŠşoqdy ‚E œ5x&„XL\ğ7™“­– Bçż*·u‚ >şx5[…XiĞ`òé._MZáldë.ıû)0ÂèBSYä1šVSukK£ż+³yßşÄ-[sT‘’ŞÌ'ŭĥAvëŠ?'—ĉJÏ*l^°qqN£•‡’"Ui9IÀ| # JHfĤ,ĝ}j­ĥQÏĥkŭĉċÇÊ/•ÂF&5{ùŒÄ¸:4ŜĴjÁY 8@‹§FñċÀƒ•19Ĵn§(66İ\Κj§³-µßp4ğ˙ŝÙŝÂւ:6ŬŸċL¨Ĝ鍯„ÓŒ·ż5\ƒè8UıW°WŠ:;É9Šàsr-n”ĦHBp“ôšITϤŭh=iWá“[ŸÏqş¨˙ wâ6€$Q˘œ{Ŭè?ôÔĞêĥêꏘlş4–/.É2i÷%³Ûp¸³RtˆnBƒ³¤4Ê£2ôĞËrİCÚ¨À E‚ (9Ŝš ÜPoLĉT.—ÍĊ“ÌjÖ]IÊ´4µA LĴßàD{}ñ“žlĠħĉdC<ä3ğıóÚû.•(/B“*lpPEŬĉh%͈+uĥÛÀmŻ'iUè|Q˜”]D£ċR‰ôÂ}´ .ƒ3•Äï’ 2Ċ ȁڄrX02=ôı# ħϲ/ nÓÏYŸ˜Ê\ˆwkÏ:;89ÔèiËkÒä&Ċ­ğpëî×oSG˜“RÖ$M ÈnWȃ‹EۙîŞ^q¤Ú:>CvÚ E‚B³&Ü~’Kĉ\–ŒäufP€³âİĜµ µvDe× QEÔ1SĜĈgĥŠéĥP¸şZÀ[Şt›œjGž„-Q‰¨’Ġí‡ la5_H°˜(j†ƒ.ÍìNQ^Ĉ÷ùvK(ĞÁáqUĦ9¨/ê<îv€”UàpğŞ˜ĵùPAzĈ'{ŭCÄ˙E.•ĦY k–i7WnÔä—£3ù*ĵ§lĠĴĞĞMóÁŞÓ‹fŻZŻŻ:›[:Ú ŞsDU ÷|˜×ŭÛ_6˜ĴË ğè"ÇŬ‘üÎ.Gċ5PúhBCç€Êò[ƒŠzHWÉ?˙2Ž^Ái†ÚÔħ Ä“qŽÀ³ñĜ›+î^?˙şÛÍÖ!ĊÏÊÒÚ—‚>W²=ŭe`ö­iATƒ…ŸşÊöŸ=×|˜ëÍħĉ8,c‡{§iBħ>ÙÈMôġET¨h ͝ğjÁĊ ˆ˜ex'ż)8ìĈ’  o"şŽÀŞÜÈ[ Ġïçǔ‘ŽìXŬ‰(żĞ— nG“˘=ŭùÁ`ncy:ÁdÍ$VŻk .n•}÷•”ġŸò`‹ô˜­ÂÑx÷âÍä§Ċ/˘üZˆv˘m(¨Uƒ³.ıƒĉ÷¸Ñ“WĊŝċë[½„R}µ Ç.ÉÁSâĉ³ëĉ>ğg%15è"áä$†sìÇrćĉ=Ԍ1ôÁO<'ŝö>eS[‡/^8Èy¸ c™ ˜Bożµ÷èžĈ}Ï˙6nž^eL²¤™v01ĦÖ˙NÀ×LğJa͐µüÑĵw2‰Ĝ”z›^„fY—fĜçô·Ħ7‰Ħĵ˙u£wèYMEżúşħtOcñ·?…abş^Żŭ}è'À{ú~x·úŻ[ôÀÌçŠıT>6wñêŭф(żĤ#‘?T˜£hü}ZùġċŠf}³&#-ç•ô&}[ ³3 Â KŠaÏ3byÎW˙ŒċéÏÛZàôó#Ĵڙ-NróZö ‰ 'hׂÑ2Ä^EîĞré&ğÇl7›bĠU;_ÊíÚÑO.ˆÇOĠÙv÷%ħ”6óġ܁ܨ·²k@ÏÄĴŽ~böÂӈvÔC•޲¸2Á˘çTİx琑á”fğĊĊ êĝŸ|ÚcÛż#>pÊ×è!ÑȟI>ÎjúÓ<›&WDċ9xMĥ5ê8|xġÛH~ê…zĦ U0Vٝ˘-ägZH™ˆiÉê’uHrtĠ(›D°òvçʉcb­HdW%“2aƒM7"ğ5Uċ%yùĊéZ?2}@Êùn/Ĵ{°–ŬdSi! u‰oİehSëî“Z÷ǃٽk[v(+ôN”2yĊĈ,‰i/ٚ ş„v~(f;ğ²N(‡”uÉşQµ˙eù‰> stream xœÒmPTeçîċ>] ï*̵îĜÜF›Ĵ a&°”˜0f·šÚTP¤ċÍDFĴ}yVäe´…­ĤĦ†„ĤÙemÉTf1T6}hĤóì<`]:ŸÎ—sĉüs8Clj;rÍĉ·^K\éÂ,SdŻ@bxu*ò4öŝÚ ~d ZİèJ[UuNqiŝ3ByȌv£w”‰v˘$”ƒ’ѳÚB…JQ7zÂİ\Òéu{u.ŬSê”h³ôBJCŬ3CrOŭ…ÒI"B4Ĵ^Ÿµ†Ós³mûß3tŒÛ1[ż+Lcàhğì=ñtv^üñ¤ˆ×.½ğ /oJÈ>zÍëi9Mš ,’^jôq÷ážĤÓ"™Eğ2Œ.—èĈ_Ì Yx˒E˜Âç@ï{ìí9;qwt-˘ˍ!˜ó˙@ óA×ɏ;ŭ‹Çç!NxW²8!Ëâ†üBf'V1żżfpl´çËĠĜgÛßô1Q+ÉpGs›§Ġ ÑbíÍ>ŽP“œÙ*ĥçUflŞúĵAq{Èx-`·WÙ„mxzÉ$Ìc‰´#z7Dxú]$GŜŠ™¸tÑ!áÄa˘Ô‚ĉ’Ÿe<ßß0vh–€Jvß%ZĠ„?1ÀMÜÏ4OK`Xné&í¤KĵSäOÙQXm˙@uV8Ê܎ĦŻŻö†4¸ÖÜúúcyN—Áéw;HĤ“}TCĜ âoÚ£s³'/†T×qgĞIœÂ…°NK{‰%báÁo‡Ĵĥ!͙š4ħ'!.|§şUĥ Z[w‘%kA“˜’è7Â3cŝî_ m×?´™+2‰’e½:ù(ëaÍĝùĈ²+)˘^ B×/ŭw†§ŸÂ=ŭ‡ÉE’n²8•}†Ù‹Ë9·HÂn ˜FbeĜ€A¸b)ÈŜ™Êâ l–àĝ˙ĉ°y›jĈ#é²×W&J—ĉċ)ĵHMÚGItÔ~“ŝġ)ĦüO˙Ž$Èßġdi ™ÈôLWÑ^òMıá‚ġЁ#wjÏ:|UOZm¤ZÌÌHŬĝöĥ@Zž6Zǰġ’Ħl òTbÉé]gÈmñvĝĈ‰áş÷/Ğ’•ê‹Y…p¤`endstream endobj 184 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6470 >> stream xœy\S×Û˙›Ğ˘Vâ- ÷Zw­ğJ]¸*(.ˆŠ"[$ìöÌ EvĜKëVœ8‚úkƒë­­ÖVħÚj­í{è˙÷?7ßúŽ|òùÀÉ=9ç<ßg|żÏ‰ˆ2éE‰D"ÉB{GÇɓ„ùŬ˙ÖÎTi&Bfbdf’3tĝ)s868˙%ĵVĜì\·ÀŭÂ]‹˖~´4Ĝ6$të²0·ċáÛì#ĥŻp_ıc•‡ç/oGŸµN~ÎÏß8ŜeÂĤ‰ŸlŝtRää)òİÓĤÏĝlĉYÖ#?Ÿ3–˘†S+İYÔjeM¤VS£¨5ÔhʁC9RcݵÔǔ5ŽrĤÖQ ¨ Ôzj!5‘Ú@-˘>Ħ6R‹İOİ%Ô$ê j2µ”²ĤRvÔ4j5ZNÍ ìİϨÔLŞġ5›2£ĉPŭ¨ıTj5Ÿú€HıPĉ””rQ,ġ!eAYRV”˜L ĦLİĦGġĤV„(*œúC)zÓë³^ââ$ñ]“…&çMǘĉӓé£ݤ€é80_ö^ÚûNŸM}÷uè[eöİYbżÑŭ’ûáŝŭ/ ; }À/\8{à#óùĉϤғƒĉR zÈ.b_|˜óán?[~dıͲԲĠ²Jb5ÏJ9˜ì>X3ÄaȓĦЇŜĝŻ˙8ËM”ĵï0là0ÏaġŝԖ÷ז#ġïjÜĠh½Ċ ÑŜcʕh'ŠDñî¸_§ÊRŽ‚PRZlRRŠfüŞQ1÷š.İDġ ĦȃŻĝŬf#L=B‘Ż_%*á_ÓĊĠ¨~oòî˜,>)#E!/Ô³Jú:֘bKZ·)´İĠĉÏ5à¨ħ~ÖÚAl#*ÜĈ- #edĦjTÀÇm› #˜Jud(’ß ‹iéñ—·ž9Wàż’ĦÛ%şy5Âĵ‰Ĉó˘èWëŽÎĉ¤ß,E^aaŒno­\-:¨u1ĝ–S2-§ …ï (~%C~¨‚_„GυÑĤe¨Ħ^Ĥ@U£B‚3Œ­pħi0Hö"Ÿŝ_&ñOÀév2 ~÷‘°CP!jpU›˙¤(ÍF‚ĤiO²0ŝĦÜŜÛÍÇv?’†µŝìµòcgQskĊ},ĉp-ÎP…ŠĝšN9-}³Ë" ĤW:îj6^·.ċmq>‹ŭCŭ× ÛWMÉĈIjĝF-ş¨*XëdÇO^`lòÉX<K™½ ×/ÏÀœ[ñtÖĈŝÎӟ_żqóšŬ¤OìçÛ=BY`9²Š.ĴÒYÙ ^9Şä‡Xùk˜§²Ş,7(<$‡WÑ0_6ĊËd’žÏ Ża%,`ŠUksĠ˘CĝúŠXĤ½ËĦ*żä¸Äd.-EËĵk7•­#Ĉc;ĵ È_ĝ˜;ï DħñAhgŸĝħu b&M˙ĈÁÇ˙è¸ra“uŸ‘Y˜&¤*ìÂ25|ކŻğ"3›8ċXC1{ùÒıĞ·/-˜6~ħŬâ9žNqx´Éá­G˘çż€Lùġ£á^ĵôy]Zû;qÜYûßĊ1Ŭƒĉ} ”hÄW´ÀvÍ,äË;ċÁtÏÜh°x`:L›°%'Y­ü™L[I$2¸÷j<‹,ı­ƒ‚ĝÉQ;Œ-Eċ^ž(ÛUçV½†`f2j–â~½>Ñ\ĦâħÏ#o|nĈz ğfĴY6v폟´kğs|-§`5lÖfĦ9q! ŭġ\ÍúNċé}9y|‡D‚Pn .“H;!,$n(²i?*/ċžv=Žt°l†4': ïœŬ’4$íöâ:{2°Ŝ¸ŽÀD ,yh!=2XÁŝ|ùô”ĊĦUˆ)/+Ş)‹92sŬ²ċŽĵô›ŭúp/C,ŜmֆR‹ğvñŜ˘×Jl<¨ea(ŭŜ³oÈxÏÙÙ×)÷6òì' éî5żİ†µŻÚBú Î@.”š!ËڙùE>ú’İnlĝċûż€ N‘щ)òÄ4n³j3 #>ŝ5PMÂj-¸³•ByԁĠ×â:›lpqBŒġ< ` Lüî·ğMWƒ0U̧GdÇTwxŬ™C’c½˘8Ïúm…[əÍFâ!Ĝ/˙[AߋGê+Êĝ`ŞGZÏ×êßÊD‚Ó§gÈ´4 3 â™÷éžH›5MO B ~„Séñ_{Üş}ïhG Ryz+B"8…ŭš¸ ÄÌEgĞx£ş,z¨ObĦ-)pUFkÙX…]ħ'¸û´‡ Ş:ċ2èŬÒž8DFżżé#ÀQˆìn~ ƒżY • ĉ]T\ÎğÂ}Z[ïĤĦĈÉÖ1>³ÑF*$˙œ‘G×Ŝâ¤a‡ÑáŬ͵Ì;%N ,DċÀACÒĠ)ǔÑĝ Ñáœ)*°Ñ€X-*ÒĈе›„T@NÊ!¨cîR…^Ï˜*è”êè1‡ŻĤîñDq$bƒS·a.%”QÎpĈ´E/d‚PXÏ×U¨žż‚;2ƒ2˘!ĞC(#ŻD]ġHYQÎ(é,çfÜ;3!?˘ċ£f”Q”YÎtğk²úÚü‚fKĜ—…h{5²ċ§SÛĊ[²2x•ÜXûÜ2 -SEVÖĉ5+9”ĞT–(÷˘<ÄüçYßEĵô$^œŠĴ?xÉUğל4¤µċœl`bI…ûLB4YÈöpW”€{·ŭ_ĥüĜ £2 ôÜÑ*†:ĝ‹… àhz@i ™İ‚ïôB {àRS(-—vÓѽcmĦžžÑKşgN0XÑOĦ7 Ĥ=JäŽŝ9ĦZ>-3%[‘Ît×f"+½Äpd,Â7=DÔt‡Kïn­Pیž÷Ê´ş[%àŜ†C˘Ħ‹?ÀÓM·>…Ŝú  Aü0 0ġïZäYÏÛşrI ÓR"rӒğĤFg6ŠBH)Ğâ¤-[ŠbÄĵ4j#r ÷òez“[’ÈC"‰4Dri ÉV#›gĵıS0Қus$ xRıBCG&I*Sk÷ĞEGŝ/ µ{EïH OôµRÉñŞÄÒO ѲêŭÙĠ@pü63!…J“ÍŠ–ítôH‹R eV.ÚËT…—ÈvE„lŬż­ċċq°Ü“ÉġHÇ[ìkw€ˆ­Ŭ‰’"ÒBı¤è0ÄÌXĜŝÓİZÀĠ—(žWz–Ê+Sİ*ğ5ıâù+ñİĜìçQ`üŝ_‹ğ î ÔĞEí­PEbö¨Ö”ñˆß™´“ähÜÉݐŸ–W)CrÄ8èíUĦFS.ñ é2ĉ~w0ĝÚdÏĤkĜ13:7hŻ{VbvB~b>ڋ rs 2²€ìüsŒ²3€~ï—ċ’FUW :nO‘ÇıE‡uŒ÷–U•)3P1³?…qĝ)흐àÍo’ô~5¤KuÜŞHEV^ċ¨”Ӡ˳Q*d.T;.—tWŻuz ;@˙:Íz ù!θÚk³ßSí§Ò–:o·˘-C°hĵNÎ=÷‰ÓVt¤ĤĥŽ“Eיs­ĵÑñĴŭzûµGCœ>m…‚ùíM6f_TĈ.Ä|aÄoƒġŒŝ0˘(­ż’†ċİ{=‹ĠÈŞ>? ŻÍ’ôÌĝȘŭ]˘fè¤]@%r68°ŞRÔ ô²_ñ‡¸ïĝ1Dĵö5X°<ù¸J­„Ô°D>xŬÚx4Í?ù#£ĵÂÜş|Ħ‘–H–7’éiZ5PCVġ„K, İĊöĜ>d>Š¨v=,/݁#vıìT$SĊœŽ9ƒ˘ ¨ }½çÄŜË ù÷ÑÔ_è˜ïBvZìÑ˘Ĝµħ!SPOÀ@’×Ë5ÏŠ![PŭRĞ˙IúîW¨žKÉÛŜTVQT{ċsùùÜMÓ8§1ùñ ·6˘ÎJuŽîR™ËĠŞ‘*•Fj‡5¤ Ŭ 0·?}jóKxd$;ċFXb~´Vnòŭìè'§-KĈ_U$ü Ĝ\ĵp6]1Żğ&Ȋ//­i!ŭ3䰈]ğġäı‹ÇŽ=ÄĊiÍĉÍÎüdO6#í`P bžÜşÙQ_QËĞò+3÷*³wU$îFLqE~]EXÚĜ ŻM|äÏÒMˆ™¸hŝŒ-ĊŜ…aĵSħ‘ñÁ~ƒ‘g,/ĈĈ}b™éoVÀ ôĤí‡ĉÓëj¸èœ­ċ“³˜N@Ñ(!= %Ħ˜‚ĜEJG™é™ğè‹Ż²cĉ=V’×ĜXĈWċĦ[ˆéS4}óü-cş*ˆ.{D:µ$Ö΃Ĵġ/:~Vĵ§ÌË˙‡‹…˙µ‚3]ßĠ˜İhĞÙŞ)#™ “HÉżI?9ĥj×Ġ“ĝ…48ú°˙j.U£Ìóî>^üS‰Ŝ´ôô]˘dëQ£y F[‘ò+ġ)öЍ܏˜Ğ•˙:ĜH:\˘^ŭ|BڎtâÜU”_ÁĊÔİä{zB÷ŜKspı„œï)´i³úh¸Q0šâ6ÜÏ(žNâi8-}M3İ .÷÷ö÷/­-/ŻċşSÏüìu(şî~]XĵjĜÚ¤ïCÑ4ĈyËŞÙŝ2kĥq[kRŽ(JĊŠŸf[êşòì‚Ĉ<:òé6˜›:y‰ÙËğڕ3§„‘².ٚïŜ„NZi9uúNôÍĉ2‚÷$•uw–úŽ'9Â/skZ›ïJşñüÙ3–ž°ŭ>t<™ŠçAİL Nu€…Š7Z“(Ĥ=Y vN¤QrÜċîKdÖN“•N*~:ÊajƒŠC‚‚#vÎû†QÀì'}Şŭí½èèKlµĴ4`Ù-Ĵ-ßÓÑSÈ…œĞNı³Q/nó_ZD}EêK*RŻVA_ċ²0$ĤMFrü#­Ax‚)ĵÑohg¨ê-ò F}ˆQ'şáŭŬm’}Ÿêoötô1,ïÛu;CêĠ Ä ÌHÌĞïĤ+²?kTĴÏô0[gg'ğ³rs½ 9ß7ë<üôċˇO`÷_ğ’ŻŜġ•.u?$ík4oT“?N˜ ÄS‰6J>ößV…šĝıĝr´SĜĵÄ-‚pjJ)Žo§µ²lúÇÌ$Ü:‹wğĦ:dUƒJQ^sO‚9ŞÍϵB_á-܉´£Ĝ´úPŽ×q›Ä#¤Ğœ<Ò#‚Gƒ|Ò\P ƒ—HŬ{àQi:(É‹ŝRvݐWf£Ó¨–y,! (:PxJYİ÷I} 2ŽTâ^éi­]7¤éW„ßuŽuĴì€]šmDi<׊á!Ûz ö":ÏÜ^–`³Ċ—xWÉË{ ’v§fp 7„ĞŸŻO{¸úEyî ĉ}diikR˘ÚÉH²ƒ;Aż8³tġ ‡ċ“ĥÍŬs2€ÏÊÊ!]%SV& Žò™ò|5‘?İl|4iŭCïĵIJ0eo$B—hÔ]hĵĦ÷%ĉzqŝt JVD‡2ĝóN†ĵ6ĊŻ%:ë[§†éDv8i@AĴ˙êµVĴ'ڜèÌÀH4´‰¸\_qİ$5–dfíÎċj—\"Ìġ×ŭ ì>_´ò3˙eıü‰İı9ÄÔş ˘(żĝí3,ĝâ1ˆ9韯ĉŝJ„µŝĉ6˜Eèĝ[w8ë~Vû~b ࣟï?BûQQlV2y%Ħp&°$´şŞĴ¸Ċü8’Żƒq?ìÊIßà80YDż>3 §và^œT댜#\Ŭ†³vh{K¨:-[‘–Í ¤ÈDäÌCè´ÙENZ1‘‰mWN˙ç½sKmĤÛY¨;–JÛLHHs‘Š~„xħ ^î…w!܋‘#ïĤââ=u\4DX \V’žŽ !Rzè¤˘páŽÏ ‡ñ[ğ$bi—ü†t5l"ħĤq~ĉŠŸC!t² 쏷žm=ġíŬ‹×Ĝo^ÀëË~Wsĵ]dîϸ‹ûb³Ïf[Ż9ħŝÛNúÛüeĞĉ÷t* ó'žßħğl£âfFvĤmĞF}éêOO.._ħÄÖaĤ*߃“˘SÑW¨_î˙"ŝ7u÷ߔö›qÒ+7…Ħħ›÷â͖ʨŒZRÀ²J”Ċ‚Ó·üÏ3ôĈÌjƒfâ9sDßÒf$T³qĝƒ9cÇġáĦ )ÊÌÊÊFĊLexY€,4Âϧdi'-IÌ„ Äu„Ċš XêŠÖĦu.Ëb™Éâ(‰kĥ[yԙìÌŬı¨‚İ ,÷HÙ4óÒ\`bıBĞÔPŞŠ¸ƒè_zĉGԎZü_àQ5Œô˙ƒí’})§ċE눊AÑ éOjT•ùÍß8ŜÄ}vsÍşÉÉ"9w î½l²AÙ˜‚ÙLğɚŬNtêÔĦĥŬŒžï ?élàŞËÂÏOïµ_útU§ ½Ö=,*!)Užˆ"uJ üÙy0ù—_£ğG€ż—ħg‹ 8·ßoÔ:еö’ÍßGxx’óDËwŜ'h–7x[Lžx ŭMž4k…6Â2kYT˜˜ž?x° Ĵ˜ —‡Á?íÉÉD…LnrYÀNĵ[â<Ü÷ÄäĤġÜıwHıÎ*Ëċûs}LÂŭÍzSÔ˙>ŸGĦendstream endobj 185 0 obj << /Filter /FlateDecode /Length 35 >> stream xœ+T03T0A(œËdn à’˘ҋıı”Uĉendstream endobj 186 0 obj << /Filter /FlateDecode /Length 360 >> stream xœ]“Anƒ0E÷œ‚€3N¤h6é&‹VUÛ €1‹DÈ˘·/ÌwĤR‘x’?ĥñ=–Ë.~İ0ĥìǰĉ‘0ÜÚı¨.Żíüġ3Çr›ŒßÚ[Ĵ>Ĵu, SïsâÒĤïXœëíáó°=\ÄÔ˙û|XĠ Ó +›KdYI ˘+)"rĴ$‡¨aÏ{+mÈ³Ò[DGVzƒèÄJŸѲÒç?vĴ$BXI˘ž•”·ĴtÑÀJ:JdjVR@$Ĥ@‹í˜=j4b $ÔhÄH'Db t9S AĦS GFLMŜ^LrŒ˜ÔhÄè`ˆ)çYb ¤‰)°É5Š)Á„­YÙàĤ„5Z1RHLE$Ĥ@‡+gĊH\çMŜïúŜ9ÏF)cYbZ½¤}öSÔœ§y_Unoñ Dĥäendstream endobj 187 0 obj << /Filter /FlateDecode /Length 13 >> stream xœĞ˙˙˙˙ syendstream endobj 188 0 obj << /Filter /FlateDecode /Length 7122 >> stream xœĠzy|Uĥ˙½÷Ô­µ·êt'dï,M’I@i#;ÊY4@ˆ€ ›0Q„ ‹m ƒ¨cdpßğ AžÏˆŒ·ÜĵSŬ‰àĵùmŭ>żTuĠ­ċž{î÷|Ï÷TšPBˆFÊ×ä'Ÿ‘iñyĜ²‰*Šg>üĜĴîON'„á1Ùó£ ŠIè£Ŝ $öüÔ)‹nž;µ– 6ö˜Š ĥ <ŒÇİS{b~ĝzÜĴtĈä‰áÔS¸ŝĜÄù35ò,ĵŝQ<ö͜=efċï¸ Ë áSi. ’3¸ĵIv“MtYŭÏ–jv,&sħċ-z†V°Ĝĥƒ\'á•ċä ì–Jr°•‹œ‘t9„ÏÈ£š§È‘†K‡¤û¤ tU:GzJs¤sRĦ4‡ĉÀV>†ïÀ5Ŝfnrš$’ ŭŒÌ!Gàkȁ:İżä ŸÁ9ĜM`/>˙ YIĥ‘´ĊCgRVÂüÙˆË <ŽnĤĦuGèsäYL6Ó 83äGòŒb8ĉVŒöŸÄgû7’9á¨NËÀĥC֜IĦm{£u\LàĜ­Äz:›'ÒŬäkİP™„Ï~ÛöyˆŬ‡#*&u¸Î“]8Ĥ>t1T ÖÙxrN*eâŭĝeŽšKĤ^ ÙG’PEVâ“B•{òñÎMÒ8ĉ•tû‘œƒŝ$K××ÄCH!Ż)2—€QÒĊçŞaŝ!E5c}§Ĉ%uíò‡>—âĞ!5ö`kkÁX)–Ğáq5àWk$Ê˙³“_tí2Ĵ`ĴŻĤe@˙ĥ§(ìm#Çâu„ÍĜ> èœĠi ÷ߐÂßäİç]ϧô~Ŝ5wW ÷c"žû—?}Ü4Â>Ûjùͧc¨#Œ"d*ħF\dQ ‘ĵ,ż + ´Ŝä_üs6üT?:à7ü§wÀßĞàş{ŝ.ŝ€kUm46Á7Mî ˙žW|• WFò+U€6Œ„Ë_fòËMe&|!àsŸe˙À§UpIÀ'nĝ·Epñ(üMÀÇxùNjàÂùAüÂ"8?>ú0–$àXĝ@ÀûŜ€sUpöL?+àLĵ“ §œXlòqv$Ô xKÀ_ĵ)à Ż 8.à˜€:G1Ħv‰Ÿ× v”ĵvxí(ĵV&ŝ‹Ÿžh…é/~8$àĠ*8(à€€ûì+‚?;`ï?ß[{vğù?ìv.4zW슀ĥğa›€?mu?eVüħŞñ’ê*Ĝ"`óË6YÀË6ĜôR4ßT/mtñ—˘a£ 6è°^Àş*;_' Ê•xSeĴ]àk;ÁĴn‚Wċ/ Xµr_uV•I+_ó•`e@zÁ+,_֍/°Ĵ<|ŝ.¨Xj ,5 ʋ` zj‰›/ž{ÖäÏ xքg” (h}zÑ"ŝ´€E‹`a”Œòò?<%`€ù˜gƒ'u˜+à‰&˜Ó³›`VÌ0CÀM‚GL7óùô‘0MÀÔE0 ˜" HÀd“Lì …M  &x@ÀxĈê|\ŒĠáŝÈh~6Œ0{£ĵ0’şĝÈpŸF à#{ïuñáîuÁ=†á™a†qñĦ0$Ŝ·¸`° XŞ ż€ğYW~wä…ğ†A@@?wŜáĉwzàŽN~‡úöħóV'ôħCoyzġô^M³‡‹÷ô@\ƒ÷pAŬ ÇÙż3xĥ€ß•i,;d­ĞĈğı Ğ]²!£³ŸgAçt7ïì‡t7tJóóNwAš:ú ŜÑ ~R¤HvBŽ3É "Hl‚BBÄÛ!=' ĥ bò!˘t(‚(ôT”€Hĵ)2ĵ<"¸ñ·Çjĉƒk8‹À!Àn‹äv6ĵÚ †Ŭš/S(‹@“"À Ĝ ™ÏĊYW . h-^A3ŝĝ˙×ü/?ñÈĵĊ˘J*ĉÛPġ($&`“nù&Uy)“HfŭùĈß×ùĈóYf’éO2“Š%Ò<b›Żˆ*Ċñó÷³ċtäòòÖËÒVÌÀiäé@_ğ9 –˜ jLÑYbbBn$$J^JĵôĴíPiJ•d­˙Esy§ŬHŒUHrl´£ĞíIîäşTßĜÜĜ`şóƒ]7Ühht]ûñšë„•—…ÉHq9ĊŬĥŻqɝé”N8œ˜ž™ŝût˜@½ŬhJ²ìġD&ÒêġHIÉÓrhNvÜî3i7šÛ=5';R<çìCÛ_·İ/˙U|*N˙Ĵ¤qöŸëÊ7–|ùúaÚżñmo÷ìQöää)‰Ñ_ü<+óŭ—>ŭĝÂÄ]ßĜs˘Ħ#Ê2 Ç]ŠZÁCbÉÌ@*ñRm‰ş”{wQ^k£G;Ôşƒĥċqħ^ĤzU2Œıâ\͍7ëq€ĦÑ56¸ár6dÒûĊÏŒŻŽ?ŝz<ïGúÑ~ĴŸ·_,ï˘dŞ™Z}™Ag°ŜħڄYǚXO݃Ĥĝˆé"9ÙD _‘J›Úν6ŭä¤Éï?"nˆ“4½ùKŞÙökìÁñÇOvïŻsڋê4‚Ŝ->­_whßf+wÁ,\„cŠ =Ñ pPıÜamu:e*n×Tc ‡‘}Á‘Ù·áF}£éĈÙ9Tè}ÏË.3ĊìŜњÜÉñŜI-.ĴÜ[[›˙êÜ7O°m-`›·l>­\*Ü7èğ6_Ž—=¨âHŻ@tL-qxjışÜ¤ë J"*dşñ!fgc׍V×úkY‡ ÊŞÀê;ÇLÉE$³?"İ'2<÷hl {XxĤ•´žYx ċä+ĞWïÜızġ+p˜=ĝK΢‰´?Uqé?QxÏ\½zWônjÖËpŭ‘Fĥa{d´GŜ‚6YB+$ÏoE‡ZSŞġoaûXĠĦ¨žä\ÍġH·cğÑ%~¸ĉúášû·Ĝn‡6ICh‹ÓŒ8[7@£‹­ÖGïcôħ>â£İĴ“ŜÉè‘éÉôvŽì”)1Ŭ—ž”šĥD_b,ħ-ħğQeQĈd]6Àvp€\ 1 qRĵ––™Ŝ/ŭĦôÒô²ôUéĠé×Ó;L ­"9ċżQô-,s|EĊ¤µŭê·˙ô·ño=Z|bâ³Ë§ì ìY˙ùğĊ‡¤~û:u5*0$ÉÑyCĊĤ))ÇssǍVàwĤV>ğyo‚CxƒĦè_“d<²Ħ‚#¨Ġ)şĴu Ûò›5ŬèŻúóg­@9Tħ%ÂBZĜÎ[0‹‚Ħ‰Cşlzĥĥ÷‘ĊŬâàÛĈ˘Ëí°8 o=ŝe[hÎlĵѧÉÌËË:¸ßK­HLò&Ħ}¨;ÎE rL:–ˆĊĉ;vaky9ŞÏżlİqˇĴp%½3Œ‡Lìûgä2.Ç]ÔĤî’i9YçëtĦEŞŬi܃ŬĞÑG­Ċ™ ô7ĴĈÚo}£×¸Yġî] Ù͘A²ñ ‹x ĵĠ^+MàŒĊSËÂË2 ÏìçšÉ÷ÒLñAmMÍc²gCÁÔÉ+›3ვîi§ı!ÜD‘ĦıÖMjmA÷òšÛ9ÜŜBxi lDJJżèR"—*jİVŞ—%ĥR{İ£ÔYê*5KÜĠÑ×£MôS(Â0JËĥX<%ÙÚ²9k÷îİ\³wïšëÔ-]˙ğĝŽšÙĠÓ§Żŝûİ“_o§D£ĝ‰=ùÛC{…°S‚6vEuâ'u´èD#Js]Qr­ô-I<W›‚Ôe#QÁâñDP=:˘ŬgÏ#͐ên4ß°°îşfĉ™yV^z<+>+!+1˗•”•Ü/-H$|¤@rA|ABAbŻ İ ı mfÚâĝò„òÄr_yÒâäUiĠi×ÓÚomżİŭ†Â„ÂÄB_aÒ̄™‰3}3“ÊÊË|eI&Üĉ•;hÏvZ“”6%7îìĝg{Ÿ™ħĦ6ìW·t›”½²¨)ÇÇ˙çu–S\2iÎĊCé÷´<³ğxâ›[½á.]Ö­Ûî´´f gsZ/óe¨YâI^ÀGx,­„ĜJĠŭGsŸ·Òñ˘ş<‘8³ğ”Ó!Úp% ‹ššë“kñöùkÔŭfRn’)Káô›”-EYÔÙvCzKfîıâĞjħUÌËèƒĞİ2cfó2qM|‹³ĉ~dçú⎖ґ£éú}œn<_*ïŠćâ]?ù5‡âĦûoóñşžۉà`a8oÏĈĉ˙&˞–ÍV:Ĉ~ßÄÍìHòkd£H8öb…zVÀîâ^À ùL~ËH6H1oƒ²ç—ĈPŭߚÏò xo׀‡ÄPFY Èg[È3#2ëC)Fc8ïño­u\2ÍĦ)LŬŬòón~á—ÇHÓGŻ·!Ĥ]an×AÇrz êâQ ݃_gg‡#°Ħ]ü†Żŭżf œ!fñaĜ3!¤Ñ9˜5”œ%­­gK°^ÈŜŻXëΖ}²ğh˘¨?R7‘~Ó.ÂöaÌmC?aŬҞO–;ƒħë˘1 e”ÛĴkÓ-'~£[n7ä6Óĵh1\i·ċ…[ö­ŭ5“°ûn³Żh'Zn›?…dòqéİcœŞ¨"u‡óF3NĤáÒZV¨ÍÔxx*ÑKÖtƒRáÍjÙóµ5§§q³&4§Ŭ^#û#’dQ°Ë˘]bQp4`ÏjÇJ…ËĦž~ç~Ħ)zò(\ĊùŒ&ŭħ¨›–JŽ%öş›˘œb· ö ˆq57d·³İ¸aÉ$´ÔëŠ-‹][Ëémbż]'‡#/ıàĠ'^-xyĝ½Û'´ˆiW*Ŝ*ċîÍȸ|îÜċŒŒŬİİèhuÓŜ)Ħ8ğĴT*$2ıHSâ3)Ö0™ÈÔ$DÎg@^ç2ǂ”KDqoKA$œ‚<£†ĠxG=`5Xy¨>*”³ónĦ\m[Chĵ0˜Mg%Ĵ”-aeìEĥİVGh¨(½4b¤Ž¤#M‡tɧĉ’\ÚzKYê@2!Ò@>X¨cÈ:ĈIj1)ĤÓ`šô0Ÿ*ŞsÉ´J¤ıü)y1YL+ BŞàKä*RE×ħ°^ZÏ×É;ù+rú†ú™ÚŞŜ‰â/"G³‚Ž·èƒôÁ·Äš¤ÂĉQ°÷fuëˆ> 1X?ÈĠTtÙ ¸)I/KÄ ’·RóTڟ1$.ƒİ‘¸H×££%³ŸG³IĦ8@E‡× éàÌ7PğóĴċv6kà@‚óŸŠ œpʙ JÈ7‰EŸĝİŸu„4ı£ÒQí¨ùzl ÈĤòı8òyKċÊzy½’ˆcC1‘Ŭh†EŠIH”ĥX0„Ĵ¸ĞäÎs_şlŝwè)JšŸkİĞ++W³şÈUO‹İ´´jRKżñßVażoıVŝÜs‹Û}Rƒ>QQÁv xIö ­tİÌmÏ&qšä)3ĴûQ)5"7G„¸9'œ+üIĦo,e×Ü ı4Q|!Έ|ş…¤UbŞ(yĉÍy´ Ŝ.4j‡X'ÊÄÓ˘*„Ûŝ„(;°- á12×tMŠÑ5ˆÑ !÷Α˘*8G\U Î6ĵálË×9È~CµşĤ†_2£·ğΟ i";êŸâ÷×ïUŻ8Ĵıú^f2g:jŬ­wâİşOż“ŬÉğëYú=ì^žŻôqˆúGĝzĦna!/ċezĞäñ ј D’q²1 E#š¤ë6âˆŻäU£m.‡OJâ>Ù§ĝÔ-U÷>‡Ïїġ†\)‡gİ=´<£Ÿ-ËaĊÉP ċËùJPZŭ^[ÀpŒecÔqĥG1{&J“xĦ\¨ŞEZ‘^dÌ#OÒ6ĉIOòež:So+µ•:–°rXŠq´X{ŜXéX'mqìw<7ĦÑhJ˙³´7ÍğlmΉ !ŜüÂM·tÍZ›2¸Ğéz(ž\Ö˙vpîz믁ğPc“ï ëPS˜ŒèŠÉ%ÙjÔLUëD>’Â3Ç”C˙¸n¸Î‡)§oƒQżÎż}˘ÚĞmÒ|ĥP€9İ“9§ê$cɓd&YN4…ŞnšI£Ù:–ĜĤSÙ|ú$[³yÊ|µœ.eeĥġlTIQè&Y€$Hauâó‹’+,ï--½À-ѰŻ)ƒ–ŠgB¸ƒtš‹|k£ß nG‡q;q;ÚÂíè˙#ÜŝOpk1ò°sÔjÜÖ&ÂÚaRĥXšĞħávĞÙu‹Ğ˙ŻáN­œE²HžĴçêCĜ>‘ŭ{€Ö ôÇÙĵX_€è^€è.gĜzVŻcuü]vŜñœi K×UC/›—EC¤cĠXÍcxm³°4H’üD˙½>Ü>^ŻO×Ëíeö5v7ĉSMFĤ0†3Šz™Krñ(Ŭcxl1ŽgIİÌ'ùxşÚIóëİFŞ-ÍŜÙÑÙé3{˘rÌeYRï÷0zĜzÙóyÎ,ó. €€hc|m€>È>Ä1Ä0G‘t R#VĈ¨÷k÷#‹ŒĥsŒs˜Ċ´˜MĠ§9Ĥ9 Íuc³‚<Ż-6Û*ìŽ ç­Ò¨´mtltn3ĥÙö8ö8kÌ÷ÌÏÌVs òw  ËE8÷£ĦĵÉÖ _ğpÍ£÷ŒÊI}Ââsêݧ6^2JŜĵ6ô£ˆp-ĴÄ#$“ñŽ²[ëà$rĵⵕÇû [íRˆéTUıÀTq°ìJ ĊT3F•;Äï}ÂïİĴ9‘•Z:3uUj5.ݧ~–ÚšŞa”…jdïíuó{>àg÷Ż=wċŽÚÙóV쨭íW³àİ=PħÉ´Êé?n²ÊiĥyëKŻ˙)ô’ûáI cK|‚xÔÈˁĠdÀÀÊrùê.R𸠨¨Ĵğ.YYËÊUÌd ZV.³ö-ÈĠgכżŞÉßց|+/udƒĜ…ŞÓèħj†ê3z@žšeXs> 4çwĞ÷8ġ!£²b(” ù$µÔ(3öħS'y­dı4iLoı‡j^ĵL‘ w6²f'ĝÛjBžƒħĴ‘Ċ´ê|SVPja™´_ċ¨àXœÔCÁRQLĜdL²ymQ!}k­(C K†dġ`½”Ál2+eLÁZHĈ:HĈzGŸŽ•§iòy1}^¤ċ-†+d§ġÒ7)§‘ŞêĊġ–éġ¨ĥ/š2¤/n&ĥ½Cلµ°Nê骉œbÊXĊ™íj+_EAud&s*ÉŞġĥ° sŬ2ı!ê6“ÛTÈtWHA=$1]di,g¨cŞJu›ÇŸeüu ĞâëÔ?17ê5™¨è:AšÔ‰gÈJÀ6 m°Uċ y²Ö)ğá~Xy[ùXù OÒu)fÂ,+yšV°¤àXÔ2˙7-ûĜ#×[NÖʞĉiôrˍ–½,ċSDY2Ùl½TĤĞĈ7›ÏNƒa-|%-”Ŝç6ŜËójŜ({ä^òż(‘Jµòız\ëĞ×êß½Œ™ĥ1ĥ =Á>Ûŝèıs¤˜{HıÔHfq79‚û³¤ 2ƒ-³Ŝ܇ħ}¤žì’)]ÁóWI‰œCĉX׳<ò&;ˆHñ„ ˙œ–Šñş:r_INËéä´ò5éÏ—ĵŒŒ ġñĥßCĉH—[›­ë”3䈔CĈòfĵw+Îİġ6êİ5û<äìûITC?.9³kíŠöïŸ>nŜgŸ­ĥ~¨Ġŝ“˙78…endstream endobj 189 0 obj << /Filter /FlateDecode /Length 166 >> stream xœ31Ġ3R0P0U0S01ĦC.=C ÂÉı\úAĉ éĊ\… Ĉ&`9ˆÍ À*œ<ıô=}JŠJSıôÒ\ú`Ò)ÀYÁKß%ht,—›³³`c£ï­  ”qÎÏ)ÍÍ+*ĥ³òtQP[xò!~…/@ß˙Ÿŝ?ß ˙·ŝ]ğvÁ†C‡ı˜¸\=ı—=3äendstream endobj 190 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ]O1ƒ0 Üó ˙ @€XèÒĦUĠöÁqPœ(„Ħż/ ĦY:ߝ|–ŭġreA>‚E0–u Ù- -‹²m1î,Oœ”²ż)˙ŝx‚Ġ@fw5‘|V§s^•[ĤÙ+¤ x$ÑE×Ó bŭ'íÁìÎĤé2ŞşĈì?”M%Ž›€KÄ17ÍMRËô{Ĉ;ŸR°B|F5S|endstream endobj 191 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 633 >> stream xœ‘]HSqĈ˙Çí|dK›uJ ÎR‹şĜEZ •¨•eAFXvaĤ 25-×2eNYéÙ^f–İÉRĤNw#”¤Í/¨À.Ô%Q/J‚ËĝŸñßEÛŜçĉ½yž÷ċ÷PH€(Š˘/¤\ġ-Ħ`pƒ;ƒ•TÊz·2ä³z,xx/ò }.*úä)„"Pڇö#1^7R"+Z ’İ/á²äî ߒä$;%Ÿu_ĉĞ^‰ Ds•‘{ÖC+‹ ™§Óħ.Û8´‚ şaDUEJ읚ûvpB=ÔÖ5ÇêPì`&Éñ:Tƒ%Ĵà& :vÍV 0é5NûMìU¨l0ı82$7ò8˜Ĵ˜ ı $Ù%½³SĜ´ĴÀ³n5ßiİ)²²ÓеĤ;9Ï 6G4i…\3h[‡aŻ6`ŸœËjĊĈ~/ê;ŜÚù-Q;X˙K{q&ßÒ<$µ4}šš™€Ŝ}l‰¨‰*îDôí·OšŜô4ŒƒIpÎÏ:F€Ûüy>’=B˜*ÀÂd ÄÉt>#>2§›Jžš  8rÉ÷ĵĦ{+ÀŸéjagŭUàgxƒ_M ꤜ´‰öñ\MŸ£]réÛóŠ K³µÛ)˜Áa›?·VŻ,mÓ,wÍ|…n%j*ò™Ô„GYG½Íٟ×ô°FšX²µ×ħh>rñŜ]c™Ĥ _oıV]b5[Ħœ36ÀkÁ”ä /Áıo YpâíÜPnµ+2çÉĤu¸7ÖKŻ"^ë_/S^ĠšŸžž_ökV˙Iál˘LóšÔ³AB 2Ĉڅƒ'zendstream endobj 192 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 774 >> stream xœ‘kHSqĈ˙gsçü­Ħin”]èBtĠŠúĊ0+)ÔnKÁÔFAÙڅlsŻnhŜ0eĤN›NЃd5ÑÊrDQ}È˘¨èBa¨xüƒÚzß/ï§çyŸß‘á8N³e×Ŝµác&˜”ç ŞAQ9Qû0f0úú~ĊÊUĞ×ÄKĤ’iD$ÓÉL"„HI!CÜCµS%+Î(AVĵrŻ—Cß[5²‰hÑï€))y>äĠ >x#íôOıgâ¤,=?äƒáŽÁ£_;OÎâ .  K}ÀOHŜËÜS$XŭC­tcŠ˜—šmI§­gKփ(KáqÚÏĥ÷Á˙,żżgžPŒašgl6WĴ]–~­¤ĤġRċ‹g:KÍ÷Ż>úkxú­6oKÖ1+°Ù\.ȟlçC–ĤË£( .€ÜŻÁ÷ċ7ZP­Ĉ›ĝF|sgï|ĤJÚżÙWq÷Nö\Aí26ç Ne/BU*NĊEß|{–úœMöK/|Á ĵ˘/—0-‹\™ĥ.+`ñúÚğ;Š éĉíPt hLĜ—żda‰î¤ËPj›Ëê‚Ó´¸¤˙01FVÒ½œB^Ğ•û˜ Ê,RÙ-4Cċ‰“N‹]bß˙Ôè1¸!ÄÓ/êyoÙgw/ôÂg§×ĉY(ÄCm@÷RHPˆì/kŝçTh'FĴ 5CĈĤïjܤÜönG\ µ1ÚŬPŭ šhÍípşÀa•rÍéĉ iU‡lGı¨ĴĊ:6(œKc•ÛsRjíìíŠÑÀÓ;SóŽèò,΂DHĵjĵÛWV!C-m3µäÛ³Ïe,· cqÒqŒA~ùO&îÈ0Ž…£›š”á÷ŠĈĠÊ#ċ‡XU ċNY ŒezwĤÛRv…ĉıì¸ĉ ïnŞW_sâ-ԇìMĵĠœ–l,\Ì"·³ıÀ–R;ìżĠ7ê¤vp_Ï×ŝ%MŠˆ÷j# ùHÏw endstream endobj 193 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4037 >> stream xœXy\S×ĥ>1šsŞE<;œœ‡V½ÔÖŞ´âÔ:+N(3J˜Aœd%LaPĈ0¨@™¤¨X[ÚjĞġV­·­Vû´ZеuŜĉ½ßŬ µµï××Û÷rò ù#kí½×÷­o}3t#“ɆıĵµvċË3ŜDßĦ?iĜÈÁfh㣝Gáëö7ì:Ÿd,ŻÉA‹ƒ]B–„GD.Ûċíı×ËûmßĠ~ŝkwí^  œb3}ĉĴżOÁ0Ğ'f5ÌĴaÖ1“˜ġÌf#3•Ùĸ1‹™ÍŒ ³…yƒy“yžY¸2³˜Ì2f³œYÁĵÈĴdŜbŜf†3ÌHĈŽĊ̲áÌşSf(“)³“…Éâ?äĵ|‘üÖC³‡^ĥUñœ˘•M䜁{Dô‡oŜ=bÚ´QtYj;Ä6ÒÎÎnċ“Oڏ´wµ÷³oµÓÁIRÛJgÀ$ 3ĊGá è{aŒCŝçĵÛ÷^Á–U‰e·Ğ`™ d;ô%şNè„mĉ˜“‰uƒ0š8\Ï—PÜQS°fÂÎ%qÁœVápñK&¨†)Ù³ı)[DRúż&ZĤ‚vÑĥ?Lĝ‘›L£é+sëúÍ˙ŒÈ "q#—ùmš³ˆ•¸†EîȔ·ĴzŬY´•òT5ÒT£Ĵö*6^•KѸ‹Ç1Nˆq˜8ŽŒ&ö&£:Üğ‡v‰"nüf0F mÑö@;4AŻħıûXQ#ôBs@é x€/Ĵ Ûĵ}{”pĥŭ1‘Ĥŝ&Yï})­Z.Ŭ—ŝ›0­=98²‘ĵB^$îÄç‘Ù¸çŭˆÏáy)IZ1™L'6‹œ{‰,ëÁCXË{ĵûÓBòR¨×W Ye"Ĉ³ 7!E­NJ(ĵd£ §§L15£^ÀòĞcĥá2ĵΛO(mîÒéY„! ×9óÜ}ŞÂĊĝRC ç:´*ÔĵûcàpıcpԔÈ ›#=}D‡C},™lö\vêNqÀ˙ß+M|Äħ‡ç~caĜÜË7ç$TZV£M€p.¤,Ĥ˘Ĵ˘¨>°Î}•‡Ç[‚…BX2ŝ(Ô£/uQ¨ÔöYWŠbĞó›(‡fSu˜°Ŭ,q7pK\şŬ˙*?pêWj”üJĥŒ(nGá[hP[r°/¤šDÔÜ`ïäĵ$ÖàÁ`ĊKŞ€İÂ,ÌR Rp”g€q]1¸…­4Ee”^(—™ğ1[Žw¤yĵöiHˆ4š¤¤Ô4eı2{…×q÷b·€ÂŠHÑĴ<œÒÔx@]“—lŒnÎDˆ›úġñA§ÍN.’÷Šd4I†lä ™_•ĠâÙ6RLìZϟi‹ŞŽĴwòËYTšµ¸zıúŠ–o‘Éy%L/è •R˘rJ(N”Ù&|Töó|şFŽ—$gŜD&àÊ`Vû²żóT5vÔ²d蕈ž3 žzƒ7°‹”~~KᛃÖħ”I*c…ħċ7ĦĈá|~öĉ.ݤµ+–L³@uÔ³E2•…ċàÑî_ĠœrŜ…ŠÚӜC´îNÎfb]“rşDÄ_bĴÚJ 0ġËLèä#Ŭġ†/£Iáİv…ôqÏ •ÒÈ~ĦO³ôıŸ&aĤT4gœ…Vúœ…f+˜aì|Ħ‘Ĥ<˘*“ž6ÉJ%—"òêlM6äpUP"˜Ĝší‡ ³&f; Š|q"AÇìĜŭê\ȅŭúœĝ,^q,ën04è8¨v ƒRĴ·FĠjìƒPHÔjÒUN$ˑ6ú/ËöŻ‘÷Û5üŭĉÌ2KĴ—ZğÁâÀkpĊVmaDA˘&Uò<ÉpœˆĠ´™3 cl•I_E÷¸]í ħ ¤{ Œ¨‡Rm~\ŞÀ Ô ISv.‰tœŽİE´w3ÇVħžm;=›]+v ĈÑĈÔv!O~vÌJÈH,‚"ÈÌÏÌğ‡$‡23UE0ĥ2ò2ó8‹£ÏX{ĞÁ8ŞġÒ֛8˙Âùš1[UĝŬy>Ë£ÖŻ8c_ÑâÉàġĴ 6ûùAgħ€.,@³{³ïĦ­E›{ùMʲ˜Şê’ÒŞÖYZħşŞ3·¸î^Ÿ9ânÖĦŠÙ Y˜ĥ4ÀĊ?rxqsè_Âá…5\Ò'üԅ;ĥí0û¸÷Sœ‘M%íˆUMd…ROa$Ÿ’ :úè/}·żÉl|ßRĉ u=¸ì}Tĉ"MA2-sl’*-uĊЎŻŬMÉĠè!g,ò –M¨ÖëZŒĝôšöĠ?Ŝ12t²È°ÍĞÖjöGÑΨ†Z¨‡zmŭ Ì…e¨@ĊĴ°è`İŞÎXwy˘cI$M– ŞÄĝp- jÑWêZ)<½pÄJPÖ !²†lĴ2iœ}[¨@˘‘*ô!ŞçyJE]~ħı½Ğĝ0eöÑ*ŞúĠÛR7†zEx*7‚;ĝT†7Ċ•Ñ”pIëyӎcÁÇSmûÉ÷ˆë6˙p‘Êŝ™_dÛÚm7khW!Ĉ⯤JĠŻċ¸ĉS ! ô\•Ê(‰ĥh˘´”fżV J4†œ=À:†­ŽÜäşĈ†ALZż_W³Ì\UtqDĜŜĜ÷ßw?j=u˘RÀeÒüüރÍêǚĜµâïv ĝA:¨Òӓ'’$G[i›Şż­­‘™ŻâŽ›r‰‘ž÷¤GĊAZUUUvÀôÁ›‡çÑÓĈ{Â?˜‚QĴǑı¨U ‰I"–Ĵ unĊÜwq2EÇ邚0:~Qħ§ĴĊĤéçhħħhSĤ¨÷íQşoö˘BUÚÚŞy˘Ü‘ŬSu´ĵÙÔ-ptOµ!´Íeĵϧeğ÷ĵFĊŬnÜÂû&âˆÏÚZËÒZŻ`qÚŻ2'=xĵĥŭùdÎ$-4ÉQĠ?‡O6¨!šĤzUY£ècЏF6ĥN Óî„P×Eçj‘öĝ á&@gµ(°Òk÷'dQÀĈŝQê`ĞĦó>ĊmƒfŸv+lxŬşÁ2߇­!âÀëòí´ĵŝ•¸ÀêtÔgċ’3ĈċYPöşï¨Íħ™áDž$c~š„ĥhÛġ°"'-;)Q’wM˜­Ù[Á³:ÂĵğK{Z8]%Ÿ‹3o×À 8íĦ#£9[t”¨7ÊpĜı›×ċĜc6#pûmW[k^ž&=OHL§C?Œ -ÙkĴ>XRuĜçú×ĉž$öUċeòùż™óxµí_EG}c öÑBŽż§ïË%'<¸û×nßuFD‘?0„m'éÔo‡“fívĈ’1UħA£y[s qw§džHœé¤Ï#žĠ¸²ï‹jLİ–ĠžÄ}Í'ċhĵ1ִݏïΟ½ÜlŽ/6v€ÒÔÉi°—SċDW畕ęĵ‚ÜU~ŝBHıw!ġ‚Ó]\_uĞó+Ŝ'j4Áŝ°vûUïu‹ġò…mÜw×âh´ûİçbsô;•Âş†50ŞW$냲£Ğ)-‹³Šr ¸ûéülĝĵZo>P)•VĠwĤFDÀÔYb;YÀ×£vŜÚî3Ĥ,ê8Qœ÷ñUqò[;@68Êċ¸˘9˙¸4˙ı£ċì˙˙~°ĥĝ+×Ñûmż:Ò¨6a·ğİċ óxëŝ÷Ĥ11¸ò˜ÇB•>·$3W_eÀ]E S^Üħ’<+˘l˙]ġ÷àw—ŒĵB(qÎ˙ĜÇÀ²%úù;°3X3Ú(ÎC½Ofz/ìƒ7èvtútĝž†|à*şV™ j½“’µbÚJe¸’Ö^Uš| İ<élj[òIgˆĵ’ŭ°…ì-hƒÌ¨ËÈ,˘rrWJoóÄÙRÍsSİk-{TĦ6}™î(Ĥ:Ò58–§gîeH‡ùşÊ@eDXPPE˜İ²²N DµYş8˜ÜûĉIdŜ é Kú,é?·‚%²Aé“\ĠĦ`êó ²İ—†í Ùt*¸÷rßG˙!8ÜìŸ>Ô²D`xx``exŬàŭ1tû¤IÖdÂü˜g’÷/ìŸË˙Ј"‘j…8·´§Ò9T yšƒéşDÚ²´ĵğ`ßxÁ[İhÌÀ!V×E˙4ZOä͎‡"³(•Sètı™yúj84EiP!™kġ̖ñ­¨ÙsrzäPöÉ÷ŽŜ¨kf0jÛ#ß=öwȘâÈŭ 76Q ´VĥRwÄ:”k+ğÂu~dÙP† ‘‘ár#uBĊ<µÎs_wIO£ĉDËe§ää_ıˆ? mòö ) i0é ohÔ7ÈÈÑí8_n¤Mô[“IyôäMtJE]”cożoÔꄷVŻâ Y_uÂL!ÀÒV×)ë›áĈ/MÀÎT,ĉ…&§M’…çŭ òZt•Xġ"S-"•ŠŒO!‡zóg‹dZ†ċĠûĤ Òĥr˘´Ú¸$ċ$Ċ°ûä÷(â·HYêŒÔÂpo\ èĝ|Ĉżáә™ú ÈârÒ2SfıÙaë´pg #À%—(Náï𛋠ÀċdeĉŭŜŝĠ Xżu].]´zêntĥ·e µèz&?óšˆíİ~^£ׁuÀ9vŬxñŻbûݏҌï]=ü‘ÁĴ­’ÔቍȨ *(DIGXÈÚ ‡\jóü ÏÒÜmendstream endobj 194 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1258 >> stream xœmTkPWK’e+˘v3ĥÓîö1ĥÊ£Úúì DĞ­A+Ú*ê(“H²òŠQŠâĦ>U˘…ĜÑ*bm:[Ù">2(µÓÑQħÔZµ3½;sùÑMR ŽŬÙ{öŜû}çûÎ9—BÊDQ=#máÂɁݗ€Hµ’¤ŞŒĤ ZÑÊŞé1#î ?û­žX“ÙR0ËjVĉäfèo"”Ž2|ô!z-D™hÒ˘wÑ,”Œĉ 4‹Ô2R":IÊİ"ĥEÜQÌSœQ&)+”·U)ލŞ:İ.FŞwŠÔï~œáWHZÜÎŜ[Ò>9kYI~.çŜvp7^gC~#8ĝ“Ä·"á tµĵM°ó+p*ŭgŽjkGĴ†Èu&y—;°+nÈ.Zĉ+q·H}ïÇN™O,V'Ŝ#*˘JCÔD=‡•X9pĞ9’M’Xmúċ[7ğ~êıp.m\rşVËˤ@Ä Òô+p)`‡ä’E{V·Ÿ+îà8êíûD™µ²Ä”Ç·ĴßizBÒ`ÍPI¤bĥ³³ÇžÎÙo›óžvfεÓ\È$ŸHá8™Ë†ç²÷ğŻcÄm×ıË>ĈU{íÜ>iÁ\kĉRŜÙ´yž#JÚB=À˙B|S>DW–S5ËİÏ ĵÔ_~Ĵñ•9´¸Ċ:ŠZ[Áċä"àÒé (—#œƒË3é"°…Ö„Ġtİò Ͻƒ‚!áä0áGá \ñ^Q!Jݰh4ĜÊ7”mċrK 2žd^tÌş3ßĵÖ]ŝ°´aKßzĝ˜1šòâçe×vre5[ö™Ñ­OŠ´ƒĊë¨rïĉNċÙĝ)ġŭmFĠÁgQ°3Ñħr×ûû •işoßŜ*ıÏ̍°˜€>”S§ĝ°†Âñŝ Ë‚ÁâñáÖ!ŻÑ!l…ÜÔI‘Au’ŭFìôk—ò.^ï9ë?²6–VĥqK³=0İàĞŒŝ¸ÇçÙ eOtĥŽž˜²AŸ‡=‹|z}Ĝ½ĉʑc;ż<ÁíX]‡€é}ş³“Ċ~‘úΏ™'·°WÓŻ’——½ÓMuĊġ<ğáÜÛÁ`úΟǓİdTŒeĤġ¤ŬŬß m>^ïƒ&`Üġäµ@İ}-Tñİ=,Ĝ`mvá'%Ëa 0ĞšŽuÜoĈêÊ˙Äu‰8B¤šƒ ëûùô%‚3ÛµH­">ž 'ħ·â0j?q°…7BÉWÜbRħ†Í\>eúĴŒó7nŠŬ—ÏžZœÉ…¨Ĝ.üĴ,ñ*ŜÛАĤàùlMĊ̜?KbF“(˘ŝ{ ~ż~ĞÖGX·„MĵuÁ°ĉÄĉÂĤ²‹uŝzí¸Ç—UMgB#0SÄeÁm’Ë˙ŝ”Ċ14Žşx§żĉĊ!3äV…èU|…šĕùRkO?òœL íù\CG3(͐ĝíh”qÖȉÊ˙x$…—â‘ ÜwŽm56t£Açħx[=^.†Ĥ,6G?ƒżòށendstream endobj 195 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 268 >> stream xœŝŝCMSS9‹uùù`‹ ‹ ’÷ŒÂ½ıRS34Oğĝˆù-‹ ÷şÌ÷“Ĉìè÷ßâĝF÷Ùñ§ÓӋŬòûßû#ûŭJè÷Ï÷4÷RûÏëüRĝ÷“÷'÷ÏSCJNMûĝÎuĠĝċÒÄà÷²à÷ˆĝ8X—X³‹ĊÄÂĊĉÓ½v_ż›âY¤[£0‹û"1('rc­]ıOÌ|´™‡É|“‰ı}½_‹MIRM2:?ŞL{4íNĉƒş‹÷éñ÷÷.Ġ@ 7Ÿ ³sžendstream endobj 196 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1352 >> stream xœ”kL“WĈßò–îĠaşŞî}c:Q332Íöp /AÌÍ Nı‹P-”ĥ´ôòzôŜR „r)”"ˆÔqq^Èdş%sšM?l˜lه%ç%ŻVD³˜,™çÓINrŝÏyžßsX;cħXœĝƒİIÍïĝ ™Ï폄(˘Ĝ†µœw—?Z6µtô-l~½yĥ¨DPZ–yúPn†%c‡°,KÀâ°OħĜ>ì ccĴ%,e'B„Sx€½†ŬÙGиô}‰ŜäcÑk§Ĵ·q´z€§Ĵ5ÔUVİ­[çn!u.ëĠ&ĞħÇyWßĦµt޵µÙl==׀0ċċ>É,ĤSµyj”iEĦ§ŭh“ĦE ʍŞ\AJ³‹v§Q'nèhké6ĥR΋!„81}*¸7ŝXF~1)ğ|Ĥ=ò ¤˘ê´(§&”„Ĝ zhŬ:ÒŭÀĠß „½YVP(Ö().íYŒ{Èq§¨“÷4ùûíÌ f³ŽÙ37‹V˘·Q4ZG2fĈÊËÉhû9èŝ;x›êżÒ=Äp_vbN%I˙”Ê?z#tÛoQzïÚġg“5Ü OaáĉĜGqç€:ÑM?knÍ iÚĈAïĦGĴ‡‰ÓÌ3@€ì —*A­ĴĦ˜5ς²…ü3à‹Â‡2ƒÒH À`S‚R Àċ¨ġ:ë[‡AoÖB£ÖF!>=Ì3Œàb–3=Y–P'ß|4•’ˆÓOîÌçpÑôó4;XhċTèŽÎá<{­£\ (/)ò*ÌVoÙòĴ”÷ŸŸCï5û)k?4:†zgW›ĵĉ.pŭHy…8•£¨eŞdüşr™*ŝŭäÂŬħI|sËϳf½™˜ÛÂk²44BXdBġzÙêjTB"\Ç(ÔÉ4 PV“̲gÊU9Ö{òúˆğße"Ëä+”nŻ,.yGr1;Öµŝ„ĜŭCendstream endobj 197 0 obj << /BBox [ 1030.43 6558.6 2111.1 7015.75 ] /Filter /FlateDecode /FormType 1 /Group 39 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R16 15 0 R >> >> /Subtype /Form /Type /XObject /Length 105 >> stream xœÌħÂ@ DÑ\UlL $[ÚÓU@Œ ¨œ1ƒ hŸğ˜Ÿùoq[Mc3K ·2%ÙÔsÁñÀ/q̎}rjĞÁÚcx6íGh0‡—çIΛûG|Qö*|Ċ0Û.˙ nr•_Şendstream endobj 198 0 obj << /BBox [ 3249.08 6564.96 4999.61 7022.11 ] /Filter /FlateDecode /FormType 1 /Group 39 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R16 15 0 R >> >> /Subtype /Form /Type /XObject /Length 108 >> stream xœÌğƒ0„áüŞĜĜÁĦÓ½¤ ˆW€É˜1hсçÏvÙ/iµÎ!<Œ{@Ò ğÂ> >> /Subtype /Form /Type /XObject /Length 156 >> stream xœŬ1Â@ {żÂ5…ħ}ı=ß ¨ /€PĦàûä$‘àh K£Ŭµ}#÷p)™‘ЉWŽ ‰jÜeSçñÀ{’qÓ8WWİΨ>ù/äYM:Ìä<“˘Q4âS{IŒ0HÂÂ(ËŠM3yïú&s*YR–Í/ÏgûéÇĠÇ­{w2Ô~rSżù›/w´'Ħu_!endstream endobj 200 0 obj << /BBox [ 3142.32 7170.14 3226.57 7254.15 ] /Filter /FlateDecode /FormType 1 /Group 39 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << >> /Subtype /Form /Type /XObject /Length 114 >> stream xœ­Œ+BQ D}WQhú}÷vè‚@Â3lŸ6A"ɈI&gÎ L\ɇ &qœN–Ŭ,ħàvĈ>ħ³]›Oâ,~2yàL µtGཙI£œêFݵÜ~ü.;¨’sâûë?ì˙è? žœ,=endstream endobj 201 0 obj << /BBox [ 2125.14 6421.37 2209.18 6505.36 ] /Filter /FlateDecode /FormType 1 /Group 39 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << >> /Subtype /Form /Type /XObject /Length 113 >> stream xœ­Œ9A sż˘ckìŒŭbĜ`_À›}f%BÔYİОâĉ[µŽènʲkëDRĞÜħœ0! 떋¸7×\ï54}XJTn_šıŝÎ1רLĵ>ŭŝŭIòhC+éendstream endobj 202 0 obj << /BBox [ 419.781 1232.53 5610.23 7949.58 ] /Filter /FlateDecode /FormType 1 /Group 38 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R16 15 0 R >> /Font << /R47 41 0 R >> /XObject << /R45 197 0 R /R50 198 0 R /R51 199 0 R /R52 200 0 R /R53 201 0 R >> >> /Subtype /Form /Type /XObject /Length 1114 >> stream xœĊVMs5Û,K†-B „Ż$ˆŻŞŬ*ên}^)(޸ḊÎ Hr°MĊĝûtK3³=^û@*Uĥ;’ZR÷Ó{OzŬƒ#g"!˜‹öˆÀœ÷Áıùw9ï_ġż™ËŒü_½ì=›R2€„6 PœġÁÄÉş`ŝê_ôżöŻëÚ֓‰!d ¸ìlŒĈ‡d! ÇY÷é ÏŭñïiĈ˙ÏÌùçÌdú=üüqa~8• ’Ƀ9}ÁuÔÀÙd41GëÍéE˙ûş;Ĝ€u.\w‡Ŭ‘4 żîŜéÜ(ĊÓş{wlI%Dzî–ĈÂ9Ê˙^wO‚š$ͅÄċD™çŸ]ĥiÙSâĜ÷7[n˘ÖŬJŠÏ…–†ÖùP÷<ğš6=ğĴSB"Œkx~úKÑb‰Álı‰‹ĝSŠĝ€7Ÿ6œöż/Ġ /-ıµ1Ì)\ĞA'­Şù°ĉÈXàġT5“- bK%ş2¤˘ĴûC49ŭ³íԁ3ĴğšÀ0ċ£ŬB:—Ġ÷B-Ş6Ğ€rgÙCt„qëm„LLL´>ċ0äŝI]{^Hċ~Éi.+˜8׋y¨9²½r>­°Ëá:Éċ3´fԌú4tyşlMŸ£ZÏO§Ĵ%QĦgh3ë/z[X€)8잃ğ r)6G`²m0üM‚ŸWĴħm£C;/ió_šë›(ÜĈvrÀAf0³²ÀíÊû;2ݘX‚Y*â:M8è-Aİ<ÒáËîXÍ:•†uÎ*›‰í¨VšT-Ìs*<Ú,yî€Á ‘F“*ı²BÏĠi1ìBV3MŝúrpˆVĈLŭŞ$µJ[’ˆ{3ĦOÁ+Ÿ`–YĥˆÁĥò“ QMNb;İ`ısá…r­ıòGĝFtrĈ2Yx+jrÄVÓÁ.aYµm†ĥĤ*ìp.Č6ñµ °›˘ÍX]\–Óê‚Ĥ§'l/˙yc•Ĉì7˙z;ùıǂœ*ßa9YƒëÔs>ġ$‡Ñş(=È'—3ß ULŒ.òáèžü›gÜkżgšE@ġŠW+1ğŬ_Ŭġ³7µXá…W/Êh!_Uú+iÇìĈ v΍Z fħˆ Í u5ŝBñBÙÏŬ8螙ËÌÀğo T!0˜MBĈ‰q Ù2‡qAŒÖ³ĉäÀ˘!F“Ë›ì-*òËR‹ŠkxNŽ˘dLœv°Is˙1UìF…Ŭf¤ßŞï&½ˆ‘²aŠf Á8ԍĦcç ûğOtëĉe@Ìl~cùÄOY?šĠwíġèÚëí{ĠÒôz²/6§÷N a—X˘‹;„zSn>Aòb;ÑGİħôÑĦÍ~êÉ\ BšèYn”*iĝUžIàÑ>Ew-rvìŝŽmsïÖϔ%äSI•FĦPŜĞş7Ċx(mendstream endobj 203 0 obj << /BBox [ 1030.42 6321.21 4999.59 7330.46 ] /Filter /FlateDecode /FormType 1 /Group 38 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /R54 202 0 R >> >> /Subtype /Form /Type /XObject /Length 59 >> stream xœ+ä240631R0362Ô32T0ĥ4³Ô34S040°Ô32S(JUWÈÒ25QpÉç ä ä ‰endstream endobj 204 0 obj << /BBox [ -0.14 -0.19 5952.96 8419.13 ] /Filter /FlateDecode /FormType 1 /Group 38 0 R /Matrix [ 1 0 0 1 0 0 ] /Resources << /ExtGState << /R16 15 0 R /R7 6 0 R >> /Font << /R14 13 0 R /R17 16 0 R /R19 18 0 R /R21 20 0 R /R31 28 0 R /R35 32 0 R /R57 44 0 R /R58 45 0 R /R60 47 0 R /R62 49 0 R /R64 51 0 R /R66 53 0 R /R68 55 0 R /R8 7 0 R >> /XObject << /R55 203 0 R >> >> /Subtype /Form /Type /XObject /Length 6205 >> stream xœµ\Ks7’sóúĜ½.ŭecǝÇÌVfÄì=´E‰ÔŠbÓ¤dYû ĉgo>P…ERĦ™AMòñċ‡D}ŭ"n.ïÏÔĉòì—3­6ĝŻü÷òŬĉçg_ż°~™²ÊasŝúLs“Nn²Îm˘SönsŝîìÇíwjRÙ¤¨Üö <ccrÛğŬ^MQë`Ŭöíno­™bÛÓ:ğ½À>[e<Ï*{·Żg›Lˆz{]ûûıĥĝ ^|?S2Û÷(H2IİöyŻX¨¤ìöŻĜ"dí²…Î—qî°1ĴÎÍl;Ĥ]Ŝ~ŞóúĦ&Ç>Ŭ™8eWĊĝ´KvÒY'Ȃ@~û=uMôéíac˜M~{|·ƒVy{żûŸóïa‹µ“[lmœBH°Íçg[ğ;˙ß³ïÎÏŝ›ÄÂÔÌ&X£'£76‡<é/Ğ<żı{µùÛĉ:ô~óÇcye¤S퀋Ne ˜6A)¨È:ġ †qĴÔ¨KÚ÷ş퍅µd…ÁuƒĠßêov{ç` “šöuçB6Û;ìĤ@cnëĤ]Ójiç£ ü%6ŞvŞĤœÑq{¸,ƒÒâĉöAoŸss³Tž#iDĈD#÷íˆuQGè8PNĤ˙_¨ı °ĠRíĊ@÷Ô"'kv˘mŜk ‚™¸Ù£°!{ÜŜ‹ıÂöÀÂù@},Dù7ĵÚWç@ "(,.ĤġÑÎE\Ü("*Vv =S ³İkïÍö’”´Mmŝ´Ş>>ŽÔ'G܃ĵñ.fTŸíßQ{ż~aZÛ“g˙‘wÊä=mI57ZÎä-2ĥQġí Û /ÊÑşÀ–쌂9 ËÁ<áy\TP°D*èĜĉönSÀgá'`ĊL‚“.J.u£ĠQ܋à·sëü3(K£6˘“›Ĉ?Së`,*Êç`‚óÏ>µIt"u\ĝİ7ÂÜ~Eݳá):˜˘ibAšÏÛX6 ŒÍɎߣsÖ„ĝˆŬ&eryċóM•ŝp['µâ„'zYÇ;’d•|pÒŽb•îyëlCşŸçHp‘?XŬŽxÍsM*à{¨\èr`Ygeb3Žh•Bşâ'`ġ— £œµÒQȟopœr֎\† -ÁmöÚNŜec½[‰s€ĠŞ;%“UÍÂ`ş1öÖ[ħ MÛ]‰¤ _Ç[œöä£÷ko6!f.5ö’{Wڒö!Ħ^}â ˜ĝy .p°Èà&´t˙SħôÖ%íg³7£Ĥ…{’3úN8£ßÑ4A"İYq3o(܁ĥ¤,ċWš/¤@ĵ÷cï£'í”ŜÇ'>  ĥġÚ@ŽAZé=ŝŒJlםβAòEŠ:g’ÜĞ˙;† ¤l74¤²½ ĥ|é"tëqŽ+Ñŝ@àe(î}y4ċgĦ@˜oěìçÀjGmBÀŽZZf#ÔüHDĦV­o"Ğ ı™ñŜ†$ 0‡×$ĴI ÖhVôsvŻljÁ,Í  †vM W×Mìì…òìĴSò-ÑTŠr°gIidÇâUjŜ'm’^(àá-le˘Ó˙TóC¨¨À&(ZÖ˙j§'Àğ&’.Àğ.ħ_Q°BŜÖĝ¨2 c˘ıñè@Ż6z€ŝ³Ì8;ƒ9‚ìÚ>ë“@ĵÉ(dì,Ħ GĈĴŝ5hGQ4`\a€–_¨QĈF[×xÁ­ÑPW`ĊóŠošÄe /Żıs„˜uQF— ×ü_‹*5Zùm &cĥWÌQşùĵd:vĦ…Ĥ› á)ĉŝ 4³’¨5´ÄŻ"\ïIO'r1ûà-’lÛo1)lP“aIĊĝ|Ħ xQl^´Qbn3;ıĊÉSÊñâdo¨oÙI–-hXFż­Aċ(@i"Ħ]e–ĉ—ÜwfJu~\A8żìvZŒ¸’#/ŬÁޞ0nĈènPRmÀKĝ&Zì df™…™Ò>Ir·Ç †Ĉv!zĤÙô¸qĵÏË{…S֐äìJ†jŒï˜§Ÿĥ°^0 ¨âísÊL‚‡uùĥú¤Ÿv0@.hô99cœĊí£÷Ħ^Ô³ÉTћ]î|3´fĜIıˆ5Ÿç•oŬlƒÌqĴğ„~u´ô+/v‰·½ŝ9@Sß7·ĈŠî<h͛ÑE¨Ek_qHÔ§—ó{VxŞt=I)Ŝr<Ír,;’™ž*],Ĉ°nµ|А\M¸Yñêb‡ €NYÂièÒS€ ĥçĠ~v"ßw´§lGöv•Ì•Qе]ÛIv„šYT)…B}žžŬ³ĝ ËÊOT-ĠÛöħĜAˆÀäö+èĊNÑ<Î2B€oĈ˘P`Ä}Ìi¤‘Kl‚&6çS/φĜa&,%—|Ċŝ\§Éz‰{3DùâZˆ‘=²=!áž{1nD?’tDĤĠEk²X0üšM~,1ƒ'ÒrŠìö5fäöùĴó·Ż1Ŭ°O'ŸfµÏ. |ÀfÁMWˆR¤ĵ½„ÒŻ—š[şŽ’œ~[5íô˙=f+sÔÓ#§7Ò]™ÈÚEHQt¸Q2/fÙEX8ì )żÑUPPKÍWcƒŽXZdû…—RC?iç*ÄİşÖ0ìXÙŜחás OÑĞ£YHó¸ö:ĈèN"maïvó>7×8d@f6Ïô˘%Ĉ ¸Ê·œŭĦ¨œ\<ê@Gr1Νî˜H´•¨gƒ8̟NSnpM]0ĵ…tI~™Ï¤$™Ml›4î”éš‘G£xóŽ•Ż…D×Jž§K\żÀ…A \!z’™ŒWĞ$KˆZ*~f ÄbÈVİ…áÙeS!4:JkÑÙ̔ġü³jî<™”^H!+š˘Œš¨ Ġš)+pr–zsŝ—³óŭqû7Ê  mŬÀ9/tGG¤`m’ÒİSó틚żJĵJ[ ÉMëĊdĥ{@ò°y‚^ŝ,ĴE›ŝċ z€N ÏÙ´[ ċ§omȽÀ2<…ĈÌmK}ÂäpDžĞpĞ>_ÔğCH\¨ssĈS3Ì.+ŸJĈ^W8Î ˜bèŠQȋ; ´xq‘pÎTh—+öSNö˘ôk9Ìéç]§9h:™vpsż*ÌİÍ7 ˙Dĥ‹ñL‘żġħŠÀòÏP„Š·J܍ÚġPDò_0Oô\ċì:ä bqRŽĊSFÂtÜK…,ÜÜçùdžS)ˆĜ´H^Ĝ드žP!’nÎfdH–4ş/DÂ>|k,‹T= “ ıçN*¸Ş¨ pıf™vĴúC‘WĦKÏˈ’u•r‹ÚĊ“sżQċ"Ž‚g—#²ÓGPR?8ŠÖÜĝw£ïíôœotßW/”ˆ}iBtz8µK3’ÙÏ­ċµċä6Ù&Œ6¤0éÔû Zïe[üIĤĦʗÇ]2ş4ġÁC,qÁ#úž~úüzP£è0öéôӂ8 ñ–ÑñbÙmäÖ΢žĠŸoĈĈ f? ż S““!C´³BN;”($ĜâÛúxWġñ½üu'eÚìٚÁ óeôèpMŒ2i•œQsƒ‘8ÁkWeîY?€öŒ˘TĤñŭÄkY<Ċw ġc‚ôĤö,íٌöŻğ$˜U?˘†6ĝĥ-ĊXÔ%ZÈ âar4Îİ(•×-a·=@™Ӗ>&<‡Öh˙\‡D^N"W<ĝ—ÌJD´ĝıBĞFşŜĥˆ×/ž9Ĉˆ1*Ë -lEQuĦù+"ˆq:*$%żŞms‘Ŭ zd’)„)Œ˜ĥĥcÄöĈeJjê#ĵh9j ĥËż$Yƒ`E äÖ5lˆÜU–ÇŸfc3~2^q­qñW] BĦÒüûqíù%*.dÙÈR4βĝHħ‹t1ô•ݽúKo1ŻX|1dü’2„• LpòjšljÖİl)&BcžŬy‡ÀÙ6tn{ô…kĊ…ıÙî‚êäX‰c”TÓUç“ÈkFU­Cd$Â$dÉ'™zôÜ EŸKNéĈ'Żê€µ ĥ”gjÇ*úĠCíĞjƒ8ßĴ‰­yRA"6ö'¨òïۚxKdĥž›/ĉ†ğžÁ:ó÷“áŭRC’P1™Òµ'•"›]Z×Aċ SÁ?öç·'nä´4cetô˜Ĝĥ ıġe™ö¸Q31/Yp\´/ĊÔD$™ê·´ÏĵI` XkŠüÉşâîëĈ>÷Keŭ-Ç@:6˜.Ŭ˜‰ šz’”RY™ ÓŜäĴ–‡Êµ.fvÖ>uš<ĵ U7Pœı­Œ³f˘dёC)™§WâT8µ—‡<˘ÄT4ħúO'~ÄÑÄQèşTë’ü†Räğ€*ì*ˆWëŞÇPsu‚%Éĉıż¤[VáÔ)ôç¸'óéĴT†šħ‡Û,4A*èN°&l1+'ÖsóµS’†¸ßñ¸à.Ù\§ŬVÏñU›>+PġÎ:J4΋Ñ@ġœ =ĤċPK&ljs¨ĴM(9=ŜĠÇc}|/]ÉĦ‚ÈÏÜëŻK*GFÛÜ´Y‚X54™Ŭü†ŻYRŭ†²ÜB •260P\\”YʳSt¸~…oy0Żċˆvtú†-3k8ƒqáà‡´?‰3Qj…z°~ż”3žÈȃ:>?Ìĝ'>Ò}ĥ@Ëô˜Ñ˜&öĊ’ûQ™ċ ùwUlËLمQ@gÌŭ}–˘@|¸“roš‹Ü$iDÂzD21ĦŸë‡úĝzĝĝj(XŜ‹ÇÄyÂ4Q5 Eúö=:aħ+WĜô>^ËâôÏ­"wVCŠZÍĈ2q+çğ„ĠħP˜Ż`ßÓ$y_^ƒe­_Tï"älŭ¤¤ )_SÌ=çèĊaùR¸°‡Ñë7i  ĥċD‰™÷ËÔC׍Q‹3“²nóO"~MŒh”@T›şŜZĠžÙ`›”VÜt8f:ÑR\­A-PĈSÀzqWÌúc%ÖM8)áĊ‡Ĉ÷ü3܆íf¸ )„Ż›8:ŝËòiA•—†`Ĵ˜ÂŻ’ä/7,ĵ-öç'k…· :OżVH5Şñ5H?*÷`/’9n9šk$ô êb†î–bĚûÜqĴ²Ö[¸ĥZŜ ş˘,N£vħúçT/Ç+‰óìH°úÁ‡.C–yİ`”jÍ\çœÊ ÂCıÁÔüÁ˘^LqٓœÑRÄ_mħt VPı+gzĞWo–½żĴıĝ•ĵô#nÌCµëIçé—gÖžÛϲbÊŻdtöxZԝ²ÏE@ĞW&†ëv}UÀnħ|'•:F%gçËç%OĠ½KŬž‹7NÏTˆéiı07÷†ŸÇ„#Ìĉ¨˘°œ¸@ߘïDH˘Ú;Ñ3ɏ­q}DŜ8> [yï xNú9N]éïêAÛ7Ml{ĴÔ²ŭè”WĚ?Ÿş{ QZÌÛ-^yOHĴ˙~·0†żßFK ċ`ĈgoĜt)Ĵ3ġ›9ß7g!Ë Ü_ÉO(“ğŒ‡‚ ‡J?8W‡\–UGœxí„éŜr5ì9­NöÚFĤ·ÊÈD§–â0\µòíŽ8.ÚÒWĥF”qŒÊĊc .ïYw\ëòü+ZÓW`5Iµ`êš{Iĉ‰ÖxXìdÀġ’B/S°-Ú‡}íŭ€ Bħà‡îçÏTç³+~/SPĞUß+t‚\ó&hŞħë“ۛ9$wP–)ĥ Züŝİ==>¸ç 9şÉÏċĝ…$v˜@–Ï/<Á7CWLñyŸ_à9(Ğ×I%ÙġìñA˙ĤÔš BÙli·5 3éżWè´á9›2µèúaı‘F]H­áLR6'4äXŭöÑB™ŭ<›– ŭÇĉMnZhgĵB‡1Yu²­.j)mÛâÜĤÎûòCjí·\*"lš mĦ8ğZ)â“Ĥùlq‡/—“)ÑTJ%ëûÊûÊÏóÁd^ ‰”B“Ô~ĥ„Ğ?#üîĞÂ2­Ŝƒ•ĠSó)\˙UZâ´F¤>pÔĜœŻ•ž|] 6ŝµħ²Q9GİĦúp-â.ddȞœÌg’uÂÊ]&,"àf.Ç4‘S‚Şüâ)~< rêgàÜ&ÌYšIÛÍğ3!›C˜ı>ûa5a jƒW=bnxSJòĦ´ kŝ íÍ&Aß!yŠĦ=Ĥí-ç-ĵF”NZ@Uàè È63h<Ċ‘—ïğòzAJ…Uh+ <&˘ÑäÍwƒU7‡•—gtœ”1eüf”ŜHö!Fǟ#à§úÛqyş[žŜ,O‡ċézyš–§çËÓĞA/÷ƒ1fÙ.jtäG Òá½-ßk*íƒlŻ5(oî.Ñ·]ĉ ì´’&z3.u† $tĝUħX˙ílôëÎMKŒ,MĞĵ£Of8*ùç>ÉUJm .”MŒÚò=âÓ°.:_¨~ÍŬċr+Ĉj……²·˘ŜÏßĤ-–dÓ-u×ÑkŜĈıïKñ,:„¨X–:5K!ĞĞ÷—Ÿ³˘ûTì{4ƒâÜIĵrŽĤd’ĠAŻl> stream xœĠ\IsGvcô#>4lu9÷Eĥ!…d[ĥhk4pĝ ÍĦ €Ë@C8Úá˙î·deĴΠÇáAĊDV.oŭŜRŭËħšôħÂ˙Ê˙ώŝöÇxüòöHż<úċHӏË˙Ύż>… ÚÁȔUǧ/ŽĝM}œ`(+s}œ²wǧWGwrúGxÁäî§'§ĵtz~ôÓĉǓ­šĵÙéÍ'jJÙ¤œ7oi8çèÌf˘'Œ÷›;5ZYĊè×8Ş’IÏÍğ|Î^Û¸yqò‡ÓX-` ïì|€/NĥÎÙ)Á¸;́ù:oöw¸`ĈD<ÉÖÄIé7g8Û&˘Ŝì/Oĥ֚ އQSÈɨGĦ­‚áßÀp´:F·ıoŠnq ț×8jlLns=_Áv4T7+ Ìߞŭ™} öRÎ˙ Œü§£¤òDĴħ&§ŻŽĵħ0CÏ—Gż*³”CrÇQç)ĜŒÌŝió{8µ҇ā…}Úĵ˘Ħ썟o­½7›+zV ĝĵcÊe úóU½ÜÒĊ ˜ċfní`ĊœBJis>||Û/Úíñy{Üß´Çİ=Ŝ wŻŬÉQԂŽ„%Îwúݤu vóg¤LR1½Ù]Ħ(Ċ¤€ 7B”.aX§ˆ$ğ˜Wï4ÌùÉçtVÙÏ'¸%†ädm ޝS2Ŭ0’-(gtñÄCjçA˜÷, $}v2QŝÚ$N[?ó„È•‘ûd€Ì… ”,r‚B0Ά ^JÙzò—%ÓŜ­°rÄö×.Û߁´1Ĉ }tú×?mž ü‡áZo‡k‰;\×ŝ›OfقMÙâQ=ËĊX™~RêġpoñÚyŬvHß1QŻċíç‡ÔıQçËú¤G<ñÊÍ<ùD—ßEÜÛĥG3zë|pó€| >ß 7ëï‡ì„ù£1îbÈ­ŬpËÁ½íòŜxًáĤïäV]yġIJ§íñŭ²#e²†•‰ĝ‚êôĴ½ïíñëöĝ]{ü=~; „⟇ë?ğµH³(ŭçpÑÛż>F>·#Šlŝ}Ó_Ĉ4>…Ŭ˙ĥ"E#à™ÜÇÁ˙›úa—G¤>ĦIúô}÷ĝݏVr;³Ĵ;Ÿ›áènHĦTü_)À͓ö=$Ÿ“o†'ŭ€5JÀñ!ÀiwlT˜\Òs˜Yü‡ş‹@i݇w{;$úÛĦ@üĵiÏżÊ†KĴĊ #˙ÀÌÈÚˆmëoÛÏ'U߆7İOßŝĵÙÁÖ_Ǘü€™î0µÇÚE{|ÛoÛ=^·ÇÏËŬêĈ4zŜżlZ6“ño`ˆÌ è êĴ_…á›%–÷yó\­ƒġċìŽ; ¸5Dî‚ÓâŽjó…Y˙CŬûÛ-Y˙F…÷îU÷ß^qg éŬìcS^òk€‡—9.%Gj™˜!\ĵÈFˆĠ^ _Ÿül¸ó8€,çĦkŜtbıÑĦ0e=“)ôĊGg“ĵ›şhkp=”Ö…Ĥ y}ûm̈ ˙5\LJ‹“Ïë„7˙öĝŭòñ>>ú)êèÑûÎ E§úmPònƒÁ0ò÷ ĵÄ6èGƒf1H0ÍàiÚ먘›Û¨°ŭލ*ıÂHĥ=aPVÑĈِ½cŭ}½+Œz˘É~6”¨§[ĠáĜCyĠχôc$üFëj.ÌÂù `=X’—2­-ż?gZ]ˆyJIdZç‘Èî+.ċ8—&Ż-§ZOO’™’Rq³C€ìŒ6ё —JĝZë,Ĥ‹7k*€™’²ŜVM:‡lÉ=Ùh£‘sQÀ|ÈŜê'V œÁ|°Ĵ  k}ò°Y—/ïf´Ò‹HhËáëħ>Ċqß\UÚQċ)Ğ`Á E. ĝŭ5ŸÄgFä6ԆĞWQë`ŬfĊS,c7ÔY X‚ÉĝZiYPNÏKÖ({)’ĝċ„Kf˘îö–ÇA:btüz `­qµÄ÷ô@,@Èğöĝ‘…ÍRžÊ9~İô)ˆŜĵïH€t ÎQíäÙiÏ6L%ŻlZhG]Ċ†¨T(dÉĊmÁğNô·Ïí›Òs''µGVeQE}°OĞy?iŸÂ•£ĵ )hݎĊ(Şİ0žÖİ$5„d˚)Û­q¨Ĵ4ĵ“UĜè²M´a[fÂâ ²et…2Q1§b\óŽG~Ĉc7g Ì£vFDÁ– _1Hqí5¤£éTC!,ω4Áĝ´Ä_tÛ¨Mîv>i­Š4ZL÷0K¨ŬU„¸×\'İûss35Œ;³ùFZ)½&˙3î ¸Ñ4{ uĴŬd]ÈèBĤ`à²ùü–›­XèË\†Ûƒ¤bĉÑh ğíÈĦŒ{ò™\İÌ×NËН1ò×Ò°ĦwÙ: ġ͝nj` =šeĝv˜=ÚVƒ›ó§ç”?eiAÜ ŠÔa‰>=].:È Ë ´ë·]´Wċê+İ—òPp%AM=­4—{4Ü`–‚fœ`”ë ٞ—SÒà÷ÉXc⢇’Ž T-z°ûPˆ;kŠùù à7Ü~Ǜj•ÖN+qÇJFı‹ƒ.ĝŝä\Ñ(ÜsÎĦsàr‚dĉMµÒŬÈÄíڎœĦŽr‘ƒÙK¸|ĝ)Ěà*I>e 0Q0PÂP£ĊÊoù½¨Ó6ıÏwÌ|¸-Ĝc³Ì> ŒíL÷‰\ÙĈšjG§ƒaLI82¨ç<înœ`޸°"îqĜOj #ZÙÁ‚†$ݸ"‚‰`sœ>ë36ô:Ê{B™!@ݲë*d;eç÷ÀݤLŝ˘ ‰-c#8ĠcnûBh)+’şĉž²_ì_ĉŻRÒ´"Á™`я·°ıpqŽ€hÇGŠó-}ÑeVóö^‡ßòai7ŬwLôĝ텖ܜxüŠ*£OŜâjрÍ#,VàÊ%‹ş‡ĠAdÛlxˆÙE<°”äGÄ$Ò´p‚D@ĉ@ `<÷gBFşÚCçGp6‡*˜8ÎbiÁ@w_ÉZ‘!è£ó,Ñ0­yŞ& MK˜;ş7×!hğ¨”Ìɚj (Ñ׃@OWıh¸ĴZîÊ}T´pÄ:L²h/ód•…}=P8!qh‰2ĉ¸(8ç¤ÖÉÄPĠ!ÌGŒ/!a—F°x\x8d0ĈPĦ£\@fb… vîž|²Ü}Wâ•ÙeúÙĠlÚ!ŬıúĠ €Ù‡>!,ĦÖ'!ägƒ¸&ŽXÜúrì=²Z'pOĠb=k†ÊĤ‚ĥÛ*à—Zĥ{îìÉKúü2›Ĝż92.ƒIUz84:1S´µŝúÍx§v³6L„añ{ÍşŸíÜ0Ÿ9ħŒ|i%x š´itîÁĥÏö¨nİÉá"+}äOá_^sİ{‘ħCù„ĝ32#zÁĞ9ŠÈè…]x£½Ô.Ċ|]d„”:<†Ex'M™\Ò ê aáš.Dúèşù#™UÚĉMƒ‚¨t¸WÊ€T!eĊgXRĤx˒yƒwĠ ÈĜHÎî2j5‚|ÀA-Ĵ£<íŽNĠıH‘9ĵ<`o “há’&˘[Ŭ—ı˘ıV˜ĝ÷aÓç7]`‡ka˙‡(ĤܐĠÓÖ:__ÉvÏ´_Ö¤gúU[6FZĞĞWˆġdk!SŠ$éŬû†!dòÁ­a“E7'B– ,Ĥ•‚!L`¨ÂEgžCĦqzjĦĝœ]âûôÚñ Il‘¸ày0IÊ}Ÿĝ•İ˰…s™H7Ŭ S23§ÍwW4 [ΰŠr£{N™B<Ë^ÂЈ÷އ“ĵĤQmaµkÄĞlXıQg}Ĵ-wˆ À)W$5“Œ?`£—ĵ2€àŞĴ›DüE0'ż!Òe œáùʛŻËuî˜ĊäÑóuh_'ıÀe‹ˆˆğDL†x'”éü"ì-–ĴJu–¤7."J“VÀfe5‘3ç ^s/ïÚàˆİlĴwĠ|†"H™Û’Ž0 dĴeqf0ŬñÖà 6swî‚ĊÉŻH l9—y:PHÊ4p‡e .8iıw½ı–É`œŽİ„]ÛżËöm—}Pƒ_.İŜ•~¸Βì“·„ϽH³ s?Kw kƒ‘á/,f´íBÙJŸÜµK û}î T’–XRADL^Ëàžól6êCKĈlÄJ…µrĉLÀ)#Œ5]ƒ2‹^Üè‚8SğŠdÚÚ÷b:a@‚1)Gé¨üyS~³§ ÈÜdl Èà0´%˙ ÎKÜ‘A0ïL÷ĵ5ó!ĠĤüޏ²ĜCUÒT(á-‘u1TÑ``Yçş|”+J7)#)lĊĥ4߯´b;ƒĦê'Â$X‡ó÷bW€8bg@V›ŻÊŬbêd  ”ŬÈğ½.yz˘‚äÜê'T¨éĠay§ê·uÔßm°ĜAğLŞ>Jۉà”%)Na‰É˄Ğléî/D?°žĠë`²hï;HgÌнM³M v€5ŞnE`*:fanŻ7"Z9{YXéĵ>çù¸ĝ H:ħħŠ p|²hÚzŸŸNUġp[·žRŝiö!âßm-ëŽLcüÓqüZoùċ?ĥGñ’ĝ8I|†4Ž0’ß)Ĵp@0[V@DÛîÓԌJÛĝ+zĊ·IS²ëŬ hïşD-ĉ‹}¤´Ş§ƒB5çL’½-käĝXċ)Ġ;|Ħ<>p 3R[W;VÑâ¨búEG½zíx‡…Jry@O—"ġùîdÛë%Ÿĉ?f•[Ŝx´üPûͨى/FUĜĦ;] ]DTWjl6ğÔuŽż?Iä@'LÂL0‘7FK3$›ƒE›kŬúŭP­œÂcŒRĦ:5Ħ {ëÔĦƒlUeŞ–™\Ù#Ş)ôÉYWNvžQĠĜH1W3ßÚċ9ž(żÂi,ŝ çïŽŝW0Aendstream endobj 206 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5858 >> stream xœ•Y TS׺>s<8OGĦÚsŞÜŞužġĥjEEİó,8 (£Œ!Ÿ †0 ÎZĞ×Vë[[Emµ­ĠZm_íxí>}›ġv5ñ^{ûnĴggïüï߈¨Ž(‘Hä?gɊ•+Ǎuŭ§átáß‰ġ]EĠşv,È·÷F½PŸïö¤\Ży³âfÇÏI˜ğ{^âü¤ÉÁ)İ‹Òĥ,–l Ißĥ$cû҈oDF-ßıbeôޘĜ5ŻÌÜ0bäĤQ›G‡;nü„‰“żú·iÓg £¨ÁT(D½AŭZF½L-§†P+¨ĦÔJjµŠz…ZM­ĦFPkİÙÔHj5‡E­§ĉR£İ ÔT_ŠúQ~ÔJL½HqOùSóI ¨ŽTşH,Jï0˘?ħŸ˘#×Q.î"n¤gÓG:ÍíÔĈ gdŝCŭk:íÜÔede×N]ğuê–Ĝí×îÑŬ=Ĉô¨ê)êyĤ×êŜ{Çġyݏï%}ż`Ëúeô;ßu˙ÒŝBÀÄI@yÀŭ@&pDàĥÀ–:ĵöBû€]îœ=Pòâì /~Èġçĥ UŬ…*pŝêşUŠ„qÂçĴĥNcFIg@díÂ;Úë’hénĜß%ü#ş´ö4&A<ĝW1šD‰SiiDÇĠC)ylЃ½ I„Nlé>û‘ÂzFMC¤ëċ%X€i÷Ħè²S$Œâ'tt²a˘êÈhmŻ%GìżŜ‹6ÒçCEà͍{Ĵ KßÁÁPfĈµ‚›í:ÛcÚAz-(^ï³ÓxߝjфüŭÖúš§99Z(‰ËĠeéTĵǖT'ÚLÌ ½â‡& ˆ}şiŭjğLí³İŠF=?ŭí çĥ·ÙĝZ÷^ƒṠë?Ĉa~)‹zÑ·-Ħië6ÎÂżLoÀ‡Ĝŭ(UŒ^¤˜§JCV.ë:NċD7˘{m¨ù²Ÿ`Duœqmî…ğ➘ÇÌgÁß ¨;ꂂ8,ǛĜà0çġßîÜġáñ•sGÍçÚDá ˘/Hĝ>n²z“ Œ-ğ4-#/G‘Ëċİêܝ{ÂË6ƒGAx)^ƒı›˜&[ŝġpZUö8’U|ö‘ÌäµwFÓÈħ#Q‡ƒïxı>eŻ£8żÎđq˘ñdm3 ÓìlUbsÜy`P7Ôù£A¨Ìëc—oÚ-ÙÍ×Béögs3Ħ½ä&3ñııAA(†I…˘LZ•[ġ`(ŭİ ´î³ßĉâá5s05nüdOħ Ĥ͍óMT™;Q >‰ÚL£á¨7Z‚–˙ĥħ¸{-eż£QŸ<>ž€'á>üHÚëÙGNÑuÏ"Ħ?k´ƒLLÄ,ÖÊÂr9ı}ç‘9$’}qwìO’äwóġ‡×Nĥ•óQ8RĵÚÛè5O‡$ÇÂi<8ĥdŭɛÜŭĉFĊÌ­yÊ`•ŒOXüĈÊ``<—âDaNڅ²¨­ËÓ¤C“èP—4˜K*Œ\Ùφ"bŒ!˘İˆŽÑÊÂs9܏nAab¤Ħ5)ıÛAÍ$Uäٚ %Ġ&Îz…˜n$ĞŬŬÑîïx­;@QŜ <½ôfËIC‰µ òWAÄj‰yœbžWĥ’Š7O·³,·ÀĤşá˘ïèc¤zN—§Ü~šÁ`ÍßgŞ-| ŒLQnyr²JšĞáÜíŽ&8Ñ1§è6İMO„]rK–MżCgŻ3˜n ÍE4ñŭ;­›gëùHk)p€Ìé h2I²!TʜÙ „!½zĜf{)WTtħ–VFŸAC6¤½V°ZŸ}lPÖĈ“â)Ν˘IŽ9ĥNŠDxêìÓ2GáAÓIÊÜ…ÀüÓô†T­MÓİùylÉ<œY|zĊ·§.Xëqċ {óNS_ĥMĤ€9…_ŝĞÚİɌL۝µ5' ˜5‘5û.Ħî­¨—ÑËxèkôż,!³•b‡—`&x<Ğ  qĊ1T!÷6ßúÏÙñ'oê3è*ˆ:"˙‡Ĝ(NK| Ïî}’ ™JÂ6’c´ŭIġcĈ uPÁòĈOâĤêç”Ó>ú†GàIâÍŜ"DŒ'A Ĉ?B=àâ¨Ô'Èìï2Îġ,‹¤‡ IbO>r"ñcñQ"œsġ™ÀäżwËÔvµ&“t‹:E 6œ0p.UNá{˙•ô@Ġ¤ü/¸Ĵ÷äOöĞ‹›ŬaŜJËâ˙Aèò,ǒfTĊjeğ=›ëÔ[ˆqŠÊïúùv­;ŝŜ­ĞhÜçÄ.ÑԀAĠ¸ Á3 ĉ³²Žŝ#£‚@ê)JÙ֐Ú ıÀ\ ĈĤĴŒËĜİĜ´µ1ŝ­‹_žiàžrߣ+ÈüµŸ A"ĥTYš˜˘Ve*ı䈔ÍÀĵşá•ĥó¨âĴM )âġ:½VLDĥ7ş<6à…ñÈÁŽ#1<ŭ­ƒóʵAÎZÊóKÌ%ŒžžŜ'ÎbĈ­'•Êßdâ2oŻu!²ĝ)xZ@òĈ¸e²(FGk΄£Bu²"2 }RUĵ+ôÏßö!^Ĵ§1E!…ĴŻçï4íÎßeLm BĦl͌·KеB-S“™~HÇAŽZ£S*×U×ùM†Â󎈏vŸ•gçd$0İ lœ "ı6XÌ{LĠ…ÇŒğĝ.[$×Úĉ†3¸šö-ä+KÊ=uü|HÀ“2+v4†B ™ şâN8wüxöŭÇÍûy]žNJĈċ*÷ àu*vÙĉ7è›Żï\ŻXŞÎ‹ÍÙÀËŝ>oÁÉéNIċ³Ô9ȗ§‘ éèĦ‚:wŻÔ˜sŝe>òeO…8éÛó̉fù, IdÀĵç1†ĵ€ú:EwŻ fâ{8ZÁ6ÙàS4pdË\€;i€Ċ_MCbÔï½ğuîÔäedóğ·nlfɌŭ?%ĜšĥĥsׁyS“ä ĠċzÇĦ;×чWŭ„ƒ‚†}´ĠN$MÇċè\DNĴ„`&è@:âPż”ŝÜÊ5ß߇¤p•Á5íĞÙÁÊ&çÇ{Q°í _û Ħì{`l’ÏZ´ ÏÏ'%‰!H˙´NˆDĦË.ÓÛGéĝÓ&‡ÈT™ßÚp[ÀŒ­ÉşïŬY1-l›\ÁùÈy“ü{fġ‰=Şġn9âħBq"Âĵ‚„Œ<ې–E=iÔ˙>êĝ5Ÿà<–üOЧ‘H“öb˙I[żx[HèŒ!ü`7ü¤_@³Îžı€6]•ž;tİÏûĦX'›Cö£H}Ž’ ƒ‘·+š¤G€ùáîWß֨ޔċ|ƒ­ÊX˘7':rĴÀ8eġeò–ċÉ[òb7òğ;-ÑÀĵR¨RíÛħ—Áâv{Çkô-k·ĴZüÊSŠżċ8O”üéŸŭ„ĦÂ{l¤*>&9>q·#µħĥĥ‘£Ú ,î퍓ŜrJżƒ{bïż`ŸyŸ˘Ÿv)êóRàjÓg..$*yž†heñ[´l'cI§‘‡Żİ‰ŻLċêTŸHŜÏ xK^ ÌÒ9ÒpWĝŜf0CçšÔ•Rĉpje"÷Vi²¨àŽD~ 8E¸ŸŭQßĵĠšUÂ'ÔKLAµsLÊcMŞ…ŭÌùKçn"ħ~b\&¤ĥÔU™|ĝ+€%ê˙—óĉ:‰´*Rħ À­×5žF™Éd·×`cP€;Ġ+|ĉéY^A·ééԍş@ŬF…,+Ä‡½Ġ€G{İ~Cñˆ³è;ß°/òĤç˜û,ßۉѷĞħŞ­û|‹ÇĝŜâĦÎŜĴ&Oµ˙#ÚŝEû÷óŸċĝ{ٔùsAàş­G?*†ƒ•?‰˙Ó\· ÄÏ˙ùŬCÔ÷vŸ¸ĝ—vĈ½ŭLpċ~Á§oùH˘žŜ aÓğ~Héd“žU·Éϛ›IçÖU_:ÒÒ LQİ.RİÓRق­âç­/^rÍz½à䃝!ô5sĊÖm %'?]œ‰°3;!Y]Ÿâş7x|kX ĵ ċS½í~÷Ż'ĥç8„bûû$äeO²?Íğ‰ƒ†ooAb2üy™ôP䚀hœy75tĊ‘#$•ž£xoÏZKē0˙W=§ĤÏôŸ’İİPoešĵ!›ĉ68LeÓñé BĦ‹m‡­ÚíÚÍ:÷[³  ¤·Z*ÁQ™-ß iñ~FŸNCĤq>Ò°èú^ĞÏÚ-_iĥ38ŭ(Ğï$‡—NçžÒˆwwüžD°ĉ)ŞQBWŽŞZöuÂÁPg<0‰Ş´YĦÊŞäžQ;À\x-Żq¸żJ­Ì“cNĞۏlh::⑯§œ¨‰üŬ{÷ŝY˘`…$V^œh#4j*‘NŬĈ\pġ³Î ġüžk&Ô Ĵ̃÷ħc,ĵ{êc9µ§9[ÁY20$ Ê (²¸t閄ĠÀ C†¤É¨? B=/•ĴI4ó¸ÄFGïıüƒOßimÜħdX´5ÌMuŝD27è÷n,ëSüÁ.|ċĊ`ĉĊdFÑ0q+8ìS¸C\…{ˁĤ·Ħ•˘ğÂJ?ô?¨†ECik+´ĥFıĉùt Ĵ7ê1–ÉÊScóâ²µ\"!ĈCiyDEµ‚•Gé$<˜HEh3JÓMĉĈ"ƒû2—w Î¨—í@ƒŭ^=żtƒ,CÒITĈȋÓÇQÇO~~3ŝàĉŬ‘Ñ‘uİͅ9Żwc~‰ĠçëÍ=½ìƒ Ch,ú#HŒÇú4g°D5m˘ß„ħ~B ñÌëÖUŻíd‘í8Ù&"CïM?Ħ—+³h‰„Pğ.BTĝ……r•"ҝ1˘)ßd0UŜċ½ĦJ³Î [½Ġ4+ Üäĉqµ·ş{™mJÚı36"ĥ*a_KKÓ—O#ÛDÇ]ĉŒù§ÖLuüž\)ú‡Pí'ĵ˙{Ö\`*€"Ĥ"Ó.‘äʳsıö•,ʕkT˜n˨Ĵ(´ċsOIïÛĞèíË~B£—Eìb$z™¨Óx9Ŝ‚>ô#z @+Q‡mĝ+váö;ż _K_]Û?i>/òxíîüıR$Œt1§'ôJ[jFBĉ¤‰›fÍQIuİZˆeùuû–W5qóÛ'‹Gú ĤÑ;żOö ¤ ÛQŸ{ÈÚĉ'tAa,bîœı _0ß½~HòÁÓplj•UġŽêÚ"•UmĉŞŸ<0~=s(öŸœAjĥŻ–*òr@èİçût”C~Ħ(?ş/Òe)°QËaı‡Pá‚ëïƒ{è ‘mWÛ샽Ë7͟5chĈۉĵÉXj…jĤ.͖²Öfx´;ôÒŻ~<:t÷àí²/ Ž9żê2öÇ#VÍ]Ġœ[\]SÑhÍ+=·ŻMoĉÂá„íqİáqüŽ„XíNíj™ŽÄĈmĦ‡(§àOâ9Mg}¨c6}QkkÒ!é ˆ“Žßl§²³òdù¸eNǔxĦĈYàŬbŬ ”°zzŝQŒğÜìD“œ˘żA5ÄeƒKRh|r**—xԃš‘ZdĠv£ÑbáŜ:qÑÜL[óŞ•#FÍğeŭ˜Œ/*(²*—UÇm€5ÙnŻ}€úĦ^?Ħß.ş”ĤNÙàò,É'Pğ‰ßGb?tIp²z£ÁfĤ,Ğ&6\½EĦÒz­LĴ…„ĉZ£ŬnâP2 ˙ëUžÖB I{ ŭ…Î˙ŜZkñùçöÛT‡ó‚ ĵà$f\BY—ü„~ÂÛìÛŞĤ”ü™2'¤LzIr İòĥç†qĉFc9ŬB1A“ħ[Íi‰NKŜş,-î”6ç5˜Ħ‡"J²Ë&Á0N4 %ĤRÒİu)öÔġ°L:ŝŭġ·•\^–ÀËW͕ıì]‡FJ¨AÈd‹òK‹ œİJ/ÉPċhs³8܎·Hı Ґ^˘4ĞÑI`ËvŭGƒ)/+­,Ï.È%> stream xœ]‘_HSQÇÏŬŬ½ğĉpmqéĦ¸7*ú`¨Ċ²‡J´²ERS{Z‘a›sŜVh(d´(äH2Ë—İ…‰„ô(äşzMLÌz¨ MÉJߍÓC›Z‹ÎÓùqŸÏ÷{…ô:DQ”!5=++!1²]‰¤]Ñú˜J#…46êkĉZŜ˜_šúV£È2ú$q Ħcȉ2Ñq”"âÂ$¤GPµ–òSšÎİ“´ş8­. À…RThVií$xx0ÇÏDPü6b&–)ëââÔ,Xr‚$ñİé3ӃC##ƒ›5=9U ˆ¤@˘c 5ĞB•J)"ñġAÜÑQ„ËÄÈge_·7„ı…éXĤ]_7¸N—_;ñ½³‚ƒ-+Â^o׋=żçD§­” İ£JJ‚5-mòı‰^!Ĵ +XU8òŽ8yˆŭĝz˘şWT ·Ï·ßĴĊ\kŭ–§g²edşÄ'†G;y–({œ ï‹NPÁŝğ‘]~’1eiI²#\È£Ċ`^"ö÷ìÜêÎÇŝa·ŬPĉ[!M’jÖ6˜7ú|íGnÉwK—…Š£ċ~ÌíÁ½²Íß°2]˙péċP2–ĊäÍ{ç™Vùż“ˆ¤‹…Xb ˙M“Ç.İÛ"%tË?ö‰“`ùL,ŒtñOA:기RpC?ĴS¨04ÑÚNÈâ›q7Ä8„Áœm+‰#–ïÛÁü³OÁš[-žâÀġҀ(9ß(ĈIĜ1pġ-WÙÏߝP{7ÜlŻÊĉ"ċ€ĦÀ ŻB|§Oöş%É],zĜ)·uqÂ*}IĦ1ĦßÔV:endstream endobj 208 0 obj << /Filter /FlateDecode /Length 5703 >> stream xœċ\Ks$ÇqCû#&>ô(ˆv×ğŠaÙ&MY–”%·]ïċ3àĜĠŝ{ç£ş;³§µì‹ƒö6޳²²òñeVÖüşêZ³êżú˙³Û£ü1­îşĠĠÑŻG†ŝ¸Ş˙;ğ]}wœ7méJ\\ñ—*ûÖyżJ!µ%ĝĠÉíÑÛĉûu×vĊĉÔùĉ=<[ëRöÍ~}ܵɘè|óa}ìœmS‰Íïa„7&EלˆP\g3<ëš |í²É47#½ÓqÄ£ĝ^GSrĥÍ2’mî:ŭĵ@kf*wùGÄb|q@|˜gƒAĤ¨ĠlÖ6ĥ%ùÒ|×ġÓĝ™œ{÷amSk;·ÈĈçuv­)&3C ͟ˆD²) Cö]JŠ‹Ŭú(wĤ$9bË…lš˙ÂÁ°:—C³ğ]‡Ñtı_˙|ò'Ĝbċ;—Ú3lóÉùQÖ'ż{oÚÎÚĠħ m†żÁ_Ŝ6w´\bl6{–[q6ÖU;@B ÎxĠ&+E+T*CE2à³Î…ʏȔgxŒ°k<¤çŒÈoÎpBħt/o—›ÍoAħɛĤY#9ŻŽMl}.u‘ß^"-k`¤Z&9ĜXĵ&l×{µñ†“¤;@Áïh‹BĜĦ.Áz,¨l%je¤¤ĥBĞŻ6 _.J¨î—.˘äwÌHof%|!öàí ÎEÔ7PFà;*•½VÖE¤½ħŭF’úÖĠXT'Á•Ô{uĈ‰P°9ċf·Ċ/³‡”ŭ£LN%•f;áŞ_™6QĦïrùL{ßşœĞ‡2)˜0áeۜÔêĊäĈâN¸ä’v.R÷ĵk„^ݝġmñİ× àNä#)h;Ŝ6tĈwĥoœyCÏvÉĝÉĥöÔNÑËĝÎGtIĝ2 dÏÜln‘œÍÑ{ßoŞʗĵÀ‡UêuËĈѳl\BçyÒ GopQÍlVÚhż“{ü¸ĈŬŒ6ċ/~|܍³ożÇÇËññ›ññûññb|ĵÏfyx?>Ŝ=ÇÎ~vAğÙǛYÇ ğŬĤ…РЏċ]¨#`ĊÇb—B,VĠŜìR2PħT”ÄÁZ`ks înâ€mìÒĈ<çİ‹oh~ÎS[çûEJK|#l‰xħ]lŬ ħ!K´6)Û5Ä-ŒÉİ9ÁáĤDp×dĵĈg%À{$]À‚B•StXċdMğġa‚l€lLĥ#§ÎĝŜóۘ‡Xbqŭ.ú8Š=.0!ŜÊ=rÊqLAE›–Ħ‡³TMHèƒÓR³QĴà°˘QCèÍñzğž’çSY·É³Öpt0û@†_ş\Èˀ^dc5č \nT_~B4^‰L/• =é|i!ÜRĤÏsf˜‰Ù QÄ O ZÚ 8t} &v°“żŒ3˘ül‚¤C;M ß0Í„Ĥĥ DĞc460قHœÄ,)Ú@pb&ßÚÁOôŞËáݵ Ö(^]ô‚KÁ’­1>)8ı´ÑBAÈ6ä‘/deacq'ÀŭĥÈ˘Vkİc8Âe€Ûğ;ĞLnŒW›˙§C[œÑÈNázXbž\ïÖ¸Eg£KàéÑŜ5½“/è+FnŝeÎ9;Öe×ïËğµ0Ĥ1:Pù#ë@ö1(ĴŠñ4Čq)ëڜ3Ÿ „Ŭ%K BÂs:âcĤ–!1’@·ĵaŻÁ{,@œH‰¤J ‚*hLür`KŜNšâ0x\›>”CèÜĤĜr$œGĞôh·A˘:S6‚QË5uTBEù+m w-ó‚½z‰k0ĥË uĊŜùÄòvm?1GñÙáۚĊ²ŬKëéöÓ$´ŭ&GÈ^'‰uϒ4·żî:§CI•rQ!MN+¸7Ù§H ż°ˆÌĉR\üĈvCül×séS9n1TĊ™-Ëᢆ כQuÑ5V j#S“aeĥaëV2Ħ‘ˆ,˘ÇŽ7½ë˘Ž)G=Ârñß× jAíJ(à÷MBğ›†j¤wT^$2_ġ>ÜĈ.t^c.òŭŝäèŻG\ĞŭrĠ;äU{è‚*zG0NVR7‹‘ñö¨ħˆ£*ĠerOcÚ€Ĵ —awKgWàG^â"úżĦׇŬ,5÷…ä>!³ĥ 6m£ƒl”ĠÀĞ5ŽŬN0&`îs…T@È–°˜œ^'?<;ğ l ²™j€ìĴ÷dħTâ3šf{ÎŻaċżÁÀs †Ĝ>?$[ÊĈEŜ[ËĦĵÎ3Öiĵ¤'ċ@Ĵ˙ûĠÇ D=âÊ+¨rYú°56 Cá£ĠɝüömóçZ.ÎıôyŜA*°îE]Uê(Ĥ1ĝ‡’Ù:½C#Çżv9)$sXXe€£!쀨ΙJ(ˆ`à„hŠJÂı^ój°‚·\ú-ç„ÊÑ;¤ízÂöi^şAŜP.Vžç ÓґK;°ŝB ÉA†°…€x†°µçġ³°6”N•§f”ñLxÉȰŸžòà£@òûí,jö6:(T§ˆ%żg%Î!*8/ǟ nZnN,½÷žyĊCşŞÁ3ĝ/JQàw·ž=‘*%ŝ2òĤS-:zÜñg]ìĉĦÎ!òE˜ÚÁfÁ‡ïŜÉ uŒ i°ĵôğú-l~Ġ sË41/~…ódÈ£.4ż6yÏb]HôĞT á…ReÑ_;(P錂WXf*g.BŬ†s/—àù’Ş@²Ĝ%3x>QĤ˙çġq°À-‚İŝéŸĈ?/—\Áĝ™âži˙Ùğ¨ÌoĈǛñQ`ŻżÌò#ˆŬÏÎ&–ñġÜÚÄĵ·r†~èŻĈ?˙0ğÜŭ죘àóĝĝĠ[Bç3 !ûġĵKĈmwßvQÂꑨ§$~‘Š`OĠyëùÔ_šıˆš\€87-=—]-|éü<|˘3ĜÑ×L0/ĊĈaBuœşpz/èŜ÷ì'YĦÛl™\íkRö?‰4Ġĵµ‹ ·­ÛNmZ@ÔHcŠ•qIA³MàÚ~> cP°…<£u§Ö2/˙a6|,EŠSò`lïˆßŽ…˙ù+´Ì‰9"kx̉@EĊĊbaàe‹5³ü½’İ‹ÙÍĜÌr}ó4ùj–Ô ˙_gñÈ<ú0ğœ›Yşí,ÁÎĠĦÌaƒ~“Ê’§°ğúMĴĠIôşlj'eDPĤzR88ŜÍ6$ĝ,ÄĝL3Ò½“}I21Î*ߣ{îJ›²ò½;f·3aİ~¨“QQö½a!bT Dö5ˆ; –x$qĊÔJÊS<ìaŜ!dż$(’lYOĠç FÀŒÑ¤Ħ6p67ÁĴ̤ êĥÈÀŜ°Vm€BPB6e}‚„.$M}÷§cHÔG:ñ<8‘êT’í%M䄤_ÛEĠ˙"ĤiÁ$Hc˘}[[ñÂW1“ĥÉÚàjÔíqßF^ÚQĞUŽ“3óñĜcZóutwc3´¨| 3úŸž4ġ=Oñú ˘şxĜQïJ-öħLŜ/.œĵ‚ħ6ËÓ̟÷ü4?ıjóœO8wÛWµ7LìĦö#8ĵùäÊÊâmŻö#„v=z99ÉĞİ;ŻÑÔuZÊpÌĤĊ†éığ³ĠR÷²£oŜ?-$£flN"t£ŝĞM’*¨˘cıĤRÔħ,lsá”xèQP]$ÔĈ$VŜĥè4›"Ċ-Ĝ-“U˙HíĴÈžè8Œ„ĥv,úÜŻ.€Ü ġzP‡ûĉfHÖjÁ÷-½‡Ŭ(²cŠ-;FèÈŜSo·˜îâ÷‚ĈaĞ ½ĉ>¤mĝjĠ˙˘F‘ĦyċŠ’“ğCLú;!Ÿż )—‰Š(=C}żoùt­ëï>Ŝ3‡iÏÔ#zĵó˙/;û<ĥä+O*Šg’†Ho%O gc÷0_l Ĝ5´í Xz= *şZÀ'3 Š…NŜ&›ù“8!”ùŒŻàF•á‚hïsÄ5‚ñÊÄ\%@4Ò^tXDQMöúB/NíçîR]aâÜŻÚßbÂŝ7ëU/ÇHQ¸H…]ü§ĉz£‡€sêËkj(„x@˙ˆŒkMĴ=}3İsĝ‹sŞŬ‡ Âñ•‰üŽSnĞÇ2ysFzœLÄ|%cé* è˜h9Ì–bÙ zĜ_î^U$ĜS{aç&ÔÄ,u5ĥ#kÊx÷/?À8ŬŞ6àÏ;ÁëZŝKÓv%‰˘ €~ ˘²Ä •|'ĤûPKh)w‚m9è’ı.ŭ‰"ĜGáfÇáÛ[ò"éè$ ÉĴĜV)áMŭÓú0çxlÔú[ŬO賒Âġhy&e•v²N˜év[• ˘Qœ(—´ˆq“güK(uĞŝş/K›LĠ6Ĝŭ îˆtàÄz’0‘ŞıŬN›óà•òż`*ÖġéùıcçLbŝÓËĊX˜óĦE” c—R³Q §­ĝ)Ŝ˜Uc/Áô İ_8-éŒÏÒ:ĝD?Ëħd3l&’Í(;èg”´í5bTqĊ@’â.Şi×^ZĜh—FĝÛëü£Œï•ßËrdĈ *Âŝ–G‡aú@O݇ğuI&§ˆ‹X!\ŸŒĵË!œƯx£‚ÒËĝ‹<3"Yöëbiı{ùÁ•ĝÇużŽ ö` ½Z ˜¸úŝÖN?Q?Ŝى1-ĜÒaüá!ĠŭŽ(­A_a#eì“\‘×GħËUxéËĥFò˜‹[ #8ĵç)}§Ôĥ²Rr>ˆ­ü;K—›£Bż0Ÿ‰kFzˆy4xü ­ÍtÒèŻ2>ñ|Tê7Û”'_ 8"–ĴYĊ·9E ˆFñΌÄÂnEqeÀş;mP= iĴXĦ%byûĥ†Ÿ„G½‹à˘EÖëï= {[İçğ„yˆB‹üNFŽĉ(âE 9FA<÷Ç9?Wáĝ‡C”žİŻB]d”ĞQ‰W[ İŝĉÍİ4“Ê2€Ò$œĜğ5\$ȗ/éŞÄĦ ÇÑdjĵqĜÔÊN1Ä[‡1„ Œl§5†> ‡ĥ™qgÄ6G ıg—› ²ô dù#h.t½Şù÷utYU y_Ċï-,÷qğ€Èċ47dTÉEjİÁ–H1PÄĉħıSVĵàâ÷,Xê)Ò@·ìԕfú€†8t/Ŝ5³RĤq§CĴÌċxäĢbĥñdˆ—w31ÛEúëÑĊîigendstream endobj 209 0 obj << /Filter /FlateDecode /Length 3447 >> stream xœí[Ŭo·W‚ŝ żtŻmĝŭaE (\¸…¨ONVw’ìÖş³%9ò×w†ä’=îél7­~05Ǐ™ápĉÇîÛëù‚áżô˙úêä›çvqys—'oOxĝq‘ŝ[_-=…\÷̛ĊéĊIÉHž‰…Ġĥ÷Z-NŻN:³<ŭ  xݘA§›“ŬóċŠġšŻx÷lÉzç…óğdï­ŬnÉ{Ĉ„ÖŬ-RgR[BŭİÌ vï–ĜöšKÛ],:ŭ 0 9eÀÀZɑG˕R²w°zX’Y\ú@îğŬ-Nè9Y Û3îm·ĈŜÒ cy·{½\I)z`˜a½ñN0 Ĵ„ %òW@ĥ’[Ğşs2’,tƒsHĝÁwݐ*¤uŞÛŽ"ÈJ‡ŒbQPaP³µ´ËJ2Ù+ç+İ{gܨmè9×ŭaıÒBÀĤuoĈ54@0kœ>=9ŭŬ‹îŞŒXB1ÁsšIĜŭ5 ³WT“ğmdڀMî.R[‘/V€&Ï#ÏEcFrSà‚<„<ìĵt  Ħ]I¸ltc ‹•’Ĥ·B/V\öD0ħÀÄ1b ħé!V–MĊ­ÔñŒĤQI3Vp0…Ë ĉÌÒ'ËcS<°j -Í ôyŞÚˆ§ÍÛû‚׏]óäŝ·Ŭ@“\Ví#ÂöĥÉJ;˜?ÊÊPˆmF½ëû„½Ësŭp_Ĵüç}Ħ‚ÀAf4Z=JHĥyӒE†!ĜóĵİÂôĞĉòMµ\}ĴZróM3ûtġÍ;—SuNOާQÁÁhpL‚)Ĉ£ÓŒÉIG|Ċ€=… Ìç°^wgÁ'œhpàÊD0Ô:Ĉòׅ|çLEGÁu2óݰfqBÄ;„dJ*64­ùU$ˆV‡pğF/]9zBĥħ °³š7%PRÈ$´7xu‹÷&_ô€şÌœVw†‚Ò&ÀÉÇMp° ĵkŽ‘d` לYŬU`ƒKá]€x[·WѝDŭ!1ˆĦ/"İa1¸&$“ÄeËuC¸ œ‚ĴĊB˙LÔĊél8Ͳ\ŸĦ"(!"Ežs*FêˆÙĴ‚ŝI‡_èd­ƒİUïısŸ†u„ÜöÚúİĊr„Sfĉ‡+ÉqxEÀtÏ8¸şOżs5—Vİeǽsv4'ÊĈTš0Ħtµ—iœ@"ĠÖXI¸†:–‘Ĥ¨Ö €1ŠÌŬÛ%HĊAˆqƒt:ZİġmëB>ÇÍ0c„ĠÂÂ-_˘-ï.Ì,µ•ĠĦĦĉ&ŽkìC½âŻJ éû¸"·nM`x 9†k2sµïÄ!„ “8ïŞ>/ËICgŠ\Áı?êâÒtà{Éísyy‚M˜)+ğşìÍŬ”È –„? “GĴÀÈ=?,­ ‹ı£QA,)mÉUä­8‹QR™´áBiU_“ŞÀ2 JW­‘Ĵ³+m\ËòÛdkàQ΂˙Ñ^˜È;ŜĊˆ˜´0fŒĊc´Ïü&™$ß*]2†zçqž5nĴ$_Ás•“`3 ÔÖwħ/ǘGpp37V LAÊÑLx#‡ŝ2´Áœ­aĈë‘~üu‘x\°!öÑĈ)ĵ^„éĤ£%Ħç.tp’†›ĜV˘êA˙eìáÇθóYÒ+×Ԅš j‡L|ç68}²Fe˘E;aŠ2 Ä(J@ŭɄ·ĊüJĥ†€¸mƒF;™£=…$Cɸ“ˆçU7mK§òI*‡ÌKP ×Éĵ?Ñĵ™Ûc+§Âq¸?/µF/ 4b„d³‡³˜2m„<ñ|ċ#~=¤wß˙aĉáo…ĝ÷Ò|ÚlΤ4ì–Q|ħÊyÔŭ‹2Ž—ĉOyaFekKj_â&m!êQ&Ê]£§ÏDQˆ,u!ÊÖpĠZè˘EÌ'oñÉöùÌûá9„•ĦI…j uS¨ĥPu<€ÙŞĝ‚êž°Ò°‡_cïTK'öóÛ;˘›óĞß§ÛĵäĦš+b·( JŻ%àlšA']"4ÚÈÊÖ×ÒíI°pnqĵ ­ ž Y P§¤pĈIÚdp’™§WĦjĥ̤[H˜b‘€I¸cÔwĦ3{ŝcâĝUIiv†o’Ĥšı“9ÂĊâĠŽĉgŞlNs¸$çs] 0yçFu–.°ÇˆO€Ä‚wşß ĥTÍ%D}  ÈP hwìgÒ/TŬšÁx52_×ġšA™dKIíħ8šßâŞ5¨~Ӝµž ß)úĉ\Ñg,ĉô8•gVˆëĉş„]’š˙ĥÉùĥÍ=lñ@~ߞ—U²5fÓÍlO%_Ö€uÀR_Ög°&·½F\U[…ĝÛÊJHÂ']£ŸĊ ‡è‡¸÷Ü8LPŻre—ŜİEìEÒE;Ùoԉq-’äĞÒ?ùNŒxEĦÏ!Ÿž33~}MÈûċĥà$˜u›Mŝµĵžw=c>W&Ž-‘1w§u†-û™ŒĈĝ–ÍÍÇI*ÔߕĉÚlné™49 I*ïڊĤe ŞŬy¨PöÂO2ìŠûë8{ÙŜ’6qñ‰I£n‘’9GĠ-Ĉċ‰h¤*ħğŠÎN8&ÎĞleÄ![ı÷’'fìià!>tħ½µz>Ù.ïñvrd²=‚K 6ĝŒw|Ò làSNĜ>|Û :´=SZ~½RĈ€Ó;ŝċèw”Kġ ÜÄ2rżNêëıX?ü*›Š{èÓşèl|€~”G{=W“ÄücjĠ8ŸQä™É8‡Î–">Ä˙È,Ü ëG)ħ@‹Ï(ßĦ°•Û8Ħa|nƒê§2~È´È…Çww‡ġ6jCÑ 0İŒêiĤo(SŒÙ`í²ĥ§>âp­;­Qğ€d  šˆxC ˜ö!Kò £²Ú°Ë\ş‰Ù·"éÍ´|x—ħ^ĦpjÀ×q ÉF¸—\?=Ĥµä£ŜĊ‘á1Ĉ}Ċ䌕âÁ˘û£ ġĴGÎQ‹%è°ĞÈĝ€ŜyM{N@’YÀMM@?/ȌӽÙP4ÜZƒFU‚Ċobo|˙*Ú+èÂñ\è& ëĝ˜ }NF2çÇÜ_6}é4jsî™Hó˘ KËéE9¤ŽÎKs(Í6&‡í…X­Muçj\@µ/ áÌÀz˅O˜žàÑ@Ĉ'zóF>V‚ö‰¸†ˆpĊIÖ@.R9‰+úİÁì—&ù|P7Ú. Q3$µê#ە‡c>K e.W>ĜÎ$ż?ğ/Î)ócĞÇTE|ŝ1ĥç,ŽjuŞá˙ۏB˜û°ÏBŞ/I|25­ċ“Ûož ‰_†òo™6Yendstream endobj 210 0 obj << /Filter /FlateDecode /Length 157 >> stream xœ5LÁ ‚PìûsêVğO+Ÿ Ô¤Gĉ%(:UtÉÂÌs~VßÒÇTOĦ]fvfv:Ÿĝċ83GE2eŻv˙äPÎ5UÒ[p<éš\‘>b“áqoNÄhâMGy Eœììë=qÊqœZ™Ż0ĥN|ğ4ċµ†C2 FŻmġüdĊ·›w;´´0XÓ•Ú+…endstream endobj 211 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@‚Tu‰²¤K†VUÛc"†DÈß7ÒĦY:ߝ|–xÙ%÷èñI ĴciñkD‚‰fǢU`ĤÊÊÄ·BW^Ÿ@°ÈîüĤß$JÊŞŬCè -A#EÍ3‰iúÎÚ^›?İ&[êÜW(,ŝCÉÑ\⸠¸ĈHœJÓÒ$pLżg‚9Ä>ÓSgendstream endobj 212 0 obj << /Filter /FlateDecode /Length 6942 >> stream xœÍ]Ys%·u~§ġ#ĝ*]ĈĈĝ!ȲSqE‘,ŸäT…Cΐ’†ĵ4ÉÑxü ò³s4p \rFr’Òƒzú˘ħœċ; ÀżœÎ“:ñżü˙‹›“ú:œ^=œÌ§W'9QôiŝßĊÍég/ QfJsò§/^Ÿ—*ÚÉX{\˜’³§/nNŬ}~6OsÒ1Ìv÷¸"ĤÊjgċ€É2Ġ•sŠÙÙ'è}o€—#ïş;uŻ' ‰Z†şŻ3{UÏëew¸C>è— Áç·<ÌsŽü RR>Âö`›ñ¸Ç°{Ó ,úĥÛO^¤5½5)ÁDƒÂ€B o…¨drid‚÷ÙwËŬ{>ÑOG×-^Km×SĴñĈdĊúMOħúivÎĊjy¤Yµl-¤@n%˘ÒM^œĥ­H/š"9­ÒĦGC<[ëXħƒJ\kN4ì._Gµúıö¨[™?µ†ö²—-÷îAEŸż$dä(ĥ·Ġ l#°]×<èêG6<„èV;ٝ²ĝßó@€‘FċĉWjTB²e“A-`Aĵ,´héüğ*ÖÒú=p'!Ô-?`ÊüŻOë{ħżo€­á Bë;b( 0Z3“ 'G]S>l$_'ĉŒeڅ€ [ĥ$I”8İP7r+Q[ĉ‰è1½p3›C‹Š€: AK uŬÈGGƒ*˜À™hġ#ÉÂ=›@0ژ°‘Wĉġĥ˘×]ĉÀ–`Eq™~{ŝHÁĜŭ’ŒÚŒ#ŝ²ĵ#(=[˜S`V!/+I°#Ü Î4‚Ex @`·™|Ël‚£mPדÊ<$p ĴzB”ñf#aÏeÊqÙě˜P›JùĜ’wŞ|ĈEOKwŝF8‘‚ˆ˘żĈÙ@áĥħ0‡àӍiÀŜ‚YÙCáğÜr`ĉ Ŭß´YÈĠrK–Ùgq‹°Do…(ÜJ—áC<Ĥ­I+)+Ŭ?òê"¸twbDÁ”‡tĝ‘V£­kxùr#³`f@5şµß‘™Ô "¸>ì0ÌÑìŜTéjC-Ô0c£²9ĦçugéîeĠžÂ<"çÍHâw¸2ĜpÛĝê˘é-÷ċg÷aĤ4pŬlJ‰‚降F‘^½­î/=Z[’"?eó[öñpró‡LKµĈíJ;À0ÓĠJ )m⠒&Xİ >‘x‡èU+ȏĞ>i!˜57Áû•çO‚Ô’°ƒ˘ LBÛfô&i"ZïCË:Epxž2ĈŜ¸èħ³ ."ÜZ­DRPŝ†}–9Ħ˘Ĉ€8Fr§ä  yómĦÄÀhiŒsiğ1ZĦ| vOäîÔÍ˙ÈmÀin H Ê82Á³0|!´ĝ{î£]Ÿôcǂ÷.™ ?²‡‡@DŜöL,D^ŒĤ0EMcw[EP¸[>³šN5"F‚QVq0Ž‘“ˆ§2‹À– £Ü.;žxRzQ+/èÏX…˜µñúáàòBËXÖéĵĥb‰R‡íĞÇžé1ĞÀFZœ$Ċ ÀşÙiyĥ§ÚùÙ³ÀSFDl?m1Ċ îùĝäj‰×œ°uT' ‡ñJëlà‰Úyc‚ÚMBZÈäCc—8)?Ĝʏpġ%÷7¨’#ĝAsÑÈ îÔï^œüñ„ÓTîô~œ—rñ4 ‚=i)1ŝO]4.´ÔÎàĉĉ^ÇŬ­@éÏMà:ÀèN'Nsm°ßîOÊħ¨`GFéĠSiOµbÎ.Ì9´WÖÈàŽĠÀam`‡„S°ŜU£rdUžÛhôPšš1î[üş"O8*€¸ŞUÔâ‚Îq4 u ­LXÛ 5,+…QídĜ(Gûq‹ ž×Ç7Ŭ“uĜjZĵZ_”Ò5T\ ó1ñwħ‹ŝ!xi§…àŬĵmo×Ñ£§˘ë B €Ż?ï–.ƒìÒZäċâü†‚ŭ)ŝћ„UnCŝ>HĝĦÑ7⃺Nq:îŭKníW~~…0ŞçD4;ƒL'İÄúħŞ&*ġÙBœdG>cw=áéÀ@İW2\C+£gcV…úv¨Ş_gJġĦ fïö‰°Ĵ̊*€Ž ûÈ ħ·\ÊaD²zCop÷:OàğPÒş10öZ@ZJÂûPî)÷‹)h›]LİŭH]-Ú*Eàg,âdyŽĈkŽ}b^ĵħ•ÄùÁ¸8 Ì4Á!èú ^2Íż5 ÀhŠmH=pèEÄáWyŜmǨ ÀÇÑ(5°£QϰŸàĜ˜\>IV£a…y‘šhÁë„ŬÖ`Ÿè5“ÊĥŽF! Ú¨x=Ï-ä`1FĴ.c…n"Ş"YR ‹=½ùoĠ™QÂݞô7…Äô¨i¤ï9˜£Í‚7yY,$ĵ6ɤM=WĴ˘l‚´‘Ĵ{.j%$Sĵİ4¨³ıÂTÇ˜Ĥ s247(C ïK0ĤiË=ŞÜÈ ¨˜µûV‰".Ë4Tl£™—<&x7‰Ĵ”XÁĴ+Ż(`éÙ½bşlüR˜ŝA¨ğSa2¤ômĜÏÁ,AvXwLGÒîyĈ([oS¤xaÉGn›`“ÉÚıDɉóüšòĉĞtG΅•=׸@,ŠM`QHÒ;„'Ç.ažŬs˘‰Âëj ¸*sġ½ 5YsèħMÄ7 Ñc‰Œ1‹jï€Ĝw Öŭ#Ê<ˆ-—2R ÏŞò€< ˆbË<@ÇÄuŬRs9ƒˆ:њíe¤²c)}úK(‰ ÀŒFûµqÌsG#rĊ™[™˘üY cŠÍ[iŻîŞhĊ³6ż-IçÇ\8’Óó3`UXw:ô3¨C‘uîû{иŒkùĝ‚şSó*uĠ5ûQĦˆEÔ2òG":ĵ‹ëġ›ŠuSÒĥ.*^¨ı­§ÒäĴ>9‘Qšµ„+Ž*Vƒ{”÷Á-m°O£ Ħ/ÔQçü8ÏeÉ6‚ħ´•rÊ÷ ŝ“!“}_âΆ\>'é#ôĉı`Èğ>ü{2ÇQğÎñô£r\ŜWċï‘NFBݰµëúHZm/şé"½ÂÛz­ oÂĴÙĝ(ĴA´+á’nĊ†Ĝd}dv9ëSğ‚9ëšMĞDUK}ç)´!à?yñßĉŞ|·StĤ²{”áa?ĉÁ‰ŭ{ô‘e‡ĈY† ¤}Œğ,`!°Aí<"ᑿ„Ù£d!9ÀR‹šnıı‹mrŭ·GĊ†Ôd¸TôTόXŜ7(`$’<§èV•ï"OB<0ĞĤ€ ÁŒé+\_êXä À³O]e—SıÔU–,şëĝJVBùPcHaŽW",i +î&™èëöÛ%êı]ÁŒwHß3&M¨EM‰ukÀJJKšŸîĦI 4Ç.D`úž›ûä¤%i ˘èħÉGŸ 0(Nmü8E0ï#ċ~×ç™~hmP§‚/…yKYÂrËıĉ‰ Qx/r4o{na]ƒÑ&&h÷~L!ïĵ).Y&ğÁhYä…IĜä˘MÎn0Ö™ĞÒ#²2ÉÊĠÂn÷ċY Á}ÉŒĞѳÈF-³[›C(ûeFm„LêwÉdOsÂÛ&˜ZŻ@‘ÓùîÒàĈâNčÊÎVQgH†hBì•5")o!˜ż–‰×ĤHSìHz6.Zü •ËÍÉîżÁڈ|n³ œĊ…nLo8ánäò––Ĉ›(“ċĜ{MmTƒ|fÖ0Gï°;ЃH„l+IU‹o'NżÉtÀ ĝ×y³ëK]EMì:Ĝ‹!”KaU\/Â8Ŭœ•…çZQ‚¸a{öíħ>^×ÇC}ĵĴà%ġZĵĴßŻÇ ĴÖE}|Ĵ ˜ž,,Ö9´Ğúĝĥ>ŜÔG1Ämw‘ĤÇĴ›?²/¸V˜a{“%/÷K ˜Çc2Yħ—C'ĴËŭ·ÀÊîİŠcşŽĉR8× ùüoëžÔÁšúŝIÒ/ÙAˆIÊÛ'* %S¤\nmc€°ĝ0úö1]ÏÙ2h™ß²<<£|Z†ĵĝ9nñĉS.yV.nRŝ+‰ħ!Y`ı+"Œ:Ş&  âĠq4·Ğ0h =Spéħ/¸˙”0Šĥ×ġñP/…\îêó˙Ħ0ˆ–z‘cטdžI÷/8o8ĜËirħAĴc¸GÉÛä€İĠó`=ÎÄġ²ö6 ‹Yxf{â6ƒ–Á/xÊÇħh²à/ù=FŬe[ċÑÏmCyOèóĠÁ4z1&wŻİܸÑ!ϽäR8QÑĵ/'PğßVşĴ 0DsmğĥĦ¤²´ĊOÂGC_ĠêKRĞtpGt8*XĜ/§â5YÒÙKUڂ9l“vHîbƒüĘŻ"˜°%#£óTuìvfsRœKŝj­Žg6ü‚oކĝM~Öŭ3ċ5ċú Wĵ¤ÒRU[%ñ‚‚h.YîùŠ÷g-Ĉ˜ŒŻmnH99ŒĊτ9.@0h€“mğ¤=NÀlôg½t3žƒ mçÄM€Œew,×ö\w•,PŞġÜÔ-SbyÂo½‘ċ(ï£ğ–p“ĥÒ â³Ħĉ.äqk—¤HĴ(¸ŝá,_äŜR’}ුàgAÒ G``sxg ¤ïµó9ÂÖżáUlx˘HÑû´d€ÁYá6m–xÒ0“'“ĵT6ûî<µ)Ğ}À(`ÁrU/ĤĜ¨á0ΞO‰é‰š>÷ĜE˙œ„ÂJÇNuR“ñž‚€ú'œğPˆxaµ˘żÑÑm3X•5½(”xä6ÁXö [ùWl1/G˙{GÄbu?òèMq)CĞ||yĴo·wX͐Ħ½Wĥ8}àQ¸ĥÔŜÄs$­MŒz’ÂFÑì{W n}Vò€ ŒA9œÜ„)MːAÁ7ÜK4ğτéúöüÚğ•b˘+|`¨^]ZmŒ¸(ÎXÖ°ĥçíıYA›ñxeĉĈÖUYİ,Mv"I˘sY9w!<Ĵ#Dşl+ 8÷'Vöok֕×ÙŞGêì§žÑ×rJĴ=Öx[ÏĝD‹t]_ )o˙wڍŝ)O+Î-ò:ôOTı {!ĝȏ)ʒ˜Ġ%VÇc÷ÜC˜7·úäŽë}Jí§XoRŭü)J^ÔG`wNJ cEú ?¤&T½xDPúy'wòŭ Ì5~T*ŭI}Ŭż_ၳqğ€JşN‚ 9…î¸ò °²Y8ÁŝÚ)­+5Ü„÷@ÍŝX6™İ ?İŻ·PԂ Ž.é[Kĉ·›~Êô—ü>GÓqb>htŝÀc˘ĤìJ\‡$ÁRĜ^~W"Sż2qƒoö&¤*`‡ät.ßr5ÂfÒġĤŞßwDȕ܉zŒŸK×ùR‘İíË ^ fÓàv Íg7'‰"%.ӕGċsƒj3!ŞÍÙ qVŬbÊÔ²ë'|Éó7Kĵ2Ğ|ŻÖŜ)S²X%´„³qäò¸R v”ᝈ"” !é_Àħµ#„j^ĥ öŭşîï?ç›$oêĵò>ÊâĦßvßžb,a<ïŠXġWŬùˆÎş£‰e”TŝÊNÉĝT~ĠӇYü…†bŻËKA•÷]ĥ †Ôàû¤°6Gˆ@ϤŜ˘@r@áĴ˙˙yz‹Ŭ苣‹ßÓ8SĈğîšşµe/ĉòôú4êCéàĦûĠc ·‚Nôĝç ü6ëÓw'qNTe…w*OÁœŜœhàW_Ŝĵ9ùfJġó݆İ)Ï4X h;Ż” q§ƒó>:@+P§ uhh³§żŻáNKöcÌç Ħ`0·{Ëó§ñşû˜šn¸Ò`b…CLËĝÑ! ­·í.ŜçŭXŽ7àq ×rÎ;nbĝ&Ôü’nWë2Żò ‹ÁuµžŻLÇ2Š=UF'ÛB%çĝ€ î,݉ĉ„ Û²à÷„ħ1vTÀƒV‰Q³1,Ù<Ĝ’¤9†7GüĞ :a·Íî­èZJÚË7BŽ^ñ8*e*ĉ& ×VèŬ÷™óĉĤL™`r%Mî\òŝĊ:Ò¸û·$ş¸ošCó—J‡‚´¤t@ğÛĜU:sȗ ó uÎë-şCV¸"'˜B>6EíŞ…ò~µ=ÍJ1¤ # ×{ĈíšħIKhçgx1-jŞ÷™ ~²Và~R°5ÎK^ëĵĞ%àL#€oĞÈ\2ygméÉC+0‘YğzĞÛNäè<˘~7÷̋6Ùv ïÄ@·4­Ù,ŸCóĤ\XD6›Á˘ùD†Ġhŝĝ4Ĵ˘Kı}^'!äa Ò÷܈Ï[¸ü%eĉ€94p6ŝé…*°òC!¤bbR×R,ÌûFJ5ŭ=”6žÜ ˜›(/âÉL!ğÌ÷lOi2I ‚¨?žüàÎŞendstream endobj 213 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ]O1ƒ0 Üó ˙ *Ħ,tahUµŭ@p”$ aèïKtèp–Îw'Ÿy?\gGôĝ˘Ĉ:iñkD‚‘&ëX-@[L+gïo*ĵ?`3Ùù]ÍğB\ÊŞŜCè5-A!Eċ&b]UÉÎÉÈé?éŒĉpĥ­,MƒĊ*9šKœ7×ÉÒ´4ÉĴ£ß3Á‡œ‚ ì GpS~endstream endobj 214 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@‚Şv‰XÒ%CĞŞíˆ1C2ô÷ „tèp–Îw'Ÿy?\gGôĝ˘Ĉ:iñkD‚‘&ëX+@[L••‰³ Œ÷7ŜŸ@°ÈìüfâOq:—Uğ‡kZ‚BŠÊMÄşĤ‘1’‘ÓR ŒĤ:ĊEV,ŝCÉÑ\⸠¸ĈH.•ĤI.`ŭž >äl`_@ŻSjendstream endobj 215 0 obj << /Filter /FlateDecode /Length 3953 >> stream xœíko·ñû5?âÈ^m8|³E 4S HQÇÒJžï$[ġI'ë'˙3$w9ĵJşÄEœĤȇP{ÜápŜŻġ›ıèa.èżü˙ĠĊìÓgnŝòf&ĉ/gofœç˙­.ĉŸĝ¤"ĜùñÙ,½ s‚sg\Œž_Ì:ż8ŝ7 Cġ‚†^ ‹/Żg'Ŭ³Ċ‘è Ĝ Ħ{ş½҇]ÇÇ!8-ğíz!¤1Ŭ-=• ”qìégôTxéñÏînAë`@ıîlñíñ_‹ ŒVż[i­z§Ç#…£Óqî‡mo `°R:ÂäHş^@pŬŠv+/­ƒnğY)%{D‘½ ^ ‡¨D€Jàßàc§À9Ŭ²7ÙA7CáĦ;§§R9ŻğËá Ş˘Ħ:,]Iˆd~r<ûŠ˜c‰}Şyñùĝ—™×İ s§¤ïµ_Ì xŬƒŸlfÏävÀ‹YgçNŞĴ$nŸtĤ‹A° /ĥ)WXŜ¤ kB· <ŝÙ=Ç-Z# îĈ´AòTÇí€[zŬŭ Ÿ*a+úĊ½™óŻı‰Q‰ B·.ÇhŸÓŜİÔŭ° Ĵµ İ=î]^DYóŜzŜUbîâÇÒmñheğ+_kµ@ìŒó‘&ŝFĉ|ïuΧüä'Iԛ¤•˙JZİ AġBâ)ƒRµ^1<-˛ĉrY–/ùkIpkĵ4ÒFŬ˙xqäQD K$Ğ €owR ó´·}ä ê g8Óo’ĥ)ïşo:&0 Ĵ- ™(óLTĴ6Ğًœ“ß,â}ŽRċÂüŒĤK­GÑÏ˘èŞ,ŻËòĵ,ŻÊòĥ,·üµÉуµšÑÜZT@œĉ`ßCš’­ŞP*—„zPĜ‹´YFꐑöRU˘]=ÊU4 V?@ZİÈ+´ÇÏğL´6a'%ÔÈ%Ëc„ŞÁ­ ş-Gƒ,ŒÔFG,B– ñViJš%“Ġá’öESz˜mÊr]–?›€zÓ;ş_P‚'£ ™€ú" LŒĥ‰Vh“heî§àá¨'µË²ĵ+ˋ÷<(g(RŒ<ÚHÙ£+âäİż)VóĊŠSßы|™ ]8 ÂŞa/‰ÀNèÜ׏Ì3Ĉ ú ˙+\ŝşéÖ6Í×NßáÀ-'×ô§hÂ:…w(Ù7tzĞü£tĉAë²yżÈ2­3ğt9HY’ÏB„{’ġÖÂıJZùzù2şámPŬ§ÑSZpVkŝrÛS²’#öA|ì$"Ĉ= O™[b1锲fŬŞÂO ß%‹=Ÿ‡ž ’{N‘†v)=8^xrd^=PŞPĠÙŭO‡cÀ!+“Şû;íÀ×ÒßQÜL^1S`ĥÁs¨ï˘żÎ[à×gä~›Î’˘³´ĥ ˘ î3d7siE&$ÍĈz r:‹aÛÉÖ8!SÔs`“# ğ:˘ĠšŸŒ§ÄÜX'BğeÌÇѨĞıN‰ÛĞ" Á+&É,ëÍFqBgŒ'ù:2èêÊÚIŠ !i¸&ÈPܽXP¤²zlŭċSòGƒİvĵĤĴ ĤÎcœĤğ •öAX˘eùqET3Âh‹žëĝĜiMônY$IĊ DöËÙñoS2 Òa{œ2>_ß­²Żc$—}şE9!´‚#óNğ•PR<Ô"ƒ`(ÒÛ Ô%†Ċ0°ÇĊWċ1ç=;òEŽĦUÌ 4)k^…èA%ĵĠ2³`Ïĥ‡X8!m Q-iMjı¤îŞċOħ½È{çĦwÖ£J5 |JÒ¨š·mIÛİ”[­¸*…żĦMĜnùm R&m°ËvžƒˆaÑ&Šİğ”apnë˘Tñ‹$€û)·—sìR.1Cf³·£N#ë5Ä*Üèc–‘H0jÌ!FF$†Ĥ<…9IÖ U\şèò´Kĉfš(¸Á½#fœ@´C 3d\ sâ'|cŜ§ĈÊQÔİ›ôšò&Iœ’–IYŜF;ï,ñx˘N‹`ĴÇˌG"‘“’˘²…JHPRÑwĦ…Sݚk£ħLL#¤=UßO­™O¨:sÜ9mÓv!PBîı@fı¸ _Q‰ïáĠvD#[T U%ĤÄ÷U&>Êë(YŞUN…Ş$­49 Ëİ{qLÙx>óEJ•4ñ,ÔažmYki3BbγRêlgŭèn„Ó£‡lĤ8ŒLU†f|˜*dŒÁ m§§ÎZ/Ô=6€ÁĠ=ĴïcğŠèy†0 +OVe½;cô–•ŸO&¸·nrïÁĥô‹&OÙòuYöÍxċ²ÒÉĉŬĤĦx{e„d*­xe™‘†)ŞW̵²Ħ@+Ħ“áfcí}ŞV!Ê/&Y R!Œ!ƒö‹*–˜țz³7hDwD~ ½i7jKŸ6& m–š¸Ü–ċe“ğ4QĦA7Ş/Sqjô¤,×ċú*Ú^îşLbŒ€c§àKKĉ3_6ُ"ĞÄÔÉM²“!Ç@)@ ]Ÿôx żêAĞPĝpmr§z|Öݞğ,vêL^]a ,îÖYUĵV´Ħ(^‹=‡1Œñì¸5VvàJ×eá‡—%wy‡VDıİ4V˜£ĉ9M]ŜĉÇvŠ1E§IÁZÀÉ@ 8M]•Ѱp”£‘:…¸Ù‰‰u„LĦtċŒŠO9M;¨×ŝ,yı˘ĜÏĝĜUÈÌĥ<ĝÌéAĈĤĴÒĵ£™_O8?Gâ;axCˍGËıĥ¤’ħĠéqîyI#RL!<^Ÿ3=<™·<(!֘g£Ëì1‰pC#6²Í’›>?Ŭ"è“G^ŸŜĴRC İĵşMz§1‘ȀqhšÍÊî³"Ÿ\™˜¸ŭÜĥz׳ÓXÉ£&„‹&UX7Qâ;eŬŭŽKqħÏ˙û#Ĉ|†^šĞ‹š¨"zĴĝ|K+€ö6´hazĞJXóchğs<гñU—ŝQ#”ÑâQÀŸµôT‰FTRBŜ“ĉ^­hŜ6 \MÓ½6 GèHp?ĉĉI|É]e˘áĵy?›˜ħÓŜ4 uŝkÌĊÁ”a½˜6^NÖë¤ĵeùíÈ<–îŝİ,ż,Ëçeù¤éC~Ž£á–èV>†á˙<ıŸ'ËĉÁ _ĉ_5_ğn>]5É×ñ;âġ‡Mµ£‹ó‡ˆ\ñq8áĤ Ğ- ÖËÀaüŜú¸Rċçß3š}Ó<ödĊ~@>nÚÌû•¨Ïğ‘Ñ÷y$}G†r92ıÌeóġĥ>páĝ„Cm!ÓĥŻ›^6İÀàfÈĤ?²>ŝYSÎv)ş—júÊÏ݁ÈORJ ŬċŬEÎc5#)İ5"Np›”2´áë…3˜ÙkÓ-7w§v•ÓŜ4ügtÈy/üiˆMÀÉıaË%z˜jÒR{͈1iĝe|L h*еìËÀŬ[§vĈòTËӏlVĈİ+ECUĴ^G•)KĞùlY\J£š/bMùaÔÔRċ°5(ZĦ¨ E˜[j ĈqĵT0½M;‚0Ó3f*ŜI*uiżóŜkµíŽ‰Ç‰>Mvñ 7ĦŬûġ‘ƒê\ĠjÌûÁú2MkúFîß/•Ğ1 ^;Ì̕Óıfç2ÓìŽġŭOf7Ueâlz³=`Ç*ä…ü/öĉÇ1QİŒ{™Ö4—8ÑEj|OŒÁ³Íĵτ’qĦš”Ïw­¸ĝ_¤­2ìڃ"Ô ÁK* £ĈÒÀŞq`•7ù0OûÛ>’p·h5 —×ù˜Óċ5> ¤— HHŬèpŬ£ JR0ñô……@G%$n è:ôüb&ÑŜöĝÒäï,Ĵ˜“A¸üû^Ej€JëPŞÒ¸_Î=Âĥ>–ħÑŞ!áPgÉ•‹8ÇiêÀA0Ŭ+˘İĦAŸ, “fǛ tßG?li€èj“<-îQ‡ARğ˘c@.”·¤^;ŞÖ#PÙ™Çĝ³L“?J m\÷ê4=–Sg/£+ İŝŠĦħĞM< é:"ïkHˆY,}‹‚>5Óôíŝ‹ Ĉ!-ƒšĜwdláÛy 6H5~xTÏ` ^è‘ŜIÇp^Fq ­Iŭ á€× *´Z*z 1ĝkŒFp^3Ú;e³˘ó§=M0ĠŽ(2Š5dĝoßLšWP ”/í1Ğ+’´Bjì"Gkï\œŻVËqµWOÇUyc;nëg^†C_”ċyYnÊò´,‡³fuxĵĈ‹{öŻ5HE˙ZW³˙mñiNendstream endobj 216 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2016 >> stream xœ­–{L[÷ÇŻc07rZkqVŬÛ-ËkS›’li6u[”W›äAÉğ )6ĉeûÚöġı~?À€qlâÄ@ HB„&äİRİÉŞtíşt,íTiÚ&ŭl]*ígĤnÚ´jŬĠŭJWżßïœÏ÷œï´y„H$ÊĜ´+o[öšÔçò“_$·§CĤ2Ób‘GĵEä‰ÍÄb+ħĜEĵFäYĝ"èÂû_š×.^,~’öNÚôFÉBIeĈ’ŒzRDV’_Ï’°J#†pbuX”ÈœˆÜ#uÊܑè…?yÖízGÈĴ;D3j 5äáîSCO{*§K“ÍÚ`Ħ…*{ FO´3í Óħ‡½Oáy½jôWğŽż}’²—]8 UPa¨9Ĥ)jÌŽ4ş8_€ç£nŞuŞcŞÈ”7i,Ġ½QĥèÀy“·)ġ‡Ú”4a Íğšï‹fÔ#ûëŽ[ݐ%ü@X)ïżġ!’˘,´-§"²Ċ…éНhŜù›t˙ŭñ~ ÇcGöĞÒKó蛨K€Äû ùq´zÀ›÷Ä^ËLĉ@ê  1z8ƒ¸ŭ,tA‡ħÌîfÌ ­€VïA;iżúLɐH„2+hÙçGlŬı‡‰™Ñâˆâ[e^ci ßĞ“yğï|: 䅎˘ü} aQm]²ċ¸² È]ĉ/xï°{iiò'G÷⨿[”ÌF2§ìÀ“~XY+X­ÇkY}ž°äĝ^a‚TRnN°;ƒô¨;ŭsÉûŜzÖ¤äŒ4pœĴ¤ÁÎfŜÙâ ŜCjŜÉğÁ)Omˆ%ÖYİÚ_k+äzÉ]Äûú<|ÈÑ" Ê Ïa –-ċ À’z¸šÁrPh à`Á!ĦŽšÙ/İc@cBÛ$ Và°Â÷g™³1äÚg?éDĦ$ <ïnĊÒĵj8>zÄÂĴúHŒ\è˘ÌÑ<Œ~.8]ƒEÓj²ĤÍĜ:Ûraü òè‰êŭE3uĴUġ?—[G.·dF<†ßnş>–}&ıçoP֛UV}Š‹·Lċ°;‚êÒ§Ïħ²Pš ġêġ@.y€‚sĴ2$ë<ġ†Ú޵Vќ8 ü?£Úŝ-Paµè~´À\ĉSeé @‡ßġ´YRXáYµ‰ÂwĦŸŜŸ‹=F;FĊ‰ĴDšĴĜ İ÷èÂÑöPïĠwv™%ˎuÔĝ T{}{Ùp†o‚{âħ8ħ11_ĤĥUk ’TGXŸżß=1RŸ3gğËîäŝ=÷韃£×lµÙ#•żiƒòTSÏÜ·÷öhïepu&ç’FŠÙĵŻ$×Êx·Ŭ‰3÷™ĝzÛ fħÎĈĜ@KbùƒcÀXÎh³PğF×£Žû.0Z\ç-t^‡Ì¤ÊŭÙż…qÇŭŠ•ĥêÒgQ¨è—˜…äb{Ċ¨5Èún@YEğ— ô2aóò‰Mż˙gô3ۘ{xÎù/Òî°l­ŭÊr0ŞTĵ$üJi)ş>ˁz$BϏMˆÑ‡IħĴC¨ÓVÔ+ĞħĞ…;C1JĜ9‘ĞĦrÏĊšóü×Ë·"{/Ğš\ħà…(=…ÖùÎ`7 ÉÇOž-\}RXÉ~£‚{bOqG@£Ż0י´8 ‡!œ\Ü%zŠğsüż*aá X !k†ç\1 òüŜ’нáèı :|€ħcb-&0s”Íji°2‡êr߄/MžĴ9üa\”,MLËâ×:“n?ïċĦ=uqT5¨¸*PAı½"ċjf=hŻÍEğmŬ”C“Qge…ë3°x˘ qgïòVöXú$”p (…½ln­ÁŝkSıƒ=óµ]k·´€ĵìo )MÍĥ_R’|lj‰Ŝ@Ï˙_ŸƒĊyĊ”yúHô0ìCeĊżËÔÜĉ {(ğŭĜ}ĈqŸvEüŭ“hŝÓT¤êkñ-½MhǚàûB÷6ÎÍMԂ´×™ó âïq´$endstream endobj 217 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy? AŠşD,é’ĦUĠöʈ!2ô÷ „tèp–Îw'ŸĊ0^Gr‰‹GôÂÄ­#qġ[äΎX+ıq*+˜n:ĵ?ùn@{ğ^P> stream xœíko·ñû%?â`è^‘[ñŭÚ~â´I$qí9@OO+–n/:Ɂŝ}gHîrxâêd!ĥ,@yäp8/rû۔µ|Ê_ú{x1Ù{m§§› ›žN~›4ŭ9ĵ˜~½€ ’Hë™7ÓĊÉ$„!§ZİÔÔjÛz­Ĥ‹‹É~ó͌µÌ g™jÎBZ§šËٜµ–s#Uón6—R´Ö›ĉ%ÌPœ[#›#œĦ½d ÌkĦ›c–N˛óŒï ϸ& aĜpïœh'c%<‚ĞH”c²ùgϕ—€|Ĝç'¸/N³œ ÓzĞ|s“ÏġïĵŒîŬ½› Û &Gɸ™9ÙrÏ]$HAşù> °ÂêxBí³ĥ ˘›Í3ŜÒĞH‘vĵù'é¤ÓMw1…†3ßlfż,sEE,mq ĉĊѤñ³ĊŻ“ıRĵeBLçR·~ƒ_ö›n à9p%Iq+LÂĴeà€7BXà-ì|>Œ,àZ‹fıŠÈ;ˆ(…4ˆG3…˜7(fĤeœ1 9J8€ ‘ëöç70ì½˘dхTFd Ñ_*÷(DîEĤÎŜ Ĥ(!a™Ö(Zà œ{ύÛÒŜarwҟ”'0F1UèċÎä­ÊóÔn´LKİÄ/%xIè2â›D€%ÂÚäċY>ËŞn‰D,„£Ğ xR‰Vrm?aÖLşž‹Z“CFb†à‰œ2Ċçp#ş"éäĴ“”‡d¸.ĝ5!İ‚9à‡³%ĴS,O2ï2ç²Ġ í(Èeò Ô¤”Rƒ‡èâ°·¸š&WÚ"W@·dV2°ŜiÀÇÑ'(ĉâA%cWͽ)ԞŞaLʃq׺ (ĵEF´É XKŬĴÖÓĊĞÉâ/ûÍkXëÁôkŝ>›käû°eĵÎ í2x™Á³ .3xžÁ6ƒ?e¸ŠlSŬm•Á?U‘½ŬµŒìĥÈàM×tnä ÔĊ]é[Á•ë9xTĊMÈ?ÜĊĴġn÷’9ÙñûqġÌDˆáH/“ŸáuÑׯ=ĵnSc$hŻˆÏƒ?û䠕Ĉ.Ŭiuï >ĥ¨ĥ×ĵUh·i÷¤rŜJ­Ïġ{UZWô=ßċ½ße×#úR3Ö9wàfĴ„J—üϳÍŜݵŬŝ›Á3HùŻqS7½ïçé<ƒż "UFwq·=Ĵ²~Yċ,ß4UI?Ë?ħgv‡PĠ}ú"Üí]›Oq- à‹pÒá•OĥĴ"¸Ş" ŞôĊ[#gY=Ċğê„Ó*^ܒÒŠ‚˜ÑOĠuğ¸÷uU‚'Û<­š³y~>=Ĝ?‚¤ J”.Ïo´{<‹v÷Ğ>é#IèAöCÉċKìïğ ˘ŜvÜŝÔ³>ĤŞ(.ŞëŝVġú˙Ĵêє—Ġe#ĉŝlm÷ç¨5kñl͟‰5×ß²ğĜCl|÷ŬülĴOÔXŸ×'lä]ŜÇF?R`üŸ‡ċħâiŭMğ?2šĉ ·^kŞ’Ĥġ† €ocñĈ(­š³sĴhÖ2Ħ›£Í!Ò£—ÄşêB­T9ë[µ’§ÀùǽÀùÜ,Ċ ÍJ+y¨CI'[éËâ%İß.cQĊ)jĞa:–kŝWµ-Zf½ísÈßVUñĵ*ĈO˘â5>9àħŽdÉñŒÖ—µĠĦl¸&U¨ÛĠ×PO%ġ8:JaŠż]œŒ<ġ͗u¨¨:‹ċ´AHjĴ ֏‘MİNYsInĊoË2q* Nċĵ]ËKüóĊ+V™VĜT7cZüz‹Ċ8lĴèYÜ,ĈÁ1m„Ü*2הKGŒHĊ¸ *ùÖy/††b( Ĥ·‹ùħ¨j›HóE%‹ùÀj,^„í1A ĥTĦf,%cœkX_Ò %á.Z…SVħŞ™ŠÄo+WjD 5×;KûÁ’sĠ•”ZWY‹–ħìÀ@D³Ġz€ċ\:üċ-Ûve ·‘ÖôÖtġuÄWÖׇŜ;šp HbÄ?qĞZ•ëqOÓ?ĠZ|bU4W”CU~ĞUĦ÷Dïħç€;Ż·Zyz6ÒöjAE_ û¤iç¨nġ²ü\h—•›ÎCŜÙ;J}'ô×üóüiE#äq{RáU°úŒKĞÁ?Ŭ‘°8OIçTÇ=Nŭ(ħìƒ?âáú‘4µGûĉMüdzĠğCEşWŬ~SŬsŻ*£ÊşùÔ1³TçŽnŞ(“‰g¸˙Ĉ—ĠSÑ›]D~Ĵĝìĥ~Ĝ{Ġ³UÁx ÏÁڇ·TŬĝ"è9<‡2ĜUÁwl3¸ÎàeuÙUutŬ·nÉá†ç.ġŒèğšFëıóîğ[(>+WFÖPSKžMEe˙Óç|9Wëtk•£‡ċlŠìPĈċSŞġĜ@>WĵâžÇU:ĵP9Äù(ïáİ#!ô‘ĝà•:°_pÎ8Ĉ–I!pĈµb‡. +gûî`.9áòšc~÷`ˆ ÇJĞê‹rÎ k­ÓܒxœD'fC<ĉ:ŜXŠC€Âb/†ġ1ìíÎL2½ì{~ŒÄ÷ñ™6´y“íIż0mû Íğ1l&ۜĈuŜêÊE²Ŝ§:ÖZOb­“€Y8Á2„‰ ĝ|>ş*š˙IdC#|ByšÓíÉp·ŠlÀ’fgIJΜ^“éċiO ×ñÚï‘~‡³˜wÊèÔPÌ­†IŻÀ£†ÎÓ !@€X!É84n{KŭËñڐF´R!/âëş;O; Wá|èC&QġqĜᔘŒ1’ë⋁MD"K˘7)ÄNTÛÑîìKÇ0Ĉyc0'0WĜ^,JÉÀ ²'fP†(è7 áË SÖ`ÚJŠá–RÎXԉÎÁ½GßVĠôm²Áñâ3‹@\j ĤŠœNÑ~@T…`9ŽX0Ót@h]nÇ9Xda3‡yúU G#˜ÓħÎFžL§6˜ÏMà¸OQD‰c6>ó`sàI­À’R›^ö™M+JHü[Ġl›ĵę”ğ çV;Ġë9‰wÉÖÚVPt8ĊċÊde“[ĉžċvzm?š{ĝ|ÀNá(İ"vž’úH1UĝËĝ…—²"i›ßQĦáÌ gàA¤è³,1“DŽJú÷‰y”Ê5ĝúz³ŝ„^Ċç6KÄ/(@+eÎ:ùħì•ër’[̌MżG†‰bìBÊ7Êċ*ÒâyĜhÄ˜Ï‚YFÒyèî62ċÓŝÔä+"ĈOĤ–ŬF#’Ĥ3À³x,Œël°ì/7ƒ§/”7‘™íŽîQ„:Ù8è$ÓËAÑ ‡lÔídSh÷ß{-$~ĝóä˙3Ż ïendstream endobj 219 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ]O1 Üy…@‚TU•"–tÉŞjûbLÄ@„ ŭ}!:œóŬÉgŜ×ÁÙü=(ħNGZü‘`¤É:Ö SeeâĴŭM…÷'l2;żĞ™ĝSœ.eĠî!ô𖠐˘rħidgŒdäôŸT£İNq–‹˙Pr4—8n1’Kii’ XGżg‚9ĜC(Snendstream endobj 220 0 obj << /Filter /FlateDecode /Length 4349 >> stream xœí\Yo$·~—ŭ#ĉÁ@Z§Íû°ƒv`'0œ ñ*OğA0:V+GR˚‘×ûïSE²Éb[#­dˇ3\6YĴóĞb_°ž/ŝ/ŭ÷èbï“oíât½Ç§{ßïñ‹ôŸ£‹Ċ°€+˜é=ófqz/~ÉĤ< ĞmïµZ\ìuœí|__}ĦLï ~wpĵ÷²ûvŸġZpĊm÷Ïŭ%Ë´êqĴ½·Jt>ïZwœœImÉì°…çŜjÙŬàÏ%SŬëŭ˙| §KNO7½v<ŭÓŭR²wñlí™ġp4ĴġÜwĈÉX Û38¨;ÂĠÒ cy7œï/½.PbĵÌFJ´— Ĥ?˙ÑNu'¸„{ç=h{HĜÒwg8+¤…µ—dĊ@Ĉá0Żüy°÷/AáıŜÂŭĠâ-ˆñŻ{Ú3½°RóĊžrÎö֏ç{/nµï½Isòsraë­Ö(é—ŬW@4wŒ3è ápoĊáŽĵ;/ÓÇñ²Ú (°”KĞğwĝïV€ŝtWÀhƒÂ7°Cä÷„mzÉáJ„Z}ol:Jyö‹˘@2Q€ †Ż:¸“’ƒ2]"ù†i¤y¸Œ‹ŒàAn’qĊôxC¸£İÉ.Ó+Ô!Î5·ĵš?Ĉ]ĴBéżÚo]“ƒbz-v\Si9ıĤ‘éš4ħqM¸AuÍ`jĈ:k£vjwVĠ‡yòî— *){ahċÛ=nĴè9¨!|Û ôt@”™÷WDş¤LTDBÈLpé¤í÷3­çTA“é9ġŠ;‚LQµ‡2ĵ)2nEX°Ûxyoë9+ĵ, •@ž6gŻ›·öĥT^–²Ĥ;°ŭ² 7Tyxڜ½…n˙@iá&n´İ$­uÄîÊ X[eâ÷ž%÷SKNoKòŒÓӄƒ Ág1>ŭxìr—F=µ´ĈÔî’šŭÇx• 9*||S†+ÊŬÖìÑ.Q5ÉӘx*ûˆÊıäââçTĤÛĜ꟎­ROĜŞċÈVH^uĜÚ0k9oêş„ Hc&.ë> ûéġž˙˘¤ä£ë½ùèŭş“GÑ{ûġôz˙ìïŝ~ŠÉßß/azÍżƒÇ˙miŝ³Çd&°äìÙžàWl˜ÚjïâV‡ċ 0½ÁâŬNj­CS—‰ •᪠Ïwœ;İF-oœQ·–DMw`öT–³Ĥ¸ˆoĦû‘ŞHUù:Şĝ•Òĝ”^ óVÖŠOï F"š7M)]7gÉg÷Vä1i*\&{éùzğ%y`}° Ÿ$#‡9ëxG0É@â7D)lʕħ–ñO„ĵïċŽ˘Œ™Ÿ¸^Š.JšIê/³’ċò焏脽5à‹Ĝċ}˘"%GÔ7Żq_ŻAÂŬêô–FLŜ‹"Ġş °Ìj—ħÏÁZ+8Îú.4kc&‘ŝıĉ&vÏxW{ÇzìĞK^doGˆĥO1Ş·Ŝç0ú÷ĤTÖÍájF˜KéĴì@“Ïš;lZüñ°ĦÍ`ĝu µ!|tĥĉxĜñ^—ênG-"CÇ@3Â|=x-2öÌǽjB›÷·B™Çä}ny*ŬwcçRpžP¤ġnœÙÑòtK›Kt:ġ<ì;QÙnڜV†¤>BT DŝNv;aÇğż„vKŻ/Cli“B8ڕx͑kyB‚ä!u†iÏĥĊ…Áèce#u<‘ ÎXBPiú¨Lš"j6•OHcehgcÖĊg"¸`êOsŠ>(-½Œ›iŻBîݘ×BW+7°ŭP3Ò~ÈÁĊŒÈÀ^UôD*U·ÂĞÂX[ä~="$!uŻäv_bĠğ ÎfЧç£,”ñ‚²÷$’ "ˆ]zYġF—+€9˘ZrVI?³!şp/(# óRRÌ~ःËĈ#4“îÀ7ÂÙÂ>ĜMĈ|ß •£Aĝ.¨BYE£›%I•T6…ïPÙú&Ğ9`kŬNV;Eó”Ä !diŬ˙ ħÑO,·=V%—{ }ŠVAÉäÔÍɰìœ O:Ž+ ĉ–8ËbŸs=ĉF-CDzJb³JRM"žM\[GID0"İÓi0Úî4Ĉ`Ĥ™ŞZ–ï ‚Úîc°ul&‡xµòĵİĴ7;ÍŞqĵLñĉĜ¸íá^›§óş ‡2Ü4gż(›2|]†}ž•áes_S†Ş ?/uhîp½ë´Ó([ÀêmwUq”żTWB31ÈP•ù:ÎJĨĦ€+è•ÖşjĴÂRì;6•6Ĉ6WkԖÓjXYb’í%FI-˜,)ĉN'ⵓħ86ż'ĵ~ /i£9é‚U‹’8@ڌµ7wTrphhiŒ :N4Rm^‘à6zŸ°a:6äôPêFÓĉ@cµzˆÓXçĦ’Juˆġύ ÎĠĦsġÀ,˘!œF™U )dŸŽgèîŞ8ŽíèüúQqçTÑbVhöä”á’hÌgè#4âêuI„9‰ĵFŝhÇVrx­ñôÄ â/Nôâú?1‘š€ Ċ‡6bŬ^KzȽwhĈÀáWğÏ ˘öC˙Û§zÀıÎC€òŬça-C4Š €upFAĉ5ÔÊ6iErL­¨ÛòÌ^Á°TNžu1ôI›UžÒÏZž.ĈÌMbŒA /’ALùŬ3ïf \ż¨€8yXCž´z‰VÖ0E[ÒpGż¤A•š~Yqœ’ Ç'f~°âT@Ñ_QHhŞ~à3f0éW%ÙóÍ-~–[a!U†+2bˆ÷ Ĵ4]>£›tšìRçš#‘pê >Kżnĝ:0^8.*kA=DÈ٘ŻÂDÄO°9ÀÍMÔ3İŭEĜu<^JıĊd‡:`f:s~Rۉ™my:)Әż›ìS•?QĥT€ì·ïo=ÜÛAöĜ3£RñŜĈßÓÉüSŻûğ7Î6aí^Î%lÔ6ĉ`ȵó*°„ÂŽŞZ^‹?ĴñSĞŻ3֛͝~SċĴĞm%J;Ġĉ|<µÉ‘ŝ8™&Eï…È:ÍÛQ>Ç팘O ½ĥu&zzîrFdú¨°Żu•]¤ëH ĵ­âb?µàи`bš8'ŭ€(YAáMħŬTšôÚá8YħŬ·nĥĈ\-×Lw€)ĝşS̏fSL™ËaĞŞÒÚS€[#˗%·xÙÎ-P÷YöŒ4RĊD[j[#S3għ.µAjl[œĜä0ó&›ÚL ¨R6Fì;(Xĥ¤5~K+TĤ—qú )!–^9ŞO…ÒßŜ†ş ³°Ĥ(¸7V—/÷›P–Žj|toÂìyËûӍ·“(Xôœ*o Íʏ|Güt\l„ı,Ġf öĤó[ċ ò)QĈĦ“‘›31#yö§2Bćċ´£dlŜôÜL-*(TĜ y­˜Ÿ,ëÛvïaš¤n9Üğ-ĝA-ĤTbj™œêu)ˆÏ™ \ UdJáÊàŝ§7Ċ3ĴbR+=ĉùù÷ç$2‘ß™ç%ğĦŞD#3°vSnG³Ê*#,‚8‹YĤ6Ä!oW²R{âv§Ĥ´Nڈµħz~™Ì@mÉ%ΊM·a_"0ż'ÊÚ<җK úráàSxMv!ò]€ž# <Ê]#÷@JkVH'x"ŻĤ5˙Ë^à†½Žu“:6OÀÚĜÈĥàzÄeŜHÉCŞŝO€Ûğ\Ï ñQPê7¨ĜÖV8 b䨭£Îİü· vŸD|ÂĈ{b[•B£ófYµ•Ӂ™魂Cöt`Î\݈L7qÇâKGDÙt·Ÿhq‹e a¨ħœ›ŭĤ?&Ĥé ÀWš}J´&µÏ—á—Í1ż”üAëÇW5²üĵĠċ˙в%İ_~S†/vžÊsŸ}9üÏRL(ş R’ÖĴPjš ´JŠĴU}9ìoħ:Ⅿ€uó9‚ĈÉ,f$³°"ĵ ïŝɍñ8Yy ŝ†Ġú­"Żë¨ĦĈú‰·ÎgĈ•³½W*pì=y/hTô´Ğ^żÈÑPM½*~ŭí|â…+ ߏšV2:`6†WËü2CLİŝ£&ÌÁ/Í$ϵYğéKC†‘TÀ+  ocMŜĊs҃N 7G2Íd0ıiĞ=xtaċC­¨ìvë#5uLùĜĉnˆÎĝĈ7ç:j żíQ0˜ ÖWW™^• FĊħT6uRS¤I9üŠlGûğ„/™ Uàĝ¤ÀÜĜÄTc(,Ĉ>‚‡Mœġ\WIÏ\bԆ„FcqÖŒ‹$N-úž*jžGÒçġ3b^1SaŻêë¸ ÖçŜġV‰ÀÚż4Ë&•Ê+ê˘Q–P—BԘ<­RAö‹ïh!/ AÓ^Z,„ĴÖ*WİĊ6FOÏrbV–(=†GĴÁ)l[§Ž˜+qU§ÖX‰/Œċ/ÉÑgšù“·ôwĥ"]ġ7X@ŽC7=§%d$`³9fĈҀ šŠ—¤[‹JyY— ‡¸µw#wÀ#òİ5"½—äE˘ö¤BŠ/˜ğA•‚‹Ö‘|ښ” pZ;^ĥ!ÊI]âĤF&UÀ{HOÍtHĴöżdĉŝYaĝÒLKM›>Ŝ—J=,İ&X13…ÜĦ¤ì”5“œ*2# ŜR‚ı-6IßĴÙöO[•û™şÉê¸p!6z _%hr’ɓĝŞÓë Ĥ¤fmÓb•B÷K…ÒÓüŭŸÉĈ?Ï̀+Âĥt5$iÌWıMʲJĥN>żH•áÒ[Žè­·%ùĠcYPĤÓà1aVáËWûqoHfİEĴHcÄm= é͈ĵ’m }û}í¸ 2> EğÔ %mP>GÔKîNAi,܁xˆßÚ*SX[=ĠŽ_,‚êꭞ?ï/µ@ ŠĠû4úSùçež$ 0'eĝĥ ƒĥĤñ×MÔJ†¤UhU†WÍ3HCéú² lnvÑÜ÷ĵy'׈·.Ûì7{œċXžü¨ ‡ĉı¤ÁèĴıö²y Bî˰ı@?ğU–wLj2´ŝ-òàŝéVÎí‹ìh`ĤI^HVb~×Íáœŭ´}à8y‡[´ÌwEy6îġ.îŬ4÷Zç ŽvpÙ¤pÓşÌIž\ӕ;˜E¨:ΜµHı‡ôß³Ióh:ëOâĥnìâ ³71XiUÚ _Ĥ~ÎïdH“Ë^dÁYsíy—áşô[|ò-½Ó5Œŝž3wendstream endobj 221 0 obj << /Filter /FlateDecode /Length 4997 >> stream xœĠ\Ŭsıqϳì?‚ċ—Ìĉn'ƒo UNÊrî!Ĝ>ëxyÑ9U+R˘‘\ŠK­üġîn`€îY̒ĵóCRzpˆŝúu7ĝélĠل˙Ê˙7/ŝùU8ğ:ĵ˜Î^|zĦè—gċż‹›³—ç0À(x3Ĥ)ù³ów/ò—*ÚÑX{\“³gç7/^˙™Ĉ)é&;|€g­Mˆv¸ßl§1(ċ>nĥĈè1$?|#ĴRÁ›áG¸d&á^OÉi7ĵĊ×&jÔpŬĉ{ÓF|f…×^ġ€„D§I>ŻLĝu&*Nfĝ=ŽIÙd`òşÎ=¨$v³Ûh?Ĥ`Óíëğö_{˙q£¨'³JĈ—M4£J*f‚ ä†ßÑA—wè˘BTì7[˜yR)·™"ĠG ğ3Ñ û› ~èĠ”†ĉÏ翃#V–ħ1aô>Â1Ÿ_”Úœ˙ށSWpÔ.☭µjœ´>Û7F C_wž`î8Œt0 ĥ-^ğ Š÷Ä&­CnD 2ÁF룷n¸Â×6ĤÉğá·&ç4J‹ nœ€;ò2ÊÁùßn l"ê@l·Éke2Ğu4Ñj˜ŽèPS݉•n²8U9’8G4p˙ùbxµùÇ#ŽcĤ0™Ìħ×üHw(!.i’z—Œ VÙŸ`÷$ö'<)<°*Ë;’Ĝ‚šĞҏ(C ÖĊà‡&9.§·í‘xjR* *†ĵ˘!ZEcf9T3S&ç#_ïÉ·À›U5ş"µiH5pñPċH3PĝBôj¸Iġ£×ĈsIEĦpt' ˙µ‰*éawMüħ‰kZ~È,°JƒI`7∊)s˙‚â-_˜½mû×EàÄÁ¸Ì‘ x çÎ è@LEà M0y˘¨şÊ¤ ¨˙d‡üı3ĵÌSXYˆwöĚóWJ/ċÑğdĊÊ?=^ŽT!ŞYrDÖÎWš  0n–°ï²öF)şÉCtާĉ´÷E.¸†Y.Aŝü‘\E/i‹`Ê"è :Û*3:—İ=–SŠœÒ,cNÁÍi'ó,§hĴ‡o3‰SHÜÂïıòŞAW/ÚtûëbĦu^˘D‚ŬSä‚ú ´WF…`…žĠµÙêël ­ƒïš`BuĝÊ˙npĞ>éü8dQÙòĜż!âaƒD…C' <û¤U;RËĉIv‡ĵoÔ9ĉ¨÷DŠ_n³{ÎT3CÈçc›ùÀv{Û·½ŒĞ+ÎèUO†át  2dÌCBàCĥ:FĜĤ?ƒ0VŜdzµA‡ácŒż‚ ÒÀ´ı<´Çħ=~h·íñĦ=mWŬ·÷íñ‡Ħ=ëöĝßíÑ´GĠ·Ŭ·?l ZžĈZ†ŝëüŸ^Żğßŝır@woÛcè]šŭÊ ™NyL™N5Óù˙ïxf"·ġIÎüöĞ˙Ûùğ‹ÍÚËßtwġLŸÀÙUú|ĝ b=v‡ö%œqòĞö8µÇ´.Ëќ”ċ‹öòş=öEâ?ĊçĜŒ•c~ ï~Ġ•ÂÏíñĉ1ÑcrÌĥŭĞÙĉ ta5DònV˜MVĝM ò-ƒÛ7„+2(xȇ[7)£$~ MòGĝÁĦ;[Àœ!X|?=˜ÙĊ½ÎŻÜb%Šá÷YyˆD‚ĵ-<áQĈ!ĥ+Ú`ܸwNJİ€¸c1EŽÖ]„ —Àh‰{0wŒsô` hRû Çí8ÂDÏW_`šĉĝ ¨Ñù;‡Qààí6óä„ÂûJ‹úÊvbtOÁ,5ì?ŠaŽ@bñ(fiA ŠœĊœŝP˘Ÿ)EŠ&Tóá,ĵd¤^4Fq&ÔŻ.–ÁÍ8”ürÖĜNZĈAñƒ—£uz'Á:ûĵk ’eD_LË£ñ‚öÔD[˘•ƒr@ĵs ²àŠô*;ù"Vôó9%˘wuLDôWLÌò!ݤè,£é‚8÷÷M%í§MĊŬLÎw×ytTRŠ÷ w!Yĝ£€ğ=Hf1Ö_ƒ0%ĈŸâğ FĉîĥĞŭ- §E‚(ïÄEŜœ ?)²‡O](‘=M“†î™Í Ŝ[ċ–5•ĵÚ6ĦżkcO.Cx’,Š”/0>Ċg#ˆy›w Y2ĊâB–ħHŞ0 +ĜùM|Hž‹ò}βc£wD^FŞÇ§ˆx[‡²``€Żçĝà#ñ{Ú˘²QšÂ˘JÜLOşaQ„޸ĜgU…ó•9!Ĥ•/+™ ܵE#WıµƒM9·%ó0•…Ó%`"c˞i>W6x˙,ž´9ÇÇY aµŜO:Îz@_2 ³q‘wéûé§}jÂħ(c'Ñ·Ï´Ìù ž£Ê[B!³Ä`~„dqİ`ësÎÜò2„(µ~>'ìŒSx6ÎGDóÌàKPċôêsŸ:–zxŸ÷â'S ”“¤dä´ĊŒ\@÷)ġ–?ùô“'Í3Ĝo³hˆĥ£2 }Éĉ%&ï;ôşf#s²èqxÈı8(mTÖÜ×Äe†ĤÀ lh0K³c^Íĵ{“M˘G)964%ÎĞ{ù—. İùŽ0¤!‡ó_·—ż/Ç#ŬıZÉĞPŻĦİÇàÊy{Évü}{üĤë‰YàÜË*żÇc$áv? ‡óDßdÇ?Á’{’÷]§€µ4È·y…ƒÛŬ²ó&e+iú]XMÒà„QcеjX²Ü¸´/q ÍTµŸ[÷;Ş3g!Dċ@äy` À5ĤŸÏӜP¨nÉAÄï´èĴOÀŜ§•Ş=!*8h6iá ÍŞ\ q02ıœĦ­YVí‹=2Ό)g7qÁlÚŝ&óĊ#^$‚´V:*úóTĜOQ³ÈĴSĠ|”²kQƒ;‚°ÀYç-7ĝsì äħ÷ĵw°öóĉ•Qĝœ KQ ½"  SrŬ( 9ğ^Nd˙•†ÌŬŝ%ŝ0[MŸżë*¨ıĤm0xµ¤zYq2ËZ—ġ”^ĝKcÁ_Yyŝ+Ñn=èNĉ%:Ĉ£u”M˘$n€Ùċ! ‚™żlg:ˆ…˜QÈ­˘ÓóÑşkôqùŭÒèŝ§ĈZQ7)äiğˆGDí‘Ö‰IÖv˜ú|jK~^èv´•R=§ Ñhyé¨i0Zşcû`ŭ Œşċ*„{ñ‰J’~œàŽ/YKµEs9KÓ]?`P*Y‡s,NI!5‚…CEĤ8+••Hš|,iĜ֌+q.ċ'yä2ck—ÂZŽċ8 Ĥĝŝ랎Ĉ„-?WG‰ÑOQQ]ÙĴ2+—Ğ_b&—2Ĝ2\ԙrÉ<”ĵQJGúLñŻô,k´,Ĉ–35’Ġäú!ú7 %ÄÉû#÷VTàgf§Şĝ–ì”ÈħPzJ)֓,•%oŞÂ|)›ùï¸ûި™;-F>ó÷9IĤ(úĴ]4kQkt³dĜû}‹ÔııÉѲĈv€\żLĊ KÌujGhÌädWƒòZ†ċÊ÷v"ëA<Œ˘%°¸Szçĝñ›šÈfDğO–chHl|ŬF²ˆÁ*r< œ7 A´„àr8a¨“€Ù­Ŭ…œÄŜ— §¸ĉ€Ö˜YÏïêç€ƒ_K°°tĊ+­XŠĈ­jĤcRÂ\íXKIÔZŻOÛ²cċñÙuáYJ,àċô&û(kÂáMWU—ĤD°·Ĵl³×ü‘hˆJ-z> -×e“YYşşy>X6pEĥċvĉmçŭj[ w²*ŠÌŬž6Pu8ĝ™ìÜVòZ'Ä#bë™E‹Ä[ġZ1¨(cjžvŒ)91ZсŞ^,Pg‰ÏhnÁCċ2KŬ-8 lçÉŬ-ÌAÒvZvŞ‹wĵڏCŜ˘Unmç­{‹y1L‡ïXED¤’Yŝê2ÇB€Ĵ„Ô\òÛ<L–hÙe3‰Z÷1k%8Q•*Á\&RŠi/ĉŭŠƒ”DŜ.#q<Ħ’½‚ ùEöŞwÚ%—%N[cˆ‘ĉÄùċZ8â75/òWVvéöÛo(°òdR'Žaµà”ŭ)W‘Œ{)§ĈùÌüFŬV•¨ğƒÉßĉ- ^~.î7:§cw²&2O÷SJ($0lܕÙQ~.ğÚı6yß)Êê_7-#ŝÄY˙³í¤Âĥî2áy;§0fÖJ‰œ|ÓİŒ–ĴJyJ1(QĜÌŬ$€ ËlEi‹|ĞDލjÏtŜ›,gV¤@D°żÜ`³”‚i™^šê*ï2 €tDpÓU6,˙&œT6…µIŬk5>™>4ŜÀÏVšùfŭW™ŻKÁ1ÉĜé}ô—ĵïÜnۏ=ĥĴĤQÇe-(5”ŞêRşRT磙kıÌóı˜Ç`ûLQÊ!c7${ĵ´ÏS…™éÊĉùĵL)’Ü>R\%ÉíW1q@sĦ½›Áv3$ -ħ#ĞÏçÓÁ‹jC„B‹"ĤÉÁP6 EëçÀ<÷@‰ž °gf9ŸÎınıÙÑOœÑĝ$ÑÂO–òjêQI,9£ÄÄX,Ċ™ÑÎKƒN›Q½B4I‡H•ġ| ˜áı}ÌP'Àíñ„öŬƒ“ñ<ïSĴ˙·í‘ġhíğNƒ½}ÙYï×ğöĝœĈĊ~gèoÚ#kyû;Cż½Œ­vµÒŒAp¤†o(+µĥÓ­‚ĥÓOçìĜ{ ĦH*Ž))VRŒ HVdzG˜0#e+­ı°•€WíñûöĜ/l†ĈQıeˆÉ5t_ĴEìI2) ĉúW£nğ[°a4`nŝA aC¤`!•µÎ)äÊ)/fİ‹D\aà™Fhjµï|~ŞĴĝ]ËtĜÎu(Ž,Ù’'+„lŜX×I^Àîó„9áҏ(Ÿ›ó6†|dž°Sĉ„W—ZÒGTr톭+ݍE3]•xtVVĊb‰ĵC‚kšàŸ ż,":?Ì;ĥ‚(†u˜~ÊÙmj$Έo^›½\jùS~żìG°ÇMSs…Ĝ&ĵYûĜYƒÒ|4^)!°ċıN#^\>bjħä qÉİdêUĜÙo7t_AgM÷&´šŻ9€qŭqŽ ;>Êná×>ÛÀ2×Cû*ߞ ĈµFĠš“Ĥ&pĈzÙ>)¨˜hŞ‘àċŽènkѝhĵm›ôäPú]÷mìç‹ü>b ûıüˆ·0ü0\ìé­ÇÄĠuıgŝá%!Lƒîó/r‹n2*9ñŭ›ù[eÓhÍÙV2í3&Ĝöwè˘ĉÑ5 '~ÜԜ1S=Ë"Ġ’ây PóÀ†Oxğ˜D&ĈġîÔĉ.šéXıöş†à2Žj×-'îÌ·ùĜ22rX°6bñĴèZg.ġ{.Kä•&^%íàyé)àôµóëmĜŞĜé⠜ġ³ğ8€ÂêĊX6ċĜµcHyġv>M'Ĝĵ/ Ż>&Ŝ’ä(_LĥŬ&äùOcP>eŽy'4ż)°żĜòžÁËçĵˆÒO&ÉyiíVşž˙zˆö‚OĴˆRhŒfQĜċš÷R´„Ŭ½^Qğ>қ{Dèo~°÷˙ÛâÔc£?żÊ Nĵb’¨üщ¸ZAĴSçëñšNéùD`ökñ]‰ ¸ÎïÈM;Š)uTݘSu§,m£ln9[ù쐏Ğr$mŭ‹rû bĴTu´_‚‚;ĉ Иk÷CD›c½9ß{ûÈğ´éÎÔ?·/œŸKˆ…ĉLßEX´ÒÁ\” ĉêÂ^ŸjúÈ w›MŸÑI^ûk×£­uûĴ¨6ĉolŭ–ŭì –D:”İ°R Y´dâ`€w:@ìm_š/ÛRTİ‹9ÈOö™ê\}§£êÔßñĜ.aҀ;f•`Tó˘ÍnDùQ\0M˘E}ŸE7;âa£f×HÄ}­Y†¸×½×ċrk’—íh.ĜQ‹›—9.ûĉüĊŸÀežô7uÒúendstream endobj 222 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 245 >> stream xœcd`ab`dddwö Ž441%şğzŭ¨gíĉaîĉa™ô½Rè°à>ŝ] À„ ËV0032²h.˙ÑÁ÷sî÷ŞÍŒ÷~|gŝİŝ½JtÎÜîùó+ğĞä˙ldĞŞì./ŸÛ=G¨hʂóżĞ˙(gŝ!ù}•èï˜ïÑġÓ;{›ğ%›Zz;§5ȏùûˆ:;ğ[$Ĥ6MÜÛ;}şÜ÷h LŝÜÛ5İmb·äôÉSĤġv÷wLïêŭmüŬ0rßwïïŜ&Κ1abOo÷$ŽiÍSê›ÛÛäĝä¸XÌçóp20˜˙g\endstream endobj 223 0 obj << /Filter /FlateDecode /Length 6598 >> stream xœĊ=ێ\ıqyžìSòŭĜ¨Oxż,‚p`Ç ŒEì•khiF£µGÓZ´ğÚ/Èg§ŞÈCyȞÉ ï>èôY,ÖŭB}·‹Ü ü?˙ùòÍĊ?˙Îïnî/Äîĉâğ IıËĵ|³ûĊs ĵY˘ˆn÷üĠEúRîĵŠBíĵġK´f÷üÍĊ^ŞËç†/Tl0n ż{~uñÍŝw—bħJé÷˙}yP`˜5ûwĝlcôFíO—rBYğo•Úzöö0E”Ñ[½˙€˘ÔÂì_]ŝñùÁêZòĠ|o•_W˙òò`Œ^BZÛFá#, c`ĵŒûÓ{x†/•òĈAùEÀBû—8Zċĵܟn/ZĞ%¨@¸” µ€×O…³ÁìŻqˆŒ!(=ÎĦaʸ˙ß*íaìŬşŬ PHX,Ĥ-ŝÇíİ´K4zwÒf üF§j\[üÊòiğAkŬú Išö+­UÔAE[ó-¨ÖÂ[Ó"í5CmNOàò4‰—v['9ŜÁ³Q Ĝߝt@<Ŝ·"İWĝ­*¨A³Òñ}'а§9EÄiÙħñçĞ <Ÿñ”'‰ûtô@x~ôR#¸DFXabCìŒïéu„9xĈ=Àŝüvġ„WĞÂ]r*|“F¨¨ËÂĉÜĥxÀ!2ĝT½Ò’l˜ŽÄœ£% yí€3Ç,i˙Aşŭó K^Ô*çV öoÙkÀáPıŭ_.­¸`x°´7@ÑŝH¤ ¤ÁÛ) %ŸcèRıdE܏;ŽÊ€aĝıjÀC*TDHˆ’ƒ–rq R/ÖàĤqŸoÏ 8}üÂ++SƒpD#ˆA°°T!7dj`–‰³wé=  š2ġé7a$€ĝ=bJÂÖĝÒ$½”N§ó– ˆZîe”~“–ˆ OŽÄê~¤mpòaXÍ_ÇĈŭÇ!ùH–zàÑÂ+ġ0ìI˜Gá@ í ^XĞ9ù `ê,œíĝh.~ٗ ŸFxŸNG/ĤĊ È/ör !ĠĴ,wş9ıž(ˑš€YLĝ‹D[FÏ÷’Ġˆ •u$_¨”OÂÄ’ÉUzĴaĝ0Hc½!HĠ_ç)<2 P@·\Ñ ü(Ž ]BA0­°Néf "J%‚Aq@œ%="Ŝvœ3àÂ4m>D yFĵ|ÒY! UK Ŝ‰,’`ÌY}  F[Ĵ‚‰Á(]fœË@xÉ4â{ܐY`uÑj #ı6.†ú‡ä‹Š1Àó„j Bµ ·ĠÙ°-w<żn\=‚şI×ĉÇwġñÛúxĴ·? 'ûS}|[_Ĵˆo5œş j…%ĜÑv„•)|¨ ÜĠǟw“QÂüİ>­M¤£Í 3Óà˜ÒIÔíU(ĥ#pżÎRĈ ¸:1DŬ'f÷™ĥ‚I<\ĉ`ҍÍÁu)租˜HÚUħ0‰Gm>݁ʰa 2’uĜŞ ´Ú#€°ħÎóßêhPÎEûÉìXA+vu8'ĉÓĜS²qwÇúÈI#£ÊlYD݆½[ÛJÑì,xŝT—£U%°Ğ çÈG-½7PiñFĝÌBm &óÛùżÌ§ê}q€”U"îÀR[(êÜeöúW8CT˘ñòMùûİ/ċċßP´•Ç?쇳`?+ğĝŞü}}üÍñ—„hbKÜo.ž˙Ó£lÙĞá֘ĝ|?„öċCĜûü½˙-¤ùÓÏuFœüXú#Úhċ¸DiäzdßÔd}ücAÌóú’.£_Oa´´Ê"ż‚ƒlœ%gÜùÌ9t6Š(żšûâ0ÚKŬ‹C|ARuŽnùò”äH0á6 Ç[Ĥp˜ dĈÑkœ<ÏË×dĥRó]EÏ2.Bƒpj FyH …ĴN2<‘ÜE£teìĦx6'²Ĉ³fÖĝĞ!ÖA[:<[f˘ToŻ@I2`ɓE<öN:7 :xᏵ×y Ġ¸;G)’µéCcoÒîµZëĵ˙Û1Ù³rĊÑgĵÂĜñ4”$§!´\İĥZ§A pü•6r°'uĵ˘Ìè&3ŞE÷úŬU‹tġ‚Üiô(?ŽhĈc Chĉ× kôL\•Môŭ\ˆqsä8dQ$0“]…>³,4âÁ²Ú˙Hg£­×#·Ħ ‹%cN(ĠúL7C[Ë €@8gkĊ%8oĜAŻôE‡?Á8‚Z٘véäŝ×GœP;pH ·fNoÓ°äPüfĜ‹"O;µÂŝo#Ĝí•6Ċö&Ñĵr¸Tqm˜ €ñöӊĊHۓ¨C^÷sŒ,ĦAÏpkfñÁsïxŠĵş"êd8֘˜(fĉh³ˆémĤ§èĥQòĉyàݍ)ÂħñANë!ƒÉw?Qm|ü"ŝ’` ïˆıO?ÖGĉ>-·l†S}|ÏßĊ0XÜÎŞ%ôkBGT”5!4.NÒVyàф“ §‘pŒşÇcTż„cTĠÙóS4}³[ĉ~KQD8n×EÜ ŭ])ŠÉ¤{mzLĝ× h˜ïsƒY0Ë'y °óÏó@îÓâ˜,ııf–É$ÒÏŬSµ.żZÖFġ†V Ğk@skkĥMĈb~µ5(Ĝ—l$cÊlbk`ÌğĉŞFñ“4„ÏB?‡JSÛ”3R>ÏÀTL3+‰Ĉ-Se·•˜?â„_֟HŜJáÊ·³•òX7›½‚ûbm9ŠŒÉd`Ĉ|è]‚Ô†8ÍÀäċ0½IKi#›ĝ”fÀÄ'÷D>Ô&· ù³Pâ}Ŝ@ŭ16>ĉ›wĈìÛìT‘<³Ż’âú˜Ffsswi$š Hf$”p…‰^WNX—öqd œĤ˘t£ŻoR‚”´Ú£¸•’Ò„Î>H² 3×"y}H{]5JNG1[‰"ybÙXJœThXĴLı*9Vĥx—r€°ÓĞüĴF'A@6 Áşô ĤÁ#:£Ç4EŒj„ÜQB7AƒŬûñ‚”iĈ$ÁĜ·W¸Ĥ$['‰ñ9X‡*żŜŽÙ½‘%Žĉ›0Ĉ"¸ih}˘x‰ÜĜ{ŸqÔĉޘ8Ï6ĵ¤óĊĦ°û´M8xğÄFIİœxÉ*fŽfPw@q_ÔÁ87ü$”ŽG%” ×™éу’$7Q}vSqşàt˙YŬğ&ûílu{[‹TZzŞzŸÀCÔĈƒh´¸9ŝm2.‘àti£ÏĉrÀ·F‚@MŽALE!§QšYMÌ(Ú:J$ïÓ>1à6À‰ċÂŞtäqW5˙IQ²MIÁĵ6Ö0 Ċ £• üG*QK‹ǁ[XÊÔd3ĉ~U2ŸĈĤH·CfU%ïVH”‡]Òş£%ÇB·L†prbBaÌŻ`4I£Ü ü#C(Œ:enïèĤ]È-ÊĊŞÇ˙{Îá…Žn]¨Ĵj¨ìʓĠ‘ë €·)ĊMe §T*E HPd|á|NĊGìµQcŠSvÌÙͳôÍ%†Ä“9{mœ)Ñ6ûëáBï†o_^ŽÄo“ċz½r1èh>Ğ!ĤXéÇ ƒd´6(ŝÜCËûꗧs `Ġ]}d!,ğ#" qa„"€úˆB ?0öÚìƒloê# ÈŬ!üñAAŽŞF‡.V%ĤL&~9^ħÀ×Ġċ .Ëŭ$.ĞOŒ‰Ÿ%?·GĜrÜ,ŭ˜ñÁ5e‰˘1]z†êĜ›ó^l÷ŝDqC&7—­.…/avXç˜q·ÚäO(ċ·Ċ YPPXZIŜ "ğ5?H?¨CĞx\:Â<6RÍapÂqkÍÍ%§:ğz*(§Î8Ç·XÍÂÂέûOHŝ’äĠ˘*Ğw.d>ÓéòaĞŻĉ|ÙÉĥҕh$ÎbĞ–ĴÒÓÀ÷’x:6ĠzOµÄSaĦqdŜYÀSħ£_ ċ Ëğ…3S)'ŝِùíâáÔÏ JéAM4ÚqÔÍêpÀXz7@ĵ@d??BhÂYğêŒË'"kìt°ÏŜpÀGĈĉ jd&/È%ÚÓC6! Ċ“rùĸñ‹Êè/ëlmċ눕(ÁşÒÚ´‚K0 ŬĠŞ"уzjŒô#1€! ï>óšWwܞOŻÁĈnlï.Kċ+‹´î–.Áh/s䤏qù@ÈĦV²/aM²šb}Y¸Zç|żXĠAc0Ŭcçl^½™uhk[ÌNMEïŭUŞ}L hyŭûpë'ƒŬ$ÌP dôÊş{$Jy“9†hÒ^™Îdú¸ìËáÏW-6,íĊP‚2ÜÎï³şhˆZ<şWĥÊÎ`OPĵR¨I=iE"á1!•>י?íÒÖyùRŭÚáÇĉ‡4T’gµVÒ26œ1krûbĵ+•`‘ˆeĊĥĜaĦµhL"ħoGH/|BİïÀ̖ D’– éT6Ż­À_XY—Ì4IòÚİ ĤQ ÌNÈ İá³ĉ рà§-‚6P2WfXE*)XµĜĥĈ_‡ŭ×iÂk•£ïVX,ĝĥNŸ·!Gn7y„P`˙D+Ĝ¨ÀîJÁâHÇ~ħşÈ5xĴtuLÌ ĤL΁•Ĵ`˘o0ŝKl 9„¤èrĊ‘p?d ƒDí '¤à 2­8w9ĜĤħ£YÄuVîŬÑÓ,6xn<“ 1¸Ŝ¤ŸYşlT#@ XŠ\šìDÁÏĜ—ò…”{˜ú'‰XÎ1me9Ĉ˘ċÓñĵŬ´Ñ0ÁáRNĦĈœàĤdnmC=Œê_x€xĞ>z[²í=#èŒ#O80żr’@á<Ü|Ĥ˘Y¤Vˆ[İ&Ígmm[@}ĠLÉq¸>\˙oÒÉÁŒO–Ò뢸‰À;+ŻÚžMIV†­1ŭžš*LĈĴ0‹²ñTsêPcékÇÊD m|ÏIçŠÔ¨) ó?—†Ĵ5Tġ,M#€£TÛmÜ×Oä!R˜4£³ŞˆKğĠ ÒħÍ{ьN¨sĦ‰‚Œgş¤Š)í6fî~=&îŜŞê k§ŞóÛyyĈ¨>(b9èRŒ.Q*X‘—şŝê_ô1§œyG\B†‰0Ĝ6h‹ġĥòÇ1eÊcßĴGÜ1ì jYFŒû}ŻÒÄÁzl c/s¨ ÄġPÙ²Êg1r-R²Áìp‰`bŠ×JŞo#˜LOĦ/ThµYŬ*>œMĞÙĝc6‚|œU #|×ëÎóŽ•İeçQĴƒóġôŭéĴƒÓĦ£÷0xMŻ=Ó;Şq>·q"y Ûĉ|lÓD=LH=ÓİIċSĈ,Ğ—ç$Éʐ¤i“ë–è #ħš”²s³E;Ñ~sßC%xŜ ßÁàȳgވê4r‡Ċ|#ıż0.Áô5ñìûm£Ç&jÊß?Ë·mĴyšÍ[ŬÖfrêş(RyDȘ“Té‰w,^§ÉYTˆ˜‘•מ&\÷²Ö^̙úUjŽ&şŬŸ€—|{ <ŝ Ġ.żñšöÙ*iS„fġ˙ê#ĜĝYîG‰ŬÔħ×j–™•q&{J˜Ê§žçNÌMċSĴ[ıħbM”*ĦDbJ¨xGÉĝvċĴ=­.[ğfóÚ-U3ûİ3sJ§GvQ8OzOL†t5·™”'íSlÄ9Q8X“ıYİĠ<,8µ­Ħ@íqS݇—Üñš¨ÒŠÚ”!ĠÉ0 < jiŠl£!µĦ·TOÍJÌg%[Ġvnï(ԟ ä~ùüâ·b÷ó ’Ú‡Ö’0­ĵŬ a“’nHúżİáJ„iFV16ıĝ@#ğȧtZOèàœ‡˜-“­‡H’óĴ‘‚|’vÒ˙ƒ%Ċĥ\.òäŝŸµQ°;ƒT¸c*{pöġâô>},<[IüŻ‚ĥçÄĤäU‚â˘˜îäñĵ,7Ŭŝ†@ÊMĴ‹ïşşÁdt;Ó {@ööidŸôŽŠ½s|Ĥ™>E*Žëŭ]YÊŭ]B9iZ1MÇOóyÒ:ĜöäĞşžU žXĸ5…¸;!ŭŒá!éŸ;‹ÏK:­Gôè¤ÓZמÄ'ȤóQĞÇȤ SÁ:ÚİS™¸-ÌïìWaÉkDÂ%µ',T"ß×éC#uçê4>ìĜ„ĝt“™Fċ~:#2êġĊ{ ì™^_GU=]hĦL1ıԔkÔ³=³ M ŝ3EÚ8Ñ ?Ïf,ÌÚĉ3ÏğËÌĞÀn$ŭû4 œk\IVà}ŽkfSµˆÚĊ0ğQЍd°7w?Âû³óÔ÷7Òvú.˘Â%èÙ¤"dm_Ì;hîùÊ4°.¨b{YùEjÄÚĊ›´„b"ĉ›Hµ]ż€Iċ¨ìTëùÜĤ×H”àÁ1ĈsQ‹4d^Ûėy°,hK ŻNݘĠ¤ {QÏÔï‡K ˙™-ó´ÑağŜÀÍà^| Ù÷ÁŬáy?鸆ê;[˜ÈĦˏĊˆÄ Ĝ‡Z—úIF¤,}ŸÑÖÚrn½ħÎNnġ&[ĈV–vT½ÙZƒĵukì;÷> ^ Hé _(8Ü]cuûYDokQ$§Ÿ ÷iC͕˜ZeEÍ5?‡/S‡-Ż˙>%¤`Ĥ~Úğ?èn˜Ç։ó÷R#(ĴËn[0—|†k‡Ŭ=€-Yƒ·êÔ˘ÓİÔ5Â0gâ`1(LJ&>;•2bhSZ;£úa×>VÛOš‘f…[Ó˘ż§şšôĊY™÷d’ğrKOÇiV'ë˘n1·Ĉ†R[Çe`á­×ijlïd,FĦıĵž‘îÔB/POr!Hĵvmc=“ ĊC8€= VkÎX‰­CÏs\Ñ€o‚ÙÜċŭ@;ÌwġqÜÒ3ÍfóqÈ&Ô&8ÛŜ+ONBG|%06”oMxĈ.½Cİ }—Ŝ#Ù§Ör%›œħEÂ{h ïçÙHáôÒzÎĵĉc˜mÛŭ%ÑjßM‚‰+Ġu%Òkù/ċ…ğkRŝ’‘&›R°m¨£lĥy§ŸT ~ÓĤŝĞ‘Ċ ĦVÔ7Ŭt%HBDĵµRĥ— tÁqĵĦÈéĉŸ6ġfkϟÂkħ™Ĥ{ƒ™Żh:KĞuĤaˆ‘­p&<]‡—0ùħ$öO„‹]SÓètšA5]“+-ĜĤ™˙ÍëMBXíügŝ“:¸|ò•?½U çqS2´şÎ ċÂi\ĞhĈq(Q>ô 8vÄöސĠŻ:¨i‡£u=ĵÈkl==Üt&P´ö{Ħ%ä ß‹İŽ×Wúż½ĝµ² endstream endobj 224 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ]O1ƒ0 Üó ˙ €TÁ€XèÂŞjûà8(NÂߗèá,ïN>Ë~¸l#ÈGpĝ˘Ĉ²´¸5 ÁH“eQV -Ĉƒċ‰³òBö7ċßO°Èìüf’Ïê²ŻÊ=„NÓâRP<‘h‹˘kéħŝ“ŽÀhgÓtU]cöŸJŠĤçMÀ5☛ĉ&İ€eú=O)Ĝ DûSzendstream endobj 225 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 338 >> stream xœMżKQÀßó.:CĴ ‡àüA†MEà86 Jz Q!B ‰w|ıŽTt1kÏ"ÁM'‡—Z”@Zs ߓwCċÔöù,ŸFĵaŒ—÷öŭ[¸ âìu~Y6Ŝ ŽÉúxu¸†,ÛĊóh*~zO¤cIY^H*)/ !dql \À â0ĉ3_TħÏÓżı;Ñş]ÇähÌÍâìÍ EUSġÄS¨"ˆHy— €:4šdJ$ÒßhÔnë:h  ÈfU¸şr³ ëù̘˜OÓK Ö­§Ÿc-ı’Ó  BĠ€’ç˙”†Ç}Ù¨ËO½Ì Ŭ‹ûx+ÖÌUTȂğ†|ĦXTÏ£Üġ"V~g0À2›2‰uv˜/ŒFUEU@ò·PİjPĞıɄôi¨$ĜŬ+|ĉÌfEèPzĦXendstream endobj 226 0 obj << /Filter /FlateDecode /Length 9527 >> stream xœÍ}i#Gr6àí…ż,Lj:ï€aìúĵµÒĜĈ ­?pşçÒÎ4G==Ҏ~½‰ÈŞŠ`“­cË~ A2:3+3Î'"³’ßlÜŜoŝ˙ŜĵğúË/êĉĠ‡+·yuġ͕ç?nĈ?7ï6ż~F ˘'Êğ^6Ï^^IO"µ´)mjûžÓĉÙğĞŻĥ·s{×CĞ.mßçbmi{żğvûê}‰iûûŬuŒa_{Ùŝ=µHŜ×··h‘{tĦÑg"ğžCŜ9ĥPŞß]Ĉ{´ĝ¨: rñ½µ°}ÀDZhÎÙÏüL&Ġ\Üŝ3Z”îS4ĝüœ{4&ĝnVsĜ…²ï5ġí§e]_.Ŭô³żß…ş.^œĈ§]‹{ß}“ EšPŜŝ†‡¨ĦfYanÉĠjfqÜ]ÓÈÎ÷Ş[ÜɌróÛEcZ]ly{|·CÇâ]ß~Ĝŭ׳ߐˆ}Ò"ŽħîKi$ĉg·W[wÏúûgWż% ĦG÷&ši_}ÜÇñ%ÑÒâĉŝĊĉ?7wCIĝCÖ/èJÎaóŭí7ô˙×ĠÍÓpqŸb‰Që[ÈmßCÙï÷4ôÍožŬ_˙–éŭä­œ8ħ4µ˙‹#ĈTö•ĴĞô²OÉŻ1bèûÔÂĤ4RÖ´ ›ß·î7%ÁDêst‰Ü­:“MĥĈc!×P7ıf2ײĈin%A2}ŸIóאuÚÒìÒáĈ֑uŜ‡F6SĈ5ĉş'‡²)p–e ÁÄö>kŬW·ŠÉ8Z,/^x³.›CNĥ¸ĥʈeO˜F$# 둢Í­ î+ıžDa"ħ:äpK&gVyĠШwÊûLNħ4ÒĦ´Š\z‚ WFNr.ĈÌNħ´²oyçÉM¸¸AŽ-­ħj 2ÑQPo"ú:n‚aiĞ8pÈştÒor@Ĵân]Ŝ;„ÖL#ŻHi""kÏôÇUàD"8A’Ĥpèŭ*’.4"}Òq ŝĞÌħ„— ˆPÂ^"F |ZE0.o¤9&‚ŽuDÔ*lƒŻ<Žƒ?Ċ˜¸  Ž(ž§üßôßÑï;ùíPÖß1ö½ŻċRց˘ž|c!ı”JyÎ:h"í3APdL}àH|lˆZ óÖà„K€Ê2PĊ*œòF_á'"ĊìUF,dƒ°ê ZıĈˆ‘l°l2EŻşŠ çıL…ĝWñ„%ˆH1ż"ûĴû4yw{˘§Ï„·W_>n3€ “´ĦïĞn3T›ŜCĜÑLYZEĈâMOiĤ¨V…™ğn5ST+ğµşÍEá$·İá ­’nO™Ì&ç²O>Ëa*·wğkV@ô%è/i| ŭ—ĥ|ĦÍç{X¸óɝJn˜@ïğ™RħżMóanžiUh6StĞâñ°ŞVĊ´’ [ Ši…l“’%ĠjPLĞ^qH·ŬjZÑÒJŻñ§ÊĈSĤYàÈŭ °`Ñ<ƒ“ܲCÉĉöŠE´)Ì 1ibÄrŽĜ½<ÈJpVĵD@t“²Ğ‰Rá@x7óäE[Oċ q3Á¤ĝ_¸ß]{Š(ı·í›Û7ßŜï6_?ÜĵĜ|yĜ‘çéÍ·í·oî^ÉÉ3ŒuAƒk4Š@Ġ’’}µŭ·ûñĉĝvóë/_îhú.âLàŭ2"=_Ԉ‘ŭè“jçfġĊçW1ġĥGYS(Żı˜iy ĝ¸\Ħċ1!‡,†b{ħÇHĜĦÁĥTAĠ#%¤ Ĝ‘~>cžšb{‰j@£çeñc”ğwŜ.m8šCŭb)ûl)ĥ—ĝşV<àMl8VJ )¤ûKH?S7ۋGŞ­ÁßVOÚPx¤@#yâWċ~µrċBSl/‰x‡  ™"Ĥ0%Ċ$Ŭ`††b:µ‘1òÙ,ò§<#@n”/;ċyĴ-‚šb{ ~WԆs–œKÜŞÂ³0s+>¨ïĥ‹LBò4IzDf{,Ġeòx|”µ.ÛKX„£) ŒlƒG•Ħ É3GpĠRl/™Ħhžĥ@x$”‹#’ 2ÀŭP°c…_(ĥ„ 3ĉ$NÎò@p W4Š(è§f(ĤÓX[ÂìhŜ„™‹ĴÍí9K$làŻ$° kŠí%#ı qWWħçÁ#í! tá7…*M8é$ò’ĝVbbnħÁ–·`Ĥ)Ĥ“ŒCB…ò´Ŝxza‹Pô†pim†b: V“ ù<(ŭİŻYüÄYTB…× Ŭ4ĊöĥĈµŞês0ĤÁCRìĦ kŻ•Rl/ñn8AĊâñHİ˘ÈDŝ†àZ+âËk„˘Ĝ^cNĜ%Ĉóü¸PZƒşĤ˙ZksŸ ĥ“ ĜÙ³S(˘I‰À™żQ‹ˆ›´ĤĜ^b%EÜE%¸ 0ĵƒ’I `E"1EC°}dFŭ†n9qHb›èŸEĈNl5Ói„Âß(]²GŻñt(RǑr‰$•‘‘˘˜NƒC]´#*BĞääÏÚĉ‡œĜ^j+´|K˜=R„lÈ"䣑ÏDCħ½d¤È^†K6žDj˘€oáˆHŝnğŒ 9‰,¤;YxM¸ştq¤%΢6Ûişîù¨4ċN~0;ÁY cfÖoĵ!ĜN2Á›ÂŬ\; yχsĵ‡Ĵ`ìŬs_('½Äàü2ÍÌÁ❴â‘Ç%Hì/4ĊöŠ] Ĝ‘ — Ĝ.ˆ³żŒĤxCħ½†jWá.ÎȈħ‘Ċ*bJ€œƒsÖÛkx7Š× Ğgï3JOĜŒ|R³ÛkÜ a…7ĜŒAYĞÁ]b)ÔĵvC1dĵvÀ6IOċ ĦÖï†IÈĉ·Ħ˜>²0l7t Pù“É{DCÒË.²²ĠeÄëáUÀ8/ñšaµjâŻ"ĥ£Ĝ^21"ċöA‚HŠ_‘ĴŒĉ`ıPlYi^fI¤ád3œC>‹+&4ìQ>P”“^CaÇİÉğ İûv[Ĵ"w1=Eħ½FàgÀB˙‰×•Ĥ”ÙcEñ3,eŸ4Ċvú“T?95ï$QTtFÑ=eM°}f++E”ĴÉÊp´Şü蓑14 ĥ62pTŽôƒ-‡/ĜËSlvĵ ì²Ĥh(ĥ×~!l Żñà(™´ĝ°‚:D7ÛkĴÍĤyâC(`½&Ĝ6ôú’ Ċös*bC‡^Żöa]|Ïİ‹Ŝ,ÛKFBXáMÜ4 ‚Qï0™„ct˘(ĥ—xZ]ĵF@ٗcŽGÊ} QÌaèKƒĤĜ^Üö†b{µÖÁÖú‰²Ŝćs}ò¨oh‚í#3  A7bƒXşU‰Ú°Eħ½¸RŽ£ċ¨‚òHĦuNcá2¸[h¨ÇzCħxJž7”çYl ÀÑ£"‰µF˘'}ÄHH8ĠM dó$\_kä`)ĥ×pŬM>kם$Ġ*Fyë?Ší5cĤ?xEԗ˄ü“!¨9Aù†sG>RĤ°ÁnlĤĜN÷1ÎeİĤ.¸ŻKuˆ2jħsÂŬNŠí%:T£ä‚8bÇöšğ“ 2İFÔĦĞĜ^˘Ġ8Ċ‡àŬ˙‰O ĦÎäÓ1έ–b{Ġ5x&Fşâ˙çj˜gTÌe/¸zĦĜ^i@ ċ!™%=òşL?Š·`ĦvŠrÒK’<Ŝoö¨+‰B’áD“ZQ?r#ĠRlŻŬĜ7‘˙‹“×&ı´¤âMÄ{[–`; ó焎bcCĜü+g}rc8ĝW4Áv‘ĵáĴÙ>²KoäŜÄBv‹ŞĦ˜NÂĦ€·{h­’ÌĦÄR&{ë7 âĜ-ĊöVѤMµħ öŞ$Ôwf°˘è.ìëžÏe”0˜ƒŠ/|°PĴŜqc!Ĝ>sôpYꂃÉêÀ™sôÀiŸ…`ûÈ8˜§´8W.qĊCŒ i‚í#Ò˘^}`¸,_ĞĴżìJ¸ÒR.&-ÛKvÓ<#O‚Í(+a7…ó›ÜZ­ ݟMħFM´kˆĦM%Q8F À‹+òŒŠé$˜–” ñÇT+bÒÀΏçr%ĴÌ_Sl/Ñä+QS´Ž RT)ċQJÊ3ÑÛi”é8á!G‡Jó.lfd҈ó†`{ Ú%HS‡Âr* ~”%Kħ½†ëà2;g¤MÀWè%ì 4ğĦĜ.bİ…k5`ː'Ô{QòSudSĝ LĤ(ĥä&K$NĥU•%ÁġKa× HĤ(Ĥ“ìÚRp‹™3ìÚfŜċ(xA½B@Ħ“̽Ĝ^î‹$x ‡j&ğMJÄ~8ÓÎğ€Šb{ -⚐ÇVŽèƒynnc!5İ-Ŭg€'hRŒċ5GUA‚)$ÍÓY(ĤӈÓ$_'á?>ĵƒwS. ] Ċöŝ> ’$ÌYƒìcĈ7Ï%göÍSQlŻ9âsE*6ɓlÑ”i9r,ÓiÌ(ŠÑŸüĜY#^#–{.ĉòŒ¤Ş£(ĥ×ȈÇdGĝbTħPšd°†/,°7SlŻQÍ@e‘츎-:†ÍQĉ-ĊŻÔş@™b;Í5,~ tyŽà‚Ŭ(}瑖+Šé4ü~Ċö5 f0ğ' Ó}*˘ĤÂÇw5Ċöġ"áx§LZ€×d;ġYóĠö£GĤA!ĜrŜÉ^e“22Ĉ,gĦĜ^=2CdçE6ž cAÎä%0‡2üċD°}„Óau J²\ġ"sˆ2mrÎ#ĊtÂ8_mqB-¨Qè›˙Ú¸Íí.ñ ™mğpˆÁŸ?ħ żl°˙ôítèç§[˙²û}ƒŬtŠ).ôí›w‡çĵż}Ş'\“ğöÜĝöj{xs˙ÍÇÛ7ŸpZÀ£ĥMpŸ,‘ò£†_mÇznÔĝáġˏo—íòŻĈ‚—½p§VJN)p [ˆ$¤@áĝŝ-räE]îòÔĦ$RŜÂŻ·Ĝ£Xš´µ_SOjl̸˙PÙ „ÂĤ,İ@ˆĜ~†b{ŭ9ĦÔËçK(‘Óm_mżƒ ½íwÌSìL<û§ĞíçßżyżùÛğ÷÷/>|xqğûóépħ•2ÙÁfĝIoÏ|ßì<'Òñ2žžçÙĞ™$ €˙ŞîÌÍL•¨—jĜ䖠^qn%"/éċĦ<9Èí¸$ˆ0’zX|!‘9QŻ)ki­ñíL×ËÇËǛċòqż|ü°||³|ü^6î-êfŭHó —˽E_@…ħˆV5f=VLŠ=J]öô†oN"%ŞÄ7\Ġä{÷éÛ­W—9ÖŞ6Çğ1ffpFtĉáÔ>úZéQ˙ĈczB>g;EôíñÉ.‘›ß/>8 ĤŞJò%C?w§£ÔÜ..</뎴ސŻ;82ŠrfŬ4›8­›FìéÌşŻ=6ûÓĉšC!f„I\¸èë%fQPˆÙĝz/Šß%%}Qñ!öŒ‚í+žFrdНŸì[…2ż_żğFÁ(Z—çÜîŜÈ}ş~,‡˘ÙñR¨½Ĥ€™ #eÁŭ&ÂBx4Ĥç{şreÜÓE XĤ‡Ïžxv[HÊÈ÷§\µÎĊ$~µ0!–7*ÒöwÖÒŜ5ƒ6ñ³:†”ÂÏĈU?cµqXy…¸Ŭx?y›>[ì¨$/WıĥżÛŞëÒhá|ĊY띂Vŝ%ßZÙĠïvÄGìÑ÷-ı÷ Ŭğ‡C!Í!¸_b¤hòÒÛG¤KaëġLr~4Tvħm ËD*=Û˙rı=m™GÜĉZÎ÷îAġĥ÷9żzš_ .Z[9œ”ß7ËǏgeööìJŸÎ ušÎjVBɝjΗ„JH\ 5œ•ĊB3ÑbĦ˜{aĴjĈJĈ ŸİğïZ}Ĵ.,%JÄX[Èĝ*¤ÄêBN'=V—áCż0-ËPéd¨³çÍàVEâÒ}ĊnħϋîġòñċY=x{Ŝ`ǃÏÈÖ_2Ĝœâ%Ù>i°çdcż$Û¨ÇêĈJZĥìbC™d÷‹Ôúm½d˔L<-ZÄW¨üâĊ'ÂÏ@tC„ĤüÊç&nüW–+ ÷Ú ‘s+óB޸u:Š`#R‰Â.JbŬĥí Ĥ·„+–‹6-öÛÇe˜Ì-~L'íè"FĴĜNœ2@­Hħ|ĥ„HJ7Ï3<´_* ´ @j”‚ =VJ1Ĉz2Àc)áL$ÌĝRS|œğĞ]ƒò£žżşüôFĦğ[ĊíŻjVWşŝݐKĤ•k\¨4fiŜ‡ğŜ 9·ÊK˜8r™ĞŻWċ i LÏûòiK¤ĵà˙zIšJ˜ĵž4ˆ½–T7ŬyËĉ÷zÁ²ökıQadY–£>T†ş~Gâ`nĴ}ğĉI´ÈŻyÄ@NÌ(·(£Ż¨o“£¨N6˘3ZÉżçyg2L3¤íħ#EqbJlanBZÏ[,ÄË×Ò"Óxşµñ÷µIp°bĈ–0ı4w4ĞÛ úsöîÄ/\q<Ï܈ïn™Ħ•2ùLZŠ2Gž•Mϐ}ËÉE‰+4-ó‡Óùç‹)”†Š ×'>~zġ5üVˆÛßïYU^‰`zleğ‡ğ$Là2HBԑ\À›Eóï0)Ž×êİĜĤ¨Ç…ġ—T™ğÑhÚİPRĜiŒpĵ¨I{ÚHB›²aJ‚D딣„Çâ^Ï^TkêíÌ`œ ŜËa8›Oçœ ĥT]rĜŝġÔ$ĜRË>ûy˜?œ›?-÷IœŠSVE•.^Ç@ŜÁsıµŞD½W­•Óxħ˜³-a-ܸ(ċAOÁ%ÛúÒqk|vsĠAG†S“ ¸ĠĞŠ%ŒˆûÚĜ³<Š|⁝3İ߈­ïîäDğş€´ô(kv.<ħ‚&ož˙gŒ8{oôùf7_ôŭĉ‘rk½ĉeŜoUhĝ$!”roĝ̖›Ċߨ8{k¤6·¸•…e’w\›:>FéùÑı§§cĵ¸”#+3żŬfq£ Ž£=–BÁ€³TU?§CÏħCµħ~v[ûĴ°Ñî½ V–Í„,hqĠ‚’َïNŞx­ƒĊŻž ¤Ez†MĊe<ü(""(KóVxE ÁË:µÊ?…ϸ`k£ÉaÇ%wdÚYëd„Ĉñ÷_‡r1²<²OÖ-žH”ATEÍ*¨r‹šò,?½ríì4apĊ1ş[ ·BÏlÚ£ùXĈáĠĞGKeDôŠç]…C›;Ôı™§è‹½‹ÚˤÖj´— Ĝ÷0[ı 3ñ›ċéêÇ—“6ËsN K9éğü ÂÄĜÜ~˜ħìaµvj•DdĈ}€HL8CĞŬĉóĈ‘Dµz£Çñ“d(SVÏóĉÏ£Ĥà—\ö;Ä|]âx‰‡#+QuYŬJcä'à_x ŽÏG!—†6f˙zùɅˈ‹›ŝB›—²£O2o˘ž& c†Ohèè¨[ž/ƒĵ=µ.Î"ögkT‘ŻÉĜ×zö˙sdlòŞí™‹àXЄ׸9İq~YÇêLC%ĈĠ·^¤m Ó‚™ĥ;KIÛüÉÙ|,ìÉéÏĜ& Dp=U{‚Û:H£5²Jö¤4µšuĵçB·öcŻXb·´$q$Áò"4 ٛ†šuòf\ô7K(?rx;[Ġ>NüŒ[7H˘x¤Ĵx £÷'QïİÊ ċeÇJt§ûP†žñÇûċ7ËǏËGĠííÙ– ààm÷V'yŜ&m>§“ 1Ĉ=ŞÙ@ %phhAzÈı.Gê/žJG½Góh9^HóF ‚×KBßúœäݎÀñıŞI)%şPùv—ùʘĝԎç̎yuUM@\5/#+…×:÷NáŬŜž½‘á8(Ÿ†sœÏ!ŭËË­µ!7LñÄÚf“Ls`İûħšÈ·K2ŞÑğŞ4\ö³~(fïQç ĵ‰ZüGƒh*‘ÓxĵKàǝŽÓ  ıDèÉCĉ“²$Έž€Ċ'œïôxe꤀Z‹ƒô£oĤly¸›–àO * Ş.'Ş_ƒšMâ“4­ŭ>wœó³sGVáèqèqöŻ<.ŠVÏçšÍ§IP~Jĥ=MòL ŝ¤˘Tpİŝú?vxáĞ#˜I‘ĵgïdÜ%T^I=rœ<û3Yx“=ÎìPlħI§ŸÔï§ĝ€sCc pœÙzĦŞšw‹UébçàlpĉwÓ.ċpԘ<–‹Ĉ:¤¤éÉÓXœ:—]ŜI–ë:6Œ[;ƒ£U]nÑ:q"ġ|öħŸdˆÚ(ñŸ˙íg÷1‘Çù>OŸó}ĤyŞĥ!ÈĞëj…fòÌ#‚ġ ­˜§Ù€)B1›?"L›H1W‚”˜ÏUIJ‘bn SŬcÍQsd+vé,ŒJÙ(ü$_–Ü£120!¤œĴÚêP5³ì$1b‰şĴ•|*ÚÎsSÀl$M½+Ħë4§‰ÈġXµÇ݁ÄaφÀâ‘DÍN2¤Ê0˙$+;ġÀSàÀĠ›[ò˜ xáÉä´6)›[Ğ˘o‘S}żP²ĵXÔÔħâ,ûá,áV–˜ëİâ~š¤*.äÇ}ŭ È˙Î'`ğ7ŝŒtp{xSííŠ ĵYâ´ĉĊŝo Ÿ$Ġ޵ʴfux´wrn~k·ÏĉŽ+xµ)è³cÊ$OJ"ĜvÔ~Vµ0Ż6×'Skš49ğ÷Ż;Uš†ióŭ&aûò+•ƒ{£İ6íC•Ÿŝğ’lÁġ§ĊĝT èÔj;ÜĜ‰0\&/ù˙v|ÜÁĊK›ßê²§İ"€Ĉĵ&ÓUB|!“ ĵŭ)óùäéÖéìÏcıyl…Ċîü~7§ÜŸ-ô?™ğ™°ħeÂ|üë6WÊE-Ĉ úż·HI*d(Û_ɤie(b{ĞÑ\=7ÒöoÎU>p˜:•9Àün·¨×~Y ^={PÙıĞ€úA&{ŭħġ’ž0/ğO§5žiÀhÑòI.§˜OJ˘JgÍo½*֓$ĈXs&˜nĉ#ZÑ%_£ħgHKîJ@Ħ§Ü9>JntÊ áÚiÊ}Ñà9Ĝe‚7Àgì;ŽÇ0\Êıµ;œNrn ‡˜÷Ç@œs‘ŽÔİp2ÜϨ“ÙĵĥÇ)ĝuġ˜ŸA Êíjh£”gOf/>ĝ‘ÊñR_ ïpÒ*ΧL³˜Û3óZ/ĴJż9İZ›JŻŜÈÔΨSŻiKĦ/…#µgp\Vsñp';_—µŬ €É w%ġ¨'ùÀby_H}?g‡ë'Ĉbt‘Fƒ‰GĥÙ\‚éR•µ%mä7 lëY•bžžûÂÏú0:ñ|MP—ŭŸwe¸?Ĉ³“˙cm˙7KEĥ ïċâÎêùì—ÉL”A+úxâMp³s4:y<9kÊĴğüĤ‚:sxŭ“ X[;ġݽóëá½ÊòßïĉRĉùóż:ž=•˙Î#~KövÓf~̛띸Ÿĵi·l1\ŽyÉwaÚTßÏj·°Ġ‹ñB ’Œöœ†²Ĝ oÉ`ìÂɛv´UöÑçÈÌ ù2/>eDĤ{zŝhÀêx•>œEcŞ:OÉn*‘assĈ½ĥÙT~'³‰ŞĴ5<ÜÓÜMÈPħRë×c×6ıjf Ħíû§J/dÇ7jj9ž,Ĝ*ñùڜ.4¨´˙üëá– %NŒ™X$ġôNon—vzĠ½:T¨ƒ”Îc¨¤ónI:żëύ•‡;U ™’FOóYҋabyT]ĥó¸ĥ~¸€%N@Ët<ó´€òcÏ[^Fj"ƒ·=."Š!ĜĵâlÙç8&U\7îB2Şô‹ó3²Ċ^ó´™Üˆ/³n›#ùóQ×ñÂfâeP6‘ġfĤ0Í&6G³]ĤîT¸ĥĠuI1.Ÿ9sö8?…^·áÛìJ—Ô/ Xáâ{üĉ\[€'öLfÂçħhè_1•iÎ{V˜ìZZ2ŝpÇJèá9 à a|Î<ûèŠç,yïŝJ†Ï4[\ÏRz-ÓI$z$öi>0FÌŬ™ñîe<‰éL}ŝñAMëĊp1xgµ\ ½–‹°Œ†<Œ&¤b7Gž@ˆDŝÑ䭚kjOâ̓jĤs\&y·<›%9ž†™+}9K—…³^q²ŭgĥrÊ9cÀCĤŽïùWOazJ §u~ĵyħĵàû—_„ˆß2ûíĠ\·ċ+endstream endobj 227 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1ƒ0 Üó ˙ ݝ ]ZĦĥŽƒ2àD! ŭ}I€ÎÒùîä³ìú[Ï.˘Ç%°ŽM¤ĊŻ Fš‹Zq˜V&Î:ÙŬuxÁf ğó‡žI>•ŞËŞŜCè -A#E͉ĤŞÚĈÚV›?éŒöp^ħ-PÜŭ§’£ıÄyp‘8•ĤI.à˜~Ïr 6ˆ/jèSġendstream endobj 228 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3183 >> stream xœ]V TWÖĥ骕J‰ˆvPƒ€€€Š"DÙAvEe5ÈjTDĥˆQ1‘Pŝ8q‰1‚ìDA@j"#–4K#ħ5$:Ñü·˜×ž™×™ò÷éÓ§^ŸW÷ŬûŬû}ßQ3(‘H¤éŸĵ+2B½ÒG8qòädşi‰‘–FĊ˘Ùġ:à=ï—9Ís)ġÇ4ÑqÓŜ}.IûŬ’Ŭ¤¤F¤íLÌˆŠŽñ‹ Ĝµ9>ÁÜr•µÍŞĠĥċKQ~Ôʟ  –Q›İ÷¨-”1H-§ĥRÛ¨í”#D9QÁ”3BıP”µ’r§<(kʓ²Ħĵ)j5ÒĦ8êЧĉSş”ˆÒ£ÌHŜ”yİED‹âEfHg¸Î8<£X˜é?3vĉ·3{5M5½4+gÏ šuSk‰Ö{Z%pE[hFùB@O\NwŸ0œÒċv ĵŞ`j[ğG;k"½¤ĝŸC‚£l]&ċ,íQPB˜#;ĈhOZ 9äÉá \g@ J.÷f`>ÈéGèÎĊêšÊëùM¨ E6›W²œÊµĉŜ…¨%ġŻÑע*‚żrA,n •ĝ!ÁiBċNJÓJRżL@‘(23a_jRZâħmd“;ċ!Rîĵ!t½}pèZI>ıO0ëU* Y!†bĦ’ÇĈֆĜğŒÁr0~ú6€çŞß°™,ׁŜê€çıŝĉ}À×Ö§”iOĈ$˅ ıèĥRl,úħ ZŽÖÇúz8Ċ!Ĵ‰°VĠ’.ç6˙Ç{_ pE/Ĵ)td×ÁÄ_ï]ö$ÉÀ‚'ĝ*€öğ‰—eIçÎlaĠİö &ŭç5Îwş\G Nä‡Ħ„ lĜ߅XX4"°çU0Ëdœ3 ĜċÍ0œ™Íu@†˙ìŜ:<ÏòYgi0s`NÛàSÙ/Q@iĦ­EbOflta¸ğQ~—]ġħt%–`Gì0b²žĈ’ĥjÂàe“vüÓĥġ˜ZŝvÖ>?‚6hß˙ñ™lş³'ċ)+Ċ° Fxá]ıê]È,ċŞo„|ıʑֆQ2AiùŸĉë<"•ér÷ŭ1>ĊL.è4µ“ÍŽ0œċ‰ÌĴÜ#úhçî{–ó{Áh €òĦO'À+9~EN0Ğ2ß&(im!{şĊġ 8Ş ž‚6Ÿó›Û·x6[{½—Éښ(˜› ëOû6³0Ċèè}îRŠôùOÎZĊZÓyxv—?,&/îxĠż–QħÌî˘ÛW‰—P•^­Ë]+·œjO^L–CĥJċ˘Z2 AÏĥµ”JùĤ+°ŜF÷Òú¤!M‰ 4΂ÛßAÌA<°"_ú‚ŜĈXcÛ!+䔺Ú%KÖeq2,Ĉ–ôkĠÀciĦ‰¤ v%ıG0é ‰ák,ħĊKœŬŝĤ2 +;.}}âʤŬÌÇهs2{ät• (![Ì4`·óECJa–R,Ü&˜áċd‚9îR͂.sŒ0ê‰è R·E§cò†6ôêriBÊ|ĦÀ72\ÁfˆßIĈVeÌĜtlŝğ”sîC XGòzöTOEp}>„ ’46VÙcÁž<‚—Ş@2•‹z‹pg>˜Om1R™-Ì$Ké÷TfäÁ‚3²ó9ŭJ°ĝ]e!™JJ°ìĠ(àܐXĝĤ?úÙqô)b?:_"ƒûŒÒ­ó>˘bû÷Iĝl;LŸúŝzy?b¸ı'Hv€É‰M?ävkL?ûÏĝ0äĈšuúŝŜÙ\ĜÒ.ŭ<°$ı}Îœ(;ĊâeàĈ£=YIÉğâw~ŒXÏè+Íw+ËĈÏɞž½WvŽŭż:레gĝ\]İÀ: 1£Á ŸĈŜ8_ò‚=]&™ §èĥ%_îBç!h"dm™Làß&ô>d¸Ÿ͉=ú  8‚ê7Xĉ´}Ż_” ÊX† xċ4‹½˙‹³q˘|òé2xİÊ /$0ZÑà˘*Üm›“ž‡ô2ÑÇ'ÒóĜ ̅£Ž_B¨ü‹K_•\<éĞȜÔ^Ĉ\!tÙ Żĝw_M-m*w$œ1´ÄDìÇ Àĉ ôÂ;§ekèÌ5D8#ÖbK/ÌŬ–ŝŸşkw:žV§„zí‘àĞĉ´#ÔѸS%Ù 8ôà~fKŝ ÇÔ d@£>ô}ñµš ç;ÌaI8O†‹Çû½ùħĈXsÛ7ÚĴ êŜiüaTöo'=ußwO q}µç—•d̗ŸNB1ì´÷yŬ]ş1A6î:Ë=‚}0ʟĦĞèŸï„ÛXnÙbiÚû'2bĝŝ§£/ìry7ALÙó1Xü,qġe7ÒYzµħg!Ì]׋ġħÑûvxEĥtŒÎ­Í+>s)˙fmÑ]ÄöׇÚoOÊí?²û¸O;U²ú dôëT{ŽCùÑċ&}a˙¤°uħ@Û ߜg½K\ z¤ÜoëvFúÙ-Ä &,Èħż<ƒƒ‘íkoJı ÌÂ÷v¸“[pĝĈ !uŬŬ·ëzeÜo¸Mcìž˙żËUí£ímÄ“ …‚ópv÷—ôšÊYHk&ÒÒDZ³Pż–Қ´tŝ²tĝendstream endobj 229 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 453 >> stream xœşEŝCMMI10‹ûaĝ£ĝN‹ ‹ ’ĝEÄżğxyYZµnĝˆĝπĦ˜ä÷aä˜Ħ¨ç÷Îç÷â÷‘˘çы‹£‹ ~o†wr‹s{–xĤĦН³żP™iQhVtrÍU•n‹#Rûr•‹“Ž”­ġͤ­‹ž‚QlzHfû {Mha_‹…‹t‹v˜¤Ħ ‹§Ĥu“|mrqk]½w·ÍŻÑ‘Ž—fŻdNjòÄ÷¤•‚‹ˆ‚‰‡„‰j Gsk‹d{Ğ­Ħ‘Ħ–·ĝ~ûaĦµµĦĝ-Ħ÷˖Çĝzĝ™‹‹’}”|{…|‚‰†ƒl‡y„q„p…p^ûH‡|`EI‹X€·°ıœÉ­›´–‹Ÿ¸k°Y,fû%‚•‹•Œ›Ĥé³İ­‹“œ‹krq„xc!yR‹\2ÊmĈ²­œ§§~WZcVqien]‹}‹^Žz²›‹˜‹™—•”•˜‹žŞptj{ZY·fÉòòĉ÷§ 7Ÿ rÌcendstream endobj 230 0 obj << /Filter /FlateDecode /Length 7525 >> stream xœí][s\Çq~Gü#ö͋”ħ>sŸÉK*Ž—í¨l‹LċAÊ Y—&@ÉôŻÏ×=·žs ÑÎRİxÎ`.Ŭ=}Ÿž³ÙMµ›èżòïċŬÙ/?ğ›û³iwsö—3Ċܕ.ïvżz‰Ê˘ċĤäw/_ċ‘jє&½ .’³ğ—wg{eÏ_ŝ#tFXˆžĈ½ĵ:ûb˙ùùtpZYö<ż(èĉìŝ=ğ”‚ĠûÓı:L“vn˙@­ZMĈÑú+L‘T ÎìßS‡¤Ìd÷ŻÎ˙÷ċï°şQruñN‡şúżœ_Xk1ŻíÒ–FôWizÀ3FjŒ Ú_Roµjz}~aŒ>DŸ˘žB†Ä%3ĦùŸ¸ûä]´ûkê˘RŒZ.tOsL™ö_SĞ6}ßTÌ@ÀIaħ”Qŭ@˙xyö'Ŝ03ĴŜ9ġAûI>”Ŝi=Em÷îz÷?ğ7Ĝ³tuXĈîĴ7ñ ÜÎ*ĵƒTF{u0]ÏhаVòÚĝƒ2ğ;ÑâŬÁ,“Â!ZzOÔLÔîuŠw—g܂ ı%¤Ŭk´X"Î ¨"Ĉ€#‚ïz:ÓŜ1‡ŽX_ŒP:\˙pÖZ&EÜEĞTH—-›×g·+"÷$@ƒpğï@°ßá˙?C,~ó˘I8x·†!½CĜ;ĈÚòNŽ-ŻÏFĞ‚&Z`ĝc˘=áÈ ÚcĤ,ÔN¤U’:$‚a5Ks(†à@‹ ıĊf8 #Q Ïc@Äûd2\ù(MR¤zöàú DéÒ2Ĥĝëè˘Ħ Âtžc÷êǂ0”°YEÎ&+Ŝ  ċ[^Ÿ ÈĝUä@+#ò9MG&Ñ]o1ŞŒò° 4‹²%é‰D°!K0ZL˘ÀezÌÁ?ƒDèÛŜI^²üNdvš´së1%wp}ıĥL=Y^+¤Ë–‚M&ôW?.Ĵ5|u ĦexŻŞÊú³–×gF:ĴaY—7 _<á>]µ,ÂRȎVj…˙ôĊŝ·ä L°Ô @{|Ûß÷LJŝ¸#< cıdÖ½üî;‘,¤–=Ÿ_³+•ÙñâĊĊZ´ÓLìeó ÉWìı;Ó~0 “Ïĝ]}÷v-íê43Îċ\’DçŭDÙ+b`hï*Bm#TÙèä)ëk]ħ¨0a‰2eÉÔ%Ûû ‹KHɧŠÙ„ŭ½œĦ-³àĞ•żĦ·Q™ä·âY˘%× €-\e s2Â{•Ċ$YmŞÈóĵ=Oġ‹Ü äĤ½`ϏïûC|ûT‡]Ÿ˜İ ɇ]aŭö(hûZ½ óµ Á}Ö& í*Ħ;yż­×C‚Ç!’‚Yá‘ôşê¨ˆÇëĠÖŬŒÂÓZ&ıà.Í·îV`-™ŝá|œ³`r#žßeRޤ˘ßßÎğŠlî²JäŜߑ„;rŭ}„Ép’@B7#¨P&2˘w‚qĞU€÷B2š&è–û ƒ¨ b#!u€\HK[Ÿ\Ç@v˙ڝ‰Ĝ LĠŜƒĊH%Gx8ÈşMY^˂µ{…Ŭ˄°ÂŽ<Ŝş`}Ÿ@ŒŭiâġCXš#]Ï^!@P˜_ü·`éÏ*[ݨ­Ö3ĥ’<.ÙĝòVĝ…ùa,âÔGS:—ß”ıĦÂÂEPPËËıĴìœ}ĝò|Ÿ½Aè Ïï;ÇşÉġW¨á2µS“ġw@íàSÛĝö^7(_ĤĴŻeĊÖżÀÔwŜ[J†ĥóġ}Ž…äèO ³áio(=Ğ$<íĵµ'vŜĦ àĥw–rß]™94eÄÎë xçêÎ×÷²“bDŜê:e}-+ĥŝĤó.hÎTĥËû ÉӟfÓÎÁ׍áçéî[„êÁŠüdÚÛğÂğò-‡J›÷‹°—pÚj4_ßkĵßG´A™³½—5[JĦ@Ġ3Ŝ›tµ¤D}Ÿá!sŸn“ŭ–7ŭ”ŭĝ)ûñSöYÙĦ&aj4öuU3‘XuÔwC‡˘]“èÀgB“ÁtèiÔúŜ4IQ5G™²½–ۀSW$.RI‚ÚuċUŜgXH%ùİaö1*ÒyèYġS‚ĝ'ùé¨Hç˙˙Ģäl¤Ĵâ2Aì7Şâqн9ŭKÁyÒw‹A%‰LİMh’ùœ!ÎyÔ5€Œ#÷Ëkmĉ(Š7èċyìÊŻŠ[ò:w‹!ÜÇc³Ñ2y*{‘° F|@œr˜ ĥ+J@!Ĥ1{£š8²Ç˘œ/[vÖq2ıZ%šLżÙ t Áp™€öžÊlVá!è]†ÇOÜ2ÂCıG{÷ËiŭğĊ(Ùqn·@g²”óg¤ı˃3rùĊŒB†˘|YmÑĝÛÜK’=g£˜Œ–ĞB”tpĝ!|ĉ‘ÔDeŒ×a¤ñ‘ÎûżŬğ·Ô]›’}–ğĥ°vYŠĠ (~ѓQ·|&¸Qè稠- …“2ÎhĤk)³ /ĜQLÀĉşżò3:ż@':”Γejp's'[* ŸÑ 3Ù¨ÊaK8D=vް=£Ó*À°ŽJ8İ6d˘ò3öeŝ@:Ŝ„Rħ~µD‚òáb…âäĉ.ğŝĝe6€`ŽäS1' ^\ġ5òĜû’ àRR;+Û8Š ä +ÑëílÙĵE 1›ikyúµh äħ *"EÙ_Ny=bÔyíŻ$•TŞŠ#HÉì68‘KdĵœöF<ż“ğ“é;AkÖ'ŠËÑĴu–‹Ú48k&ÖBU²„€ÛĠÎÖúœ†ÁQ×ğù ê“èKQ\ ƒzhà4j- O£ì➉Î'ñ7–\ëÍ-l— Ġe€†QÜV’TĜ˙g gs‘jÁ9dԒ>\{ÄÊqљ‘§Â)²:QWúˆA…†D ë×ħa`–(Áİ@*ElSHöY/ü€CS = *xGsYäЈf§í9éÄ_Ĵ„JŒ+BQ$!z%›·ÖgrëÖRĴkĤ,r_îË 1¤¤˘üXî‡ŭkƒ7ZHò µ•Íadû²<Ü-’ı]ûÜÑĊì’YI+†–´““ Ûg6&û.ĤöuFl’Ħ ŠĴk”uAĥŞİrG™.m²ÜıI¸4ä}Ÿd‚ ğòÜ6N*]H̕hâzŬMŽìqOëxĜ.ĊĵÌk‚³âMd”„Ùš)ŜĈ?˜™ĉ°ÊmħĠ‘ÓĦà_ĝ8’äŬż½ì>€Üİ>zĦ1İŬO£n<½:o:ĝm”ri˙‰:V·Ġ˜²(]gÔLJ[Ĉïĉën:6|9r´ß•lBiJHŻ3É#wö½.²Q´ˆ´Lğoú9û\< ĥa†.,e>ÉNééAĝ 'vHĥŜš‹R½Ú:jG‚Ñ„úmïĵ$‚‚°ß°ÂÀôˁ%]ìĞùÑy,ëkş=Hŝ 9rtĠ6ħ7ZHsdƒ`ú™a —‰rŭ½³”żQóRoĞü`ĥNıyšfj§ĞàŜw;²I„™lVÙTu şXqŝ%·ßĉ]³ĉ†‹d aO *“¸ĉCwŜ~€–’)m°ôkîòšäy?3t‘WŒĠpG[ÓM<5\1žsT’ñĈTn;dpܰ—–ÛA3B_Àĥ–*}ÂHsz„*ÄžhĴêžBEΤ´ê|éŬ­[“˘ÎÏëĠÇ÷BĊĥ‹™ÄUĊFç­˙”1%ˆ“óƒé‘NŜm÷ìĜ½&­Ŝ ô§&ITHˆá…˘ċƒÜìWċY§#A›™wÜÍÁ‰IÑ-#$²~q!5Žš_p_ġ½x¨›ÑWÊÍ)aí ]Èú7˜tħ!b9ĦÀšÈü4s•[!CƒŒ *{j˘\F ›²VÙ-i–}rì>Ĝ{ŝı:çÀ}vĠ×£ècŽ\<4ğk‘Ë(m’“ JA×D?˜éfġçEZ÷f1êJ™})‹^ޘ?­ Œ`\ä x8öžƒBÊi'â4^<ċ€9/¨Àŭ9ĝ+f%ëN‚Ù˙Mp÷Òydġr“'œĈ” ³C;ĝgh=5Ñ·+ÌSZÛ+µgGġŝ"Ê.ËsèŬ8VÄôÇ̐9È~+x½+m{'Íıϝɕ’MÓgÙĤ6Rú¤› $ħ‡òˆ‹Ŭ“чí_˘ЏäWZ´Û&H£3ŞÉ?Ùh(bo+!&5ˆ”HAl$n2çiÊŞY„\–ôD;L¨Á=:Ž9l ˘9Ĝ gĜĠ`š8]Šç#'£/ĈUÓY]Ú½ŻÏ\PKäI‰èĝôĥ ÜûǕ`€âqM§Ìj WDê@Ĥ(Dqó&ŻéËMċêʨÈ6 ΞE~) j4ċPZ€17%ċS$Ġx–˘D_ÜġÏÈlĝ•ù<ôtšpièÜ7@³U€NZwĞ÷ݲ†̲´>ŝϨTIL•…`mLm27¨1";öU+ §rl4šÌl ĉÒɒÒsb= Ĵ5jĜnĦĝdœñˆĠ!â++=&iNğ°’Ó+!L8F¤­wN}әŬ¤ A˙ëìċ?Q]1€4„I7”²D°“üIF?ö.r!ÛeKtÔ ġĥ“™ÁÒ 5„ċg‹àˆí´È}g'_XW ZhëucÛÎ1kÑż„SÊ,Mž'làġìÎF‚ncâ†V˜û5ù 4Kš·¨°R³#–ÎZÀôpşF]Ó}AÙ´8$;rP)°]Ġ ÏU:,‡Ë\IŬ–Ż^]—mŠœÚıh+²*Âı²Á+ŝt͗ËıÛÀ*ƒíž%›l>–É]Œjt‘/j ò<‡!‡§KĊ£‡m _ĥ5Î/SšñBë;êA…°q93t^ëvdG½ç‡H§<ġ4­<á6Ğ}ç°“ZQêlâùpĊŞ•˜‡eé/Ŭ9–zAlÛĈÀg·ÈŬwÔï U£ÚÌ˘›D'?OĉÑ'7ód™u@R˘ĝ*œ4TB ï‡j£bĦ-ıÛR­”(I‘ÍzJñIÌşž*YcŸûM=—PŽ•NŠ_(Sí/™{`Ê-r*”>RĉĈ„ < ċĝYOŒÎ#ĥ‰ş¤h}vEÊĠ}pĜücĈɲ§żÇifÀ+C|ËgJˆ„(ÉÑ<;yXJ‰žĞ¨‚?:4ùë:Û`qVS‹B3¤Ċ²Ï›<9…)§şg:lİ>H!€ ż;'9ŻÍ`\„ĈÍóWñȖÑWԚWyÛıTzA…<ħÇ l\aŞRO(÷ERĞeB OdB.*xÛGރĞÓoÄN.GQLD<‡ıÛÓHŝċğu‹ñ×ì8R –Î{Gġ£ŝ=Šw Ĵßcƒ.‰ âĉF´GvÇ"§ıhÑĈI‘İî;´Şnâ&ğ˙âœİ’™U‰tÜvdï#ë?ıÌU†Ġ°Îr&k”]&䂓ğîÔ!áïmÛu>²Šj×g¨g -İû7y6âyŒIUj|Çä˘î‹oˆˆHgŭ$VĊÑç?a°ËY(Jï2$šŭÌÍİ:Ċ˜6*~TĈkÌèmĝR`D Âc^jË6È))Ó4Ÿİ~–½‰|ÛdċєĞdݞ‡èeĊÒ§÷ÖlÄ,ŒÈPç„Èĵ­xúyÌD͞ŝm²ġÓ°Ğnċûh(ä1b= €De÷Ċâ4˘¤oS¤o²)˘ük# ùĜ>/ì8ÔP;•îHħşìb"f|Ú–ŝĴ1Áe//\8 Ċ[Ú0ÒQıÏ Z­·|mM…BĠ£x$kÜSY³š•œJUÌ.ĜOJ•T=VÏ# p/İdċgNŒ'ŒUĵÇóB>K¸ċ2¤‰’.ßĦX>0hĜĥÁiËÊA9o²£FW3’~$=şnsÇü¨,!!Ĝ(÷0/Á³”ÁĠݚÎQñњ)ĊáŒ÷érŠ„‰‡#èɐӪ&ĉôÁks! ÍıOĤĉgq„µ²ƒ9˜ç/+”cPµv2Ü×_|{ =Ñ*+†iŸÌ””òGlhlÓPž!½­•%G“ü`ċEJğ_·KÉcú‡˜Ġ–Ğä:1şMHY_j·y%€bŸšĤ7ÉOi ¨sŒq8ş•rħQĉ Ĵ–ÉCUŽ äǜv4Ó@Áá°XÔko–ÒÀ Üŝí7 ”b=eâS !Z??ސİGĤf)­$™†ƒ°E*€Ĝ<_ÙYĉÛJžŠ]. Wt/ÔÔ4­•Ä9dërTP÷Q vQĉ텓ğ^şñP­sSf÷X5DÇ)eÉDŸĦ ´G&t Cħ‘Cew^%éY9 ·RŞNvÏÍ5Ž^ŜêÙˊ@cC‘ÜŒçġ".şœAoœKŬ>VS6#.š˙6Ŝ˜û>Sòe›eECa‘Dımó°c.Ż%`íÓ²ŝí”üÜPìBËtAá5İĜ|‹ĵ°­Ó”í·ŒTݝ"i6·xĤ Cı 쒞ÈЏóœfqMÄ9p ¨)‡-ĵĵYċӘ& Ì7ç­Ĵ˘Ä &n· —´eùj¸!JÀ7œİ›…%7cšÁpÌ2͎H¸Ëš™3´ZZ´‘÷½ZeÍı­ĦĜGŜži^Áfµó³ş=ZUG½%J‚(O™ ]£xèêvÓêuĤO›†ıÑĉ(JĞ1 Ë2Ħ6Nd³O£¨ĤύĦÖÀBͳ˜ı3UzuÚ¨ŝja(âënPĊ7ŻžYĠcÁŝùÓ~ĉû˙œU8Ğċ|_HRoğN];ô„ˆ,>zğn"ß’Ĥñ÷wäıHOÍΓY…•ĝßÂK ž|—.²f(=¸ï47u1ÙF…B9ÊNä÷ñAC²€m·™ħèsùxÇ)Ÿá°9ß3D  NÌĝ­Âè6=£Mıĉ{Y°–èò–“İĞ•#˘œîL9áh'ĈT|)şG糛Ĥ¸Jᛵ—yĠĠ˘Ô3j.×"ÔÏss,·Aè™cüzŠò2’pŒrqÊ&ZÜ\5Ŭfİ,“< ÂQä}$BĴùü%öİŝúwùïû7+}Ġ¤ÏSȄ¤ŠŒuÒù:VI­¨t£tNÀ+›‹^ ˙mŬ;ùôêe¸ĵŜġ7ğ£! näYüWµ4W#lÎNòĉ/ËâEídnfŒ YÓ&Ϗä×>š Yäِ<ŬžS>ô•ÂZÖ£Ç7Ïsn¨lŬ ˆĝıhî((ÚTYï;üJÚmîA•àâF%vyĵ Ġ²d ŭš£İZ.lËŠ3żiŝ``÷œKàÒs™NêNf‡óö>…Í›C¤ĉ•gC’aˆq#O1܉m¸¤›0Ïß­;ÌĠJ”Sfl“}Tc ĞşW ô•°£ÂÁ)‰3Kż*Ö|R‘?Š›°Ë1ù½Ï Ç|3Ía¸BĉblfpïJoéŜm ™ 9~ßAÖŜ@ĉ8İßğ.kD%”÷ìÁz!ÏÎU.Ĵ™i6ŻÍÈárŽ–qúċçڏŬŝéì˙_gendstream endobj 231 0 obj << /Filter /FlateDecode /Length 296 >> stream xœ]’ÁnÂ0 †ï}ŠĵAC(6HȸpĜ4m{’ş¨ÒŞ”Ŝ~ż ì°oéIú%Ĥ>œŽ§2,Ħŝ˜ÇüKè‡ÒÍzïsÖpÖËPŞU Ŭ—'yÍ×vŞê[;}˙L°@ûż·W­?Ózç?­›òĜémj³ÎmıhµQö}/•–î_+ǎs˙\š°Ô#*p+àÖp'àĜ4≈NŬĈğ½x€ĝöžV≘ÄL†8†ü(²£h#àĈÄ$C !H.I&IP × Ó N<ÀÎPĊTC’K’I2Î~}ĥë3Ù%Ù$y-àÚìÎlÎ _vgT{ë×£Ú³Û_ó ù>ÏZŸ²Oц7ŭû#LdğRŭ)4–endstream endobj 232 0 obj << /Filter /FlateDecode /Length1 10196 /Length 6460 >> stream xœ½Xy|TĠ½˙ğϒÙ÷%3“ÉÜÉd™l$$$!$!ì!AH`BEŒiQĦÑB•¨T@ÁjŬX‹ !…‡”x]\ި´Z}Ċ–ZóчÚ*™yż{gˆÁG}üá§÷|Îıż³Üs~çû[Îï\ =@C´Ĥü"ñ3ç/k_žĴ0“?Ïïîò&ëzéÂċ‹–%ĞL=€Ò½héÊ…Éşáŭ{í ʲ˜‚O`ci'6$û5Xdv.ëú^²Œ`1gémóSŭ™Ż`Q°Ĵŭ{İġ5aáŭNû²ŽTŭ§Ò ċ·ŬѕŞK–ŻèH×"ŸôËìIħÇ!‹í“€Äۘ/HïĝM‰?³g@_–ĝ;]Ÿ‘2ŻŞ„“0l‡ŭÀÁ.¤³`.l…sd !s Γt#^ Ä`2üš$ŻÂBxÇwÁ)Ĝ @ß,3ö'Ä]X =Ö$žL(ƒÂq(ÇY×@bwâ ö6ÂM°öâ÷ż"~êcLĵ¸LÇ9×`ÏЉɉŭ`€\¨†l]'H€èT wOÀS4ĵ‘ûH˘3ѝx%ñ>PĜë‚&LĞH?yŸŜÏü0ñDâD‘È‚l\µ 6Á³8˙~L' Zr+é"›Èf*BŬGġ3kYk|qÁxLġp<€ÓßOò1e£utŭ‹DIâ@“p—ÒN: Óŭ˜ÖžŽŽq¤Ĵ"’ÍäwT6uĠL}—úġgz*=‡^I˙Žıƒécb·rŞĝ§‰c‰3‰7À n¸VÀjÜŬ)x.„Ĉı\$@*H5™‹İ‡l§Ž§Éށœ$ŻP{ÈɟÈÇäKŠÔ”™ÊĦş¨MÔ^êġ[z1½™~œŝ#ŭ)3†Ĝ§Ù¸˙ûĝĵĝşĝo‰÷˙@ À‡’݆İp ´n—ĝ>îbĤŭ(µÓ 8'§? À? â Ed ĤİdYH“'ÉQL'd^>£P”‚ÒSVÊE5Qó¨eTġĠC;élz"=›Ŝé,}žŝ’ŝ’a#cfĈ3à!f³ ÓfÓÇĵ̖³cĜİìLĥ‡]Ç>DÏg_eÏsĞıġ\÷1÷ ŸĊOĉoBéœC} †? ÉDî‹à;0ŸÔy°ñ4i‡^Ôääq9d%ZéĠôx޵á܍ں VÁ:z<x‹Ŝo˘Ĥ,Ċız`'S nö1”Î}P€Z”J‘Pv(+(2ŭ>Ż'Ŭír:ì6ĞĊl2ôş4µJİxŽehŠ@n­żÍÛ˘ŒèŻŻÏ“êŝvlhÖġbSŬµc˘Ŝ6y˜÷ڑık##ɑ‘Ħ‘D筄Êĵ\o­ßŭMß#³§7#ŭpżĊé)2ŭˆL§!íóáŜZ[g7JÚĵµÑşîÎŜÚĥœîˆä²”yı’ˆ€Jš8 ÚWuÚ%¨:ü5µQğżFî£µí ˘ ӛkkœ>_ ĥaSc3‘—ğXâT//x0ymĠ>§9J··Dİ6i.}NÔêŻ‰ZïúÀöUġ*Uû°Î(¨kïè­CĴOVÛ¤ZûCX›ÔäĊiݵ-ÍQ²6Ċ„Ä’š$ğŝZİİm‰7ŞWû;{—´!¸ĜÜçˆ8jŭí5-Qhhî³Gìr%/÷ˆmu…w$olŜXé]á³­N˙òƒdûk'Uò¸Óïá{RDZÉ?ùŒzçˋĝ‘Ù2İè(ƒŜùe8 Ÿ‚Û\ŒüŒ‹R¨3t Ê&´G{š²ÑY“dmIMŸÂîöVŬ‚Ûzu£pŻó{{?Ħà£k[ÚS-\@÷)H¤$è!]ÁŝĞt· Œ´œÍß)É·ğ6U÷Ûj‡5`]‚Fâ9jŠMjhöE½-ĜƒœÜI1P44 d}KŒ$ÖĈ Ĉ}@ß2ğs%U[\ƒëc%/²}H…s½u8q¤+Ŝ^oŜ:o'*ßĜÑÑے65#N0WŒ´8‡ÈŽ––Q8O4#ÏÓۂ3,IͰDž'ÄAı“p›bCóôĉhO3İiA) úžlhŽžDÁµ´à¨Â!Nñ½jħ-Ċsò\˜Dqr–&œ§héíMÖüèÉŜ^gŻdcÉzŒÀ×"݆È ˘1ÒÓ wġĝ}NsŸß‡lµH˜Ž@•ŞQ1(ùf„K‡#<ı-•.û–.ż„GŬÂ×G¸yŭïCxÌ5W}3‘áEn#2ÂĠßÂnášB¸öú×!ϵÂ˙}×_ƒ„oFxâp„'!·e„'KOı„§ŜÂӏpò/?"ïĵI0:A#¨ |Œü´ŻÊ#{Ħ aÙ{Pà6F^ÀFĉÙ'7î;,0%€`Š%Ŝë—ôË#{ûu…Ä!NĤ¸Ùw0Ù´/âa$Š‘;t”TRIġĤˆ@ĦEÉ1ÖZşĞlU†1úòşšU´]SĉüëÇFÜÑ-hNÑ=î )‘H¸[†:żáäÓu'Ġ99“Wì^dĦ"ûk;0·EìĈ+KÏ<Ż÷À’ċİĝ_l›7żSz·wD—û;j˘Kü5ŜŬ ŻÓ½Pêîö×€…µ3š,ŒtÔôuGşċÛÁÁyĠ+ZŻYkŬZ+ŞŻ3Yµ4Ù i­y­×én•şçIkµJkµJk͋̓גöYğ¸İúŽ.ÔNtŠèĝ²š˘ĤÏnĈÛbKMŒì<ċ’ ÖÇçRíì`‚1…IŻ0ZĴV‡âyï˙&òDDf²Înĥ|î[Úh‹ñEksrĤ^ž2àxÇ1úÀÔڎš?CUUaĦxNݳZŒŝ0 ŠAħD7²ÔHÍŭqŝĝéE›VnĴ •YT­ÇĜ7â/?òûĝûñw?y4ŝáĊĠKŬ5kÉúË&"˙VƒäNJüĦ4˘ô`4#?Ìd­Qb @,)ğÉüıŻên[’“×ŜĈ‡Ñ0²TŻ Štq:ħĤ³ŽçèñO…ë$.ĥ Bs+ŽĈç’Òġoñ}ò(ħ|vGÇŞË·Çßş´9ŝì3Ÿ`ç³ÇÑÙ`QÄsż~‹*TéZ Ò­‚Pht8ÒğŬqŜ×½.ÉÄàTŬgS j°j°°`ÜʈH,ú€Yäx–gxš§x–Sê„"B,X( Ş"›ßĉ䐜œìœœ{[E#KT˘£ü>=íóZ-zO…ġJÇĜ‰íۏ?u–j"ù;77o˙pp˙sĥ–›Ĉ= ı•5y*ŝê‡Ç}2Žç°Ĝˆ{ Á*yé£òA΁@~ ¨ü‚BcħŜîÜ9öĝ¤˙‰7ĜKì '¸ 7’{?{ΐŸSg…sJnœ`£x…‹rıT†Bڑn+TÙŬéoù–,LÉA†ÀPžb¨a(GšHŠ+Z4ĥ"Ô2CqHé8¤Ĵjs1RXĜ•Î"3N ”äs/žx„ާ|Ŝ ¨×4ĝÀP˘èMÍl?ĥqçéĝĉĝSû=Aşˆóoñż˙íbü½Ï‰Y~ĊÏŻÄ_HÀ{o‘‰$ûu˘ûâ²òSB“Êĝ™ĝ˗Ĝı¸÷ĈÄäżLZ¨€Jx'R–]@”:•Sí ×ë+–èĝrÁ VÎ">SáÖİŬ9T8Tq¸‚Ş(Êt<+¸‚VWŒôFüV·‡ş*Ê]˘Şä++]&>”½+Ó1ĈrMÔËì£ÇüŒ<>< ·@ şË2xOÁW5€Pê ÖòV½Ħ<< ĝÖ[ËeX³JGš3€Ĝ¤Të[şÓŻ Ġ9FR>p¸­>böa!ĦIt•2”÷"˜¤5ÓRŒš6šhˆ–pżG+üSÖ­ştb÷ğ‡^}lîÙŻ”%.¸'¸áğ‘˘‘šñšYšÌn'L”Ö­ÁíĉJÊmUħacXÒUaO÷Üï[Qŭ•É›ûú6—B‰M%‚Â…Ĝ)”NA$ݝáÖ ’hS{AÓ²êÑ ”H†’†âÏ6>½êéw=°›ô6ŒŜ÷LĠOo;˙âwÉ-—Ŝ<÷ĞŸżòŸÔÈé“(÷c6Ïo&y_|HfĦŭÔ'.0´dbÈ˘ŽĴ|LxÜħÓC³J˚̃ÖlЍ#&!ä “T‡è3ä—ôç[Âۊóž·ü—Ĵ—üŞ3ú3jŽÀú2µÛ,îÌrŽç->·‹Wş-Ş˙˜k§ë0ʟ X´kWŞy½&¨uYG03Ìív1ĝşoGkÊ'Ċŝú`ıĦM¨_ù­IĞBŞr°R7€­2duàgXšXÂ2œŒAgԙt §d83E‚[$én…•Aeֈ$Mwĝ°‰ĊB°)EHÓa‘tZ’Éĥ–“}/ı½nom bl1û҉dv#‹5팓ܗŠ “(žPŭçËJ ş+³<öŒÓ~ZaÊħgۏ*kâ{vħÄόżġĤéK'>óì/ZKÇWl7¸tÄO8B‘ê¸xgŬ}{É’÷ *œ•} #ü)‘ŜÍ)Ŭ4њÊ-iœAiÇ#U“ĤY ĵAĞñh(Í“Ŭfżâ[´:…`kùi¨ĞÇ*ê[e´…xşYĴĉ0‘4¨Ĝì×c*).yÑ_ĠŻÏ´şìŞFo_ßĉÍlġˆ9ġEnzaŭ•ôëwÉwÑñ úêŠò ‡#SJM„ ŠfĦEñ€z·s—{wpGΧ*"–Œĉ´2Ŭ)…ÜvÁ­Ô†ùp˜uÑaK8/Ä: Ԛ`Ú1è²ç 3Ëċ’ ^üT˙•?­Ċž”{?ˑÒgt˘?]!ˁ…^ñV£N ¸3Dt†DŞñÀI9ѤMZ‘d9%Ċx@s 1XŒ"–Ä+{ÊLI² ;T³In.!Ô=s‹KvT.ŸÛ÷‘ĉpZpô^ŽˆtéÖU/Äż$üQRóÜ÷OÔ6ŬsjZnüUĤzŒÜŭWŠ~Ŭ}aûóġÁʍ3ßilĝœ¸I ǟ>ÙwËĥïŸż†Ê“ċĵA•|Šš"ıh5‚•· A&hĵ“żSŒi”Ñ  wsĵY­L )6bĊnµámë o^ġU_Y™r••²G)'’ÈްT¸t(ĝġ#duEjM¤xÖ}mÊ;’^x˙òCŭèĝŝ0ŬWŝl˓ƒÓİgğG6o;?xdŸ‡ü‘ 9á1˘sñHWWŽV*PQoC< vAħç+NNVžRğŞ)¨rR ˘GM[s&ûËóìñ__Ŭ;`Ĉƒk#ĵÀk8­U°jĴÚ D÷PoŸİZ¤RûJ‡ÛoWRŒ5às[ŬiœÓ Ê,dB2I—:GHşÛE†(x{0+F҆tQwyàò`Š3kdÒ-ÌWÑ2§²^=I´f닌hı½gjnfċ3oMÍ>vë”%v„–/ÜÙÏäo–9ş*³nfÓ3Öޤ.ŬÚ°~ÇàêĜ²˘IO,ĦJ%eŽ6d̍ĉÎp™¸ İ›ëâY“š2ÙtxBgS)ĵêÂá"a[Èv§ëk˘ż8,p} |%~"miĜV‚É8AC°FÖìĵ§óbCîawÁêHhbYž³ŸìDŝç6>5ëIĉU.H³T—Üxed5 "ñ6cĤ‚j;<)Ŝ*lÑ=nyžÙ%ìíĥĄ³Â›ÌšżšÔ£ÎmĠnƒÊÎÛíf*¨u8A³ŬáŒĊAߊÖrĉ‚•UFze=%ŜŠ›†”Ò¤è°,œHh '’Ż‚M4êLCIJFh·ôĈSlóÔ{k &}~˖gϓô+ñÏ߉_!†żp]DğcËÜGŻôí½H_ˆ„Çŝ`ü’sƒĞ+Ċ0ñ›˜n]ÉŬ-ì´RY‚××pn3Żċ4n—*CCmŽL%F0P†ÖîÏĵn#;0}yêĜrYœÀ:DF'nŒµ`Aìh+—:ë“qŒµS]Ié§jNlô~ê—;uGĠ°Œ‡÷—FnûPüp×ĥ•ŭ+÷ZϜÇlğgÖúÀú Y•ñżâŸÙrKIú„Áw$\‡ ımPÓ"bÓFÒF#è(BŻPI ġJÁa$R<vƒ1FjQŭVS?ÉÖ§T<-9h˘²&Iġ†Î½Ŭ^ós·²6·Îİ{`#šÊ‘Òí}‚ĤöŻÜ*ÙEuâMú3 ϕ|Žü¨Lħ•ŬbxÜ´Ġĵ5›ËÊ K}uñ™ƒ33gf.WŞWĤ­Ôtûğ2ğ]âŽô]ıFy6 ÁavZ]6sž)œU-Ä@i€ d¤)™£í—.·‘gÜám9Ş|^ĦÑQ<äûò›Ċ´ŽÉù`–£P êĈ@0l/(ìŠM…$ÏĤrRÒvËóÀĵ\’ħġK.ċvYʓI%šѧñĝ@!ò>Bç⽁ÍFÊmÀ6§Éĉ#^m†|š4!¨ô1 P’<Ĉ\‹t½ËGìWò&#br1t’_²sù“Ġ%_ K0ܗĴž÷‹ÁĞa݇H‘Œ G ’…@Í[GïĝÑşħ]ż?òß·Ž£ö°â˜Ç.͚úŬSĠ‹ß~÷3<9Lf̚usm&FuÙîŬú³ġ³;GŸİËĥŬùıµŝ蕷Bŭuɚĝ˜R°³Ñ;4˜VžÔİŠKı•ĉ4J½Ŭ5M¸˜5f-íĦ)úŠoá·ĴşnܒŸ \tƒċSDŠVLÖŻî6b‰şì:´wŻh.LK7yĈWÏŜ°cÓ`m™QE¨ġ áŜEÔ/6ÉgYOâOôğhÏVäpndTÌtÖD)Œ‚Én´›²¸ïÒoâñ ĴF \š’Eßem6•wRĞ’˜}íŞЇb”ŞÊrŭUżK’Œb è#ı¤½–è¤ÌQƒŸĠú÷Pŝ‹6}”Gö3ùƒċ#ÚvÍŝ1ùòĠ'GgÏxĵqġ–ê_Ŝz腏Cî£&S‡è ú#ĤŒy-`粸RîŜË/ê„-Â'ò.“”MèŻC'!Üu˙_ó\ŭ}MÑ˙z #lêġ×DNĦTİÓ4HkuzMfË˙żîżíaà×r)˙y˙äÎDKŻTJż?ŝÏ˙{ ‰o\çêk½ `|%`İü?? 4İv-è;2˘TÍ`IrKıf…o~„kĞŸÀ'‰k†íž*ÇĵÖcaÏÀóX?ǕCs4bîĈ\†ıÛ]ĝy 9k¸=°F˘1WHûuF5޳b½çê˘ûŜ˘­üôIĤn™ò#ù}îÊÏ˙Ñq%¨Ú üSĈ!5ŝS˜Ùendstream endobj 233 0 obj << /Filter /FlateDecode /Length 358 >> stream xœ]’½nƒP …wž‚7à†;‘—tÉŞjûär݈Ħoߓ¤C‡céK°Ċg\O/§iÜòâ}gÚòaœú5]çÛS~NߔíÊĵö Öxé–Ĵ8vË×ϒr<†;żu—T|”uŸv÷Ĥ8÷éşt1­Ŭô²6k‡Á²4ġ˙ŝŞÊ{Çyx> stream xœÍz{|TĠµ˙Úû<ç‘Éĵ_™ÉÌd23™ĵ$$$1$!y  !€ cnT‰Hä!¨ġĠB1CH%@ñR ˘­ġUDjġW|ô‘ê½?ÔVÉÌ]çLˆàŭĝG?ŭÜs²ßçì½ÖwݵöZgâ ˜vŭÌĴ\ŻĴ1›½pù‚ĥX; òׅíîXŜ`–-j[ĵ<ÖdĞ”ÎĊËV/е ,€½§µeAóĤ³ ûçĜYŠħqM+fÉ­ËÛ³ 1[żìօ#?ĊĴ|ù‚;FÖ×lÂÌ}˂ċ-#mi<ıíÖÛÚGÚŻcÖÜĥ²eäùĝ1HßkÜ rÇ!…ë;›.€èğ˜ÎKeä†è'ÜF–G˙‹)ĈWŽH‰FJKà<{ xèÁz ̇]2Y GÈ<€s$2/a*ĵB˘Ñ7`<‹Ï·IĜAï,Žn&èl‡°Ŝë£OC2ÂŭpŠpÖÍ0Ŭ=„£3àè…ŭĝŝ݉—d Ñç˘@„é8çzy#:5ÚzH‡2˜†½ëáâcÎG[Á ĊHŬccx ~!÷hk´#úzô# 8ꀙxŻ%ä#Ĥ½?úXôOÑ"‘ݸj#lƒgpŝ>ĵO äfÒNĥ‘í4DïĦì}œ%2Œ8aŜUp+<€Sßwò9µ2ZĤ9͏ŝPÁäRâ¤:Ŝ€÷fäéáI6™HĤ‘µä²ü–ĤÒh]E0µÌ Óêúm!›ÜÈH?b]WìAîd\—qT{Ĵëbċ§÷Ĉúß<Ħ’Ÿ;ġ!–SfŒ@¤•ĵĠHgĜ½P^ċÄJYK!t-,ÄÇŞ'Èĉ¤gb˜˘Ì00çĞ^îœy™ŒÖòqKËû6ğÄCcY=>ßĜ‡ËàóZŻğëKÀ-ôŭċêž#=ĵOû%HUi£GeÇ/×;d`¤ċĴŜVi;*FÚ^kĊĜ– ‘hıSĤĠyÂîzì„´ô)ƒ ˜VwÍġƒ$zß ”;€˜›ĉpş$jKÊq}ld¤cGŞk™éîJœ¸R’w—ğĞşıË]énEab}r‰-]ġYˆàÌ:Ä fáŠĦú„ÑjK}ŭ8œ'Kš‡•çéŞÇ–ŽÌ°Tž'Ĉ‡²Ó§ ›ŝiuÓëċ áPy=îŠï‰iuá¸qġġĝTÎ(X]bĦ9iÎIĊJ^l–™8NQßĠky=á]] ]’ŽĊڃßéyDttN“‡:½žs×ƒdĠK˜ŽA‘,Qƒ˙Ï.¸áħHmŒpáżá˘‚¸„pñµ.Aš‹%„Ç˙ûžpÂ˙á•_‡Ô†d„ËŝEOü!—˙ „+p%Ò\!!<é߇pĠUW˙s„'_‰¤v²ŒÔÂ5?áÚ„ġ×FxÒ|½„ôÂ3Bxĉ?Gx֕߀ÔΒžŭ/BxÎA¸î!\m„ç"ÍġÂ7Ž"J•w~Pĝ—C>ï È%/L> ¨ÉßZ. İĥH=W]nıÇ[q'nŬf-Ŝ ÂgJ'Ĉ[DžE?òcPU;sJuYZU˲Ž–ö%rôHc“E[ uy01­¨!t`ÄX.òĦ²r¨€J9Î݆Ér4S ×ËñÖ ŒĦn€Ù0ê ĉĦĦžb*Ċ”)-í:+t’nxӓ˜XB„Ġ˜6bz;Zۇéy°ŸCGÉj°“É!ëše´ıĴJ•ëÍAÂ<áz×ú‡cƑùGÄÖŠë”äIòchù ĝȤ2…ì>\ĉjÄĦ}†İ#ç„ìëOÌu½@ÒÁÇ|lj,yŜġiN†ëœAJú]'ƒ,żHÄV(ŜuÂù„ë?‹]/`Úê Jïìs.smK$ğû][ƒĥĊ۝ĝêóċÁĉy|êŽAşżßU„³C*WAĦǕïĵàÊ ŠÛÎİԜ߸’òcnœÔÒıÎmq8”èĴŒtŒô’=Jöôû&ğŽbÙ=T,Ü1Hîû%a½p£p+¤a@äsGݵT?AWTYŝ²ĈĞò´|Y‰3ĵU,ÜëĴG7+Qgŭèà?y1vµßŽYKYZڔĞu´-]$ğÍŜŠLá;0Œélrğ.m‰ üM [rAK¸ÍÛR^ê-wìXtáEÒp‡·ü ,ޘUwpQ¨ĵż#Ô!G ‡šÊV6\µÖĈѵV–]c²2i²•ÒZM ×n†›¤µ¤µ¤µšBMòZŸKf–Ŭ֎҉†aÊÌpġôıuA֗’nÉzŜ.mÔĉÈ|ş€{ íÁ„Â¨SÌ‹]qŒ<"Éc!M:ÙİZ›Éüµg٠렐{_ZZíĊš!ûûöĦ³Cµ-ċŸ@iiN6ĦŻÓZÌo& ĝŝ|íĜ˙xÖ¤éıÛVo­ šU ĊǸ·"Ż=üğÈG‘x$ò§ ë–=Ò3çz’òé6â“§éħ =(İELH;5Ŝ ‘ @’˘ÍhúÚSz§5FÉÙĦ÷Ż  [ ÓüL^"ħ$“Và™I?ÎĴ”¨Ĝ}?;8żĝhd>)Ĝü6ñϏóW·µĴ½¸"òÎgÛ#È4ôF^'p42ƒW£l•Z$C£lÑż°ĊšVнXS2|y]‰ˆœlKÁĜ‚ü1ŝ€7?Ïdä…Ŝ G<ĦËÏ5vĵĦ!#UP çµjÀ;ú0“Ö`À2TFÉá¤l,×쑐X>'{lžÉÛ÷ĈçÏÇŜ?…*ö·wÉ{P$ƒ$/¤fYAÍ ;8PNRh;NYO½5\„\ü ‚’?ŒÍÓyu§~ıÛżùóU—Ħû›[˜ŻäıX–;ŽgÑžóqħJ¨Vq0ğ˜Aĉ%ĉSAĠÍt³”RÄ ˘GñwÊ œ r ĉ,%Ç£}QPšÂ0>=Ë*xŽóéħ‹cRĈ `(D޲J–!T)âÍüüg<ۈҧ›:cÌrIÍp‰­VûIƒJKJOo)":K‘¸Ħ&3[Ğ=½!ӚĈj§Ì¸cÍi­X"–ädÊ dEƒ!OG< ÜSAç}ì$}…†§í‘ááȟOrLJÇW†—ĥя>ŠÈ<ïăԂ<à×Ħúr2…ĦĴ/Ê*.)ÒI›Ż/*Âż,ÓÊ4\Ôħ€ßëÑ1ž\é;/$1[Ìšž,◽̤MÏĴż(b?C{z–żĥĵiöN`Tú̋J5Ğš‹ÖDŠÏ0Žĥ­%F”ôİœùë{òĵ+;OÏ V=†’Ù_>œ“0܅˜4Fßbżâ>†,ô˜"ĦùÁĝ€×ï/ä{&ù›ük4Ğ’7‹VĊGë5­šŜ$Fİ—”œ¤dX‡ġ~cVVšcœ‘aÇ)²İR#꒓\)ÙÙ:ĞÏR-úRìı.Ÿ|YĥœÜ'=K7ŽĜ´‹C$X z"€ uy¨TêéP82‡óVädO\ŞIÉÔı@¤~êÏñ>ğŸI‡4ÈȔ .UL#Nƒ+ LÖ4b³’ 6 UñİH&օ f‰zš1éôjÓ҈ĥD–ÄÎğï$œórÇÊ[ C?&9/—5y%ԓx“Ñb–÷Âdd½î€,!‰Â˜…ß´ÍëŸ2ġé3żœ‰èżŭ”L<ŸsùîıĊŻżş}úĤÈŽüuφ֐ókk·ş'½VàDG Éâ$]ȎÓ%œ™*êÌW•%%£LíIĥOH:&Ç m'üœìD·ŝÙW‰Í…áS—ı9•ÄER ÌĦÌ!IĦPŻdÁI)kJbó‘‚xX<`vñXL‚ħÔv§ĊCLÌ$™‡˜4$Ëx'Ox7‘ĜÙçMxÁ;äIŞİ3âC¸„†x“% ”—‚ħ˘YY{SŭOkîòĤœ™d`‚I}Š=ÊîëgŽwÜnñİuİéŝ†T³bìĞwm?~tg×ksÓĞğ·˜ĵ&Αµ˜,Ó­ófNMù➪Ş];I sŸš/󆪖ŝìíÏÈIF:˘°>î$F<‰Êìö:Ŝv0Ib|"ċ,NN)*•1 ÚŬöLm& ‚Îĉroo¸lž.\%MüÓébèYġf^iĉ~˘Wbf,~bP$ú,"áҙ$AĦ×İŒ€É›IV”ĵŽâg_úûWç×ÌÊ-êĤ‹ĥlyèÎ#ŝI'ı“™Š\ŒDÂĊŜšk?{aßÏżħsŝAÙFG?b^gkÁ °7”µ×FvY{Ä^+3YÔí12Œ‘wڅ8'ž`BB‚E&@uv§2`ħ90DyVŭNJj†ŠŠFġ!f`dǀMôİMJ?h ZäRŻlĜâ€ñBYFeŽóCĵ3…•÷–’IXbyš,/`ĥ u–Ä“ŠíÊu?œŭÀÖĥ{m}‰_{ó˘?ë`ko/ĵ·gù“O½·qĠ[§IŜ'ÄNĈqˆAaô<3„ûŞ'Ĵ ċŽĠLÒÌÑìe÷%p>ÑHZNÁ ¤N‹ŠË4djƒ:½Ŭ Ĝm‰ ž•eW²üŭ½µ[ %F“VòĉÀ lÔÊÑOFvıÒKŒŒì'àùƒĈ›/ħùcôy_m}jíSŬkĜGşff?téOo=ùĉóÈMŸ½ŭòŻùúŻèĜ1‰S¨ó› Û֑ŒoŝDĉ  İŠžgíhCŒáŸ:´z§ĝ¨}Ż‹á44ž3š4úx“1¤Ċ LQ=Ϝ!/2gŜßUœs½ŭÌò™WuFwFO牜'9~·Ù™\Ä ‚ÙtJ§Yċv:ö:£°>sĵÏÁٔjA§ Ä;œ=œ)l6àĴ§ğač‰ŝÙaé ŽĊY £r‚g´tĊ Ğ/Ë1ċÇò.żNĞ×´F-ËĞ}I É~pƒÓO ‹à•I'qŻŬƒ]f˘ċ*N‹¤]ĥ5²¤ĤŜŜĴhDH:Y<‰D2=’Ħ­ám ‰@Ħç ôÚKŸsï|hVĥñ p}ΌĠ×Íx)ò'bŭÄJ™|àŽxÙI7ß0}Ù䧟9ŬP0İxKĉ4‡}&žPRñß^yÏĦ.ò^Ì×v ÒY¸7Á5Ħ4ÁÉ+ ‰7™x½Ò†Žž&N´è}ĵĈĦšKF›ĠvɳxŬ‚ E§d .‡(’żS*Ç İäċ˘Û"éoB˙=7Œòĉ-%[6Ġ w˙@˙öí\٘y”>KÉ ÏmÔÌ<ĥıGŝ–3>RÌ|†²â‚ ȄĦšcµX­¨ë¨÷%ô8÷şÓŽ$¨B"cN jN)“Haù ÓĤÔ;•ñ™Bf&ç`2͙AΞ­Öâ&ĝ[Vö rq¨H’€á _ê;SJ‡ämí{ş7Ċž¨Ò%û´~o˘ß)vÌt*â5ê8Ÿ3ÉO A´j½à;ëpù,‘4'?OgxO’?7â`ȧE²´³àµxÄz×üĵüî’ĥÈËŝ˘9ïk!?S°kís‘o‰p””?û/TúĥŬuòúôÈlÙïÄ —r_é8żç'U’­³ßŸ1íktˆHfäİŭ7íŝÙñ…ëi†ĵÏëTÉĤ˜af(µF´1À · ·‹˘!Ž0xÓ9yÁ¤VĈ•èY˜‚`Fßb‡%†{ Ş ‚ ½~OÓb†QÀä˜o$ä+•ĵ‚I ùĵÚ_°RÌ׀Á߉‘ˆHĉ`ċ)Pe1àë<@^ŭ$²ˆü$Òżó:iûəȭMÔÑıEĉo#feì‚!ÜĊ‘x›Áˆğ÷ŞÍûîS‚µq`€;ŝÍÄËòÁûĜIà‡ûBĊ‚(hĝx‹hÑXâbMh•mĥjħJíġ)íNŻMIY‹Ï´8xĝ‡1(SpM](}D´o‰!y|irċ왏ÍÚ<<–~vó´ÍŬ[èħċıSžxM’<Ó ´36ô8ĉ‡rógxÊòF>`ìàÛΨĤFĞ=)à­*]°ÛATĜ$Ó´-Áñ=ġ¸p…˙| }§"Dbé V1RC°EÖïŸÚÛzaZúagöşPpraFÂًôϟñ9OKşÒTÒg.Ë_ħdĝ5$wş8ú.ëA?I V¤ŭáPŜ.q‡öQóOĜħ[ğÏ<($Í~Ĵù£Q=NäVAíÔĞl‚Íf˘x{‚"`²Ù‰½†kE1'),Ĵ_ePàÉ£~"X°ĈĊaMiTûh1Íè1ŜsŽbĤ’ġù#{„ĥM§Eż;ĉ}x_öÔ£?Ùħ™s$ñRäë÷#—ˆŝSÄwï˜˙Èŝŭ˜ó‘ż {8yޤ]B'<$ùD‘X²$hï÷ZhŠèvè4ĵÓ$Äó§C•¤ĦĞ=Y‰ž'˜oó&_Óӕĵhähw˜€³ûY?$ cœ3bÓĝħ#ŝPÌßMŽ…ĉ²ıF3NFäS1/;À:/}qŻŻòèħ ĉ‘Ì‚w>9Ü{ġŒìâĠż}³sŜÁcÍğïšÓÍÜ\Rù#òĝôŽ›òЇßÑcşuPׇüĈ7–™Ä²QK5 B%1Ô)EğH>Ĝô†ARâ·î ñ“ÔğĤôÔ)é#şQm’Doôğߣqy@á<„IÇĝ’KĊšS} FЇ¸“<àIÒĉ‡ĝ} %É`=À1KÔ9<ÒWÏÈW頗32úŭĊDÒsù˜żò3‚lDŽ˙ŭÇ Ÿ‹òžĉ]·ŭhuíż;òß7O¤½œ£‹–T¤Ô:YĥäŬ>?#dÚÜì9snĴHFÏ7)µúî]?ß<·u|î¤ÚPeŞÍàÌJŻxäGŻżû$ŭ;ʒ%ú9UpsÑ:ÌĝY\Ĥò„† ’Ґ5Y^£ÔÙÑ\3„‚IcŠg\ e.™m6;úvkŻéÛeĊœğ!íù<:ùÂH ìϗÜğžç÷ï÷›r⍉us·láĉFŜÚ6\QhPşY!Ŝ½˜žŜ&Ÿ÷Ñ?0 >[ÂùĦqƒĈ—ŒTa6ƒÍ˜ÂŻbŜĈ8ĝ8%‡ĥË*X­’e*ƒj•ŬN‚ħo^6ĵ£ħΨWZR¤ğlwŻúâËÇô5_ç#…öì{^îèŜ1‹·}<3ƒôħYE3Ĉ4öÌ}œj}‰ñݳħ‘c—ôS…†÷Ol ?Ê,#§ …ĊJ[™Ċüön/ôPqTÑ v2w?ğ‘;ĉĠ)·˘lje·yʌĠƒÑĥ $Üì ı÷0,×SB9Ĵ‡yô2p%ŽgB8Ê  ëĦÍê£G‰ä%­?Dúx›­ö˘µfĝ‡mòŝHŝž¤ú‘T@÷B[{ĦFˆiSĤŻùhPÏ0,ġ<Ï}ortfú8ĝnŜ˘"üûŜ̜ M?tQ0diXaPb˘ĵċÚ²Ĵ荕Höw#¤7™Àl^·XĴ!ÒX7 nkOɅˆ%‘>F@×Ĵäñ ¨Ĵ¸ùR°V0v‹H0ŒçŒ˙ŜĤ²Ç:ó³RµıYZn‚&Òŝ q6kqdKä/ÏE â³qĵÇ*>’ÌÖ"\÷\ŝğ şàçFhwQ‘neĉ3Ŭl{ž›Ç½Äoċ?îΉĴĜ.îPè·(>QÖ)ŸP­S½ŞNQż7KÖ¨Ĝ/èFô $‡NXŝšż•_u]ŝıžâ[,pÒ/˙è@” …R҃ÑK§‰×êô#˜ÌĞÍ g˘KúŬ˙˙ĈĊÂY9—˙Óà‹ĠÑ(ĉn)—~څï¸|Ñ~ò'×~Š˙ë0‰£-`¤pjW^jˆCŻ&´xîëÁ€;òW_‹Ĵ;¸€Qş˙u‡²H5yx„r‰W7ż€/˘Wu\-ÂÔ ›1•c½S{œâfc|/jëÀz#–½Ĝ?S‚UŒe!Ĥ*|ŜċxLëÉXcXnÄw×K}˜¤g;pŝ8V†Ï[°ŬÉJ™Ħċ`¸ïèMñ%_‚.FüM5?’Ë—QòġßZ.T[ÄżËĜŽ<˙?Œ%ĝüendstream endobj 235 0 obj << /Filter /FlateDecode /Length 4821 >> stream xœĠ]o·ñ]í8}Ĝ+r›ċ7ÙŻ iSAÚĤŽŜœ˘8KĥìZÒİ’R×)úß;3ä.‡{³'ÉħyMq‡á|Ïŝµzµżò˙“‹£Ož„ĠÙÍѰ:;úב˘?Ê˙N.VŸ£`ĤOCòĞGùK˜Šĥ7ւ }rvu|qô´ûz臤cl÷ ĈZ›mw½Ŝ }PÊÛ½^oŒÑ}HûVX‚7Ŭ)pÉ :ÂĤ‡ä´ëž´‰ÚĠWxÏêŠïĜ‡ÏaÚĞ£în‘¨0´€g¤â`ş? Ÿ”M€Oû\b JÍiĥkíûlêŜÖs}S?{ï^Żuèġ`ÑxğŽĤWIĊŒ„\÷%:¸|BíBƒĊn½ȃJŻ¸Ìı¨şżâb8‰Û]ĴñC݆ÔŬĴ˙~ü%\ħ²üŠ ½÷ùĝô¨Sn}üÏ£µŞ´^mŒë#üŝô´{I'É{¸nÜBY,€Î_`ŒşìÎiìGÜ^düŒ2ÍaèµĠ]ħËeÏè€ĵ!BĤ U‰ŞœÓpv ˆ|€ïT·$Żuœ?w—™Ü~íe ó¤Ò•Q{—kç[û’ĦÙ˙y vĝ›ñËí%sùµ–Á:›È4âıB3?áfĈäšÔ÷˙$ġ:0 ĉ°Ġ#Q“‚›‘Auİ>0 ù‚“Gœ™ûĥíÍĥˢ=ɸIVN¨M•CbòÀ÷›ìuħÙ°ĴĠÌŞoĥm˘Gò½™czĈ}.ĉ˘f€.Ĥ½ À£…v Lui°'Ĝà1wnÁófŜыŒ*ĝDš{^ç\{ÂùÜ.EîĞìˆ:FtF 4˙"½Šrï^ĉ xħ|ġŸ‘7 84WyŒŠ Ş>ÉN"xç&”¨L—§ `>yKÜ÷z^„hHp•…È %fänË6_QöŜ^çËWï6Ħ— yM˜MwKÓÎ7EΒ!V7@ò6î➠·Q"À&£8ŠğŸ’+—RïĤàBvċ PâMRüqbġ°wÁ0éUÓ1†ÚqMÇoB…†²Ô¸"µ›_˘Żkរ='Ч‘â)°-ßĴ1…à@"ä‡“.‹$ŸĤw8- !lâ!Ċ9CòíxŸfYÀ ÓX§mcƒİŻ`\äŭ˜ÌrĊ›) ‹³ïBfá,'01 V b͗<™Â4ÏmÉq óŬᐃàí…È&†ÌK€Œ‰Ù şqĤu j]ğ§uKêċYk ŒĦğË\ŸRpüNÌ9f–™<­ı³†â’bŜġşżbèú²dX›‘œ‹ =Fôƒ”×)3M@ĵ!‚§Ĵ Gid:ĠLğ˙ğßch C…lûBLÚfuƒ2*fŞıA“ş+$„SƒË(À)ĤFâ&3 ôğ<# ƒN!ËD™'ÁwǨnCÀ-°‡'?BÁ]j4  H/_Ġ /§3Ŭu„ûÓŬhs6‡ƒ¸Ö/H¸˘Â SFL&#ʍiNkmAİ)eó5mêş·”&ĠgtʒZ.‘N(š[³`*ƒ™r#·t-^cÜ-îĴ@ġê0c•˘Ò} aH—SÑŝ˜×‰ÎċĎĵĠÓ%=d SŜMçû'ê}OKbYÑ9-ç@ȋ^)k2ŭÒ0ÄP9MYôzAŻm´êĞŠe§ĴH/HÁƒ{Xr2EĠÍ5`13)”ücûàìOÌ?6xİñ‹ÂbúŒ0‘œh$§Ġw+#\–’çĴ=şpo‰A‚mÉÈÀŜ‘Ú×É(—·0g^O ß6íE¨#ï£WËrŸÚŒ:wUxq‡“ïj=ĉRá”Ç}3ĉ+­ˆ):LgĞô@ż€Gp‰À0ÁŜ9@Ò?Ż>1óLù5£Éu Ğ6“Y9 Â2v.î_!y‹“½ïb³<˘,Z D ÂĠñp/_´ú:ĵ?Û-ì&JYBŜštù~ñT Ïežp?rRHܑù‹xK|{Ùj`03ĞË0˙e[‡W×)9™RN²˜8nêäF„ġVR܁%ĉŝ!.ĝNö[~ÑÉİ:ŸŻgÊGß#·ŭŠReSkÁW²RÄB „ħ‰dÜF%² Ê<Aɐ .]EèÁŭj"İ™Ì#ZŭÈ< ÂTfc·çĴ YÍB1Ñ>$Û{DûÀĝƒ1ËäkÎ2cJĴ’€Sĵ·ÌŒ[íúfĤGà>Ċ·%E’Kİ—Ü4ϋ–ÁQĠ2ß~ ^]Àqɢ&{žjn%—ÀЏùUħi{5Iĉ(È m?&ˆB­˖:`Ê6^„jÀÄDëŭMı9–ŝ%Q#´eXâm6ÀâaŜ‡VÙĈ‰šÒĈÜÑ9ǵzaĝw{ùfşż%kµ£{“—¸‹PÀ™´gĵq:µÛe{:Eµ%üӌ+f3–’£Ñĉ‚§s]CĜżä2°“9Ä4͉÷êÇGG„ZŜ[ŽZ肴)ê3fÖNħ– Áĥ_o|JÔ45*ìdŠ&IÜ¤M¨qN,ÚM#³ÔYi@0‘'ŒĈn\Ĝ&Ĥu…­e w%ßÖó xĴQú¸ŻqÁ̔>cÎ1ŭI,Éşxàt@Ş F ›Qü’ĞW²ŽÑ†R"Q‡ıÈH=LlñĥrŽëÁ[Iĝŝߖ¨]ÂÙ”µ$éD°Â ÌLe”bqĈܠݰ ­&K>‚cÚù H‘*Ï}NÔ`* )PĤêÛ.âëë>oDQà[ž`1 ڑ, ċ0\ç.IŠüúëĥXrÑC ²A)líèŜs—ï˘#ë¨qCS ħ5鵒k>ÍӎŠîġîäĝ‚çBCW0-Ŭ0Ñ6oƒtš*àKd†íiUĥ ½¤lúÛ5cŞĜ@ƒ:pV(GğgŬiż1Q2ôĠbÜĉùYÑħĠéɘVaìÜL˜qîGŭHÛÀe–ġ˜56^i<¤’`‘L5’3ŸË/3v w1öÌĤ7JPFĊš\N)&hŬˆÌòğċââ‚§‚§’žT÷ĄrˆĊŭ˘Ëĵ܋3ğ‡›,ô\ˆ_íÄ}o?ܞ¤iX[qÜĜƒqÚï÷€|¸'$ƒ1Ž×SÎC8ŒEIïÜ$cXŝçc0¸§òážr֝†OWäIq½óżżOŠs‹ÙSTfÉĤqê.Žó İŜ#ÙîÑİ5 Yè£:ü\¤• Œé:ħOñÄÜá`“ġŽ“_×ÉwLÌ}Tu)ÔŻĉ~rŠî…H:‘ÊUŬÊŭƒ2ssvd×˙‰ˆ|矈TxğÊ&–ĦS ›|s×WEŽf­¤ïƒĉÒ!:rOċŬèÉ÷XFb+žˆ-ĝ^&÷sËF÷âéTàcŬ׉¸–ív#B<†wj[ŝ E9ò&ô¨Ŝż{è!ò'z”ħÀgkì‰ròÚîÏ`:àó•İ4Srî!~0†2óLü&‚6ÓP yó% .2†Ú/aBïĴŠáäµAá½ĠŬ}Rµ¤FOĞa°êÀCBÌ[a(]ó' íĴ—•Œ³†,␴fôĥ§y vħ6‰7!äÛɤ5ħĈ*+… ĤŞ=6É-ìšĈ.ċöŻM†²kÈÒfUŻô,/šeŻPËcċ}jKĥ ŬTTċ¤³Ĝ]W^ĵ•ĜŬcÊùG})NÏò.s†ħ„ğPI¸É+ÌÁœŭ$)™X:Ĉfġ.Oî°˘%v3OlĴÊȏޛ Κ!(ğԀÊ߃d”PqŜŒ{§ĉÁOctDıĜH/CXDëAÑ&-j^ŽÜe x“ĥĉ~ܢXà­~|ô·£üƒ'nu½ü '3İü‰C 2+Cü„‹£Î ‡U >vĜ^ŸZے½¨ŭKiŽFP~KŬQÍpc½Ħ}×4ë€&.ŝ<†\MŜ2óËĤżgò‡+§yŻ Szˆ{…):¸€û…):ÎÂ/b\çéEwdóÙÁíĉηÑĴ^;‹Ç<´UżfŸĥJâÓ”ce g’y³%ž×áMöuĝE×Êŭœgux]‡Û:ĵ¨oD`[qVnĵߌ”mC²ĥ˜ızSk+òv&t\Ž)ŝ´›HX$Çd¨ù핍AïkÒö’â ìÎ{@EÍéÏ3ıÌ{‡4‚Ê-y|ÍO|ˆ+Úò.s&‡‡‹}OŸŬFü1"mI\ŽáÜbó ëĵo[ž&_#˙bFÄG-óĈ“#ĞܒlĴíc} ^²ù¸İYħËOtòÓöj —Š )a°Pcħ…´\¸dmÚàżF²6x×_#™Ŝ&Êí[­,‰ĀÏĤ€‘éEıŝöxu{Ñ Ġ §jGû> stream xœ½\[o\Gr~gù żdˆ˜'}ż,,âÍnœ’Ĝ^û ïˆQZ‹ŠCZV~}êÒ§ğúLŠÚ CQOîêêş|U]Ç6jÒ…˙•żŻnÏŝ釸ı9žİÍÍه3M?nÊ_W·›o.@;™²ÊasùĉŒßԛCY™MôqÊŜm.oÏĥ:œ_ŝŜ0ı{…)|ïòúìĠö‡s5y£ŽÛïÎ/€ ónû€Ï>çèÌöp'Œ÷ÛG5ZYĊè70EÖ9zğ}B‚Ĵ­rÛ7çüĴnµ\=ÀûŜÄyġ_Ÿ_8g§ÄkûĴb†èuŜáŜ4&"&N Ú^!µM&D½=ĵ?ż°ÖLÉ$â$ädTdN|ĥ †˙ŽÈUÉm÷H˘sJF.tÄ9,L™·ïpÔĜ´wól'@aħÌ[ù‘Œc”$V);ğı°„š¨3ü+íżœ_xcàÈĥoÛàğöxl…‰ 6~Ê1fZ MÁ:XôBÛÉ;\xñ̋ġ’—ċĞíĞĥ€nl}ĠoÛ~ÈĦxܵÇùÚ<íĦ ݃mS{ĵ—ï£~wyö=XĈżŻ[F°#Ó0p^ÊĉMÈ&ŒhŻĥ˙Àš ú‘ËwBó ´èg-ŭöógTC < E$${9œA<.<µÇż“NĥŽî‹Ú.%ĝ)&3Kö3Ç ġd½ĞŜâp‹bÑ·U§ly"Eß³6ĦĵEûöĝ=^·Çc›á8|íħ=~5´Q ì;ŸĜòÂĠ|83 –ˆfœRDۜÜĉżö›?mÎjàeo\çƒF.SĈÉiÍ>èwżìnïßï7ß;>nÎA%”w~ğğŬüöaż{Ü_oŜŬmûôĝöÀ‘gşÀ)!ÀMèŸĵ…-¸@Ñŝ÷ûOûğĞO¨b´4>D /oMÚ|vŝŝrfĴ—7.¤ Ars{Á4N1ԑ÷gPµ‘ 'c™*èFÍ‚&D’¨Ž4*kh­äގ*o‘ÈKĥ7ˆa<¤k 3œ6g—ÁpÔ Ènğ“9Ĝmäšgô1ŒR&Ŭċœ&…)D7¸ïˆÏ쵍€ĝ)é4ÙiN/Áê]¤&ƒÈʤzYD’‚ônóMôïpԝNžŞxäS ĉùT“µĦÌç•ehc!„ıiMnŞ!iË)yBû]œQQċĴ• ¨áŽxSàÚzî˙ÏèÇ äLz‚èßFĉĊZŸğƒA½³ŭS*ê?Tu ¨Ôb\ê´°‹29pĴ)g† Á=0gcÎV.)‰ßĥ9ObÉGœ$M ’z! ıú‡f­ÂŝÄ2RY;MĴÄ7ÌİRĥӒ·ò–ĝhó ›Ĝ] vÀo†Ìê›`12Žn_SÍÂgċä oDqó@ï† *u£Ĵ?#ôşA:ò¸’Ù3…ͨ¨S"‰”­8"ĴŞmNG]6À6et›"MŞFÀK€!ż)²’îSÙQIù‹%îĜ{q-G˜—ĜéUcIŬûĉa’b'ĵİ–ˆ½Úŝ'r5ĜĜî^èä‚Ê!Òé­Àù^ ]jx%7já€S§kAŞÙµXEï›-²ĴÀctĠùċ…ĦW=ğÜMzû@:–,:}kÑt, óÛÑĥœŸ’;Íé¤ßJp A³NÑižFKòĞ"tÉèsÒË Í IŠÁŝuµ@p' 4ß°,¤Ö’•e-°Yq5ú#Oâ”Y•™ûb+àŭržmeG^>i8ž"£‹µ‘R÷èfi0j£^ÂÔİş8Èʔ ŸJ)GxD-QŜûˆF› ¤vÁFŜÍfÁü÷•Á9N3 šEĉ>Qï.ĞÎ>0cĉí´İɓ7eàÈ€ sx€'>Ĝ.Ŭ1„c&ôê.üáNĈĴ:[àw7³ ˘ôhšä@{ÀzG¨DG7iğ(ä. ,0h‚i(LMxóS›]°vÍëşZNN2oĤÀĉBîìêş“2mjÓ½[<Ŭ}…C`ñìñËúĴI İêÙÈϵxµ¨íІŬuf#żjúŭXĴŻ÷€w3O™·çI…ĥjíèOqÁ_˙şÍñÔ11TĴ:9‚~Ħòìît´>Ħû„­[ĵMHj%|­W€IÁħŭŝñĞĴàè{ĵĊT΍ìiÇ$9“#Š“Ö>S5żh8ÄXû`,Ïw-KÄDğħ$Hì­X”ÀhrżbXPZ¤ÔŠ?›N îŠcöĤîŽìÈħSŝ˜„£(.xFğŽž¤”–°çd_db?“DSNC/ĜÌŜ•ĉh€iÚkaıbŻìŒónàˆxN4Êîz³a£KèvxÁĥĴy^°Ù[ŬYÍIžŠû·)ŽxŽSwĜRB‚[&1p Ò陰BU8İ0+ĥ×ak~OëÎŭŜ3pV‹ Cà€^7˜vNj+‹@R´Àñ‘‰u~6› Tâ&(•#˙ş/TÜâ‚QPmÉğ–Ġ.­fµġ 矴ŠìM&Ĵ§ûF äĊQŒPÜOC3/'˘ÀĦèpYN&÷MƒûMèÒ¨´–sœò(IĴĝVSé?™oÈİàRHòÂâeı @Qħ(Xĵ#X--áak@ĵ|’Hmé‚Ĥ ‡>â’\q¨gú÷ä·rNħwüÂL•Ù_S4ħËOÌGÌ몈` i‚ÊkiÀ­àj\ƒëÜËı{Äŭ‚e˘°6'D%MR’_ĈÍJ.^żñD¸ E¨*›ÎċcšċNşÛ/ŬÜùhŽ…kÁa!´AÍqH`l5ŭUrӜĤ.4˜Ïáżqïp°Ô,'ŸJé„2ĥ’àk\x­ú³g (sÇŽÏ.¨Û!„ùU AL¸;Î3Ĉġm…×LìÓRcG•ş`‡{¤…ĵ*=ÍË}™èÎâċò]"ZŬÙ]ġ%µžaáĠ;ĵJ)Êù[lÙM°Û¤ÈŸuH8*˘.Bb6żyZ-!³¸Ö“!s”ñ½siGĦÖììñ {*)LJ× ½—g ·³=ġµı(dŞww`$ïsma-ô.VĴeûG×JIw…ܸDġŠ\€¨v÷‚D¤8+–—iuL™ôVż|ÏĞÇ׿ Ÿ­Žt2 +GžĦünQ]+[­ŻÊd‰ÉUÏ'h:PŜ÷ Q{yŞ˘HšèU;à—vbĵM%ŭŻ}_ĉÛ²“˘7İÚOE9Ĵ␗ÙB½S8òŒ˜,IíşZ€ù’ i}Ò\g£FÈĵŭ–<-xsP)éużc’P{N.µ–×ßċòiÖypdz΋´vÏG‡VÈ-&¤×FŽ“ÖóHE_Ɍr ıÈûĤCÓydOŜȋgTğP,Ëé t.JNcòì^½]G:c …ş$ĉ#iİܝ`î\`§ŬK¤N“ĵHğñV:™)öM.Ӊ‰“â½ê{NJĴŬuE Ş–8‡†•Üx.7#Żqe+Ŭ˘ˆ-?+WËĜ‚"ĤğO"İ6ĥċ¸Ĝîî‰ÔÊd ˘Ŭ4Vğ8>ÄĞŸíËZ4ĞÖAlàuÊêŻŽQÒèVlOnP˜ÖîĤ¸9v4uĵ-Ŝ5/ĠX&XıŽ(Bê•oٕdˆ0ĊsjéîĈ1 ²ìc@5¤ŻñËS˜DŞM߆JˆÑìÄ3ÓuÄOô]à‹°Úë3̋KĊƒ¨qBn³ĝÒm1KmĈz™x$'wĵò2­ÚtÓ]]7wş4$œÏ|µċ”S£ûq²İÎ˙êÜcî°À…•şM$Ja'ŞXšĊ²ÜŽ‹ß"giG1y—lŭpĥOt*Ö/ ħŽŠü`LĈ‚è*Ôğ=ï茂Jĝ俆Ho{äg0Ŝœ ĠJ]$Ċ+}a½œX˜ƒĴ’ÊVN™‹"#\’ #ÔbÑà³˘D.„2s £èÂĈŬ޲ %2ŻżÇĴÙ°8Ñ£"Ùŭ²cn'uÉjz Vqô• c|ĥÜ YŒWÌûşÑÊûıŜeu~ğħ1üÜb%%N,œ„Ò)7ĝD\'21¸”…<ıàÒĜß ˆ"Û8Q]Q舑—Ÿ\Ş—}|TŭEġÜgú´C†ŒÁġ5€Ŝ¤ĵżŭi·OIݘÂܔZxéµûYµµ›ÒеŞħk7_Ğ7ĊB!×n˄Ş/n `>V¸eb2+S]|ÑĥóhÙ:wıĤTĤƒhv-+ö˙ ú§„Eŝ|ƒÍì †ŝ&ƒû>˙MĈĵ-ŭ"àİ0ܲq¤KSiĵó|ÏXJèÛ·.(ˆİcġŞ´ç¸kß ]íĞWċ Ûöè2˜hòàğĞ“û5†‰ÔµRUwâKŠ5pġ5ŸKLĥsjC7Ĝ£îĈf#ŸßeOŬıRğÔA¨üZŸF×rÓ}x“çòĦ8AÑyQêĵ÷mœŽèƒÉëP˜¨ħÛêĥс—è˘]d5ĦΞBî'ÔÂŜó4I=ÓúôXhÖâJïŞ(.Ĵ^ĜïiŽ,×÷ô­ƒ;8âÏc“cÍÊAÍgË)òwĈ˙í `ŜÑNTf=H];´TyîcÈ,2Ç(Ġe²ô•ëğçÎëô^M ?Öéñíóâk5MtíĠÁ*ëdËa]z Ci_*ŭßf­\íÁxAŭ³*ċçÌcÖÔ%ÏüĤUíß3ĥe­d0+/”6<:ĤZ ‰˜ħÈżĝ<èùdkPCž9<˙yPB¤szgfĊŞeY!na äKZ#XÚöhmŭš‚ˆ[я(¤z=NĈšùŜĥoĠ!Ù²ĝú÷g˙ ĵDÚ½endstream endobj 237 0 obj << /Filter /FlateDecode /Length 159 >> stream xœ]O1 Üy…@B‡.Q–tÉŞjûbLÄPƒúûB:t8Kçğ“Ïr/#ğò=>)ul"-~H0ÑìX´ ŒTY™ĝÖAÈáŞë6ٝßô›äCöUğ‡Z‚FŠšg]Óôµ½ 6R Lĥ:ĠıŻPXü‡’£ıÄqp‘8•ĤI.à˜~Ïr 6ˆ/=˜Seendstream endobj 238 0 obj << /Filter /FlateDecode /Length 6419 >> stream xœí]ëo7’˙Í!¸Ña§Ŭ|“Ĉ=ä|IYlÖĞàpÁX²%ǒF–ĴÄÊ_UEv³È&g$ÛÀâ€~H›âQĴÇŻä;q8â˙ÒO.ž<³:£É îÔÊyÖ\š6IƒÀ”‰h H-°{İs[FġBVC΁‘­THj…CċşéİmqÎ{.%bO ĥAëĠŭ083˘–˜'aĵÂyŒqêUîq·`îMdĜ"WÚ=­Ċ•“Ŭ“ĵ—ím&ëW¤PÁD °‹Ĉ“B…żk珿?8ŝç+SAwŭ‘”B"3Š˘ÙŒĝ/żúîê~œtÀ-R¨ÈT҃z“qıf4ÀÜ a*°ÀÚŻN°ğ£QîiaàĐNN›f‘&j 3 Óż§f8m g’6$ù†™Nâ9ˆzÏXĥœäš-ŭü&NJ˙Ĝ⤰Z`Ÿğ³D âHg†tà·t0V‘9Ĥ_NßĴ‰XŭW fÀôÒŜÀÌ$Rx8¸ĠĠiN†˘7ê &ÑÎÍlħĴ@• óɖz 7zÔ8CùŠ˜0‡”Ğğ? 4ştB@LcìtBVKĠ1ı  ÂZëp ŞAK+#Ùŝ‚² ÊÒğY_BŞXxÒ-$­²UŬD›äÁNKÎĜL›ÑhğaŻpˆ½‰ŸHżh{‚QĊ ‹vd­\%…\Ĉ1fFòG—Òŭ>vñ>˘Ë$úš˘Ô™ÒÏM0·%·q7 p3¨äh +ĈÙŞn/ÒŞà$żŠşX+íĝŞŝ›­! 6ħĜmÚ½/Àv"Ĵl%­*ÚyC:'ڗDÀÀU<÷}´­È#F$)=OR 4 ìu%Èk‚ İÌ$ÉlFġȨd“Ž u?ÁĠlú˜Eü:Ż™ÖÉ6şre Û¸úi•VĉĝÊô @Ĥ´ĝo-Ŝ A˘—’˙ÓQäYe@µ’u”ż³\Î Ó5353%½ċŻa›@*Y“ Œ $Y JĊë(Êà6”ŠK-óe22áì˙6ŽŒš³h²ƒ*%uGv9‰c²8_§iX)9&ċL[ ĉ7 NG˘šŝ É!ˆĠÉ$sÛÑhÜŭх¤ĈÊĊÌ3mŻÒ>—nH“ĥ‡ş•H KÉ ö½ŽeAK‡‰›:.ĜiĉôğüÉá,[ÑK/2ry•ĝĈİŜ‚ÖY\Ĵv“¸$ğÁñ Ch Ü+ ÔbĜOKŜß1{şğƒÓ܈™LYĦRhÂN•Û·FNt¤“ñ„a|‹hoġ}„Ċ9üİTŒ†È“şú²5‡FWD ëyŒ=í0Ž,W[˙lúƒV‡ĴŭĊêż‡(·Ž;¤ĵĥˆˆŜ›֒ĦtŜ H _”IömÜln4`˙o ċ€C\A(ǏF‰ÀD¸ÔáÌê,ĜÚm^ԗÔŬŽ5ÁwqQCĥóœÉ´ÂĉÒÈĥĈí4_w)E‘7\áó.\1Dï[h ““†'³TX-n“Ö Š÷s›¸m ln4ôĤ‰™Ùq=#t[Bm9S²0xcä˘pë}èá3Ŝ|’]½2 IêqN˙Jb/m',!ìĞ‘0 öÄĉ è³ :ÍŭcCW£ĤĠÂxä˙ Á_vĈ(}™à™?ğ*ûAş@ÛRĦçıŸ°‘ù‹,= ”]ċĠŭzd 8à<Úlrˆ&¤–W"µğŠÍ“  ’ 1Ô""í`×K,O­0Nu”ö„ÁıùhŸ0pÈğpŝ/ϙ'™äüŠt甚£v™ħ˜VëGĤÁŬ\Ŭ…§ ğrt(pnŻĝf ÜÄÁ´k~‚‹é“El”óÙиµöóœBĈLt^JŽJ-$D`ĵi $)â*~žĝ‚ⵑúa}d˜›Êe¤$€e¤„db;Ñ6ùĠ…ĵäèŠ|Š”`\Œ…È™Ĝ”>…Ċ^8°ŞÎıċkTˆ°áùĉ~ÄßµÂĊµ{tKQĞp7s‰£éSĤTè*ŸŬBÄÖûhRÒç‡üy?‡f+a›?ßóÖVÑ˘)Ŝó˘çÊsÂ3{Óíœ"+lĈ ’JûğÁv[§ż¸•m‘ŠnfÛ& YŜäÏMŝĵhvĝ½9ĜÏMÊżlÖ!¨óWgÛÔڎ„íf˙öŽĈBĈĵPúĵ͟ŻòçMŝ|“?7ùó˘Ùá÷ĉ`?çÏëüÙŜ£W˜ŜU}Ì_絸BH&$³U^+ÉĊÜ*œ@|֕ìĈ;@E-’äf…˰J+Šwš]Á™rJ̛î8i ÓI/Cµ$Á³ƒżÄ sxÓŻİ¨ü­TS!Á@8-Á‘cM5+‹P: ûèñêèÀÇ{ħpMRVĴˆ„ZR¨ğ÷™×÷i„Ìfò= LXfXëC;žÔàœîñ­Í!êŬ>MĠħ·‘¸pĝf§Ġìċ²ĠĐ-0×2ż@2U[͏¸‰Ğr€‹ĉç(µŒĮ̂jΣ`ħövšr-1 ~ÙzNX"9;éJY4Oéʘ­3 È]fëò÷)y{ü†V'$ Ĵg´]€?ĦèütJVÂÉŻ#0QSMʲt]J´i•V%ƒ+zÇ⌘²˘”päYQž9l§?Á):îMÚÙPî0˘Ş +™Ü×$6X&n›)B x)Eh’ûF­ġDY•ĈÂ.›ô+4WèLCĞF,!ĦİY¨ĥw 1¤ËÒŻâx•ÀġÈeê1‚É_îxôû“RCÜ z˙‹ËtŒA£‰JݍžSQ°Ò-)8[Úè—䕸ÁW5é6',u2;ŝšÉ˜üƒb†#làóĵœW vH0sÁ~ %_ÏX‹Ċ“Ċ •ÀŜ–ìh.¤›s?_f1¸j˘ÎË}µ]  šc™"\6Ò]ğ2?>ğà#ùAŽ3Fê”ħXÒR'J*)Nk0œy|ÜÑs‚ıİHZ5DŽšo;ĥ™Ĝ]˘úI 鸧ÒzD, •Ĵb2<ÌÄĴ ËĊ €ÂœL#oNho€/ċ\yıƒ‘0ĈîîʆéJQ‚ĦÊyǍşT˜dÇlM§VmjxÖlK–:Œ˛¨FX“ŜYuMġ˘œ7– Tâd˜Au­£y8ÙêDĠmÚfYĦqDópްŸòşŒCe1z9 hyûqÖ ‹ÒVí‹+ȗ†Í¸7MŬħy™Ùö˘6ŽU_PV7ÊşwJçŬ'J Œ²Ċ’)1ÌħúòÖ+ŻÚĵTMĵ¨ĜÂò_àÀĵ]ġXİR ×ԇl¸LéĴGU‰^lĊ+MlRĉT7ĦÖ­êĥÖ6WuU{ŭÄÙ@'TwCĤġtŠè7ֲΏÖQìòŞDpŜÌSƒ·-÷U˘‹`Ôa³Ž$òJ™a'ZziKc8ÛTuPcŞ‚rF¨Fé¸üŬšżZ–İ÷˘ĉ/hĴ€Ü´3ûï)Iı‡bN{Ŭ8ż 7P”HTÊ.(–>9ġ_ÔİlŬ/§qsèünÀÄıŒÙ%¤lŸxGAeñXsG+AŜí½J ˘P4)—ڝt 0Şš”BğŒħwŬoHğ£ÎCVmVQ‘m}á¸,Òŝ˜"Ëç-EQw’ò…\‡ÖħJÜ ĜcÑÛVĵxêQĦ#~wGSĴ@s8¸›/,ŒËġ³x°K?vÛÎñ ÖVÏ`oöĉĤíâ9“Ÿ™ÚM,D @†·TMpé,Q ӓ?­Ĥ!Ëë'äQì¸Ŝ™ Óġθsĵ5â@“À}ĊĞ8­é?QÙ'Mpİ6ĜëĵjMüaË(:Ĵ Š×$ĥ3 eñ32ñ˘7X¨@\%<Ŭ.S97I]H^$ĉ°] –)òÂ*ı˜RĤzÚŻHhċ)Ĝ\߀ġCşœ‘7Ğ6ğxĵıò:~›EH!nC…÷[*D€3'Ìnû ³5ĴÍ.´v+÷]V­ €ӘÑñċımö­ 7aT[Ĥ뢁"ƒÌ÷ß\MÄÜ[ĈÇÖÀÑ}:ħ3DBëğ²[ñÀD?O”y1ŸâT3_0ıÙÜN£W3X(`SGOӁ%”žjëĉc+ sôh x³¨2á²QDı›Àk*²ñe¨T¸PTĠTŻĊ ċ#@ıĉÏTn¨H¸˜K/,ƒm#ÚĴİ0šxNŭĈ`ól ŝmÎú·²/ıŬhĊfY+ Ó×ôŭù“MüCsˆ^µüüùUŝdi˙×ÍÙÀšP¤eR†çÍ?À0ïمġÎ]´/.ĵ›˙ŝ/ıq½·4o‡UFÓ/avcó9ß“X |Ĵaŝ§³@•†ż‚†aP˙ëQŝ×£”Œ!•F6î#XeŸ²S˜Sôġ5…ĤHl›ÇÒĉ˘N™ıkïïxéİ{zê`ŝüÇ&'zîĞĴ ‹í·-Œíñ÷& /Úùhf˜?˙8/ŭ1Òú´ùùY%0‘|áĠ•†?ŜŽ!,1{~€ÁŠ")ÉÉò½Ë1>Zç1Zz٘zr `W7…^FŞšœùÓ<ËŭÇ]~†—jŠĴéIƒ¸‘)è2V!O•Ĉ'ËĈêúiĵ$Aך_`qu˜#c?&‚ÊĊçşĝZËZÁÍɐÖħ·[ʗ?ÁĈÊ\ñEıÙ “7Ĥ~bq"Ż,Ó5ĴŜ#rÁX›l;Eêò•Ĉ, _Ċä‹èQÍdfÙvÏîCŝd•C³ġġÍ2L˘â­×Ż$äëíËrş™dï&=Ž(˘}L&9ħÔTVÏ*ìŻgŽ`/ÈuÄm›nááe vÉİ|.uĉVVUq*ÍŝĜÇ!;+9Œz-ç^§ä¤-‹nJú–,ò·$xP…ínyS£vù;5ßR ÍTïk?qgğ}‹Ï|)zšŒ­›cŬ78oÎÀŒëÏÍmS˙Ż|?ŭÂj%TY]ĠRbTD{zÛğ‚Ÿ;•Ċ£eŞĤù†ıĴzĵ…ÑìuϘA¸œcÑ ~ġ‹…Ì:)[âÓĊÓq­z™ĥiñĵĊ2!ûQ÷÷÷jı­ï›d²ï³d†4‚²ökşĵĉ›—0Ĥèż°ì„/­–ċ™UÎc+vĠOòtçÖ ·àíä5‹‡SÄJŽ^И™Ċ—ĜDk/Ô{ù°ĈT^=Ĵ!"Íċġm˜ÀàĉċÛ^‡³ž˘ĞEÈu–Ÿò•hü„y'ŝ;‘{yÖċáħ&•W Ĝ˜˘ĞmŻĝt@2]i´o5Ûĝ ßkC˜‘ÊZżààjQÎż´İ°Ucġэӏì’Ü£ï{Ç# U’´óÔ]û25^yÖñM²˙B/FŽÑ§Àóö_¨ĞÍ,AhfaÖcGUt<6÷ 57‘Û5ˆ“™äÒûïz‹/=îyÊùY½2sÉ4íEó³L•훓ôĴŝt˂›Ô⅏O^S–Ž›ĜlCYPĤPż2ÍXW]zGE@‹gîÓ YċïĴÑX<“Ôšr|SÏV+‘ˆWEĴëÒÉĈí›9 CEgŝˆ·Òíel3Ġ²jşñÂÈĠc| x­Œ ÖĊ4ÉœXkHş [47iÙL>ڎ Ĉܗŭ˙ô2ħUá´ĵĊ;ƒó0ìrK3öÒĵ¨[ŜA-Ñżß4£D~dà3E?Ì÷g@OŻ> stream xœ31Ó³´P0P02U06P06W05WH1ä230Š!Œ‘œËd^ÌU¨`hh–S027iĈ`5Nž\úž %Eİ\úá@•\ú@e\úNÎ @ŽK4X.}7}gg7 7ÀĈFß[A(œŸSš›W ÔbgÇċ颠ĥLlŜüÓ˙˙˙żô˙˙ëjf-½ÂàÀÂċêİÈû/´endstream endobj 240 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@‚*u‰²¤K†VUÛc"†DÈß7ÒĦY:ߝ|–xÙ%÷èñI ĴciñkD‚‰fǢU`ĤÊÊÄ·BW^Ÿ@°ÈîüĤß$ê´ŻÚ=„Ŝ4RÔ<“èšĤïĴíħù“j`²ĠİÎ}…Ââ?”Í%Ž›€kŒÄİ4-MrÇô{&ĝS°A|>7Sfendstream endobj 241 0 obj << /Filter /FlateDecode /Length 4144 >> stream xœĠ\ëo·˙ŭAžZߊï‡Ñ¨4i‘6Žr $Eq–dĠ‰¤“}’ġŻï É]÷fï$Ëiĝƒ)Š™á<~3äêÍLtr&_ù˙äòàèĜÏÎ7bv~ĉ@Ĥ_ÎÊ'—³gK ôtQD7[:È3ċ,@Wjĉ­ï˘5³ċċÁ\†ċ÷0CĊf†q]p8oyzíüĝPtVI#ŭüĊáHaÖÌßbÛĈ荚Że'„²v~ƒ½J m=é}KD½Ġó[fŝêïË?îZÒŬÌ·Ê÷ğ?=\£ğ÷ĥQĝ[/|}m˜İ”G2Êw6šŸàh”ór8\h­ş B˘ÄĊ „Ï”Ĝ¨t”† gƒ™ŸáCPt£ ĦaÉ8½J{{Ġ³  ›ĊÌÈ/ÉX[:dĦEè˘Ñ³…ĥ 쐙Ċ•#üÂü²6Żks]›ok„n•‚ž¸ß_°M²ÙËÚT‰#İ;kÒ/–żùNŠ[vMİí) ż?ĞÍYnŝÁö6ÄôË>Z2ǵóÓÚü[mHŒ#·< o†>ù âš]mOP04oÙÊĝünž8ûty¸ÏĤŬ†wœßPÂuŜڙ‹WDżñíü×ÙÌÁxb1€FğmçÀ  Úĥ•“„ŒÚyúĞ$z§n~{ur“÷uìóu%gMċÏgÊÁ v ĤċĠ§âĠBA:Á1VeİiĵKĉ­×T÷Öú@7Áx“•ÀzF˜fâuâê2Ŭ^Wp^l€˜]"JM'8Y£`ĉİ ¤2Ù3l֘ĵ0 7Zê… Ħy爠ÙC èƒ7SÁĈÛŝ>ŻcÉ6_ ˆò3Q.ù8;İ…­ĦRšŬ­~!ëqaĠĈÁ 1":zŬ°]ԍw&…:šyMÏe ä† ¤jPÄÂz!H!^Œ Ħ­°ÁahcĥPŽÒ ÊI‘‡†µ›LB .N8ETŽj A£!~)ŽiHçzċXh#;ieÉĵD)6Êħ*0ĥĵË#<„JĠ*nHŝi$Q¸ÄuoWċîwUÊIˆ:ħuWİħd›½ğÛùĴö~JÇN¨ ì˘ĤŭU2R‚ ‹ğJ8°qWo€/ Ä/ä’­ ­ĉ‘ "ÚZ‹€ĈpÉjŒ¤¤û—YDŒÉꊅ6Žj9œ-¨g ڞ @Ñ]H‡'ŞÖ)’„š¸ QÄaÊœX@*ëĴd͍­ôÇbüI דq‘9ëɂÇIk Ĉ#Öô<QRS…ğKa~1 è€2­=híeÙpCc‡É Áîï²|°Íq²Gî—sb+Ta76İ)mC’œş´şÂÉ&-ɢf!p#ŜXĠê$ƒJŸ³Ä†ĥŜ(ï¸íUàr¨({ĥÊ\ü¨\ïŸRŞSü“—Ĥ÷O)*P˙§d,€X8FéPğ°ÛKK'[`f6Bŭg€ĝkڽݍ¸Ì6ÏŒê&/ĥAv Ħu"ÇOµâ4ĉŽż,2YH#tş*aħÌV—2 MgNH|‡z Ùí(X$˘£ùž^ĵ+ôh%“Ĥé#ÉL)[F÷ĞÄ@'‘ÇuÖc3ĦâS°£L‘ ŻŞŞŸçĠâà֊s "rSˆn’ˆHüÀv+Ú™2Í´XÙ(8!pémġ#›—uÎ{Š)NÊ·‘/§o#aA-½oz{9àµ.—p]Ĵñ÷+…ĥœßiûSĦ2Ğá¸D¤Y"SH[a´q>ˆ\385Ħ5 Ħ?À)ËŭzTÒĞڈótcUi v“§ip|mfÖ÷Ž YbQL5†°Î£dûEu! ÇùËŭĥBoEéŸuàÇéw›uT’5éš(ßlŬ­ŠŜĜЁ?.šD÷Uà„B“êÙM§.iȋœÙqd5öŸ–HġŽ kdŽĠI …tçE)×aŒŽşħŬs˘KMBY!֖J"Ä ŠÀG Muq•FäÂù-VĞóTÊD든#=$ğ˝>ĝ=™IÎ j&™ÉvLŠÉTğ'Ö˘ê۝~~ʍÎQĉĊ7Y FŽ)ÂmœĜQ™ˆ‚o*şğm8F´ /­b(žxÑá*Ò2ž9éċG9ˆAö‡ô!çËŞĠüT&OP{Yġ>;bi²h³l[Mj%$f–ûüY#p#sÌÊ$èĤzJ)JÉ^)jӍ÷u´‹jgĴ—2V3v§—ÂJ˜j#4ċ&üŬ#‹Y@tî Ŭ/k7‹:Ş„x§´k”™(Ĉ¨>ĜEa›ĵ;Š–…{‚Sb0jÉ?ğj”q V@ŽEÔ F>œDJŝžŞsŭQñIĝ ü£ ÒÌם)%żŞÍum’äŬBıù,ó†\˙“Ú4u€ŞÍ'uYíĴ6Wëĉ˜@eĵċ=²r#ĜĉÔÍĞ˘REż`@˘JuŒ ĴËN£•,YRĠMY&JX4Óé„:šĥ)Dœ“Â÷DĊö ŬŽÜĵċó@Œúp> `SĈ@Ħ ĈİšȂÓċ'ĥ² 5<„M˙¤P‹Ž+‚ôOy+€îm`nğùü5F{èİ ƒñċÚa:_ß^y|żx‘Ç)Ë<•<ÌĥLûìGè’ñÙİhӒ°É-‹šŠŞĜˆù#$R2Äâ9JLşewKfZPÜŞ° H1§ “ivBé݉âÛŻÁöNÊÓ}ÔCµû[×8ŬäġŒJír·ġ”!¸Ì³TVöl¨ï½Ä^ CÓFħ£1ÔÄqá(Z¤u–ğÍ1”&µ'7§Ô4)ŭ0sHVÁl_Hm'Û –ĉ”oS-E§USuÁ‹ĵÈΧ·d·żIĈ‰~ ÑP^äĈŸtp(Ğ *²§#Ŭ¸Úˆ:(Ïc~‹;Ëzİ+öNü#`Ô­ìYÛ>{Žĝŝ™à³íìY+°>{^€7àŠß£Ĵx¨ o•Èú!‡²Bö/Úë}8?é_ÖgÚä!˙è’ĵ´äŸ°\zŬ”ê?BJŻ„cO¸ıXO ÎïıAu­Í>)ŻÍĊ8³…Ä“CZ^îGŒŸ*•ġ“´Ġ@]ƒè°ċ›úí›Ĵ¨ŜQyĤçV…Â+’!Ġlè4Żv€:Tàݸ àŬhĈF8˘,ħÊDGï'tzû –Ş÷í3o„ıÙbx×êPÔñ÷MĝŜǤoYĠ&½w$’·|×ĉŜÒoÙiôÙh_ùûŸñ@6~Á.ħf9#½Ïj“<Ċ}µ‹ġIŽy.ÈCÉú°ĝwµsħGb“/ìı|ŸÔĤİMòôĝɰÛ=`&·ì}s’I)]³›‘³ĉ?7/`wŠ‘ŭËż~ċovħ½_‘ı‡Z0Çó×ÚùMm~Á6÷‰|ß×%Ĵ‰A}Y›äaôrZ_àŝż4Q˘ÓäÓöí§äñJïùŬĈ €Ó/B-ü'{â?äŝ+˘s–‹‡|FrÄrüxWLÖ}ÏzÍQĈÈÊvOŝĥż yÏ"ÎÔ·%CóÚ|RŞ—…œĊAREÔù%{ §TFۚŭ!œqŒ•ñCI“ĝ*b\{ż-à]ç†ÚüKì÷9Ë˙‘o;dÀ‚:Nzĵ!~ĵÛĊĴĜù×ì™s᳉v,ÏúğÛC ÑÁ‡ P)Œß'xwÈ;ßfÀÎ@rË ˙-Jïŭ^êWĴ*<^É€—Ŝ÷ ž÷>×1‘úÄ'ŒjžÚ ˙“½Àr  ġbĦ]hŜšn=^>×èKmJ’ÔĤ˙”eâë{\_ßá‚~a>Ü=.ˆ—z;î‰p^˜nŬûëÚ݇ßûġWÓ¸pLeŻq&ĵŭŽĵÑÛdıâ]ìèDż LËü-*)NRBĥvaŜîà”Ìêe>ݨŜ%ċRĜzù:ÌÚUσ!rúQPkNµnòlh¨6’"úSĥĥÔiúڂßQ[ тxŽÇĉ?'Ï{ͽŜï_@7ß;Ê"ï&8Ŝ)ŬQêdòܸŽËç7D¤Oݚ÷Ĥ„û>ŝY”$Ĥ”‰÷b& ¸ów=xMmg ŜËے$Et`à!PôߣA ĝúE• 9dY)ĴÈ;‚ߊĝ„7˙Eİ”,ŻÒҟŒ8:V˙âÌW˙Šöendstream endobj 242 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ]O1 Üy…@‚*U•"–tÉŞjûbLÄ@„ ŭ}!:œóŬÉgŜ×ÁÙü=(ħNGZü‘`¤É:Ö SeeâĴŭM…÷'l2;żĞ™ĝSœ.eĠî!ô𖠐˘rħidgŒdäôŸT£İNq–‹˙Pr4—8n1’Kii’ XGżg‚9ĜB‰Smendstream endobj 243 0 obj << /Filter /FlateDecode /Length 6496 >> stream xœĠ<Ûr$EvïàÇys·ġVŜ*3ápfaYvÁƒĵëplôŒ4ša$µ4€ĜŸ÷ıdežS•Ġ#Œ7¨)ea“ÂÍĉ•b1p@î›övÇò€|IKRöZ6¤ÁÁ_b‚Ŭìq‰K# D{ġĝ6D€Áğŭ52 b ‡?ı^²P_kÈy/$×·9'`ÛÏc°Ó A_"~6úŜFxşptòHÇĤEüŒħUÒ7ÄĜф5ÎïI썗‚T‰ê•fÎÀdk#ŠÏ §Qâĝ+û1[ +lâ_Èġĥrĉâ|:yžÖ;ލ(C*b‘xĈɂŝ˘Ĝıњ‘Ċì› ‰ÁA_iGgH\‘èiôžË#Uó~Ĝ†€[Ä͞è< /Pİk|ˆÇ¨Twü€P:™p:1n<ŞCE­Hôž¨2:ĜN ²¸7?âßAA†§µÀŸx0Êµw ÌNÙ´ë&âïYŸ‘Ĵh£\t‘Œ Bp kR€…ž(ŝË]„ÌIY¸Cƒ:xk"ŞPÔ'nX5srnTömˆ8Á‰|FgGiêÙ=JÚ_p ždßA€ÄÀnĜĈKMĜż!UÈçûĴœA".|…|½ÛžŒÑƒÜÄÍ)4Ĝ¸Ĥ÷Œ]ÊÒ)uÎrt3ŜNr^5skfĈ;;fĈf´[w,Dpt:U“7•¤w,›€_•MĜe_Cûq“ÔŻIpŒ üıAT ?é;ÏFbˆ3`b.n LX2ኧħˆÍŸxġ"½ç9ËV_£¤Kٔ„C[lFàĴU:rÀ× ÔJ×\ĝ‘ĊÄV°Ġpl4ĝ–´D™,q„·ĝç0ZTÛf-„…¸œHò­\ü†Ŭž•bİ<:í³_SvFv6ì_ 7}Í[‡8nĜ „ ¸i'$PĈîĥ ‹íLŭ íöę´ŞÍĊVÀ_²Šċ–ëà’\ñB˜Ġ×Ĵ]Dš4@²Ž1-|'ÒÍ*úhgMŒq(ŸUâûb+ùŝ²t!Z˘ĊF–ç4˜¨wı:ÁE@Şċôsòkħĝb7•{Á,3 ¨Ŭ€#];lĈr¤ß>K²O`ŭΘĦ†Ïpµ‰h“É£9Ş.­ä`‡{vF$ÉrX“BRì6%BÚ“kĥ%•Ĵ¤eÖAb†àŒ%Œg|Â~µ_$D^¨ŠÏ;et´Ñ>%°uJ=da|ÚàùkgkéÑYü–=Ê%ïƒ}¤G'ĴŠGCRĊGfĠşËigšD~ĵ5;,!ğÍo‹~Ó%Í;듟ì‡ŭÒjż]O!ms@ϙZ†$ ÙÈX…ĞÖ/[ú‘ œ IżcZbĴWdUžqŜ§ĥ/’R}úŬ‚'°)èä+ ié2Jöe(ñİWĈP2Ċĥ>îÈJU’êÀ - Żp1ĝncÔ…Ô9 6Éİt~ĉPÜ(@~àMš÷Ĵ%X„<¨€}%òèe<$ä˜ŭèĈĠÌàĴ ­öTÈ´‘{.Z*ËfŻĜráŸK\#:+_ÎD u䵀H %ö”H¸ĴŒ€Ñĥˆ\™öW& Ëás‚ĴHĊTïá ,H¨ÎĜo‹ ċıĞŞ)ƒKùŒĉİ™0íYĤH3GrRN­°?1£-î$è_çN€PÀĤ‰2+ĤnòĈN†HÚ*b,t @eúĠ–„Nġ3ve´´Ğrl_~ŻÀç)ħˆšşEŞĈ4êèóŬpuŞM0€<›O·­³ Ş5\ۍ#hëâYA‰ŽğÒòé‘Ħ\’'3sIü3lô¨/NX â(¨J—[+ߗŝQԁQƒ¤…ùÒvˆ-KkÚĊqžÈD|ŞŝQóŭUq—ŝgê8W!E#—GUAŸruKQ•PÌρzì2 :Öñ ĥŸċêç fĤ8­žüş +Ġ—Ġ@§Úìv¨ó.m>ä T Ŝxy‘ı¤)GI¸ÙĠò°°îb5’€(3Œk°ç•VÀăɏa+—İ·~°•NÍtà§)ɌAz\°9ˆùŠžŝÜò‰nĝĞŒâv+Jüçù]Èğ‰‚Ġ˘KoAşgLçŻLB6tŭI9”,eŭ}ŬIĜ1ÔzĊ¨ş´Ÿn7 3) ·y~•‹ ‹ëû3^Âċä•|—x€˘jLj˘ìŠĦ¸!,˘x YJfŜ-xŭÍkŜ1ÏÊü—Ú“aġC|䌎¨%}+<Œ¨£eŽÊŬ ~­Xur"pVŬŝz>K͋dŻ$/gÓĉÓ<V´ŞäCKV°™ŒÓî EcÖF§‡²Èú€ŻKÑ Ö0Ív:‹ŭtjlvŭ´³ôWÒNl/¸ò%ĝ(ÎÄpHüM]òÍĉs:ŝ`Iä[âó<“ÇEw+P `ßı•˜WûŠÈ”ƒq˜ì5ĝDÉ!'?ҋR™>\w÷uÀx1A5Ëܒ‚˙Y™éŒ™d—cÜ.ˈŞŬCrÉŬŞ•|PçĠ% âĉ/8 eib‡@ûYÀv(ċdHċ’µĝŽšG ċ)ÍĤŜPô8 qìTŻ&c‰ÑvŭÊ î.äQ}é÷êNwċ @Ş˙•iDR0ƒa^H³ÊÂlNĊA~2´ħz­lpOA+žŽĠ5°Ċo’ĈµûžvÌ£{D?EUÔ)xƒY½şß ry"Í÷ÚXA7çĉBJÂÀíœwïĴµ';JËè•9™.żeĜ£v‡—Û*I%prjh/ş­çŒĈÒ!˘ny7Ûı"w!@ìċÀ` wœ$‹˘n‰áŝŝRJo+•WA˙‘ך˜fížÍĠ…­8ĕzĠ~¸š½VÂ&ô•^ö£Ôêµ°Ö¨GżXÁ ïa6è`˜¸U=H­,ËüH ŠÍóü2zżżËİsAÍ~ uu^@7+dšHáÌï|è¨" çCääUDQó!2:›Z!Ğ!Ŭ&âħħÎ€nŬċhé“4öUײôÇ,Ĝ 1OY²+K†§oħŒ™²ƒƒˆ²9#(,Ëɇˆ6¸y2E[1@°igjŻ[0­`ŞË 8D "B°ÖOfÁ8lŸ]¸1M5µ²ZıÛÜ·½ûW5NLˆ;A²­Ċk8ñxVÖ_DċÑD€g=½Ĝij˙Ug6ÔçŽĦĦ-ë§lB=ŝ½$²sSĥFAëc’5Z ×-×ÙÓÍŝÂúóz-àáԋUÙF˙ĥÑú¤€€hotŝêµ!Ñĵ͟ħϒ£nĦJŒĝû4ĵ²ß…0â|ï +üb;eç{9qʘ™YÄ%=·HŸşD|Ŝ\„ĴRó(üĵ›Ùî´P)›Ÿñú”2ŭSYĞ‘le8…^ql1˙ oÍШX„CKÀgvc AàüŬ,€Ÿ /Ż·81L&Y~!€`r0¸]…ĥ#eÂb^‹ŠXòĵĉĜ|ÔĈĊù‚ŜĞj]Í嘆—’^é|ŝaë½3ŞY/9ó~ÇĵŒ_U™W“€}Ÿz÷äó²žàG%Y­ÎT•—‰­qUŽż½íG5+Iİ ç|PÇcù´h§ÑˆÎàdMÉNSlS°:zkoBNj°]ÊŻ*½dĤŸ™ž;~üBwû·‹t·OĈñèF‘fRĴ”²¤ĥÉ:ùZ[QhƒùÉ×ŭù”ƒnx˜tÉhÇh~ù ÖÊm*ĜŞÇ#§c=b„žgĉëg³ž2ì`Ĥyà„Vg-ż½í‡_B{î £šZŽâÓÎ;£›d“xÒ~u^âñBKÍ*BJÒ'è!ÉN¨Á[{Ÿċ` ›ŠÏéäÁċPòñw>m­sÖ"¨ù•?–Δñ2ê|‰sh›Fm@ñ%Ë]o2^f˜„ÙLNá?ŠNa Ĥ“ ó/½Ċŝ4Büíf:WTİĵCw;eû˙ڋ‰1şsCMÒŬ IDò<[ĥ`äQp4UÙ^ŻtхTž”P×ĉTR=7SdÑğîkïÓ bêÒÒóĉnf3żŽT¸ÓÇ&ÑgÇ´>­ò˘š-IpLĵO †×‘-qçCbWµfÍ~]ğ’ŭâl%GšdяM]ı—?ÍRV$VĵÓŝz vIf¨Sôó@í(mżka×eR< ċĠ_°T8[ò`™Ê'şKŒž­‡z‘VIà8P£~ċʇt,"W=2_+^eövÄòÇÜ*/*kÊ ™°zßrŒt!Ĝ| &v†Hż“>x İ ]ħnRÏ ¨7`H—OCÂı.'3ï䈕’  °Ÿ&Fŝz|ÔÜäOĤ‚0Š5ä×tıE^/Y) Ġ鎉‰y}ŸħşĠ/,‰Òıˆ6ˆ,íħ.9Nĵ’2ÁIRŠ˜1Ôt $, “èÛ@ĊߙSPGÑÓ‹ÖvaÒµ‚ÊhM—>˙°­MĠ ×U½ÒíCáw%ĦK|“ĥE_²Á‡KTP–ïĝ-ŞM䀯 ƒ_³ŞŞ( zûǔhg4ÍRYu/ WxşS޸Êhʞ;Ÿ`VK˘·A—ŝá[l4Sóz;·µ´bċ(*Éf’&=˘Ùz :—›ÔĠ:ŭnÄ*1ÛH;WËYꞲm#ÚR— ĤğP·çŞPX}–4ġÂè ĵ ĈĞrgmµÎÎÄEĉÑB9dÂqɃ?Üt™ÏĦ‘Ö}ôŭYšJ ċ5_LVu~Óc|ÔȽîwŜRQäۚâʒü%#‚áü˜µ†œà§£GġvxC:§}iĵâhág琭]Û^İ÷Ĵ\uşsÁ¨`Ó11B ˜:O£Êċ˘Úb~(Ït‹—°cÌbÜ¤Ê˘ —”¤ïÒ*8Ħ•—%eÈ Ŭ'¨`ihEż9tĴŜ'Ç£èv8Ï ŭE‰ˆò M‹èš–³Vĝƒ¸#wšzġ2=„@­IU1ÑĊäÜmôf³¸¸¨˜Ìú R[ÀŜC\ ~hjwjá¤IÙĠóRˆz’£…Ò8ÈÈü›~â^´t5Ğ ĵµĝ†áb\›úÎĝ›Néù3‘ŭžbÀ£OóCŝ†U/Ŝò@—ëTÂ|Ä=bgĈ­8ïçGĝ³k1öġµw ÛùĊ˜Ĉ[ÚrVVòx×ÏÛm{|Ŭ÷íñ²ğàç.°żĥǛöĜ?lòğìC5N"uJğ–s(È)ÌïIŻÌS=ï3jĥ­•_žê›”ÙìÂËYı“•›·+?M|<ô­8öa<>(.Ö7˙+µşîS‡z~uÁl…wfŸjlFÌĈšŝW]'L\^›ììß·:ˆħ¸/x`§Ĵ$Ŭ>îò8‹§¤à¸ŸbÖJ˜%r Ù&ÓB.~nĞg#˜˘ƒQĊ¤evIĞOlCXŝ7/d‡}9ù0ßRž²üˆWš—[kšZz†¸C§Ö:pBîV$²Ĉ,K@NĦôX×]á ƒğwç— FQîŝâÀĥœ:aÌá­ 2 ˆĈegˆ)°ü}ğ…„–K¸Tg½tCì2u´(ÔôÙUúġ’eiYéyˆšİÇ@)*ôÏĤßa`œuíéHÏzş˜|ä6ËDÓğ{n+·Ŝûġİc#J¸%ÎSSQ§\×o+ÎúŒ¸ûşŞíçKĠ”^_ğн~;‚I’W ċ+]]™ETwÖ{F\TbĤËpz)Züe]Cż ǐÀTSoĈĊ°ó ~§%•BköjŠĵ 'àÀ/‡Tğ́%LĊüÁqá”?µ·7ííN­·mÁĦ½½—o{NJBkëdhуĞzUĈ ŒgëP°ĥá@½3ħB‚`¤x–êġĥNMŬ܋÷ˆm°@x4iŬ^ +íıLS¨7é˘Ù.o—h*Ò˘?$¤ 8ëd´Ú­Lö ,q€2ċ—@WAŽhv/6Ċ²ÈĜf/Eœ)ĈŸşûV@8´Ç{ùĥGM,ò/Ŝ²ŝââÖ'Ĝġ/ BbĞSC"”f=Ò,H?ez`àQߖ™µíß55Ëħ` 1ĤÖîĥh!‚2Sááħ-Úï2ŭZßÒ´M?jÂäšOršL½˜eİ› β(,È#˘Byħ^ÍËq˙ îԙÖżŽ?ż ŝpQgûû^çñNzTżĴ 8êÌïmO´ĵ6˙Zħx)9³lz0ÀĴ³é˙3 f´;ëÌJġĞwk0ŭü˙È˘ÑKğÙ@ñĴHàÖ×"¸pƒƒħMš–xhoş .$Ê'=TŝEĈŭŸé´÷Ċ“Óú†|ìòóğîğPyÖ^~Ò˙³=~U—ŝ1Á‚˜›˙†Ĉy—ùB$z;~Üeĝ~ċL<ĴŸĊÛ_·NÛ£Ĝò÷íñOíñÓ ü_êÓ0ç’^@ú°=ŝóıyÇçŸt!}сd{él”|@û<^nċz[ġIvÚúi÷í³ÎV·Ġ]F)Ĥ.!…9¤ONŸü;¨5D­wôßL3endstream endobj 244 0 obj << /Filter /FlateDecode /Length 1482 >> stream xœÍZmOGŝ~•úîşêûŝB…TH ˘ri☨ÊbÀM‚í`4UĠ˙ŜŬğ³wÎûĥÊOöfgžyvöu¸KiÎRŝUż½A²×1i’´ŸÜ%Ĵĝ˜V?½AzÔġ Lú–ÜQ§ÓîMRödİġMŽòÔ(“;%Óî !œĥş}îj=¤Î­ŭşWÉé´h8“̐W­ÌCñjJ’q•sFr2jħœRı­œQĦ h=ò&sF 2 Ž *ÉMë]÷Wï]0è]ûŝŠ›™÷ŭV&Èmé[9jœwíuĵ>sdtïeߓs`dÜäÔ;"½ -,׆‘Ñm+‚ç–Û‰v–SS"QNPßü]ĦNµ²’\ĉĴċÑ$ĜŜ¤#B+Ĉëg!ˆ”yg ÁóWp,TɸĠ95&̈́òdÛ2ĜvàÉ˙ÏZò{O˘xĊQ<Œbğ•)ÎŭH“ƒı¤çŸ ĵLäJí¤û9‹ßÏĦ%LìFñÏ(Šâ1À,^Û(ŝ34ìsT÷d½W‹y=F]½Eî £şŭ` ]–FCQ9—hĜÀè t4NW€]Àâgşˆ%c,—‚§Ùà5kÇ֍™( }tZOyS~Żhêż:lYš’ıó×£H§ˆá‚|_”(·²<Ë)Ê d„fĈ/aQ£•ÑeOZátB<*[ĠŠ ÷ĞÚĜB9ÒäšÉùç—`Òqk¨„uµ˘¸hÓB’OeġÎ8SÎ%cF‹0óê]Iâ*0ê~L)^DQÙ{5Ĥ¸rQGôñ0ÇjrŬ r%ʒĦlċÒ:­a`—²Ž¨İ)Š*XÑôĴr*”A‰5¤Ÿ²ŠyÂ{5Ĝ³ ï„Vj­S^;xdÖSĉüÎĊMî#Q5tŠTò²e…˙,ɨà\;'¸†Ŝ&…7g835b~ĴŠŞTĝApíĴôŜڍ5ä|X˜dÔ I¨ó;÷tURj°o⠕ÊÜRÊÉ%Ĵö^ƒ/¨ÎŽnJš‘AQĥŜ¸­—ucvX½ФĈĝL‡Cɸàœd…C&¸+*]Ħ`L°0ááùˆAʕéÜM^'ŜlQ„ŻÙ×гš=az ˙ĞrĤġ ı¨/D˜ĝsÓr %°ŝà·ĥ]áÀşĜq>úıU€çòÏ t ş½}›6Şîĉ/tO"Ĝ‚÷£¸‡ŠW(€ĤO(c nÑÄĞx@¸1§ñÉp/Ĉ^‡‹—(Ż“˙ğ`iÜendstream endobj 245 0 obj << /Filter /FlateDecode /Length 1122 >> stream xœÍWMsÛ6½óWv"‹oäT5Ítšq§+÷âéA‘dÙħ%:VR˙}I,*nĤî´ƒ× °oïÁjŜBÍO˙{µĞNÎl½=TĵŜV*ˆëŝ×jW·À pġܛzqY“¸äT+•Ş­ĥ­×Ş^ìŞ ö}[\ħk´…Ö)vßÌxkŒTìĤ™I)Zë {;€5’­í%m\ĉ^ Í6aY:a,°Ûìï]Ŝñ‰Üà²ïœ`C"N8ÎKûˆ))Ç%û)ì0”—è|Œs6#à‹j–0­·Ê³Ç\ׯùŬŬ4Âĥ‚Ë£i<6NĥàÁ„$&¤Ù›è ĞS…Ú)nm‘E×Ì3oéŽ}ÊH;`?‡ÍXtšuğ&4À=;4ż/Ŝ`‹AÑKi[cĥyħ˜€fñš)-˘žIŬ:üˆŸ.,,€›ħÚıĞÑìĦ’.CeŞÜ€` ە’T µ(Ħ ™ƒlµ IŸV‹o.ĜáğóމàŽuÛpÇÌúÂiúa™{§Œ°)­"š°İm ˘€á<ġˆò|ö ‡{ğ˝żÊĉuD”ĥŠyġٜǴ–qfĵ Šß&„Š~ èàQ`˰AâHa²7İÉX?{Ħ€Üµ.ĥ̀ Iì“Wûİ•#Ä{Œóëú‰’aĜoiÙİ?4!m„¤ü*ŻÎÌ;ß§ÜK \qìĥó4>4Î`1päR*ÒyÖ]&/ÊÑ@Q´bĈ´VdÇrœ=ÍĠ0{‰Ìv‚Íâ^;£Hν/$“ü2z{½¨ŜV˜rd×û/ħž$cÁ½ĴÁĥ;“È8ÜsWoä§lŜOšËl>fóÛl²ù1›]6o²ıÉĉí¤ßvÒIgK0ù‚2•´5€ápÉsQ %mü,4g>4ċôY0Ç5cuĉj&bŜeóe6O&͇§ÌöżëÉ÷9Z%$>"dÂ0 ^4£ÒĊT`QW(v§üS(Ŝx׺ŝĤc˘Wĵxw‡›{ŝ*~iAħÓyOí^Ż™MV‚;B?”)k’kOK ›Â ƒfRÇô° 6ÂJ‡Ĉ;)MAœGˆë0J²o8èħ§?B‚€ ӂéS#̙á:,HU†[›h;­+BŒQµĵÍ­!..Sċ(UĝR"¨î§utùbì´;¤? ŜœêÊ6> ‘ŭħ Bı›ILz7(ħĝB›€ĥİ…Ù>ı‡ġġ°,}W²K雟4œ¸^gÑ=ò°ü‹ÑÚŝ†òofrżhVĞĵƒ Ÿû_ Ÿ6µ!ï'ݎW7ıa˙“h+aŜ'ġr9ıJ˘Ħ^M²ôròİbM=5kmÂCüßVÑ"Ìר(úIAŭçƒñ5Ó@úCôòz² ĞÉx7éìz2˘'gB†êßVáŬ`"endstream endobj 246 0 obj << /Type /XRef /Length 286 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 247 /ID [<721733799afc2123bba4634d9de61e67>] >> stream xœíÒ½JPĈñsNLA)ĥˆFƒİƒ ‚W Žê$ "tœDtêÒÁÍÍA''q¤"‚›“Ѓ â t(Z“SkŸ˙r.˘ÍċÉ{’Œg)`Ë8ĥoÙ1ÑìM·ëşÍĠŝè=;&ké¤Ïúûùy9Ë -³ 9°.s{2ŞÊİ"ùŸ˘~•É…´ûÒŬq£6ğÚ4%˙ÁoĉmY,Ép‰Q;ĴuIg·ÈO¨—‘ÎÜ=ġœĜù´[¤˙]Žž²G:ĝ)'vİż|Rxƒ >:Ĥnrê"~!Yc€á­ĞəC?6˙DžÉÉ[ê ß猚¤t.czâ#Ĉ~h•„óÚ_?[tàw’\svŝQX3˙TÎ5´ endstream endobj startxref 211081 %%EOF RProtoBuf/inst/doc/RProtoBuf-intro.Rnw0000644000176200001440000000044213617276206017373 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RProtoBuf-intro} %\VignetteKeywords{RProtoBuf, Protocol Buffers, package} %\VignetteDepends{RProtoBuf} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{pdf/RProtoBuf-intro.pdf} \end{document} RProtoBuf/inst/doc/RProtoBuf-quickref.Rnw0000644000176200001440000000045013617276206020050 0ustar liggesusers\documentclass{article} \usepackage{pdfpages} %\VignetteIndexEntry{RProtoBuf-quickref} %\VignetteKeywords{RProtoBuf, Protocol Buffers, package} %\VignetteDepends{RProtoBuf} %\VignetteEncoding{UTF-8} \begin{document} \includepdf[pages=-, fitpaper=true]{pdf/RProtoBuf-quickref.pdf} \end{document} RProtoBuf/inst/proto/0000755000176200001440000000000012754736105014266 5ustar liggesusersRProtoBuf/inst/proto/helloworld.proto0000644000176200001440000000054012754736105017525 0ustar liggesusers// mark as Protocol Buffers v2 format syntax = "proto2"; package rprotobuf; option java_package = "org.rproject.rprotobuf"; option java_outer_classname = "HelloWorld"; message HelloWorldRequest{} message HelloWorldResponse{ required string message = 1; } service HelloWorldService{ rpc HelloWorld(HelloWorldRequest) returns(HelloWorldResponse); } RProtoBuf/inst/proto/rexp.proto0000644000176200001440000000243512754736105016335 0ustar liggesusers// Originally written by Saptarshi Guha for RHIPE (http://www.rhipe.org) // Released under Apache License 2.0, and reused with permission here // Extended in November 2014 with new types to support encoding // language, environment, and function types from R. // mark as Protocol Buffers v2 format syntax = "proto2"; package rexp; option java_package = "org.godhuli.rhipe"; option java_outer_classname = "REXPProtos"; // TODO(mstokely): Refine this using the new protobuf 2.6 oneof field // for unions. message REXP { enum RClass { STRING = 0; RAW = 1; REAL = 2; COMPLEX = 3; INTEGER = 4; LIST = 5; LOGICAL = 6; NULLTYPE = 7; NATIVE = 8; } enum RBOOLEAN { F=0; T=1; NA=2; } required RClass rclass = 1; repeated double realValue = 2 [packed=true]; repeated sint32 intValue = 3 [packed=true]; repeated RBOOLEAN booleanValue = 4; repeated STRING stringValue = 5; optional bytes rawValue = 6; repeated CMPLX complexValue = 7; repeated REXP rexpValue = 8; repeated string attrName = 11; repeated REXP attrValue = 12; optional bytes nativeValue = 13; } message STRING { optional string strval = 1; optional bool isNA = 2 [default=false]; } message CMPLX { optional double real = 1 [default=0]; required double imag = 2; } RProtoBuf/inst/proto/addressbook.proto0000644000176200001440000000117412754736105017656 0ustar liggesusers// mark as Protocol Buffers v2 format syntax = "proto2"; package tutorial; option java_package = "com.example.tutorial"; option java_outer_classname = "AddressBookProtos"; message Person { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { required string number = 1; optional PhoneType type = 2 [default = HOME]; } repeated PhoneNumber phone = 4; extensions 100 to 199; } message AddressBook { repeated Person person = 1; } service EchoService { rpc Echo (Person) returns (Person); } RProtoBuf/inst/CITATION0000644000176200001440000000513512740556466014271 0ustar liggesusers## JSS publication bibentry(bibtype = "Article", title = "{RProtoBuf}: Efficient Cross-Language Data Serialization in {R}", author = c(person(given = "Dirk", family = "Eddelbuettel", email = "edd@debian.org"), person(given = "Murray", family = "Stokely", email = "murray@stokely.org"), person(given = "Jeroen", family = "Ooms", email = "jeroen.ooms@stat.ucla.edu")), journal = "Journal of Statistical Software", year = "2016", volume = "71", number = "2", pages = "1--24", doi = "10.18637/jss.v071.i02", header = "To cite RProtoBuf in publications use:", textVersion = paste("Dirk Eddelbuettel, Murray Stokely, Jeroen Ooms (2016).", "RProtoBuf: Efficient Cross-Language Data Serialization in R.", "Journal of Statistical Software, 71(2), 1-24.", "doi:10.18637/jss.v071.i02") ) # Also include the normal auto-generated RProtoBuf citation() # citation(auto=meta) RProtoBuf/inst/tinytest/0000755000176200001440000000000014535363417015007 5ustar liggesusersRProtoBuf/inst/tinytest/test_nested.R0000644000176200001440000000120713617260253017445 0ustar liggesusers library(RProtoBuf) #.setUp <- function(){ if( ! exists( "NestedOuter", "RProtoBuf:DescriptorPool" ) ) { ## None of the messages in unittest.proto is exactly right to tickle this bug. unitest.proto.file <- system.file( "tinytest", "data", "nested.proto", package = "RProtoBuf" ) readProtoFiles(file = unitest.proto.file) } #} # RProtoBuf before v0.2.5 had a bug whereby uninitialized memory was read and used # to determine whether or not to update a nested message field in new() / update(). #test.nested <- function() { for (i in 1:1000) { q <- new(NestedOuter, b=new(NestedInner, x=1)) expect_true(q$isInitialized()) } #} RProtoBuf/inst/tinytest/test_serialize.R0000644000176200001440000000611714535363417020165 0ustar liggesusers## -*- indent-tabs-mode: nil; tab-width: 4; show-trailing-whitespace: t; c-indent-level: 4; c-basic-offset: 4; -*- ## Copyright 2012 Google Inc. All Rights Reserved. ## Author: Murray Stokely ## ## This program is free software; you can redistribute it and/or ## modify it under the terms of the GNU General Public License ## as published by the Free Software Foundation; either version 2 ## of the License, or (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) # this is executed before each test function #.setUp <- function() { if (!exists("tutorial.Person", "RProtoBuf:DescriptorPool")) { protofile <- system.file("proto", "addressbook.proto", package = "RProtoBuf") readProtoFiles(file = protofile) } #} #test.arrayinputstream <- function() { # Note: This class is experimental, and some parts of the design # may need to change, but this works now. stream <- ArrayInputStream(as.raw(0:10)) expect_equal(stream$ReadRaw(5), as.raw(0:4)) stringstream <- ArrayInputStream(as.raw(c(0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67))) expect_equal(stringstream$ReadString(as.integer(7)), "testing") intstream <- ArrayInputStream(as.raw(c(0x9e, 0xa7, 0x05))) expect_equal(intstream$ReadVarint32(), 86942) #} #test.encoding <- function() { if (!exists("protobuf_encoding_test.Test1", "RProtoBuf:DescriptorPool")) { unittest.proto.file <- system.file("tinytest", "data", "encoding.proto", package="RProtoBuf") readProtoFiles(file=unittest.proto.file) } ## Encoding examples from https://protobuf.dev/docs/encoding test1 <- new(protobuf_encoding_test.Test1) test1$a <- 150 expect_identical(test1$serialize(NULL), as.raw(c(0x08,0x96,0x01))) test2 <- new(protobuf_encoding_test.Test2) test2$b <- "testing" expect_identical(test2$serialize(NULL), as.raw(c(0x12, 0x07, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67))) test3 <- new(protobuf_encoding_test.Test3) test3$c$a <- 150 expect_identical(test3$serialize(NULL), as.raw(c(0x1a, 0x03, 0x08, 0x96, 0x01))) test4 <- new(protobuf_encoding_test.Test4) test4$d <- c(3, 270, 86942) expect_identical(test4$serialize(NULL), as.raw(c(0x22, 0x06, 0x03, 0x8e, 0x02, 0x9e, 0xa7, 0x05))) #} #test.serialize <- function() { person <- new(tutorial.Person) expect_true(!person$isInitialized()) expect_error(serialize(person, NULL)) #"Uninitialized object should fail to serialize.") person$id <- 1 expect_error(serialize(person, NULL)) #"Uninitialized object should fail to serialize.") person$name <- "Murray" expect_true(person$isInitialized()) expect_true(length(serialize(person, NULL)) > 1) #} RProtoBuf/inst/tinytest/test_int64.R0000644000176200001440000000515613617260253017136 0ustar liggesusers# Copyright 2013 Google Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) #test.int64 <- function() { ## Preserve option. old.optval <- options("RProtoBuf.int64AsString") on.exit(options(old.optval)) if (!exists("protobuf_unittest.TestAllTypes", "RProtoBuf:DescriptorPool")) { unittest.proto.file <- system.file("tinytest", "data", "unittest.proto", package="RProtoBuf") readProtoFiles(file=unittest.proto.file) } if (.Machine$sizeof.longlong < 8) { exit_file("Can't test 64-bit int type on platform with sizeof(long long) < 8") } if (is.na(Rcpp:::capabilities()["long long"]) || Rcpp:::capabilities()["long long"] != TRUE) { exit_file("Can't test 64-bit int type without RCPP_LONG_LONG support.") } a <- new(protobuf_unittest.TestAllTypes) a$repeated_int64 <- 1 # Now just test that we can use add to set int64 fields. a$add("repeated_int64", 2:10) expect_equal(length(a$repeated_int64), 10) # Verify we can set character strings of large 64-bit ints a$repeated_int64 <- c("9007199254740992", "9007199254740993") expect_equal(length(a$repeated_int64), 2) # Verify we can't set any garbage string to a repeated int64. expect_error(a$repeated_int64 <-c("invalid", "invalid")) a$optional_int64 <- 1 a$optional_int64 <- "2" expect_equal(a$optional_int64, 2) # Verify we can't set any garbage string to an optional int64. expect_error(a$optional_int64 <- "invalid") a <- protobuf_unittest.TestAllTypes$readASCII(file(system.file("tinytest", "data", "int64.ascii", package="RProtoBuf"))) # And can read them in OK from an ASCII file. expect_equal(length(a$repeated_int64), 2) # By default, when they are read as numerics, only 1 unique value expect_equal(length(unique(a$repeated_int64)), 1) options("RProtoBuf.int64AsString" = TRUE) # But we can see they are different if we treat them as strings. expect_equal(length(unique(a$repeated_int64)), 2) #} RProtoBuf/inst/tinytest/test_extremevalues.R0000644000176200001440000000334513617260253021061 0ustar liggesusers# Copyright 2013 Google Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) #test.uint32 <- function() { if (!exists("protobuf_unittest.TestAllTypes", "RProtoBuf:DescriptorPool")) { unittest.proto.file <- system.file("tinytest", "data", "unittest.proto", package="RProtoBuf") readProtoFiles(file=unittest.proto.file) } foo <- new(protobuf_unittest.TestAllTypes) foo$optional_uint32 <- 2^32 - 1 foo$repeated_uint32 <- c(foo$optional_uint32, foo$optional_uint32) expect_equal(as.character(foo$optional_uint32), "4294967295") expect_equal(foo$optional_uint32, foo$repeated_uint32[[1]]) foo$add("repeated_uint32", c(2^32 - 1, 2^32 - 1)) expect_equal(length(unique(foo$repeated_uint32)), 1) ## fixed32 are a more efficient representation of uint32 foo$optional_fixed32 <- 2^32 - 1 foo$repeated_fixed32 <- c(foo$optional_fixed32, foo$optional_fixed32) expect_equal(as.character(foo$optional_fixed32), "4294967295") expect_equal(foo$optional_fixed32, foo$repeated_fixed32[[1]]) #} RProtoBuf/inst/tinytest/test_int32.R0000644000176200001440000000353313617260253017126 0ustar liggesusers# Copyright 2013 Google Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) #test.int32 <- function() { if (!exists("protobuf_unittest.TestAllTypes", "RProtoBuf:DescriptorPool")) { unittest.proto.file <- system.file("tinytest", "data", "unittest.proto", package="RProtoBuf") readProtoFiles(file=unittest.proto.file) } a <- new(protobuf_unittest.TestAllTypes) a$repeated_int32 <- 1 # Verify we can set character strings a$repeated_int32 <- c("9007", "9008") expect_equal(length(a$repeated_int32), 2) # Verify we can't set any garbage string to a repeated int32. expect_error(a$repeated_int32 <-c("invalid", "invalid")) expect_error(a$repeated_int32 <-c("33-")) a$optional_int32 <- 1 a$optional_int32 <- "2" expect_equal(a$optional_int32, 2) # Verify we can't set any garbage string to an optional int32. expect_error(a$optional_int32 <- "invalid") a$optional_uint32 <- 10000 a$optional_uint32 <- "200000" expect_equal(a$optional_uint32, 200000) # Verify we can't set any garbage string to an optional uint32. expect_error(a$optional_uint32 <- "invalid") a$repeated_uint32 <- c("9007", "9008") expect_equal(length(a$repeated_uint32), 2) #} RProtoBuf/inst/tinytest/data/0000755000176200001440000000000014535363433015716 5ustar liggesusersRProtoBuf/inst/tinytest/data/int64.ascii0000644000176200001440000000010213617260253017661 0ustar liggesusersrepeated_int64: 9007199254740992 repeated_int64: 9007199254740993 RProtoBuf/inst/tinytest/data/encoding.proto0000644000176200001440000000050614535363433020572 0ustar liggesusers// mark as Protocol Buffers v2 format syntax = "proto2"; // Examples from https://protobuf.dev/docs/encoding package protobuf_encoding_test; message Test1 { required int32 a = 1; } message Test2 { required string b = 2; } message Test3 { required Test1 c = 3; } message Test4 { repeated int32 d = 4 [packed=true]; } RProtoBuf/inst/tinytest/data/nested.proto0000644000176200001440000000024013617260253020255 0ustar liggesusers// mark as Protocol Buffers v2 format syntax = "proto2"; message NestedInner { required int32 x = 1; } message NestedOuter { required NestedInner b = 1; } RProtoBuf/inst/tinytest/data/bytes.proto0000644000176200001440000000040313617260253020122 0ustar liggesusers// mark as Protocol Buffers v2 format syntax = "proto2"; option optimize_for = SPEED; option java_outer_classname = "BytesProto"; message TestBytes { required bytes req = 1; optional bytes opt = 2 [default = "hello world"]; repeated bytes rep = 3; } RProtoBuf/inst/tinytest/data/unittest_import.proto0000644000176200001440000000473613617260253022262 0ustar liggesusers// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // http://code.google.com/p/protobuf/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Author: kenton@google.com (Kenton Varda) // Based on original Protocol Buffers design by // Sanjay Ghemawat, Jeff Dean, and others. // // A proto file which is imported by unittest.proto to test importing. // mark as Protocol Buffers v2 format syntax = "proto2"; // We don't put this in a package within proto2 because we need to make sure // that the generated code doesn't depend on being in the proto2 namespace. // In test_util.h we do // "using namespace unittest_import = protobuf_unittest_import". package protobuf_unittest_import; option optimize_for = SPEED; // Excercise the java_package option. option java_package = "com.google.protobuf.test"; // Do not set a java_outer_classname here to verify that Proto2 works without // one. message ImportMessage { optional int32 d = 1; } enum ImportEnum { IMPORT_FOO = 7; IMPORT_BAR = 8; IMPORT_BAZ = 9; } RProtoBuf/inst/tinytest/data/subdir/0000755000176200001440000000000013617260253017202 5ustar liggesusersRProtoBuf/inst/tinytest/data/subdir/subdir_message.proto0000644000176200001440000000025513617260253023265 0ustar liggesuserssyntax = "proto2"; package protobuf_unittest_subdir; import "unittest_import.proto"; message SubdirMessage { optional protobuf_unittest_import.ImportMessage msg = 1; } RProtoBuf/inst/tinytest/data/proto3.proto0000644000176200001440000000017113617260253020224 0ustar liggesusers syntax = "proto3"; message SearchRequest { string query = 1; int32 page_number = 2; int32 result_per_page = 3; } RProtoBuf/inst/tinytest/data/unittest.proto0000644000176200001440000005053613617260253020667 0ustar liggesusers// Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // http://code.google.com/p/protobuf/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Author: kenton@google.com (Kenton Varda) // Based on original Protocol Buffers design by // Sanjay Ghemawat, Jeff Dean, and others. // // A proto file we will use for unit testing. // mark as Protocol Buffers v2 format syntax = "proto2"; // (Romain Francois) The only thing I have changed in this // file is this import directive. RProtoBuf will import // the extra file from the directory in which this file is import "unittest_import.proto"; // To test if we can import a message in another directory. import "subdir/subdir_message.proto"; // We don't put this in a package within proto2 because we need to make sure // that the generated code doesn't depend on being in the proto2 namespace. // In test_util.h we do "using namespace unittest = protobuf_unittest". package protobuf_unittest; // Protos optimized for SPEED use a strict superset of the generated code // of equivalent ones optimized for CODE_SIZE, so we should optimize all our // tests for speed unless explicitly testing code size optimization. option optimize_for = SPEED; option java_outer_classname = "UnittestProto"; // This proto includes every type of field in both singular and repeated // forms. message TestAllTypes { message NestedMessage { // The field name "b" fails to compile in proto1 because it conflicts with // a local variable named "b" in one of the generated methods. Doh. // This file needs to compile in proto1 to test backwards-compatibility. optional int32 bb = 1; } enum NestedEnum { FOO = 1; BAR = 2; BAZ = 3; } // Singular optional int32 optional_int32 = 1; optional int64 optional_int64 = 2; optional uint32 optional_uint32 = 3; optional uint64 optional_uint64 = 4; optional sint32 optional_sint32 = 5; optional sint64 optional_sint64 = 6; optional fixed32 optional_fixed32 = 7; optional fixed64 optional_fixed64 = 8; optional sfixed32 optional_sfixed32 = 9; optional sfixed64 optional_sfixed64 = 10; optional float optional_float = 11; optional double optional_double = 12; optional bool optional_bool = 13; optional string optional_string = 14; optional bytes optional_bytes = 15; optional group OptionalGroup = 16 { optional int32 a = 17; } optional NestedMessage optional_nested_message = 18; optional ForeignMessage optional_foreign_message = 19; optional protobuf_unittest_import.ImportMessage optional_import_message = 20; optional NestedEnum optional_nested_enum = 21; optional ForeignEnum optional_foreign_enum = 22; optional protobuf_unittest_import.ImportEnum optional_import_enum = 23; optional string optional_string_piece = 24 [ctype=STRING_PIECE]; optional string optional_cord = 25 [ctype=CORD]; // Repeated repeated int32 repeated_int32 = 31; repeated int64 repeated_int64 = 32; repeated uint32 repeated_uint32 = 33; repeated uint64 repeated_uint64 = 34; repeated sint32 repeated_sint32 = 35; repeated sint64 repeated_sint64 = 36; repeated fixed32 repeated_fixed32 = 37; repeated fixed64 repeated_fixed64 = 38; repeated sfixed32 repeated_sfixed32 = 39; repeated sfixed64 repeated_sfixed64 = 40; repeated float repeated_float = 41; repeated double repeated_double = 42; repeated bool repeated_bool = 43; repeated string repeated_string = 44; repeated bytes repeated_bytes = 45; repeated group RepeatedGroup = 46 { optional int32 a = 47; } repeated NestedMessage repeated_nested_message = 48; repeated ForeignMessage repeated_foreign_message = 49; repeated protobuf_unittest_import.ImportMessage repeated_import_message = 50; repeated NestedEnum repeated_nested_enum = 51; repeated ForeignEnum repeated_foreign_enum = 52; repeated protobuf_unittest_import.ImportEnum repeated_import_enum = 53; repeated string repeated_string_piece = 54 [ctype=STRING_PIECE]; repeated string repeated_cord = 55 [ctype=CORD]; // Singular with defaults optional int32 default_int32 = 61 [default = 41 ]; optional int64 default_int64 = 62 [default = 42 ]; optional uint32 default_uint32 = 63 [default = 43 ]; optional uint64 default_uint64 = 64 [default = 44 ]; optional sint32 default_sint32 = 65 [default = -45 ]; optional sint64 default_sint64 = 66 [default = 46 ]; optional fixed32 default_fixed32 = 67 [default = 47 ]; optional fixed64 default_fixed64 = 68 [default = 48 ]; optional sfixed32 default_sfixed32 = 69 [default = 49 ]; optional sfixed64 default_sfixed64 = 70 [default = -50 ]; optional float default_float = 71 [default = 51.5 ]; optional double default_double = 72 [default = 52e3 ]; optional bool default_bool = 73 [default = true ]; optional string default_string = 74 [default = "hello"]; optional bytes default_bytes = 75 [default = "world"]; optional NestedEnum default_nested_enum = 81 [default = BAR ]; optional ForeignEnum default_foreign_enum = 82 [default = FOREIGN_BAR]; optional protobuf_unittest_import.ImportEnum default_import_enum = 83 [default = IMPORT_BAR]; optional string default_string_piece = 84 [ctype=STRING_PIECE,default="abc"]; optional string default_cord = 85 [ctype=CORD,default="123"]; } // Define these after TestAllTypes to make sure the compiler can handle // that. message ForeignMessage { optional int32 c = 1; } enum ForeignEnum { FOREIGN_FOO = 4; FOREIGN_BAR = 5; FOREIGN_BAZ = 6; } message TestAllExtensions { extensions 1 to max; } extend TestAllExtensions { // Singular optional int32 optional_int32_extension = 1; optional int64 optional_int64_extension = 2; optional uint32 optional_uint32_extension = 3; optional uint64 optional_uint64_extension = 4; optional sint32 optional_sint32_extension = 5; optional sint64 optional_sint64_extension = 6; optional fixed32 optional_fixed32_extension = 7; optional fixed64 optional_fixed64_extension = 8; optional sfixed32 optional_sfixed32_extension = 9; optional sfixed64 optional_sfixed64_extension = 10; optional float optional_float_extension = 11; optional double optional_double_extension = 12; optional bool optional_bool_extension = 13; optional string optional_string_extension = 14; optional bytes optional_bytes_extension = 15; optional group OptionalGroup_extension = 16 { optional int32 a = 17; } optional TestAllTypes.NestedMessage optional_nested_message_extension = 18; optional ForeignMessage optional_foreign_message_extension = 19; optional protobuf_unittest_import.ImportMessage optional_import_message_extension = 20; optional TestAllTypes.NestedEnum optional_nested_enum_extension = 21; optional ForeignEnum optional_foreign_enum_extension = 22; optional protobuf_unittest_import.ImportEnum optional_import_enum_extension = 23; optional string optional_string_piece_extension = 24 [ctype=STRING_PIECE]; optional string optional_cord_extension = 25 [ctype=CORD]; // Repeated repeated int32 repeated_int32_extension = 31; repeated int64 repeated_int64_extension = 32; repeated uint32 repeated_uint32_extension = 33; repeated uint64 repeated_uint64_extension = 34; repeated sint32 repeated_sint32_extension = 35; repeated sint64 repeated_sint64_extension = 36; repeated fixed32 repeated_fixed32_extension = 37; repeated fixed64 repeated_fixed64_extension = 38; repeated sfixed32 repeated_sfixed32_extension = 39; repeated sfixed64 repeated_sfixed64_extension = 40; repeated float repeated_float_extension = 41; repeated double repeated_double_extension = 42; repeated bool repeated_bool_extension = 43; repeated string repeated_string_extension = 44; repeated bytes repeated_bytes_extension = 45; repeated group RepeatedGroup_extension = 46 { optional int32 a = 47; } repeated TestAllTypes.NestedMessage repeated_nested_message_extension = 48; repeated ForeignMessage repeated_foreign_message_extension = 49; repeated protobuf_unittest_import.ImportMessage repeated_import_message_extension = 50; repeated TestAllTypes.NestedEnum repeated_nested_enum_extension = 51; repeated ForeignEnum repeated_foreign_enum_extension = 52; repeated protobuf_unittest_import.ImportEnum repeated_import_enum_extension = 53; repeated string repeated_string_piece_extension = 54 [ctype=STRING_PIECE]; repeated string repeated_cord_extension = 55 [ctype=CORD]; // Singular with defaults optional int32 default_int32_extension = 61 [default = 41 ]; optional int64 default_int64_extension = 62 [default = 42 ]; optional uint32 default_uint32_extension = 63 [default = 43 ]; optional uint64 default_uint64_extension = 64 [default = 44 ]; optional sint32 default_sint32_extension = 65 [default = -45 ]; optional sint64 default_sint64_extension = 66 [default = 46 ]; optional fixed32 default_fixed32_extension = 67 [default = 47 ]; optional fixed64 default_fixed64_extension = 68 [default = 48 ]; optional sfixed32 default_sfixed32_extension = 69 [default = 49 ]; optional sfixed64 default_sfixed64_extension = 70 [default = -50 ]; optional float default_float_extension = 71 [default = 51.5 ]; optional double default_double_extension = 72 [default = 52e3 ]; optional bool default_bool_extension = 73 [default = true ]; optional string default_string_extension = 74 [default = "hello"]; optional bytes default_bytes_extension = 75 [default = "world"]; optional TestAllTypes.NestedEnum default_nested_enum_extension = 81 [default = BAR]; optional ForeignEnum default_foreign_enum_extension = 82 [default = FOREIGN_BAR]; optional protobuf_unittest_import.ImportEnum default_import_enum_extension = 83 [default = IMPORT_BAR]; optional string default_string_piece_extension = 84 [ctype=STRING_PIECE, default="abc"]; optional string default_cord_extension = 85 [ctype=CORD, default="123"]; } message TestNestedExtension { extend TestAllExtensions { // Check for bug where string extensions declared in tested scope did not // compile. optional string test = 1002 [default="test"]; } } // We have separate messages for testing required fields because it's // annoying to have to fill in required fields in TestProto in order to // do anything with it. Note that we don't need to test every type of // required filed because the code output is basically identical to // optional fields for all types. message TestRequired { required int32 a = 1; optional int32 dummy2 = 2; required int32 b = 3; extend TestAllExtensions { optional TestRequired single = 1000; repeated TestRequired multi = 1001; } // Pad the field count to 32 so that we can test that IsInitialized() // properly checks multiple elements of has_bits_. optional int32 dummy4 = 4; optional int32 dummy5 = 5; optional int32 dummy6 = 6; optional int32 dummy7 = 7; optional int32 dummy8 = 8; optional int32 dummy9 = 9; optional int32 dummy10 = 10; optional int32 dummy11 = 11; optional int32 dummy12 = 12; optional int32 dummy13 = 13; optional int32 dummy14 = 14; optional int32 dummy15 = 15; optional int32 dummy16 = 16; optional int32 dummy17 = 17; optional int32 dummy18 = 18; optional int32 dummy19 = 19; optional int32 dummy20 = 20; optional int32 dummy21 = 21; optional int32 dummy22 = 22; optional int32 dummy23 = 23; optional int32 dummy24 = 24; optional int32 dummy25 = 25; optional int32 dummy26 = 26; optional int32 dummy27 = 27; optional int32 dummy28 = 28; optional int32 dummy29 = 29; optional int32 dummy30 = 30; optional int32 dummy31 = 31; optional int32 dummy32 = 32; required int32 c = 33; } message TestRequiredForeign { optional TestRequired optional_message = 1; repeated TestRequired repeated_message = 2; optional int32 dummy = 3; } // Test that we can use NestedMessage from outside TestAllTypes. message TestForeignNested { optional TestAllTypes.NestedMessage foreign_nested = 1; } // TestEmptyMessage is used to test unknown field support. message TestEmptyMessage { } // Like above, but declare all field numbers as potential extensions. No // actual extensions should ever be defined for this type. message TestEmptyMessageWithExtensions { extensions 1 to max; } // Test that really large tag numbers don't break anything. message TestReallyLargeTagNumber { // The largest possible tag number is 2^28 - 1, since the wire format uses // three bits to communicate wire type. optional int32 a = 1; optional int32 bb = 268435455; } message TestRecursiveMessage { optional TestRecursiveMessage a = 1; optional int32 i = 2; } // Test that mutual recursion works. message TestMutualRecursionA { optional TestMutualRecursionB bb = 1; } message TestMutualRecursionB { optional TestMutualRecursionA a = 1; optional int32 optional_int32 = 2; } // Test that groups have disjoint field numbers from their siblings and // parents. This is NOT possible in proto1; only proto2. When outputting // proto1, the dup fields should be dropped. message TestDupFieldNumber { optional int32 a = 1; optional group Foo = 2 { optional int32 a = 1; } optional group Bar = 3 { optional int32 a = 1; } } // Needed for a Python test. message TestNestedMessageHasBits { message NestedMessage { repeated int32 nestedmessage_repeated_int32 = 1; repeated ForeignMessage nestedmessage_repeated_foreignmessage = 2; } optional NestedMessage optional_nested_message = 1; } // mstokely commented this out, it breaks with libprotobuf-2.5. // // Test an enum that has multiple values with the same number. // enum TestEnumWithDupValue { // FOO1 = 1; // BAR1 = 2; // BAZ = 3; // FOO2 = 1; // BAR2 = 2; //} // Test an enum with large, unordered values. enum TestSparseEnum { SPARSE_A = 123; SPARSE_B = 62374; SPARSE_C = 12589234; SPARSE_D = -15; SPARSE_E = -53452; SPARSE_F = 0; SPARSE_G = 2; } // Test message with CamelCase field names. This violates Protocol Buffer // standard style. message TestCamelCaseFieldNames { optional int32 PrimitiveField = 1; optional string StringField = 2; optional ForeignEnum EnumField = 3; optional ForeignMessage MessageField = 4; optional string StringPieceField = 5 [ctype=STRING_PIECE]; optional string CordField = 6 [ctype=CORD]; repeated int32 RepeatedPrimitiveField = 7; repeated string RepeatedStringField = 8; repeated ForeignEnum RepeatedEnumField = 9; repeated ForeignMessage RepeatedMessageField = 10; repeated string RepeatedStringPieceField = 11 [ctype=STRING_PIECE]; repeated string RepeatedCordField = 12 [ctype=CORD]; } // We list fields out of order, to ensure that we're using field number and not // field index to determine serialization order. message TestFieldOrderings { optional string my_string = 11; extensions 2 to 10; optional int64 my_int = 1; extensions 12 to 100; optional float my_float = 101; } extend TestFieldOrderings { optional string my_extension_string = 50; optional int32 my_extension_int = 5; } message TestExtremeDefaultValues { optional bytes escaped_bytes = 1 [default = "\0\001\a\b\f\n\r\t\v\\\'\"\xfe"]; optional uint32 large_uint32 = 2 [default = 0xFFFFFFFF]; optional uint64 large_uint64 = 3 [default = 0xFFFFFFFFFFFFFFFF]; optional int32 small_int32 = 4 [default = -0x7FFFFFFF]; optional int64 small_int64 = 5 [default = -0x7FFFFFFFFFFFFFFF]; // The default value here is UTF-8 for "\u1234". (We could also just type // the UTF-8 text directly into this text file rather than escape it, but // lots of people use editors that would be confused by this.) optional string utf8_string = 6 [default = "\341\210\264"]; // Tests for single-precision floating-point values. optional float zero_float = 7 [default = 0]; optional float one_float = 8 [default = 1]; optional float small_float = 9 [default = 1.5]; optional float negative_one_float = 10 [default = -1]; optional float negative_float = 11 [default = -1.5]; // Using exponents optional float large_float = 12 [default = 2E8]; optional float small_negative_float = 13 [default = -8e-28]; } // Test String and Bytes: string is for valid UTF-8 strings message OneString { optional string data = 1; } message OneBytes { optional bytes data = 1; } // Test messages for packed fields message TestPackedTypes { repeated int32 packed_int32 = 90 [packed = true]; repeated int64 packed_int64 = 91 [packed = true]; repeated uint32 packed_uint32 = 92 [packed = true]; repeated uint64 packed_uint64 = 93 [packed = true]; repeated sint32 packed_sint32 = 94 [packed = true]; repeated sint64 packed_sint64 = 95 [packed = true]; repeated fixed32 packed_fixed32 = 96 [packed = true]; repeated fixed64 packed_fixed64 = 97 [packed = true]; repeated sfixed32 packed_sfixed32 = 98 [packed = true]; repeated sfixed64 packed_sfixed64 = 99 [packed = true]; repeated float packed_float = 100 [packed = true]; repeated double packed_double = 101 [packed = true]; repeated bool packed_bool = 102 [packed = true]; repeated ForeignEnum packed_enum = 103 [packed = true]; } message TestPackedExtensions { extensions 1 to max; } extend TestPackedExtensions { repeated int32 packed_int32_extension = 90 [packed = true]; repeated int64 packed_int64_extension = 91 [packed = true]; repeated uint32 packed_uint32_extension = 92 [packed = true]; repeated uint64 packed_uint64_extension = 93 [packed = true]; repeated sint32 packed_sint32_extension = 94 [packed = true]; repeated sint64 packed_sint64_extension = 95 [packed = true]; repeated fixed32 packed_fixed32_extension = 96 [packed = true]; repeated fixed64 packed_fixed64_extension = 97 [packed = true]; repeated sfixed32 packed_sfixed32_extension = 98 [packed = true]; repeated sfixed64 packed_sfixed64_extension = 99 [packed = true]; repeated float packed_float_extension = 100 [packed = true]; repeated double packed_double_extension = 101 [packed = true]; repeated bool packed_bool_extension = 102 [packed = true]; repeated ForeignEnum packed_enum_extension = 103 [packed = true]; } // Test that RPC services work. message FooRequest {} message FooResponse {} service TestService { rpc Foo(FooRequest) returns (FooResponse); rpc Bar(BarRequest) returns (BarResponse); } message BarRequest {} message BarResponse {} RProtoBuf/inst/tinytest/data/cyclical/0000755000176200001440000000000013617260253017475 5ustar liggesusersRProtoBuf/inst/tinytest/data/cyclical/proj2/0000755000176200001440000000000013617260253020531 5ustar liggesusersRProtoBuf/inst/tinytest/data/cyclical/proj2/proto/0000755000176200001440000000000013617260253021674 5ustar liggesusersRProtoBuf/inst/tinytest/data/cyclical/proj2/proto/b.proto0000644000176200001440000000011713617260253023201 0ustar liggesuserssyntax = "proto2"; import "proto/a.proto"; message B { optional A a = 1; } RProtoBuf/inst/tinytest/data/cyclical/proj1/0000755000176200001440000000000013617260253020530 5ustar liggesusersRProtoBuf/inst/tinytest/data/cyclical/proj1/proto/0000755000176200001440000000000013617260253021673 5ustar liggesusersRProtoBuf/inst/tinytest/data/cyclical/proj1/proto/c.proto0000644000176200001440000000011713617260253023201 0ustar liggesuserssyntax = "proto2"; import "proto/b.proto"; message C { optional B b = 1; } RProtoBuf/inst/tinytest/data/cyclical/proj1/proto/a.proto0000644000176200001440000000004113617260253023173 0ustar liggesuserssyntax = "proto2"; message A {} RProtoBuf/inst/tinytest/data/recursive/0000755000176200001440000000000013617260253017721 5ustar liggesusersRProtoBuf/inst/tinytest/data/recursive/subdir/0000755000176200001440000000000013617260253021211 5ustar liggesusersRProtoBuf/inst/tinytest/data/recursive/subdir/subdir_message.proto0000644000176200001440000000026713617260253025277 0ustar liggesuserssyntax = "proto2"; package protobuf_unittest_recursive_subdir; import "unittest_import.proto"; message SubdirMessage { optional protobuf_unittest_import.ImportMessage msg = 1; } RProtoBuf/inst/tinytest/test_addressbook.R0000644000176200001440000001226513776225671020504 0ustar liggesusers library(RProtoBuf) ## created as ## demo(addressbook) ## creates 'book' ## serialize(book, "/tmp/addressbook.pb") # this is executed before each test function -- but somehow does not work #.setUp <- function() { file <- system.file( "examples", "addressbook.pb", package = "RProtoBuf" ) book <- read( tutorial.AddressBook, file ) assign("book", book, globalenv()) #} #test.size <- function() { expect_equal(book$size("person"), 2, info="Number of persons") expect_equal(bytesize(book), 125, info="Bytes in book") expect_equal(bytesize(book$person[[1]]), 60, info="Bytes of first person message") #} #test.fileDescriptor <- function() { expect_equal(name(book$fileDescriptor()), "addressbook.proto") #} #test.personOne <- function() { expect_equal(book$person[[1]]$name, "Romain Francois", info="First person name") expect_equal(book$person[[2]]$name, "Dirk Eddelbuettel", info="First person name") expect_equal(book$person[[1]]$id, 1, info="First person id") expect_equal(book$person[[2]]$id, 2, info="First person id") expect_equal(book$person[[1]]$email, "romain@r-enthusiasts.com", info="First person email") expect_equal(book$person[[2]]$email, "edd@debian.org", info="Second person email") expect_equal(length(book$person[[1]]$phone), 1, info="First person phones") expect_equal(length(book$person[[2]]$phone), 2, info="Second person phones") expect_equal(book$person[[1]]$phone[[1]]$number, "+33(0)...", info="First person phone number") expect_equal(book$person[[2]]$phone[[1]]$number, "+01...", info="Second person phone number") expect_equal(book$person[[2]]$phone[[1]]$type, 0, info="Second person phone number") #} #test.ascii <- function() { ## Output in text format to a temporary file out.file <- tempfile() writeLines( as.character(book), file(out.file)) ## Verify that we can read back in the message from a text file. book2 <- readASCII( tutorial.AddressBook, file(out.file, "rb")) expect_equal(as.character(book), as.character(book2) ) ## Verify that we can read in messages from unopened connections. book3 <- readASCII( tutorial.AddressBook, file(out.file)) expect_equal(as.character(book), as.character(book3) ) ## Verify that we get an exception if we try to read from a text connection. ## (better than silently getting an empty proto.) book4 <- expect_error( readASCII( tutorial.AddressBook, file(out.file, "rt"))) ## # Test does not work on windows because of chmod ## if(!grepl("mingw", R.Version()$platform)){ ## # Verify that we get an exception if the file is not readable. ## old.mode <- file.info(out.file)[["mode"]] ## Sys.chmod(out.file, "0000") ## book5 <- checkException( readASCII( tutorial.AddressBook, file(out.file, "rb"))) ## # Set the permissions back to ensure the file is cleaned up properly. ## Sys.chmod(out.file, old.mode) ## } ## Verify that we get an exception if the file is not parseable. out.file2 <- tempfile() writeLines("jibberish", file(out.file2)) book6 <- expect_error( readASCII( tutorial.AddressBook, file(out.file2))) ## Verify that we get an exception if we forget the file() and thus treat the ## path as a protobuf string. expect_error( readASCII( tutorial.AddressBook, out.file2)) incomplete.msg <- new(tutorial.Person, name="Murray", email="murray@stokely.org") tmp.file <- tempfile() writeLines(as.character(incomplete.msg), file(tmp.file)) expect_true(!incomplete.msg$isInitialized()) ## Verify we normally get an exception if we try to read an incomplete ASCII protocol buffer expect_error(tutorial.Person$readASCII(file(tmp.file))) ## Verify we can however read it if we set partial=TRUE. new.msg <- tutorial.Person$readASCII(file(tmp.file), TRUE) expect_equal(incomplete.msg$name, new.msg$name) #} ## Ensure we do not try to run JSON tests on older ProtoBuf versions ## Support starts with version 3. isProto2 <- (RProtoBuf:::getProtobufLibVersion() < 3000000) if (isProto2) exit_file("Skipping JSON tests with ProtoBuf2") # These tests are similar to the group of tests covered with test.ascii above. #test.json <- function() { ## Output in JSON format to a temporary file out.file <- tempfile() writeLines( book$toJSON(), file(out.file)) ## Verify that we can read back in the message from a text file. book2 <- readJSON( tutorial.AddressBook, file(out.file, "rb")) expect_equal(as.character(book), as.character(book2) ) ## Verify that we can read in messages from unopened connections. book3 <- readJSON( tutorial.AddressBook, file(out.file)) expect_equal(as.character(book), as.character(book3) ) ## Verify that we get an exception if we try to read from a text connection. ## (better than silently getting an empty proto.) book4 <- expect_error( readJSON( tutorial.AddressBook, file(out.file, "rt"))) ## Verify that we get an exception if the file is not parseable. out.file2 <- tempfile() writeLines("jibberish", file(out.file2)) book6 <- expect_error( readJSON( tutorial.AddressBook, file(out.file2))) ## Verify that we get an exception if we forget the file() and thus treat the ## path as a protobuf string. expect_error( readJSON( tutorial.AddressBook, out.file2)) #} RProtoBuf/inst/tinytest/test_extensions.R0000644000176200001440000000731213617260253020365 0ustar liggesusers# Copyright 2013 Google Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) #test.extension <- function() { if (!exists("protobuf_unittest.TestAllTypes", "RProtoBuf:DescriptorPool")) { unittest.proto.file <- system.file("tinytest", "data", "unittest.proto", package="RProtoBuf") readProtoFiles(file=unittest.proto.file) } expect_true(inherits(protobuf_unittest.optional_uint32_extension, "FieldDescriptor")) ## Verify we can pull in other extensions with P() expect_true(inherits(P("protobuf_unittest.optional_uint32_extension"), "FieldDescriptor")) ## Test setting and getting singular extensions. test <- new(protobuf_unittest.TestAllExtensions) test$setExtension(protobuf_unittest.optional_int32_extension, as.integer(1)) expect_equal(test$getExtension(protobuf_unittest.optional_int32_extension), as.integer(1)) ## Unset extensions should return NULL. expect_equal(test$getExtension(protobuf_unittest.optional_double_extension), NULL) ## Test setting and getting repeated extensions. expect_equal(test$getExtension(protobuf_unittest.repeated_int32_extension), NULL) test$setExtension(protobuf_unittest.repeated_int32_extension, 1:10) expect_equal(test$getExtension(protobuf_unittest.repeated_int32_extension), 1:10) ## Test nested extensions. expect_equal(test$getExtension(protobuf_unittest.TestNestedExtension.test), NULL) test$setExtension(protobuf_unittest.TestNestedExtension.test, "foo") expect_equal(test$getExtension(protobuf_unittest.TestNestedExtension.test), "foo") ## Test setting and getting enums. test$setExtension(protobuf_unittest.optional_nested_enum_extension, protobuf_unittest.TestAllTypes.NestedEnum$BAR) ## Test foreign message extensions foo <- new(protobuf_unittest.ForeignMessage) foo$c <- 3 test$setExtension(protobuf_unittest.optional_foreign_message_extension, foo) expect_equal(test$getExtension(protobuf_unittest.optional_foreign_message_extension)$c, 3) # This causes an Rcpp exception, but not an R stop error as of my # version of Rcpp, so we can't checkError unfortunately, but we # can at least make sure it doesn't crash R. # TODO(edd): Commented out now # test$setExtension(protobuf_unittest.optional_nested_enum_extension, 9) ## Test nested message extensions. tmp <- new( protobuf_unittest.TestAllTypes.NestedMessage ) tmp$bb <- 3 test$setExtension(protobuf_unittest.optional_nested_message_extension, tmp) expect_equal(test$getExtension(protobuf_unittest.optional_nested_message_extension)$bb, 3) ## Check that we do something sensible if invalid field descriptors are passed expect_error(test$getExtension(protobuf_unittest.TestAllExtensions)) expect_error(test$setExtension(protobuf_unittest.TestAllExtensions, 3)) ## Check that we don't CHECK fail in C++, but instead give a reasonable ## error message if incorrect extensions types are provided. expect_error(test$getExtension(protobuf_unittest.my_extension_string)) #} RProtoBuf/inst/tinytest/test_descriptors.R0000644000176200001440000000242413617260253020526 0ustar liggesusers# Copyright 2014 Google Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) #test.descriptor <- function() { expect_true(inherits(tutorial.Person$email, "FieldDescriptor")) expect_true(inherits(tutorial.Person[["email"]], "FieldDescriptor")) expect_true(inherits(tutorial.Person[[1]], "FieldDescriptor")) ## Currently, the $ extractor for fields returns NULL for invalid reference ## stop() probably better. expect_equal(tutorial.Person$nonexistantfoobarbaz, NULL) ## But we raise an error with invalid indices with '[['. expect_error(tutorial.Person[[909]]) expect_error(tutorial.Person[["nonexistantfoobarbaz"]]) #} RProtoBuf/inst/tinytest/test_messages.R0000644000176200001440000000435514223351157017777 0ustar liggesusers# Copyright 2013 Google Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) #test.message <- function() { if (!exists("protobuf_unittest.TestAllTypes", "RProtoBuf:DescriptorPool")) { unittest.proto.file <- system.file("tinytest", "data", "unittest.proto", package="RProtoBuf") readProtoFiles(file=unittest.proto.file) } a <- new(protobuf_unittest.TestAllTypes) a$optionalgroup$a <- 3 expect_equal(a$optionalgroup$a, 3) a$repeated_nested_message <- list( new(protobuf_unittest.TestAllTypes.NestedMessage, bb=3), new(protobuf_unittest.TestAllTypes.NestedMessage, bb=4)) expect_equal(a$repeated_nested_message[[1]]$bb, 3) expect_equal(a$repeated_nested_message[[2]]$bb, 4) expect_error(a$repeated_nested_message <- list( new(protobuf_unittest.ForeignMessage, c=1), new(protobuf_unittest.TestAllTypes.NestedMessage, bb=4))) expect_error(a$repeated_nested_message <- list( new(protobuf_unittest.TestAllTypes.NestedMessage, bb=4), new(protobuf_unittest.ForeignMessage, c=1))) expect_error(a$repeated_nested_message <- list( new(protobuf_unittest.TestAllTypes.NestedMessage, bb=4), 3)) expect_error(a$repeated_nested_message <- list( new(protobuf_unittest.TestAllTypes.NestedMessage, bb=4), "foo")) expect_equal(a$toTextFormat(), "OptionalGroup {\n a: 3\n}\nrepeated_nested_message {\n bb: 3\n}\nrepeated_nested_message {\n bb: 4\n}\n") expect_equal(a$toDebugString(), a$toString()) expect_equal(a$toString(debug = FALSE), a$toTextFormat()) expect_equal(a$toString(debug = TRUE), a$toDebugString()) #} RProtoBuf/inst/tinytest/test_import.R0000644000176200001440000000653313617260253017504 0ustar liggesusers# Copyright 2011 Google Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) #.setUp <- function() { resetDescriptorPool() #} #test.import.reset <- function() { ## Verify that the common setup is resetting the descriptor pool. ## Only the messages defined in the proto directory should be present. expect_true(all(grepl("^(rexp|tutorial|rprotobuf)\\.", objects("RProtoBuf:DescriptorPool")))) #} #test.import.error <- function() { ## Verify that we get a graceful error rather than a segfault. expect_error(readProtoFiles(system.file("DESCRIPTION", package="RProtoBuf"), syntax="proto3")) #} #test.import <- function() { #unit.test.data.dir <- system.file("unitTests", "data", package="RProtoBuf") unit.test.data.dir <- file.path("data", "cyclical") expect_true(!exists("protobuf_unittest_import.ImportMessage", "RProtoBuf:DescriptorPool")) resetDescriptorPool() readProtoFiles2(recursive = FALSE, protoPath=unit.test.data.dir) #expect_true(exists("protobuf_unittest_import.ImportMessage", "RProtoBuf:DescriptorPool")) # The following is imported by unittest.proto and hence, should have been imported implicitly. #expect_true(exists("protobuf_unittest_subdir.SubdirMessage", "RProtoBuf:DescriptorPool")) # The following is not imported by any of the top level files. expect_true(!exists("protobuf_unittest_recursive_subdir.SubdirMessage", "RProtoBuf:DescriptorPool")) #test.import.subdir <- function() { unit.test.data.dir <- system.file("tinytest", "data", package="RProtoBuf") # Any of these two will work. readProtoFiles2(file="subdir/subdir_message.proto", protoPath=unit.test.data.dir) readProtoFiles2(dir="subdir", protoPath=unit.test.data.dir) expect_true(exists("protobuf_unittest_subdir.SubdirMessage", "RProtoBuf:DescriptorPool")) readProtoFiles2(dir="recursive", recursive=TRUE, protoPath=unit.test.data.dir) expect_true(exists("protobuf_unittest_recursive_subdir.SubdirMessage", "RProtoBuf:DescriptorPool")) #} #test.import.cyclical <- function() { unit.test.cyclical.dir <- system.file("tinytest", "data", "cyclical", package="RProtoBuf") proj1.dir <- file.path(unit.test.cyclical.dir, "proj1") proj2.dir <- file.path(unit.test.cyclical.dir, "proj2") # The following files should be loaded in order as C depends on B depends on A. readProtoFiles2(file="proto/a.proto", protoPath=proj1.dir) expect_true(exists("A", "RProtoBuf:DescriptorPool")) expect_true(!exists("C", "RProtoBuf:DescriptorPool")) readProtoFiles2(file="proto/b.proto", protoPath=proj2.dir) expect_true(exists("B", "RProtoBuf:DescriptorPool")) readProtoFiles2(file="proto/c.proto", protoPath=proj1.dir) expect_true(exists("C", "RProtoBuf:DescriptorPool")) #} #test.assign.in.global <- function() { xx.undef <<- 3 expect_equal(xx.undef, 3) #} RProtoBuf/inst/tinytest/test_proto3.R0000644000176200001440000000304513617260253017413 0ustar liggesusers## rprotobuf.h: R/C++ interface class library ## ## Copyright (C) 2017 - 2020 Dirk Eddelbuettel ## ## This file is part of RProtoBuf. ## ## RProtoBuf is free software: you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation, either version 2 of the License, or ## (at your option) any later version. ## ## RProtoBuf is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with RProtoBuf. If not, see . library(RProtoBuf) ## The Travis CI tests use both proto2 and proto3, so we need to condition against ## running this one with proto2 where it cannot pass we impose a proto3 file isProto3 <- (RProtoBuf:::getProtobufLibVersion() >= 3000000) if (!isProto3) exit_file("Need Proto3 for this test.") #.setUp <- function(){ if( !exists("SearchRequest", "RProtoBuf:DescriptorPool")) { unitest.proto.file <- system.file("tinytest", "data", "proto3.proto", package="RProtoBuf") readProtoFiles(file = unitest.proto.file) } #} #test.proto3 <- function() { q <- new(SearchRequest, query="abc", page_number=42L, result_per_page=77L) expect_equal(q$query, "abc", msg="proto3 string") expect_equal(q$page_number, 42L, msg="proto3 int") expect_equal(q$result_per_page, 77L, msg="proto3 int again") #} RProtoBuf/inst/tinytest/test_bool.R0000644000176200001440000000326113617260253017120 0ustar liggesusers # Copyright 2013 Google Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) #test.bool <- function() { if (!exists("protobuf_unittest.TestAllTypes", "RProtoBuf:DescriptorPool")) { unittest.proto.file <- system.file("tinytest", "data", "unittest.proto", package="RProtoBuf") readProtoFiles(file=unittest.proto.file) } a <- new(protobuf_unittest.TestAllTypes) a$optional_bool <- TRUE a$optional_bool <- FALSE ## Verify we can not set a protocol buffer bool to NA. expect_error(a$optional_bool <- NA) ## Verify we can set character strings a$repeated_bool <- c(TRUE, FALSE, TRUE) expect_equal(length(unique(a$repeated_bool)), 2) ## Verify we can't set any garbage string to a bool. expect_error(a$optional_bool <- "100") expect_error(a$optional_bool <- "invalid") ## Verify we can't set any garbage string to a repeated bool. expect_error(a$repeated_bool <-c("invalid", "invalid")) expect_error(a$repeated_bool <-c("33-")) ## Verify we can set NA expect_error(a$repeated_bool <- c(TRUE, FALSE, TRUE, NA)) #} RProtoBuf/inst/tinytest/test_enums.R0000644000176200001440000000462013617260253017314 0ustar liggesusers# Copyright 2011 Google Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) #test.enums <- function() { ProtoFormat <- P("tutorial.Person") ## value(..) returns an EnumValueDescriptor object expect_equal(name(value(ProtoFormat$PhoneType, index=1)), "MOBILE") expect_equal(name(value(ProtoFormat$PhoneType, index=1), TRUE), "tutorial.Person.MOBILE") expect_equal(number(value(ProtoFormat$PhoneType, index=1)), 0) expect_true(inherits(enum_type(value(ProtoFormat$PhoneType, index=1)), "EnumDescriptor")) expect_true(inherits(asMessage(value(ProtoFormat$PhoneType, index=1)), "Message")) ## Now check the '$' interfaces expect_equal(name(value(ProtoFormat$PhoneType, index=1)), value(ProtoFormat$PhoneType, index=1)$name()) expect_equal(number(value(ProtoFormat$PhoneType, index=1)), value(ProtoFormat$PhoneType, index=1)$number()) expect_equal(name(value(ProtoFormat$PhoneType, index=2)), "HOME") expect_equal(length(ProtoFormat$PhoneType), 3) expect_true(has(ProtoFormat$PhoneType, "WORK")) expect_true(!has(ProtoFormat$PhoneType, "NONEXISTANT")) ## Verify we can subset the EnumDescriptor class expect_equal(ProtoFormat$PhoneType[["WORK"]], 2) expect_equal(ProtoFormat$PhoneType[["MOBILE"]], 0) ## Verify that invalid indices are returned as NULL. expect_true(is.null(value(ProtoFormat$PhoneType, index=900))) ## Verify that we import top-level enums from .proto files. if (!exists("protobuf_unittest.TestAllTypes", "RProtoBuf:DescriptorPool")) { unittest.proto.file <- system.file("tinytest", "data", "unittest.proto", package="RProtoBuf") readProtoFiles(file=unittest.proto.file) } expect_true(inherits(P("protobuf_unittest.ForeignEnum"), "EnumDescriptor")) #} RProtoBuf/inst/tinytest/test_serialize_pb.R0000644000176200001440000000342113617260253020633 0ustar liggesusers## Jeroen Ooms and Dirk Eddelbuettel library(RProtoBuf) #test.serialize_pb <- function() { ##verify that rexp.proto is loaded RProtoBuf:::pb(rexp.REXP) ##serialize a nested list x <- list(foo=cars, bar=Titanic) expect_equal(unserialize_pb(serialize_pb(x, NULL)), x) ##a bit of everything, copied from jsonlite package set.seed('123') myobject <- list( mynull = NULL, mycomplex = lapply(eigen(matrix(-rnorm(9),3)), round, 3), mymatrix = round(matrix(rnorm(9), 3),3), myint = as.integer(c(1,2,3)), mydf = cars, mylist = list(foo='bar', 123, NA, NULL, list('test')), mylogical = c(TRUE,FALSE,NA), mychar = c('foo', NA, 'bar'), myemptychar = character(0), somemissings = c(1,2,NA,NaN,5, Inf, 7 -Inf, 9, NA), myrawvec = charToRaw('This is a test'), myS4 = asS4("test") ) expect_equal(unserialize_pb(serialize_pb(myobject, NULL)), myobject) #} #test.serialize_pb.alldatasets <- function() { datasets <- as.data.frame(data(package="datasets")$results) datasets$name <- sub("\\s+.*$", "", datasets$Item) encoded.datasets <- sapply(datasets$name, function(x) serialize_pb(get(x), NULL)) unserialized.datasets <- sapply(encoded.datasets, unserialize_pb) expect_true(all(sapply(names(unserialized.datasets), function(name) identical(get(name), unserialized.datasets[[name]])))) #} ## this was issue #37 reported and fixed by Jeffrey Shen #test.serialize.sublist <- function() { x <- packageVersion("RProtoBuf") expect_identical(x, unserialize_pb(serialize_pb(x, NULL)), info="checking sublists") #} t#est.serialize.posixlt <- function() { x <- as.POSIXlt("1970-01-01T00:00:00Z") expect_identical(x, unserialize_pb(serialize_pb(x, NULL)), info="checking posixlt") #} RProtoBuf/inst/tinytest/test_bytes.R0000644000176200001440000000203013617260253017304 0ustar liggesusers library(RProtoBuf) #.setUp <- function(){ if( ! exists( "TestBytes", "RProtoBuf:DescriptorPool" ) ){ unitest.proto.file <- system.file( "tinytest", "data", "bytes.proto", package = "RProtoBuf" ) readProtoFiles(file = unitest.proto.file) } #} #test.all <- function() { test <- new(TestBytes, req = "abc", rep = list(charToRaw("def"), raw(10))) expect_equal(rawToChar(test$req), "abc") test$req <- charToRaw("abc") expect_equal(rawToChar(test$req), "abc") expect_equal(rawToChar(test$opt), "hello world") expect_equal(test$rep, list(charToRaw("def"), raw(10))) test$rep[[3]]=charToRaw("ghi") expect_equal(test$rep, list(charToRaw("def"), raw(10), charToRaw("ghi"))) ser <- serialize(test, NULL) test1 <- read(TestBytes, ser) expect_equal(rawToChar(test1$req), "abc") expect_equal(rawToChar(test1$opt), "hello world") expect_equal(test1$rep, list(charToRaw("def"), raw(10), charToRaw("ghi"))) ## Test raw(10) can be set to a single req field. test$req <- raw(10) expect_equal(length(test$req), 10) expect_true(all(test$req == raw(10))) #} RProtoBuf/inst/tinytest/test_fielddescriptor.R0000644000176200001440000000622013617260253021345 0ustar liggesusers# Copyright 2012 Google Inc. # Author: Murray Stokely # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. library(RProtoBuf) # this is executed before each test function #.setUp <- function(){ if( !exists("tutorial.Person", "RProtoBuf:DescriptorPool")) { protofile <- system.file("proto", "addressbook.proto", package = "RProtoBuf" ) readProtoFiles(file = protofile) } #} #test.FieldDescriptor.class <- function() { Person <- P( "tutorial.Person") ## field descriptor object expect_true(!is.null(Person$email), info="non-null email") ## debug string expect_true(nchar(as.character( Person$email )) > 1, info="non-empty email") ## default values expect_true(!has_default_value(Person$id), info="no default for id") expect_true(has_default_value(Person$PhoneNumber$type), info="default for phone") expect_equal(default_value(Person$PhoneNumber$type), 1, info="check default for phone type") expect_equal(default_value(Person$id), 0, info="check default for person id") ## Get the types of field descriptors expect_equal(type(Person$id), TYPE_INT32, info="type int32") expect_equal(type(Person$id, TRUE), "TYPE_INT32", info="type int32 as char") expect_equal(cpp_type(Person$email), CPPTYPE_STRING, info="cpptype string") expect_equal(cpp_type(Person$email, TRUE), "CPPTYPE_STRING", info="cpptype string as char") ## Get the label of a field descriptor expect_equal(label(Person$id), LABEL_REQUIRED, info="label required") expect_equal(label(Person$id, TRUE), "LABEL_REQUIRED", info="label required as char") expect_equal(label(Person$email), LABEL_OPTIONAL, info="label optional") expect_equal(label(Person$email, TRUE), "LABEL_OPTIONAL", info="label optional as char") ## Test if a field is optional expect_true(is_required(Person$id), info="id is required") expect_true(!is_optional(Person$id), info="id is not optional") expect_true(!is_repeated(Person$id), info="id is not repeated") expect_true(!is_required(Person$email), info="email is not required") expect_true(is_optional(Person$email), info="email is optional") expect_true(!is_repeated(Person$email), info="email is not repeated") ## Return the class of a message field expect_true(inherits(message_type(Person$phone), "Descriptor"), info="inherits Descriptor") ## Containing type of a field is the message descriptor expect_true(inherits(Person$id$containing_type(), "Descriptor"), info="inherits containing type Descriptor") ## No containing type for the top-level message descriptor. expect_true(is.null(Person$containing_type()), info="no containing typw") #} RProtoBuf/inst/tinytest/test_golden_message.R0000644000176200001440000001332113617260253021137 0ustar liggesusers library(RProtoBuf) # this is executed before each test function #.setUp <- function() { if (! exists("protobuf_unittest_import.TestAllTypes", "RProtoBuf:DescriptorPool")) { unitest.proto.file <- system.file("tinytest", "data", "unittest.proto", package = "RProtoBuf") readProtoFiles(file = unitest.proto.file) } #} #.tearDown <- function() {} #test.import <- function() { expect_true(exists("protobuf_unittest_import.ImportMessage", "RProtoBuf:DescriptorPool"), info = "exists( protobuf_unittest_import.ImportMessage ) ") expect_true(exists( "protobuf_unittest_import.ImportEnum", "RProtoBuf:DescriptorPool" ), info = "exists( protobuf_unittest_import.ImportEnum ) ") expect_equal(names(as.list( protobuf_unittest_import.ImportMessage)), "d", info = "names( protobuf_unittest_import.ImportMessage ) == 'd'") import_enum <- as.list(protobuf_unittest_import.ImportEnum ) expect_true(all( c("IMPORT_FOO", "IMPORT_BAR", "IMPORT_BAZ") %in% names(import_enum)), info = "expected names for 'protobuf_unittest_import.ImportEnum'") expect_equal(unlist(unname(import_enum)), 7:9, info = "expected values for 'protobuf_unittest_import.ImportEnum' ") #} #test.readProtoFile <- function() { expect_true(exists( "protobuf_unittest.TestAllTypes", "RProtoBuf:DescriptorPool" ), info = "exists( protobuf_unittest_import.TestAllTypes ) ") expect_true(exists( "protobuf_unittest.TestAllTypes.NestedMessage", "RProtoBuf:DescriptorPool" ), info = "exists( protobuf_unittest_import.TestAllTypes.NestedMessage ) " ) expect_true(exists( "protobuf_unittest.TestAllTypes.NestedEnum", "RProtoBuf:DescriptorPool" ), info = "exists( protobuf_unittest_import.TestAllTypes.NestedEnum ) " ) expect_true(exists( "protobuf_unittest.TestAllTypes.OptionalGroup", "RProtoBuf:DescriptorPool" ), info = "exists( protobuf_unittest.TestAllTypes.OptionalGroup ) " ) types <- c("int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64", "float", "double", "bool", "string", "bytes" ) fieldnames <- names( as.list( protobuf_unittest.TestAllTypes ) ) prefixes <- c("optional", "default", "repeated" ) for (prefix in prefixes ) { for (type in types ) { expect_true(sprintf( "%s_%s", prefix, type ) %in% fieldnames, info = sprintf( "%s_%s in field names", prefix, type)) } expect_true(sprintf("%s_foreign_enum" , prefix ) %in% fieldnames, info = sprintf( "%s_foreign_enum in field names" , prefix ) ) expect_true(sprintf("%s_import_enum" , prefix ) %in% fieldnames, info = sprintf( "%s_import_enum in field names" , prefix ) ) } expect_true(exists( "protobuf_unittest.ForeignMessage", "RProtoBuf:DescriptorPool"), info = "exists( protobuf_unittest.ForeignMessage ) " ) expect_equal(names(as.list(protobuf_unittest.ForeignMessage)), "c") expect_true(exists( "protobuf_unittest.ForeignEnum", "RProtoBuf:DescriptorPool"), info = "exists( protobuf_unittest.ForeignEnum ) ") foreign_enum <- as.list( protobuf_unittest.ForeignEnum ) expect_equal(length(foreign_enum), 3L, info = "length( protobuf_unittest.ForeignEnum ) == 3" ) expect_true(all(c("FOREIGN_FOO", "FOREIGN_BAR", "FOREIGN_BAZ") %in% names( foreign_enum )), info = "expected names for enum `protobuf_unittest.ForeignEnum`" ) expect_equal( unlist(unname(as.list(protobuf_unittest.ForeignEnum))), 4:6, info = "expected values for enum `protobuf_unittest.ForeignEnum`" ) #} ## Early versions of RProtoBuf did not support repeated messages properly. #test.repeatedFields <- function() { test <- new(protobuf_unittest.TestAllTypes) test$add("repeated_int32", c(1:5)) expect_equal(test$repeated_int32, c(1:5)) test$repeated_int32 <- 1 expect_equal(test$repeated_int32, 1) ## Prior to RProtoBuf v0.2.5, this was not handled properly. test.2 <- new(protobuf_unittest.TestAllTypes, repeated_string=c("foo", "bar")) expect_equal(test.2$repeated_string, c("foo", "bar")) ## Versions of RProtoBuf <= 0.2.5 had non-deterministic behavior due to a ## memory management bug when setting a repeated field to a ## non-vector type (e.g. a Message). test$repeated_foreign_message <- list(new(protobuf_unittest.ForeignMessage, c = 1), new(protobuf_unittest.ForeignMessage, c = 2)) expect_equal(length(test$repeated_foreign_message), 2) test$repeated_foreign_message <- new(protobuf_unittest.ForeignMessage, c = 3) expect_equal(length(test$repeated_foreign_message), 1) #} #test.repeated.bools <- function() { test <- new(protobuf_unittest.TestAllTypes) test$add("repeated_bool", c(TRUE, FALSE)) expect_equal(test$repeated_bool, c(TRUE, FALSE)) test$add("repeated_bool", as.integer(c(TRUE, FALSE))) test$add("repeated_bool", as.numeric(c(TRUE, FALSE))) expect_equal(test$repeated_bool, rep(c(TRUE, FALSE), 3)) ## Verify that we don't silently cast NA into TRUE or FALSE. expect_error(test$add("repeated_bool", c(TRUE, FALSE, NA))) #} ## Versions of RProtoBuf <= 0.2.5 would terminate the R instance with unhandled Rcpp exceptions. #test.invalidAssignments <- function() { test <- new(protobuf_unittest.TestAllTypes) expect_error(test$optional_int32 <- 1:10) #} ## Versions of RProtoBuf <= 0.2.5 did not distinguish between non-existant ## and not-set fields with has(). #test.has <- function() { test <- new(protobuf_unittest.TestAllTypes) test$add("repeated_int32", c(1:5)) expect_true( has(test, "repeated_int32")) expect_true( test$has("repeated_int32")) expect_true( is.null(test$has("nonexistant"))) expect_true( !test$has("optional_int32")) #} RProtoBuf/inst/python/0000755000176200001440000000000012440004312014420 5ustar liggesusersRProtoBuf/inst/python/readmsg.py0000644000176200001440000000051212440004312016412 0ustar liggesusers#!/usr/bin/env python # # Simple test script to read a serialized message in python # import rexp_pb2; import glob; messages = glob.glob("*.msg"); for myfile in messages: print("Reading message " + myfile + " ...") f = open(myfile, 'rb') msg = rexp_pb2.REXP(); msg.ParseFromString(f.read()) f.close(); print(msg) del msg RProtoBuf/inst/python/writemsg.R0000644000176200001440000000071312440004312016405 0ustar liggesusers#simple R script to serialize some R objects library(RProtoBuf) #some vectors serialize_pb(c(1,2,pi, NA,NaN,Inf,-Inf), "double.msg") serialize_pb(c(1L, 2L, NA), "integer.msg") serialize_pb(c(TRUE, FALSE, NA), "logical.msg") serialize_pb(c("foo", "bar", NA), "character.msg") serialize_pb(charToRaw("This is a test"), "raw.msg") #lists serialize_pb(list(foo=c(1,2,pi), bar=TRUE, baz="blabla", zoo=NULL), "list.msg") serialize_pb(iris[1:3,], "dataframe.msg") RProtoBuf/inst/python/runtest.sh0000755000176200001440000000040112440004312016456 0ustar liggesusers#!/bin/sh #write some PB data with R Rscript writemsg.R #compile proto file cp -f ../proto/rexp.proto . protoc rexp.proto --python_out=. rm rexp.proto #read with python and print python readmsg.py #cleanup tmp files rm rexp_pb2.py rexp_pb2.pyc rm *.msg RProtoBuf/inst/NEWS.Rd0000644000176200001440000004765014536327413014200 0ustar liggesusers\name{NEWS} \title{News for Package \pkg{RProtoBuf}} \newcommand{\ghpr}{\href{https://github.com/eddelbuettel/rprotobuf/pull/#1}{##1}} \newcommand{\ghit}{\href{https://github.com/eddelbuettel/rprotobuf/issues/#1}{##1}} \section{Changes in RProtoBuf version 0.4.21 (2022-12-13)}{ \itemize{ \item Package now builds with ProtoBuf >= 22.x thanks to Matteo Gianella (\ghpr{93} addressing \ghit{92}). \item An Alpine 3.19-based workflow was added to test this in continuous integration thanks to a suggestion by Sebastian Meyer. \item A large number of old-style \code{.Call} were updated (\ghpr{96}). \item Several packaging, dcoumentation and testing items were updated. } } \section{Changes in RProtoBuf version 0.4.20 (2022-11-02)}{ \itemize{ \item Two function prototype were updated for \code{clang-15}. \item GitHub Actions were updated to checkout version 3. \item One more http:// URL was updated to https:// \item The package compilation is now done with C++17 as the Protocol Buffer headers require it (and \code{clang-15} nags otherwise). } } \section{Changes in RProtoBuf version 0.4.19 (2022-05-06)}{ \itemize{ \item Small cleanups to repository \item Raise minimum Protocol Buffers version to 3.3 (closes \ghit{83}) \item Update package version display, added to startup message \item Expose TextFormat API (Michael Chirico in \ghpr{88} closing \ghit{87}) \item Add missing explicit \code{std::} on seven \code{string} instances in one file (closes \ghit{89}) } } \section{Changes in RProtoBuf version 0.4.18 (2021-12-15)}{ \itemize{ \item Support \code{string_view} in \code{FindMethodByName()} (Adam Cozzette in \ghpr{72}). \item CI use was updated first at Travis, later at GitHub and now uses \href{https://eddelbuettel.github.io/r-ci/}{r-ci} (Dirk in \ghpr{74} and (parts of) \ghpr{76}). \item The (to the best of our knowledge) unused minimal RPC mechanism has been removed, retiring one method and one class as well as the import of the \pkg{RCurl} package (Dirk in \ghpr{76}). \item The \code{toJSON()} method supports two (upstream) formatting toggles (Vitali Spinu in \ghpr{79} with minor edit by Dirk). \item Windows UCRT builds are now supported (Jeroen in \ghpr{81}, Dirk and Tomas Kalibera in \ghpr{82}). } } \section{Changes in RProtoBuf version 0.4.17 (2020-03-26)}{ \itemize{ \item Condition use of \code{ByteSizeLong()} on building with ProtoBuf 3.6.0 or later (Dirk in \ghpr{71} fixing \ghit{70}). \item The JSON unit tests are skipped if ProtoBuf 2.* is used (Dirk, also \ghpr{71}). \item The \code{configure} script now extracts the version from the \code{DESCRIPTION} file (Dirk, also \ghpr{71}). } } \section{Changes in RProtoBuf version 0.4.16 (2020-03-19)}{ \itemize{ \item Added support for parsing and printing JSON (Siddhartha Bagaria in \ghpr{68} closing wishlist \ghit{61}). \item Switched \code{ByteSize()} to \code{ByteSizeLong()} to appease \code{clang} (Dirk). } } \section{Changes in RProtoBuf version 0.4.15 (2020-02-08)}{ \itemize{ \item Repeated Message and Group objects are now returned correctly (Dirk in \ghpr{64} fixing \ghit{62}). \item The unit tests are now run by \pkg{tinytest} (Dirk in \ghpr{65}). \item The vignettes are now included pre-made (Dirk in \ghpr{67}). } } \section{Changes in RProtoBuf version 0.4.14 (2019-06-30)}{ \itemize{ \item An \code{all.equal.Message} method was added to avoid a fallback to the generic (Jarod Meng in \ghpr{54} fixing \ghit{53}) \item Recursive fields now handled by \code{identical()} (Jarod Meng in \ghpr{57} fixing \ghit{56}) \item Update Windows build infrastructure (Jeroen) } } \section{Changes in RProtoBuf version 0.4.13 (2018-11-03)}{ \itemize{ \item The \code{configure} setup is more robust with respect to the C++ setup (CRAN request). \item \code{POSIXlt} elements are now properly serialized too (Jeffrey Shen in \ghpr{48} and \ghpr{50} fixing \ghit{47}) \item Added two Dockerfiles for continuous integration and use; see \href{https://hub.docker.com/swarm/rprotobuf/repository/list}{this url} for more. } } \section{Changes in RProtoBuf version 0.4.12 (2018-07-11)}{ \itemize{ \item Recursive serialization of sublists returning themselves is now recognised (Jeffrey Shen in \ghpr{38} fixing \ghit{37}) \item New function \code{readProtoFiles2} to be consistent with \code{protoc} (Siddhartha Bagaria in \ghpr{40} fixing \ghit{39}) \item Update Windows binary library used (Maciej Lach and Jeroen Ooms in \ghpr{42} and follow-up commits) \item New unit tests for new functionality (Siddhartha Bagaria in \ghpr{45}) } } \section{Changes in RProtoBuf version 0.4.11 (2017-10-03)}{ \itemize{ \item The \code{RProtoBuf-intro} and \code{RProtoBuf-quickref} vignettes were converted to Rmarkdown using the templates and style file from the pinp package. \item A few minor internal upgrades } } \section{Changes in RProtoBuf version 0.4.10 (2017-08-13)}{ \itemize{ \item More careful operation in deserializer checking for a valid class attribute (Jeffey Shen in \ghpr{29} fixing \ghit{28}) \item At the request of CRAN, correct one \code{.Call()} argument to \code{PACKAGE=}; update routine registration accordingly } } \section{Changes in RProtoBuf version 0.4.9 (2017-03-06)}{ \itemize{ \item A new file \code{init.c} was added with calls to \code{R_registerRoutines()} and \code{R_useDynamicSymbols()} \item Symbol registration is enabled in \code{useDynLib} \item Several missing \code{PACKAGE=} arguments were added to the corresponding \code{.Call} invocations \item Two (internal) C++ functions were renamed with suffix \code{_cpp} to disambiguate them from R functions with the same name \item All of above were part of \ghpr{26} \item Some editing corrections were made to the introductory vignette (David Kretch in \ghpr{25}) \item The `configure.ac` file was updated, and renamed from the older converntion `configure.in`, along with `src/Makevars`. (PR \ghpr{24} fixing \ghit{23}) } } \section{Changes in RProtoBuf version 0.4.8 (2017-01-17)}{ \itemize{ \item Windows builds now use the proto3 library as well (PR \ghpr{21} fixing \ghit{20}) } } \section{Changes in RProtoBuf version 0.4.7 (2016-10-27)}{ \itemize{ \item At the request of CRAN, two documentation instances referring to the Omegehat repository were updated to \url{https://omegahat.net/} } } \section{Changes in RProtoBuf version 0.4.6 (2016-09-08)}{ \itemize{ \item Support for serializing zero-length objects was added (PR \ghpr{18} addressing \ghit{13}) \item S4 objects are natively encoded (also PR \ghpr{18}) \item The vignette based on the JSS paper no longer uses a macro available only with the R-devel version of jss.cls, and hence builds on all R versions } } \section{Changes in RProtoBuf version 0.4.5 (2016-08-29)}{ \itemize{ \item Support for version 3 of the Protcol Buffers API \item Added 'syntax = "proto2";' to all proto files (PR \ghpr{17}) \item Updated Travis CI script to test against both versions 2 and 3 using custom-built .deb packages of version 3 (PR \ghpr{16}) \item Improved build system with support for custom CXXFLAGS (Craig Radcliffe in PR \ghpr{15}) } } \section{Changes in RProtoBuf version 0.4.4 (2016-07-10)}{ \itemize{ \item New vignette based on JSS publication (v71 i02) \item Some documentation enhancements were made, as well as other minor cleanups to file modes and operations \item Unit-test vignette no longer writes to \code{/tmp} per CRAN request \item The new Windows toolchain (based on g++ 4.9.*) is supported } } \section{Changes in RProtoBuf version 0.4.3 (2015-08-25)}{ \itemize{ \item Declare additional imports from \pkg{methods} in \code{NAMESPACE}. \item Travis CI tests now run faster as all CRAN dependencies are installed as binaries. \item The \code{tools/winlibs.R} script now tests for R (< 3.3.0) before calling the (soon-to-be phased out) \code{setInternet2()} function. \item Several small edits were made to \code{DESCRIPTION} to clarify library dependencies, provide additonal references and conform to now-current R packaging standards. } } \section{Changes in RProtoBuf version 0.4.2 (2014-12-10)}{ \itemize{ \item Address changes suggested by anonymous reviewers for our Journal of Statistical Software submission. \item Make \code{Descriptor} and \code{EnumDescriptor} objects subsettable with "\code{[[}". \item Add \code{length()} method for \code{Descriptor} objects. \item Add \code{names()} method for \code{Message}, \code{Descriptor}, and \code{EnumDescriptor} objects. \item Clarify order of returned list for descriptor objects in \code{as.list} documentation. \item Correct the definition of \code{as.list} for \code{EnumDescriptors} to return a proper list instead of a named vector. \item Update the default print methods to use \code{cat()} with \code{fill=TRUE} instead of \code{show()} to eliminate the confusing \code{[1]} since the classes in \pkg{RProtoBuf} are not vectorized. \item Add support for serializing function, language, and environment objects by falling back to R's native serialization with \code{serialize_pb} and \code{unserialize_pb} to make it easy to serialize into a Protocol Buffer all of the more than 100 datasets which come with R. \item Use \code{normalizePath} instead of creating a temporary file with \code{file.create} when getting absolute path names. \item Add unit tests for all of the above. } } \section{Changes in RProtoBuf version 0.4.1 (2014-03-25)}{ \itemize{ \item Document and add a test for the deprecated group functionality. \item Add a \code{CITATION} file pointing to the arXiv.org preprint. \item Fix a bug in the \code{show} method for \code{EnumDescriptor} types. \item Import all top-level enums from imported \code{.proto} files. \item Removed duplicate enum value type from the unit tests that caused problems with the most recent libprotobuf-2.5. (without option allow_alias). } } \section{Changes in RProtoBuf version 0.4.0 (2014-01-14)}{ \itemize{ \item Changes to support CRAN builds for MS Windows. \item Added functions \code{serialize_pb}, \code{unserialize_pb}, and \code{can_serialize_pb} plus documentation from Jeroen Ooms RProtoBufUtils package. \item New dir \code{inst/python} with some Python examples. \item Added Jeroen Ooms as author. \item Vignettes have been converted to the R 3.0.0 or later use of external vignette builders, no longer need a \code{Makefile} \item Added missing methods to dollar completion list for Message, Descriptor, EnumValueDescriptor, and FileDescriptor classes. \item Add missing export for \code{.DollarNames} EnumValueDescriptor to allow completion on that class. \item Add more than 15 additional pages to the main Intro vignette documenting better all of the S4 classes implemented by RProtoBuf, updating the type mapping tables to take into account 64-bit support, and documenting advanced features such as Extensions. \item Added better error checking in EnumDescriptors to catch the case when wrong types are provided. \item Updated the FileDescriptor \code{name()} method to accept a boolean for full paths just like the generic \code{name()} method. \item Correct a bug that incorrectly dispatched \code{as.character()} when \code{as.list()} was called on Descriptor objects. \item Update FileDescriptor \code{$} dispatch to work properly for the names of fields defined in the FileDescriptor, instead of just returning \code{NULL} even for types returned by \code{$} completion. \item Added a reservation for extension fields in the example tutorial.Person schema. \item Support setting int32 fields with character representations and raise an R-level \code{stop()} error if the provided string can not be parsed as a 32-bit integer, rather than crashing the R instance. \item Update the project TODO file. \item Add better documentation and tests for all of the above. \item Corrected the handling of uint32 and fixed32 types in protocol buffers to ensure that they work with numbers as large as 2^32 - 1, which is larger than an integer can hold in R since R does not have an unsigned integer class. These values are stored as doubles internally now to avoid losing precision. \item Added unit tests to verify behavior of RProtoBuf with extreme values for uint32 types. \item Removed old exception handling code and instead rely on the more modern Rcpp::stop method maintained in Rcpp. \item Add better error messages when setting a repeated field of messages to inform the user which element index was of the wrong type and what the expected type was. \item Add an optional 'partial' argument to readASCII allowing uninitialized message fragments to be read in. \item (internal) Added const qualifiers in more places throughout the C++ code for type safety. \item (internal) Standardize coding conventions of the C++ files and run them through clang-format for consistency. A STYLE file has been submitted to R-Forge with details about the coding standards and how they are enforced with Emacs and clang-format. \item Applied changes suggested by Kevin Ushey to the \code{S4} class handling to support both the currently released \CRANpkg{Rcpp} as well as the currently pending next version. } } \section{Changes in RProtoBuf version 0.3.2 (2013-12-15)}{ \itemize{ \item Fixed a bug that erroneously prevented users from setting raw byte fields in protocol buffers under certain circumstances. \item Give a user friendly error message when seting an extension to a message of the wrong type instead of causing a C++ check failure that terminates the Rsession. \item Change object table lookup slightly to allow users to use the \code{<<-} operator in code using \pkg{RProtoBuf} without hitting a \code{stop()} error in the lookup routine. \item Add missing \code{enum_type} method and improve show method for EnumValueDescriptors. \item Improve documentation and tests for all of the above. \item Rewrote \code{tests/} script calling \CRANpkg{RUnit} tests } } \section{Changes in RProtoBuf version 0.3.1 (2013-09-13)}{ \itemize{ \item Added support for setting and getting 64-bit integer types as character strings of decimal integers to work around R's lack of native 64-bit integer types. \item Added better error handling, documentation, and tests to the extensions support (getExtension and setExtension). \item Add support to P for returning extension descriptors. \item Improved error messages to include field names when invalid fields are specified to protocol buffer messages with new, update, etc. \item Improved configure to detect and pass -std=c++0x if it is available to enable long long 64-bit integer support in Rcpp. \item Improved configure in the case when pkg-config is not available or does not know about the google protocol buffer includes. \item Replaced newly deprecated Rcpp macros with a simplified macro functionality to avoid warnings on the latest development version of Rcpp. } } \section{Changes in RProtoBuf version 0.3 (2013-07-13)}{ \itemize{ \item Added support for Protocol Buffer extensions through the new getExtension and setExtension methods for Message objects, and added top-level extensions to the descriptor pool. \item Added more user-friendly \code{show()} methods for Messages, Descriptors, and other RProtoBuf objects. A common source of confusion on the mailing lists is to confuse Messages and Descriptors. The new \code{show()} methods succinctly display more information about e.g. the number of set fields in a message to make it a little clearer to users what type of object they are working with. \item Added has method for EnumDescriptor objects to test existance of a named constant in an enumeration, and fix a bug in the length method for these objects. \item Added a number method for EnumValueDescriptor objects to return the number of a named enumeration constant directly. \item Improved documentation and unit tests. } } \section{Changes in RProtoBuf version 0.2.6 (2012-10-04)}{ \itemize{ \item Applied several more patches by Murray to \itemize{ \item correct '_' and '__' mismatches in wrapper calls \item update a few manual pages for style, and add examples \item fix a bug where NAs were silently treated as TRUE for logical/bool types \item fix a bug that caused crashes when adding vectors to optional fields \item fix bugs in readASCII that returned empty protocol buffers when the file or connection could not be opened \item distinguish between non-existant and not-set fieldswith has() by returning NULL in the former case. \item fix a bug that caused non-deterministic behavior when setting a repeated message field in a protobuf to a single Message. \item add unit tests for all of the above. } \item Added Murray to Authors: field in DESCRIPTION \item Removed old and unconvincing example on RProtoBuf for storage and serialization in an imagined HighFrequencyFinance context } } \section{Changes in RProtoBuf version 0.2.5 (2012-08-08)}{ \itemize{ \item Applied patches by Murray to \itemize{ \item correctly deal with nested Protocol Buffer definitions, and also add new unit test for this \item test a a protocol buffer for missing required fields before serializing it, also add a unit test \item add a small stylistic fix and examples to the 'add.Rd' manual page } \item Moved inst/doc/ to vignettes/ per newer CRAN Policy } } \section{Changes in RProtoBuf version 0.2.4 (2012-05-15)}{ \itemize{ \item Applied several patches kindly supplied by Murray Stokely to \itemize{ \item properly work with repeated strings \item correct C++ function naming in a few instances \item add an example of ascii export/import of messages } \item Suppport g++-4.7 and stricter #include file checking by adding unistd \item Made small improvements to the startup code } } \section{Changes in RProtoBuf version 0.2.3 (2011-04-12)}{ \itemize{ \item Protect UINT64 and INT64 with '#ifdef RCPP_HAS_LONG_LONG' which itself is valid with either g++ <= 4.4, or newer versions if the -std=c++0x is used \item The documentation Makefile now uses the $R_HOME environment variable \item The documentation Makefile no longer calls clean in the all target } } \section{Changes in RProtoBuf version 0.2.2 (2011-01-11)}{ \itemize{ \item Applied two patches by Murray Stokely which \itemize{ \item correct a typo preventing some functions from being called, \item add bounds checking in call to google protobuf library, \item add a new name method \item add a tiny unit test for the above \item add more graceful error handling \item add support for import patterns other than .proto$, \item add simple reading file that does not exist (exception) test \item add simple repeated field unit test } } } \section{Changes in RProtoBuf version 0.2.1 (2010-10-18)}{ \itemize{ \item Support for raw bytes added thanks to a patch by Koert Kuipers } } \section{Changes in RProtoBuf version 0.2.0 (2010-09-10)}{ \itemize{ \item Second release with numerous internal changes made possible by changes in Rcpp } } \section{Changes in RProtoBuf version 0.1-0 (2010-02-01)}{ \itemize{ \item Initial CRAN release } } RProtoBuf/cleanup0000755000176200001440000000074514552747062013533 0ustar liggesusers#!/bin/sh rm -f config.* src/Makedeps src/Makevars \ src/addressbook.pb.cc src/addressbook.pb.h \ src/protobufrpc.pb.cc src/protobufrpc.pb.h \ src/*.o src/*.d src/*.a src/*.dll src/*.so src/*.rc */*~ *~ \ src/symbols.rds \ vignettes/RProtoBuf*.aux vignettes/RProtoBuf*.log \ vignettes/RProtoBuf*.out vignettes/RProtoBuf*.toc \ vignettes/RProtoBuf*.tex vignettes/RProtoBuf*.pdf \ vignettes/pinp.cls rm -rf inst/doc/auto autom4te.cache RProtoBuf.Rcheck RProtoBuf/configure0000755000176200001440000050167514552747062014075 0ustar liggesusers#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for RProtoBuf 0.4.22. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 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 as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac 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 printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="as_nop=: if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else $as_nop as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and edd@debian.org $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$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 || printf "%s\n" 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" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error 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 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # 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 as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # 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" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # 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 } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' 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 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # 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'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/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= # Identity of this package. PACKAGE_NAME='RProtoBuf' PACKAGE_TARNAME='rprotobuf' PACKAGE_VERSION='0.4.22' PACKAGE_STRING='RProtoBuf 0.4.22' PACKAGE_BUGREPORT='edd@debian.org' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_STDIO_H # include #endif #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_STRING_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_cxx_list= ac_subst_vars='LTLIBOBJS LIBOBJS PKG_LIBS PKG_CPPFLAGS R PROTOC PKGCONFIG ac_ct_CC CFLAGS CC CXXCPP OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC CXXCPP CC CFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # 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' runstatedir='${localstatedir}/run' 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= ;; *) ac_optarg=yes ;; esac 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_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=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_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$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 ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=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 ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$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'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. 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 runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" 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 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 .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # 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 -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | 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 .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" 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 RProtoBuf 0.4.22 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] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --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/rprotobuf] --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 RProtoBuf 0.4.22:";; esac cat <<\_ACEOF Some influential environment variables: CXX C++ compiler command CXXFLAGS 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 (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXXCPP C++ preprocessor CC C compiler command CFLAGS C compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _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" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && 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=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$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 configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. 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 printf "%s\n" "$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 RProtoBuf configure 0.4.22 generated by GNU Autoconf 2.71 Copyright (C) 2021 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 ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES # --------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_cxx_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_header_compile # ac_fn_cxx_try_run LINENO # ------------------------ # Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that # executables *can* be run. ac_fn_cxx_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: program exited with status $ac_status" >&5 printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_run ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac 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 RProtoBuf $as_me 0.4.22, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "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=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append 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 as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset 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=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" 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_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; 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 printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$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'; as_fn_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 printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } 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. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Test code for whether the C++ compiler supports C++98 (global declarations) ac_cxx_conftest_cxx98_globals=' // Does the compiler advertise C++98 conformance? #if !defined __cplusplus || __cplusplus < 199711L # error "Compiler does not advertise C++98 conformance" #endif // These inclusions are to reject old compilers that // lack the unsuffixed header files. #include #include // and are *not* freestanding headers in C++98. extern void assert (int); namespace std { extern int strcmp (const char *, const char *); } // Namespaces, exceptions, and templates were all added after "C++ 2.0". using std::exception; using std::strcmp; namespace { void test_exception_syntax() { try { throw "test"; } catch (const char *s) { // Extra parentheses suppress a warning when building autoconf itself, // due to lint rules shared with more typical C programs. assert (!(strcmp) (s, "test")); } } template struct test_template { T const val; explicit test_template(T t) : val(t) {} template T add(U u) { return static_cast(u) + val; } }; } // anonymous namespace ' # Test code for whether the C++ compiler supports C++98 (body of main) ac_cxx_conftest_cxx98_main=' assert (argc); assert (! argv[0]); { test_exception_syntax (); test_template tt (2.0); assert (tt.add (4) == 6.0); assert (true && !false); } ' # Test code for whether the C++ compiler supports C++11 (global declarations) ac_cxx_conftest_cxx11_globals=' // Does the compiler advertise C++ 2011 conformance? #if !defined __cplusplus || __cplusplus < 201103L # error "Compiler does not advertise C++11 conformance" #endif namespace cxx11test { constexpr int get_val() { return 20; } struct testinit { int i; double d; }; class delegate { public: delegate(int n) : n(n) {} delegate(): delegate(2354) {} virtual int getval() { return this->n; }; protected: int n; }; class overridden : public delegate { public: overridden(int n): delegate(n) {} virtual int getval() override final { return this->n * 2; } }; class nocopy { public: nocopy(int i): i(i) {} nocopy() = default; nocopy(const nocopy&) = delete; nocopy & operator=(const nocopy&) = delete; private: int i; }; // for testing lambda expressions template Ret eval(Fn f, Ret v) { return f(v); } // for testing variadic templates and trailing return types template auto sum(V first) -> V { return first; } template auto sum(V first, Args... rest) -> V { return first + sum(rest...); } } ' # Test code for whether the C++ compiler supports C++11 (body of main) ac_cxx_conftest_cxx11_main=' { // Test auto and decltype auto a1 = 6538; auto a2 = 48573953.4; auto a3 = "String literal"; int total = 0; for (auto i = a3; *i; ++i) { total += *i; } decltype(a2) a4 = 34895.034; } { // Test constexpr short sa[cxx11test::get_val()] = { 0 }; } { // Test initializer lists cxx11test::testinit il = { 4323, 435234.23544 }; } { // Test range-based for int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; for (auto &x : array) { x += 23; } } { // Test lambda expressions using cxx11test::eval; assert (eval ([](int x) { return x*2; }, 21) == 42); double d = 2.0; assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); assert (d == 5.0); assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); assert (d == 5.0); } { // Test use of variadic templates using cxx11test::sum; auto a = sum(1); auto b = sum(1, 2); auto c = sum(1.0, 2.0, 3.0); } { // Test constructor delegation cxx11test::delegate d1; cxx11test::delegate d2(); cxx11test::delegate d3(45); } { // Test override and final cxx11test::overridden o1(55464); } { // Test nullptr char *c = nullptr; } { // Test template brackets test_template<::test_template> v(test_template(12)); } { // Unicode literals char const *utf8 = u8"UTF-8 string \u2500"; char16_t const *utf16 = u"UTF-8 string \u2500"; char32_t const *utf32 = U"UTF-32 string \u2500"; } ' # Test code for whether the C compiler supports C++11 (complete). ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals} ${ac_cxx_conftest_cxx11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_cxx_conftest_cxx98_main} ${ac_cxx_conftest_cxx11_main} return ok; } " # Test code for whether the C compiler supports C++98 (complete). ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals} int main (int argc, char **argv) { int ok = 0; ${ac_cxx_conftest_cxx98_main} return ok; } " # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' /* Does the compiler advertise C89 conformance? Do not test the value of __STDC__, because some compilers set it to 0 while being otherwise adequately conformant. */ #if !defined __STDC__ # error "Compiler does not advertise C89 conformance" #endif #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*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 do not provoke an error unfortunately, instead are silently treated as an "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 is necessary to write \x00 == 0 to get something that is 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 **, int *(*)(struct buf *, struct stat *, int), int, int);' # Test code for whether the C compiler supports C89 (body of main). ac_c_conftest_c89_main=' ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); ' # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' // Does the compiler advertise C99 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare // FILE and stderr. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK #error "your preprocessor is broken" #endif #if BIG_OK #else #error "your preprocessor is broken" #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case '\''s'\'': // string str = va_arg (args_copy, const char *); break; case '\''d'\'': // int number = va_arg (args_copy, int); break; case '\''f'\'': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } ' # Test code for whether the C compiler supports C99 (body of main). ac_c_conftest_c99_main=' // Check bool. _Bool success = false; success |= (argc != 0); // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[0] = argv[0][0]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' || dynamic_array[ni.number - 1] != 543); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' // Does the compiler advertise C11 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ' # Test code for whether the C compiler supports C11 (body of main). ac_c_conftest_c11_main=' _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); v1.i = 2; v1.w.k = 5; ok |= v1.i != 5; ' # Test code for whether the C compiler supports C11 (complete). ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} ${ac_c_conftest_c11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} ${ac_c_conftest_c11_main} return ok; } " # Test code for whether the C compiler supports C99 (complete). ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} return ok; } " # Test code for whether the C compiler supports C89 (complete). ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} return ok; } " as_fn_append ac_header_cxx_list " stdio.h stdio_h HAVE_STDIO_H" as_fn_append ac_header_cxx_list " stdlib.h stdlib_h HAVE_STDLIB_H" as_fn_append ac_header_cxx_list " string.h string_h HAVE_STRING_H" as_fn_append ac_header_cxx_list " inttypes.h inttypes_h HAVE_INTTYPES_H" as_fn_append ac_header_cxx_list " stdint.h stdint_h HAVE_STDINT_H" as_fn_append ac_header_cxx_list " strings.h strings_h HAVE_STRINGS_H" as_fn_append ac_header_cxx_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" as_fn_append ac_header_cxx_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" as_fn_append ac_header_cxx_list " unistd.h unistd_h HAVE_UNISTD_H" # 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,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 printf "%s\n" "$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 # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$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. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## 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 # Ensure C++ is set up as R expects : ${R_HOME=`R RHOME`} if test -z "${R_HOME}"; then as_fn_error $? "Could not determine R_HOME." "$LINENO" 5 fi CXX=`"${R_HOME}/bin/R" CMD config CXX` CXXFLAGS=`"${R_HOME}/bin/R" CMD config CXXFLAGS` ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ 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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CXX+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 printf "%s\n" "$CXX" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CXX+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 printf "%s\n" "$ac_ct_CXX" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM 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. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 printf %s "checking whether the C++ compiler works... " >&6; } ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 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 | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test ${ac_cv_exeext+y} && 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 $as_nop ac_file='' fi if test -z "$ac_file" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C++ compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 printf %s "checking for C++ compiler default output file name... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 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 | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; 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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 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 | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5 printf %s "checking whether the compiler supports GNU C++... " >&6; } if test ${ac_cv_cxx_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+y} ac_save_CXXFLAGS=$CXXFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 printf %s "checking whether $CXX accepts -g... " >&6; } if test ${ac_cv_prog_cxx_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_g=yes else $as_nop CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : else $as_nop ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } if test $ac_test_CXXFLAGS; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_prog_cxx_stdcxx=no if test x$ac_prog_cxx_stdcxx = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 printf %s "checking for $CXX option to enable C++11 features... " >&6; } if test ${ac_cv_prog_cxx_cxx11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cxx_cxx11=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_cxx_conftest_cxx11_program _ACEOF for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA do CXX="$ac_save_CXX $ac_arg" if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_cxx11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cxx_cxx11" != "xno" && break done rm -f conftest.$ac_ext CXX=$ac_save_CXX fi if test "x$ac_cv_prog_cxx_cxx11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cxx_cxx11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } CXX="$CXX $ac_cv_prog_cxx_cxx11" fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 ac_prog_cxx_stdcxx=cxx11 fi fi if test x$ac_prog_cxx_stdcxx = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 printf %s "checking for $CXX option to enable C++98 features... " >&6; } if test ${ac_cv_prog_cxx_cxx98+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cxx_cxx98=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_cxx_conftest_cxx98_program _ACEOF for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA do CXX="$ac_save_CXX $ac_arg" if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_cxx98=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cxx_cxx98" != "xno" && break done rm -f conftest.$ac_ext CXX=$ac_save_CXX fi if test "x$ac_cv_prog_cxx_cxx98" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cxx_cxx98" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } CXX="$CXX $ac_cv_prog_cxx_cxx98" fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 ac_prog_cxx_stdcxx=cxx98 fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 printf %s "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test ${ac_cv_prog_CXXCPP+y} then : printf %s "(cached) " >&6 else $as_nop # Double quotes because $CXX needs to be expanded for CXXCPP in "$CXX -E" cpp /lib/cpp do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 printf "%s\n" "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO" then : else $as_nop # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else $as_nop # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_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 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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" printf "%s\n" "$as_me:${as_lineno-$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" printf "%s\n" "$as_me:${as_lineno-$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" printf "%s\n" "$as_me:${as_lineno-$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$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" printf "%s\n" "$as_me:${as_lineno-$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "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:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" printf "%s\n" "$as_me:${as_lineno-$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" printf "%s\n" "$as_me:${as_lineno-$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; 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 ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } CC="$CC $ac_cv_prog_cc_c11" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } CC="$CC $ac_cv_prog_cc_c99" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _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" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } CC="$CC $ac_cv_prog_cc_c89" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ 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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CXX+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 printf "%s\n" "$CXX" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CXX+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 printf "%s\n" "$ac_ct_CXX" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5 printf %s "checking whether the compiler supports GNU C++... " >&6; } if test ${ac_cv_cxx_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+y} ac_save_CXXFLAGS=$CXXFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 printf %s "checking whether $CXX accepts -g... " >&6; } if test ${ac_cv_prog_cxx_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_g=yes else $as_nop CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : else $as_nop ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } if test $ac_test_CXXFLAGS; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_prog_cxx_stdcxx=no if test x$ac_prog_cxx_stdcxx = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 printf %s "checking for $CXX option to enable C++11 features... " >&6; } if test ${ac_cv_prog_cxx_cxx11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cxx_cxx11=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_cxx_conftest_cxx11_program _ACEOF for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA do CXX="$ac_save_CXX $ac_arg" if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_cxx11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cxx_cxx11" != "xno" && break done rm -f conftest.$ac_ext CXX=$ac_save_CXX fi if test "x$ac_cv_prog_cxx_cxx11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cxx_cxx11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } CXX="$CXX $ac_cv_prog_cxx_cxx11" fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 ac_prog_cxx_stdcxx=cxx11 fi fi if test x$ac_prog_cxx_stdcxx = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 printf %s "checking for $CXX option to enable C++98 features... " >&6; } if test ${ac_cv_prog_cxx_cxx98+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cxx_cxx98=no ac_save_CXX=$CXX cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_cxx_conftest_cxx98_program _ACEOF for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA do CXX="$ac_save_CXX $ac_arg" if ac_fn_cxx_try_compile "$LINENO" then : ac_cv_prog_cxx_cxx98=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cxx_cxx98" != "xno" && break done rm -f conftest.$ac_ext CXX=$ac_save_CXX fi if test "x$ac_cv_prog_cxx_cxx98" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cxx_cxx98" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } CXX="$CXX $ac_cv_prog_cxx_cxx98" fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 ac_prog_cxx_stdcxx=cxx98 fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ## simpler alternative to test below: AC_PATH_PROG(PROTOC, protoc) # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_PKGCONFIG+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$PKGCONFIG"; then ac_cv_prog_PKGCONFIG="$PKGCONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_PKGCONFIG="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PKGCONFIG=$ac_cv_prog_PKGCONFIG if test -n "$PKGCONFIG"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 printf "%s\n" "$PKGCONFIG" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ## use pkg-config for ProtoBuf settings ## if test x"${PKGCONFIG}" == x"yes"; then if pkg-config --exists protobuf; then protobuf_cxxflags=`pkg-config --cflags protobuf` protobuf_libs=`pkg-config --libs protobuf` else protobuf_cxxflags="" protobuf_libs="-lprotobuf" fi else # Add a reasonable default of -lprotobuf if we don't have pkg-config protobuf_cxxflags="" protobuf_libs="-lprotobuf" fi ## And make sure these flags are used for the tests below. CPPFLAGS="${protobuf_cxxflags} ${CPPFLAGS}" CXXFLAGS="${protobuf_cxxflags} ${CXXFLAGS}" ## look for protoc, the ProtoBuf compiler # Extract the first word of "protoc", so it can be a program name with args. set dummy protoc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_PROTOC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$PROTOC"; then ac_cv_prog_PROTOC="$PROTOC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_PROTOC="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PROTOC=$ac_cv_prog_PROTOC if test -n "$PROTOC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROTOC" >&5 printf "%s\n" "$PROTOC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test x"${PROTOC}" == x"no" ; then echo " Your installation does not appear to have protoc installed. Please make sure that you have a working and complete ProtoBuf installation. " exit 1 fi ## look for protobuf headers -- now use pkg-config which even does minimum version ## ## next two lines break witha autoconf 2.65 :-/ #PROTOBUF_VERSION="2.2.0" #PKG_CHECK_MODULES(ProtoBuf, protobuf >= 2.2.0, , AC_MSG_ERROR(Protobuf version 2.2.0 required)) ## check for header and ability to link ## first for headers Debian has in libprotobuf-dev protobuf_common_header=google/protobuf/stubs/common.h protobuf_common_header_cache_var=`printf "%s\n" "ac_cv_header_$protobuf_common_header" | $as_tr_sh` ac_header= ac_cache= for ac_item in $ac_header_cxx_list do if test $ac_cache; then ac_fn_cxx_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then printf "%s\n" "#define $ac_item 1" >> confdefs.h fi ac_header= ac_cache= elif test $ac_header; then ac_cache=$ac_item else ac_header=$ac_item fi done if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes then : printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi as_ac_Header=`printf "%s\n" "ac_cv_header_$protobuf_common_header" | $as_tr_sh` ac_fn_cxx_check_header_compile "$LINENO" "$protobuf_common_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : else $as_nop # If it didn't work, try adding /usr/local directly then trying again { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Protobuf headers not found with default CXXFLAGS and CPPFLAGS, manually trying /usr/local/include" >&5 printf "%s\n" "$as_me: WARNING: Protobuf headers not found with default CXXFLAGS and CPPFLAGS, manually trying /usr/local/include" >&2;} CPPFLAGS="${protobuf_cxxflags} ${CPPFLAGS} -I/usr/local/include" CXXFLAGS="${protobuf_cxxflags} ${CXXFLAGS} -I/usr/local/include -L/usr/local/lib" # unset the cache variable for this particular header # check, so we can check again with different defaults # specified. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Unsetting $protobuf_common_header_cache_var" >&5 printf "%s\n" "$as_me: WARNING: Unsetting $protobuf_common_header_cache_var" >&2;} { eval $protobuf_common_header_cache_var=; unset $protobuf_common_header_cache_var;} as_ac_Header=`printf "%s\n" "ac_cv_header_$protobuf_common_header" | $as_tr_sh` ac_fn_cxx_check_header_compile "$LINENO" "$protobuf_common_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : else $as_nop as_fn_error $? "ERROR: ProtoBuf headers required; use '-Iincludedir' in CXXFLAGS for unusual locations." "$LINENO" 5 fi fi ## second for headers Debian has in libprotoc-dev ac_fn_cxx_check_header_compile "$LINENO" "google/protobuf/compiler/code_generator.h" "ac_cv_header_google_protobuf_compiler_code_generator_h" "$ac_includes_default" if test "x$ac_cv_header_google_protobuf_compiler_code_generator_h" = xyes then : else $as_nop as_fn_error $? "ERROR: ProtoBuf compiler headers required; use '-Iincludedir' in CXXFLAGS for unusual locations." "$LINENO" 5 fi ## third check the lib itself #pb_savedlibs="$LIBS" # LIBS="$LIBS -lprotoc -lprotobuf -lpthread" LIBS="$LIBS $protobuf_libs" ## also check for minimum version { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ProtoBuf version >= 2.2.0" >&5 printf %s "checking if ProtoBuf version >= 2.2.0... " >&6; } if test "$cross_compiling" = yes then : pb_version_ok=yes else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main() { if (GOOGLE_PROTOBUF_VERSION >= 2001000) { exit (0); } else { exit(1); } } _ACEOF if ac_fn_cxx_try_run "$LINENO" then : pb_version_ok=yes else $as_nop pb_version_ok=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test x"${pb_version_ok}" == x"no"; then as_fn_error $? "Need ProtoBuf version >= 2.2.0" "$LINENO" 5 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi # Extract the first word of "R", so it can be a program name with args. set dummy R; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_R+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$R"; then ac_cv_prog_R="$R" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_R="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi R=$ac_cv_prog_R if test -n "$R"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $R" >&5 printf "%s\n" "$R" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ## With thanks to Kurt (now set above) #: ${R_HOME=`R RHOME`} #if test -z "${R_HOME}"; then # AC_MSG_ERROR([Could not determine R_HOME.]) #fi #R_CXXFLAGS=`"${R_HOME}/bin/R" CMD config CXXFLAGS` #CXXFLAGS="${CXXFLAGS} ${R_CXXFLAGS}" ## now use all these PKG_CPPFLAGS="${PKG_CPPFLAGS} ${CXXFLAGS} ${protobuf_cxxflags}" PKG_LIBS="${PKG_LIBS} ${protobuf_libs}" ac_config_files="$ac_config_files src/Makevars" 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_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; 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+y} || &/ 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 if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$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=' :mline /\\$/{ N s,\\\n,, b mline } 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= U= 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=`printf "%s\n" "$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. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $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} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac 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 printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith 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 if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # 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 # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' 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 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$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 || printf "%s\n" 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" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # 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 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=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 RProtoBuf $as_me 0.4.22, which was generated by GNU Autoconf 2.71. 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 case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent 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 ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ RProtoBuf config.status 0.4.22 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 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' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. 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=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= 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 ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) printf "%s\n" "$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. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append 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 || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 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+y} || 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= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[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="$ac_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 || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append 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 '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 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 || printf "%s\n" 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"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$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 # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # 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= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 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 || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;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 $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$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 "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # 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 || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo " ${PACKAGE_NAME} $PACKAGE_VERSION ================ cflags: ${PKG_CPPFLAGS} libs: ${PKG_LIBS} "