RProtoBuf/0000755000176200001440000000000014741532065012143 5ustar liggesusersRProtoBuf/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/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/.Rinstignore0000644000176200001440000000002212440004312014420 0ustar liggesusersinst/doc/Makefile RProtoBuf/MD50000644000176200001440000003071514741532065012461 0ustar liggesusers8983e4a7e7602a1a78249b48bb41fec8 *ChangeLog 670d164ea321ff333971384333ea58e5 *DESCRIPTION 62fb696527f6acb69d98f22921ab5ade *NAMESPACE 7ce98d8f838a0cd834a50c72c088a7c8 *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 918d8a6c857fc0202370153570332c10 *R/extensions.R 5477d8fce19f2652f9556e5dc748f48c *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 09c56f12a682601dc841d28fb56ee50f *R/wrapper_ServiceDescriptor.R 76ff7a641b87452283923433646f5e8f *R/wrapper_ZeroCopyInputStream.R 48246df8f2532ec2870973dab664f4b6 *R/zzz.R 0a7dddaf1478bf6737351c05852168f1 *README 9422e1f20f6491c3408cd7c47a233029 *README.md 9c2e29fe733b28fbd0058fe8f82a4c86 *TODO 4a5d8b89abfa30fc60c5dbd29832a20c *build/vignette.rds ecc5e657a5356f7305f5e693d252d8a0 *cleanup 803bc597b45219d8ceb532c5bbbc0572 *configure 00dec4af66bb37634d4582f74c42c8fa *configure.ac d41d8cd98f00b204e9800998ecf8427e *configure.win 38719099f12809ebe19a43b951474c6b *demo/00Index 6275f697db7b64510f10f6bbc95c0498 *demo/addressbook.R 81d0dda686db1c07b625f49ea321a0af *demo/io.R 9ed50fca39d7442e4baaf9d24a1b1663 *inst/CITATION 386d8024db90e1c3de8d7cdb3b8f34e7 *inst/NEWS.Rd 5485d1d9d1bfb19216aaef28bd8fcc89 *inst/THANKS 24b19e060fb00703e9eb9605acc5fc83 *inst/doc/RProtoBuf-intro.Rnw 3fa494efe3373f71a87e521b3e29d804 *inst/doc/RProtoBuf-intro.pdf d60d4b6e6889fd2750cf84d26c5df289 *inst/doc/RProtoBuf-paper.Rnw a1d7a4edbaab8a18b4d14eafc84e2357 *inst/doc/RProtoBuf-paper.pdf 81c6d4114d136b4a43668d834a444a8d *inst/doc/RProtoBuf-quickref.Rnw b72a832cd5f96b2830cf83308182cedf *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 68b65e84fd3f2de818c802b905b6713c *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 dd1b2ba5d6bef4a10b976086257ad4e9 *src/DescriptorPoolLookup.cpp f937c29352af9c5f559e4bcd4bed4d76 *src/DescriptorPoolLookup.h 7bad2c71289ce6840d839d5d0339b017 *src/Makevars.in 88e6d5ca0ccf601ba9b520d41fc04da3 *src/Makevars.ucrt 8b74abcd9f3cbe4214191b642228ec6d *src/Makevars.win f0a9025c80ecb4ecd7e78b56970df1a2 *src/RSourceTree.cpp ec2c0c626cdb19b9b1b2a3850a46da03 *src/RSourceTree.h f8d0251e4e9c272d0300366fc30174dc *src/RWarningErrorCollector.cpp 05b6f560703253279372cb71c6f14926 *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 2d8cb0a4d6a7a9bfc4cfed041e37e988 *src/init.c a81bea8fd0b5bec76fadf4c63628de2a *src/lookup.cpp e1e74eb41fa039322086a25ba8d7e05b *src/mutators.cpp dadabf6ade349bf76f983f317d4c0c0a *src/rprotobuf.cpp 7880016a0742896c2164dd6673746b17 *src/rprotobuf.h 77dcd57d1827ecc62b6cd8380314e910 *src/streams.cpp 61a9cf9d31a974cffc414370609a000d *src/wrapper_ArrayInputStream.cpp 4d6efb41f45428c4757c1d8cffad6035 *src/wrapper_ArrayOutputStream.cpp 84b902ef93934f79d5c5fbdee19101bb *src/wrapper_Descriptor.cpp 726d2b76051ca4a32e4fbcd1e7f7a844 *src/wrapper_EnumDescriptor.cpp 2e96205486af877e22dd4ded050d7f08 *src/wrapper_EnumValueDescriptor.cpp e2ccfa4f95218a8ef729d12958cb6cd5 *src/wrapper_FieldDescriptor.cpp 5a398bcb6ab67e6506927b01231118e5 *src/wrapper_FileDescriptor.cpp f747cb031a743e725a864ad33e9d9f67 *src/wrapper_Message.cpp 1de57faa9489d840d3fb1cba36dfd897 *src/wrapper_MethodDescriptor.cpp 9a472d60c8b3c70382fde0e36f3b6d34 *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/configure.win0000644000176200001440000000000012440004312014610 0ustar liggesusersRProtoBuf/R/0000755000176200001440000000000014625614152012343 5ustar liggesusersRProtoBuf/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/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/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/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/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/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/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/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/unit_tests.R0000644000176200001440000000017713057365267014704 0ustar liggesusers run_unit_tests <- function(){ script <- system.file( "unitTests", "runTests.R", package = "RProtoBuf" ) source( script ) } RProtoBuf/R/field_count.R0000644000176200001440000000452114625614152014763 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 ){ stop( "No routine for finding enum type of a Descriptor by name. ") } }) RProtoBuf/R/extensions.R0000644000176200001440000000363214625614152014671 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(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(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("Field", name(field), " does not match message type ", "(", containing_type(field)@type, "!=", object@type, ")") } .Call(getExtension_cpp, object@pointer, field) } ) 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/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/00classes.R0000644000176200001440000004622514625614152014274 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, ... ), stop( "No '", name, "' method for ServiceDescriptor objects is implemented." ) ) } ) 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 ) ){ stop( "No '", name, "' method for ServiceDescriptor objects is implemented." ) } 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/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/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/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/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_ServiceDescriptor.R0000644000176200001440000000136314625614152017670 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 ){ stop( "No routine for getting a method from a ServiceDescriptor by index." ) } if( has_name ){ stop( "No routine for getting a method from a ServiceDescriptor by name." ) } } ) 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/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/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/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/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_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/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/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/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/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/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/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/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/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/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/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/cleanup0000755000176200001440000000074514741522256013527 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/demo/0000755000176200001440000000000012440004312013046 5ustar liggesusersRProtoBuf/demo/00Index0000644000176200001440000000015312440004312014177 0ustar liggesusersaddressbook Demonstration of RProtoBuf functionality io Input/Output handling of protocol buffer messages 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/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/vignettes/0000755000176200001440000000000014741522255014153 5ustar liggesusersRProtoBuf/vignettes/pdf/0000755000176200001440000000000013617276206014727 5ustar liggesusersRProtoBuf/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/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-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/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/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/vignettes/inactive/0000755000176200001440000000000013617260253015753 5ustar liggesusersRProtoBuf/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/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/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/src/0000755000176200001440000000000014741522255012732 5ustar liggesusersRProtoBuf/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/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/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/rprotobuf.h0000644000176200001440000002247714714652724015146 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 #include // 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, std::string_view); 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/RWarningErrorCollector.cpp0000644000176200001440000000150014641045462020041 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 { #if GOOGLE_PROTOBUF_VERSION < 5026000 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()); } #else void RWarningErrorCollector::RecordError(absl::string_view filename, int line, int column, absl::string_view message) { Rprintf("%s:%d:%d:%s\n", std::string(filename).c_str(), line + 1, column + 1, std::string(message).c_str()); } #endif } // namespace rprotobuf 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/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/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/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/wrapper_FieldDescriptor.cpp0000644000176200001440000000726414714652724020276 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 std::string(full ? d->full_name() : d->name()); } #undef RPB_HANDLE_CASE #undef METHOD } // namespace rprotobuf RProtoBuf/src/RWarningErrorCollector.h0000644000176200001440000000105614641045462017514 0ustar liggesusers#include /* For string */ #include "rprotobuf.h" namespace rprotobuf { class RWarningErrorCollector : public GPB::compiler::MultiFileErrorCollector { public: // implements ErrorCollector --------------------------------------- #if GOOGLE_PROTOBUF_VERSION < 5026000 void AddError(const std::string& filename, int line, int column, const std::string& message); #else void RecordError(absl::string_view filename, int line, int column, absl::string_view message); #endif }; } // namespace rprotobuf RProtoBuf/src/DescriptorPoolLookup.h0000644000176200001440000000177314714652724017262 0ustar liggesusers#ifndef RPROTOBUF_DescriptorPoolLookup_H #define RPROTOBUF_DescriptorPoolLookup_H #include /* For less */ #include /* For set */ #include /* For string */ #include /* For string_view */ #include "RSourceTree.h" #include "RWarningErrorCollector.h" namespace rprotobuf { class DescriptorPoolLookup { public: static void add(std::string_view element); static bool contains(std::string_view 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/wrapper_EnumValueDescriptor.cpp0000644000176200001440000000344714714652724021153 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 std::string(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/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/DescriptorPoolLookup.cpp0000644000176200001440000000762114714652724017613 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(std::string_view element) { elements.emplace(element); } bool DescriptorPoolLookup::contains(std::string_view 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/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/wrapper_Message.cpp0000644000176200001440000012137414714652724016577 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] = std::string(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] = std::string(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; #if GOOGLE_PROTOBUF_VERSION < 5026000 opts.always_print_primitive_fields = always_print_primitive_fields; #endif 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/init.c0000644000176200001440000006053014625614152014044 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__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__name(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__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__name", (DL_FUNC) &ServiceDescriptor__name, 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/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/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/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/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.cpp0000644000176200001440000002061614714652724015472 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, std::string_view 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"))); std::string_view type = message->GetDescriptor()->full_name(); RPB_DEBUG_END("isMessage") if (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/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/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/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/wrapper_MethodDescriptor.cpp0000644000176200001440000000367014714652724020470 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 std::string(full ? d->full_name() : d->name()); } #undef METHOD } // 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/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/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/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/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/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/mutators.cpp0000644000176200001440000012532614714652724015332 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"); } std::string_view target = field_desc->message_type()->full_name(); 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 ('" + std::string(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())) { std::string message = "Not a message of type '" + std::string(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"))); std::string_view type = mess->GetDescriptor()->full_name(); std::string_view target = field_desc->message_type()->full_name(); if (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/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/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_ServiceDescriptor.cpp0000644000176200001440000000644214714652724020650 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] = std::string(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] = std::string(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 std::string(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/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/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/wrapper_EnumDescriptor.cpp0000644000176200001440000001050214714652724020144 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] = std::string(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] = std::string(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 std::string(full ? d->full_name() : d->name()); } #undef METHOD } // namespace rprotobuf RProtoBuf/src/wrapper_FileDescriptor.cpp0000644000176200001440000000551414714652724020126 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] = std::string(desc->message_type(i)->name()); i++; j++; } i = 0; while (i < nenums) { res[j] = std::string(desc->enum_type(i)->name()); i++; j++; } i = 0; while (i < nserv) { res[j] = std::string(desc->service(i)->name()); i++; j++; } i = 0; while (i < nexts) { res[j] = std::string(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] = std::string(desc->message_type(i)->name()); } for (int i = 0; i < nenums; count++, i++) { res[count] = S4_EnumDescriptor(desc->enum_type(i)); names[count] = std::string(desc->enum_type(i)->name()); } for (int i = 0; i < nserv; count++, i++) { res[count] = S4_ServiceDescriptor(desc->service(i)); names[count] = std::string(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] = std::string(desc->extension(i)->full_name()); } res.names() = names; return res; } RPB_FUNCTION_1(std::string, METHOD(name), Rcpp::XPtr desc) { return std::string(desc->name()); } #undef METHOD } // namespace rprotobuf RProtoBuf/src/wrapper_Descriptor.cpp0000644000176200001440000002545014714652724017327 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] = std::string(desc->field(i)->name()); } for (int i = 0; i < ntypes; i++, j++) { res[j] = std::string(desc->nested_type(i)->name()); } for (int i = 0; i < nenums; i++, j++) { res[j] = std::string(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] = std::string(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] = std::string(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] = std::string(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 std::string(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/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/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/ChangeLog0000644000176200001440000032233214741522167013724 0ustar liggesusers2025-01-14 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Release 0.4.23 * configure.ac: Idem * configure: Idem * inst/NEWS.Rd: Update one URL 2025-01-10 Dirk Eddelbuettel * configure.ac: Correct three possible bashisms * configure: Regenerated 2024-11-12 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date 2024-11-11 Lev Kandel * src/DescriptorPoolLookup.cpp: Compatibility with protobuf >= 6.30.0 * src/DescriptorPoolLookup.h: Idem * src/mutators.cpp: Idem * src/rprotobuf.cpp: Idem * src/rprotobuf.h: Idem * src/wrapper_Descriptor.cpp: Idem * src/wrapper_EnumDescriptor.cpp: Idem * src/wrapper_EnumValueDescriptor.cpp: Idem * src/wrapper_FieldDescriptor.cpp: Idem * src/wrapper_FileDescriptor.cpp: Idem * src/wrapper_Message.cpp: Idem * src/wrapper_MethodDescriptor.cpp: Idem * src/wrapper_ServiceDescriptor.cpp: Idem 2024-11-07 Dirk Eddelbuettel * DESCRIPTION (Authors@R): Added 2024-07-03 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date 2024-07-02 Matteo Gianella * src/RWarningErrorCollector.h: Code update also in case of protobuf version >= 26.x * src/RWarningErrorCollector.cpp: Idem * src/wrapper_Message: Idem 2024-05-29 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date 2024-05-28 Michael Chirico * R/extensions.R: Build error strings with stop(), avoiding paste() * src/init.c: Remove placeholders for unimplemented methods * R/00classes.R: Idem * R/field_count.R: Idem * R/wrapper_ServiceDescriptor.R: Idem 2024-05-24 Dirk Eddelbuettel * README.md: Use tinyverse.netlify.app for dependency badge 2024-04-23 Dirk Eddelbuettel * .github/workflows/ci.yaml (jobs): Update to actions/checkout@v4, add r-ci-setup actions 2024-03-20 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date 2024-03-20 Xufei Tan * inst/tinytest/test_addressbook.R: use `toTextFormat()` in tests 2024-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/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/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/configure.ac0000644000176200001440000001057514741520044014433 0ustar liggesusers ## RProtoBuf configure.ac ## ## Copyright (C) 2009 - 2025 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.23],[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/inst/0000755000176200001440000000000014741522255013120 5ustar liggesusersRProtoBuf/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/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/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/doc/0000755000176200001440000000000014741522255013665 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-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/doc/RProtoBuf-paper.pdf0000644000176200001440000063530014741522255017356 0ustar liggesusers%PDF-1.5 %ż÷˘ŝ 1 0 obj << /Type /ObjStm /Length 4283 /Filter /FlateDecode /N 84 /First 694 >> stream xœµ\YsÛ8ĥ~żżo“İ„ħߚê*/ħ8vlËIœLġƒ"ÓĥşÉ-É=ÉüúùÀ}‘)Ç] MĴß9“°˜ Ĥ8“Œ[˜°1ÓL É SZ2Ë\˘˜ceÑêg‹[öëŻŝ‘½e:^Oóŭñ:e/ö˙?‰!$œK°AH÷2Ö˙ˆü’µ[,ًËô —'‹ëǞ8[.&)9<{ÇïĞġj²œŜŻÁôWħxĊ)ĉ°x˜ŻIà£éġŠŭ*GNÂI„w'ŭÉĝ“ W&ĵš W.´äqœEvĥáÌCkˆQvvá,²ël$.³çeÖ^†1!ŝü[NÊ@Ŭâ%ĉët^AħCwàĈġtĵğĝŽ˘•SŻ VòWÖQ'g%Èıs‘Ë :¤Ŝ^_ŽÖDá$ĵDt° eAÛÉ(]£çèl˙óIżŻÑċŻżV§–ÏìŭÙ yEÙqVğ;^ïèüóÙŜë×˙Ü;مM‹^Ï'‹ëéü–EŸĤóùjZŜ8˜.Wë½ğñ’”ÜOl? Ĵ…€ZGïĈYRŭhôu퇧Is ~š^ŻïˆëBO¨ü§âòo×Ïp2iDl­T¸ŭĥ‚벸•ñ%ⷆ2Úġô)Ħ9 ½I)Ĥ@Ä*›E­ĞP²Bĝ6T§ü dBF߅; ׿ċ„ŜYMˆŬ­Ħ„÷oÒéíŬÓ1¸Ħˆ/˘Ŭh/z½‰Ž˘·Ñûè,şˆ.£Ñ8úM˘ë(n˘HItŬŭ¸żKçÑ4ú=šEߢy´ˆî£e´ŠVÓïÑ:zˆŝ‚ [h̗ Mt0ßÈŝ{ÂïÉ| {èĞÉŞÜ~ ĠÓY cc*Òw:ŝ–6äĈd:ٙßÎR4ŒNĤĞDijÔÓ%­ÓoÉ`W™^—è*#„½Z"yµż;:~Oƒ]Á•2i\6­B9ouÍĤ(BX†‰˘†oÑŜŝ8azDeÈO„ñ§³fPûħ#o›˙,œ–q¸oQoݘ…° ƒ„z)x69™ĜÛG+IĈ}3áü‹K˞i*^—8ĉρB ?şöŻA×pÑT&˘ĝvY=$ŸZÈĵ-iÂtö‡—Ĵš. MĜñş°m8Ìôá]t’éĨ˘“Ċl1ÇßoßĈ^C|g¤'ôoù…ÚTçLuĉÓy ŭYàï}tŸ.§‹ë Jé_hj}·LÓhŭŸİVôŸè{ô#úoŠÉş†GĝZ#Ú*&›*֐úĦ:†qşuĴVoŽ?½£†jìKZ*–´TŒT1Ó³áïŸÒĵqTĊvÇ|wÉYŝšċ•Uy#ışóvtŭ¨3VġĜÎ8TjŠèĴÁVĠdk‹êKâÛi:lçÎñç£Ğ wQ°‡˜NÙâĞÈWe3݈6TĵàE/Ħ%^ÇûŻO?\a´Ë£::ÉÁp‰NdĞ넷„jh`gífKĵ?AÓĈfW’ĜQ\ĤĦòօE^Oħ”FvaĤĜÛ0İcäeëâšÊùuBĜ‹rĤRržÙ? şI‹Ò˜Êçş4"B Ó-13ŞiÛ>UTU\ 0e@á Bûħž§€ŻżġB\úġ#TAÎç1dau=Hà:í~UO8ߌ)Poì–7ġ¤ĊĦš"úĉfXħ³˙îòè-y™:÷mžgÜ•&OÊv[Ġm~ÉF@Ò5~Ŭ!/K;fâĵz—eü,é ËħğG/Ħ 1βĉŬÙéM×Ûü·YnԓóÑŜ´bôK“ß]šĉ>T:':Œ½MšBÜŞĦ",û KKjwßĵ]zlt4Ĝh™6p-à2xq¤Žeé÷$8ĥÇ:‚} n}[`Öİwëúâ§D[DJ2Tmˆj[KM6 Ĉ¨êIġ§ÓŬτ!.3]t0]´Ĵ–jµ|n=ü³Ryïg²çížĜĤğE<İç<ÂhY᝿rħIjöOSÚsS˘lsšlĵ†ü:žü’I_—IÈ?ùRÈ?Qñt]ÜF9T4 ëġb6/Ë[žYÛnu£'™FI4dŝYäÌĥʌ=ÌŻÓċj²XĤ›’dpàı!P,Y¨U´|ÔJÛÖ IC5›†`ü½ÂÍşYş—eF7 2)0ûP<ż%†;x²rBğw²2y÷ĵĴ™È‡îÇü0?\.î™ÈàñóDŞ’Œb*{ĠF€ÎŜŭ=ĴiN˜bW,pÄÖËÜĦr9žŻĵN~äMôó¤ċ€6yÇ[ôû~ i%ËŭâèŻ?].ıHo§Ğġò{ħs½ĝšŝB6úŝ~–~#Ċîált~ööŸûéï#Œ˜Kúġ’ğ Ĥü›vGe[FJo‘ùòM Pdıĝ0‡Â]§`h&Ï0d{Gû£+HĝÑüfÁ²­,t÷rqx´2/'€ BdÒŜ!3 .f‡Çİ M%iĝ*ĵdB+ĉ| Ħî`ıûÚ¸żĤû‚ĥœİí蠕p?1”0Y;ċŻiż-ì)Gû­Ú.C^5­y£_ß6FÏQzíà)7m—R†dğiè9§0’ÈĦċ6éÒևúÂXI^ S­”ĥu{Ċch°o ûg+F+Á­ [³†+ĤD%›)9$Ò ĤcÚ·Ä­+t Şr¤\UB×Ŝt$‘E x2†÷ñÖâUœ'͋ÒoUC=•ö",kò,jòœmÒꁷ°K%ÇJżü²óú”ò8vhÚµĊY7˜ À€ĜĞGÒ6 , —uÌ,ëPÂûlòʅ­ùJŜ/}ħŻĤíLÔiŬWşVˆ_#áPÈÌï%8ŝáó1uŻ‚CÍ]cj(‡H˙›Gì˙ĥ€žİĊ0á²àG £ˆ%ì<‘1ŠV“M3œq­°µFıŒħ}{Z|ùüáéíÓd¨˜Ġ2 í˙4TĥlҖ­ĉŜ*;tk•n!3²]vî"Ġù°ÙrÚµÓqµŸ­NŽĦ›Ùú‚îö„gW§~ o0µÛ;Uû ×díô#ú{Ħ 2A+x¸—ĝ5$E[ż²VaĵäΧ[•êÚĦX×7[Ë>‘ĥ•şÖĦbօüg.™Rw­MHuâF/ U2*ĠĠÒfF…rYˆvA_ı<1B_ı<Û˘K²Ż=ph2Î×RiC]œ'M}V•ge }¨%k£m´İ&j*Éú<ޘ€e2OĞĉèüM5g21ZzÏ_…t;Vúî)+;Ĥògû’?Iœµxžt¨:­½ŝ̂ïٗów‡{~mĉçÒèş½ĠxèĤçI£×îvÉïÇ[µk›3~ŝ1‡ϙ.ïŜUú‰ċĞÉt:™.'ß²¤ùöYñŽ|ĝ-}´–.Ğyq³tµ Š;³âϐ§]ŬUÄĦZóŽx·,tKħŞFú%Œ…\_²İËfW3ïFûğ;!Ÿ<hëöFóx¨VóÏYŝž_÷xÊ„²¨/[)Ÿ›İkR5íİgˆ|eİ=iPŻ£ï[Áé%[KŽZÛJŒìĊÓ4׺ ѝ OĦ¸Óï?aUċıVRèĞŜÜáRĈFô¸VûĴµ’fş{%e³kŭYòġá›>L3ğTJ•ĴŭxĊ='QM%µĈò/·"j#£Žà/ÉĴ%ԋ]³%Pq5Ŭ#lO‰!Z1Û6£N]•o˜ï˙îO¨'ùÁžŭ"ñÙ,&ÙĝÊy’ oâ;ùž/öL|ŻâTóœ:\™eĜB~bı÷oÔ2”³ĥ:ï’Vŝ-Ê·ÊìOonRZ(MŭĜ.ñ…{!ù˙żÁĠ×{£hĉÇÔoâÁùÙ;ŽnfĦgÊf_$ùèĦöċħò›yŞß Ñ˙P~>v 0ġÏxKÒúġ2żT÷Ĵ4xĤÎŝ.ötvĝ?jEendstream endobj 86 0 obj << /Subtype /XML /Type /Metadata /Length 1168 >> stream 2025-01-14T11:53:49-06:00 2025-01-14T11:53:49-06:00 TeX Untitled endstream endobj 87 0 obj << /Type /ObjStm /Length 2264 /Filter /FlateDecode /N 84 /First 754 >> stream xœíZ[oÛĈ~ïŻĜÇE³÷Pˆo‰Û8ä8ġ9Ċy`dÚ& KŞD§N}g–¤x%Jf  ) ÷:;óÍÌΝ#Œ8O„°Ä3˘4'ž4ñ‚8gˆ—„sŠpi X°ÚĦ‡·„[ˆw„{ˆ÷‹•ŒÁq]C7&€ÀŝL!CE FĦ‰°ƒ3C„çXe€q9sD2ǁD ÓqF¤2PĊ9‘†Cwx¤SX%pH(˘˜…q¸&JHlcˆ’Ğ,QVğÜÍ` œ{˘…V#ZYh#8њ#!ˆ6ş I´K(b¸ÇMŒt°aˆħĦ—%Ĉ[ÚYĈ‘Äb=—ŒX᠗äÄJĴžĴ’ ]xĴp݈uK4 C69,ہ˜pÄI”µôÄ)Yŝ46%9 Bâ 4çqd%0 :Ô^ ġŞaš ü€ÔĵDñ‚DĵFñ‚ ĵMs Ú50GPXìŞò'…ùĵ3X#{”|P0ƒ–\ċ;˜D[Ô>r˘R&`€Ğ4¨nŒpd‘ DšA,HœÁH¤,–!2œCáZM2œCƒÄ8²4~œ€ĉ9*ƒYìkq+ŭw?˙Lèñ}´-ç“Á·ċÌAŒŒÉëׄžÎ&ó›dvւ…ô,YRìtBÏĉ³ôèhŝDŝ @ŝŭ/+żˆÒe‚5ì€2üĴ)hó>ގ4ŽWóÇċ$^ †ı.?§_1Ħá[ÂÏüj–C1Aħ…&C=ÎFèïÉMzż‚ù”~%`‚ׯ7-à"8Û°Bxc…´ş@0/ ´ıïq¨Ê ß½Bµm…ĥ²>¨Šgé şärğˆo’(ùäÖ˘ĝ+P-p5Š–ä”láh§OéÛË4Jcôs™ŝ@(ÊGú‰PgÓèn³ĠP˲Jô˘8_ܳd xĵ°j(ú=Ä-M§Ñ4™ĵ™ŬMchI/’Ġ Ô¤I/ÓĝáSpĝıWTFŻóĠ)ÊûZ¤{A‹´ğ-Òö´È1ĈËÜ`Ĉ%EÛ1DĊ|™y;Ç>wcŒï^/h ĵwQ a™çBÊMA ”BN+JN„CFCĵQSà”-hIT1Ä]c)ÜÔ‚w•ñŠËqƒşG*.ÇàrúBËò—ƒ–eğĦċûBĞ?œ*‚Xâí.8U!TM ƒ–òRù¸=.µ{äŭĠßßò†·Żm‚â ÊÔeŸšŻ½:ş‡ù°”Ş÷ġMa-ïŽéJ="‹žñÓ›QQ„+Q1{]GĊ‡dö¸˘Ó4YLżVB +âŸj„?âS}6ÊĜ×EßĜıÛĉĜ×Ëf+@aW_ĵaşı˘˜™Mpí°ßŞÛïċ҅Ĵ\TÁZ,9N½;I1/˜¤˜ŬIŠĜş…Ż%)=?;˙ôÛ{áéuŬµj-ε ²ÀLÉ·ïk‘°@|ZöÈjĉÈŞÖ¸@ LÛôsrw—½-ħV·§BjßeŸY%žy”Z)LT7M´!Ŝ&Şw˜è!q£Û\ñ”…­ÛaÚϋˆÑǔavħŽ0GĦm&n5ñ‚ÙÌċ`w`<úo´¸=%~Ž€Ó*üċ{u{ko[żŭ0}şúñ]<ŭ§É$ꙌIUÍÔlÓÔDßè'ìĥL4ĞĠÚt>,˙n~ ¤16€)ˆ´0VVÒlÇByFu}Ös²’FîÖt>2ŝ:Ày“O‰eŒ•}X6k‘#Óô7VĠâöşö8Gô8dĈoé;:˘cz òç\ŒĈU“ÚîÁ‹ Z×yâò1ÎĤĞÉ·lêÚ~= >ÛÏğN#Kż]ÙnMï½Ŭw³–çf-żŬòѸĝh|-ͽA×^êĴqùFsm™BÙJÇÚÚlgáğ6wwè6l´OŜî³ŬëmËĥkŠí`Éj‹6›ŭOÜ]~eÈoo ö úÂ~<:?$ßìIï $ŬRċŜ"OZšHŭzĠ#k.P‹·ìòtGbß#èöփ^ ñbÂÌ[ËCvú½à@çĠ£î^ɑ69ŞÂ1\h?ûü£óP[żà}‰Ŝ}_"‡ż/İÀ£ŞŻÉċ·Ìħ7CŞ ¤AïF¸t5 t;"7ž£ħ@§’$żHŠġÒs} ŝo„´; ³ßIk jĜËU;_UœŻvßÇĥN żá}ìĤž,ċÁ†*:,6ï}:§†=€Wşó-cö3ⴃíŞÜ)5Ĵhj.UâRÍ~¨i aĜ=]ğêƒ]ûî7+ż’šm9”:InocX.áß4²á˜-chŬò á`´ÚeiÜftÏSŠ2,·\~Ñ 1ĉÊák¨Ñs˘Óŝwĵ˙ì…MHP­7Ŝ­ß/ê?¨w_Éendstream endobj 172 0 obj << /Filter /FlateDecode /Length 7041 >> stream xœµ\ےÇq}ü†}œÀŒë~ыB” Ѳ%“°^,? v ŠÀÈĊ’\ĝ睗ŞîS=Ŭ PĤCŠÀ°·ş.Y'3Ofeġwĉ`/ ˙Żŭ{ġöÙż|•/n‹Ûgß=³òNjöÏĠۋ/^PƒzaóÁÙä/^ĵzĤ/Ú ëÂ!w‘=Ĝ”.^ĵ}ö_ğŻ.ÍÁUg]ÜŭġroŜZ—êî{zlĞ ÁîNïċı‰ħĉŬé ŝkj5v÷@|q¸ŬĞË˙~ñ% l-Ž\üÁF_iô×4ÖŻ/÷ĦVšCÜŭğ Ĉz›wŸËïZmŠğĞo¨ÏhsÚŬè¨&yżğğôö`¨ÓÍĊç ]üŽDƒĠé†*ÍV;3)ĤŬ½,"ĤñçŝÏôÛÔ\r”ßÑXww·îƒŝ%GŻÜò¤LNÙó´|Ž4ħşû½Î0Ñ˙K£ıĵ—Ĉΐ€Ž"·É{ú·Ú˘˘ĝZ–ç*I>ÊìeÍ߀$pfo.§ÇĜäƒĥ19f׆i`›Ó<ġ;•]-@w}ëüï}ç$/ŝÑ6—Öcá{İy{_Yş°ßëşL-<$•x‰²Y1·ûVç‘i·f›îúú†Ú§âŒÏ´bnOkwe÷òŝ ` Ċ×$+59ë,ĝ½ÚÖI+4“$ëI‡’ŭĊŜúC Ġġɲü\É&4ĵ£Û½äžIĝ.Êœó„–Ŭ‘HbI&“P K{ĉe÷xÁ$x_ŒÚûĵû‡, ÖL3âéÇ-Íù Fy:3‹Ġúxˆ.\ ŭ7Ñ:| ğğH I5P‡„֑BúôĜċğûú½6(Ħ!!°ĤWÚOŬ•¨SK•tÌv‘;•şX•a9d—2ü#/żÚ^ˤ§l'n³$šE“ĴKÙŬĦżû?&œÁ HËÚîĞ ħÑ˘aì/›ë“j‘!…ġ<c£-08‚cÇ?İÂ_xrĈY3 Sòî­(˘!}!ƒħ&=‰ .ŸwlI•œS½*6DÂó—$ [jiûŸĵmz-)Y›”Lp´e€²÷—.LĤ×UVüóôJ'Ğf TŭîÈ2vĈ“°‡W½KĊBBŜŬ Ş3Á}˜çñıZ)ZY&YËâ˘.íϧ{…<½żû­Ó“ù¸½Qó-}ÉF—\e§§…ŞüŝâÙ°Ċay2=ä~~$ÏġÇgĊT’ŞğH&ĠCoŸE稣ùɛg_oú72£ô: „ŝÍeò-5_ÄŬ½ŭV°G"T&¸[Dò’š:µ'$NÓDjĊ9Š˘šbÈz•YS# ğ·1ĴYb…ôÑĤŞìD“5냣Żığd˘£HPKêpàİ0ıı.µI!P6°:‹Şt4p?À›€r7|şS,çŬñ­xÔ\.o•à◣ŠL²¸ĠŜÙöż™ĦzTJé92Ä Ë·2>ÍÏÒ8·ê+ ÛITƒċž¨ß,ia >ŠZRĵ`5Ù÷În›z%ĵ }*%ħu0UöÊHtŒÄ']¸ ŻžÔîX_|FUxÔnXÏ'¸`¤µq§ìŬŸĝ1K2›=ëñ;q&‰YĤ2NK²f÷Ċ½Ġ µA ?‰)0ÔGğŜßġĵ”&³Ètl-èĊ—ë¸}Ï&’,KêMż3@tÎżïtÙħŽNö™Rûà:[ힵp0êl IşR2ŸŻ.µb&ÜKτ{l(D‹J‡ì„…÷Ç]#^…ĉÒÚáñĦ´ġ§(M"l2@b‡)se1Ft ­+sr¤äf|ĦĝĤnĄ(€8#+ç×óĥŝM[‘ċñïLšóF•‰‡Ö‡˙ï<)Šî -ûˆŠvÓx”k–öċŒè{ROKö>İÊ<…÷FÜÑDŜò „0R ΀Èj‹²sòĥµmĵŻâ'Vġ`/î‰ûy#U8pŬZìĵqAה#0uΤ ÀïĊZ–ĈE6şpZaú)B§˜ËÔib/ĉîà7P‘_ÉdbI-XÛ÷)Öü'z÷‡snk›$³TÇg2“´`€h˜ofŞql_ı>ù–˜<$ÍuÑzëè ÁÎyG<”dâş_èԅëË Úä,Ö½vBœä\}2'ĠVŠĥúŬläÑOĉe†. |4Ñ38^ÏÒžI,^ƒOêĵġÂİÍèğ @iT%9ñ‡uXŬÍfĥùĉÈı‰ŽyœżBËħLšûmȜZȜ ³n:ÔL·Ž8s§Ĝ3ç͊CŜba+t›”O}Vv³oìdÖıJP > ûcààS#ŸıÄ ½ŽCmv˙£? ġŭ#ĝ‰×ëî€v£/2ÙB˜Íìċĝ x獠îvžÓF Ĝqˆ/˘CħÉ òe;FS6Pgžmm.lÊĜ|™âʂ: ‚M,iCŬŒ[ÏH §ÈñIÚĴ{(N~ç!èì$¤<"Q§KâÌÈFĝĥĜê˘]‡|äQıef4¨c‰œŽĜ¤:"žŞqjM:ĝHxÍğP„äÉ£NDòcŸħè]ôŜ/Ĝ5)´AbN9ċTrô‰³Ĥ|7ûö‡.ÜE0 VèW&öùr]g`dÒ ŬԙRŒ*ö–Šr24¸.ìf#4Rĵd“|ğI[ߚDĦ]c”ȲĦ0`ÎU hÑĝêŽċla0ılġu[<=GĊÁ<Ç*‡ï!FÖz²5=BlÓk°·gÜûġ°-Èn FÈFôʋä­F‡jIÍĠÜßı#WV€ÙċhÓf‰6ѝĴĉÌŜ´ĥe G.× 0:UìïZ;!zµ„vîà/÷–(Dm'a½~òèĜ`&ëĦŬ<£†t6jdĵž.œµ 2)£ÙÏİ{HX>żž ıñ³ï'0‹‘vMGĤ²‘Ù{£p*Îâ!!ĦËMLA)€â€Ù7~aġ·l:ScÒLòb£á§) `HÙWó^êQ²qŭxŒt‘#ô$™,+™év’lËHž_­Ú£%Ğĉ&™£˘]]Š #ûĝíeŒÚ aŭž³óĠof½ĝ½šB&°MĈqž°ï)fé¸矵ZÄ× h2g8‚i^èwlÜ­&¤·ôs0Ĝ“ğ8ĥ£FÎzBÏ˰sV퟉‡ÄşKäòŞ­·”}3 Àd[g7ĜğQQÙa{Ĵa_İĵLp4{aQ]šNšfŻs|ÓÜN>„È0œêûˆóˆġ`2‰˙é…&ÒÂÚ!½Wѝ‚Èßß-ì‘ĝ¤çı3—9Ükħë'×½ˆÊmDÎ/ç§·  ?¨/“ÓÔ“]¨ÈÔßĦU7ԖѲyĈ‹½##¤Â˙WĊV1ZDVs0NÏ}ö6İĤšC*ZÈFF”lXĦy’i!“juÏûġŞĥ@:}Ìî×ʍÁ&¤j1ĝE9è Ċžĝskò\›Ôeє!\´™sUXİŠ(µ—ïVgKÒqÀÓĦ˘°1&×Ħ(SìFM %Š=>â²D‰b¸2_\JF—™Ëƒv(e‰ŸİċOħhn÷Ì Ô @ÈB%œ>^ÜO•€XdŞzUyGáñ˜ìmÄäÄh6:§ñ£²2˜rĉšlN! Sä´âai U´5Hëı)=½~¸jĠ³Äb”1µö§ıŭŬ*B÷6Q ÊĠĈ\(AĤ+-Ÿ+´XÚUÏ&cA‡³ĈĜa§8ïċƒpëY9†]8j>/C]:i¨éeš (XêĴèÚäĉ_ ʝXièİM ħŸ·FşĦĦHŸW7³‚&„°œ’SœPŬ²of4Ŭk/|Ёxƒš§NÎ÷Kް P‚ğ÷ ôç§YúóĜӃ4Ĵ÷ġÜóà|f3rûZ_%Ö8´™÷Ȃ˘ùKU;dM¨ÌT³n"ô81ĵäJDİĊ_–(EV*˜ZKKz&2Ğ6Ó+ïóO×jí?:œ*B›î¨ ÍĈ7oĠׅC€ĦĴ˙¨z—şgž†’Ö ÷$ÈJ•KÔN:_X”xgĵ_“~˙}×\AǗ¸ˆá6÷›5:əûúNüŭԇ<2Ù!Gŭ´Ħĥ\ÛŞċú$3 n€,ÌŒhڃ5ğš{ßĈ0vİEü˜X <žâğY[ÖW5;Ô˜(ğÌ§|^O•[ĞË~3¨¤ĵÈuxù˘·ĵĠëu”×gBŒ9Œúı äq3Ê!ͨŒmפg‘-IËÍeÊ:%pOÉ i!1×G,ЏôwĞ*X.T ;Xr‰­VL=Ê\+–C;èİN· ¸ür$‚èğúf+Ħ=ß­1’˜ŬĜı Ïĵ›ô\MDĝƒ‰=ö(³šş5żéY½_éïdÊStRʍµÍzx2•#³“TĊı^ş—ñ/cÊ2ꚨÏ9=•&Ĝ5ċ‰°‡¸wiçëçú?9xñÜ.Ĝ@jzÛ;4ħcQV4Ù5ˆ'×ÙғĥĈˆ݆<эċİ´]ˆá  Ñç”áıê•.Sz’Q ç-/š’+Ħ{MgzW{˘š­äxÑħ0o܇SGŭtÍĉ~Óm2>úX!‘Ġ²~rE>{ˆÙ#â7FÄm^²CQ‚ğj’wƒĊûÙH†-ŭ\ì›ü•ıÊ ĵ(ŭ}k]ĈħOş*cFëü–gJîXùsŬñzFé—10!ñŞl{¸m/£eD2:ݐĥA2š;hrùñ+Fk;úÖ{ğš.ŽJ|Pğ &ĵÙ q otIGmğŜdD;Äö†e=ËW¤Z}/U46B6=i\8ĊÇĜs“ñŠèn%U%—Ħ5ê…$!9ë[‡™o #µÈWÊŭ:¸~\dĴqi0„×:%ħΞ_^2zäJM8&Ħk@&4$ùĤjH ½W9)E_"€ƒV°‚—Óʧ)-ĜÖûCJSpŬÜ3uċ~6ÏáW6hĈ˜Ë1 Lí?D…[Nz}ߋ–u)O|uŠÍÛHŠ&›Û NŝZpšL-SN\‘~PuÏ$ċ?\š~Êq8Şk7{=dMŜ:'•V˘ |ÈíìàˀÄjçıìü¨?9ġ…AüŸim|ĉç%ŞäÒÙ/zˆŠô÷(A#×nƒHmŽO3ê2_ȤkgvΰÇ2t7§Ugˁ)SЈVıŒñġìγ]1˜ĵŸ’¤qŒ>ŽgŜÍĴj#Ċ„HcqÂğÇ£¸İÇ„$Uœx^²qÄ ¨ÄÜ"ìĞÌ|'ĴzÜĜñ`2ŻğS™p{ôkŭ)27˜]ۃšêÂZŻf]Wö œ‘ÜFŭ:ɝŽY›}İOñùtığŒ‘úěżàK-q*IÒ*W~fĦ½ĵœ@ Ċç‰ÛA‹6˘óá{>ËPu.ÚW˘š´çXóÌïĥÚSÂ'ë­%µÑ#Œ<ÙÏp˙8{Ĥ­ \$ĝ#lŭċ/ŸĠċ7İIÈ ‡ä[çfŬ‚BŒVVú+qÌe·‹ÑY>@„€QŜ8ê}ZSÄJL›żg@Ğ#UñÑ·z"zÍm!Mèa“.ĉÊ!ù£ \§à‰•Pĵ÷:š !tĈëÑÜÔ~¨QZ/žà’FëJ²˙^Èı­#ĈmÁáäÇc%<Ç>\5ë‘4ı Zĵ7ƒŸ-=ŽêÉŽ72\9†ŒI\ġtxħĠë1E CıP¸=Ĝ„0{ĵñ{t³Öl0i w ÷#߉wœ˘Œ¤’;áx9KH/l;m]sF‘ĉokÄİ8{: dk#Ÿvü8—RÄPä“WĜd‘'ž]1h3g‚^ >¤ÓY—‡á àÇùçÎLlnÈĵoÍ·?7@Öy„u-âÒÀGZ<‡‰ĥ{ >h{ĉÒI9&ħ·/† Ġ 9A(Bù›3H=@ëƒ/y‹ tÖĝğàŒF(ֈg 1<ò½ĥ&‹·Cŭ•’9ĤßòOgz‰ċHgz‰ZrŬgÌô§#hf{x£M¢d4V Z%3‘;ò›eş<|e°—›xĊFġ€³‰œ­ŭXġyĤEġ€D.‰[™Î_Ĉjäi\ú§˜#żÌp":ĉá´´Yî@é.e>´î­ ,MüeΧJn-_•™JnIÚÚfv88ï‚û¨°[[´ïùúÔxqs|ùúz9§”şoéż4œ09Ĝfsġçq½b2ĜÊ>rĝ´ĉ+ò lŻÈÍ_ëĊ'b6–d‰'ċşX’Ï^Gĝ–"Í`7â ZNİ*˘ĝaÈևg”F#fväíX¤G #Оĝ‹ô ÒHÈĴŸ×6eg3>>Ċϳ§ÏêĉŸ†(û„s_ˆa 5è‰L†cše–ħçü·½ĝê]xürJü=ÎYt<<Ĉ`¨­AÂ};ÊêYŭ ³qj’¨7ŝÓxr;Ŭ€ƒŽÍ$ú\=‚uI7³DÛ –güdȆNÇħSM *çxûÔéúöqì”Ô×ĦǤ>~uĵİyLI-!)cÌ‹6‡ŒÇêá’|½Bïc.KilöüÉġ3òO`7R:Œ|N_Użžı›§· *é/H úÊ40%?&š0Blc£^Oq#ĥ~7Œ4³fĴ˘…ġ€¸7’˘PRŬż>sî`ž´ĦÑĝËħÊ&ïsW'ŝ@ĊVĴÔ+ħÀEjyĤLÎ~wÉ8#nçw_ƒ?ĝ[›Y· JŸë"ÉÁL!¨Mû<8½x{Ożŝ°è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œµyt×ÖġaͰ2ÁŜ(”!tÓ{ïÛ¸‚Ğp·ċ"ĞIî½Iĥ\mÀĤ8€é:^B ;ÎuŜ˙_I6Éûĵ—üo½ßĴċe¤™ı÷œ³ÏŜûÜP;Q@4kÉÊħcÌġsÇş_䭉6]Ŭ;gô–c‡öBïêI™V8n[?3pĴ ÙÁsBĉ†Î ›/]°}aĝ–En‹#Ŭ—Dy,ġ\ĉµÜÛgċÖUĞŭÖĝŻ X×}dQöÑ£?t3vÜĝ Lšüєİ0}ˆÓşÙRÔj5…H-§ĤRƒ¨ÔÔJj0µŠB­Ĥ†Rk¨aÔZj8µŽA­§fR#İ Ô,jµ‘šMĤ6Qs¨İıÔj5–šO- ĈS İ Ô"j"µ˜šD-Ħ&SKݏ¨Şµ²äT ġĠ“r¤zQv”˜z—bİ÷¨pŞ7eO9P}¨T?JDqCmşPïS]]Ŭ¨•$MTgJ#è#xÖɧÓáFáW·vl³ÚĉĴècQ-½‰ŝ•™Ċ<ë² KQWq×nvûĵ{r9=°jÛòÎàwŽöìÓ³ş×ĝ^%½^Ùm²;#Ŝóî”wğâ½ïĵ÷ w’=e?ŬÉ!Ï´>OúŽî{Ħïƒ~}ûé·´Ÿ˘ßĠż-˙[!דÛ%é&9ĝŝœ÷ŻġŸÚ˙Ā Rĵ¸o`ë ıƒ.}0âƒêÁŸrŠWÚĥ&‚ m0ñ J5­ŽB~@ëb6%O• Ñ ”§Äb÷ĥoí#×ğÇĴQ3ŝt™fŻĥL˘ŞQê>Do1Vè4Ù­äêmƒ@tÒ(´rP8Ĵ‚ Ο×]†]°¨›Tĉ["ée›!Ğe°Ïf‘ iƒ"[LĵM“Ô`‡:]Bž—z‹÷£Nè9‹ġ´³ ĉ“Ġik+Ħ‚Ĵ½Óşö|엠ĊôWŽŸ?—³f%‡c˙ċµë Ô;´Š†`òŻ-ò-]3ÁÉ5p #ñûËlüiñŝ˙É%–Ĵ´ L‚ò֕B~0˙‹ŝ†6jvÖ<Ò8˜hµ“*Üa¸ëÈÓŭé=jƒ AJ–ažnY´FKɄTÈ5íĠ0&ÚG9<Á–hĵ´ĉğJècP’\ˆc“=ŝ§Ä†l $eš&m-4À1¨WZvżYU ĊKÍÈA—=‡“´ ”/r5×ĤNw•$şém˘#HÛÓĥ›ÛÖġ¤Ĉ h·ÉIîĦ“Ïgì-ĉQ߉EjşV›ÑÌĦž˘çu“Ö.Ú8 %OÙç%—Î5ĉá‡wñ{\['˙rÑ ­Ì[ÒVN‹òVÉ>áBŭù~"äĝÑßNıŽ…ı’%ĝ‹{‰œTµT–Ó/šFϟ½nÊ ‰-Ż”ù1AĠ=´ž÷C,zwÈÜ÷ޏfş ?|ÄĈNĴ+¸èƒ„ìƒ3PğáhùÊÍú=°öJ+\+\aI7Ĵ‘şH]ĥmĉmĊŭBŝgŝ>ÛpĉTj ĵûĞÜĠA$ï+´ÁKµ #Âeò8…\‚§`=^€>KÎ-¤9èİû9íM ċ[`³f‹PĊô)+ F^ĝ[{ĵŽn_TŻğBöĥ´—)ŒŝD™½[‚Öĥ­^RSë(“Ŭñ×ĵ_]ˆħ·ĝÙqô-‹ŬÑ$<-E“żGÄdCFœ ä j. | ³Żß‰KÄ? ´nç$x4.ċ´ħ ÌĤtz J ‹ CĤP@|·ÁÑĞ~ŭĦà ~†—á‰x ÌĠ3ħ î1g²£ğgic$V(%ĊIm/÷€żÖµÎ`ŭËéDuàİ“MCŠ–£•¸/‹gHğżÏZ Ċï²ġè,\’ž½wyÖD˜XħÌ{cxʃ ĝòöȇKívŜC…„Gî=ϰxŜż”?!=ÇĜˆŸWĊıû¸/f Çïá^Ï#†äé24î5T3:äÏâŝ4ĝEJCbŭ‚œ€™ıô˘Q·Ë÷Ŭnš°–0Ç4Òk§M¨v§ġ{„6Ñ£Î(Dŭn²q^5Ħ›Q6 vho›ÒÇôóżI#*M”ùçĈ˘d‘µAY•Ğ ħ„1Š‘ÔĤítGWÚò};ÈóÍĊ7z‹o Ñ×,êDc‰ıÚNï˙JwkšµU°šaıÛiGUN½&MûèĞ -¨µœRÁL >ĈPlÌ­İñŻvċÄ7f‚÷üXWRÑ÷I˜Í&tÀĉj#hò·Z§ħmŜ’…ŝmĞÔén’Fi„'í­âK„ĵ: R? żËîxr‚ïn"Jo¸ğ ŞB̑€myNfà'•ĜĠC>C‘Ĉ°Ïz‹!´–5(îF,f½ûôÉŜ'Žà”yêÔ`â 9R‚íé(HÎIÓhJJ8­´Ċ%ûĥìWë œéŸy$`G|Ä·Ĉ#sK&QU9óóNöİĞh|€:ġ×ršÄ,B L¤•H~°´]Š â8"!QĦôĴrƒR=[ÏùĞ| +ñ£šà*ù—ħ$?Fİ)ħ…˜ĝ,,0é‘O]oq ˙ĝ›'ŬžLdHLzwjÚB:^êĠŞ˘)“ÀÛ˘)5ôcÌK²ˆ7ÎXœ¸oĴC‡ /l¨=ŭó“ħxÈżżš5G‡‚^Š'áqx Ŝ‚&àñhDsnWìVÈO@ĜĴ²˘½Í>"LµMĦ°YeĠ³uND@˘JĦ}€3íqgT#Ï#ÀĠ:Tì†bġ*Uğ&À˘hô9H•çù£AÙ§ÇjSò R³R³ *²†“¨3żŬ$hDÑ°Bt e?ܰj­|œôĉZrwTÔ–J·Ĉş8^YöèĠĠË×s$šL²ÜN†_N7ĉ9²˘‹ÊSíD4tŬ²\˜İÏCÎqd‘‹p`OI3“Œ>b‡#gmuŜèVwèXÓ=4%´bño äñ“Y49ff9|ÇìYƒ•~Ŝ°ĥvxÖô0H„è„„¤d|·Ĝ£+˙…†œE#†ĝöXŸž˜ñn6ä–) vµ›Sz lO Ĝg–l³t™ıĵFˆö xvÇ]Ë+LġÍfXĞÔÁ¤ÈkµqVXèU™qd6‰NˆK‘/™n?ŭ‡D³yKw€‚‚ĴRËêŞhĜNš k‘/ƒFŬĵìfíGán›V,Wm7›ì ­ISĠ¤*·úİ.9 ÀP]{ĉËŻ†ĜgÊò˘ ĝc‚Ìîz‡ĉ¸Ö@lnġŽŽ"µaĠŒ…\ĤWS‡ÙŠ!fĞ‹.·ğ- Ħ´=3ÒMf~e3#>V´áZßK5ìfžNёÄR²È†äî>~,³öC}pıg…›n%¸—jÙ6çíŝžkÀĵËCˆËÒA1ÑÂĊîVPż§ IÛ ÚŠı=ši°#ÓlâĊ è:£46 ğoÜ ÌëlÜ×C‚·³¨FdŝĊšç¤û˜á^‚ı>? 'ƒí~$,ÉNÒĤ$ŞäI*ÎgXH€ à#Ĵ!à3¸ġ$êbiEëä q.Ż…­žè)‹\ñ2B.Äó(<ğ[7AsÑB4GÎŝŽÀ}Aù( ŝâŜC4p6ÎÂĊĝo“?”Ĝ˘“²Eîg¨óĊ§…h?‹E ŭÍgŸíÓ@r݈Œƒ&Ĵ0ĵ²ş ´ĵÁĞvíœIkûs˜žĉ ßĝ³â:™hë´Ğ3}Pók! G—X4]„ş#êÎËï‡~ƒ˙&Áo~w°'Ò˘DE,*³Dh<ôß褑Ǜϰ[Zyò~‚2ğŞ–ëhĉġş—“½Ċ?ËPú”/Ë*55FIfnYĠ`° µ_Lˆ$)>,‰ñ`!ʊJw6*K€yvéҍ†è†2IŭÎú´bóèÔ2EŠ ♨ĵĝÂ쒌²˘ĝpıÛnK흘Ñsç~âb4n—ÄĊDú‚#nÀ?ÏÓ,ÊÏܙY/V#[ÔġÇ7ëbŻŻâÖV­€„/]!Y—şŬ¤MáKìàı‡ĜĠ°O'9%z€:Ä5³7 “XÉ,m)°zY!êôû˙ï„l2¸,‹òdëß÷ımk˜Ô@ê{ĀZLvd¨Gjd3ġw½Ċż 0ô†Eı4”AA—­­†R`£Î üÁÜİx¨äeûĵüĉ¸É|‡E÷ñŝ ĝŸg+ŝ"Ñ´ĝ×BâĤêĥîò˜ Á½Ñ³Ñû˜|07‹îVCNœ “ĠùlŸÈĜI‡cŸĊŬĥ<żħvu që;,Ó2êñĈîú›9{‹ŸĦ9üRżoB–œ™Ħ#M5š£ÚrBGuiZ HÛ-˙ÊïbkBôŝÒ à C°İʨŻ!ŠÔ"5µŽİ²;^|}q~-IÈUôŠ·gñğĤ%Gá¤ċ£gn˘ ĝ#çtN#yNûx‰6[ĉ·dµ:>™óYPíÖ8ŽÌoÂÉûtdĉÍ IŽâpüċ(FüĴ2yGr•—>8›03{ĴÉÛf¤\Ë­8Ş<ŻWg'²cĝu² żmNöˆiëyïGDşÜŝu’ˆŻÂËw'—’”œ$ _ĝ jɊûӖŸ^4Ó˜—‘ĉĵÜÈ2{˜÷içĉ‹R /˜+H-͇JĤ"²4002×67p ,ƒ™Án£ŭĉĤL‡áÓÔħ3öN½~ŽÂWú}ßÖ\Jğ ·ìŻ²°Üùì4<…Sp.f-AŬgÉ@q1²dhö*˜‹ ϓ-Šı2ÀÙüúAIÒ`ÚW*@Aׄ¨ıġ]ĥ´aܒEÁş”<Ş‚i+ í?–ó3›Ŭ‡ÄCíf׏ĞÌi0[Z¸~úé“ŬĦŸËë˜!ÁyĈ îôQxé€Dcoc[lĝá¸U‡@WT—ÛXYᓤµ’+ğp´á$0OöNòñ†iĞ—Hjì+3Ï}ĦâŸxZT…f’Ħ/% Ù%!&9iÑ5óŝUWÈ@<¨ uŭáĴÑ užô }ütĈëŜbLĦ½è'önċÉË$CwÇ1xĈ²†ˆjSİĦúÄpĤƒóêi<&ŻZì" Ĝ´U˘NR‡Ş’!IĴ†FÜ&“e@·Ot·aŜ0Üoî6×O‹NùHêRLĜĊÔ•n ġ‹uól Û'O^qdi¸ğĝĉ@½5Á¨‰ßB2Ü|ƒdMa'˜=£#·ŬìZˆ/l‚#íŝ }"yĝÒ4„ßDrŸ¨4ŸŽÓm[ ##i))ù.6–Q§ïÑbê}Ïî‹M&ñˆŒü´™EŬĤĵÄÔ&×ho­£KċµÉ5ÄD½sùI^ş2-Y­eŠ$HGBR~†V—žÊċ6½-`ܜYèġ€ Œĝ"ÌËB·„zxo&jħòHÔ)ájb k‹ŒċċQFßXŸäÍ/ G%âŸóê;$6„—XXí]-ê.5\3˙ê-ŝĊ?`O‡îwíàĥÒüìtb5µ-Ä*ü’g-^"‰';TZĝ-çŜW¨+‡Ö÷ŸÜfÉ? ìŜ“=0‘ÇӅ{‹Û=ş–ÓÄŻ÷Ĵ?\Ŝ$ßjàbÜÁÙż<ĈP¸#k÷i—Ï>Âïâ˜ĊÁñ/¸1³Ÿ!á·'÷‰Ç}‡…œ¸mx­ßÄ nĝ:ğNË "›á637k^>.<KL\ħĴ'ŝ~lˆòXĥ™ĝR ˆġü…‚ĈoŸ ù ŝ ›e& =ƒ"l Şŭ_Í˙ Ù|{ïçzÙ~Ï&.B½h3d ‹Ŝ™^ÑK?]7eâĴ³÷N֜˙şÙšŝú§÷ËĝAĉô/|Š<›a+DWX?Ç Üĵ"jvg·/³şÈZ Hô˜ÔíkĒ1´ò#ÙGL1nġĈHgWÎÍ9l |Êà^ß C9ñÏg ħİì$ƒ{~ÂFf?هÀ̗Íú†ÊCğòêˆ!ŻŬZäœë—ş63m>ž³ l× Ŝö‹ù‚E¨Ñ§ĉ;íĵ‰ hŝáï?‹h²ÄhO_䘜ô żĵ˜jĠµ5NӂFehr´™f¸Ê€° Hgxh?‹VÑTóoaĞ#QĞô,­Ò-j•’œ,ç6̛4ĉÀꖈ˘í„Âg̞Œğà_N½~ġÄ#Ô9š··H.xJ݇Żà°)=U£ĥo[óëĜÄ8H1‹\vbvĥ65'“3ò£Ùyh*úĝBžŝÈaǘZ7k„_Ö6äż ġ™Ç"zùÙ˙cMóA?rĜƒFïo%l…n³%PZħ’ĥïDħ^ŝ[ĵ–Í·~#iûğ(ĈúMÙĝż%VŜà‘ÛÈf&êo4ÒĴß×Ĵ"ŝdüEœPÑĤŭöíäĊI!ş“Y³ŭˆ*½Zh ™ğLôê•×ŝ…Nž0v/çÖNñXHĴûôÜĥ9ßy°0˜ôT]Ħ[xsG.=ùÂ`wüİŝÍBó{DQ<Ò²€ìž_İШ,Ġ×CsÒŭ†İ%ón-‹-3żáÙżb9ӑ“M„d0Ïcytdd¤dÁ,釰”q&ò Ï̓ĴbNüë<ñœUG\(šքt,ܔĦĞ‘Í2ôÎÄ ÀÈ 9qU%‘’À{žá…gžĜ.ÎZ1yŞ"=ûñH|Š;Œ:ċ"!Ü'> 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 8389 >> stream xœ½]I“ÇuC ŭ† zœvċRıĝ˘-),mË$Âá҇RÑ$˙zż%+ó½Ĵ̞@)x`OĦ*+—·|o­ż\-Gsµàċ˙ÏżòÏ_ÄĞğû'ËĠŬ“ż<1ôWċÏżżúô)Ü`V¸rÌKWO_>á'ÍU‚KyħWqÇĵúЧß?9Ĝ맆ܢĉè—=½}òĠá‹ë›ċ¸š½9üéz9ĤlS··t9çèíá|mŽËb×ġŻZ³¸5ŠĞŸâĠ%Ù~¸Ĉßy5.^^˙ïÓÏpVN ÀĞwÛŝċúĈ{wLvzċñípÜoòáüÌÁڈ3ıħñ¸˜Ïñn—lˆĉp~u}œ=Â`2Ë1äd—SĦŬ——£31ú ñ¤xÑ=Žáàòá[ĵj]Lŝz[‚W{¸|/ĥĥYŸË[ÜѧtuÖc ‰K‹Iέ9àbà˙ÇL &šVW˙гK°ƒéVŽÁ:¸' #ZXÊğòÜâ§×pÙ[#nùòqŝ8†ñ+Ĵö{\ĝbÖàhĵˆ;ìgŬâpK^íz8É}?ŻoVëpÌżŻaV9Û|ĝ Áİë=ŭñŜb²-ĞòKŒLNјàüáx_€=1ç#xDô~{êŒkrÉFâ°85oĝ G€ Êî8ײ‰Ë’ÔċÓ=_w01ñu¨³›Ŝ²Ĥ˜{$¤67ŞĠ‰mŝ×6/qÎÑÁVŭ7vn ‡_ÒnF›âáU£¨2ĜâáÌĥY&µ>A~݈ü\ôGLT8ĉ?…+/8ÑĦDŸ·5FÛvÏ^·; Cıœ²—Żz.ĉ%çxKS¸ÙĉpcÜqġH==ólR‰‡è‰„dFnßß4úoĈ]X<ĵ/Hj-sÚ°Ûk€M£ˆ ‡ËcĴIŬp*CŸrèì`Ĥïy˘1{yFbrߓÈË9ÁÙeĜÙs™‹<Ċ*âQ dx6˜ĵ—ä„Ïâùŭ‘gN>hĊ‰Àġ;ˆ>$!ñ“aSñĜ GԜ„`“Òày{RŜŬ8ĵsíyĉ\ŒÑkÖ¸UrÏĞĥU§·e­ĊÁcâ&™´nÄ}Bñ°ÀîÀàâDNÏŻé>ßñz–%çmƒ<.I!YGŠŒdŭêĞij›ˆ ÎĴ‡Z-sNj˙N/‘r ÜĴ8@ˏm–,ÄêlÌRÖ¤™E2ĵ×ĤoΚ[P„ä&Ħ5ny¸ZïM#A’›ˆÓ½‰nM’¤‘BאWgz"ĈĦa9Ú8:cQċhX.@ M<’i\-|x;PFŻ+œüûéëBçÒJ¸˘,K'Ĝêˆl•€•áßñDŒYŞâ̒Ġsg)/7u5œ%œ´ÍE]}÷Ú3ħRħ‡w?4Z‡‰,cL 0#ħjĦ„ =xc÷è½ ħIöûFí o!ž“oĵŜù¨dŠh›Vњĵpìuqš3HàXk%Û˘^òD‚ Œ ˘çŝ"˜–ö(ß(ƒĜĴ‘r‚9ŜŜ*ğAĵµò–HŠ>ñĴ>Ô5ĢÄáXlLXäüŒĊuÀë{…MĴ#˜RŽ ¤— 0C>ü$D&„EïCXĦà 'ÀÏİ #%d1%ıĊBÒ‚ ċâŞħ/müaǔܘ³ˆ—}êĵ’ì=ÏÙ!:}ÍżaGôÚpŽb^à5&‚`ô ¨iyħécÁ'>´e]|ž*#Ï·ıM—c…‰lÒgµ `÷譀>ž ‚‰ı’?Ĉ\,òĦ|î@ZDàĊÄ8I0ĠŽœäSkžİuñü–ÛĤ ^ҝf‰\ÈÒI@A™,k‹KW'î\„3÷(UmŽNúż/7gˆˆ`­âÚsAĝg!Ĝ^×{'ˆƒĠd6 ƒÍ'Ğ,@³šêŞÊ˙½KÈK4)„­ÍĊ!|zAÖfĥ‘ löNŽk2qĞciñ(,fğùÙG ż 0ωUĞ]Ök<ħím„=§%$x·Fçƒa² `Ż(9` ˘<ÈĦĠ ŻÙFްŠ]nŸë3ww·;^”­êÌ{G܌ċŻbÇ˙‡Ô˜ë@Ÿ}͔‘—Ô#H¸Š6À‰6ì6˘q!òÄO –š8ßN’Ö J1Ĥ&TìÁŻmè[ž1¨Ż²qy+CV›„rQa—žÍ -+RĊñ’lÀü9ħ›Ħ"_yË bÍQġIRŽô#İf¸rljP‡€ à´"NτIòíÀĠkPĦ˜9šA²3 h˘Yz¤üŝeğüZ Ĥ2#€'nğ!6Z“ż0 ÎEž(.’ĵEzàŞ‡9o2;ĊûġìZĦ¤œ†ġ_=K,#•ÎxçĥM2FÓg’ß,ÒŜ’&’0NŝÚ‘ğ@ĉO@`1ĉíŠê)Ëj@ ĊğŞ’”1ŝhŬĉ]8üfäÌB˜è–*°AÖ4³°O„-âK!bƒ‚Pmh°íW”ï*d*)gɂĊċá’äâ{ĠĊĜ£`¸¤SÏ<#_GÉd1Œ~ŝ0ÀĈPÏBĜÒL…sŠ)<ŽÍqJ¸F˙˜¸ú{ŜHZ"­‰bè ÓôŒŻD '-q1òŬ‹²QÌyM´ÜòÒpĥÒEÜĥ˘(ŞÖ KħȘĠZ?~ħĥwdmÀh?ZE{Ê ż£…lKڞù¤pHıé{ŸÖĉTµħĴħ2şĉÁmĊÁ”ßî~Ŝ G6ÚG˘,ÁŜ܋âĊä{~IŒĴ(‚³™ġ Û[?%Ħ‘%Kĵ1r^ġ½BÏ_¨ÀÊ|‚C_–š·°Öš<>“nüÀZ#ĉärÏş _Ŝƒ^ùzufB:ïL!²bù`‡ bK"òŬšÈÇĥ¸zGŜH ÉÑ´^(ôͳèèğÊÍÍĠvÍΆ|ĠNĵÉ`˜Á…hƒŬF#"&Ò½ç—üÄOrt(/0ò~Áúĥ/|ViTèì…P×Ŝíä}Ó“.#”’zFñŠ"Q´Ö’AÛİ•EŠžd˘ÇJ²äž1*IBĠœ~ğŽ_”‰>(ôÏ;•ÓÎŻ^V9³Ż…Ž’·H,üLy1™]›¤Jp Ŭi˙z§(ÍníÀ 9çáşKn‡tŭĵ-&ʰ…²´÷JĴŞ—›mvĊâ.·×Í(5„5Ħˇĝ’İ–~gċßĴT!HYšS÷&†¨äÎw‰°"Z„)/ġÉ}y ¤ šOsAJşŻ.Í÷ĴBXIŽè³Ž(píÀœMèi‡^íg¸\\VŽZ pde˙9j³½ħĜ¤`O/<臃IM&7€(ÇuÑi!_JÀĜOî=ە=‹4÷éCġê”8?—ĞIİÉâuCĦxÖn+Ĥˆ üžÒĦÎĈa-éU1é—yjy/Ĵà“$ŭÍ Ŝ•~Rw3&G>zĵƒt§*çċ #sr÷ü$ ӁĦ&DOá"ĵß*•óšŻb€oóšáÜÙŭûà'ÑÜIdœŜ41ÖC·˘Vf£Ìƒ‚ÒŬZ'Ĉž2,ààŸ~ŝäé?}uĝ-"â $%}€Òk@N Zİ;T\TC-‹Qjö5żdM=L}8Ċé-ĤI6µİĈ­?ŝĵSo?ĤZ,f ˆË_Š™ -Üi|1•–jY#ğFC;r:˘Y™]µòÏÒ ×†nJġĊġjôGŻ/Î@ Ó&X…UŽ>5ž|=Ġy;óÛöġèëĦ0:’ĉC'àg×íiıe˙IÚ¤z:üᐲŸùĦá§kÚ+pàÌVžŭH4gYBk‘2¤Ş%~ëCİ´+ĥ-Ż MwĦùžoħÉ͑/Ŭ˘ 9ĞGmIÎNşiŜ£$édèÌ?ÖÜ °İFËA‰àT²–Ï[n”]:"MqġÇXvwT$çşĵÁëŠc@$ċcÀ´•c4ÙyPKÎ×É oĈĦ;`íóŽpQ(˜OŻÑMò6+š€í{~4ĉ iQ*ĥM²uçÀ%+Aëġı]“ç!fM‘.ƒÁó bdZá€…cK†–_İ9×Ħ³ŞŭÀ’BŸ5ĥ"dOğġċ8ä*ċÂ|5$:C@u—’ÙŒáŞ—Á0–ù™’ uüÏ?#T¸/À$g&½£Ï²a óĤÁ•iV@ïê7‘Q)JÀHälo‚DVFeK‚™AO(7pşQ·Ÿù2JäGĝYŭÙħŭ ƒ`{ËjÏıքÛÉJ´ñ‚‡A‡™ÖuÑR9ÍYûuöÏv•ŻâüR.Ïèj‹òM芓ĞNV𝜰Ü%ÄÒÉ |*µcfÚÉmŽ>šúŞßÖċÔ+ŭ{…ħzóӛ1ëÄ3şŭĴ]ŭ²ħîµ] ²¸ĜëıeÛÄ[DİŜ ?KI³eDĴ SûqÔùóÁ'֐;i‘ ÖÇÀèÜ9á`'XÑ>Cu) Íw½ċ[àp'^?%3j‚Ñİ6Òş¤5%£=ñĠ`Ŝ›%}˘ĉïĈ`Ğdœú„nóêÏ^TĤ\sĦ1kQĈׇğ DÙ:ËσÏD˘@K >K£½¸ĉ yНÛç/ ?Oµ^tş~bÑ ›IväŸÉ)ĦGQ“Nē 1„˜eÑè]9mާĴiŞzH[ĞÇĝxA%ù–Ċì’3-ŜcXBrnŽĵúòޤağ.Á¨Œ²ívё²[~ϚâES­xU+î Xc‰ÓġŠ˘Tî,$7’Z.dÊÓÂmïJwÖP‚Ġ„„ÏÒ3+XB,гĝËĠoÊ0T¤* p˜ˆ*zšġŜÔĴUáZw N–X˘ÒŽ˜ä“WÁ.Dè³l왏ó\ĥ"Ñ6Š@hgP ·OvÊ"h:ˆíŸùĠuġ3Hì¤ÒÛe•Œ´q{óĦÄ5wqTĥ_Tà­LĠ×/OKFEĵç;Pî£o ‹U: ZZàcĉĦÌn•ÎÒWß"š”8‚™g’·FV1{Ċ!msÇŝ}Ĉâ%ÉNĵ³…pJ;…ÀĝڒcêÇb£‡¨_.Eĝ¤Œr`Ğ€.OÒ?mʚ²4‹½€Z{5À‡šíf\ßlóÔÉwÏS{Ÿ!·x‚w1Ħ!™ž'a³(kxĴl/ Äï‹#%@6Ğ:™#xĴµˆF—ÀPÄĜ,Icކˆ3)Ż3Gk!ÀÄá~~#òq$ĝ˜Ö ­ëV-2uH7Ĥ`‹çzêÛâĉyPۍÜòcá$iïJ|Ïُ8@mÄĥ²Ċí°ġ´ÔdÂ}Ú:cĦìċ)I+@:zı-òL‡r{h!—Ì΅ê‚Ÿççò¤ş(Á#Ŭ§jƒŭà­{œGş˘œûòàâwA~ÂüAÙÒç2l&ù7“¤ĥ.Eí•8IJcv@“”óh^‰SGAA‰($ó“Ċ ŭŞĉ•)‘h!)J€(ù*’ÓOS”.À´œ"AÊS³‹ı]kNBqŒ] Pñ5•M-Ġ§YŽŬÛÀ‚ÒĥYSR˘÷ĦpΤ“u1<ƒŜ5(SMpòaĤ JódPÙ \ìà-ÓÙĊċöé‚\ûU\ŝż‰|żċ÷ 9~ÁóSò;;éµ=¨‰m`WܗLÏAH´/DPùǜşiÜLòĞôğanˆŒôOÖËìTÍßl 8òEŻ[ ŒĞìh^ô´-tÁ[ݽLêqÄ}H¸x„¤àé³ßŠ L+™ı‡käċ"—XJA>‹|Ħ–Y-Û· Ž‹ë(Zé] /I3oÙm;÷:ħĉw-„|ááY`wVôuÛbÈZğ×Ë5&%qL<9d‹qZöñ‘ß൐."ó‚“ï]êwIñ=Ŝ,~ÑK)ü½Á!ÚĴgc/8î~ĦŠ_ʙ0C†ÑĤĵ¨ ĉ5ƒĝ tÄŞêĝúpU|½Y$Dòkë˘>Á¸³ŒŜm˙í£lUövğŭŻ×¤Œb— *-~i.Ŝ}ÓÖ˙IÍ\[˜zV{¤é+ ùÄY&ŽGV¸ŜÔ:½7 ġŜ´„BœÜԓ  ñÍuIAe8ji ä â/Ċċwè† ÉïIŬQ áÔrĞ }&]ìB,Ñ‹pl`,ÊrċÒîúr +1вù…ߝ:”ß”²á–@’KĜsA­ó˜eËżÙì[Ÿ¨i›ŠqbiĈÎwĥ’ïLŜŭ+a „'A°€î:Y÷~I³žÒŜ†Ċ{žfk—ü 6zŝ-4m‰Ô`r@4"üZÍ´RHŭ‘Ŭ`ŝ6G]³ƒÁVÇvµL!Ú-–²k„ŻoÎĠiÉ /A'ß _€tDQĊ]IOM“¤ĊZ“ĤÒĞù–Ĉô›\GÂmTSRÄÙ½kí½p–V$šf>ĞòûŭN1ˆk=‘Á-7 Ĵžún1H›Mè˘ÙÄĜ~ ÓO½Ñ- AÄÔÑŜrDüJ!rúʍÚċħ:öj‰ 5˙‘nÌ ÚĈĴù|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ò6e]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ÖöÀïD¸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÷„*ÄTñ>…\ÀĉL|ċçğöó4ĵ*î=·ŸŻÛOj;T~˙şŭü˘ŭüSûùv8ÚğáĠOÛÏÚϗŭÛ²qúġġ˜üħ+šßRÖ8a?Ŝôü·$ì‘SĈ?ü• ġÒ™Éc KÂ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'uuwżŝ–ş°°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 6468 >> stream xœy\S×ßŝ›Ğâ"Ŝê{Żu×Ñş‹T­¸*(NâDĥHĜ#ì™6ˆì°—"Ö­8qġ××[[­­bµĠ:ZÛoìĦ˙ß˙ÜH|ë;òÉGı9'çœïzžç{"˘LzQ"‘H²ÀÁÑqÊdáO>‡i÷żµ7Uš‰™™™dqÊŽ ‚!Τ„×rÛ]ëĉû­_°{Ħ˙"Ùâ€/—Ù‡l]şmYĜv‡ËŬVì\éîħÚs—£÷Z'_ç\&nšôñĉO&GL™*Ÿ6}ĈÌO­G̲ġٜqÍ£¨Ô j5’ZIÙP£¨UÔhj55†ZCİqÔZê#ʉO9Së¨ùÔDj=µ€šDm RSİEÔ'Ôbj2ġ5…ZBÙQÓ({j:µ”šA-£fRÔ§ÔrʚšM™Qs¨~Ô\Ş?5€šG ¤Q.”9%\İÁK}@YP–”%Ĥ†PC)SjĊQ½İ>Ô‡Ô â!ʄ £ŝEˆŜôú´W…x€8Q|×dÉyÓħĤùôú¨D*)`ú0k˜/{/é}§ÏĤ>ûé[eö‰YBż1ŭ’úáŝ>ŭ/ 7 mÀ//š=è‘ù<ógRWéÉÁóĞ?d²/>Èŝà+ +‹U9_Yün9ĜòSK?ËĞEVyC¨!ñC-†Ĉë5Ĵ`ĜË˙Ĝñ-œÏÛò{ùğÇ ŝ§ĥĵżĥİWƒĉž¨Fë%öwPôAğPŠsŭ:U–rˆSccQ[Šı×tI%ŞoAî|ĊïĤ0“iê‚||+Q ˙š.Fġ{“ò˘3ùÄô ‰ĵ@Ä*éëXcŠ-iŬĤĤvT›?׀£ĈBú Ĝh³¨p;7ŸŽ‘…ŞQ·m6<Á4ş€ĴÛ CüfXDKżĵ}ÌıżÙ!ÑÍĞĉM2žIżZwt6'ŭf rġ et{kċjÑA­ĞŽÁ·,˜B i9](|ÇEò#éHòġİ@üBŭ]żL äŸ€Ó ìdôC`—‚ĠàŞ6˙I‘šÄ Z˜=É ú‡rŻmŜvùQ4ĴġcŻ•;‹Ú˜[Ëïc1‡ƒiıp†*TÄ×tÊié›ŬF.R`zfu›RŜç³X ÁÀÑ?ÔÏwŬ°cċtžlœ¨†oÔ˘‹¨ÒˆµîàCvüĝ6Á&ƒ°ô—‰ zŭò Ì9ĵÏ`mî<ŭéúġ7ŻÙOŝĜaž-ßA% Ĵ$GVхU:Ğ#şWŽ*ù8F~ĈĴcUV•ċ •ä*ĈáËĤxİLÒóô5Ĵ$ƒ‚›bÔÚµè"ֆjï²E¨Ê7,)6!‰KMFİQ2ŻÚMeëH†ħĄ!Ĝ/ò?|̏÷ ˜¸@´+•OĝÈ&`b&ÏĝĈG˙è¸ra“MŸžQ˜&¤*ìÂ25|˘†Żğ23‹ċĜ@1{ùÒıĞ·/͟>a‘ŭ˘9NqxŒÉá­G˘çż€Lŭġa>žĵôy]jÛ;yÜYûßċ1ŬÍû(шŻhíšYȗwʃèž'ĜFƒĊ#3`ú ­x,é<ÉjċÏ$`ÚJ2‘Á½WáXldÉmë*HœµÙRTîéÂŬ¸ŬuÛŞWŸ™ŒžˆxàÏĦ××'š+T<öŜ`Ï ÑĜ@/`Wo˜5ËÖŭñ“vÍwwŽÏµôy¤†Í:‡YhŽk\ˆÓŝzf} '×òôìÜFC˘?Ap·—I¤’m(˘i?*/ċžv Gl°l†T':í‚Ŭ’4$ĉyr½ XoŒ#0I‹ZHƒ –³?_~ŭ8e@qHbÊˊjÊ˘XŻ[ĥ̑—~³_żîeÈĊ{¸ÍĈ†RĊâ]ĵ„·èµ†Ċ9Ô²0Œ~ïه¤żçìƒ Ù×)÷2ŠìÇG;ÓŬ%j~S Ñjµ…ôœ60#$]–ı+‹|ô%SŬĜË÷ŝéœ2<-ĵĦ+…5Ħ:’ċ İÜfĠfJbüYà,÷OŜ„?‘óÒ§-ñßE9 ÙıÓk²Ëš=we\RIòÄáÇK"Ĵ>·Hٜϵ¸ŸK­%İ=µñûSĵôú³*ïLFWŽ0M Ç|j š¤ĠZpc+xÔ9ĞŻÁ‰Gèhl²ÁĊ 16ŸcaÒwżŬmşˆİb>-<+şşëÈÀëΜÉyÔo/ÜJÎl6 ĊvxÙïĜ ú^ yéIĵ(X?aÈâĞöŻ9ip3jË>ÙÀÄ„ûTB4YŽ0÷pW‡mûżlùħFgèı£U u ÁÑô€à¤Ŭ$eĤ ħÓ %ìŽKMĦ´\RĜMGcġ´…Ž{zž^Ò=s‚ÀŠ~ ½a8N7íQ"wô„jùԌä,EӍÍDVzŠáÈX „ozˆ.¨éN—ŜŬZĦ†·óù+Óên•€{yˆ†>xˆg˜n7| ½ġIŒ|ĝa@`ê×-´ÈXÏÛğjI ÓR$rӒû–Fg‚‚ ҔUqҖ­‡ Ċ5bx^ıı†yú0x½É-É?dĦDH$µ´˜ÔRĞ‘Í3 ŜÜ)ßixҚus$Ix‚\!Á„#%•‡ŞµûĠ˘£˙—‚Z€=£v&†%ĝX)è¤Ò8UBéǐ`Yġŝêj a~›‹R‘ ÊfEÉv9ş§F*23íeŞÂJdğü·îßŜòò8XîÉàz¤- tˆµ;AÄÖîB‰ħİ! \bT¨‹-bf.h˙éT-H`¨êKÇ+=Jċ•ˆİT×Ŭ‰\ñĵxĜ4löóh0~˙ŻĊ]€;RġjQ{+T‘œ=Ş5e£Ŭv%î"5{rä§fĊVʐ1kôöŞP#ß)—xwsż;ĵy­żR²gÓ5옕¸×-3!+>?!íE99éY?@Vŝ9FÙéOż÷ËrI£Ş+×nO–ÇùıE‡uŒ÷–U•)ÓQ1³?…rĝ)íïĊo’ô~5¤IuܢHAáVžċ¨”Ӡ˳P*d.T.—t£Ç׺= fŬ‘ügŒöÚĴ÷ ŭTZÚRçµ­hËP,š “sÇ˙Aò´İİ­cÀÛdĦdĞġ܅+nt›ği:ç4Ö ?^áĥ1FÔYi Î1]*s™RÔ"‚Rİ;l UèıġĝéSÛÇXÂ@#ùÛ)7’ĜÀóµr“?ègG;9mY<ÄB@‘°+`{ñÂĜtĊĵîR¨ +ĵ´êĤ…ôϐBví֓ç.;vöü§Ġ›7;óS<Ĝôԃ-ˆyrëfG}\]x-ŻÊŻÌĜĞÌÚ]‘‡˜âŠüşŠ†µ1ž›ĝˆ=›3iáĵ™[н Cy)Ĥb"â‚|‡ Yn´­+úĊ03Ŝ,‡Á0ĝMÛÍa§×ĠpQÙ[˧ f˘P|Z$JDÑ1Š2”†2Ò 2òè‹Ż²cç=V’ÛĜXĈWċ˘[ˆéS4cóĵ-cğDW="Zk?‡Ĵġ/:~–żĉċ˙ĊÂ˙áZAߙïj ̉T´ÓlĠ”‘ʍ€ÉòoÒOޭ܏ÁuĠd~ ŽŜìżšKĠè0óç÷q/úżİD/Zzú.Q²ġ¨ÑŻ<Ħ­Èù–zûÖFìGÌĠÊl$.QŻ >>ug¸:qî*ʉĞà˘ëUò==İ{ï9¸½\LÎ÷Ú´CX}4Â(Mqîg”O§ ù4‚–ÒĤšÔ•ûùùù•Ġ֖—×rŬg~ö:]wğ.,Ŝ5lmâ÷!h:ĵeċlż 5Ûı­5ÉG%ŠbE‰wW³-uŬFyVAc.wÈWqtÌÍG×܏Dïċ·ڝ=§„‘²)ٚïքNZi9uúNòÉâ҃ö$–uw–úŽ')Ü7žÛÖ´6ߕtây³g.9a÷}éx2Ï R˜%Ž8Ġ:Wĵњô¸b*ŬSAç$…#7Ŭn>DfíBÑi‘iñÓP6SXëó_Ña}ÌqÒ§ÚßŜë=ÄVkÀJ–ŬÂÚò=áP=…Ì7PÈ9°ê”;ġâĥ˙EÔ#R_‚H½Z}•˜6Éñ´gâ‰ĤFżĦ½Ġ[:ċŒú£Nt=úğÛ¤ú>Ñßìé\ÓǰĵO×í ÁĞ;ˆ˜‘˜WßMWdÖĴÏôp;gg'û³rs½ 9ß7ë<üäċˇO`÷_ğ’ŻŜ•t? íkô|ß“?NŻÄS‰6R>ö­ßV…šĝıĝr”Sèç [áԔ\×<^keÙô™HşuçıĦ:dUƒJQnsO9ŞÍϵB_á-܉´£ÙÔú†o×q›Ä=¸ Né=ŒÜyĝB"mé8|òpEA¸=‡ċ’nÌıóΤ˙uJю@OġŬµ‹ÜïWâ…é=oä+btÒĥ/U‹öhb­qǞna:Û‘èÍĝÇĝċ Î ?âÄk.°A‘WˆâH‚bIċ‚]’ˆ:C™ŠÒ„óÎÚáĈ2sĥ^Ĥע\^Ißì,Ëô¨$½’U.?yeéÙç!*é¤2\Ï0ejĥĴe“ñJ”Ù$œÑZŭv$‰¸Œäӊ·ŭXC4íhŻ„8oŝïŸĴĜŭĜEzâۑBĴïİ`N;Ì-AH;I¨daß„šš¸Ĉ;Ġ%3xħ„£;Şs%9cñ_ÊîòÊ,tĠ2%Äi…ŠžRVêcR Œċ”¸WZjk׍bÚáwc+:`·f;aĉçZ1ßŝ³…+>ġ[šsÁ˜š“ML­ , ŽôÛaŭ`˜À AÌI˙|5÷W"DġîonƒY„y‡³îg¨[ŝ|˙ڏŠb2“È+…1%!ĠUeĊġ-îçǓz‚ûaWNúǂÉü úġ˜=­÷â¤Zgäáĝ0kv´„¨S³YİY BŠ D^Ê\„N›Td§YĠvċôŜ;·Äv†Ŭêşcİ´ÍjÑ1ÍEŭQa[ĵÌïF¸#G^MĊĊ{ê¸Lh†I0_}ıĴ$- 0‚‡ô‰Ea˜' ċ·vIŞÒ.ı ijĜDrM(ü,"\­>‡Bèdç;o=ÛzêÛğ7:ŻvĜ<Ÿ˙ևŭĉx şÈܟy÷ĊfŸÎĥY}bŭ·ŝœô·yÁKWÎ2ŝé4ĉO=żcÙVĊÍĈĴµ]ĞF}éêOO..[Ĝnµ•ïÁIÑżİ¨+Ô/÷˙›şûoJ{M?é™…BјôÍ{ñfKedzp-°Ìeħô-˙ó ½1³Ú ™DNÜQw…²Ġl,8gÜÂÖîÊà˘ŒÌÌ,TÌT†•ùËBÂ}½K’ö˒äü Ĝ@B‰XĴ™ˆĊcĴI,éGS„îùYtĥĝĝaÊ`mœşŭFëÍ£µ!E|µWŝ:Ò *RQJʈ@qŒÚĠ֜žUÀÎÀ,Z“R lò>şħV]Vß~ŽÚH Í/][ÚñƒúĊm9˙VÁ ¨c˙uÔ­Cë\]–Ĉ0Ë!‚Ċ‘×Ĵmċ‘g²2òrPSPçžĵÉúÒ\`b¸BkÑPŞŠ¸ƒè_zĉGԎZü^àÑ5Œô˙ƒ’}ɧċEëb“˘QCô|Ş2żùǛ¸O×Ĵk(|,‚s“à^QK?Gĥ( S0ۇi7YçtA§NjËcô|OĝIgğÀĝƒV^~yŻŭÒ§+;MĜ¨µnĦ‘ñ‰)òĦSċÏ΃ɿ|ŬÜŭŭ<ŭŠ=Z§€sûŭvÑA­£Xë/Ùü}„‡w"9O²|'áá}‚fyƒ'²ÍdÄK`èżèh/2ÒL4!Y`–êma$[ጵ,*LÈËÇl+&èċAàaÈOE{²3P!““Tĉż oÁ–8÷=1i=wnŝ5Ğ3ËrŒ;@(â Š€›{œvş5Ż51²ÄĝÈ= ™)> stream xœ+T03T0A(œËdn¨à’˘ҋıı”cçendstream endobj 186 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ñ H ä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 162 >> stream xœ]O1ƒ0 Üó ˙ @ ]ZUm?eÀ‰Búû’:œóŬÉgÙׁmù_ÁXց·$i²,Ê ´Ċx°`ƒĝFÓS}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 4041 >> stream xœXy\S×ĥ>!šsŞ<ÛŜsĵ‚óŞ·ƒÚZ•VœZgĊ EdP ‚ ĉ$+ ƒ@”1LÁ*P&İÖÖĥÚj}UëkĞ•>­CµĥÛĵ÷ğ;Áĥöŭúzû^N~!d­½÷úġ­o#cÙ12™l°ûÛĞfYż<·ƒèû.ö%{9ĜÊy~„›1ĵ×ħóiĈúšĵ Ä=4|aDdÔâŬÑŜ1Û÷ĝìxÇ×o…ÀޝğÖ*ƒì§L›ŝ ‡2ÌrĈ•YÁ¸1+™ĠÌxf ³–YÇLbÖ3žÌfÎldŜdŜb^`2Ìtf³˜™É,a–2/1˘·™w˜ fÈ81<ó3D6„™HwÊ b2e޲pÙ·vväóċ·M”=èĈàMŠż)ZÙtNÎı‡OĊ<ġhÈş!ŬC'E{Ġ0÷avQŽŽŽËžv~úÈÓw‡nĝA'…Ó6gWIí ³4ĜorÂAÑïâHç6|üÏ˙öŜ™÷ 6.HğE‹%ÛĦ/ÑuB'hiŽÚğšYO­™5,|µ! ‘5`l[ÂiΗî°dĴj°’=—›şQ$˙k˘Ċ*húÁŒ›°Éì„_ùÛoŬé,a´„ĵEŸÓ!à3ŠğÍŻ/ŸğháT‘LW FĊß+ŭì \ä|•¸ŭœ²BqIŻòûËY?jİT8˙$ı)ı[7nöŝs"7ŠÄ“\á7kr,"VâJıߙğü 7ÑAÊSĠH“L²ÚkĜxM.ĊàNGş>$ŽÄyÜh2‚ 8Ñùŝ}tH4ñä7€·)òpX‹ö´Cô˜šëş5B4–îĴÖy‚7ĝÁÊ­![ĥD{çeî›j–ġ<ÒĞċÒéżù@󪓀#ëÈĞä%âEĥl2×àìñoĝTäĈ'@j²VL!Sˆŭ|7à^&‹áAĴÇ%Çş÷Ó<òr¨OW Ye"&°û!71U­NN(ĵd§˜¤gÌħ5N.bùµ‘Λq1Ŝà-§N”ĥwùôtÂ…ÇÌÙ^U bB)èĦ„óTfÙġ p8ínHtšĝ²vCÔv_Ñùà–L°{>;m›Ĝ/€•ĈŭÂħGç}keĜBÜ7çxTZV£K„.´,ĥ˘Ĵ˘¨>¨Îkı·÷ۑ‚•BY2ĉ(tL_ ë†#Pİ=c[)š] Îo˘šA9ÔaĈv‹ G÷âĈıtğï5˙ÔŻÔ(ù•m†)nGà;hP[s²/f›DÔô²wò_k@ˆâeUà$a:f)(è¤Àİ`Z]LFá MT™¤Ëe–nLè–i6o­}ş&99-]YÌŜIáuÙµÀ3°0Ĵ"J´(v'w'íW—Çĉ˜bÀ—›9âdž}s[#Ç˒o&cqYĞ}%Àm’š żNjY2èjäħ³ zBÖ²ó•ŝŝ‹àÛÖħ”I*S<…ħċ7ĦF~Ĉ†îŻĤ·k–LĥBu Ô3D2‰…%àŬPŬœzŜƒŠÚӜsŒîUNÈlf=’sşDÄÇ16x$˜ûdf+trŒ•îóz—‚ÉĴĜö€môñ€í •ÒÄ~İOô·öıż&qŽT4ÎA+}ÎA³ ÌpvŽĈĜHSV•IϚe’FŽ‹yuĥ&r¸ŞF(Ìì6M¤v+@0ĝÛ³PE~8Ž KvÜ>u.äÂ>}Î~|Żş”u7tœ™ R{B@İ ÑÛ˘j5û÷B$i5*W’ċBŭñ²}+ċ}ñ:_ŝAsf™5ÖG­]à ñà3°bĞĥ0˘!I“ĤN}\Ĉa5mfFU™ġUt[ÔÛ!”tġPŞÍÏUĝ€4é*Î"Q.S° ­ˆönĉ¨êĥ³mĦgóĦk΁8ژNäÉÏ.Y‰†¤"(‚ÌüÌĵxċGr03)SU£ŠÀ—™ÇYĠŬ€ŝĤÚ[ &§Ö˛n✋jF:oRá÷ĝ,ïZ˙VàLgŠO†ĴaU°Áß:‹tgİZĵšŭn*ÚÜ+oy/U–ĊVU—”VµnÍҊĠUıµÀu÷ĝÎwħÎUÌZÍĵôEîQëÁ‡›u'ôĴ@×ĝ (Ĵá’?ċ'Í ÚşyĞċè'=ŸáÔl*i‡mj"+”òċx £ĝÔ\ÑGùû}ûÌKċÖ2ĞCéÁ}aÏ/e.Ò¤2Ç%ĞÒӖĉòú½Ô\rF1ßXaĠ„i­°‚Ÿ‚^ÓâGÂğD…­[aù*Ínà(چj¨…z¨×ÖÈ\¸A½ò(f…E*ÍUuĤş+\J˘h²4P%%DhiP‹R×Jáé6‚²>Q5Ü@c•I£Mè×BMTĦR…ÀS*êò‹-í]Ċ‡(³DTyWmÓŻ€@Ĝœĥ.Ì'*pğrxoeDS|-@ —ĵ†7o=rü7Ġ>á>ħ÷Ĝ!RÙ?ûXĥmŬÖ³†vġaâm*ŝZФTŭFŽKg>­²@ÏUY Œ’h£&ZëMiökUÚ Dc ĊŭĴKĝЍuÁK`T8Ĩġût5ûÀÂUĊG†ï‰ ġjñ{ïÖS'*\,ÍÉŻ:ü‘~”™ T+!áÉŜi׀?d€*#)#eIvq6Ğj°ñğÚ™ċn½)—éoüîŒèxĉÂJ£ĞŞÊö›?|ëL2bòh2œ'âëqXQjhbӄȅĞ<[:ë=œ€/~Ùqşà¸&œÎ‡Ç*öŒ­Ĝ4½é<-ĥ4 íyÊġŜŬJŻ-1>Th|*ZÂZ5ïS”;²U)Żo6ƒ8²ğÚ×Zˆá éÙ^Ç^§âî8z"áÉĈáÏÛZËZ/eqòŻ2'=|²}ùżÈœYšg–£Şo&ŸbTC Mġš²FÑ ĤTpŭl(lK§Ŭ }Ħ‹ÎĠ"íñ…ÎjQ*`×ûíKÌ˘€*†}%˘ÔÁVCçŠÛZÍ^í&Ĝ şĠe~›BĊŝ7(ä[hy*qÍé¨ÏÉ%7:Ë³ ìÇĠßS›c?Ġ•€U\!ë§Nœ&ZɃr³zS?Ĥ6Z-M„Ïš%ïR~pQ^‹žĵĞ^˘qŞyB”RqĈä‰}ÎĜâ˘Ĝy֑víyĴ´‘-…œ˜D­6>Y ûŭxI1¸_A§ĥ+їŭçŞRÙŭ3rĵE’yÈRÒrCvà"@wÀêpŝŸÍÌÔ ‹ËIÏLMœîNdk…M“#܀ ÷\˘8A†ĵOo.0—“•™#ŝ–iênÌäáßÑn=ÊW ´Ïém4I“˘N×ĞsRĊSëю<ä×0²‰Œ%ÏiԐÎİġ)yĈŜ (;.tŜüž:ÛÛż:•nŬK—l^ÀžzŜÎö6ƒҊŝ§hò·ĴŒÜ’ĉï#ì6ùì_ œ+aW˙*›vŭ÷@šñïüŭk‡>6Z´quB²:"‰âœdˆ ‚ɔ΄%AĴƒ0d+öO1Ì?5MŬCendstream 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 << /R17 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Λ7ìñEÙĞlğü3¸ÉU~_é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 << /R17 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ûéÇĠÇ­{+<ÜÉ\P#ĝAÊMŭĉoÜіž˘Y_"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 << /R17 15 0 R >> /Font << /R48 41 0 R >> /XObject << /R46 197 0 R /R51 198 0 R /R52 199 0 R /R53 200 0 R /R54 201 0 R >> >> /Subtype /Form /Type /XObject /Length 1115 >> stream xœĊVMs5Û,K†-B „Ż$ˆŻŞŬ*ên}^)(޸ḊÎ Hr°MĊĝûtK3³=^û@*Uĥ;’ZR÷Ó{OzŬƒ#g"!˜‹öˆÀœ÷Áıùw9ï_ġż™ËŒü_½ì=›R2€„6 PœġÁÄÉş`ŝê_ôżöŻëÚ֓‰!d ¸ìlŒĈ‡d! ÇY÷鉏ĉÇż§˙?3gäŸ3“ê÷óDžùáT6È&[@ ĉô×Q# g“ÑÄ­7§ŭïëî`ÖıXpŬvGҀ\üş{§[p£OëîŬ³%•Ëş[n ç(Kü{Ŭ= bh’4—ežvÙĤeO‰cßßlıQˆJXw+(>XrZçCŬóìjÚôì²N ‰0eàùé/=D‹%³ċJ $.âO)âŜ|ÚpÚ˙Tƒĵ´äÖĈ0§p­´Şĉš#c×SYÔLĥ /8ˆ-•èʐŠÂ³îAäôwXÌĥPBΰîŽk”v é\>Vß µ¨ÚĴʝeÑĈ­·211Ñú”û'u ïy#•û%§ıĴ`â\/ĉĦúĉȖ^ôŽËù´Â.‡ë$—ÏšQ3êÓċé²5}Žj=?²–DM„žĦÍĴżèmaĤàD°{ päRlŽÀdÛ`ĝ›?ŻXcĦ ÚF‡v^Òĉż4;×/6Q¸í4䀃Ì`feÛ ”÷wd^1ħ³T\Ċušp8!Z‚ À,³lƒmċà'˘šœÄvRÁrç ċZsċèäŒe²VÔ䈭Ĥƒ]Â<²jÛ mM;UĜá\]ˆmâk/`69D› °ş¸,§Ġ…M]OO ™—˙ĵħʀqcö›½üÜcAN•ï°‚œƒ,‡Áċ uì9Ÿz’h]”äŒß˙oŠ*&FùptOŝÍÒ3îµß3Í" zĊĞ•‡˜ŬîŻnÈúٛZH ĴÂĞ e´Ż*}ȕ´cvca;çĈ-³Xąĉ†şšqĦxĦìçnt_ÏÌef`‡Ŭ7ƒ*‹Ì&!‡Ä8ĝl™C‰‡¸ FëYsr`Ñ£‰ÉċMöùeİEĊ5ş 'GQ2&N;Ĝ$Žı˙˜Şv£Ân3ÒoĠw“^D‹HÙ0Ċ3`êĈĈħs…ŭŬ'Wşuóñ2 f6żħ|â§ĴÍêğöĈztíġö½jiz=ـ›ŽÓ{'°KĴGÑEßB½‰)7HŸ yħè#‰ÔXúèf?ġŒäa.!Mô,7J•4ü*Ï$hŸòw-rvìŝŽmsïÖϔ%äSI•FĦPŜĞş7Ċ½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 << /R55 202 0 R >> >> /Subtype /Form /Type /XObject /Length 59 >> stream xœ+ä240631R0362Ô32T0ĥ4³Ô34S040°Ô32S(JUWÈÒ25UpÉç ä ë Š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 << /R17 15 0 R /R7 6 0 R >> /Font << /R15 13 0 R /R18 16 0 R /R20 18 0 R /R22 20 0 R /R32 28 0 R /R36 32 0 R /R58 44 0 R /R59 45 0 R /R61 47 0 R /R63 49 0 R /R65 51 0 R /R67 53 0 R /R69 55 0 R /R9 7 0 R >> /XObject << /R56 203 0 R >> >> /Subtype /Form /Type /XObject /Length 6204 >> stream xœµ\KsGrŒŭ sœñjZġ~èâjċUìÚ4…ˆ=H>Œ  b €E˙‚ŭÙÎGuWVM5wƒv Şë™/żÌêŻ_ÄÍċŭ™Ú\žŭrĤĠ˙•˙^ÛüáüìëÖÀ/SV9lÎ_Ÿin²ÑÉMÖıMôqÊŜmÎߝŭ¸ŭNM*›•ہgclLn{·ÛĞ)jĴÛŬí­5SÌaû´pZÇ`·ĜÂgĞL‚gĝYeoüöŝl“ QoŻk?×ċŻàç sJfû'’LRŞ}^é+žTRvûWl²vÙBçË8wĜö@çf5‡ SŽ.o?ĠuŭP_“cßîLœŒ²ĞÓĝ´KvÒY'ž… ùí÷ÔE4Ñó }r*ĈfÇŬzV:GÙâ†gä“Ŝŝ6†ĠÙä·Çw;|1h•·÷ğ˙9˙ŽX{yÄÖĈ)„Ç|~qĥµğó˙=ûîüìżI@,,Íl‚5z2zcsȓŽ²Ê“ñ›ğW›żmn C6<–WF2Ġ¸ÈTĥp€iTš‚Š,S˙ÓĠ0Ž•uIç@vœ£³ħ°—,0¸o°û[ŭÍnïìĦqRÒ~£î\Èf{x‡˜”HÌm=´kÚ-í|tÜĦżÄFÔîQԔ3:n—ePÚÜ×Ü>èísnb–Âs$‰ÈÁ˜häı½qĵ.âŭÊÉt˙ 5WŽZнèžZädmĜNtÌ{­ab&nö8ِ=ïEŬRa{àÉù@|<‰ ó?Ünܝ ,tŠ °¸™ÖG;qK tŠĝŞüYhفΠTÔ––½7ÛohĤ$mjó§Uññi$>9âäw ô0£ĝl˙ŽÒûġ ÓÚ08Ŝ˜< ĝ|R&§èéHŞşÑv&oI‘ħ²(oÙmQŽÖÖdg ÈĴi¤XÖ ïÌ˘€‚ŜÀL¤€Ŝˆc>`ï6|vvÌ/8i˘äV72Q Ċ=v;·VñÈ?ƒ°4b#:ıiì3µĈ˘`àü,pŝÙ§Ö6‰N¤Œ ;ġF¨ÛŻh"u6ĵDK4o8Hġ9` ӆC@Ees²÷hœµ†I|Än“2ıħĵòùĤÎŝp[µb„%zYÇ;d•|pRŽb—îùèlEşŸ×H 0ÁeŝÁêvÄk^kRßCáB“Û: ĞqD­³+vvq:ÊY+ …üù÷É)`ïÈdĜÒÜfŻíä]6<ÖKĦħĊXPĜ­zRB0YÔ, Ĥeo­›´=ŜO òuĵĊeO>zżöf#bċRb/ıw-nÊĠ'vŠ1êŠŸ×à;‹ fBKó?MoMÒ~61{cÁ1jÚ¸'£ï„1ú-D!’˜3ó†ÜlKÂR~ġ„LïŭĜúèI;e„ġñ Ĵ¨„m½†4aZz?£Ûu£³|‘|‡ÎY‡$Ïê˙Ĉ†á‚‡Yĥ ³²½ ĥlé2éÖâWĵŭÁË PÜûò.HÊÏB€„2߈7Ù΁Ö:Ò„=j•kYTŽSġ£) ħjmieÈ͊°64“kxM“5 ÄĠŠ~Ît•M-˜µÔñ¤áÊà‰s˜­Pž‚eJ%šÊ)Á<Ĝ²$è4²añ*5ï“4IĞqpĥ2ÑéŞú!TT ä-ĞûµÓà]Ià]—Ĝ(Ĝ!ï K|T1HÑÜĝqt W=@˙YVœĜÁìAvmŸġÁ ŜDÒw׊#}Ö ˙´#/݇Š0@Ê/ÔF/c£­iĵàÖ¨¨+°âyĊ7Mಊ†— Żıs„Âä˜uQz— ×ĝ_‹*5Rùu cĥWÈQšùĵe:v…–› á%ĉŝ 4³ĵÒTĞk?ˆ_…ğŜÓô´İ› 9còĴ2ĵZŒ‡7‚rƒD~]^³n\ImX#H?ˆT›ġŽ%M̐Y° K8Û*╰~ïKŒš£ ÙË)Ġû{î°l™ïKLxHDġ+öñ0“i Wr1>Ê;ž`Äxc Ó-ğ'ŬÔËÚG/j›Šħ|’Azş=úĦqë2ÁvÙÁĴš„TĠc¸:62Žß™  Ĉȟ­âÉ6p‰VEĞŒ˙r#b ğò+Ay”Q‡êg ¤Ġ_ góŸ° -5 §ĦV‰’– u&€™XÒQc‰o–Y΀·†Üq“€ĉpQeZ‚ĝíûrÒmş³Éò?ÈĤ„Y÷6EDoò›ğužp…ÓÑaR>nÀúOÙ§³Ġ ôï¸ÒŸ_^Rô÷£\Ëġñ”ğñxvÒ´5HHÊ=˖‡]#1Íà…ì&–éŞÌ/%²Î/ÉH;Dıï°êT½Cá 9z)€Ò† ì׈ÇJ`t\&î…ċ/Ë +ĝ–'cÚŝt'-û,Ċı˜˘’(àŞ Û÷ ‘avJ‰ħ/ĵĉ^=ĊäóÚPw ˘;ú;qˆžoTîiÏñ#ŞI­ñŽ› ‚Ĉ CcéR‹`Y\5I@ëàßĊUĊ`Ċ\‚³57ށŒ4½ż·/ĜŸtz£Aû•ïz×2ʟ…~ žNdböÁ[$Ùĥߢ#RÙ &’8Šñ?ĜB°˘Ĝ­h#ÄÜf6r‹‘§”ŭĊÉÙPß²“Ĉ,-Z°Œ~[ÊQ€†R}E@ğÊ>,Í/ıï̔êü¸‚p~Ù-ì´q%F|_şƒ]=a܌ÑŬàLµ+áoħ'™ DdJŭ”*É1Ĥ1 !”íBô T³%èñàĝœ—÷ §Ĵ!È-Ĝ•Ġß1O?m…b½`PĝÛç™ûòmµI?í`<€\èsbĈ8‹ÙGëC½¨'F!’İ˘7ğĜùf¨Íp:“rám>Ï;ߚÙ™ Yw;üêhëW^ì MÜözúçx`M½I^~ÜÜ+§ó 5FçĦİ}ĊM P—–^*Ì{ìYaVéÄ{’PĵċÀy šċXN$3=U½X”a]k9‹\ğYħê℠€NYÂİhÒS§ĥçUv"Ŝw¤§Göv•Ì•^ĞĠ˜2šĥ“xíÔ 5Ш³ġyrvÏӇı< ü´@ĠR½m‹ô @ü·_A/pŠĥèàq•|3Ĥ˜ 9F<ǜFıĝ&hbs>µòĴˆÓFÂrĉrœŻĜžë4Y/qO£†8ż¸ĉbdυĴoÒ%ÜsoœF´#IGdX\´& SÊŻéäÇâ3x!-§ÈfßXcFfŸs˜}á†}:ù4+¨}6I`P nşB´ ċí%Ĵv­˜$Üšè:Jrúm•ÔóĴÁ<ċôC,ĠĜOü÷˜­ŒQOSN>n$ğ2´‹˜E‘ À`FI½˜enᰃ ìFWAA-5[\ :bi™Û/ì”ÊôâĝI;W!N•µ€aÇÊöĥ w˜}îˆ^ÍBšżÀ½×1Fwâi +x·›Ïݘñ¸Ĉ!2³yĤw-1†h¸(ÀUÖ¸%ôo„˘rrÁó¨SÉĊ8wşc"Ñ˘Ÿ p?†ÜàšşĦx é’:ü2ç¤$™Ml›4ĉ”éš‘E#󎅁ŬŻ…@×Jž§ \À…\!z’™”WĞ$KˆZ*~f ÄfÈVİ…aî²İÒZt63e=ĈĴځğK&g/f!+š˘ôš( Ċš)+0rĥzsŝ—³óŭqû7Š  m=À9/tGG¤`m’ÒİS틿JĵJG ÁMkĊd´{@ò°y‚^ŝ,´EĤM˙r_'zC‡N ÏÙ´G ç'²omȽÀ6<…ĈÌmKywÂdpDžĞpĞ>_Ôğ$$îRÔıÉñÔ³‹Ê獒ÉĜë*ÇyS ]1 Yqgá€+.ΙŞérEJâd/JżfœžqŜu’ƒ:“)n÷вÀœÚxsúOdğϔù·6ĥ@ĜŝŠPñVñğQğŠHŝ ։–ĞäCÎ0-ÊħxÊÈ$LǽTÈrÁÍ}ž3ğœJħ@„ÀĤEòB_Ÿd´0C…HşÉÍH' ,ht_ˆ„}ĝÖX)z& @sϝ U(pUPàrÍsBĜħèeŜ¸ ]x^F”ĴĞœ·¨]<Éû*qÌ]ŽÈNAHŭàÈ[sOÜIŒG8tÒsĵQ}_½PÒû҄èôpj—f$³Ÿg´זÌm²7ûmL¤0éÔú Rïe[ìIĤĦʗé.é]šúà!–¸à}O?}~=¨Q”Œ}:ŭ´ C|ÁƒetĵYĥG[0skı¨gġç›ħ2ˆĠÈ/šÄdÈàí,Ógñm}ĵЏÇúĝ^ŝş‚Š“² mölMa†ñ2Zt¸&F´JΨIÀ 'NÚUY{Ö =£(”il?ñZ³B´LŜԞe =Ğ‘Âŝu³èG”ßĥe¸Ĝ‹şD ™ĵ(^*&@sáàŠRyŬ’ğíʜL[ú˜0­Q˙ı‡“DŜN"W<Ĝ—ÌJD´Ĝy~bz~vÙ>—é‘-mĤW6Á5(Ž”!i·|i]7¸£ŬE^M4?İÜYĵÇ"޵ÔĤ-/X6êßığ [ùĴ"izÛB Ŝżx˘äè#Ĉ<‹l/´°EĠ„äŻLAŒûPސ„üŞĥ=ÌEbó!‚b­)ò'ë Š§ŻŭÜ/•ġ·ìCéĜ`şpc&2h!h KPJdeL{“ħ6Z&•k]ÌlĴ}ê$yxŞ Èı­Œ³f˘d‘‘C)™—WüT8Ġ—‡,(˘ÄT4ħúO'é~Djâ(d]Šu ~C)ò]@vHÄĞuĠc¨ı:AÌÉĉıż¤[VáÔ)´çx&svV ÍĜmž4A*èN°&Ĵ1+ëıùZ–¤!îÇw<.¸ d6×i·Ġ jÓg9ŞÚYGĈyQèŻĉ Ú4ġ(†ÒX2aSCemB‰Ħèñ>ë{ùëJ D|&à^]R9RÚĉĤÍâÄŞ˘Éèĉ7|͒èw5”ċR˜¨”ħâ⢌Rž˘ġ+x3ȃz-)ÚQö [ gÖpÂÁ hg ½Ô< ]!ġ ŭJ)gà=‘3‰:>?Ìĝ>Ò}ĥ@(Ëô˜Ñ˜7&öĊ’ûQ™ċ ùwUtËLم‘C9ĉŝ>K Nî¤Üú›ĉ"7Í4"žıágtgXíxIž5feb„ĜT֝ŽÂ ìçµÈl)²<Ï>PğÛّùB-j²‹€Z€×Ú^íFċx|Í7ġñëáËŬˆı¨Żê£ „.‡Ż‡ ël<‡wù†Ë|Sï‡Ż}…ġÈÌĂ~êëáĞáĈó½xl:OX&Š&ĦHżÀG,Nċjè›ŜĠÇkYœŝıUäÎj‘C+Ùè€C&nċ|—˘: ólâ{š ïËKq°ĴµœÄ•Ĉğ1[ż(iÂDÈ×sÏñZqGX.ìáE´úM(mÉH Ñ"~zˆtŬµ83)ë6˙$â×ÄĜ–QĤĵڄ×ġÖŞ0gƒmRZupÓáéDKNrµm´A³€ġâXġ‡ÇJì›0RŠ]•ïùg˜ 1ÚÍR_áqtü9šċó&‚+/ÁĜ1Š…_%É_Xx3 ZìÏOÖ kAuž~­jTk~TîÁ_$sܒšk’Húċ 1CwK1bÍ}î8VYëŠ-\[-ï]Q§QşXüsèĠKZb%pž V?ĝEÈ2.ŒR­™ëŒSıAx(7¸‚š?xCÔëoi".{’1Z ĝĞ-–.Á *w%§·z%f9ûËz‘KÜéZ‰K?òàĈ­^™îûÚġUğĊöTꕜ/ŸœyŞĉ]Êö\ĵqšS!VT„§ċÂÜÜ~Ž0_˜£ŠÂ’áqK1߉|‘Dµw˘g’[ŝˆ¸qœ [yï xNú9N]éïj˘NÈí›Ĉ·=VjÙ~tÊ+bÍñOŬ½…¨q/ĉcĝŻĵ'$Öż[ߏo£Ò%…’˜…ñù>lÓ9„°ÎÔoĉ|ßäB–¸ż’P&#v Ĉ”~p­ı,=ގ8ħÚ ½ċjĜsڝ쵍Lo•‘‰N-Ċa¸kċÛÇħ_´f_ÙQĈ16*5¸ĵgÙq­É?òݍM_Ô$Ġ‚İkî%™'^À[aħ“×K½LÁĥhS$ûÚû„bÁŬÇÏĉTç³+~/“SĞUß+t‚Üó&hŞħë“ۛ9$wP–)ĥ Zìŝİ=MÜó‚ŬäçrüB ;L0—Ï/<Á7CWLñyŸ_à5(Ğ×I%ÙġlñA˙ĤÔš \ÙĴi·Ġ 5éżW([לM™Ztŭ°ÜH£.¤Ô w&)›rvx,‰~ûhĦÌ~^Mˆŝc&7-´3^ĦDLVĵlk‡Ë‡ZJÛĥ8·İóüP½Zû-ĵЇĤB[@(rW+E|R5Ÿ-ĉċ’™MċĴd}c_y_ùyNLĉ5—H‘!4IígKèğ*3Âïîğ*<§Ġ{°²zjÎÂġ_UĦ-NkDêİĈ&C–+=ùş@m,ìk£e£rŽR=BġáZĝ]ˆÈˆ=ÉÌgš]k„5”§,TXx ÁÍ\öi"ĤQ§/žâÇÓ ĤŝxĈmÂ萙´Ŭĵ;3˘)P„ù—ë³VĈ 7xĠ#ĉ†7 :@ …Kü íí&Aß!yŠĦ=Ĥí-Ç-ĵGNZ@U`è È63h<Ċ‘·ïğò~AH…U¨+ ,&˘ÑäÍwƒU7‡•—gtĵœcÊĝÍ(½‘ìCŒŽ?GÀOġ·òt·<½YžËÓġò4-Oϗ§Wƒ^îc̲ŬÔè&ˆ¤‡{[×TÚGÙ^kŜÜ]˘oğÌèi- $Iô g\ê A4ÈĞ˘°˙Û;ÙèםĦ/šYšˆ3y}GžÌ qTòÏ}’İ&”ÒY(‡µ \ċrÄÙ.Ê/Ô?żĉîrıcµÂB Ù[‘ïçoӖ–`Ó-u×Ñk>ĈıïKñ,:ŻXĥ:7[!ŞĞ÷—Ÿ³ ûTì[TƒâĜIĵrŽ–d’ĠAŻ<îqrI:.œOHĥ™rĠ…ÜíΔ>bŭ¤Âİ•,Û –ʧNgˆ25*7 ‡[ŽĵĤÎó šlʞ—ĉ·TÊÁ‘ĤÀä!´ Û·;aµğKñüŠğ6ı4÷ìĤ—-Gġ^MGïùç¨NEĦô)~f‘D#K$s½hÑ:Ó`+{K˘xÁ–è%5¨{Uri\F§na;}Ĵ$ÀuĠwħ,ݍ7u-QÀÁñf˜´lRÎ#g*J,eƒ²‘Ħ|ħ xÏR´?Jĉe#OfMKSyĥ-˙Ó ­š\Ĝbìk*ˆ¤j]Aíì\0Ĥe(Ñ~1Ş$NNĥĠ;ĝĴù+Ç9Uïù˙sB•~endstream endobj 205 0 obj << /Filter /FlateDecode /Length 5336 >> 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ò‡ÓÁy€Kxgç|q²uÎN v§-UÄŬaÌ×y³żs0&âIĥ&NJç¸9Ù6™ġfy²µÖLp8ŒšBNFE8 -h ˙†£Ġ1şÍ…xSlt‹kXĝCŜĵĈQccr›ëù £ĦÒ¸_HdŝöôèwÈb_‚½”sÇż#˙é(İ<kĴ ÀéĞ#o,ÌóÀċÑïŸÊì0ċÜqÔy 6#³ÚüNí€ô!q`aŸ6Żh({ç[kïÍĉŠž•>ï˜rˆŝĊ|Ġ ·tqfı™[;X1§RڜßĥNjöx;||Ŝ÷Ç7íqj7ŬÄkwr”/µ ca‰óE*iƒŬü)“TLAovW(J1) èKÖ)"É.ÊêĤÓ0ç'œ—ÒqpX9d?Ÿà–’“µ¨tNÉtHĥ œÑÄݝaŜ³€’ôÙÉDH]•8mŭÌ"WFî“ı^–22PÂ³È NÁ82PLx)edë È_–L{·ÂÊÛ_w¸lGÒÄ/ôŭÑé_˙´ız‚”>t†k½%îp]ĝo>!˜e 6e‹Gġ,ceúeHİ×½ĊkçuÛ!}ÇD½–·Ÿ¸RçjD/ë“ñÄ+7óä]v|qoÛÍè­óÁ]Ìò%ĝ|3ÜTĴż°ĉĈ¸‹!·v.÷ĥË{e/†›“[ tċĠC˞ĥÇ÷CÊ^Œ” `ÇĥòĠéY{áßÛ×íñğöĝ}{üv@5"Ä?×v˙J+j‘fQúÏá˘?ĥÇ}Œ|nGÙüúĤżŒi| ğ˙mEŠFÀĦ3ı‚˙6ġ.}H}B“ôé5úîñS­ävfXw>7ÑŬ|CİĝżR€›'í{H>7&ß O:û!k’€âC€ÓîĜ¨0ı¤ç0³.ĝuÒ^ïövHô·CĝyӞ;4”? —X‹Fŝ™‘µ ÛÖÇßĥǟOŞ o|SŸŝŭy;²‚­żŽ/ù 3Ŭaj?´Ç‹öĝĥ=ŜĥÇ}{ĵnŸ—ğĠiôĵ=~Ùµ|m&ßÀ™A˙ÔYż 7K2,ïóĉıZ˙ê!ËÙwpkˆÜ-§Ċ˙Ôĉ ³ŝ‡ş÷}·[²ŝ$ ïŬĞîÇżá½â.Î.@ÒğáÙÇĤà½äׇ/s6\J(ŽÔ21C¸x‘н6>ùÙpçqYÎC×ĵéÄr)˘CaÊz&ÇS4苏Î&!x 6uÑÖàz(­ Mòúö!Ú>˜?ŝk¸˜”Ħ'Ÿ×3oŝíñûċ}|ôSÔÑ£÷ŠNġ!Û äŬƒaäïx‰mÍb.`šÁÒ´×Q17·QaûUUr…‘l{ 0Ĵ˘³!{Çú}û {WġD“ŭl(QO ĥŞ%ÂÇħ…‡(òŞŸèÇHĝÖ-Ô\˜…'òÀ‰ÏŒÈl¨ WŻ˘ÖÁşÍŝЧX Ĉn¨³°]“ñµÒ² œž—ŝĴQöR$ñ/Ê 3–ÌDŬí-ƒ uÄèĝ3ôÀZj‰ïéY\wíñ# #š<9”˙rüRéS½Kyߑ霣ÚȳӞm˜J^Ù´Žş Š QİPÈJ“‹ ڂwèoŸ5Ú]7;çJĦONjĴÊ ˘ŠJû`ŸV9ò~Ò>…‡+GyARR5ŠQTSa<­SIjɖ5S4ĥ[PYix'а]y´îór$F$íhès0×ŭħí/U^–rïÊ*pÚŭ ~z!ŭ ÂÜòd€Ŭz½À8ÈVîŒĦÓVI:çqŸôfGë8ċ•cPŞr½[İ µd²(mċ !ƒ˘ÍĤ"š;Ù÷9o3Ä{Rŝ‘™`0#pGì÷òÚyĴç£Z“¨e ˆ…e…iÖ 7Ċd·ÈT£3ODwÀW³0¸,+>„Lž5÷€{aÍ\şÀ›ZÉ<qú ߔ·(żİœtHÂġ–Dä³Ä#wv/y• ĴğIÓÉl¨^s–#UĠ>%Ŭ½Şj&6`Ĥk'ȸs'Ù| `iìè)´ĥIQ(ĈX6ŽyĦœD*0(}·ıXĝ‡évšßi ÎÑ:ä6‚SëĊk=üÁ!\Àƒädá]÷çÒnâM(k0µċZ"¸—şğĊSĈ–”çb=r ÉĉN•ÎùTÁ¸ÍWÔ{TBÎÇpFıé+ıâ]ɉF ò—gWa˜Ï'½ARëj’CŒ#ŬǞ^3 D‘LŒI`³áh{p ˢ÷ =hìês×@N Xğ˘p —´f"šˆ󞗋1—K$°rÂW“7żâĵżìĵĦĥϛ, ħş h8-ÖH zÇçî6ġêxSCŽk:C.ıó#ç„*C–TPÌ3oÖhĠŸˆéÙ,pmµÖ’El\Ĵ“7Ġó`4p ÈÈŻüÂĴ vv‘"/…Ĥ˜:ÑXıĝ)§vçˆZ#ġtŸ”œ]EıÊĥĈĦKĝ´cèĞ .™!­v K >aäAÜú+5…ĵµAӘ@]RSÄRò.cSê :4ŭÄ2Üoú⪊ûbßU½ĝ>y˘ìÊÈ*(BQÒ  #!WĦ¤µİ.ÚQ<-YÖûŬ7wûĴ8Ħ–=XëûŝÊéĵz'eÁÏF˘N›Ŝ•Ë€˘ĵ ŬĜħÓ#^9ô‚V}Tä$q3ÑÀÇtցĴökcO6<£Z ĥƒAĊıX7%çş~ >şŽÖŻŜ] ,Ĉ׆Œ·˘)ĝœuêyÜ( Â!&ÊZ*F½h5 ÖùıXbàuIËAÀapŽÏÙ"üşzkìΉ’\ì)bmi‡ôŒa=0uDà˙zÈ]O$…£¸éÓĤmސJ£ö™@—m²  Û2o-£ (”A8ˆŠ9jœwp<ò3ğ9k(eµ3" ĥd(ĝŠAŠkŻ!íM‡¤ ayN¤ Ĉ§%ŝ˘ÛF}hr·óI{hU¤Ñbş‡YBí"Ľ>à:IŬŸ››İfì܁œÍ7ÒJé5ùŸqgÀĤ9‹Ħµ›Ĵ ]@È ÜÀbC6Ÿßr³5 }™Ëp{TÌ<­a·9”bŻQ>“‹G (X·ˆ3DK<%L ò›Éñ²í‚ç5WS-³yF€ ܘ6rĈ-{íJZPÇbZ, +d°(³‹ĠÖ!ġĦpÎv³ŻÏç‚ •ùÚiyµ3FŝB6ô.[´ı˜1LĦç@³ ß³GÛJxpÓAcŝôœò§ "-ˆ[A‘:,Q"§§ËEıa”vŬù°‹öŞ\}%ġ2P $¨İ§•ĉr†Ìr@ŒŒr!Ûóñ2pJü>kLB\ôPÒqŠ˘Ev*q§bM1?_aü€ÛïxS­ÒÚi%îXÉ(wqߟœ+…‚{Îy8t\NÌĵİVZ ™¸]ۑ3#ÔQ.r0{ —?e £ˆ™\%İѧ & Jj´Xù-żuZ&÷ùŽ™·{`Ìa–9‡ħà€é>€+ÛXSíèt0ŒÉ5 Gġœ‡}LVÄ=û CÍtD+;XĠ$W„@0lŽÓg}Ĉ†ŜCGyZ(3è•Bv]…l'˘Ì÷üXà•”É_´ÂB!ħel§zÌm?@-eER—ÂÜSöKƒŭËüġQJšV$8,úñ6.Îí¸HQc/şÌŞsŜŜëğ@>EÚğï˜è%Û -ı9ñĝUFŸĵĊĠ˘›GXĴÀ•KuЃÈĥÙ³‹x a)ÉŽˆI¤iቀ́À0xîτŒtµ‡Îàl U0qœĊ҂î’µ<"BGçY˘`ZóTMš—0wto !BvQ)™“5Ġà"ĈAQ˘]݁2žr pXµÜ'”û¨háˆu˜dÑ^ĉÉ* ûz pBâeÌqQpÎI­“‰ĦŞC˜‡!Ž_8BÂ.]`ñ¸pÈ>`ŒĦBGı€ÌÄ ìÜ<ùdıûÄ+³#Ê ô³#ŞÙ$´C."şsġĞA³}68,BXB­O.BÈÏqLħ¸ôċĜ{d3´NàžŞĊzÖ< •M#l·UÀ/µl÷Üٓ—ôùe6ħsd8\?’Ş"ôphtJcĤhkŭġ›ñNí\gm˜â÷šu?Ûı`>9r&bù҆K4iÓè܃mŸíQŬĈS“3&¤ıŝ<ĵŸêğ›*Í:żs_¨~˙˘`'óB;>Z³E˕jˆg|"qÁó`’”û>ñ+S— ` ç2‘nşĤdfN›ïhĥ"œaċF÷œ2…x–½„W=î#&yM£ÚÂj׈W#Ĝ°\s£Îú" 9X[î€SHj ';5ÀF/yeà‡ÁTY'6‰ĝ‹aN~C|Ë0 ,8ó•7_—ëŬ1Š'È£çëNrË!w‰˜ ñN(9ÒùE$Ĝ[,Y1铒¤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é¨üyİŒ> s“ħ- CƒgÀ–ü/8#,qsDÁĵ3ŬójÔ̇`T›òĞ>ÊbUISĦ„·DÖĊPEƒeëòQ| Ĵ(Ŭ¤Œ¤°Ûz|żÒŠí †ŞŸ“`Î?܋]!âLˆYm*w‹İ“$Pv#gìöşäé‰ ’sĞŸPĦĤW‡ċŞßÖQ·Ábí2İú(m'‚Sò´!5нï~Ë;b h'÷Eş”‡šcfÈğ?K¨bħAqEy$9ùşM^µŒ_@‡U8LËÖxwÇ cŒŝ›lıF‹TJèxëe˙Q½‰“ ê îxrÖ]çÍ~w~R™Òġş Ġß &FVúĞWşš…T­ôÌ,z´ñx)­g‡ĦBÌĜá<îS;Ħîü£:+DÄñWTĦFÛÌñ¤ûŜĊyPÄè;ÑċÓf‘½…ñĜZi— Ğŭâ†"S)ɍf<ŞMĥşw„Îĝ…Üı4Ñù”P¤8q„M$&/²ğoĵŭH Àz T7FĴƒ ˢ½ï 1(ö6Í61ĜÖ¨şİT@蘅m¸½ŜˆhE4ĉìe=bóúœäâƒ"éÄĈ*‚Âñɢië}~Z8MTĠkÀmŬ>À{Jù§Ù‡ˆ·µĴ;ŝ1ñOÇ=òk½ċ—C˙ĜĊwJâ$ñÒ8ÂH§°ÂÁlYmğOS3*mŻêß&}LÉFdĴwWlh€ ½ëµ˜/ö‘ÒŞBŸ Ġœ3=Hrp\ôĥĴ‘c•§T7îE„ò”úÀ5ÌHm]íXE‹£Šéġêµ*Éċ=]ŠÔçğ“mŻ—|˜˙˜UnyOàÑòC ì7£f'Ua‡ît%tQ]İħÙìR×9ŝŝ$Yĝ2 3ÁDVÜ<-͐lmuë÷C=´pb1BK…êÔlh„2ì­So„²U•İZfreŒ¨Ĥk$g]9eĜqx^DUc#Ċ\Í|_h—çx˘ü §qĝ+œż;ú_iC0/endstream endobj 206 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5861 >> stream xœ•X xSĠĥ>!äp˜)p ş*Ŝ2ĊĥÚşÄ ğ˜ê†#ˆeˆ‘8}žjëah£-ıĥm01EıċÉÉjY–óŒ;çBG\˘›¤CğĦj6=v(ĴYv-˙²zÔT`ĉ½†(4 ÑhĜïµn˜aàS ­À N g05  dC¨U9yœ^/OÒjbšĥ96’àŝ8oăŻùíèÁŠĤV^Ûô­^ŻÓBB+XĦò+ –*Ô§$ÓPÁ?ó1›]tŭZ)BÓ)ìhMöġG—~é׿ħşL™–Ë%íCĉKz+Vj3×>ˆ˙à×˟\rƒš­NÔpòi³4YÀ„Ân{>MeÏòu6ÛHÛëˆ;Óò„ÇĝVÒ; ŽtKˆäOŸq7EùDŜPg_SHiwGÒÛpêŸ?ó¤"DdBÀîĝwyJĊĴl¸:Sınë|`ĉëœe…GÍuĵÁÜ`i°] $ÀżġÜß܌ ž)ƒ^ùZç7âLqUàĉŞ?’`4NôFI€hñ& wôIx5'âO—ĦO%ğ|żë}À[•:ú ›UĠT •àhfĵ‚£u‰ı#4¤è­^–óüê|É\§ç>İ\°pç:RÁ&HĴ2›  Šİ•:’Óâç]Œúêŝg篕pOcE§Ä‚oġs z›ŒOHô4‰£DuUuEo‚í ÉŽ™żKÉϋ %P  GŭŜé {á´nóŝ3€{RĞ'oLÖ/6$Ca.„2dVÚà(ċŠŠÎ ÖÚÊ2hȆ´˘× V²÷ƒŞÀÖÂx!žèúÙ%ú”`‡Î°u2$“6a1LIpʝ…ûÍÇı*K óó›2.MŻágkħ5PfÁÉߟ8gĞ;À•'ìÎ; L}'6ıR –~ÉĴzğ632mgÖĉœ(`VFÖìı€şµ˘“Oñ·èY"fË$NŸÀŒófVVâŠ#¨BRïAôŸĞ/>è3è*„Ú£Ž÷ħI’–ĝ”ž=ç$A2˙T„-#´I÷cĈĞ uPÁôĉ/’Ĥêç´Óú‚‡áñ’ &DŒ H˘î—pwITêfîèÎŭYIB%^>q!ÉcóQ"œqϙ‘äżOˤGm&™M[ìN8fäŝÜŞœÀwŝ+끪IûŸsGïĊO6Ğ[›=eŜLË˙@èüĴĈ’aTÇêä;½›ë1RÔSˆq‰Êo‹ŭ§ÖSߎ£ĞhÜçÄ.ÔրQŬ´Á3¤ĉ÷dŭ%F&%)€>4áUòÍĦÛtzKĴŒ]U—ħ]ı~scüÁçż>ĠÀ=Ġ‡—ċ[ħ E"ĥTUš˜˘Qg޸䈔 ÀĵĥöÜĥ³(qĥ&ñ½Ag&˘:š‹\ kñĵWñC.!5:ù½“óÙµAÁZËóK,%Œžò(N’áŒO:!•ż!È%e^ċYBäññäÀäuq‹ċQŒžÖž G…šUEdö¤ĞxwéŸìgBĵÄ@›bŠB ×ÚŜÈßnŜ™ż”Ú@ŒB-Ĝ›_—k+**„ZĤ& 29|ŸŽƒ:FŻR­&,ò›Œ…g­1|Z‘“Ò ¤*°s‚ˆ`m´Zv™Ğ wë]ĥÖşċ†3¸šöoäK„Kʽ}ü|½HÀ3+ĥ5†AÙ şà8·˙tĈŬcGœÍ{y}ž^ *Ĉ*÷ŒàĠjvñ†cאèğoo]­˜›ŞÉ‹ÍYËË˙>{îË遤òYéàŻŠ“ Bzz° ÉŬ-3%@Ì˙ ™ŭĠs!ŽTúçGy–D‹b¤2`Ùġ˜CûŸC½]˘Û—P3É=-e›ì9ê?ĵeĝˆµĒo&# êóÁí:O jó2²ù›×J7³pêŜŸĝ’slM[ۙĞÀ܇II és}ë­ĞèËbaż envKÓ>T5r;ĵĞ „ Ŝ—Ž8ÔçÒ­\óŬ=H—\óh;PĠäút7 ħŸâkï5”ŭÌ×MŠéówà9Ùád=˘¤1„éŸö ħˆ"tÑítzú9Ž´Ùi(2Wĉ·6ìżĤ0co²íy:dLŜ¸EĦä‰}WfŽb‚} ˙àÙYŭjj}G{ìC]ˆ(Ż %+ϤcQġ½‹Ú˙|mċg¸˙Á“…âik$ÒdĵĜß×/Ĝ6u?C?éçôÓ§ÎĦġçDg\Bš³bëbsÈžcd”)°ÇYRa4ñe“ì0?Ŭŝĉûu•Şœo°W™J –DgŽ §³ĴLѲ$yS^ì:~§sğ5˜—_;*ÒcÔÒdùb’ĠdOż^1R˜Ù7 Ÿ°¨;j^ÏĊĦìşĜÖ#çϜs½µkÇú…‹ñqĝ>;4l˙žrûŝCµ|ƒ—ı{f‡ĵe$˙ä"Á# #}ÂürçżĜ‚Ġ’˙êzÂӍĞ/6=ÑïËÚúö’ )ö³C-ásyéU,áĵ˙·uŻ;½Žß¤Ż­KWç%êsxċBPAóĈє}—oĠšË•É ÎmëURQċšëm–Fs-oħÔC ÓKUê=Ûv3XÒÂÎòœx…ŝŞeĠĤċKB^y*ñ7œg‰“?ù@, >`k¤Uñ1Éñ‰;İuµµñÈÈâž~Ġ8îk×Áô{èŞ·öŜġ ôÛ÷)ú锢^!ÍGî1}ĉâBŞVäi9ƒNży˙2ëV²–tŝê•5ñ•İ|CBú3釙o+Ş"!‚Y6s\î?ڍ(àܛşJ²N£JÄcAëÙÂ*ÍÖ}ÜĦȏ”'ˆö³_#êğ£Z³Jĝ„zİ9¸Vj‰)PclIµ°—9{áÌu$1ĵ— İ-µEUf?ŭ "d‰úŝċُN"c£ŽTÎ ôĝu­÷Q“ìñd³Ûm´3(ġRż}zşÏ­şu£Î¤P7Q!KÌJÉA_7à‘>İßE0<ì4úÁżìó}ñĵË˙vb¤˙í„ÑfŞ*|ûî'ßQŝ·x¨“Ġúİ÷HH{ßżx˙>ŝä³˙(Ÿ8gĉ|Z½ù'ĊP`´ñgÑCÉú÷mȂpğĞsFâ;ˆúÑáW÷~˙2ÎxĴož ş³/ĝµ ?KÔwƒ!Ĵ_ŒT.61éYw› ñĵ™L~a]ġ…C-­À•ê#Uz-•MĜ&yŜóĊWKĜ‚|p0DĤ-ŬĵEİ⢋!ĥg'$kêSÜ÷o ĞĦw³|ŞoÜo˙ġëIì9NĦ…Äŝ!)yÙô'ûqÒCÍ-8XB– _fC#ı7 }ZWŜuí9}q$á)dç(_[³Vód(Ì˙ÍtÇĝıù çdk*4Ĝ˜&_É&{N)SÛġ|zˆEè#ô[a³nĞnƒŜó­])¤·Z+ÁYÂYĴß!Yñ^ĈNCĤi™!Ò¸ÍäŝğʐµZ żÒâ`púaÖ†î/½Ŝ³‘ì&ıŝ&Ù ĝ£+‹Fû5Hˆ{†ôy1˜ùç‚@âġdà<.…ĝ;È î 'šÒ†ĤVŠn ËÄèP ‹ÓĥVhmrïĵŭé4`!ôl *“—§ĈĉĊeë¸DS-Ó§ê –QĉgÔíŬ_^ĠÄÍy4A2܏YLw‚—EÜü‡zŬAĥ6ħmdsëÔMĝŠùá+ÄĥœŒÛ/JĴ̨ŞwV×İm W}ĝ€ùĝèiƒqÇ ¤gËñ ™2/äAŜ~K—A9ä׋ò÷BĦç²YžëtVxIÏıoı>şƒöks ½ËŜÛ½dŭœéSgŒ3›È›M6¨fêÒì)kaUö°‡Û~@/ŭöçñ'vq÷Ŝ-û ꘳Ë/âŽxĜòYĞ˘šs‹Ğk*my`àö´´ìÀœ;˜°5.5<"Žß–ĞÛ{S#דÚx"ôò'ċ:’zESX?zAŸ$şštȀ x:rAžŽßzDfgċÉ!óñȝŽ)ÉNıمĈğDŸ~‡jHÊF·ìjŭLĥ“N…^ŽKĵ ĞadVyµd²Zı··4ÓÖĵ|Ù°3FoZí8"ç‹ Š„¨ËċĠqkaeö¸›ĞîĦ>(àÔûûù׃6jRÖşóD„Kò‰ġـ$"‰]\ĴÁd´‚…)ËŞ‰ ×lRêı4ĵF'—è ĦıÖäp˜9”ŒÂ˙ú)ïhĦydĵ„B§­Uĝìsçm’ÓuNPs‘°/ Ĵ bĦ.ûş)%?BÊÉ“^’ÜxÌx˘ĵmŬ™AEœÑT&™JfìÔp:VŞ×‘o}–wH›ù:L†°ó%ŬŠċŻÁ90Ŭ0šŒ%ĉR2İu)ŽÔ5°X6ö57U\^› áÍ%ËgÉŬLöSĜHZ¨AÈd‹òK‹ œİJ/ÉPçèr³8üo’*s•d, ½DeÑ 8"žíġgÊËJ+˳ r-<ĥĦî{ ´²íË6Ñ5!N,ÑÏlq !˘·"üDgş‰¨Ù=ż_àáĴMQ1îO0­ÜN>ÙG>ñĊ’ŞÙŠâ‚b(…òĴ˘<>Ž"eEJ˘7LĤT‘œnË)ÈQž‡Żlµ<҃RÊ³Ê ­&KĦžż;˙H"ÄW4m9 9ù ëËרÙPn4˘Ġ(ġÉ7[  ”ħċ8Rĥàü>°É2îì8aËÙ°`jó+ yßQ÷ÈQ#„.,V³ĝۄŭax`Ġi9òBµMĊ?˜ZÛÁ,x=ŻĈq¸ŻZ£"SÇäXÒêö";š‚yŻrN¸PùGtçŭğ§Ċ‚THbĊ‰v²˜„ğàcŽÏ½üñi×ız~×3ê 6ĉŜöğX„ÇàQx:^‰‡Ü{ ġ²ƒÚ“œ½àt=Ô3dZUZPfqé²M +€r µGP_Œz\(Y™H ÀĜèè]ïôù{­Û ™ĵ’ïĈujŸß#Eŭ+|Фendstream endobj 207 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 635 >> 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 5702 >> stream xœċ\Ks$ÇqCû#&>ô(ˆv×ğŠaÙ&MY–”%·]ïċ3àĜĠŝ{ç£ş;³§µì‹ƒö6޳²²òñeVÖüşêZ³êżú˙³Û£ü1­îşĠĠÑŻG†ŝ¸Ş˙;ğ]}wœ…7méJ\\ñ—fe²o÷ĞR[‚_Ü½m_wmWlNoŜ³µ.eßì×Ç]›Œ‰Î7ÖÇÎÙ6•ĜüFxcRtÍ9ŽĊu63ĵîJ°ĦıÀ×.ۘLs3Ò;G<Š/àu4%gÛ< #ÙĉÓÏ żfĤrçšpD,Ĉćyö8d`ŠZÍfmc[’/Íçq]?ŸÉıwÖ6µĥs‹l|^gךb23ä€Ħü‰H$›Ż0dߤ¸Ĝ­rgJ’#ĥÌQÈĤù/ Ğs94ğÛ5~MWšûġÏ'‚-6Anħsݍ16Ÿœ5a}òËÑħ÷ĤíĴ]ğfĝüċmsG Í%Ĉf³gıgc]µs„!ÔàŒWmB°R´B@…²d(Àg •Ħ‘Ħ)Ïa×xHϑߜá…bè^ ß.7›+Ŝ‚b“7MK³G r^›Ĝú\ê"ż½DZÖÀHµ0"àMr°/°x L&Ĝ÷$j 'Iw&€‚ßÑ…†ħC]‚ġXPÙJÔÊHIm…V_!m\”PÇŬ.]DÉ4ŜÌJĝBìÁ=ÚKœ‹¨o ŒÀwT*{­Ĵ‹H{cû$ġ­Ğħ¨N‚+İá÷,êŒĦ`7rÊÍn‹_f(ûG9˜œJ*Ív\Uż2m˘Bßċ4ò™öżu9WeR0aÂ#Êĥ9İĠ‰ɍĊpÉ%í\¤(îy×\ ½R;ëÛâSŻĦ<À'œÈGR vĵ!mèŒï"lß8ó†|Ÿí’ñ“míݝ˘—ñè’e,ÈžıÙÜ"9›£÷ßT”/y €ĞÔ떍£g˙Ĝ¸6„Îó*¤A\Ŝà˘šħ‹ÊF3ĝÜ àÇ5îf̰)÷n||˜}ûŬĝĝ8>^ŽßŒßŭĝx6Ëûññî9vö³ ÚÍ>ŜÌ:^Ĝí6ċ(TdPÄ-ïjDó(>ğbɰގf—’†Š  r $Ö[›[pw„oc—&ŝ@„ĉ9O]| DósžÚ:ß/RZŞàaKìÀˆízdëNxŒ ñX˘µIñĜ!naLNÍ 7%‚˸&5>+Ŝ#éŞœ˘ƒÇ*'kŞĜ­d´`ƒ`²9ípĈ÷žßĈ<Äz‹ëwÑÇQìq ñVîá1[£5ÉTk<ˆĈÒcPAŽaBëJİk  c4’ĵ³E$ñi”£àP~ˆ{d *Úôµ %8˜•8 jBB,˜–š}Œb‡ŠBoŜˆ×Ûġ,<Ÿ2ÈşMžµ†£€Ù2üÒċB^ô"Ğñ n|Làr£úòÊĤñ*H|`zİLèIçK#)à–‚0}ž3"MÌfˆ"^xZ:fÀ§ëcˆ0ħƒüeœċg ÚiJĝ.€iž 4…°] Z£ħÉDâ$î`Ié„‚ó3ùÖ~˘W]OU°Fħê˘|X –„oñIÁÉ-ċˆ @ĥ!|!+ ‹;î·EµZK.ÜĈĜŬáXer#`ĵÚü8-ÚâŒFv ×;äz·Ĉ-:]úOF酞uxAï\1ró/sÎĜħ.ğ~_Ŝ­…€7ÑA€*ÍY²AaUŒ§!fĈKY×ĉœù!ì.YžÓ‹0µ ‰‘şċ { ŜcâDJ$UZTAcâĞë\òvÒ‡Áĉ ÜôĦBç†0Ċ–#áäÁá× 6D&˜‰çAğŠâ݈9ûĞ ½è–½ċ4o³ħ²nK *şHííÁˆëÁˆqî0‹p/ˆ?€Fm‹ °(|fF„²pwbsĴaĵ@ĉ˜››ÑU–M³ĊĉW& ˜ËP$bÚRT°e #*İVèaÀ1;Zŭy °É×2„|fڙr¨1畺­”„tŞ> ñ9ZGğ ™²ŽêxX!¨£*Ê\ic(½k™ìK\ƒħ]Ċ¨+öÎ'–·kû‰)h<ŠÏĉ ‹èŠ ”bä[9…öĉĤF‹Ê~–WÁ1¨`'²ziÛ5a#ŭ×°Âu˜fÖŞÛ‚Ucıµ7Iˆ$A/‚[ÇjĴÀíl"}ÏÓyÈĴbÇq|ƒpzgÚÍ ĵġ GĜÖ,–í^’XO·Ÿ&Ħí79Bö:IĴ{–¤ıíĝu×9JŞ”‹ŞirZÁ½É>E‰%ĝ…Ed6—ââ7ĥâgğžKŸÊq‹Ħ*ÎlY5T¸ŜŒŞ{ˆö­ħRP™š +³ [·ŞÀ DÄ`=vĵé]uL8ê–ƒŒżĝfP jWBw½oêÚŬô5T#½£rġ"1ù‚÷á6vĦósq•ï÷'G=â"xXí—ĞŜ`ê ìĦ ŞèÁ8}XEHŬ,FĈÛ£Ĉ"ŽŞT—ÉĝĜ´%„,éeĜŬÒÙĝQ —¸ˆŝoèġa7KÍ}`!ıOÈl†í‚CÛè eµjc·Œ ˜û\!2„%,&'€ĊÉÏÎ.(›‚lĤš ;ë=YĴ•xÁ ĤٞókBùo0°„ĨaĥÏߏŻ/ɖ²q‘<¤÷Ör(ݳÀŒu/éI9ĞÀĊ~ġqQ¸òŠÄŞ\–>lgÍÂPĝhuòŸG'ż}Ûüı–‹s.}žw ,{QW•:Ši ŝĦdĥNïDéÈqÁŻ]N ÉVàh; ŞsĤ "X8!Z§˘’p×ĵĴà-—~gËy)ĦrôiğžĞ°}š—A7Ԁ„‹•ç9Âè´täRÄĴżBr!l! ž!„líyŭ,Ĵ S%Ċİe<žF22ì§§<ĝ(üŝ@;‹š½„ Ġĝ)bÉïY‰sˆ ÎËñgƒ›–€[…ÓÁ#Kï½g^ñn£j ŝKĵRĝßŬ­gÏ@¤JI żŒĵéT E„Ž7BüYÂğy¨‡sˆ|Ĥv°YáğwrB#h,/ŭ~ ›ßCµÂÜÁ2MÌKç‡_á<òǨ ïÇ/…MŜó„XRçŭ*UBxĦT™GtĊWç T:£à–™JÁ™‹P·áÜËċ8x¤Ş,vÉ žO”é˙y},p‹`Şú§ñÏÇË%W0~5ǖÇù FÈ~=ï’q۝ï·]”°zäê)I…_¤ƒ†"ĜSuŜ:d>ġ—f.˘&üÀ0 ÎMË@ÏeW _DD:?Ÿ¨ï vô5ÌKħq˜P§.œŜ ş÷=ûIVè6[&“’’o~]g;óó=_8grè"µw^ĞZÇ,1 ŝé7óR“.ôĤúèӆs,)\àáË İ3f1‹¨‚ħ*;ÙqpİG£²w€†nïĝ”²ŻâžŞĊíö}Â|ˊ0Ĉ*”êƒ.aCš;İÀ×^˘ĊDĜ“|Ê[ÂĊNôġ°^òcµaF7ŒŠ. @înú@›ïxzŞt-û żŽa˘Oûš”ŭO"MµoíbÂ-tëĥ†S›5Ҙbe|Gl¸6ĵŸƒÇ˜ìx!ÏhŬÁݵ ‡Ë˜ K‘bé”<Û;â·xáÄŝß -s˘@ŽÈžDs"PQiqħXxÙbÍ,Żdêbv36³\ß< tš%ġ…Â˙×Y<2„>Ì.çf–n;KA°su¨sĜ ß¤oݲä)Ĵïî¸~ku½›ÚÉc”İž‡w³Í > 1>ÓLà€tïd_’LŒ³Ê÷èžğÒĤĴ|ïŽÙíLXŞêdT”}oXHİXé8(‘} "ôNƒ%I\1µ’ò{˜wÙ/4 Š$[ÖSġyƒ†0c4éF¨ œÍM0Ğ+Oñޘن”ğ†" üÚkóÊ!ĜŸÖ5†)h*sĜé‘ŜìÑÈ´ Z –À -:a,wòqDÉTàZ×çġ\ëÒV bFY]­ufĈaş@Ĝĵôò‚ħÊ‹:JOìC¸Ç¸÷!ĈŞ"χ¨všŠN7TZT#‘4Éa7=ĉ ï„ÖUŻŬDáçÌì›ċ*‹u/ĊTogüxĜœûìç9”ġÔùbœÙÓúéï o² 'L_ ÏŝïvxzıXÜ0û+ò³ğù:ˆúìĈ."ï/H2ŝ˙à\Îĥ­³“N0›LSÒéöP‘˘l;Ċ6;óŠl{ê8+K•QŒAI–cô™ı²²xÛĞĞŭĦ]‡^NNòjêükg4u–2³iħazîîlµÔ½ì蛷O ɨĞ›Ż†“Ŭ¨˙j“¤ ŞèXİu, Û\8%zT µħ‰¤·m:ÍĤHq vËdĠ?R;+r‡':#Ħ­‹>÷Ğ 7C½ÔĝaÁıÙ’ġZ}Kïa7ŠìX "Fˎ:²÷ÀTàÛmĉ°ğĝ½ qĜêBŻıOiBuÁż¨Qdh^ıbA€ääĊî“ŝNHÁç/C ôe˘"ÊpÏPßï[>]ëúğ÷LĈaÚ3ġˆï|Ä˙ËÎ>-ùʓŠâ™¤!Ò[ÉÓÂĊ˜Ä=Ì[ö_ m{–^ςʅĝÉ ¨bĦ“wİÉfŝ$Ne>£Ĉk¸Qe¸ Úûq`ĵ21W ´<QT“½‹SûığĞTW˜8÷ÁĞö·˜°˙Íz•ïË1R.R!Ï]½Ĝ êLq ^'%›ávĦŻbzYcr6ÍHàËÚ¸2v}3ĈCşJï`;ğúòGı+¸3+=ä[´b˙âĉè§Ċ Í*`óH‘1´8ìè„ï…ıRĈDïV 1fjYô­U)¸wžûg#†VgP§C½éQµTÁd ˜Š[>]ü§ĉ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”´í5bRqĊ@’â.Ş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úëÑPôinendstream endobj 209 0 obj << /Filter /FlateDecode /Length 3445 >> stream xœí[Koıkù _Òxzù~Aï"8×Ğœĵ{hÍH²kĈ–äu´ż>U$›,ö°Gc;›ˆáƒ)ġbĠÇ*öÛëù‚áżô˙úêä›çvqys—'oOxĝq‘ŝ[_-=…\COï™7‹Ó‹“8“/ty&VÛŜkµ8½:éÌòô0A²j‚â½b&nN^tϗ+ÖknĵâŬ³%ëÎûî:t{o•èvKŜ3&´înħWp&µ%½ßb/sÂÁŸŬğ%ĥ½ĉÒv˟N˙‚J€%´’#–+dï`÷°%³¸;ŒñÜwğ[\!,R²ĥgÜÛn£Ĉòn÷zı’Rô@z`H JŬ_A·•ÜZĠ“™d£\CÂ{…½BZ§şíȂŞdÈ8nY1[G‡Ĵ$“½rnħ’şwĈÒ†—sŬ–+-(­{3îaè‚ÁtĜôéÉéï^tWeĉyiŜ4›Ci^Òi†ğÒy‘;oKç]iĦó‘Ì?ž|ĉùçYóô²ežÜŠ^i³° 9$šç‹î·Ñœ@C%Ŭ …ĝ4I/aëş4_5ċòş4ûÒ|ÖòuSÈd·ÑHj֝î­òù Ŭ,ç½ÔR£ß7 Ì̊“ıuќtŜäzC™¸iÎşMìĠŽgĊ½êᘁÑò.Yĝ)²É=hŽpàԙd;{&›2ÍGž‡Ĥœ‰z֔ŭ–VŻ›½ëĤ+·‹µ Ĵ‘şĞà61áTí4pdN‚Av‹żAOe`}éAÒ+0cĝ‡Ó¤˜×BW.n‰CÁVşŸqÇĴ3œ:ĦM™F×M\X‚7bÓ;…eÂ8p—Á‹[Ĉ” 3hǃ@´Ŝl çp]D}sBÎċTœÓÀ“ic\'“`Š1Âè´br’ÄÁ_1à@ĦBsÀ5Ĵ×ŬYÉF'œ+¸2 µŽ1ĦûëÒ}×LEGÁu2óݰVqBÄ;„dJ*šöü*vˆV‡pğF/]9zÒ;lc`gµĈoJ ¤T‘EèhêïMÈe™)­î $%ÀÉG%8Pïšc$™5çFVAwÈàRx ÄôíUt'QHbè‹ÈFjĜ î„ É$ĥ@Ĝ2EŬîÀkħ€0â?uq9 ƒ§Yö€ë3T!D¤ÈÁsÎ@ĊĠÈC1ۀġC? ]Ĵu0µê=wîÓĦ€Û^[?µXŽpÊÌœç 5m4b9('ŠĈKşRrßò€MÜZ™ĜÒiáx~â!‡Uœówszȳ٧퍷Ĉ("D¤£öP3HƒUÇÛM”Ğ­ĜßĊnĈçp%9Ż‚ìW@ġô 91ç‘pc@qi—š‡p,ÁÑ;gGs˘dLı JW{™Ĉ $\ a•„k¨ciŠjŻ#˜1Ŝ½]âT˜¤ÓÑJ#¨o[—îsT€#Ĵnùŭhywaeİ­Ĵ 57q˜x„_ê‡xUNßÇıĠpkè\È1\“•+½‡ .,âĵĞĈĵ,' )Rçŝ¨‹KӁïXìnŸË›H(aŽĤ,ìê²7wS"g$Xŝ€NħG 3÷ü°´‚nBĝŽFħ¸´%W‘Uq£¤2IáBiU_“ŞÀ22JW­ħ[gWÚ¸–ċ5ĥÉÖÀ£œ˙£½0‘v´‹1iaÌ‹ĈhŸùM:3‰żUşÈd ġÎ:kTì$_Ás•“`3 ÔÖwq,ǘGpp3+Ĥ ċhĤĵ‘CÚ`ÎÖ0ġH?ŝşHĵ î ĜÇhŜ?/ÂòQ)ÄhIèı‹œ¤á&ĥ•¨FÀGĝq0j>KBzċš’PsA퐉ìÜÇÀµOÖ¨L´ˆ`'LÑ]&Y ¨?™ĥ˜_ÉÖ·shÂs´§d(w²1ĵëĤmé”ß5 RĊáu Ş£Áá:™w˘'š7s{dċT¸#÷çÖèeĦ!Qöp“@ĤP‚'>°ö`>â×Cz÷]úfŝV:˙^šO›Í™ô€mĊĞœ'@Ùż(óxiŝ”7f”·FgIíĞÒıɝĥtêV§8Üi(u‘>wŠÒÉr§.²5]µ6şhužµ:uĞs}˜NŜ˘“íәġá9„•ĦÙ+JŻ)½›ÒkKŻŽ0Au_PÙRökèNµdb??ŬٜŜŭ>Ĝĉ%=\#¸E@)Pz-gÓ :Ħ×FV°ĉ€—nO‚…s‹kàmh]lÈb@÷uJ gܐ¤Mf'Yyz İfKÀLş…„‰! ˜„;F}ÊQ:“ç?&ŽP•”fgè&iŞ™ğ1Y#\la"^íh~ĤÊĉ0‡[rî0×E‘0“wqm_g9á:nD|$†ĵÓ}ĝ.U°o.!êSEĤR`@‡“`?“~Ħâ~Ô ĈĞ‘ĝş× Ê$[JjĊÑütZ“Úá7ÍUÛÉᙝ˘oÎ}ĉÀbNŽS~f™¸nîKÈ%İùo›”oÛäŜKÙ d÷íuYĊ[c5ŬËöDò`}X÷,ġ`}FkrÛ;ü`ÄWµUˆß¨VVB>é‚ŭ,–H9D?ĽçĈa‚z•Ó(ğôN-b/‚–.ÚÉ~  NŒ{‘$_•ŝÉwbÄ+ }Žùôœ™!ëkÒ½_nQ .‚Y·Ùä_Ëëy×3ĉseâˆpbswZgĜ²ŸÉh<àခ?`ÛÜ|\š¤Bŭ]i>ĦÍĤ‚LϤÉYHRıx×4-KPéÎC%€˘  ?ɰ+î{Ĵìe{CJfĜDâ“FŬ"%sŽŞ[ŒÛÖHUbwp LœWÙʈ‡Cĥrï%OÌĜÓ ÀC|èb{kġ|²]ßíäÈd{Jy’,ĉ̆ŒÚKdĝÑ!*ˆ;‹oa¨ŜöÑx.³â‚NVĥ1;eŠ(<§ı³MÑ4-y’îÛ§ƒspˆòSÁJ.ŸoÁ˙ZVYÍşŞżÏRUc@)wŸ²Ĵ.säéhÖ8T2qMÔ×Á.PŒċG’˜ĤÙË!'[I=&˜G² ×ġ1)fœÏ‰tĦÜVg]H^żÎà‘húŒ´NÔ7Îı¤÷Ĉhä0‘ıêĴ${2ÑQM‚F\eîhMµċÄkŜĠáżıc˙Gî[÷ 4Ô °ôa1˜éu>ħyŻ5Zèo@ßLPï°Â~Ħ™ás½aC†Á„àÏĠ$ù€ÛcÂ!=dK“ç‘àLÑʞÄÑĝÙ½+jK~ˆç2c8ï–$½ĉ9?S,ÒòĞ2üñH0p.#NÎĊá5İí9ƒ˜Œ tyf¤0´Ÿ$˜Ŝ瘏ÔHĤxŒ_/›&iD~O‚ >Ÿtĝ”ԇo{A†ĥgJËÏ WÊpzÇżŭŽ2pİħ:‚›xCfî×İS}=ë‡_ċaSq/}ÚAˆÎiÁwXêG~´×óp5qÌ?ĤVSñyMž™Lsl)âCüÄÂŬ°~” ´ĝŒÒ [é갍 ĈçT?•ɃF E.<ğ›8ì(·ùS҈N€IeTO3}CYbÌk—í<ġ‡kŬiÚ$SXDÄËÁ¤‡,ɃŽÊjƒ–ıt³!oEÒ šiù.nc½8BàԀŻD“p/ı~GLkÉG½#Š3cŒûŠÉ+=Ä;‚E÷GêYŽœ#˘:KaV</½óšŽœ€6ìf75}ŭĵ Nu³Ħh¸µŞ‹ßÄÑĝ>ŝU´W…ıMÖñ1AúœŒdΏ=,¨_6}é4Jsî™Hó˘ [ËéE9¤ŽÎKs(Í6&ġBĴÖĤşs5. Úpfh`=€ċÂ'LOhèĈ'zóF>V‚ö‰¸†ˆpĊEÖ@.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…@Â.Q–tÉŞjûbLÄPƒúûB:t8Kçğ“Ïr/#ğò=>)ul"-~H0ÑìX´ ŒTY™ĝÖAÈáŞë6ٝßô›äCİSYµ{½Ħ%h¤¨y&Ñ5MßYÛ bó'ĠÀdĞSû …Ċ(9šK7׉SiZšäŽé÷L!§`ƒĝ?qShendstream endobj 212 0 obj << /Filter /FlateDecode /Length 6941 >> stream xœÍ]Ys%·u~§ġ#ĝ*]ĈĈĝ!ȲSqE‘,ŸäT…Cΐ’†ĵ4ÉÑxü ò³s4p \rFr’Òƒzú˘ħœċ; ÀżœÎ“:ñżü˙‹›“ú:œ^=œÌ§W'9QôiŝßĊÍég/ ÑfJsò§/^Ÿ—êTE;kOƒ SröôĊÍÉ·ğÏÏĉiN:†Ùîƒg­MˆvwĥŸ§ ”7v÷ÙŜ=…äwżƒVİàÍî[¸dfá^ÏÉi·{…ŻMÔ>¨Ŭ›ÚßËÚâ­ĝĵö*Ċ¨w8‘¨<·ÏƒĊ“гÙ}-|R6èĵŒs*5Ğ9?Ó~JÁĤŬûşoêgrìg:Lz6iĵ?‹fRIEž ıŬ¨‹ ƒşhçšYÎöóĴR-nyF.ŞŬ—ĜVg˘ÛnÎCŻĉ´{8ûÏ€-VNnħ1aò>Â6ż¸<م³ߟì­UÓĴġéŜ¸)ÂoË·ğĜ­JŜÀ2ĦWŒò0îÔxÙİÖ@'—;ŭ–¸#AG1Â<Ë]}|[û³bGğôwŽd€ĥÀWÄ^yÜZíĴ0YĤşrN @1;û½ï râ^w§îġ$QËP÷ufŻêy}ĵìÎwȽôr!Xàü–çà€yΑTJÊGĜl“˘1÷vošE_ÂvûÉkƒ´Ĥ·&%˜€hPPHá­•L.LžÑ7L%¤éü’ ĵ–§Ŝġ”•ĵğìşžmaaĠ:eVúYiM&XIèÑċ€ĴsƒĤÄ%­V˜­1Kszfas³‰rÙ²Ğ@HÒ²˜P[P$ù™·$˜Ŭù“ÖÎjKeúì;’/e]°4Qà‹tc*[cP鳝Ĵ9Ŭ+39‹À5B=Ċä=P´öôЏtY&ħn^Ç}ĵ]Ğ?ĜQ˜lÎT1 ıԆ,V+ €Ô6‡ûĴÇ´ĦµÛ$Ġ_Vy@äwü™–˙ĊIV³]T]ÔèÁ{ŝTJáU³#‚÷$KŠéK1Ż˙&†Ş’Gtd;ÁO=XŸĈ&BÎiZ¤lš>ŸH7xX?¨‹=èÌ-yC-Ò696d:ÛğŝC˙‰ö ”$¨ŸKfŽÑ‘.7ÁMĜîħ~yŭŠ_`F”~ì$°"PĈ²~}ĥ·)MĤŭÍ›_ qœĥJkÒK i ™ë 5ğûüÀÌ\fœdu˘c'ı^|x‹ v‚B…ÑcZQtž¸ħ)ϧèv—} ³/dÓ:5ŝ {’Vĉ¤èŝŻħİ Dĉ+ž‘V™g3‡™ÚdŸá?‘6ŝuwÎ —ħîjósV $ċ‡3ç`ĴëU–Z>Ù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·wXeȰş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•÷]VÜü¤°8GÈċ@ѤŜŞ@t@°˙˙yƒşĞŬhŒ£ĞïÓ8S°Ĉğî šÊµe7ĉòôútêCéàĦûĠc ¸Â"é0ĝmÖ§ïN✨ΠoUž‚9½9Ñ.ÀŻĵysòÍ0˜êĠ݇İ)4X h;³”+q݃ó>:A+P¨ |t0|ĞH}Ö7żb§;%Ÿŭ=û“êĦ;h’oġdœnpSpş7̀ÚÚşCxX‹ÖYıïĝBêH‘‹_™ àl6.k:–ާÀSH$r |^LÊĉ—ÜÍĴs.™˘ )ßk‘ ³tcñÎx EĜŬ½oe‡…|Iö˜½%£fn3 üC )€”4‡yâ Èîġ–`ŭ+n­n.ĜHBö÷š!3–ħŬçbp8/ÎÊó+^;ü‹ëGŒŠÎċğ}òÊ(^bŞşòŬFWĞ[’·,çôx rÚ(4äS‡†6{ú oµd=Ĉ|âzsğ·<Żğİé† " – V@Ä´ €@°ÑzÛîâ}Ŝċ€¸p-çĵ&†ïBÍ/é~u°².ó*²˜\W+ZÒt,¤ĜSmt²M)TrŽ8îÎÑÁòšhNȰ-Û‚OcW|h•7Û’σ-Iš£xsÄżğÁ°vÛìŜФ½|#ä菣RĤbnz-`Ŝ}Ÿ9€nʔ &×ÒäÎ%˙ù_Ĵ$ğĞaĦ €ûĤ94Qİt(LKJ´ğ]3‡|0ïÀPçÌħŜ£;d`…+r’)ècSÔÎĦZ(ïWÛSÚĴCš0–ÑpíšħgLÒ›´„Ĝx~†WÓ˘ĤzŸ™à'kŜáç*[#½DàµNÀÛZRÑ Î4ĝĥŠÌ%“wÖĤ‘ž<´™µĞ·şíDŽŝÈ#úèw]qÏĵh“múN tKÓ €’Íò:¸oʅEd³,êšÏdXĉÏ*ş–ĞÑçuB"}Ï}€ĝ|°…Ë_Rn˜Cg_¨+?B*V &u-µÁÁ.J)ĠôQڈr+`nX ĵˆ(3…ìN0ßO°=É$A”ĥ˘ŝxò?ŜĴÎĥendstream endobj 213 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ]O1ƒ0 Üó ˙ @ ]ZUm?eÀ‰Búû’:œóŬÉgÙׁmù_ÁXց·$i²,Ê ´Ċx°`ƒĝBSvendstream endobj 214 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@‚*e‰XÒ%CĞŞíˆ1C2ô÷ „tèp–Îw'Ÿù0^GgGôĝ˘Ĉ:iġ[D‚‰fëX+@[L••‰‹ Œ7ŜŸ@°ÈüâOqéÊŞ=Bè5­A!Eċfb}ÓÈŜÉÈé?İ&S˘“‹˙Tr4—8on1’Kii’ XGżg‚9;ĜAMSkendstream endobj 215 0 obj << /Filter /FlateDecode /Length 3952 >> stream xœíko·ñû5?âÈ^m8|³E 4S HQÇÒJžï$[ġI'ë'˙3$w9ĵJşÄEœĤȇP{ÜápŜŻġ›ıèa.èżü˙ĠĊìÓgnŝòf&ĉ/gofœç˙­.ĉŸ0ĝ¤"ĜùñÙ,½ s‚sg\Œž_Ì:ż8ŝ7 Dġ‚†^ ‹/Żg'Ŭ³Ċ‘è Ĝ Ħ{ş½҇]ÇÇ!8-ğíz!¤1Ŭ-=• ”qìégôTxéñÏînAë`@ıîlñíñ_ ɰÂh5 ğĊ‘ÖŞ÷xzŝ >v œÓŬ){“tC0ŝşsz*•óşğ +  Ò„Hĉ'Ç³Żˆ9‘}Ş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ԛ¤•˙ÊZiù ŞO”‚¨êˆáiYŜ4—˲|É_K‚[‘0êŝNj#ˆ"RX"Ye|ğ“™§½í#oPß9™~“´My×}Ó1ĝ€ am!xÍDq˜g˘bµYÍ^äœüfïs„–B(ĉG€`4]jŭ8Š~ŝEWey]–çeyU–·eıċݵHŽöĴĠŒĉÖ˘zà4ûÒü“lU…ŞPı$üƒ„ÊÀ^¤Í2R‡Œ´—ŻíŠèQ˘I°ÒĝšJEXĦ%8~Ŝe‚l¤µ ;)ĦF.Y#T n`m9da¤6:bá²Lp· LSÒ,™Ż—´/šÒ„nS–ë²üÙԛŜÑŭŠ€Ş<ÍÔeb´M´BóèB´2÷S pԓ‚ÚeYŜ•ċĊû@”3)Fm¤ìÑqòÀÔ߃ĞŠyˆbĊİïèEL.áĠа—D`‹ 'ôŽRîëƒGĉc}˙.Ŭtk›ĉk§ïp`ƒ–“ëúS4aB‚;”l×:½UŝQ:ó uÙĵ_d™Ö™]ş¤,ÉgĦqÂ=Ézká\%­|½|]‡6¨îÓè)-8Ğ5ıí)YhÉû >vŠ…§Ì-ħ˜tJY³nUá'†ï’ĊžñÏOPÉ=§HCğ”/<9W² /è(U¨êìŝ§Ch1à•IĠŭvàkxéï(n&ݘ)h0Ûà9ÔwÑß ç-ë3rżMgIÑYZ[PQ÷²›ı´"’fc½9Ċ°ídkœ)ê90É‘]Ñj ÍOÈGĈSb îĴÒĦŬ2ĉhԍĠ\§ÄíU_†à“dġƒf£0Ħ3Ĉ“|tġeíˆ$Ċ†4\ä(nĝ^,(HRY=6‚ŝò)ù#‰ÁT;^ SV Sç1NÓŬŠ„Jû ,Ñ2ƒü¸"Şa´ˆĊ€qÏu|ì´&z·,’¤b"ûċìĝ·)é0ĝ= NŸŻoˆVÙׂ1’Kĝ>Ŭ˘œZÁ‘y§ŬJ() j‘A0éíêbĜˆâĞò˜óžù"Ç*fáš”5 ŻBô Ŝj ™Y0gÛC,œˆĥ†¨–´&µ\ÒR÷Ġò§Ĝ^ä½ó;ëÑ>%iTÍێĥ$ŠíTaÊ­V\ŠÂߍ&l7ƒüĥ…)“Ž6Ĝe;ÏAİhE‹Ô]Ê08·uQŞx„EÀŭ”ÛË9v)—˜!³YŒÛQ§‘ġbnô1ËH$5ĉ##CŒSžÂœ$ë…*.]tyÚ%s3MÜàƒŜ3N ÚĦ…2.9ñ>ĝ1ïScċ(êÔMzMy“$ÎIˤ,o£÷@–x<ÑN§żE0ÖeĈ#‘ÈIIQÙB%$(İèğÂ݉‚W͵ÑX&ĤRĝǞŞï§ÖLˆ'Tı îœĥiğ(!÷\h ³\\ŻŠ¨Ä÷j;˘Î‘- xކ*‹Sâû*ċu”,Ġ*§ÊŞ$­49 Ëİ{qLÙx>óEJ•4ñ.ô“˜.ıÏ;9†P ])K4xÈOrlIŽ=·ħÛe¤VV*–­l*ë< •/7ċĤŽ_Ó&âÌxê0ÏĈŠĥĴµñ´!1çÙ‹)uĥ³~t7ÂéÑC6SFĤŞ C3>L•a2Ĉ`†ĥSèSg­‰ê@‚àêÖ÷‹ħ]Ċ ôĵN„•'в^‹1úËÊÏ'Ü[7ı÷`[úE“§lùş,ûfĵòYi×äónÓPĵ½2B2ŒVĵñ2áÌH”GĠĞRĉZÙ  •IŽp³ħöUĞe‡—“,ݐNĈÁ ûEK‰LäM=ŽÙ4˘Ĉğ "?Ŝ´5ŒO›R“€6KM\nËò²É]š¨ Ġ—ݸq5zR–ër_}mh/w]&1ĈaÀħSÇĈ%ó™‹/›ìG‘Ubhêä&Ùɐc  …‚ÏRzĵN…ßFġ U(|¸6ıS=H>k‚ŠTÏ];u&ݰwëĴ*^+ÚPŻĊžĈxvÜ+;pkвÇ˒ğĵC+˘\TĞÌQóœĤ.ï óc;Ċ˜á˘Ó¤`-àÒd œĤÊhX8ÊÑÈ BÜlèÄÄ:BĤPşrFĊ§œĤTÈkW–<ˆ\Qìg|ì*df[|ĉt acSViŜÑÌŻ§1Fâ;axCˍGËıĥ¤’ħĠéqîyI#RL!<^Ÿ3=aĞ–%Äólt™=&nhÄFĥYrÓç§RzòÈëӛUjH€4•W·Iï4&2˘œß Mfċ÷Y‘Ï?.ŽLLÜ~n[½ëáÙiĴäñQÂE‡*Ĵ›(q€‰²n‚~ǸĜg˙ŭc>ÙÄ_5QEôXñù8–VímhÑÂôV•°ĉÇvçxgĞ.ŭ}Ç£F(£KĊ£€?k è%¨:¨¤>„>ĵ'̽ZÑĵm¸šĤ{mŽ‘à~Ì͓2ĝ’ğŝÊ D Âyóà61c§½iêüĦטŠƒ)z1mĵœĴ×IyÊòۑy,ŬŭSY~Y–ÏËòIӇüJG Â#,Ñ!Ĵ| ˙Â˙yr?O–̓Ì}żjvŬ|şj’Ż}wÄ뛄kGçıâpÂMV[Ĵ—#€ĝ5ĵġ‡qÊÏżg4ûĤy쇇ÉŝŠŭ€|Ü´™÷+QŸw#£ïóHúŽ ċrdr™Ëĉëm}àÂñ ‡ÚBĤm=^77ĵlRÁÍ<:'L1~d}ü³Ĥ œíRt/ĦĠô•ŸS‘Ÿ¤*”şËğ‹œÇjFRRkDœà6!(eh× g0³×Ĥ[nîN‡í*§½iĝÏèó^ùÓ›€“sy~̆J&}–Kô0Ġ¤öšcÒËĝ˜@ÑTkٗ)ş·2NíŒċİ8–§ÙĴŒSWІŞX½Ž*S4–V7òن³¸”„G5_Ěò¨İÊa=jQ´BQŠ0·ÔŒxİ`z›vaĤgÌTĵ“TêÒç½)Öjۏ}šĈíânBğ÷ë#"Ġı&ŞÇĠ˜÷ƒġeš.ÖôŒÜż_,*Wcĵv˜™+§+rÍÎ ŞsOƒ"u³öú3 ĵİ*gÓží;V!/äħ7—8މ*HeÜË´Ĥıĉ.R{ä{b žmĉ}&”ôxŒ Ġ¤|î¸kĊĊ˙"m•a×ö-Á v ^RQ5–V•ˆĞĵÑȇyÚß6‘„ğEĞıĵÎǘŝ(Żñi u¸T@BêF‡ëQ’€ï¤/,:*Aߢtz~1“hoû`Ç'÷}gaaNáòï{ Ğ*­CİJ~5÷ÛúXĈFІ„C%T.â§İÁt݈Ĥ† |²l4Lšo.ù~ŭ°˘ĞMò´¸?DI튎ıdPŜ’:xí¨Z @esdÏ2Mŝ(´qŬĞÓôXL½Œ€ĤúC4*†ĈB6ñd$¤ëˆ<ĵŻi !ş dM°ô- ú gÔLÓ·û/*‡´ jbܑħ…oçÚ ĠĝáQ=ƒ)xĦ—Frx'yā´&ġG€†^/¨jU¨èı.ÄàŻ1=Ày=Ìxhï”ÍzˆÎŸŝqöĝ6tÂT;˘È(ú֐áżI|3i^AP´ÇĴİH" İħ‹­½sqjX-ÇĠz\=Wċí¸ş­Ÿy}Q–çeı)ËÓ²b̚}Ôáñb/îÙżÖ 5ŭk _Íŝ]|iendstream 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…@‚Ô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`_ANSkendstream endobj 218 0 obj << /Filter /FlateDecode /Length 2627 >> stream xœíko·ñû%?â`è^‘[ñŭÚ~â´I$qí9@OO+–n/:Ɂŝ}gHîrxâêd!ĥ,@xäp8/rû۔µ|Ê_ú˙b²÷ÚNO76=ü6ááÇiúïbúġ&H#­gŜL'“¸’OıS­Tjjµm½VÓĊĊdżùfĈZĉ…³L5g !­SÍċlÎZËı‘Şy7›K)ZëMóf(έ‘ÍÎ^2á†aĉµÍ1K'ŒċÍyĈwg\“…Ç0l¸wN4WHˆŽħAĝU$Ê1Ùü€3ŒçÊK@>ìs‰“Ü§Y΄i½UıÉçúw^F÷îŜ̈́m“£dÜ̜lıç.$ Ŭ|PXau<ĦvŠY[PÑÍĉ€™qoéŒU¤H;Ŝüˆ“átÒéĤğ˜áB™o6³_߃ˆıĤ"–ÒĥĈ8óâhÒĝÙâ×É\)Ŝ2!Ĥsİ[żÁ/ûM·† ¸ޤ¸•@&aÖ2pÀ!,pˆ v>Fp­E³\Ċq äD”BD‰£Ò™BÌ3Ó2ΐ%À„Èu ûóÀö^Q²èB*#2…è/×{"÷"Sg o … S”°Lk-pνçĈmiï0ı;éÏRÊ£˜*ôògòVe‡yj· Z ĤTâ—ĵ$tñ ŠáM"Àamòò,ŸeU·D"ÂÑUP<İD+ıŒŠĥŸ0k&]ÏE-ŒÉŒĦ#1CÄ N™âó¸]‘ôÎòÖIʍC2\üšÔqÁżÙÖ) –Š'™÷G™sÙj…v ä2yjRJİÁCtqĜ[Ü M“+m‘+ [2+Xhï4`×èsñ ’1ß+ˆĉŜjOĠ° &ċÁ¸ˆkŬŜ"#ÚäĴ£nրaëéâĠdñ—ŭĉ5Ĵġ`úÎ5ŸÍµò}Ĝ2 ^gŒvĵÌàY—<Ï`›ÁŸ2x\EĥİîĥÊàŸŞÈŜîZFv[d&ƒk:7rPšâô­àÊġ<Şâ&äîbÖz7{ɜìĝŭ¸zf"ċp¤—‹ÉÏ:ĝÇèë€sU}xŬJ!§ĈH^ŸöÉA+}]ş5ÒêŜ|lQmyĞnÓî;Hċĵ•Z žë÷Ş´è zËzżËGôfĴsîÀÍX•.ùŸg›½Sjğŭ7ƒ?f0ò_ĤnzKßÏÓyD Ş2Œîân‡{Xeŭ²ÊYiŞ’~–bÏìĦŞûJġE|ıÛğà7ŸâZÀá¤+%žlYEpUE@Ué+Š·FβzŠwĠ §U>ĵ¸%1£ŸŞêvqïëŞOĥyZ5góü|z°+~àI”(Ç]6žßh÷x=ìŝîW}ÒGà“/‚ì‡ ’Ë—Ĝßw|E½í¸ŭİg|L\UQ\T×ŭ­êġ˙YĠ ˘)/ĞËFÌŭÙĈÛĈï!ÏQkÖâٚ?kżevħ‡ĜĝîğùÙXŸ¨ħ>‡ŻOĜÈKğĵ~¤Àĝ?;ËcĊÓú9švd4Í(o½Ö.T%Më ßĈâQZ5gçXÑĴeB7GǛC¤G3.9ˆu}Ġ…Zİr&Ö·j%Oó}{óı7XŠA›•VòP‡’NĥҗĊKRż]Ĉ˘ŠS>ÔVt,×üŻj9Z´ÌzÛ琿­ŞâyUŒŸDĊk|rÀc)ɒ­/kĞCÙpMŞP·ĞŻĦžJêqt8”Â3~ğ8yê›/ êPQuËiƒÔXA*|9Ĵ#›R²(ĉ’Ü:Šß–eâTœÊyğ–ù'XñŠUĤ6Ġ À˜żŜbħ+z·‹ñFpL!·ŠÌ5ċ’À#R1.ˆÊFuŜ‹a£Ħ˜/ʂéíb~,ކÚ&RĈ|QIĊb>°‹×Ħ/A{AŒG‚-•E¨ ÁCÉç֗4CI¸K…VĦÁ”U,´jĤ"ñÛʕhÍġÎÒ~°ä\u%ÖUÖ˘eĴ/;0Ñlµ`9׀yKéĥDYƒĊm¤Ğ5½„uŬx}q€Á•ġġĦ÷Žĉœ’ñOÜŞVċzÜÓôOµŸX•ÍeGÄP•ßjUè=Ñ{ì9àÎë­Vžž´ŭ€ZPÑ×0è>iÚ9Ş[D½,?ZÁeċĤóP wöŽRßÉŭ5˙<ZÑyܞTixDĴ>ÒjOw$,NĈSÒ9ĠqS?J,ğĞàx¸~$MíÑy8cĥzw¨H÷ŞÛoŞ{îUeÔU9P7Ÿ:r–ƒêÜ×ĠÑMe2ñ ÷ßĝ²z 2z³‹È?ŬÖÛbŻzĥ£*ï!á9Xû–Ş_=‡çAğ*ĝ.ƒm×ĵĴ.ğގĦûÖM"9Üܞ}WÓáo=·ñaŜ}w ĊgċÊÈúj*‚?[xiܳݨìúœ/çêan­òbô°œO‘Êĝ |JµÈç žWÜó¸J‡*‡8#ċ=ĵRö ÎÇĜR"I"ŽÀ¸VBìpĜ…aċlßÌ%ç1ĵS^s ŜÏâ QáXi|U}QÎıa­už[“èÄl¨€G£³\ÇKqPXlâEĜ°>†½Ŭ™IĤ—}ÏC@‘¸€âŜ >ӆ6o²=éĤmŸĦy7†Íd›Ó¸Î[BıˆCÖûTÇZëIĴu0 2X†0QߕÏGWEó?‰lh„Oè#Osş=îV‘ @Òì "IəÓkÒ ½<í‰á:^û=ÒïpóNŠıĠ0éxÔ°ÂyşĦ!+$‡Ĉí`oİ9^҈V >„àE|^wçig!à*œ}È$Şŝ";œ“1Fr]|1°‰HdIô&…Ĝ‰Şb;ڝcéĈ8o ĉĉ ۋE)DöÄ Êŭf!|9!cÊìO[I1ÜR Á‹:Ñ9¸·âèÛŞzœB68^|fˆK Ŝ!CÁT‘Ó)z܈Ş,Ç fš­ËMà8‹,lĉ0Oż şÁuĝhs:֙àψÀ“IàtÀfœóı |÷)Š(qÌgL`<ݘCòCjÓË>³iE݉żb‹ šmӀ—8“2côj§z='ñ.ÙşTÛjЧ¸\™ĴlrËܳÜNݳíGsŸĜÂ)%ġOÄÎSR)Ĥ żò^V$mó;*4œYá <ˆ}–%f’ÈQI˙>1Rı__oöÏ_ƒ  ĝÜĤt‰ĝhÌY'?–ŭ r]Sr‹™ħé÷È0QŒ]HùFı\EZ< ’óa\0ËĠH:½ŜŬFĤœcڟšÜ`EÄĝÉÔò˘ÒhDÒtĈx‚q €ŭċfô…ò>23˘ŬÑ=ŠPç ƒz:˘c9(şáşl íŝ{Ż…Âžü ™ endstream endobj 219 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@Â.Q–tÉŞjûbLÄPƒúûB:t8Kçğ“Ïr/#ğò=>)ul"-~H0ÑìX´ ŒTY™ĝÖAÈáŞë6ٝßô›äCš²j÷zCKHQóL˘kš³ĥÄĉOށÉV§:÷ ‹˙Pr4—8n1§Ò´4ÉÓï™àCNÁñ>9Sfendstream endobj 220 0 obj << /Filter /FlateDecode /Length 4347 >> stream xœí\Yo$·~—ŭ#ĉÁ@Z§û°ƒv`'0œ ö*OğA0:V+GR˚‘×ûïSE²Éb[#­dˇ3\6YĴóĞb_°ž/ŝ/ŭ÷èbïOßÚĊéz-N÷ßáé?G‹Ï`×0Ó{ĉÍâàġ^ü’/Ly&VÛŜkµ8¸Ĝë8Û?ĝĴúB™Ŝüîàxïe÷í>ëµàŠÛî_ûK –iĠ]X{o•è†}Ŝ3&´î68+8“Ú’ÙÏa ϽĠ²ğÁžKĤş×û˙9ĝ OôtßkaÇÓ?Ù_*%{Ï֞YGXÏ}7l` _ a‘Œ°=ƒƒş#\-0–wùŝRJÑ;á%Ĉ;Ál¤D{É`úƒ°œíTw‚K¸wNƒÖ¸‡„-}w†³BZX{9^AU dóñ À?àñ{ß h‚\oáŝjñÄĝ·= í™^X) ÈùbO9g{ëljó½·‰Ú÷ŜHN%Í9ÈÏɅĴ·Z£¤_v_ÑÜ1Î\ x$ ‡ğ½‡;òîĵLÇËj/@ ÀR.­îŜáż[úÓ]£ ßÀ‘‚J´é%‡+Lhġ½U°é(ċÙS,ŠÉD*êPàNJÊt‰äĤ‘ĉá2.2‚ıIĈÓ áŽĤ&ğLŻP‡8×Üòjŝwħ ˙jżuMŠéµĜqMċäšFĤkJÄĈ5áĠ5ƒİëĴÚİ ÜYUĉÉğ_&¨¤ì…e܀*rcEÄ[ĝĥ.è!è€(3ïŻˆ tI™¨ˆ„!˜ áÒIÛîgZÏİ‚&3sêw™˘jexS†‡ex^†ÖéRġF 1nŭC0âċQa÷†ˆi¸nË9Z·Ĵ‰Uè]†2ĵ)2˜À’³g#x6‚_ħ`jн‹[–'ÀôZ À_ˆwk8ݵM]&&pT†Ğ2<ß pî¤BµĵqFŬZ~5ŬÙCSYΚâ"Bĵ…îGŞ"Uċê¨âWJSnx7Ì[YW(J¸>½ƒ‰hŜ4tŬœ%ŸŬ[‘Ĥİp™ìçOèí”äġÁ&|’ŒĉĴÁd$‰Ü°cVĈŝYĈ?ò—;Š2f~âz)ş(i&İż\ÌJ–ËŸf<˘ŝġր/bG”÷‰Š”QßĵĈ}½ wĞÓ[52y/ŠTë6À2Ğ]Ĉ>k­àd8ëğĴŽA›DNpĝG䚛Ĝ=\íuëħĴj,qx‘Uĵ !Ú>Ċ¨ŜzŸè?šRY7‡Ğa.³²IL>kî°iñÇ{À†6ƒá×-ԆÑٚaÇ{q\Şğq´ˆ cÍóġ¸:àµÈ|Ĝ;0÷v¨ mŜğŜ e“÷ıċİtߍwJÁyB‘ÖğqfGËÓ-m– ,ÑéÔót°ïD5fğUhs\X’úQ5ù;ÙIìx„]ïŝÚ-= ħM áhWâI4Guä ’‡ÔĤ=SĜ£•ÔñD*8c Aé£2MhŠ¨Ù T>!•Ħ9XûŸ‰à‚İ?Í)6ú ´ô2nĤ½ ı§b^ ]­ ÜÀöCÍHû!3"JxUÑİTŬ Ż ` l‘ûġˆ„Ô½’Û}‰Uï&8C›­žž²PĈ ÊŜ“H*ˆ véA6bdĠC]ĉˆjÉY%ŭ̆è½ Œ<.Ì HI1ĝ“.LF¸ßg gĝx`7ó}/TŽáğ ^@e6nB–$TRÙĵCeë›Ĵĉ€Ĵu;YíÍSC€„u˙+ÄF?ħTÜöX•\rì)ô)Z%gS7'²p.<é84˜[â,‹}–Îġ˜Sµ Ë(‰Í*I5‰x6qıgĥnŭ%ÁˆX¤NL§ÁhğÓƒ™fŞjYNĵƒjğÁÖħY¸šâyŒ×ÊóĤ²Ŝì4ĞĈm2Ċ›cĥ‡{9lžÎë2ÊpӜŭĵ oÊuöexV†—Í}MŞ2üĴ ×eĝ˘ıġÓNKŒ£lĞ·Ü WĊMPŝR] ÍÄ @=Tĉë8+? †z WZè¨ħ KħïĜTÚ|Û\­Q[N?¨ae‰Iú´—%µ`²ĝĤ˜;Yœˆ×NVdÄ6âĜüžĝ1ĵ¤ĉ¤ V-Jnài3rÔŜÜQÉÁĦĦ}¤N3/è8HµyE‚Ûè}†éPĜÓCİM›Ġê!Nc‡J*ùÖ!Ö<7.8W‡ÎĠ³ˆ„peV1¤}:žĦğĞâ8ĥ£sëGĊSE‹A[ĦٓS†K˘1Ÿ˘ˆ¨×%ĉ$òùû˘[ÉáµĈÓ3@Šż8ыëûŝÄDhn,Ĝˆ}t_x-é!÷Ŝ ‡_í>ƒLˆÚYüo œêç:ÊwŸ…µ Ñ(*JÔAÂq ˜×P+Û¤É1µ˘nË3{R9 xÖyÄ'e¸nWexJ?kyşL3ct4ˆ1z1ĵH1ċw̌ż› €r5ŝ˘âäa yÒê$ZYElIŭ’UjúeĊqJ.Ÿ˜eĝÁŠSME D A İúÏ˜Á¤_•dKÌ7·ĝeXn……TȈ!Ŝ€°ÒtùŒnÒi²K œkŽDÂİ'ĝ4ŭş <àëÀxḨĴQġ!gc ?Áĉ77QϤRôa×ñDx)ċ“ꀙéÌùùVHMl'fĥċé¤Lcŝl²OUŝDÙR²GÜĵCġpoÙcόZHĊ{O'óO½îïŜ8wĜ„Aĥ{9—°QÛH˜ƒ!×ÎĞÀ ;J¨jy-ŝ°ÄO­Î4wZoúM•³ĥ•ĝ~(íT›óñÔ&GRĝdš¸—vê½:”"ë\4oGùx·3b>,ôŽÛ֙è=èıË‘Qè£ÂÖUv‘~Ĵ#‚ò´Š‹ŭ\ԂŻâ‚‰iâœôw˘d…7ĊvSiÒğj‡dĊtßşIĜs]üµ\3ŬĤàëvL1?šM1e.‡­ŞbHkOnT,_–Üâe;·@ŬgÙ3ÒHmİmLI̜ĊşÔİħlq` sPÀ̛lj3% JÙħï `ْÖĝY,­P™^ĈiT<èW$”Ĥ„Xzċ¨>J{ê‚ÎzÀb˜˘àŜX]ÜoBY:>ŽĞ W4òѽ ³ç/ï—N7ŜN˘`ÑsŞĵ)4+CLP<òñÓqħ5ĉ²`T7š-Ĝ›Îo•C$ȧDA‡NbDnbÌČäٟÊ–ÓŽ’ħyÓs35ĥH`¨ Pa€Zäµb~|R°`ĴsÀoÛ½‡i’şċpïĥà[u´˜R‰İUdrŞ× >Wd2pV‘)…+ƒûŸŜϰŠI­ô˜ççߟ“ÈD~g>œ—ì†ŞÌ|\ÀÚMıÍ*ĞŒ°â4ş.fıšÚ@‡ĵ]ÉJíIˆÛQœšÒ: h#ÖĈêYĝe2µ9$—8+6Ŭ†}‰ÀüŸŒ+kóH_.m4è Á&ğy xÈ.@ϑċ‘{ %Ž5+¤“ <‘WӚá˙‹e/p^Ç:‡I›'`mlä[p=â2o¤ä!U˙'Àí]g ĝ((ġkT×?lk+œ1rÔÖQçTŝÛğO">a=ħ­JĦÑy3‹ĴÚÊéÀ̃ôVÁ!{ :0gWDĤ›¸cñ#˘lşÛ‰Ï´8‰Ċ2…0TŠXÎÍ~ÓSĝdà+MŽ%Z“ÚçżË‹f ‡˜_Jŝ ġĞY~ŜêòĈ˙eْÔ/ż.;Ï ċıŒÏ>Žŝg)&Ŭ)€IkÖ?)5MZ%EÖŞö÷XñÂWÀşùAd3ßYX^Œ…÷˙äĈĝN‹Ĵñ<˙@jŭV‘ƒ×uÔPcŭÄ[ç ƒ³NÊY×Ŝ+8öžĵ4*zÚUŻ_äh (Ž‹ĤŜR?‚ŝv>ñ‡ïñGMĞ 0ĝĞe~™!ĤT˙Q“ ĉà—f’g‡Ú,èŬô!H*à†‚·ñ‰1‰ƒĤNïâ9éA§„›£ ™f²˜Ü´Ġ<ş°òĦÖèTvğġ‘ŒÀ:Ĥ|ls7Äg| ›ñsµßv‰(ÌkŒĞĞLŻJ£â€X*›:İ)Ò¤„~Eĥ#èŭ]—̄*p|R`nlb*è1AŒ&ÎzФg.1jCB£ħ8kwABĈE§ñ}O5Ï#iŽóú1Ż˜İ°WġÀuÜësïzĞÄ`hí_še“ÊGċuÑ()loÇë9KÉ|(Ç/eŭ NK¨K!jLžVݏ ûĊw´W é‹/-BVëq •ĞÔb£§g91Ğ@K”#ÖàÀĥ­SG̕¸ŞSkĴÄĈò— ˆäè3ÍüÉ[úğña[‘z‰_, ÇĦ›žÓá2°áٜ 3ci@MĊKÒ-‚E%‰ĵĴK…CÜÚğ‘;àùÔ‘ƒŜKò"Q{R!Ċ—ÌŬ JÁEëH>mMJ8­ /ۊƒċ$‚.qS#“*à=¤§f:$Öa{Š_2s˙Ĵ0|iĤÇĤMo‰Kž–‚TĴ˜™BîPW҃vʚIN™Œo)ÁÜ›¤oÖlû§­ÊŭLŬdu\¸=Ż4H9IäIüNĠéġSR3ĥi1ƒJ!„ûBéiŝŝÏdŸç f@ƒa[ş’4fèĞÜ&WeY%['Ÿ_¤J‰pé-GôVÈےüêħ,(Ói˜° ĞċĞŭ¸7$³Ô"V¤1âĥž…ôfD^Éĥ…ŭv \† Ÿ†˘]ꄒ6(Ÿ#jw\Í% w§ 4î@<Äom•)ĴОjÇ/–€ AuġVÏÎ_ö—Z Ċê}ŭıüó2O’˜“2|[†A[ÓĝĞ&j%CÒ*´*Ğĉ¤!‡t}Q†?67ğhî{Ŝ<‚“kÄż[—mö뽃?Îr,O~T†Có\Ò`tÖ\{Ùĵ!÷żexĜÜa ŸŬ*Ë;&5Z˙yp˙t+çöżEv40Ó$/$+1żëĉphÎ~Ò>pœĵ-Zĉğ˘<÷úa÷nš{­óG;¸lR¸i]ĉ$OéÊÌ"Tç ÎZ¤ÜCúïÙ¤y4ġñ§q[7vq†Ù›Ĵ´*m/S?gĝw2$I×e/²àĴıöĵ Ëp]ú- aWĝGpżÙû?FŜĵendstream endobj 221 0 obj << /Filter /FlateDecode /Length 5001 >> stream xœĠ\ŬsıqÏ3í?‚ċ—Ìĉn'ƒo UNÊJî!Ĝ>ëxyÑ9U+R˘‘\‰K-˙ġîn`€îY̒ĵóCR÷ph4úë×ŬĜOçÓ¨Î'üŻü˙òöìŸ_†óëÙt~}öéLÑ?ž—˙]Ŝžż¸€F›1Mɟ_ĵ=Ë_ŞsíhĴ=.ŒÉÙó‹Û³WlĤqJ:†ÉïáYk˘î7Ûi Jyc‡›­1z ÉßÀĞTf¸Â.™IGx†×SrÚ oµ‰Ú5Ü´ù^·ŸÙ‡oàµW)F=< !QÇi’Ï+~‰Š“~‡#|R6˜ĵsƒ*‰Ŭì6ڏ)Ĝ4|iûú}Ĉ×ŜĜè0êÉĴ’ñeͨ’Š™ ıá·4EÁċşh§ûÍfžT |Ä]ĤÈE5üîLtŝvƒz5á°ùÓĊoሕGlL½pÌWgƒR›‹˙Ċ1pĉ ŽÚE³µV“Öç[ĈƒaèĞÁáÎ̇‘FÁv Ċk7á_qĝžĜ¤uHŬT&ĜH‚c}ôÖ ×ĝÚĈ4y7ÜáÖÂäœFi1Ápç}^F98˙ğMDˆí6y­LfµŽ&Z ÓjŠâ5ħÒMÖ§fŽè‰sDq7ŝ_gËÍ?q 3…Éd޽âGşğD qI|ğd\0°ÊÖĝğ A°8áIáUYŜ‘äÀt\•~DR°.î?4Éq9½kÄS“‚VfP1$àġ5 Ñ*3ËĦš™ 49ùzwHŜĴŞÑ5İHëDށsĝˆG€„*GšÂ˘WGT?zm<—T gAwÂߛ¨AĦ’v7Ä/›¸Ĥċ‡ÌĞ4˜6q#ލ˜"0÷ϸ Ŝò…ùğĥ]„Às0n s$ŜÂy‡s:SxCLŜ€(Ş2)*Â?Ù!˙Aî ŻòüVÖâ=ħĉü•ÒKyô.YħòE—#Uˆj–\E‘µ3À•f‚A̰›elÛĴ½QiiŠnóêİ9í}‘Ëa–K?$—…/|Ñ+Ú"˜²:¨Î·ÊŒÎejċԄ"§Ĉ¸4˘SxMsÚ ô<Ë)ëáÛLâ·{|Ċ¸jĠË6ŬŝĤXh†(‘`wàı ŝí•Q!XĦguí_ö…ú&›Bëà;t…&˜E2Àż[ÜŞOA:żÎ0YTö‡<6Ċ݉xĜ рoáÄ Eç>iĠŽ€TŞy’Ŭ!ïuŽ9ê=‘âÁ—Ûìž3ĠÌòùĜfŜ³ŬŜġmoêŠ3zٓa8¨ óù­ŽĥéÏጕ7Y€^naĝŻ`ƒ40-E/íqlïÛ]{|hoÚu÷í}{üahÏş=ŝO{4íQµÇm÷í›ÂC…–§1€–Ħ˙şĝ§WĞî·ŞŬ·í1tßĈ.Í~e†L§<ĤL§šéü˙w<3‘Ûú$g~ûĠ˙íüŬĊĉ÷íċoşÇğzĤOàì*}>üħğCûÎ8ùU{œÚcZ—ċhNÊòe{yÓû"qèŸâslĈÊ1?…wżêJáçöxû˜è19fÛŝĠÀta5DònV˜MVĝM ò-ƒÛׄ+2(xȇ[7)£$~ MòGĝÁĦ;[Àœ!X|?=˜ÙĊ½ÊŻÜb%Šá÷YyˆD‚ĵ-<áQĈ!ĥ+Ú`ܸwNJİ€ĝÈbŠ­ğ.ĦÑ:÷`îçèÁ@¤†wŽÛq„‰žŻÀ4ÍñP£ów£ÀÁÛmĉ1È …÷•*ġ•íÄ螂YjĜ ÄâQÌ҂9‹9=üD?S2Š!LİĉYxÉH½lŒâL¨_] ,ƒ›q(ùċ4ĴħĦ´Œƒâ/Gëô,N‚]u†wy×$Ë ˆ08˜2–Gí݉ĥD+ċ€xç@eÀéUvòEĴ(èçsJDï"ê˜ˆèŻ™˜ċCRĈIÑYFÓqîï3š JÛO›Šğ™œïnò訤ïïB²Gw{ÌbĴżaJŒ?Ċw—ŒÌŬ]Wû;N‹QŜ!ˆ‹ĵ9àRdŸşP"{š& ?Ü3›Aĵ‡·ÊK-k*y½mB˙ħAŽ=Áğ áI²@(R6ÀĝŸ ĉm~dȒ)²ŒĠ@R…iXÁžÈoâCò\”ïs.½#ò2R=F8EÄÛ:”Ŭ|½À×áˆßÑ•ÒŬP à–ĥY7,ŠP—˘ûĴŞp2'Ä4£òe%„ğĥhâêÁ"Ác˘6p°)çĥd~Ĥ²pşLdlÙ2ÍçÊïߖĊ“>çĝ8‹!ĴÖûIÇYèkXt6.ò.}?à´OBM8bì$úö™–9ÁsTyËA(¤t–8̏,.laΙğB^†ÖÏâD‚q ÏĈùˆhž|éŞœ^îSÇRïò^üdށrҁ”Œœĥ˜‘ è>Ŝòç"Ÿ~Râ¤yûMÖ ÑvTfĦ/ÙĵÄä}‡^×ldN=9÷%£jĜšᚸ̐” fivÌëħ™wݳIô(%džĤÄyu/˙҅!5ßq†ô1„pbúëöò×ġċx¤;×W+ yê54ġ\ıh/َżoßt½41 œ{Yċwx,€$ĵÔîôpž‚èÛìĝ'XrOòž˘ë°–ù.Ïà˘ppğ;vŜ¤l%MżËĞIœ0Ş~lµZM@Ğ@–—V âñ%¤™ŞösëŝQ êÌYQ9y0|i§†ïó4'Ş[rñ;-:ë°÷iƒjOÀE@ˆ ځMZ8h³€*—H́L.ghk–UûbŒ3#@ÊÙM\2›ĥżÍ|ñˆ‰ ­•·Šŝ<öSÔ,2ëTġìZÔÁ ÇŽ ,pÖyË ŝċ{gyì=ïĴŭĵyċE>'hÓRgTCŻ/IgF”\7 üBΗÙ?d!s·ÌV“Ċçoğ ê@îƒé@ ^-İ^VœÌ²Öe=%´ŝÒX—AVž˙B´[ş“Ğy`‰„Žñhe“(I†`vyH‚`ĉÏęâx!frĞèÁôĵk´î}\~ż4ú„?Çé€ħVԍo yÚ.âQ{¤ub’µĤ>ŸÚ’Ÿş]m„TÏ)H4ZE^:jŒ–îĜ>X£nı á^|˘’¤§¸KÖRmÑ\ÎÒôħ°@ĝ(•Ĵ'‹¤ÁáÂĦĈ˘FSœ‰JJ$M>”4lkĈ ĝƒ¸—ò“ŽSü+=Ë-‹ħ…ċLd5ı~ˆŝ H qòŝȽĝ™Ùİ*%;%r,”žRʆġ$KeÉëŞ0_JĈ&DĊÜ}UÔ̝#Ÿùûœ$Sŭˆ V‚ šµ(ĝ5:×Y2xìŭEêÜáÜĉhYc;Àa_Ĥb… ĉ:µ#´fr²ĞAy-rċáƒû ;‘ġ FÑX Üݽ‡süĝ‡MMäR3˘Ŭ'KŽħ4$6i#„?YÄ`•9PΛ…‰ ZBp9œ0ÔIÀìÖîRhNWbï˄S\s@kÌĴçw}ÈsÀÁŻXXşâ•V,E_Ö5Ó1)av,ĝ%¤Nj­W§mÙħòĝìĤ,%r_z›}ˆżñ5áşĞŞKS˘X[VĥÙŝH4Dh=Ÿ„–ë²ÉĴ,]Ŭ<,8ˆ"_Ûár ğ óĥó~‹Gµ-;YEĉnO¨:üÌGvn+y­âħġÌ˘E≭Çz­T”15ϋF;ĈŽœ­hŽ@U/¨³Äg4·àĦr™îœĥóäî–Rĉ i;-;UƒĊĵڏCŜ˘Unmç­{‹y1L‡ïXED¤’Yŝê*ÇB€Ĵ„Ô\ò›<L–hÙe3‰Z÷!k%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™^šê*o3 €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‹"ĤÉÁR6 EëçÀ<÷@‰ž °gf9ŸÎıiıÙÑOœÑĝ$ÑÂO–òjêQI,9£ÄÄX,Ċ™ÑÎKƒN›Q½B4I‡H•ġ| ˜áı}ÌP'Àíñ„öŬƒĵbyŸbŭżmĴGkßuìí‹öÈzżŜĥÇç4.ö;CÓYËÛwŬúíelµë•f ‚#5|CYݵn´~8gÇŜKERqŒHIħАbX@²"×;„)[iͅ­¤Àĵlß·Ç~a 44ŽÊ-CLĦûb-bO’Iax4׿u×Ŭ‚ £sów RÊ  İĴuî8H!WNy1K]$â wÍ4BSĞ}×àóSeĊïZĤvCqdÉĉ°˘’Qúˆb´9˘*QË×óìĊĵ8I‹vX=­Ĵq˜­ĝĤpHü"-Ġ:=NĉĜW7Ċ½lM]dùgu·Z„‡ÜĞìXn+Z£NôOV­Ŝ—ĈhÜQğNRi7l]Im,šéjĴÄ£³²*Kä\Ó˙„ŭU!ÑùaŜħD1Ĵ„ôSÎnSó%qpF|óÚlìĠR˟˜òûe?‚=nšš+Ä6)à͢ĜÇĥÈ”ĉ£ñJ ċ £÷µN ôt‚ùùÔeĈŻpÀñŽ·&,˘¨XSôuîğ$‚%²s‹Sƒ€B£Xx“-Ĉ×Ğu^ĥ1P>_ËÔÀ‘Éɧ]?ꕷFÔĈ­Ŝµ°">ÌëúWA6‡Xâ` ÙóÎE7 ¸û} ˙ÖcŽŒ¨ £pk]Ĝóvß- #bj)Ŝ•ÀÎEë¨Í úc°ŝqú狪'è÷ŞG˙Jwëfĉ>˘ÙJxû„ž?ĉZċEMž1-Ŭž ĉñÏí7á \2×K}z;Ç!ŜOc{şÈféÛ½kĵjïSNë4âeÀċ#ĤK7œœJĤ^…€ŭû†î+è  éŜ„Vó50?nÀħaÇGÙ-ü³Ï6°ÌġÊ·'À‚q­Qµá¤İ œħ^ĥO ê&Z§j$xµ#GşĊZt'oÛĉ†=9”‡F×}ûù2ż~.˙ž°¸ƒduÎ=â}LÙÍr‡ÛŸ µ÷ymŒmoO'Ä[˜ ŝ.÷ôÖcâêĤÜ3˙‚ĤA÷ù9‰E7x•œĝŝÍü­²i´ĉ|Ğ ™ölû;tQsŠè…?njΘİĈže‘jaIqˆĵ¨y`'ĵ[L"zwjó —ÍtĴ\{]CpGµë–ŒwĉÛ|l9,XħxVt­3—ú=—%òJŻ’vĵôpúÚùġ6lUìtqPÎúÙ]@aġb,›rìÚ1¤ĵ~3ŸĤlŜ—†WoÉ?r Ž/ &ÛnòüÓ”k™cŜÉÁ8Ío lçÄ/ĥĵ§Eòı/˘ô“IrŜ‡EZğ•ç_Ñ^‰ÑWʃÑ, ğ\ó^Š–°ğ×+j×Gzsŭĉ{˙×§sŭùu^p‚à“DċZD'âjħNŻÇk:ç ĜŻĊw%.à:ż#7í (ĤÔQ½bNĠ9œ²üÚFÙÜ rà·òÙ!]‡WċHÚú—ċöÄXİêhż!wÌV1×6Çzs÷ö wi9ҝİn_(8?7– ͙ĈßEX´ÒÁ\” ĉêÂ^ŸjúÈ w›MŸÑI^ûK×£­uûĴ¨6ĉolŭ–ŭì –D:”İ°R Y´dâ`€w:@ì]_šŻÚRTİ‹9ÈOö™ê\}§£êÔïxl—0WiÀ³J0ŞyÑf7_h˘ü(.˜&Ñ˘Ï˘›Hñ°Q³k$âÖ,CÜëˆŜërı5ÉËv 4ì¨ĊÍË—}sqöG -ŝvÖÏŝ ĉġendstream endobj 222 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 245 >> stream xœcd`ab`dddwö Ž441%şğzŭ¨gíĉaîĉa™ô½Rè°à>ŝ] ÀÄ$V0,c`fddiZŝ£ƒïçÜ) ~ĝÎgüŝ£œù‡ä÷U˘żcG×Oïìmî–llljhéíœÖ ˙=ĉwìo nhèììn‘l˜Ú4uroïôérߣ0ùwroפĥ‰Ŭ’Ó'O™ÖÛŬß1AĞ÷·ñwÈ}ß½ż{KL˜8kĈ„‰=½ŭŭŬ“8Ĥ5OİonoohÚŝ½j3½ߙŞŻ3·{ŝüÊî*ù?ÙŞ*ğËËçvϑç“b1ŸÏÉÀÊ+gµendstream endobj 223 0 obj << /Filter /FlateDecode /Length 6598 >> stream xœĊ=ێ\7ryžĝ)ù~ì Ô'ĵ_Œ 6ĜK‚…‘ĴµïbÑҌFŜMËÉĥüùìTyÈ"Ù3#­ħöƒNñĊbŬ/Ôw;ħȝÀ˙óŸ/ß\üóïüîĉŝBìn.ğô—ğüÇË7ğ_<‡Ò›%ŠèvÏ_]¤/ċ.ÀĞ(ÔÎ[żDkvÏß\ìş|ŝgĝB‹ĉ –àğçWßìw)Ф‘~˙_—†Y³‡Ï6FoÔŝt)!”µû÷ĝVIĦ­goSD½Ġû8 J-ÌŝĠċŸ˙'ĝê·ÊŻĞyy0F/!­m£–†10^Ĉŭé=<—Jy ü"`ĦŭK­ƒr^îO·—­ĠT H\ Jĝ‰ZÀëż§áÂÙ`ö×8DĈ_èç0eÜ‹o•ö0önŬ‚i($,Ó„öTZ„%½;h Èi³?~£Ó5­~eù‚´Ŭ µn}è$Mû•Ö*ê ˘ƒ­ùTxká­i‘öšĦĥ§'pyšÄKğż­“ïàÙ( ìoN: oè[ƒTˆ+üÖ•aTè Yéĝ>EĜӜ"â4×ìĜĝóUžÏxʓÄŭ :z  KCH&Wé5 °†à ġ† IT§È,@q@ŬrE3£8&t e@Á´Â:›%ˆ(•Ċq–ôˆxÛqÌd€˙Ó´ùĉñòId…$T-x;$R°H‚1gġ%H€mħ NÀ'£tŭ™q.á%ӈïqCfm4ÖEĞ%ŒäÚ¸ê’/*ĈÏGŞ46ü Ġ‚ÜVwfSÀµÜeüV¸qġê>$]›ßĠÇoëħ>Ŝü4œìOġñm}|‘Ħë4œş 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 &óÛùżÌ§êCq€”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ĉ7 kôL\•Môŭ\ˆqsä8dQ$0“]…>³,4âÁ²Ú˙Hg£­×#·Ħ ‹%cN(ĠúL7C[Ë €@8gkĊ%8oĜAŻôE‡?Á8‚Z٘véäŝ7GœP;pH ·fNoÓ°äPüfl6Ežvj…ŭßF°Û%*mŠíM˘yċ0pİ â Û05ì§/Š‘ĥ'Q‡ĵîçYB!ƒŸáÖÌâƒçŜñ$ÇyuEÔÈpĴ11;QÌÌÑfÓÛLOÑm£äÍóÀSS …cƒœÖC“ï~˘Ú$ĝĝEü%Á@ŜsŸ~ĴÌ}Z†oÙ §úĝžżŠa°¸+TKèׄލà3(kBh\œ¤­(òÀ£ 'AO#áuŽÇ¨~ Ç¨Ş ²ç Ĥ|iúfÇ·,Ìŭ–˘ˆp܋¸úğS“H÷Úô˜Ż0ßç³`–Oò@`çŸçÜ§Ċ1YrsÍ,“I¤Ÿğ§|k] ~=´Ĵ7Œë ­@W׀ĉÖÖ m›Œ ÄüjkP°/Ù9HĈ”ÙÄÖÀ˜wÍUâ' h Ÿ…"~•Ĥĥ$(g0¤|žİ˜fV?Œ[ĤÊn+1Ä 5 Ĉ­?‘ĵ••og+1>äħn6{÷Ċ†Ûr >’ÉÀ†‡ùğİ qšÉËaz“&–ÒF6ñ)̀‰Nî‰| ¨Mnò5fĦÄûĵ=2€†ûcl|Ì96ïŒÙ·Ùİ„#yf_%Ċġ1 Íĉĉ0îÒH4Ì4H(á ½œ°.íÈ8MEéF_?Ŝ¤)iµG p+% }efEòú‘öşj”œŽcĥEòIJħ”8ݰX™"àsUrĴlñ.}ċa§WùYN‚€l‚uéLƒGtFiŠĠı£„n"‚ğö3(ӌI‚ħoŻpMIĥ #Nr°U~½³{#:KÍ7aŒEàqÓ úD]ñıħ÷>¨ÍU1qžmxIç‹C-:`÷i›p w‰ Œ’†S9ñ’U0ÌÍ î€â¨ƒqnĝ5H(J(˙2Óy†êP"O\kĦ‚ÔɆNÒ3§DÊÖ[ۑmĠ/Ş{–™²x–IîP(ĠwÖüñ]3Î&Ì,qÑ0Ót•fCï1™÷Bê'.Yßçh²\‘˘Nil4eŠayŻë‹Ù˙§–h4švÜVc^'zĉésÈM‚–!§'–£ÄŠpĠr(j•¨Xg’ Oòw‡)´ÚMçPôĵë#‹J,·ŸĞp ĥgUĞ ™™e_èr% ĈJP|˘%]‡In˘úìĤâtÁéŝ#²8şwMö‡ÛÙ,êöĥİ´ôT)ô>‡"¨Ñ2hq5rüÛ:d\>"ÁéÒFŸÍċ€oš;ƒ˜ŠBN£4³š˜Q´u”H$Ŝ§} cÀm€˅]UéÈâjŝIQmJ ĉµħ†I(f­1xä?R‰ZZì8ÜÂRĤ&›1÷Ğ’ù46Eş2Ğ*y·B˘Ğ!Ĥ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=ıB}kјD|cߎ†‘^ĝ„R‡ß™-1@ˆ$-Òİl^[ż°².™i’äµSL3˘@˜Rg(Ì˘ÁO[m d̰ ŠTRŝ° jħ;l-ŒûŻÓ…×*Gß­°Xàñm>- nCŽÜ oòĦÀ ˙‰V°QŬ­a*°RÀħ_Ĵîr ŜkÁğb"]3ƒé#“s`+˜¨ÀŒ˙ہBŽ+!İş\q$Üè Q{ )x§‚L+Ž]ANÀ8ĥiìhq•{·Eô4‹ žÏdH 7ég–.ĠB–"—&;Q3ö|!ċ&ŝI"–sL[YŽqİhùtżĝï ħûġü‚¤öĈĦġ†$Lkow€BĜ¤¤’ŝoj8„!dÚ°‘UL†M.>È.ò)Ö:8ç!fËdë!’äì“ŜQħwŽÏ4Ó§´HĊq½żË=p1KıżĞT('M+Ĥéĝi`ž"OZ۞|U׳ŠÁ‹·Ĥw|'¤Ÿ1<"ŭ³gñyI§ġˆtZëړ‚ĝ™t>jġ™´a*XG;5`*·…ù}˜½*,yÈU¸„âPpĤJoÄĞ@v žK­ÓĦüêr™inMk˘OLuáv÷îİWüI‰òÖ픐‹"ġE÷ûċIŸ<›²à@Ç:Û7]xÁ‰rĤ9÷ÚKċĴ”Oœ„XNŻikgĤöÚ£š–. ŽIܳD?àˆ"8jZĤĥjlÔßI~ˆĦjúŭ?ŒĞO´6ڃIÉFÊvFœ°LP‰|_§ÔĞÓĝ²cvàÓMVd•ûéŒÈ¨×ï1°gz}UġtĦ…2ĊäRSQÏöÌ&ü51ĝÌiD+0ü<› ³ 3k›Ït<ì.3sĝ~Ĵğ‘ôïÓp0pq%Y÷9™MmÔ"jìF­6~ÁŜÜŭïğÎÎSßßHÛéğˆ —Œ£g“Аµ}1ï ıç+Àş ŠìeçݍkoÒŠNˆ˜oR Ġvŭ$•£Â³S­çs›^# S‚ÄÏE-Ґy l_ĉÁ² -‚:bV“‚î D= Pż.)ügĥÌÓF‡íz7ƒ{%dßw‡çŭ¤KàŞïla"‡.?<Ž 3`j]ê'‘²@ö}Fw\t|Xgh ÈıġĈ:;ıĠûš l[YÚuRiôjdk òÖ­ħïÜû$xY, /|ĦàpwQŽĠ!ìg½­E‘œ~n€Ü§i 5Wbjm”M5×ü4Lĥĵŝû”‚™úiïŝĝ˘ğa>['ÎßK  °ú.ğmAÂ<^ò" t÷´`á‰ôcíŬ„!İdşòۑ éĊ~>.şUĴ ëòħÔTtŠssžä(Êñ-š}‰ÒÌĜZÇBÓäVêq—ĥ—gWXz{yJʅ¨6MÀìŻmX$× Éz›Ġ£×@ġ$)tD{\—Š3GĊñüfŠñċŻr´+N#Á,sñ°CÄCL:ġYÎ&—+JĥÉžòçìQ÷‡ŻŜÊ.vMM£ÓiĠtuL´`˜fŝ7W Ĵ7 aµwŸùOêàòÉWŝôV%œCÇMŭÉşê:ƒx” §q­˘7Ĉi Dù?4àĜ5Û;BVOĵê ĤŽvÔġ|"Żħġôp#™8@Ñ^Ĝï…F”ƒ~/Ĥ:r\l˜›{xúħëendstream endobj 224 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ]O1ƒ0 Üó ˙ @UÁ€XèÒĦUĠöÁqPœ(„Ħż/ ĦY:ߝ|–ŭġreA>‚E0–u Ù- -‹²m1î,Oœ”²ż)˙ŝx‚Ġ@fw5‘|VçS^•[ĤÙ+¤ x$ÑE×Ó bŭ'íÁìÎĤé2ŞşĈì?”M%Ž›€KÄ17ÍMRËô{Ĉ;ŸR°B|E™S{endstream 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 9529 >> stream xœÍ}[dÇq&àÇĥ°żĦ^W-Ĝċĵ_ ,ÒZ&,Ĝ+‰œµaP~¨éž5Ó5ìé!5üġŽ/"Ï9ĠU͋޽ALUtfžÌ¸~™'뛍ÛûߛwWûEŬĵúpċ6ŻıòüÇÍĝçĉŬĉ×ϨA DÙw×ËĉÙË+éé7}LiSsŬ÷œ6ÏŜ]}µŭûÛğZuiû†>‡kKÛûŬµÛWïKLÛ?íc ûÚËö7Ô"y_KÜŜ˘EîхFŸ‰ìzyûäĜBİ~ûvïùÒâ£êĝ‚ÈĊ÷ÖÂöiĦ9g?_3™TsqûÏhQşO=ÒàósîјxàğYÍaÊ×Ô·Ÿ–u}ıtÓÏ>ŝiê>¸xqŸv-î}÷M&iByû[˘†še…ı%WĞ™ĊqwM#;ßĞnq'3ÊÍo‡Ĉ´şĜòöĝn‡ŽĊğŭ°û÷gż%ûĴEcŬ—ÒHÌÏnŻĥ>îž}}ġ›gW ĦG÷&ši Ċ¨>îcßĝ’hiqs˙bóŻ›ğĦ$_|ŽĦEż +9‡Íwô·ßÒ˙__T7ŸÜ&îS,1j} ıí{(›âŭžF‚ùͳû+âß2½Ÿ%żĈˆĦïS ›ÒHYÓ*|l~ߺߔİkÌÑ%r#´êL6ÙúsŒ…\CŬäšÉ\Ës¤ı•Éô}&Í_CÖi_H³K‡ÖyÙLûטcèžÊĤÀY–5CÛûHlĴu_Ŭ*&hħĵhxáUÌştRl 9ÙâÚ*#–=y`‘Œ0ĴGŠ4·R(¸Żäz…‰Ä긒-™œYċUŻ˘Ŝ)ï39ĊÒH‡Ò*ré‚\9Éu¸3;ĊÒÊċUœc$7áâ8ĥ´ĈŞ)ÈDGA½ˆèë¸ „|¤ıâÀ!ëÒIżÉ•²ŠğuyïZ3ĵJD ‰ˆĴ=ÓW‰àIšÂĦ÷ĞHşˆôIÇ)ĝŻ2ÇJ^‚"B kx‰)üÁKPDiÁ¸@‘ĉ˜:ÖulQа ú–ò8ŝcâ*|$8–˘xžòßÓGżïä· @YXÇĜ÷v–KYŠzò…äR*ċ9렉´ÏA‘1ġu€#ñħ!j1Ì[€.*Ë@ĞpÊ}…Ÿˆ³Wħ ÂŞƒhċ#F²Á²É½ê*6œç2!âg\ĊO– "Ċò@ħ­ċs£‰Ÿ}•CBċ˘2žèë$2P"9 vĞäkû2Ê-3WÊü)żì!q@aA;RBÌ›u]öa^Ĝ‡ĵ @!ÈK"ĠñXW1ÁġJ ÄˆM”*ĦÒb=ĊÁ@Éu\-S\Z–J\'G pہE‘ ‚ bL‚^XÇ’Ï„ï2ĵD_Ob§^¤XĥŽßY]šCùV½NiËur=BSmYGIÖ³:6³şY£ÔêÚĤ’†ŻS²„Ôö­ƒ˘<…ŝe•œ5dżw,†$Ö‘£§$¸:ÊÓë:˜žP„ˆ[+e ŽëF”‚ÀáËP™G™yÂBĤ¸NI†IÔEW)  lä(È ĤÖIPݤŽ• Ĉ­—Q…Ċä}ôФF)QJTYÁ]Y%lYsĦ WÁ<\ 7 ÇSWIß"i‡ˆ ÑŻ2`A­QĴşĠuÔġŝÈYG[E.BšÚŠEzƒS•4&Ż2"r@bħŠ~$mġ;­S°&½v(“ċ´ĥJŜA|ìüáyŠ_GyoygÔnÛZÌCQÜrëH†€r œcşuġ˜(şš#iÏ:ez‡Ü¨rqËŻyhĠĜB@q+ݳùFĞΔgħŻ’ÀĊPŜf.;"Y§á{jˆ¸J‡ĠB{|ß·óPïóqo‚cŻ·ÉĜxii{K´çÇAzÉħ·ùüŠì³îÓ|HäŬU쉞>Ŝ^}ù¸ÍL‚L҆–ŻşÍDPmz a—F3ei‹7=™˘ZdîşĠLQ­ìbÔê–6—…7• ĵC‚ĦUÒí)“Ùä\öÉg9LċönwMÀ è€ŭ%/Ħї˘˙Җ/²ù| w>ıSÉ è}7S*ö·i>ÌÍ3­ ÚfŠnU\"VĠj˘˜V¤tĞA1­mR²¤Z ŠiĠK"éVƒ˘[M+ZZé5ŝTÙxÊ4 ıßW,šgu’[v(ÙÜ^ħˆ"…y!&MŒƒXÎÛc˘—Y Ί—ˆîcRv5Q*Hïfž<˘hküİoŽo7żŝĝòċŽĤï"ÎŜ/#âCE8ُ>İv΁aV_|~So{”ċ:…ò ‹™–׀߈ËZrÈb(ĥ{Œ„lKT-0Rà@ Šŭéç3ĉİ)ĥ—ĝ1Ĵ4z^?Fı{çí҆£9Ô/–²Ï–b{‰ŻkÏ#ŜĆc´šB ½°ôˆô3uCħ½x¤Úümġ¤ …Gj€4’'~UîW+W.4Ċö’‘ˆw˜Ħ°y b ƒQZRLÒ fh(ĤÓX#ŸÍ"Ê3äFù²SŜ‘ÇÚ"xĦ)ĥ×àwïKmĜ1gÉıÄ­*< 3·âƒúnğȄ $2%G¨ÂlρşLB²Ö…b{ ‹p4‘m¨òa"´"!yĉ˘ZŠí%s"Í3À„rqD2AĤ¸ vĴ Ċö⑰aĈœÄÉYnÒàŠFŭÔ ĊtkK˜͛0s‘µı=g‰„ \à•VaMħ½d$—!îê*ö´aíµ’ZŠí%Ŝ 'hĝ XÜ7)U™Èß\kE|YcPÛkÌ ğÄxž·JkP7Âtâ_k-bî3Áv’;{v E4)8óâ7jq³ƒÖÛKĴ¤ˆ›˘¨7†7`P2 ¤ĴH$ĤhĥÌˆ˘ß-'Ilŭó˘ÈĜ‰­†b:PBĝKöÈà5žEê8R.‘¤22RÓip(°‹vZEh•œ|âY{Ĝüà³ÛkXm…ĥ“o ³GА Ydœ|4ò™h(ĥ—ŒÙËcÉĈ“HMĦâ-éÏßm—1!'‘…t' Ż W—.Ž´ÄYԆ`; ^×=•ĤÜÉf'8 RdÌÌZâ7ÛI"xS¸›ƒkÇ@!ïùpŽ÷Œ½{Ž ċ¤—ĝœCĤ™9Xĵ“VHi\ñ+’•ñÀ,Ší"‹"ÍË,‰4œlĈsHÂgqĊ„†=ÊŠrÒkÈŬs0ì8Ġ"y7!U`ßNb‹Uä.Ĥ§(ĥ×ü XèŸ ñşÒ”2{Ĵ(~†ì“ĤĜNC’€Şâ'§ĉD"ŠŞ‚Î(ş§Ĵ ĥÏleˆ’µ4YŽVu‚}22†Ĥ3ÁöáqBFŽÊ‘~°eà{yŠÍŽ—]Ö ĊöÂ5„Má5%“VP‡è†b{µyĜ4O|¨eĴ×ۆŜ@_’ĦĜ^cNElȋàġÀ>Ĵ‹Oâ9uћ…b{ÉH+ĵ‰›&#A0Êâ&“pŒNĊöO‹ ‹×(ûrÌñHı4Š9 }  1`ۋGj¤^ …Œ9 Ò"„ zá3ƒ/ÓL9é5\Àħd qR+yĦ>ü@ħ Ċö;݇ˆO޲:Nşxè<àBħ½†‡Lâ4Iq¸HÏÀš›’L€ŒÙl‰‘ä?ülİÒ$xKDŒŒ"ĊöΖMžŭWbĈŝlß!!ƒLgŜ‚í#€o°žÒ†.ċÄݨTāÛŜPlŻħĥÂ:ĜZ^ Q֛ĝp£Oġ M°}dFA˘!hFlK·*qƒ@V˘(ĥWʀq´UP)´Îi,\w ġXo(ĥOÉà†2à<‹Íƒ8zT$ħ£ÖH´ᤏ ݧ  ôlž„ëË`m#€,Ċöğ Òzâş“ĦZĊ(#oŭgCħ½fìÏ´àgà݈úr™2Ġc`#'(żôCÂpîÈGÊ6ĜÍÛià>Ĉı,ĠÔ÷uİQF-vN¸[ÀéBħ½D‡j”\GìĜ^sw’Aĉ Ŝˆ:tµÛK´§£ĝĵŝ?ñ‰!ԙĵ`:ĈıĠRlŻħşÏÄHWü˙\ óŒŠıĴâW/Ûk íÀ¨Ħ<$s˘¤G^—İâGñ,ÔNQNz‰B’GÀûÍu%QHò"œhRĞ êGn¤ZŠí5˘û&òqòÚ$—–Tĵ‰xoËl§aŝœQllx›ċì£On ˙Š&Ĝ.Â#’7Ü‚5ÛGvbéÜ›XhÂnQ5ÓI8v­µbC’9”XÊdo}àTğĜ^J"š´İ6ş4Á^•„úÎ VŬe˜}ŬóıŒsPñe€ŠĠ;.p,ÛgŽ.K]p0™˘T8sŽ8í³l‡bÓâ”çÊeGŽ…b:E1ú“;kÄkÄrÏĊ\ž‘TuĊöQâ˜ì_Œ*J“ ö…Ċ×öfŠí5ި,’×ħEǰ9Êĵĝ•Z2Sl§ı†ĊoÎ#ÏœB°ï<ÒrE1†ßŻĜ>˘FÚ f÷$aşOEÔTĝĝĤĜ^£Z$œï”İ@ âšl˘>kÚ#côÈ4({XÎ;ÙÁ+£lRFĈ˜Ċ÷,Ûk¸GfˆìĵÈĈSa,șĵĉP†żœĥp> şD)@–Ğ^dQĤMÎY`¤˘˜NçĞ Â N¨e5 }óï·ı½Â%4³ÍwW8î1ĝó'6ᗠöŸ}àü4cë_vżo°›N1Ċ…}óîáœ÷·ŻQġÄá‚krמß^moîżùxxûĉáN xÔĥ î“%R~ÔâĞíĜ@ύ?ĵ~ùñí²]ŝĠX²îÔJÉ)sa ‘„(ßż EΗĵ¨Ë]ž:”DÊ[ĝġ{Ë@“ĥĥóïkêIù÷Ÿ*ÛÔ!‚ƒPĜ”%ÛïÑPlݟ#'”zù| "rşíĞír°Ħ·´ŭŽyŠ‰g˙tµŭüû7ï7˙çĝîŭŭ‹^Üîŝf:œ@lLv°~ÇÛ3ß÷;ωtĵ̄'çiî홯f’$ŝĞş373ĝV˘^B¨a{[‚zĊm@¸•ˆĵ¤—{„Jä ·’ òóêa…DĉD½Ž;¤ĴµĈ·3_/_,o–ËÇŭòñòñÍòñ{=˜L)8³~¤ù„ËċŜ˘/ BXDĞ‚³+ĤNEß.{z7'‘Uâjò½ûÒôíVßИ kU›Ŭ˜q7³ 8#:ó j}­ô¨ß󘞐OÙĝN}{|`²Käĉ·Ç_‹Žô¸İŞ’|ÉÏŬéÄ(5·‹ ÁËş#­#äÇëŽl¸œY7Í&NëĤ{:³îkÍŝ´ıĉPˆa.úz‰YbĥŜ‹âwII_”E|ˆ=c‡`ûЧ‘Ùjç'ûVĦÌï—ÁßïQ0 ĵÖċ9·ğë„÷rŸËĦhvĵjŻ)`&èHYp˙‰°M„İïùžÜC÷tQ–éá³'ž’òòŭ)W`­sq‰_-LȟċŠŻ´ŭŬŸµ´wg ô MüĴŽ!³qĠÏXmVŜc!n7ŜOŜĤÏ;*ÉËUg.„í·êş4Z8_qÖz§ •É·–ĊFvġÇñ{ô}KîŭB÷îáPHsHî—)4šĵôöéRĜz=“œ •]l[BĈ2‘JÏöż\nO[ĉ·ı–ó½{P½Ğí}ÎŻ^£ĉˆ‹ÖVgÄ÷ÍòñY™½=;‚’ï§³BĤ3„š•Pir煚ó%ĦWB 'BeħL´X(ĉ^Ğšħ҅ħÂgêîğVĞ K‰1Ö2 )ħşÓIĠe8Â/ EiË2T:êĴÄy3¸U‘ĝ€t_ħ|,Ċó˘{½||yVŜž7Ĝñà3²ġ— 6§xIĥOì9ÙĈĜ/É6êħú…ħ’–-ğ˜ĈP&Äŭ"µŝcD[/Ù2%O‹Ö8ñÄ*żxñ‰3]À}ƒ3S>7qż’°\I¸×nˆœ[q(PĊ­ Q#‘JvQzëĥEh1¸' Xħ\´iħ'Ĝ?.dnñc:iG1:`Ċv℗j½0@Šċ³%DRşyžáĦŭRĦeR£ôíħRŠ1֓K çzTR„Ÿ.†bHÜ$2ú‡ğ)Pôj š2],:0\t‘ĵ߆ż#ë‹8cUĤġD‚£~ûl×pO)e`(›Öâ>+jĈvƒ˙îxJ 4jı„RżĊGMECEŞ7 wĉħĈî”'Ôċ¨ß2RéÁËğżċB“xġaz aĈ—²˜â£ààÜ]í”ġüĠċ§7 ŬßÊ(-n­P³şÒġŻ…\2­\Bġ 1ĞHó>Ü-VÈıU^ÂđË\-x½*_H[`zŜ—H["ċ˙ğH‚Ö|TÂäġÔ Aì½°¤şéÎ[6ż× ö•µ_ˍ #ȲĊĦ2Ôġ;³pcíóŬ5H˘E~Í#rbFıE}E}˜Eu²Ñ*Hŝ=Ï;“ašA m™(:ˆSb sÒzŜb!^–™ĈÓ­ġżŻM‚ƒċ3ĥ„Éı£YŬ^Ÿƒ´w'xáŠyĉF|wË íĴô•ÉgÒR”9òĴlz†ì[†žH.J\Ħi™?œÎw8_LĦ4lT\¸v8áyÓs­Żá×°BÜŝi‡ÈŞòJÓc+Û=Ü%a‚—A˘ŽäŜ,š‡HqĵVOĊ6E=.Ĵż¤Ê܍FÓNġ…2(•Â>Hc„EMÚÓFŜ” S ´ Z§ġ <oôzö˘ZSo'§hœ ŜËa8›Oçœ ĥT]rĜŝŻÑăjŸ‡ùóıa°ùÓrŸÄİ8eUTéâu ä|1—[ĞJÔ{ĠZ9‹9Û֍;QŠÒYô\²­/·Ĉ÷a7Wtd85ı€[½ŞXˆ¸Ż=Ë£È'Ĝ9“úĜĝîNN´Ğ HK²fçRÊ+hòĉù˙ƒgï>ßìĉ‹ß”Ħgüñ~ùĝÍòñòQu{{v„‡ċ…8xÛ½ĠIž·I›Ïé$CŒ‡ħoêF6PB Zr.…Ë‘:Á‹§’ÑDïQé'yŞ#p|jRJ‰.FŬe2&>µ9³c^]UWÍËÈJáµÎ½Sx÷‡·god8ʧáçsH˙òòDkmÈ S<ħĥÙ$$ÓXê~,€&ò풌jô* —=ÀĴŠÙ{Ô9(o˘˙¸Ñ šJä4ï¸Äqg`‡™ŻuÚùzi{QQœŻ#Ùynل"ä67}P X,›óT " ES~”dˆzcÖr“P̊˙nÇŻ ”8/>–ĜpûÎ(lŒÊ!A5DüŸÏ4ÈAƒk.zòù¤,‰3˘'`ñ ç;=^…:) Ö˘Çĝ ŭè›)[îĤ%ĝ“ƒ ¨ŞË‰ê× f“ĝ$Mk˙ÏÏçÇüìܑU8zzœŭ+‹˘Ġóıfói”Ÿ’mO“<BB8İ(\Ş?†ŝ—^ĝêfR$ïÙÇÁ;ÙĈ7F •W|'ÏŝLŜdóÄ;[lÒİÁ'<ġû)>àÜĜgĥ^¨ŞĉŬbUşĜ98œùŬ´K95&ċ˘ħ)izò4§Îe—w’ċşÎ #ÄÖÎàèGU—[´NœH=Ÿ}ì'˘6JüçßûĊ} B`äqÏÓç|‡ižŞícòêşZĦY ü8óˆ`}Bt+ĉi6` ‡PÌĉÓ&R̕ %Ĥsħl¤˜†[ÂÔc÷Xó@Ô\™ÁŠ]: £R6 ?ɗ%÷hŒ L)'Ğĥ:TÍ,;IŒX˘.k%ŸŠĥ3ÇÜ0ISïJè:Íi"r=tíñk qĈ³!°8ĵ@$Q³“ İ2Ì?ÉÊN=8pġfé–ügf^x29­MÊĉÖ*´¨Ç[dÇTß/”,/5uĴ8‹Ç~8K¸•%ĉzj€¸ë¸Ÿ&İŠKçıÇq_?ò˙‚ó Ĝ.Ǎ‡?#Ċ^éT{giğ˘ëo–8­yñ„˙ěÂ'Iµj­2­Y킜›ßÚí³9…J^m úì˜2ɓ’vµŸU-ÌĞÍġɔëš&M`ÎîĈŭn§êAóÂ0mß$l˙A~rpo4ĠĤ˘}¨òÚaÂw\’-¸ŝ´ŸŞZm‡;†Ëä%˙mÇÇ\ĵ´ù­>.{š*hÌk2]%Ä2 ŠÁÛ˙+e>Ÿ|<Ŭ:ŭùa,!­°Ĝ?íĉ”û³’ŝ+s7Ö!ĥL˜½³ÔĉJı¨ÓD˙ĝ-R’ ÊöW2iZŠĜŜšA4WÏ ĵ´ŭßç*8LÊ`ŝ¸[Ôk?Ž,Żž= ¨ìÜU@ŭ “‰½ŝĜŒzIO˜—Ŭ§ÓÏ4àa´hù‰$h—‚SÌ'%Q³ĉ·^ëIq€Ĵ9L7ó­è€’ŻÑĜ3¤%w%_ PSî%7:ċ„pí4ċè ì2Áà3öÇ.ċÜڃN'97†CÌûK ÎıHGêT8îgÔÉl^ÛüşzÌO§ /ìòŽe£bD²àK§0Ñ‹˙ËNaˆĝ˘=94#û ÙĦÌĜú·#àN”O aҐ8kHníòœSĠÓŞ îT €9òcìZ¨M‡Çùñ|ŭœ?5ó‰ĴҒ£Ş(pċğsŠòĥĈĉ,ġš›Ëi›:Ï&Ħ“Ÿ”:''hü1 ÏFÊÙgŝ8„ötğïz',Aì°4P'µtbŻ޽ĉµœTµÍVóÀµ6=Ú;ÉDPĠés\—D.˙½Ì­H5’otHí̉V\µ×ġ ³˜Ŝ³¸`e³zT=Ä´GËU…şzÛ͜ÙçQŠ3)ŝqD•ħr›Ì?Q"šv’FÏé÷ÓĊMŻĜµ² İ,Cíŭĝ´U…5ŜqÚ ċ§Ş“Í3ğÓÀ¸ÚŠ 7žžœ›CÊ(ÛñI_So:Wş•ÔQ2Ĉ:íYÏO2µZĞjĈݸkĵ–Úı\çħ]İeĞ2­£>ïĤ(şN`µ9Z‚&89Ór¸Ä?Ž ĥšżžġçċûċŝ,U Ŝ{Ô {*žĤ<ÍCévf .êĝ{Ħ˜³œjx{àb2Ŝ8férXŜi›Î´ûZĉĊû,J˙t<`™à²˙bĤeòdġL‚ûéŬ| z×É!İÙé3/Ê‹ê Š‚ĵ6ó슷[£ŜKKüC’˙ï]^ˆĝ‚гnÊéz¨²VàŽCíÑA4ÎÄb“nŜ=’È)”áÔ Wŝ ½­µO^lXNÑpöŞn+Ŝ<ò†ƒĝ.z Wdĝ2B *•ŝżRɧZŸ Pċv5´Qʳ'³üHċxİŻ„w8igèSĤY̍홂y­VߜT­MWodj gÔ݊״—‘Ú38.Ğıx¸“ŻËÚîÀd×ğ’‹zԓ|`ħ<Œ/$ ן3‰ġ€c1şH£ÁÄ£Ûì .ÁtİÊڃŠ’6ò›6Ş4ÇhÉ9G‹Û¤^<ċh+ŜDïi’Ï ;îĝ°™ž[޵ÊoW–3{€sŸġĴJ1OÏ}ág }˜ÎFĝ?&¨ĈËŝÏğ2ÜÙÉ˙ħ6Š˙Š"ۅ÷rqgġ|öËd&Ê • }<ñ&¸Ù9<žœ5eÖ]~SAhß9ĵŝIĴ­ú×Ŝyßġ^eùïws)óüù_ϞÊç?Œ%{ği3?ĉ‚áÍġN\áOŜ´[ĥ˜?.aÇĵäğ€0mŞïg µ ß[ĜêĊx!ÉF{NCY셷d0váäM;ڃ*ûèsdĉ„ü™Ÿ² "Ó==4`ġ ĵŽJ΢1U§d7•ȁ°9„9Ŝ Ûl*ż“ÙŒDUÖžRîiî&d¨Xİġëħk›\53†öáŭÒS%² 5µñOl•ĝ|mNTÚŝġ Kĝ……'ĈL,’zz§7·K;½ê^*ÔAÊ ç1TÒy·$ßġçĈÊCߝބLI£§ù,éĊ01Ž<*„.Ûy\[?\À' e:žyZ@ùħç-/#5‘‡Á[×Ċl^qĥìs“*hw!ĠúĊùÙbŻyÚLnėY·Í‘üù¨ëxa3ññ2¨R›Èz3S˜f›£Ù.Sw*\Ûêş¤—Ïœ9{œŸBŻßmvKêĴpñ=~óN-À{&3áóX 4ôݘJĝ4ç=+Lv­ -¸ác%ôœp0gž}tĊs–<Èw'gš-g)½–é$=û4#ĉîÌx÷2ÄñtĤ>˙ĝ Ĥġb¸ĵ3‡Ú„Ç^ˁEĜ FWCFRħ›£ O D"˙hòV͋5µ§@ñĉA5WÓ9.“ĵ[žÍ’HO̕>ŽœŽËÂYݏqÙŝ3[9eߜħ@à!SÇ÷üŠĞ§0=„Ó:?ŜĵX^%Xš[f¸ú Máçendstream endobj 227 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@‚ÔNQ–tÉŞjûbLÄPƒúûH:t8Kçğ“Ïr/#ğò=>)ul"-~H0ÑìX´ Œ´³2ñ­ƒU‡×'l²•ßô›äCİşjk½Ħ%h¤¨y&Ñ5MßYÛ bó'íÉîÎ3öê„Ġ(9šK7׉SiZšäŽé÷L!§`ƒĝk†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 7522 >> stream xœí=Ùr$Çqï°>bŜ4p£şż8,ËVH2Cw~ ŭ0°ĊĊÎj%µúzçQGVu7r%?, ĈvêÈÌÊğ²zŝ²S½Sĝ_ù÷òî엟ÇŬÍŭ™ÚŬœŭċLÓwċŸËğŬŻ^BíĦċUğ—ŻÎx¤Ŝ%hÊÊì˘‡ìŬîċŬÙ^ğó—†V #\8¤€^^}ħ˙ü\ĵÑNÇŭÏ/èĉŬŝ>ûœ£3ûÓı>(eĵß?`ĞÑÊú(ZSd£·û÷Ĝ!kĞÜŝĠù˙ünäêĈ{ëê˙r~áœ=$^Ûg3, } żÎûÓ[Í˙DŬUÉíŻħ‹Î)ı=ÎaaÊĵ˙[÷MEÁ Tˌhü/ÏŝDfĠÁ™×ĈLĜÙòA›1*Ùvïw˙³{{v]=,v.Ĝt€-uŜ­ŜYôÁèz†[KÁJÁĜpvw'Z‚?ğÓ6ÇCrĝžħ]Ûh°=˜œ.í.Ϩ&¤–˜wŻĦĊ!wÁ€*ÁàˆèĊğQ‡hÛ;ÌaĴ/Fh“ż8k-J#wá*ÒeKÁĉġÙí †ŻĊIÁ„Û}ûü˙g‹ßü¸hÁŻaˆï ìmyG ǖ×g#ĞMŒÀŒIó@Ĥ„€Ô†”˜² v’ġ!#Vs8‡Flhħ‘[2˘’À4¨£xW–áâw¤4J‘î=€°ßg@J—e‰âŻ ‹†‚ ÑyĈîĠaPÂv9wPNĵ@Ë;"7ĥĵ> ĞÈ9œ@ı*Dâ4“ˆDw½Ċê2*€MÀY´;ĝï $’lEd †›ħ`N‰ĥ½öà‘ŸD·½£ĵdüŽdöµsëĦ²?ĝ>ıĥ¨=I^+¤Ë–‚ zĈĠ k>È:† e½xŻêÊúSËë³#×0L¤Ë†/žpŸÔZá?iȞŒĴŞü§/öżEW@Öà ´Ç·ŭñ}|è;x:îšġàTĜ]ÀNdRKžÏŻÉ•âGrĵhDqħí8yè<ôUÀżˆì˜Ë@iÀïŒ˘rÀ3aWßCğ–wu@ˆ†çò \’Œ‚Bl+ÂÀĜŜue€F´1°Ñá)ëk]ħ¨0ÁeÊhr@.¨Kĥ÷ ‹K’O³§x'ĉX&K`J"0|ŽYòsf4{¸°‚‹èİöçq"¸ è1·ÖoŻi¤ÉàŜïßíȳ½ÉÑ,Íà FÇ3kŜÓÌĈ!Ìŝ+žC…÷÷rއĥÌú‚ŻVŝŝ5Cï’ĥÈoĊ³DK;p• ˜“Ŝ+“쌭"CÏs;Oġ nä"L{1ÀΏïûC|ûT‡]Ÿ˜¨ ’v}„ġÛ£ íkAŽ÷‚Îׂ÷ĴMڇUBwò~%Z݇‡H Ìʏ¤×UGE<^Żĥî& Ok=ˆè‚ûĞÑ-ġa A~ab×ŝİjŞM1À 2pzk5ûŒì[{Ñ”Qܵî*€l˘r²EÀšÂÚCÔ;“c>XÛß@â‚abK˜ÛœílŬ <½L\phHë‚í}ÂĠt È>Eì~ˆŞ6ä1!è'VĠŸħPíßŬf]ÊĉĜ ÓŞt.UüĠŞĝż`IIhÇöïH‚ĵó*•5 €ġÉ@$2!•ĈĦl~-fûp>x NYÍV9ğƒC‰p<ĥ€-à‘Ĉ]} 6äĦI épë³×1˘†ŬÎ&Ĝ ˜Ş½G#µÀA6mÊòZĴŬ+D½LVĜ£Ç[Ĵï3ÈĜŸ&^?„)Ò ä" ħô‹˙,ŭYe+Œ3fb+ɒ/o…Q˜lƒƒ8ġĈ”NÁċ7enP qá"hPËËıĴì̃>|yÎÏÁBè ž]ßwŠu³ïŻ! —ݍP1bLÖ7Ŝj‡ÛĈ·÷şñ}DÙĝ2e}-+ĥŝĤóÁa²0ĥŻï3’£?5Ì>†§ƒĊôĴù‘´ÎÁ8ħóšÜĥóŜaîğ+3o½Á̃Ĝy5í\Ŭùú^vRŒà­SÖײbë_`ê;ï£ĦLe[ħĵÏXHžŝÔ0ûžö|Ŭ?qžnáƒP=:‘™ĥHĊöá]‡‹ƒÊ›÷O`/ÁiĞÑ|}Żñ~ÑeÎö^Öl)…UÏÜAWKJÔ÷ ™ûĝôpû˜ìGpȸù§ìÇOُŸ²ÏÊ~5 ĤĈàa_W%`&2ݎúnñP´kéìAh<˜Ž=Zߛ&i#Şĉ(SĥײbP`êŠÄ',IğĵÊû„…T’Ÿf£"}=ĞJ˙¤"?é˙‚Ĝ€(y—0иL{ĝVñĝĠŜ”ŝEàj„ğĊ ’DĈÔ&h”yÎsu ëÑŭ ĈĜñŝĦœ#]é5bq Żs·B}l6´¨€e/ˆgS@FÛ5& @!ĉ1{n’VÙ˘”/[v6IYVI–é7 ‚.1Z*0!`™Í*<½gx‚b ıe„1òöî-ŽÒúw‹Q²üĊû "Ü"Zċ0çOHSĦWÎàò‹‰B ˘CYmÑwÜ–„=§QDFGU!:$<ž—Y“ ıà zA*0DM`£€ĝ" ÂtÈħ^ĜĠŜ68l!ЈYÊğĊ(ì?ˆyd½QÙLi<@dx˙·{÷–şkó(Ùgıkk֞X/JBà= uŠÀ3ÁĊˆB?Ú˘P()­!ş–0ä4vX'aWıüŒÎ/ JÎÊ5¨SHÜɕJÂgt‚™\Òċ°%’;UĜžÑé`8%œX˘°üŒ|™? Ž·1Ç\Ĵ_-‘Àƒ|pħbñ ¸y£Ë?~ɘ#‡\̉/ú<ö$(¨”ÔMeG1t%Úw½,›o˜fÚZ^€~-šiĴ‘“ì/§ĵ1j„<‰öW’J*VE#HÑì6˜‡È%Ĝ/§½Ïï$Áîd:Ç)‘ô‰Ĥr4çĵ£˘6œ5É£s *É@‚€ğĠÎÎNC˜èħëŬ<ğ€I (.ÇA=4pš u MFÙ§…ç“7Ş–\ëM-d—-Ö1@(êVU˜˙g ï¸HµàÙD½¤Ġ^"ċ¸èLÈcáZd*}Ä BC$ë×ħÁàYÂOÂ5Ĵ`›b>ŸHzáš:@…à‘`žEŠ(;mÏI'ŝb%Œb\áı ĈSĦ ìf¤$˙AëġXÜĠpS (ñïF=°Ĉlı[ĉL=ÂĉOßóN‚FÈfїÔô’ßB/ íoԀ kOeùÄŻı,ßİ´·ġŞÄ!żĤ[°‰ÊÉYŽ74”“ û5izĊâ†Ï¨‡Vëĝlr5Í*eڌ5§O,Pë£Ùh¨ÔD”·„Ôdë!€ş§Î  &şÍÀ‘S m{ƒ|†`ĦíċpoáĠˆp–7$IJ§7|+ĥ›¤ÀB¨ŭ ì <^ÙÄH[p1­•÷"ŜNH½çĝéôœ Äı@/Pƒv%1ú#öÓx{€Üß·r” PPĦÈġ ̒Òû_ƒ›ïo`ñ½Ž5jµ Èĥ¸ż‘-Òy$ş*…°Âı?9Ŭ=’RyÜ9ŬwöY×fÚáż‚b4ŝÉ.oúÎËíĈí‰Ì·ç€şÎ°×}ğ>T"ÑsV~˙ì‘RHí—Ó ŽQ†‰Ż â‰ó)ÓùÏrŜ)‰1˜M~‡”T†&dPYêš:a ĝÁpìëŜ€à ""nëü;wÑÙ|ĥĵÄ,·ĵÄC,wzÍ&â PïÖ|™ô/aöÇ7Ĵ"bpoĠÀ§‚0ëRê¸ó1Ĝu)ĵ)+^h‹%<%íPĈG£co­ÏZĴRd/•ŜCK!‚DÙhˆ@Xç“ïµqݘĤ|Kpö‹ŠÂ f7ÌÀ/4Ì œ^žAıYi \é=ì sdĝ”rÎK%e”` ‡kË̊wp;_Ġ‰n?l-p…“$â,x‰ú 9JşpàE§Â‚$eSµ2€Â€ĜÍ5 Ñú>$PTˆ ELAËĉ­ġ‰Ü&kiÒ5ŠEîË}ı!Ĥ“4€X”ŸÊŭ°ċ;x£…Dż:WÙŒl_ö<îÊ܋}îèbvIĴd4A‹h:ċ%ßöD‡Éċ)¤}ͨ£ ^24BÁşF;eëQŞš*w˜é2–ċÎאHÂ@ƒĵïÁ'Q °Ä.yn'H•.$ĉJ4 q½î&Gö¸ÇuĜ.MĵLk³âÍh”„ÙšoŽŸ̌s8í·ĜêHéPà_q$É7ş-(zÙ}ı+R36|ÌBcb{P£n<½:o:ĝl”öy˙Š:ĴîŞ1%QşfÔlÎ[Ĉïĉën:6|9r´ß•lBiJHŻÉ#wö½.²˜QtiÙvßôsòı"zd,^Xb>a§ôô |9$ĥŜÙ‰R½Ú: µGÁhBŭĥ÷?^"A°ßÂM€ê%’‡ş8Tócx,ékĵ=ˆŝ :rxĠ6“7ZHs$é'?‚\fÌġ÷ÎRŝF͋½ƒÙ:q³R“Úé*¸÷ŬǎdA×(Ç*ĞnŻ.VœÉí·ĵ´ajn¸Höäş ˘ÌÀ5şóö´<mA2 –~Í݉ž÷s0ÑAézĊĜ w´ ŜÄÓ™Û@%Ù`mċĥƒÁ {Ùaı„ñ•Œ`kİ҇ 5g€Py uŬSP‘“”V/½ğukÂ! îààüĵ^}|/]lğ˜Y@\UlòÁIïKSqòa0=ÒÉğížıרuÈğŭiPi"2ÄBQŽrƒüœìWċÙä#:ĥ“wÜÍÁ‰ÉÉ/#$´~iАGÍÜW}/šÔÍè+qsÎcX{‚.hŭ˘LşĜħŒĝP`Íh~šÎıâVĦAĈ Ċž‚(—‘èĤì†ÓnKš%ĈHŽŬG{ïÁ?žBçÜx`W}=Š>rä@³ûıŒ2Ŝ&9 ˘tm ‰nΨ¨)/Òş7‹QWböĊ,zİÂ#ŝtĤ&0˘ġ‰‚BÀħbN;#§Ñâ™f^P÷sWÌ ëNë£Ŭ˙Mp÷Òy$ġrŞ1%C쐀Â3´žVĝí û”Öƒí•Z²£f˙ċŽq‚(ôn+bú#3$ÙoBŻbċmï¤y8÷Ü]™!ÙÔ9}Ê6µ‘Ò/}$ŬT و=t€¸Ĝ?}¸ŝ!úÀˆ[ƒüJ‹vÛitF ú瑍6…Œ"âc%„ÒƒH‰ÄFÒ醘§ı*¨§ı,‰vˆPƒ{tsl ’=¸h&ìj°Mœ.Ċ󑒃)jĴ/íŜ×g*¨ĊGô¤Dt|zÛîŭÄq%ÀxÜà)³‘:) FÜĵá5Cıİ\]@™'$““Àƒsi4"ïǓLê퓵䋊lÓàì Pá7œ˘ŞFQsSR>ERf‰9IôÁ]˙ŒÌ†_ı‘Ï“AO§ EÏ}#èc²  “£1Ŭ*ô}ŞĴ³,­Ï†˙3*USí@°6&ߊ6‰ô‘‰ûŞ‹•ƒÒN&“­TÁ\:YRzN¤´sVÛ-ŸŒ3ħ:H|í¤Ç$Íi÷Vrz%„iLj´ġĉÔ7žÙ) ôżÎ^ŝóĠ†0éS–ìä0„k’я½‹\EÈvÙ“ ‚½²žPƒ°ül‘ò!ıçqN…Â`pġ …½^×8(€b›Â9f-Ú◃pJ™ĊÉyÂ^Ïîl$è6&nhĊÙïD¨ÑïÜ` )iŜr ÂJMG,µ0€ÁéÁéuM÷AeÓâvä@€íŞnxÒ!9l\ĉKêĥ|ġêşlS˘ÔÎE[qUΕ ^ñ§k\ÎŬV/lçÚĵèĝXHîSÚP£‹|QKóž.ĥ-D|qĜÖ<>p~h”óÄ Żï°ÂĤUäìyaĴۑöž‘N<µR+Oĝ„Íj_óNéN&~‘GPœ^‰yH–ŝҝcİÄĥm \zv‹Ü}GŭP5éÍ,şÍxòód]ùɓ%օ$ċÁC_…“†JäñŭBmT,´Ew[Ş•%iÔ˘Ĵ§4ÄĴëİ’u°ÎÓı˙xÔs ċˆPûÁáÄĝ3ċ ŭ%sĴ€ıEJ…âGÊü˜”§Ħ?EèüPè”óx<>ĉŻëlƒĊYM- Ít’úBÈ>oxr SNuÏLÜRt‚„6üî äƒħƒqû–ç^…G²żr ×ĵÊÛÎÒ *äI=n ò Q“xBı/’Z-R€x"rQÁÛ>R\žxCvòEá9ÎnO#ù—ïÖ-Ĉ_Ùq@¤>, œ{ġ£ŝ=ŠuÀĴßc]2ÄÍF´GvǂÓ\¸hށ¤ÈT÷ÚNU7q“ŬqNԏÙNÇcUâ$·Éû`ŭ'—ıbXŭë”3Y£ì20AŬuŻ9oÛnĝ<ÊiĴ]ŸPg ZBS÷ox6äyŒ‰UlOtÇä˘î‹oˆˆHgŭ$ĴŠÇÏ‚Áŝ-eq@Qϐò37§êcÚ¨ĝQŒ×˜ÑÛÀˆ„ÇĵԖmSbĤ':SŭŒ½<í€mJYe5J˘Ş' şSöH˘ŠĴZN‡_B4CBóŠ›}²Í%œ|‹ —p3öĈérÚ4?ĝgÌ|ĠÓ÷Z‚t£@ËcÄŞ@ż 2²5ŒZĊˆ‚$çé0ùĜ ۈ ÄD7>‰|Ûdċєİdݞ‡èdĊá§÷ÖlÄF0”ëù!2o+žaŽ™°9`ÂżMĥ~vĠ×­|_` …‘)˘ħuÉĴíŜ‰·nük<~÷îûŝüŽÁSœ„Ÿ‚q‡è,ŭüŽmż óŭÎ+ ĵ3r/$İ·]§zBD½]7‘ï Ióĝû;ò\¤§ñĤódRa%ŝwàÄGOKY3”‹‹ÔWÍĤ Î &Û¨P(GÙŭ>:hˆC°­à73}1(ċ36ó=SLúħáDŒUŬĤg>)7t`/ĞŜ^Ŝò2uµrDÄé~á˔ŠvRÊĊ—Â{tŬ4MU ßĴ|àUcҋRÏd¨h@\‹?çĉTnƒà3Ċĝôœäe$á ,ä☇͸xĝ¸jşÍRY"y„£,ÈûHˆXóùKìSŭġïĝïöo*}5¨ÏsdBâEĈ:iĞäVTşQ:'à•ÍE/ ˙mŬ7ùôêe8^oŒz‡‹›ŬÑ7òĴaŝU-CĠ[ݳ“ĵùK2ñ˘ñ273Ĉ…Ĵ‹i“ó#úµfC9ÂE6„§Ô£ÛsŞÓÇR\ËzôĝĤôyÎ µ‘­[ĦŸ fGAĤÊzßáWÒnıV‚o8ˆA—Ĝċñ‚T˖˘ŭħĝkBĤpuĵ°-o(N~ӆŭŬs.‚KÏıf:ħ;šÊۇ7oĦš× +˜ÒFžb¸ÛpÉ+6aÎß­;ÌĠJ˜S&l³{Tc# ĞşW ô•°£ÂÁ)‰3‡ż*Ö|R‘?Š›°Ë> stream xœ]’ÁnÂ0 †ï}ŠĵAC(6HȸpĜ4m{’ş¨ÒŞ”Ŝ~ż ì°oéIú%Ĥ>œŽ§2,Ħŝ˜ÇüKè‡ÒÍzïsÖpÖËPŞU Ŭ—'yÍ×vŞê[;}˙L°@ûż·W­?Sŭ§ĠcS;½MmÖı-­ö1ÊïÒÒŭkôĜqîŸK–ZbDnĊÜîÄÜ›F<1˘ÑiĵÛx·ßŜÓJ<1˘“x€ÉǐEvmÄÜ’x€dÈâ²!É%É$ ädԉĜŞx€jArI2IĈĠÙŻÏv}† ğ$›$ŻĊ\—Ŭ™Í™áËîŒjoŭzT{vàk^!ßçYËâSö)چ˘„iœlW@Ş_e–…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œ]’1nÂ@E{ŸÂ7bàHÖ6¤ĦH%ı€YŻ#Ĝ–"·ÏŸ¤HñGzàù§:_Žp-Ğ÷eJŸùZöĜ-ù2Ŭ–”ËSŝĈbU—ŬRMçv.Şk;ŭÌıäıżó[{ÎĠG½~ZŬ›ÒÔċËÜĤĵ´w.šbÓ÷ħÈc÷ïŻu}ï8ġGk>ê •¸‹ q縏 qï˜˘BLŽ9*ÄL\Ż˘kÑlNQ •ĜE…Ĝ·uTB`%£B\;n£BÜÁİdĝd°ê…÷‚}P/ĵ›¨7Ž‚F!*D8ZTˆĉHuHŞCúp}2‚›€ĥß( ÂÁĊ@ˁ/}Tˆü0qċĤµ›ŻŬhc2272ژŒÌŒ6&#s#£ÉÈÜÈhc2272ŻéYŭžŸÚÁÏêyEeş-KŻş=Ŭ–ŸÔ0ĉżóœ§ÙğJĤĝ¨n·ùendstream endobj 234 0 obj << /Filter /FlateDecode /Length1 12532 /Length 8258 >> 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 4826 >> stream xœĠ<]s7rïĵü–+³)ïx $ı¸âÄWĞğÄgóMJ­H‰Ò‰äòHútr*˙=Ŭ ˜íá‡,ıäòƒ!Óh4úğû×iTÇŝWŝzyôĊwáĝüöh:>?ú둢?—˙^u Œ†™1MÉŸĵ<Ê_ŞcíhĴ=.ŒÉٓˣgnĤqJ:†ÉŻaĴµ Ñ7›í4ĵħ›ÍÖ=†ä‡Ża…U*x3œá —̤#ŒazJNğáN›¨}PEƒ÷ĵ­ĝ‘}ĝĤ½J1êá‰:NS?^ĝyF*Nfĝ#IÙdxŬç TêN³Ûh?Ĥ`ӝëûöß{˙f£¨'³ŠĈğM4£J*f„ ä†ßˆ ƒË'tÑN!tXì7[€<İĝŠĞŒ‘‹jĝo\ §3Ñ ûË ~èĠ”†Û͟O~WĴżbcÂè}„k>9;”Ûœüċhk­'­·Ĉŝz6ĵ˘“Ĉä=\7nĦĴ À 'gŒ/0Ĉ]ö焴ö€#î.3~F™î0t‹ZM“Ùċ² Ègt @Ŝ!S*ÌDUÎi8;ÄN>ÍÀwjĜÑ?’×:hΟûĞLn?…ŝĈ2† ˆyÚèʨ½ÏˆO“µŽó-ƒ}ĊÎí˙";ü†Ĉ“‡Íĝež²%EĥÓßÌ*=‚ğFşv…œŽOŝptòOφüHjà#ĵVŒò*3HâüĦARĴO™?ž ßvÊ{—bH!8ŸœA„i…s&3A]³?ÉÜp™O>ÈDd\gfbë){: :†Ĉ iŜU3b×íBv§(¨.i È9$ì~Žw (!7ü0Ì #iŬ¨½/˘%JÂrS7TP„eÓ6›­óvŒt\+ĵbxÑĵh-ç1~…·Ò8¸8+ !lâ!ĊCòŬ|Ÿf]À ÓYg}c‹İŻ`\äŭœÌrĊ›) ‹³ïJfá<'0&1 V bŬ—<™Â4Ï]ÉqLóŬŭ!Á;9%L ™—³9tBëÔşö@ë–ÔËóŜCw—ı>àĝ=2­œ˜sÌ"!S˙`"9ÑHNĞVF¸,%ÏY{váŜ;ƒے‘€ ĵ#µŻ“Q.0.ï `Îĵ ß>íE¨#£WËrŸúŒ:wUxq‡“ïz3çWRá”Ç}&3ç+­ˆ):LgĞôDż€Gp‰À0ÁŜ9@Ò˙|bĉ™òkF“ë"@W}&³8r@„9d (ì\Ü)Bò:'ûĊfyDY´ˆ„Ğóá^}|ÑÛZülż²›(e yĞêòâ!İžË<ċ~dUHܑù‹xK|Ùj`0³¨Ë0˙e׆׊êKĝgWÌfĴ'($G£Ï×K]CĜżĉ2°÷&sˆişԏŽŽ\ ġĵ·µiSÔ fÌĴ­ħŽ ÁnÜl}JÔ45+ìdŠ&IšÜ¤O¨qN,ÚM#³ÔYi@0‘'Œ;Ĉî\Ĝ&u…­e w-ß֋ xĴSú¸ŻqÁ,”>cÎ9ŭI,ÉşxàtTŒ*6£ĝ5WŻd£ 9¤D˘NK‘‘z˜Ĝâlċ×{l%áûs|[˘v g#P֒¤À Ż03•QˆĊs‹ĤÂCÀ6ƒĥš,ù Žiç{EŠTyîs2 SiÈH2U? m_ßöy+ŠßòˆaŽd)‡áú;wIRä·Ò_·’‹ž• JakO÷žğĴxXGˆ"˜Rˆ­IŻ•\óYžvTtow'Ç—_섅Aîb˜Mo” ŒŠ5ıŞ)&èŬˆÌòğġâb ÁS ÁSIÏŞğ2Ħbq˙èÄ2/÷ò—Œïá& =$—âW{qßğO·'İ[+Ž›{0AûO÷„d0ĉñĤvà<…X”ôŜA0†ċß:ƒ{&îgŬ:üĵ^‘—&Ċ•öÏ˙ü!)úŜ-fŸ˘2KvSqœïHġÉöˆN­:dY ÏÚk‘V20ĤëÄ>Á'ŝó˙ñ6yROà<ùm›|ÏÄÜgM—˘Aŭ²ÓONѽI'Rıİ[ıPfnΎìúżħ‘ïü ‘ OaWÙÄ2tš˘a“oúŞÈÑ˘•ôC\:CGîİ|Ĝ½'ùËHìÄħ?‰Àä~nÙè>˘£T<ŭŠ üX÷u*eğŬŠá½ÚVİżBQŽĵ =š÷/ĊzŠüI…%B,ĠğE"†œĵĥû˜ĝ|–fJÎ>ÄĉPf™‰ż§‰ Ï4CŜ|ɨˌĦöĞA˜Àğ¨"G8ykPĝ`uwŸTëiÑÓÓj˜DĴ:ó–DJA·üÉJ;ëU#˘!‹8$…½ŬY^‚]Ĵ]âMùö2iM£ħ÷è•Bµê¸ŒŬqûà—φ°j‹Án~7‡äYİ 2 ùг‡3zgıÉE Šİü„ı‰6\}xĝ¤ošsVŬLuАĈĈxùĉgôĝö:ĤöĴ8ĉYq ĞŞÜċcì ħ˘ŽóaRk)ĠNÁĴt{$.f”}˘7ihJj_·†=1C­ùQgŸ3µĜƒÓ3½ÔċŬğ½ÍŸa/Hۗ1ËñŜċ1†>áÁ!”ís˜Ĝí{MçÄËm9Qmğ=Ĵ% / &ĝ}h-UÛú„àçŒjMhJŻ83âĵìħ-sğONÎ/<ÓÓ^xê8zÖĴrï Ol§gX‰ê0­j‚˜UÄ/ĝĠ˘ŭ³+´>kŝ¸oݨ@}UTġÙĤĦkú‚"ĊfôÔ²Èf}ĠÎhn³ġ`IÖۙĈTe¸_äi|TOoJ½l5Í)ŸalLj‡üñûZJgÉJ;I`½›ĞUօĠ%‘ërżK£KéznÖnòéħIneÖ4v%·Ż0x}2”]C–6ĞFyÑ,(µ€V+ïsU_²]éĤ˘*'=˜ĊîşòšàÄîSÎżèKqz–ϸpġ8˜+µâ0Ì%ܕJÂm^aîÍÙWIıÌÄÒ1vĞ÷yúŝ+Zb'żÄĉŞŒü¨şğà\ ™‚²k ¨ü=HF çíĵwêütFG”‹­ô2„uAômâû˘ĉĠÌ]‚7ikîÇ­ŠŜú×'G:Ê?xâŽoÖádá1•_8q(AĉXEÀ'áòh0èa¨O‡ĥƒ7ĉŸÖÀĈĥd/j˙Ğ4G#(żáî¨f¸µ^ƒÇżkZtÀ WC&ï˜ùeÓ?ħù•³ĵ×á …)=ĊƒÂ\ÀÂgċ1nò‡ô˘Š;²ùìàvsç€ÛhVŻ]ĉóqžÚ*‰ßa³Ï[%ñé‚aÊñce ’e³%^´ámŽmĝM×Êŭœçmxӆğ6ĵlïE`;qVnĵßΔíC²˜ızµµ‰y;şN.ÇżÛˆM$,’c2ÔŭöÊÖ ÷Uµ½$´¸ğóžkQ‹Fú‹ E.ó> M„ rk_÷âŠĵ˜IéÁáŭżĊƒ§Ïn#ŝ‘6÷I\ŽáÜjó ëĵï[žŞŻ‘1#⣖e‹É‘UnI6֎ħ½ĝ Y„|ÜÔ­Ĝ烧Rşùi{3†kĊqŽ…”0ĜÎhħĜJÚ\²>mˆ_#YIĵïŻ‘Ô·‰rûV/Kb1áó†02½(×ß>^Ŭ^tC5èİÖÑÌ[•w‘ܐñ÷À+†Œ=żĵ§¤ĵ ûıÌĴt&ÖğYşµrŝœ2LJŻä´öüûîmo¤:P=ä(ÖsYqw„YHWÍJ÷SPœxŞH|ÉRı_ŠĝB¨m{ËW:ßı—Ŭƒ_ˆ1@Êż„ÉşIo5öÏş”-‹gèpPÚÍÓ…r˙VĞPréD.VïÄYVE\)Á}şżÒ#—Ĝ\ûĊ‘ffYŭ[ñ>ùH2ıt+_À‡ĝ:”KëżĤ‹]JQ‘ fáÌ{ЉŝµMn?bĊ,Ŝ§Ûĝôâ ĉGl =Šİ2Î#(\yŜ†ŸµaacJ+€żfñ÷X˙tô˙‰¤\ßendstream endobj 236 0 obj << /Filter /FlateDecode /Length 5180 >> 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Ïĥ:œ_ŝŜ°Ş{…)|ïòúìĠö‡s5y£ŽÛïÎ/€ ónû€Ï>çèÌöp'Œ÷ÛG5ZYĊè70EÖ9zğ}B‚Ĵ­rÛ7çünäêŜ÷&ÎĞ˙úüÂ9;%^Ûg3, 4@ŻóöÏĤ1Ù¸0qR°ö İm2!êíáŭù…µfJ&'!'£"sâ³U0üwD‚OnğGS2rĦ#ÎaaÊĵ}‡£ĈF ½›·à:* ‹eŜȏd“$ı°*MÙÙͅġ ìÔDá_)m˙ċüÂGĥ}ÛßµÇc{|,LÀ‘ù)ǘi4ëbÜ\h;y‡Ğ/œwĵŒ(_m_µt{üseëĞ6xÛ÷CĊ=ŜÈ×ĉimM|lƒŸÚ½|Eğ˳ïÁ2ŝ}Ŭ2‚™†óR6oBv0aDÓxµŭÖd\θšĦE?k鷟?£úxJàa("!ÙËá âñŭpáİ=ŝ ˜üp²Ŭpt_Ôvy(ÁO1™Y²Ÿ9­'ë]ġ‡[‹­:eË)ŝžµ ċ-zÜ·Ç÷íñş=Û ÇákíñĞĦZ`ßùĖçÉBÈ[tê•{Ĉ[Üâ0ĈÛ፵çnè˙Ş=’Ÿ/YîÇóöüu•Äíp91Ù]{üçöĝĠ–¨ĉ™Q°D4甚@{srS˜˙zĜoŝ´ı[÷ANoĵìë|PÀÈċaÊ89­Ùŭî—ŬíŭûŭĉÛwÇÇÍ9¨„òÎow·›ß>ìwûëÍğğÍwŸß8áL8%¸ ŭ“·°(Ú˙ŝa˙áiwġ UŒvÜšyykÒĉ#°óĝó—3c5x¸ĵq!e’›Û3ĤqŠĦŽĵ?û€Ş=ËTA'0‚h4٠ʐDu¤QYƒGk%WuDPyÁ+HŞ:"¨û‘;lT_zŠыۀQO˜§ST ’ 0LĈHŠnRakÚ¨m£úĤq@Ô˘ˆ ¸Ûy ¨œ&À$ÁS8Î×I”CFÙ ˘2"ˆĵÎ 4AS$‰39½¤)#’( ž”4< IR4“ïhʈ š7ۈäö_xPÍ@@£†ŽäŜNÊĦB:)xԈ¤ĉGÛ\ġí1´CkĉġĦʽèš%ÁÒ&í-.3,g`u yX Ë^˜WGáââäcĦ™İ#rŭDĠ–DY³`=L4›Ò‚¨[îûż27q*Czáĝ0.)Ùȳ4E­|Cü5)ÁêЁ GI RèsÄ@°^•¸Ó÷Ëû2…ÒĝˆƒöŜlÁ)2ä0\-aÀ|~’§F Y’s wü¨ÀîŻ0ÉJNEH›î:蜣€”I(ӁRŞíîîLÀiθL‚”NĦ”ZF#¤€sĝœ6ŬPpĦ•N´Odò’í béšÂ §ÍÙeF05(²Ûîdĥoıĉ} £”Ét9§Ia ÑÍ8î;â3{m# ~J:MvšÓK°z<é„É` $²‚%;ġ²ˆ$}éŬĉ›èßáœI;àˆ@?.H `ÒD˙72/ÖúÜ ê5èŸRQGpĝĦŞc@R§…]”ɁcM93Lî€9sĥrIIüĥÍqxK>â$iJÔ iÈĠ?4kö'–‘ÊÚib%aN•²–ĵ픟ĝ°ÄG›OĜÄîZ°ƒ~3dVßvˆ‘qtûšj>+'Wx#Š+z7TPİeµĝĦ× Ò‘Çċp•Ìž)lF D²IL°³Q#ÀŞÚĉtÔeólSZF·)Ò¤jĵò›"+éá>••”żX⎽×r„y‰^56ž„ѽo&)v›j‰ĜĞí"çZƒíî…>ŝ@.¨"Ñ œïµĦ†WBQq£8uÚı¤š]‹UñÙ"Ë 7,½ ڌá’¤ì_W wJó ËÒAj-YYÖ›W£?ò$N™eP™9ĵ/ĥŜ/çÙVväċ“†óá)2аX)unF‘£6ê%LŞk€ƒĴLYÙİ”rDħGÔ὏h´ BjléŬlÌ_ܑ„0ŞYdîCġî²êì3aŜN›š ĞUaàà$óög l.äÎ;)ÓöÑĦ6ŬğĊÓíëÛW8ÏżĴϚ¤àŞ,\ûáW‹ÚhĜ]mf0òĞĤߏĊúzx7ó”yxžThĞVюŝü5ŒŻÛOƒ@ĊpĦ“/è*ÏîNGëşOĜşĊÛ‰¤VòéÁ×z˜ÛïϓĊ³ŬP¨Ŝ€–Û/OA†!,–Pyî ëüJhC­ħ2ìÊ.ŒWAwîSÚżÊ ŽÇ[ Aċ܈ÁN‘vL’39˘8ií3Uó‹†CŒ½Ĉ2 |ײDL´;@‚ÄŜŠE Œ&÷+†eEJ­ĝ³é”à8fïaêîȎ 0ċI8Šâ‚g´Káxá)@ Ai {NöE&ö3I4ċÔ9ô‚Í\à]Ùi.€v˜Ĥ½–+öÊÈ8çD£ì76ş”nGl˚盽ĠĠœäݸ›˘áˆçà8u‡-%$¸eÇ!í ž +T…“ ³b{ĥĉ÷´îÜï=sgµ:4 è…qƒiwĵ¸²$I ™Xçg³ @%^Aa‚‚P9òŻûBĊ-.U Ċіĵk)PíÒjV[pŝIĞhÀŜd21LàÊ*|şoB^ĊĊŭ44ƒñr" Š—ċdpß4¸Ñ„.Jk)1Ç)’ÄŠO`5•ŝ“ù†  .…$/ü'^–Ğ ‹‚Ċ;‚ĠÒĥÄË'‰Ô–.XjÊpè#>.ɇzĤO~+ç{Ç/ÌT:\™ŭ5EğüÄ|ÄĵŠ֐&¨ĵ–Ü Ĉ58ħνœğGÜ/H1P& ksBTÒ$%ùuaÜĴäâĊñ?A„ëĞP„ZŞb°‰á\>ĤYî¤ğŭÒ͝ĉX¸öB;Ôw„ ĈVÓŻQ%7͙oêBƒĝ\úŝ÷ç KÍròİ”N(c+ Ĉ…ת?{Ĥp€2w Ŭáĝì‚şÂAĜё_µ€Ąğ-5vTYŞ v¸GZˆÀĞÒ3ŜÜħL— î,^.ß%˘ĠŬ5^_Rë^½Ğ”˘œżĊ–ğŭGŠüY‡£â*ê"$fó›§ĠÂ3Z•Ü^ʋj )¨T}Í…˜ev4vö$×yġAß'Ĥ…ñ…cn…›Yw[…‡Ĵ§ĞòîĜ&dLĤ†s˘fŒÒeê€6l}Áğĝ0z|ìkHÊ:^Kuä‹èÚ1ta,Kİ8žU\WçÊë‚uĜù2i8ôÒ: ò’¨Zgùâž,’[Ĥ/!Xyà™)žA”\ ĴÀ^Z+ì {1›AÌĤ p³%0L—BÊĜë&×ĵkRÑXT= Ñ…[ĞpT×%ŒlŒ›í­ ÈÒPŠD(  `Œŝ˙?•nv@`ëìġşĴŭLK 6,ʔ Â[,×éԀJ¨ÁŽO³…“4\ Ÿ#·ZÀŞ?ngÖġĜ8‡PUż!Ǖ£u˙f赞’Ğ蔚PZĤ_^ Á#eéÉ ÁéͅÍ€ĤÌo&-xHpŬT!€àŝ•FA@ßâ‰`Ùò]ûájÇá"{Ï7/e:e˜ùĦ ßa3eÎ0‘ÙŝË&|§öĜSÎt ¸’†Ĵ’2öˆî”5y’s 1B['IYêhĦ½:·ÔA›×HYşğá7ÁvÀ*VùŽíğ²8ĝ¸˘Ç4C.óz&¤ ı–P$#`– Pİs°%<şlÓĠ^Há8<ä iş÷€t äÏ֕;´ñċ4îE4? BW­8·Ĥ ,Î Èsä鏯AŝĞ“ˆBú·ĵփY|^Të‹rny]1||ŬĠiŞCżĉU_N—5‚ŠILÄÌʕÁs·óìô”C8İXJÑó٘gKT LI”.ïğeSŠkà° µrÚ'µz~9yô` ]ĞçÙÀNNS<öEW–ĵ[äŜÄŜ| ‘$rW=Fb\ì‹:ƒ:;˜O­³“ĉRŬPŬˆ\}wäQg¤ûŜ1¤ƒ]1bËŞ7”k~Égs "6ì.j‡#^IŝÖ˘Ż€]ilŭ&'ïÉ[ÈÀžäfŬ~FċQšĴÔ+UÏŬ53ôR°NuÏá8 ˆštzî˘#Olí8A\xÁŬħ§ħQ<ğe*f–éÀ:ħÉĈT—|ÁÉâ'˜Œ^J‡1Ĵxç3‹k=2Gß;—vjíÀnÀϰ÷Ħ’RÁ¤t­{aqy&œp;ÛS/\›‹BĤ:|wÖAò>×ÖBïbĊZĥô×q­”tWȍëNZ€JT˙¨ÈˆŞawo HDгb }é›VǔéK? iġË÷ĵzŒqŭğĝÙêH7,°rä9ÊïĠµ²ħĠúŞL†‘˜\ġ|‚Ĥċ}ÏŻħÇCĤµŞOËè•x!ĊĜŠ@riu7e'ĜŻÖÛ|Ċï²:·{,Ħ£°×ç §aÁ>˘ħèWÒ¤žžtœ@Ŝ=ÊÀ–·Ü· 4UĠ‰£Qù–]I†S<§–îŝgÓ Ë>TCúż<ġˆI¤Úô÷m¨„ÍN<3]GüDßн>Ïĵ¸T<ˆşá'ä6‹/íѳô×fÌĦ—IñGArrçÀ+/ÓêŞM7ŬĠus§KCÂYÌW[NKŠbú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Ġ!Ùrĝú÷g˙ ZÚ²endstream endobj 237 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy? !C—ˆ%]2´ŞÚ~€1Ä B†ŝÎÒùîä³ĈëH.qñˆ^˜¸ud"~‹€|ÂÙk%7Ree¢M‡÷' ß h~× Š§ìş²jxƒk€QӌĴoĠ[Ğ’ù“j`²Ġ)/ŞBBñŸJŽĉçM[ŒHİ4-MrGĝ{&ĝS|û>6Sfendstream endobj 238 0 obj << /Filter /FlateDecode /Length 6420 >> stream xœí]ëo7’˙Í!¸Ña§Ó|“Ĉ=ä|IYl6ĞàpÁX²%ǒFÖ#ħò×_U‘Ŭ,²ÉÉ6°8à°ÒĤ8|ëñĞıïÇAŽĝżôߓ˃Ïp‡g·áÙÁğA÷öí‘tƒUwG^ "¤`Afġ'ÂIgâ×£sĊ*ĥGkyÁñWqEĈ‹Ġ_°3ìNy³Ú^á­êöèŽ˙G, ?bÜ`­‡c>>=X wtüËÁZk1ŒR•<üŝôĉĠ# l_18çWלj|‘D*ċWżB”qŠ3 ;vÖzĊÎ÷ ç€eÂÉlòçI¤0FòSÚŜĈvhŸpĤ£QÊÖÔ,” qÊ)'á@BgJ‡Ĵ”‡×´*霎 AÂ]ĈíŞÑâ'N<œ%?W~ôçyoìĴN &„jšHJ×mĴעdĥMFŞÍ;eÖŝ{f‰}„•Ğ ÛäKÖ)ĵ .c+ÙÄG­Md¤¨XĊs‰_ŝyOIì"ݽà—ÎuÔJߙ˜' ĵ‘ÖòÙ#ß[% NˆôÓşBö >Ĝ6oü7ü;,LO”Ĥ‰™p^Ä´Ë)[))á„>c­W´š°î”öĵž6½j0…÷NŒ¤Ĉ1Lğ1"Ĝ‰|N ÇÙxsÇ ÒiQtbşì7l†A@JÎgVg49Á=ƒZ9Ϛ‚KÓ&i˜2Mİv/u.pË(˘QÈjÈ90²• éC­p¨\7½' ->.ÂyÏdCìiÁ6h½:£gFÔó$ŒW81N½Ê=ÎâV̽‰Ĵ[äJ𧵸2`²{’÷²½ Íaŭj˜*HvÑxR¨wíÜáñwÇ˙übċq*è.°?’RHdFQ4›˙ċWß^ÁσšÎ¸E ™JzPo2.׌˜ô"LXûĠ v7b4#Ê=M# œĜ’ÂéAiƒÀ,ÒDaFĦ`ú;j†Óĥp&iCŠoH‘éd!~@QïY –“\³ŸßÄIé[œV ìs–hAéÌ0‚ü†Ĉ*02ÇôËé:ƒ5ĞïjA ˜^Ú˜™D ·ş:MÉPôFŭĦÀ:Úı™-š¨’d>ÙRoáFş§1p(_³ĉru˙”`C—NˆiŒNÈjİ:&4A@kA5hie$Û_PVAYz7ëkQè@ Oş…¤ġ}ĥŞ›h“<ĜiÉ›i3m7ìñuÎħ7ñémO0J ˜ añÀŽĴ•АË8ĈÌHúèRşïbïC!şL˘Żù'J ŭÜs[rwâç;ƒJŽşbœ­êö"­ Nò˨‹µÒŽŻêħÙ˘`‹ŬĤŬûl'ÂʆQÒŞİ͑7¤s˘}I \Ċ³qï˘mE1"Iéy”R9h@ĜëJ ÖAR™I’Ù,Œê‘QÈ&ê~‚ĞÙô1‹ĝU^3;­“mtäÊĥqġÓ*­Ìó•éA*€Liñ˙ŜZĵ‚D/%-ŝ§£È³Ê€j%ë4(gıœ]ĤkfjfJzË_6T²&H²@•à‹×Q”Ám(—ZĉËddÂÙ˙m5g ÑdU ĈKêŽìr%ĈdpNÓ°RrLʙĥ@ÍoœŽ E#4áŭ ’'BĞ“Iĉ6ĥ£Ñ¸û‡£ áI•‹™gÚ^}.Ŭà‘&˙ mu+‘–’ @ì{%ʂ–7u\°ÓÌé÷ù“Yĥ˘— 4^däò*ñS½­³¸Xí&qIvƒA†¸W¨Ċ°Ÿ –  ĵżĦcötw!§ı;3š²R86„*ĥoœèH' â !ĝÑŜêğ4ĵ ‡çh§R À{úP $òä†hÍĦÑQzcO;ŒĈƒ# äĠVÇ?<Ÿŝ Ġ!kħúï!Ê­ƒ#üé0Ż-b˘ƒ÷Ĥ„µd(·‚+’Âe’}7Ĝ˙B9àPWÊñ£Q"pÑîu8³: 6€v›ġu·£GMmœGTÁí…Ċ^8°ŞÎıċ+Tˆ°áùĉ~ÄßµÂĊµ{tKQĞp7s‰£éSĥTè*ŸŬBÄÖûhRÒçûüy?‡f+a›?ïxk+ˆheÌïyÑsċ9ᙽéˆvN‘6I€ŭŬ„`ğ­Ó_ÜÊĥHèĊ7³ñm“„Œ,oòç&^4;üŜìç&ċ_6 ëÔyWĝгmjmGÂv³{O!c^(}ŜĉÏWùó&ɟ›üyÑì{s°ŸóçuŝlïÑ+LïŞ>ĉŻóZ\!$’ƒÙ‡*Ż•d‰bnN ëJö ˘hx ÉNr3×ÂeXĊ;͉ÒàL9%ĉMwœ´„餗ĦÚ ’àùñÁ_b‰…9ĵé×TTŝVŞİ` œ‡àȁħĤšŠ•E(†}òxutà½X¸&)+VD -)ÔŬûÌë]Ħ$³™ĵ£„ Ë kbhǓ‚<€Ó=µ9D½Û§İz8ö6²‚B ß촚½üBĥš²ĉZĉHĤjĞ™â7qUp1ü–Ñ™UÍYb,ÖŜNS%&ĦÀ/[Ï K$g'])‹ĉ)]³uFıËl]ŝŝ>%Ï`_Óê„”ġœĥ 'ŸMÉJ8ùu&j* IùO–K‰6­’€ŞdpEïX|"‚SV”Ž<+Ê3‡íô'8Ċ@ǽéO;›Ê€@TUaċb "s‚ûšÄÀĞ”ÀÄm3E(Á5O#MrŸ'ÏÜà)É/lÇÊJ Xj6cßd³wÜü„ƒ‚CÂĝà×ıñ9ïÚZ§ƒ`áĥvUCݜ`KzC%(r„xtU>[5 ÚNú?yQ^;ËǨµž(ĞÒXĜe“~…ĉ =ihĠˆ%$45 Ġöž!†tYUŻr¸ıL=FC7ùˏ~Rjˆ{A/à?cq™ŽÑ!ht˘Ô!1@)µÑs* v˘Sş%gë@ŭ’ĵ7ĝŞ´f"Ŭĉ„… Nfg Ô_3“_cPCÌp„ |ž—ó*Á f.˜Âo`á£äëkħĝc²xĦò¸Û’-À…tsîç‹,WMÔyıĦĥ 4€g ,aX‘mşŒÛvU8v˘.@ŞĠ5wJÉW5’z{DËéÎ:°Ü BÎ ÏyñlûŸ­- ñÖÎÑdVŸ´i§EvgüqŬÄL¸xŜµçxÏ@ÔġŠXAwäÛÑ­í\ÚNÔ_1l}ÁŽ}ƒZĜyçdٌ8Uö’‚ï²ßs1i “İgÍÓ_ † “‹ `F˲êƒÉXœ7]Vöyͅ`ŝ|–??o~ž6ŭ8&gÌWš­'Í5Ü7öĤ9[Î#¤aÏ.6Mêlš?ûúĤ5î^ßw  `jĊ=Ôf ƒKş(Ú!ž‹f‘+ĞϘVzßd@îPĈ+OY5@¤Q›ù§Äás’Ĥ䁘ë°Ğ€f0"ÒĜĠwñ‡€2zAĤ/#ÜĝCL)gDşġĦ Sc— †Àœ·)³ħ9xU<?;½1ÛÜ ß°êJĥ/ò¸ Sŝ’•b×ኔvçÁì"SC•“/u™Ö.–µĊÉLdxjÔ3YÁ*çx:r8œ°ŝ(GŽgÚR ™ĵ¤OWŒU #ĤH}Q€$˜.ğ`‚ÄH·”J—5#lYwq8ïkĜN“ŒeĝqYíMüQĉÔĉƒt’VĴ˜‡ÔŽJ>ĤŽ{Néùœ}ÛWH¸%Ú(ëvñ=ö'đ­`pT ÇsoĊ̀fĉ4·Ô'Kżòé&’nd6¨/Î2r5VUİ\d_YĤêxœË-TĤZ‰$ =*ċĴà' !Ç1ŝcu’X/w˘İËÒĠ\Ĉ4#;ï|ŽŒ˘Ċd\?/JWܑsĴ¸…ıΈ[‡–y. üŸĝċĞ&âahƒ”Wû:Ĵ92œ?š&œ öìh-qrsŬül‡úÀkƒĞ6Şc[ˆ £Ċ_7[·ùóÙú2²ÀëbÁކYxİì́PԀ3™KS]÷ş]3Ċ$'Ĉt›G‹èŞrŒ:Ĝ/Òŝy%&ÈeĤHSOñc…)qàj ĦÈٕıĠh•Êhú,g”ÀĊœ§+îĉ}‹Tħ ,Ë+{ÏcgC`kŠaÀÚêìÍŜÜ´ŬWĵ#gò3Sğ‰…¨È–ê£ .%Şazò§Ġ4dy½àd˜<Š×;sÁwşŜwŽ·Fĵh¸Żx§5ŭ:*û¤É.Ġ{½à‘W­‰?lYE‡DñšÄv¤,~Ff"^”âĈ ˆĞ„§Ûb*ç&İ+âéϋäÂĥ‹Á2E^X%ÓBÊTOû ­<›ë°~H7ƒ3òfĠĉwħ‹Ç›+Ż·YԈâ=TĜq_ħB8sÂìĥÏ `0[Ú<âBk·qßeĠ:î‘h0_žÛ6n rFµeş.(2È|˙ÍĠD̽e|l  =¤“;C$´ħ+ğLôóD™ú)N5ó“›Íí4Zq5ƒ…6uô4]XBéİĥn>ĥ" 0÷Hĥà €7‹*.E”ğ ĵĤ!_†J… EUMġjQĴàQ.0r”+aŝLċF€Š„‹ı4üRÁ2Ĝ6˘Íš ]Ħ‰çÔo 6üÁżÍY˙v@ö%·­Ĝ,keÁaşàš˙!²‰żoÑĞ–Ÿ?żÌŸ,í˙ş9XŠ´LÊïĵùGĉ=ğ0£Ŝı‹öĊ…wóß˙%7÷–òí°ÊèŻû%ÌN4ߙ³ñŬ1‰Ċ¨†ùŸ"ÌUZü †AÁ˙ŻGù?^R2†T ĜtşO`”|ÊNaNÑ×ך"ħmK›wŠ;eĉIĵż—Ĥîé݃ùó›œüñıC²v*,ĥßĥ0ĥÇߛ0ĵh䃙aŝüĵô§Hë³ĉç'•ÀDò…WWŝx;†° Äìù+Ф$$Ë÷.ÇĝhÇhéecêÉ)€]Ŭzİj"pĉOóld,÷wùĝf^Şe(²z¤' âvFĤ ËX=„X|ĊĠaŽŒ}O›F(Ÿëàh .Rh7'@Z—ßnİ^ŝ+sEÀ‡ċfG€Nܘú‰Ċ‰pĵ °L×°zÈcYl²íİ<ÈW³(|]“/˘#ÀG5“™e˙Ù=ğ÷ù“U ÍÖGÔ4Ë0ˆŠ7ĥş>^ż’Ż·/Ë=êŽg’½›ô8˘,cö1™äÄBPSY=аżž9‚½ ×·mş…‡—5Ĝ%§òıԙSXYUuĈİ4ûC‡|Zì Żäĝ2êµ4ž{’“ĥ,ş!(é[²ÈߒàAĥğċMÚċïÔ|K%À6S½Żŭȝíö->ñèi2V|´nŽġàĵ93?7;´Mŭżòŭô Ğ•|TeuUK‰Qíémpì ~îT”İšĉC^ĉ²êéFK°×= cárBŽE'ĝĠ/2ë¤l‰OOǵRèeÚĤĊó˄ìŬßß ¨ċ>ĥ~h’ÉJĵc̒ÒÊÚwéòšo^JÀ˜˘˙²´Z–dV9]ĴĜU{D<ɝ['܂·×,N+9z­bf_b­½PïċSQxġ°† ˆ4—×·aƒo˜—o{aÎzŠ!×Y~ÊW˘ĉĝïDîċY—o„ÇšT^-@ccŠĥ½6>àÓÉtÑR ¸Ġlƒ@Ż aBG*kŭ‚ƒĞE9˙ÒĤVÀVùÖG7N?²KrOï(TIÒÎSwíËÔxċYÇ7Éŝ ½9FŸÏÛ~ 6”²Ħ™…YUÑñĜÜGÔÜDn× Nf~Kïżsè- ÷´çQ(çgġÊÌ%Ó´ÍÏv0UĥoNÒs°ú- nR‹"<>yMAüY:nb³ eq@™|DŭÊ4c]ué-žıO+d•ż³FcñLRkşÊñM=>Y­D"^QħK'·oĉ$ Ex|œùŜNHg´—ħÍTËŞéĈ  W7Žñàµ2‚XÓ$gŒsb­!é‚n]p|ܤ]d3ùh;‚s_ö˙ÒËÄV…Óòï ΰË-ÍĜKó˘ny=ĥ D˙B|ÓHŒvù‘OŭŒ3ߟ ?=ĵ“kü?ÉùëÁ˙efú endstream endobj 239 0 obj << /Filter /FlateDecode /Length 167 >> 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…@B+u‰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`_>ĠSgendstream endobj 241 0 obj << /Filter /FlateDecode /Length 4142 >> 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ŝêïË?îŠîî`UßŭéáÂŬ…ĵ·ÂGĜĈÀxçëhL<’ħP°ÑüG렜—óġĊáBkĠ%.%|ĤÄF- û£4\8Ìü ‡È‚˘mp KĈùkìUÚĜОÓPHĜ,f@~YĈŽYhşhôlĦ-;dfqċ?…0żĴÍëÚ\×ĉÛÚĦ[àx'î÷l“lö²6UâHêΤô‹ƒċo…“â–]Sj{ ÈïÏjóG–›°½ 1ŭ²–Ìqíü´6˙V›/È-Ï›aİO>¨¸‡fW›Ç Í[vÀ†2>4ż›'Î>]|n³i·á=ç7”p·vĉ˘ÁÑo|;˙u6s0žX  ÑnÛ90ĜÛ?YşnĜs$<<­Í#ĥyÊJèǚ•.é=ai¸e§½fW äü6˙P›_³Mž‹+;lqĊ™ċre…Ôĵ¨ÍMmĠĉum,Ŝm¤Jt­ŭéŜCœ/£çߢ7\h/;£ÔlŽĈĉux³ÛüÍnïşäÜŻYjÉI€ÙqĞñö béŬĤwğ—T Cóœ‘È=ĵKٗ¸ûİ}9™‘…W,–÷?î(œÙܰÓ^³pŝ³Ĝ°Ìñc Ÿ§“b‹ċzŭêoĝ•÷MÙnŒUÀş?áerĵ´LŜY{-È0h˜4b0÷) Ĝ]`Iúİ뗠°À•Tóï |DÙÚ`ž·Iko-|ñÑîġĠ! <´Éh€€­ù*Á2À›Á'9­² ·ÔÒ°ö -YĈ(uêR§3,ƒWMò‚ ˙€‚Töz)lżÌCpË4(’DˊĵH à„}OW>V zœĝĤ~ú|âZŒÄ3İšòÖGÈ*-Ĝp O3)“Fi9a´Ĥ¨úĴœñż¤BÚyBĤ­²>8išċV›üƒ%)6ż¨ÍğrÚ"]áÛJeTĈšÂĦ:4ÌĴX`À9‚"^( x}1ĝL”mžŻµ5Ë\‡è\â’ĝ‰J˙Œ(sĤ=zÙÒ.AÛÛ ‡Ž>͉Œ rŝ ~=Âô)Éo6y˘Qt™ämosżkuœfF„’Â$4%s´ISÊzmr…Zċ„A°Y”jÓP€SÓĞ{´R{M0Ŝd%°žĤ™ĝc¸şL`7€×U)œ f—ˆR`Ó NÖ(4˜yŞ/()„Lö ‚5&/ŒÂ–zaBhŜ9Ĉ"hvĈúàÍT°ñĥ?¤ÏkÄX²Í˘üŒE”K>ÎÄNja+B¨”fwk„GÈz\Xµq°HŒÈƒŽ^c7luIĦ†ŽĤC^Ós(y‡ĦF‚/İ1ĵ°^Ò_ˆ#Ch+lpژ-”£4ƒrRäĦaí&“Ĉ0€K…NF€c£ZBFhH…_ŠcÒı^9ÚÈNZY2/Q OúI,é]Ò3L£”'ıĦ(múu_q8:Ž–-ÒpäËëtîNXŸCïA°ÛóbġQg v%!8~3„:TU ôĴŞ1f²|*séPħ‘:…ĥÓĵžġ.!ŽÌĞK'ŬBĜÇV(apÈógı ċİW(‹*SeÇĝ£d‡çò'ŻòÚ rĴ Œ†-ïò!…RµJ[zgL#‰Â= {ğ*ppżĞRNBԉ­ğJˆ%ÛìŬĜÎgµ÷S:vBU`5íŻ’‘LXÜUğxË|a ŝ{!Gèp•lUh0\ÑÖZ4†KVc$%ŬżÌ bLVW,´qpTËálA=[öŠîB:|´8éPµN‘$Ôlĉ: SàÄRYg%hnl?Oj¸žŒ‹ôÈYwM€38L v—ĊàƒmŽƒ=r¸œ[Ħ ğħIMi’äÔuEH6i!H5 ñnÄŞV'Túœ…&0´íôFyÇmo”¨o”CEÙ³UĉâŸ@ċz˙”RâŸĵ4½JQú'8%cÄÂ1’H‡Ú…Ŭ^Z:Ĝ3³‚è?óÄ_îMEhÄeĥyÖ`T7yı° 2°[Ŭ¨9~ާy4wüe‘É‚@ĦÓU ‹eĥ"¸Ôih:s‚@şà;ÔkÈnGÁ"ĠÈ÷ôâ]ĦG+™4MIfJÙ˘0ş_%ê8‰<³q¨Ϙ‚eŠlxUUŭ<Ż·Vœó0`‘›‚Gt“ @lDâĥ[ÑȔiĤĊjÌFÁ KoĞÙĵĴsŜSLApRÔxA8} jé}ëÔÛÛÈŻuı„ëş`ż_/ĥċüN۟ •Y Ç%"Í™BÚ £óAäšÉÀq­ ­IŭNYFè×£’^ĠFœ ĞJħ›jhŞ‹Ğ4"—Îo °Z§R&ZŸé!Ù]îôÁïÉLrnPƒ4ÉL&°c"PLĤÚ=9°Uߞè„ô3Sn„wĈˆ2/É1rLnĎ²ĝ@ÈD|SÑŬmÁ0˘}i½CñÌÀ‹~Ż, W‘–ñÌI/?ÊA ²?¤9_V­ĉ§2y‚ÚËŞ÷ÙK“E›`ۂlR+!1³Üçρ“™cV&ħ@7ĠSŠHQzHöJQ °˜nĵ/­£]T8c½”1°šħ;½VÂôPĦ)7áïYÌ˘sħè~Yğ‰XÔQ%Ä;]£ÌD1FċÁ&( ÛäŬVì°,ÜœƒQKŝ1ĜU£Œµúúp,˘5òá$Rò÷|àPëŠLÂżPàmfîL)ùUmk“ ïÊÍg™7äúŸÔĤİTm>İÈjgµıšX7nj*ġ(Á6§n^•*úŠUŞca]Îp­dɒŞnÈ2Q¢™ŝH ԁ״M!âœ'*ĥWèv àĉ-ŸbԇóA`›š0 U0N€×¤0@œ.?ħ•m8¨áİ lÊĝŸ$…Zt\¤Ê[„wosÛÍżàŻ1ÚCOµHXŒ/×ÓùúöÊsà›ĝĊ‹<6HYĉİäaĥeÚg?8B—ŒÈ~HE+–„MnYÔTTĊFÌ!‘’!ÏQbÒ-ğ[2ӂâV…U@Š9Ċ˜L3°JOMßöx ĥwzTžî£â¨-Ĝßş.Àé&ŻgTj7ğ­w|Àež²²—`C}ï%öHš6ŠġĦĈ€'Ž GÑ"­³ÜmFȈĦ4İ=ı9 I釙@ê´ fûBj;Ùn°$N |“˜j,:­š²(­ ^äEv>½'ğŭM2NôSx”ˆ†ò’ 7ŝ¤ƒ+EYmP‘=ġÀéĈĠFÔ @yó[ÜY†ÖK]ħwà£neÏÚöÙsÄ÷ÏŸmgÏZ…Ùóĵyçô¸Wü†eĊC lxĞ&@Öı8”²Ħ^ïӀÄùI‡ĝ²>Ó&ĦĝG—ä%˙„ċ‚/ĠëĤT˙ÁRzġ {Â-ÈĊzRp~ÈŞkmöIym.Ĉq-$žÒòr˙8büTİĴ÷˜¤­êòD‡-ßÔoßdEġžˆÊ3=·*^‘ İfC§y=ġ °ÔĦOĊMïFÓ06Âe‰U&:z?ĦÓÛw)°tċP}hŸx Ì͸ŝS‡˘ŽżnÂ÷>&}ËŞ6é½# ‘ĵċû¸6÷~ËN£ÏFûÊß˙Œ²ñ v‰5Ëé}V›ä)îĞ]ĴOrÌsAJևĊżĞ‹=›|aÏ=àû¤6Mm’§ÇO†Ŭî3ıeLJéšŬŒœ5˙ĝıyğSŒüë_ŝġ+Ȁ³‹íŭŠ„Ï=Ԃ9žżÖÎojó ĥıOäû.aĊH êËÚ$£—òĝ÷˙- ˆŠ&Ÿĥo?%ˆWzÏï6N(œ~j °à?áĜû˙!ßx_³\<ä3’#–Çğb²î{ÖkŽ2FVĥƒ„†~ò·ŭeÈ{qĤ-š×ĉ“R½,ä,†"*˘Î/Ùc82ÚÖìáìˆs`ĴŒJšÄWÚûmï:7Ôĉ‡^bżÏY~ĝ xÛ!ÔÙpÒ ñŬ.fĊÎżfτ˜ ŸMܰcy֏ĜŬ‚Vˆ>­€şHaüŜ8ÁğCŜù6v’[V˙oQzï÷RżbUáñJŝĵô_ĵ÷ıމ|Ô'>qTóÔ^ĝŸì –U¨ ġíBóÖtëñÊıF_jS:à¤6ŭ§,_Üúúô óáî‰pAĵÔÛqO„CÂtëŜX×N=üŜŻżšĈ…c*{3áí×päŜ&ËïbG/ úÉ`ZŝoQIq’²µ óv dV/óqHEE.)—ŠĝÇÖË×aÖz ‘ӏ‚ò]sú¨-p“gCCµ‘џòµ°N›×üŽÚ‰Äs<6wŭy8yŜkîġ~÷ŭr¸ùŜQy7ÁñNé~ˆR'+ŸàĈu,]>ż!"}òxĠĵw0}|$Ü÷ôÏ˘$1„Lĵ—3iÀµ¸˜żëÁkj;[X^Ŝ–$)˘˘˙ Ċ×·(ŞôVÈ!ËJaEŜüVÄ'ĵù/şHdy•–ŝdÄÑħ2ĝg:ĝ@ġendstream endobj 242 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1 Üy…@‚Tu‰²¤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ˆ/=šSeendstream endobj 243 0 obj << /Filter /FlateDecode /Length 6501 >> stream xœĠ]Ŭs$Er_î£ŜoÚnŸÉıŻ·6îìàV—ñ°Mng²Iĵ  ›Ï‰D´1CòCŒj‡í)PLŽrÄ Ż($³ùî\ ›ġ?͐7÷Û˙:ûŽĜyÄÎĊŬ8&8ĉ³ó'“·gß=9ġŜìkON]Ĝ%ĝ#üé  k‡½¸ù7k/‡ĉMt°`XƒGÀĴpÀA³yݎG8`÷m{ğżgyX|ICRöZ6p§ÁŸó`‚ŬìqˆK# D{ġÎ'lˆƒ wû<@#è=üĜġ‚… ÎN OÄ ÙuïmÎ Žmû1ŽÓiżÄġÙdèCzáYè òÉ#m 8âg[%ípK;š°vò{R;D UĤzY´f8dk#0Š÷ ğQâĝn+û1[`+Lâáĵ‘›m=™Ë‹içyì8˘Z <݈EâIxMôĊ΍ĈŒ,fßL‹<0ô9ívt†Ä™žFïë<.£jŜÛpЏÙŸìn wñ—êŒïӒN§5· ĠĦ.­Hôž¸2:˜v ²¸7?âßAA†ĊIk?ġ a •k#œ²i7MàĊ‡ß³>#[ÑFıè"¤à@פ =Qç/g2'eá ê୉¨>ÀuPŸ¸aĠÌÉıQÙ·"b—$òy ¨{÷(]hÁ)x’]|q4^jÂŝ5İBGĜ˜geráÂWÈ×ğíé=ÈMܜĦ1Nƒkêñ†W—²ôGÊp]°œߌ·“œ—MÜZ ™ñÎǎ™ħíÖ= lvĈäM=GÒ;–MX_•M˜e_Cûq“ÔŻIpŒüıY¨~ÒwàŸt ΀Mˆı¸%0M`Ʉ+žĈâjŝÈ£é=oÏYĥÊĝ%]ÊĤdÚb3ÂÉZ#|@A­tÍċü"1+ĜjĜ6|KZ˘L–Ĝ[üs-Şm³ÂB\MëHò­üšŬž•bİ<:ͳ_SvFv„cĜżnú†§qܰ„˙pÛv"X ŒŬ]Y4,ĥ3!ġƒ´ÛÓɤUm.ĥŝ’U,·—äˆçÂĴb è"Ò¤ò8îy%_ ߉|³Š?ÚYÓÁ8xĤNĵút_ÄğĴ‚Ä;RŠtıx@5ħ;”çM.’‡BĵÈRd:ÙÏ䋲ĠfŞĊ%6"‹P K7ŽÖĠ‘ŜèPdz žpɎb *‡Ĉ'ûÖ3+f0¸Wû‚ŸyµŒ:ßs!¸+òĴô¸OċòŠĤÏfLx8eLN/A*ĝ2‹â_}™À e½JDù½š¨nYOİÊ÷LĊ“TÖBĈÑġƒFfPz–jÁFž¤Z|pbtŠ`„ör°1t–ÚĞô¨A3el7-²İbÎËb1<ŻNG #Z_³d$œr!ş™0ÖSóaÇ e@4d’è ™£Ÿ Ò¨É6óì:ì_˜=ÖɛAĠ}ħ;ÂgŝĦÔóĵíŠÇ&Ëâo#Ìé¤ċ›ŭ‰m|×)E¸nJ™rqş—o›ìì1îĤY§ĴéŝJxGI<í²Ì[yŽmÄ-K:¤˘ĥ§+§8Sum9Xz0x`èAc7ĴSÉLv> íá¨=ĦÑòĜÚ£Œ˘dtuQԄö¤C)ĥĊÓĥeŸ9Z†ĉ YV—S|Ïäu£Ü£ÉŒÁ}Ë%m²3Sġ­YîE™)Jċ` °UÍyIĈê÷5ġ{à1ĉ`aˆ‡İÌÌÉĝ  ÍĞfü%£D(˙ÈÔĤ„£Bğ<o\KXäëßô-‰ÎH[ Іh|җ³rËyb·µ›Żĝġ³JŝÍ !ĞS{²ùˆŜ³ŒżmÊñżîLyÉİÉq”uËĝ¨cÈ)VÒIA“¨;FÏ2&x(ה½µĴnÄAâŭJPŭĴZdÁEûiDtïħôgñ•3¸Ç@Ú3 Uî@:4!Yß7ĞùV siœ‡)p,ÀFĞœ˜ '„I)ổÓúF<ġ<Ó›ħҝĊ ˆ²éJz‹9‘ñ6ßö…_0|£3ĵ³ˆĵYŻ,‘ì.ún pÎ;Fû'IKñ—9n?†xCf'YQ-r_nVqÂËÀ%bâµ­;÷K,H‰÷ Ĝş”Œ)eö>Btu„LžexP!縀GHf‰lÁ“9ÈÁ ™]IΙFè¤j:Z jïu*Äı”Xq”m_?trê›6ıŽ˘ğıÁ’½KÍcf‡2/„´Ìßĵ8.é'ĜòÓĦJ|_l1ß_•*DK´ĜȜġ,·B'$,§Ÿ“߈Á—ğ îáž"Ì0Œ£vW@Žtì°˖>xšeÀú1C ŸâhÑ&“GsT‡]ZÉÁoĜ‘$ÈaM !Xù˘[”i‡\³-İd%-³3„‚3B>Ïĝ„üj½HˆĵP!Ÿ÷Lat´Ñ>%°uJ=$0>Mhp˙µ²µôè,~KÎċŠçÁ:ÒÒ£ÓŞŠGCR`èÒ£ÔŞt—ÓÎ4‰üxkv!ğÍoÛŭĥË|›wÖ'?}ÙûÔ~ğîBÚĉ€ž3/´ Y²‘ħ £Ö/[ú‘ œ Iżg^bĴWdUžqÑçĥ/’R}öŬ‚§0)èä+ ié2Jöe(ñİWĈP2Ċĥ>îÈ *I80H ÀK ÛĜ#¸’#@`“œJçW0‡âFòOÒĵg…`‘ò ö•È£—ñcö7˘7W3ƒó&4ڐ+x#ç\”T–Ċ^1ċÂ?—¸FT Vœ‰*2q䵀H,KÌ)-pY%£ Ç"rm<pµż2I@*O|„{Ì ²"S½‡;° Ħ:cż+‚–çŝ­ŞĤ .ċ3š_äf´g™"ÍÉiÙµÀ–ŝČĥ¸“¤;FÁ1MŒ–Y1U£È;"iЈħ- ÁôĞ% êgĴÊhiWpl_~oÄç)ħˆšş ĠŻ4êèóŬtuŞM4€=›O·­² ĈvHm<˜ é¸+-Ÿi À!yp23—LÀ?D*à„˜£ *•_n ~SŞ>€úG˙˘I óíS–Ò4,jÇy–"ñ ŭ£âûBq—ŝgŞ8W!E#—G… Oış¨ÇJ*>ρ{ì2 :Öñ ĤŸċêLfĤ8 O~Ġôe5İ6{‡êĵK› TÛ/22—4ċ(imvÖ]ŒFg†qöi…•x0™˘Yà>l‚‚ä2ĠïÖ7ĥRİ™vgÄi D2cl˘ż˘§?wĵ#܆ŝ*£¤¸€ŬŠ˙y~Wòl°ZTé-H÷ìù+“şŝ¤lJBY_wvc 5´^q âöÓí†a&ô6/ÂŻ2tt1>ħ?ç! 'Żä8Ä…1ݎ²kĤ↰ˆzà5dA*™y·àġ[dôYóŒyó?]jO†Ġaı²o0:˘–ü­ô0˘Ž”9*w'ÎkĊŞ“½êò׳Yj^${%y9Ÿ&Ÿúñ °˘U%Zú³² É8íp4fmtzKùQŸM b Ól§²ĜO§vÁf×O;KÍq%íÄò‚+_‚˘LL‡ÄßÔ!ßl>§í–D%>?öÁ3y,Pt§ öS‰~µŻˆM9‡É^£Oœròc ½(ÈôáĤ;݃ƒ­„Yĉ–l”ġŸ·f™ŜɘI–Ap8ĈíFTċ’KŽVBŭAiœ{T— (ˆ›ż`3”Ž"ígÛĦÀɐ:Ë!kñ@ÊSšu;½ĤèqâĜAŻ&c‰ÔÑvŭÊş Î.äQué÷êL÷e£ÀŞ˙•nDR0ƒa^H3daÖ§â ?Z[½V6¸§‡Î OÇp ,q€Á›¤q­À~ğóèQOQˆ‚€:Ċo0ĞK­AîÀá™Hó½ÖVÍıHI¸],àu£öÄ`G `i½>ç1ŬċwL{Ôb[%İÎAv íEµġ‚—ħtˆ¨[ŜÍf‹ğ$ö²áR Wœ% P§Äp%·AċUäħ&ĤY9€;@Esua+q"ì‡Ñì5›–Żô²VŻ…X£nŭşf€½‡Yw˘s°ÂÄ Tġ Y–ù‘h›çùġ~+†Sċ‚ ›}uµ_@+dšHaÏïĵé¨.@÷‡ÈÎĞڈ˘úCdt6•BVÛCşEÄcm!Ŭ:ËQè“4öeײôÇ,Ĝ 1O²+C̉Á[,cĤĴÁ`#˘ƒĴÁAÎ Ërò!.Ü<™"‡`ĜÔxŒ=µ7‡-˜V0Ġ˘ĝbB°ÖOfÁ8,Ÿ_ı1M˜Z-ÇÜÔiŜ´ıûW5NMˆ;A²­Ċk8ñxFjÖ˙0ˆÊ£ ¤€gŬ½Ĝij˙U§7ÔçžİĦ-ë§lB=ŝµ$²sSĥFAëc’5Z ×m-×ÙóÍŝBüyËzĜġbUĥÑżm´Ŝİ$ ÚÛ@˙†zÀpmHÔoógĴ³ä¨K¨rĊü}âìw)̆Ĝßo„~²ó½ì8ċ•™YÄ%=·HŸşL|Ö\„Dİı~HŜÍìa·[¨ÀfĈgĵ>L˙ë"ÉV6Œ#pè%£`‹ŝWx¨_EĊ"ZÂzf7֐ößÍĝ‰òòz‘ÍdòÈ/L·Kh;ó*fᵨވ!ÏjŽŭÀ[M÷§ĴQœß¨&è½Bë*oŝj{Ù(é•ÎçĥŜ;Ü£êġ’=ï÷LÍËĝe•yĠ X–íSïî|^â ~T’ĠpĤzPy™ĜşGĠèĝÛğ~T³R˜”ÚpÁuܖO3Žvjè4N֔LĴérŠmÊŞŽŜÚ°p6!'ĠĜ.ċWAïĜ™égĤçž_£żÔàn˙v‘.<àôÉ8nŬ(Ò,BŠ(Kj›ÄÉ×ʊB³ ĉ $_÷säPR şá0銗£ùċX+·İˆ`C FNÇj tşŸ™ŻŸÌzJ³ƒ™ú^Xíµüö~ íyS*Ħİċ(>íĵ3şH6‰'ÍWû%/´ô!Ĵ2!¤$}‚n’ì„ ĵµ÷Y6Ö°İĝœv\%8p÷èÓրŸS°AÍŻüħtĤŒ—WûKœCÛ4jŠ/Yîzñ2ëÀ$Ìfr ˙Qt 5uL˜é-^ó§‚ĉo7ӒJċşÛ)Û˙×^LŒÑj’öíVH"*çŜ²eë$Ÿ¸G]•íġJ]Hċi umN%Ġs3E½›öž3ŸS—–ž5w3ëùu¤Â:6‰>qLëŭÑ*/ŞÙ’$÷ŝtöiqàµeKÜùĞĞZ³RfżİUÉ>8[ّ&Yôc“EWîċO½”u+Ŝi3…NĞ$3(ê ŭŞynò' Œb ù5]n‘×KV@Ħš Ŭ331Żïì¸nġˑDé\DDBA{Ä%GXÓ0GR&2)D ˆCMBB`˜DßgNAmıFO­í¤;j—Ñš&†>ż­EU ר^İöĦ‡pv%ĦK|“ĥE_²À‡CTP‰÷üU„:rÀׄÁŻYUU‚B½ŭc Z3šfİĴş–†#<Ŭ)h(2š²ĉÎ;˜aIô6hè_úĊF=5Żĥs[K#Vĥ˘’lfiÒ-š­Ĥ sıiQ­ŬïF\Ħ½4sµœ÷”eQF‚ż¸d0Ŭ…šÖ|xĤ€Â곤İÎ@á­1ŜX•;skĞuv&.2Ê!Ž+nüá˘Ëĵ„„ú÷Ñ÷gİc(–× ÑYĠùMñQ-÷şŜ5zK Èï·5Ċ•ü/;ù;1k5 ÙÁO[&.vxM:g}iĵĉhág­]Û^Á{V: Ŭıä`Ñ1€- užF•ËEµÄüP6ž t‹—°cÌ˘Ŭ¤Ê˘à—”¤ïÒ*NB+/Kʐċ"t z€] ŭâ”ÒħzŸ·˘Ëá܃À÷CċĜšÑ5-{­=qGî4ġ2Ŭ„D­IU1ÑċäÜmôf³¸¸@Lfġİ-`ï!.P?x4•;h´ R‹¤ìê~)\z’­…Ò8ÈÈü›~bó^´t5Ğ ĵµĝšéb\‹úöĝ›ôü™ˆÈ~ÇR1àÖ§ŝĦŞoyàK޵+aŜâħ2Vžĵ×ĦğË,AşG6MĦżêRĐ²†ÑÏK€È–İ@ò”.ĜA—Éöˆ¤ „4O‡ {˙wiŠ5HN ­Ĵ˜W‘Ä`‰~tKXo‰ĥáBPùn‡ElDחkÇ£ĝĊŒ2Ħĥe™rÑŞħĉh‰Xĉ\uċîŻ ġ:rÊÁc…ĠAJL›ÊEeN nšÒN²­Äá½+ëçLA×íÙYœÏ=RK™ú9kñíߪ›R$7êğ'/µ&Y$MAË]{|Ġ÷íñŞ;àç.ħżĥÇÛöĝĴŸáÏĊĜ××Ŝv€nçmoi"ÈYYAÊ}{ĵhwíñU{Ü·ÇĞğÄŝÚoÛc³Éï²Ġ8‰Ô](íZÎ} @"§0ż'_™§zŜgÔl%Z+ż<Ġ7)³Ŝ¤—³r'+7oW~šJ]ùxè[pìxĵQ\ĴoŝWjuáŬ;ğ<u˙ê‚Ù" ïô>ĠĜŒ.˜Œ5ŭŻş2N+qy­³³ßê ~ÄâMYVÊJÒí.³xJú†pÀŭ³VÂ,‘cÈ2ì†rñs=kÙÀ}Œ“–Ù%>Eo”² aùS\ĵöeç|JıËò#^i·Ö4]•ô0 Kq‡N­Uà„Ü­H$Ĉ,! ‚S(=–Íu×8ÂàìŬŝÀ_†‘F”ĞżĜ°-ğNDsxĞ‚L"â‡qYb,ßn!Ħċ.á Ħ—nˆYĤŠċ£‚žşƒ>ğJCż^²„ö—HŻÈCTO=JQ-˙|ú^³ĈžŽÔĴ§‹ÉG~a³t4½ğĉĥr뽏OkQÂ)ħŸš@Uìr]ż­8Ğ3âhĴëŞ²—î/U]vx~íöúífI~Ê=V]éETwÖ{F\ 1Óe8Ŭ‡”a,ŝ².µ!_mH`Şİ6bĜyż³’JĦ5{9E^iäÀ/Á İr™K˜ŠùƒíÂ.jooÛ۝|[ïڀC{ûFím+f­­“  D˘­êeiƒ2ž­Ci”Bl3Â6€{çb„$Á‹â^ŞWÛÚ5uûFĵÇĠ ŒG“Ö­ZşÒžK7U0ĵÔâ&]Ԙí2v‰ş"-úCZ´gŒVğ•Δ%.WĤüŝ*ÈÍîĊĤ‹Œ­÷Rę"`üİ0îşo…C{|#ßö¸‰ âÀ[Ö_\ÜzğŝEĦÂH,uŠ`H„€²ÂĴğSšé§LL<êÛ2³²ŭğú£f9 ÔĈÔÊÂŬ-DPf[˘=ġ.ÓŻġ-MÛô£&Ìy'§ÉT‹YBŬ8KPX°GD…òb½ê—áí˙ÜİĈ3=~~9üágûû^çñNzT½Ĵ58ސÌïmO´ĵ6˙Z1x)9³lz0p†YgÓ˙gÌhw֙ôĞ·k0ŭü˙È˘ÑKğYCñ $pñµîÜà`l“Ĥċ:Ÿ·Ç×Ŭ—rɧ=TŝEĈŭŸiÚûâÉÙ?}C>vùù}÷ñ]KyÚ^~Ò˙³=~U‡ŝW‚€˜›˙†ĈE÷…H\÷fü¸{àû•=uÖaŭ,Ŝŝş}pÖĊ”żklŸVâ˙RŸ†ù ëÛ_:Ÿ›w|ŝI—ÒJĥGI°îËöĝyn‚h˙Œ—SıŜT}–u‰~Ú}û´3•ïMġE÷ ÔĦ.)…9OΞü á!˙Œ?=ùo]‰3…endstream endobj 244 0 obj << /Filter /FlateDecode /Length 1481 >> 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ŽòÔ(“;%Óî !œĥş}Ak=¤Î­ŭşWÉé´h8“̐W­ÌCñjJ’q•sFr2jħœRı­œQĦ h=ò&sF 2 Ž *ÉMë]÷×àCïÚ÷WÜÌĵï·2)EnKßÊQĵkŻġ™#£{/ûžœ›#&§Ŝémaı6ŒŒn[™<·ÜH´³œš‰r‚úĉï uŞ••ä:¨0g-‡Ž&Á†&ùZı0^w8 AÖ¤Ì;sežż’c U2nuNI3Ħ<Ùĥ ĥxò˙³–üĊ“(žFñE£ĜneŠs?Òä`.éĝù§/ı’G;éŝpAÎâ÷sh ğQü3ŠŻ˘xŒ0‹‚×6Š˙ ûĠ=YïĠb^QWoQ†;èh€nżA˜Bċ°ÑPTÎF%60úÓ`—°ĝ™.bÉ˟Ùà5kÇ֍™( }tZOyS~ŻXêż: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/Ĉ^‡Ë—(Ż“˙AÌ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·À RàJëı7ġâ²J'Ħ§ZİTmµm½VġbW]°ïŜr/œċŠ]£-„´NħûfĈ[ `¤b7ÍLJÑZoĜkÜĦĴ‘lvh/ıph2÷Zhĥ ËÒ cŬfïòŽOäà— xçûqÂq^ÚGHI9.ÙOa‡ñ ĵDçcœû°1_T³l„i½Už=ĉş~ÍÇhìîĤĥ\Mħq².%$1!ÍŜDVX*ÔNqk‹,şf†ž9xKwìSFÚû9lĈê¤ÓĴÛ5á îÙĦù}ñ[ šĥXJÛ°Í‹uĊ4‹÷ĠL)hıġLêÖáGüt`a܌}ΕXf•t*‹PċöĴk@Ĝ¨” ­E UÈdĞUHú´Z|sÁ~ߝwHwĴۆs8fÖŜHÓ ËÜ;et€mLiÑԀMmcÀ çé¨G”çğ°_8ÜĜ]îüU6Ż#ú ´U´ÈĞÏĉ<ĤµŒ3VPü6i$VôK@[† G “½IMĈúÙCĜà¸Ċ€äuħmLHbŸĵßO­Ä¨!Ŝcœ_×O” óĊ~KËĥHŭĦ h#$àWyu>`.Ĝù>…ĉ^ċŠc·u§ùóĦq‹)€#÷àR‘γî2y1PöŠˆ˘7Ĥµ";–ìi†ÙKd&°l÷‚Ĝ‰Erî}$™ä—ÑÛëEġĥ”#ğŜŒÍ$ îem ĥŬ™DĈáž{ĵŞx#?eó~Ò\fó1›ßfóÍÙì²y“ÍM6o'ŭĥ“H:[‚É”ݤ­ ‡Kž‹ÚhT(içgĦ8óĦ)§Ï‚9ĞË0W“0ó.›/³y2i>İ—ËÉUġj’—“ÇHkêì¨Ykâ˙ĥŠaFE O ê?ŒŻ™Ò˘—ד]MŽÀğIgד9>9*üS˙ĥú)€`,endstream endobj 246 0 obj << /Type /XRef /Length 279 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 247 /ID [<2f0270bf89e548c1d1713609f98c9d37><67b66ac702c34eb7f5a9fb0ec4780e0e>] >> stream xœcb&F~0ù‰ $À8JŽ ò?ƒ ÁZ ›ġ( ĵrM#üÏ ˙”dNƒbŸGDŠŠ€Hĉ R> D²€É,)X"ùA$ËÉ·Ì"ĉƒSQ6ˆdÚf‡IF›ñ=˜| 6˙2˜L‘* ’Í,›f/³#Àd,Ĝ´^0Û L‚U²m³µÀö2]"%ÀêŻ‚Hñ `îĞ|&_‚Hét„K "ğ@$‡5B„ĞÁÙÈ(v3“?ĜF°ì0ıDŞ5#ÔóœûNDʂe™ @¤äT0{=ˆT˜ "EÀ~iƒëe”Œ³? Ù^`K‚ġ² ƒcd dZ5Á endstream endobj startxref 211094 %%EOF RProtoBuf/inst/doc/RProtoBuf-quickref.pdf0000644000176200001440000007426514741522255020067 0ustar liggesusers%PDF-1.5 %ż÷˘ŝ 1 0 obj << /Type /ObjStm /Length 1871 /Filter /FlateDecode /N 28 /First 205 >> stream xœÍYÛnÛ8}߯àÛĥ(RФ‹˘@çÚ8u¤)ZôAħ[[YJ%ıMûġ;C]LŬle·‹]²(‘Ž8ç%N "ˆĊˆI˜ ÂıCl"“8Ä4LâÛ³ˆG<Ë%Ì Ì6ÂažœpfMA¸À‚I¸ëZ„YDpdžĈD#̃.ôs‰É=‰iÛÉ Ĥ' #–€Ĉœ˂Ñ88âA;n[@'nÁل³ gÎà˘ ö88gĦ€9ï·WŻË̟û™O„6%tâ/d §.ŒäġkĠċ0‘~ÄÑÈÏ$y6úƒÜ23³„éíöï†ñûó˘]œg×ò\Žù“$žŻgşœL.ÈÉ2N³t–LċKCĵdÏ+âuw }ÌSò ŝ~.=΢je2ÊR"XŝTc9üƒĝúáCÛÇĜ{â'²|úİLu2Khĉè1;ıÊ x>=8Éùĵ%ñìJf`“NFÇàˆ|ÌÀäë׺OKo'ct>ŻĜ.jüT*Ûôb:Ŝ?ĵ¸_ùQʌ½ƒ8œC‡hσhAèmíGi°ıq$iv¸ôˆpîàHĉSpsO/ü˘  ÑĞġ]ĤÜ@g*ŸòáoƒyĥÄéu„PS…?½\Ŭ3LĦİÎÍşĉÏt=bÙa …ĥşÇ-<[*@F^kċ­…ħ0 ï~.§h?a `ÀóáT‹ey †xFè wtJgtN%½§ŭB#ӄft €ÉA;{ÌÀé ŭE ìd †SSpP˘D5pWC|Î+ƒP `î —ŝJöí 8Ìö£E(Ħi S3 Ą;W™\½ {z ´èÑĊSšŽĠFÊùÁñèäìĊe°ş[§0E+ ıŸBxkf4Â!"b3ĥ3òO˙qÇ-ŝñ°%ċQĥË L‚<âaێòÎQĥʟĞ#şhĠ6ô³ XĈ#÷ïbÉ„—5ùĵÄĵÖ§´İ£@:´yêüô?ŭ˙ç‡>ĥxk²oĠeĊÛC:˘GôĜ;î^QŸŜÑğć…[™g3P0ôé,^­|ĊmÍŭt żè‚.ÓCşRl#Iètç@ŭ”Ĥò›ŒhbŒfßcşĤôŭIÊ$Öuš[èB]öĵĵ҅EŬŻkbĞĤ }ôÜŞ R`‰ïV…–Üĵ½:ż{³™ÉäàzoŻühà˘á9mM(ô­ÒÏ( –ဤCîbv@ԅ[Ԅ>Óàlgn˘‘zÌfú&g`@xwi3¤y­\żŬíëÁŸÊĊZ×ĉbeŜŞÍf# 74ż’Ϩa˘POœ,ë mtêsÙî¸fU‹Ş‹êĞʅ.*;5smÖµÜèĠk]U˲vp°‚Ö×}])UZĠ—ŭ £RYUqȟĤj kÇôŒžCN‚ŞvMßçÊĉ'(iqGşž}]ûáFΖ?– YŭSÓ54ÌWCyŸċ\ ĦûZHŬ*Èmw‰Ŝ7ú½[ö`Q0ÎËT¨ZÇĉş§%Ĉ9áú ?T÷ëÛ‡ S„ájŸÜûa*$Ö·£Ûëː£(ö”S!pj˜J ³ÍN§ĊNk(;Ħĥ‚µë²<ô0´˙>;ġ1Ún›]£µñşĈŝ·}Ĵ& mĜ‡h,´1î1·8&Ħa\Ò·#oè-pÒÏʄCQKK=°ĝEfĠm(W9IużÁžv] eš*Gd'Ñzu'“4XhéÊVj]Ǚœß…Ŭ7<_&Rl_Gsd'R_e<­|§"h$䩀ċË,eù›"Ë=*Ùڋ(ô„Ž2Bû°2ĦnBÛ <˙8ı(ĊĜŭçÙ-xVEĦż'ÂĞ͝úĠNX5Zv_ïĥYĥĜv´íµŻşkvf'=ÂY‘‹4áZáÔ_ϲMž?l/AŒŸ š ½i´@܃­Ħ ½Ĝ½§6™ŝŜÜèM類…³b 2ċ6~ÉËĝ‰KU;F 2N™ Œ•e ?Íe?ÇĤ üS”9~†)Ê&áĊۑİG}äŜv‚û{ Qo Ÿp³l>^TÍŝk[ XM=ìĥüÖCíendstream endobj 30 0 obj << /Subtype /XML /Type /Metadata /Length 1168 >> stream 2025-01-14T11:53:49-06:00 2025-01-14T11:53:49-06:00 TeX Untitled endstream endobj 31 0 obj << /Filter /FlateDecode /Length 4882 >> stream xœċ<ےÛ8vUûĜ_Ħê¤j¨ÔŠM܁Lĥ*ëĞÌĈŜñĜìCÛµĊ–¨n%QĤĜöô$ûùĊüFΔ(ġE’_b?48œ;|d)dĝßŭ/Î.ŜİÁÍú,K3)Ó Ŝ1E…0 µ\ Ş›³Ïgϸ?ĊàĊ%Œ5JRC5\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 ŜsB xÈö1]*|…L˙×Y„SŭI^N†֙0–LŠùġÂF€żE]ó!b³³H'vrÉS“°”3ÉĜàrr–äË_ĥ°€™ĤƒQÔñ*ù½­“wċ"Ÿ-ñ·N^UùòËÙş N”ĵş 0TèŬóċĂK3N’7wU•[z3#“{÷‚Èä}]~҉H3ŞĵéÁ &$Fu™0v8ħO•ĉL`Ç%*…Ž#ĝÓàéÙĠ,,,ż0F>¸°ˆ)‘ )ġċÀĤRӔ ĠĴïm]Żŝñâb2І#¤“|J‹Iğĵ”úċMÇċbĝ!ëE‚PXŸ…äû>F§Ĵ)ĦİT”ްŠGਠŻd¸PYKĞëÙr’Îʋ™Œá1Ï#w|$riFS’‰íeGŠ× ½C0²†kóûĦg£d’–ĠMĵĜO6’ nèt1e™n ^Ŝ‚Î6ú6ìː‚qF%Eµž•K÷F¨äĞU'ĈM’ûŝ`çAüV³yá•ÌN;F²äĠĦ´f`}Ż,S•ÜċL‘Ĥ,h-g‰òzAYDêóÜĜ&5S)Ώ½ü5_Ĵĉ…C&ÉŞ²šF¨V:ÄÀ)ŭÎvʒ4`÷ùLÀji­ÔdY ĉ‹rŽd É4, *, ƒ.ŒÂ=<âl S ֏#…7 ŝ”ß”NêğşĴfùüû>ċŞĥZà!ü’É˙M­Ş… ڐ$~Z‡ĊÎÉÊğş¨ŝ:žçëġ2_´“ÊvÒ?N&Uħ^ż(ËO–qëhĈĵèó¸Ĝ‚ Éٞ&ċˆĉ‰CŻZŸïfŞÇg]W³ċM;Ĝ£Ó, C‡àÛ̖5£™Ù$,˘N7ı‘ÏwÂ/ÀÏlnf(–w‹€àÛÛrY\Ŝ݊ E|Íäùo~zñë—[²“…é˙í§7/÷Ñ˙—ŸŜŭûÖ{Gà¨hò7tĥAH/aÛKˆtüùnq]T£äá…l'³?ğ”ô |ĵ*=|­ŻˆòĉÏĠ¤˜ĉwóz‹³ÈΏr§ĴU‘×1A½~­‹%z1oXPe‘ê—A@‰19‚>X4‡œÈÁoNxĥı[KİlßöéâĊ]E^uv—alzĜi1VFmÀ[Ġ—Ù8Âĝċĝĥ|ßm|Ġ¸ÁGYĝà˙0 ¤TE}W-#:ġ⏺áñ?û§J@èċ²Ĝ"÷ Ŭíú'Ċz\͜ ÷İÄëŝX€ˆíEp¸†ĤüeˆGšo1ÂĈQ @á ĵhc üí‰¤È ׎€Ŭ@lj´ċ4F 9-œÙËiší‹ À…|Óĉ ùÄzħW5£Xŝİá%"²;ù‡$ÏAÓ­ `”žáÈ",^‰ÙЧZuAŻËE1Rkœ@ …ÀŒRŬdQr‚ádDŸhE˘É;+ò:X‘ê*ħérpË“ú§,%Œu(Áġ§^Éİâ'Z˜hòS/LµqĞG,{u¨ùòŬÛHg}Ná5ZO—°˙K…NÛ§ğ$ɽ[MH`ër£ „bĝH–!Gè\¸&ŭ)$‘˜íGöYcÁTìqğGl¸ èoä6´Hçr{€–>À‰hÙ0t+ú§Q\8ž‘ „‡İz²,AÉâ?´ıeÚ<ż?‰ÒÑ ˜Ċt—•ŬÜĞ[!‡Ÿ=¤ŭ¨Nıî™âúZӝï4uìkŠĊ˙<­Š"VEe0½]0§v.DPÇMÈĈÀpÌ~B²l¤à:)‚{yĴ§q}š,³mj™ÖyݤĴ|ġU'׳%ÖhħDĞÁŻŬ‡!rı,Ĉ˜ġz/IHJ£*£V¸göxŻŬ#6ĵWèĜx/3R-z Ÿ[Ŝˏ]ĈÁùI:˜ŸQ šzZü¨ıˌ„´V_–me8³OûüŬëŭ˜N…7 ×$ÔĦ(a# lÂD‚£*D/ġ”4³ŸÊÉjüÂĤy 5İ‹ĊÊRsˆ§uĥ'šöƒÓ͑‚ĠçĴ[ĴhŠ ĵÎÚ²ÉàáêˆLgż?Ir` à͔î@Z;ëp#ˆ…éRĊ˘cçN ġ†ğşÚ~İ·Vè­yÓs U fĈ½*o£ ÔcŞB<í^U¸B.~RK3-İ:”L­ÇS˘ Ò7N/"pX/–§ÁñPA1Ħç_݉c0$]Îíŝ|¸£{5°°u2£)c´Çq?<Â9nèÌÂ~àWYë·%´jş?ëô0¤Y †bħu~&à_ YÏv‹Ġĝí§ħ‹@R“¤3Ġ8—“¸ó Ó¸°ÛÀYӁt ÷Á çy? }9QĴ]POâdyħ‡°Á›pMʍìÙòˆ £Ï,½5úB>{ŬòˆùŸoË!ÁJĝ.ŻkD(‘\‘îƒ eÙ4<‹hŠŒÚeTX“$z6Ñsžižı ϊî˜'+Yß'z$!˜ċ⣏JtÍĊ˘ÏÜ:YôL"6Mùt”ûÙfÚÏò1ŝÔDĝÇxŞ#ħŸg Eô?Ó˘3ĥÎbüé‰ĥĴz€ °â÷ǟĴ£˘ŽŒëA\÷փd2Ċ/ÜIıhvîĉŻÙ"ģАĜYbQZö·NIÈĞ4gš@چ‰Ĉ@ĥ'ÜĠżk`8’´FA+ĉ=&ŞÜ áè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É(lıb><ĥ7`}rîĥĠŜâiii†Ux„+šĴÛVw´Ê NÏ ĤPŒ›OŽ?.'³q^k_ŻHfÓö1ğNÚŬáĥ=i¨YÜñföeĜœĵRIħ ]0|HŬYß.…#Ï*cd`7Ӏ!j…Òĉ´2´.Ckħ—`7ğ#¸ÙêÉ%*Ĉ·eDb8a‹ŭŝĝaìĜ·ˆ‘,¸‰Ċ£„£f^ĵì&ê[‡ÇYèo°Ĉwe€İL‰ä·\„q“}lòxW.ĉó0s…SQ~{.Û÷ë˘îç.¸*Éş)/o#Y6—d™¸0Àׯ# \̋ lÙë€ĥÄğš@T%!(èÚêë@Ñ} ³îµ1›‹Ş# UħħÉëpQÌN™ßˢ“ôU¤§e ċŭK;É(ıy‚“ì£ZaïĜ¤Ú·#ĠxƒĦ<4·ŽQâµCŒ'’µ=udŠájK˘ =áħ¤…+Ĥ]ÚkGvÓ1hàˆY—äÂHżHĈĠešù2­€šàÌżoVĵXċĉâÀ ï’ĝC`—.r$?Ê…·ÙĵÙNl7`ĥf}DÀ‘ĦmùoO ‰§”:ĤÍ_ו½JÑRštó6W)êpâ&vXY–Âı|çïbşàÉTò„üÏӅ„ôŜAİ xċˆ igó)ñĥŸÏŝŝ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 3034 >> stream xœV}XLi?ÇiÎ9RĦÙ²3)!҇W¤Ò‡Rˆ}× ú•|Ġ–WĞġ5…Hğаa*ŸkKµoa&MbĜvµ/ö>ó>ÓûϔŬk÷÷şŜıĉşĉœçÌsŸûŝŬżßŭ{hÊhEÓôEħòu)IAá ˙Ɂ‘Ñ)†µQXĦÛĞË!™ĦQĤÍ!j(0ƒïĦ …džy7%ÎOJNñMġK _—ħ>3"2* :&06(ni|Bˆ|€Ŭä)öS7;NŸéêf;˘S6T5†ZBRAÔxj)L…PİeÔ$j9ċAÍ£B)Oj%ċEͧĵ)ʇòœ(?ʙZ@M£üİ…Ôtj%§L)3j05„J…Qbj8eI˘¤Ô@ʘr$QF$ÈCz$MĞ8 Ĝ4 €Ħ˜L*“Ï”3ŬF2£ó"Fä'ú\t•5cĜSì+.‘ğÀàgñ7ĝ÷Ċ=†ÌĝÔxŠħżñ:$=Ĉß­´cPñ ĤAŬ&6&ĦPf&Ô Ĝ£4onuo‡½j ñ7ÍB‘Dü•¨*9qËo7›;*×ûKñԂ§ñğ9Îm…Ü#L*ŝĤ“3ÓÙ#ìSÁf•ùc-<Ö.ÒZˆ…Ç@Ċ6ĦëÇ/Tòâwċç•7nDëkĤ”óbĦĦì\푨&­*òëÈs+Žx!W³Zü@›Á‡ğJ·ŸJ/IûBŽÖ£ˆĴ„Mi‰éŠíËȟ|p‡öAwÍ.N"‘‹“ĊGD1ŸĈ§$§$ɳW#ž”Ü*ĜµÒċ¨Ñ0pJ(—àñŽÖĜ{vZßġĉ€Żó[ĞWë́ŬŭŭĞÒÀ6 #ĝ f’ĵzßĈĤ$_³YŝgTFÀıĴ-ŭv։T9"44ÎcudaqŞtËá‡wVNì>lÚ¸>&Ĝ oŻïi[sÉĉ”Ìġ¸÷E1ŞqġRYƒrĊÒ=R3(Kn&6ÒÏÔ  •Lƒ1.xŒ§÷z+6¤\^ŻTîù쌴™ËŜ½%ïÄGo-¨îà kB•ĉġjĜ§žóÈBĴR‡‰{„"|³ òrö żx_*p.z[Îı>èWİXۊŞOW7ñy+Rêĵ”ô›W „èä’ɽòW†²û áü0ŠD“YlĞwV‚ı}‘È€L›ÎZI} ›zdŻ€CKvÄe&flˆÍŒBĵWDĠ3Y•Ŭ·ÍĦ ~üÌÂe˘Ó¨ŝĝÂġa0/ŜnŒ`'ˎ×ÛY‘ {ìÈk^ħ=‚ŭ{½½¨żÊİ­t {Ĵ–lËŬ…v"^ñÉáÜ´Ŝ×°dĥJDŒ4iVyî2=ŭùÒ6Ä?ŞÜ°B–ÂĦ˜ÔÍ9ĜxsĈĝ-‹V!oŜañû†šµw¤ûCJ’jÑQT¸çôo ڐ“™˜›°î“PÄûE–ĠÔUœy^(ëmĝ îJşV 74L-Á WŝèwqQ˘…4\Ú"÷iï°tŜò2(ċ`.’hû…²pĉÔż¨d7V¨t\†àħz;<’`áȂ—ŝDĵ˖¨ôĴ4âS”µ'c?‡;şíèbt•,>Rrüpñ‘JÈҙ ˙ƒ´e„ħñ#Ùu=ûĞ´Òèj˙RBÛÑöĜˆÈÌ­Ë ĴaèGQl:›5}m¸'âí—>‚!`QÛö˘ùò:CJ¨E0kĦ…Ċ$#½\aqƒŜD4GpoÁm|/˜ŠŝŒÄïâ&P¸à“lLMHċˆi슽4˜†Ñ?^;]E6˙!‡3…pI÷Plú‡¸Íî=}!ëœàÓέ´P[$èÉŽĞ›/Äv¸Ŝ˜@›Lj˜ƒçĵ ÁDŬlİ!yŝŞh‚VŸÜp9íìö³y7ĝ=’Ŭwî·#^uß{Z.ÊÍ˕ġq^ ħ-[èN"ĥÏIeÎ*öœòĜù{QŜqi—/;?ñîakĉȽĵ›ġĞÔÂ*MŸż(ĦRUô -<ïfÀ“@{ ]9záÜċ‹ÇĞ>žÙŠÇHq­a„–FpB¸ç5+]]CV:öÏÂfÚעR T·2ÂT’Âl.üğċ>¤ş˜ÇîÓNx]Z!ğ°ĉĉĤ:Ԁ=SĠÀoäçĥµİŠ”„µËQ$Š-H>–~8狝eüßĜƒĥ­0µĦ§ĵxġp‚ÁĵàÇáô…’šÙĜ ží4uiŸŻÜl{.ûŬm mkV³ešûĴ&Fk°ÙÓ§·mVJOf$˘(ßn;ŭëĈÎ]ĵ T gûU UµZÁˆ ħˆongĠëdy~hġß×ÊG€èsr{Inw˜¤—ÏúZuñĞëH̓ùĴ&l#ĊÏû`²2"nšB ÷lΉ´Sİ…qh ?mM„-Œ‰$͞wĉ í.ä< X.ú"5+~Ĥ“M·ngI_ˆCö´ÑÍZÖ2‚V8$É› j<‹Àél;wĴ ú)Q+_&UFĦÀ("u}BŠ"-,;ÍBÁÇc*7~ùéıü+d`çû)]Íğ=¤A?(ĞÊĞ/”Ġ£û¨+¨Áö4^P=Üédüt“X_ŭ3ġ!vù†,ħ˘EWŽ@ÉŽ,únnYfĉòŬċgJ=ı‚ÜÏò ˙Şúü2)áF.ÖjĥσtœŠ†/È ŭMg)•ilïµÔöapMX:Ú (CsÖ²OŸ€ŭ“Ċqqs_‘‹q˘¨*†ĈvìȆé½ò>túW…Q`żN.²eñj}/ŽzEY8Ü+™éŝċàµÑµ_ê;{38ŞŠ?úGŬ½ĈïÎEúHqŻaÁp{Ż<Â×p+|̽ 1Á+<5 Tšp3ü¤7òBa›VûóâKı~?ñi|óÎĞĊ\†ÒǧÙ˙­;oüñnÒñ>àˆ†ßҚ·›ğšż%mU.É5ŸğÒ!âj°ŭGú[ĜĈ@ÔKĥy°í= ‘}6o iJŬ bs+ĵµwШŽ…­ş­ÜĤ­Ô] œÑ­ĝ˘ĊЍ°…Év[8ç ƒLT9e4ċċŞïQ×Î𽚄qXĜä SVŭ !Rġú5™;…†—½ıËĵ!Żû÷Üğ˙šk0o¤*ɐ›ÑĊ{5ŭ@öàí/+4×ßÔ˙öz !à¤şóáç—óAÈ'>bqbdöšÜy|'ğ÷êŝÒC'N\úĥ¤ñOîΊ[é-³_†m§ŻġÉÁSG lżÌÑÂQR…^á,ˆYì†wÌÇĥ!8‹Ċ^€´ç° œ!–ŜÒ0€ÀדPdô­Ïò,ž4ϰj›ŝG„§À4˙ÚL e^˘O÷ÒÙħFŭż¤?$Zž2M -üħÂ;ŜÇ~oĵuĴĜ„Â,ΜŞÁ­ĴùÛ`ŜSF‹c$oÀâ>ĝ!p@àè~Á‚_Êvb›j˘zr:ĈNĦĜÍ “mġ_íĝendstream endobj 36 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5858 >> stream xœYxÇĥ^akµ˜f,l ğI(—B 5TÓ Ĉ@°)6ͽWÉrÇÛ#lı÷^Á6Ċ@0'PèR7B 7@r“³yûŜHûOß7šÑœ™˙œóŸ˙ĴE”y?J$Y³· š7e“‡—ÜO¨öğÑ)8B8ô› 4CÍÛGó#Ĵ r( ÒkIi˙l—. Yş2LĥZ&\ħgm„ëşH7{÷ġžĵĵ7ù|àğÙÏÑ?`‹óäSĤîzwZôôħ3gÍ~oÎÛóĈ,Xĝŝ„w–PÔ۔5†Ú@m¤6QݨP›)GêʉšHmĦĥR˨ÉÔ6j95…ÚNÙRSİÔğÔJjµŠšN­ĤÖP3);jµ–šM­£Ŝ£ìİġÔ\j!5ˆZD Ĥ†PK(Kj(ċBYQRj'5ŒbİáÔʚ2£FRĉÔhê Š£úSÔ[Ô ‚ù*Â˘hQwżùŭšÌ&šċš›™×‰Šóh3ڞn—ĜJÎ3öŒĤ˙ÂŝJ‹9ıĉèĝîÀœ/mtbpêà˙ÒliaÙ=tábĞ1VİV¤Ħ†sĤv~ĜOĴ”ËÊĜ3—W°‘o=ĠşÌĉ ›<›ç#—Œ<9ÊgT÷è!£F·Œŝż7â m°PÔĠÂ8…¨Q6’[ÙĥÍEÒĜB(OnNPù ›Ú%$%ûc‹rëH:&ùùÖ£RDtIjm“#oêħĤÒUSÄŜräë׀J^Îòx lfñPş$m05û£¤3eùÎÊdFgzÔjĞÇĜ !=.‘£n(è·Ÿç²#Ê׃“^iÌ(sċÓħAÄĥv÷c¸g—qïÑĊä$ä—ü.XJK›ŝuë`wwqĜ‡ùIbÉşFíş‰şuĵŜr°ĥŞ­îk@ĤqÒ‡…,:çyezŬ­úĉs¨›ÑĴżƒÍ8NÇè-•òġ}ò2hİ èsßßĉ'!Ö+xĠDî°ÓÒÛw*×ûóU¸ƒuöÜ4‡– £hİùFÛ]Zûİj¸¤}Ĵ ™àŝ,XNù‹ħxÊl‰-ŸLs0ò,ııìt‡e˖9Üxp˙âù+W/ĜÏàÈ8T “ĠpΟ’ÜÀZˆÓn4`öslî²'*›“>mË | ¸Êż΅n 8y 1`öô XñK‡Ï°[½ÌÖŭë3ÜU‰tĜısŬŸ]9·j–‰ġ‹jQ§ÊÉáMl[ñœ³p’@5žžHáÏù5ğWmA ĤÇMĈVx @_˙hq1ŬMܲˆ.n҆ÊıŸqӍÛowN˙) ÉTŞ ş8ĵĴ^-S[]WCZDğÀŠEŬŝ-a%nuĦ9SJöì_S€:˜úÖĈïżÏò‘+ıÌ ”‡é›ÚMxµDúu j“îMN<*ĥ£(âñċ1ӂœ‡&ñÂSŠß÷eÚĈĝzOZïVuNÁ%Wî+B ñ‚Ÿ&‰AÁ­%ĊıyÜ)ﳨ’„àüڇ‡ ‰rN CV0Iƒ4·üOG`ك!(>Z‘î—Á;ğÉ}³ġÔò3%ŻBÏüZ‹œô†Î΂ıdÚż‹cè1×½Ż}{W™‚èÜ îY* äµzž##Ĥ£C ;Ôâ­Ĝĥ>ûŠkûäa&\9Ĝ¸*ŒP;3îd˜Ġ_×Aj$ÒŻjŽ‘Ëú›PâmZŻÑ '-ힳhŻÏ"ÔÔÂAµä+²é)—Bn<œÓÜĊI—dW˘òQ·LxPĞE '7vjĠg0Ĥ9P&ñÚES•ê“cÊdÜO]²Si¸ Q‹j…`3!Mx[{ĉh[—ÖÓcħz,¨Ċġ&[[˜d ŭ½BÏT…l*P*l‡~u]ÒhjĦTˆ7r„1lĞ<Èhá½gû˘?IjŽùh_İ'òBûb˘7Ĉ{Ĉıì e2èmpT|ÊÄŝ ½‹jQ#›ëQMbÏĤ eċ—ġÖ|­ĴT“r•Tfż_^ĉw•£j”ÛyµnĴEmŻ6YŭPmuRC`!uJÛ´g‹Ž GıxIpĝżıcı—q$ ¤_VĴP—Ğ…jQ—F›@$ĵƒP‡i:Šœ2nlÉ>>' Žĥ‰ÖA³}R$ž“›gBÊz“KÂ.–œÙŸY”“[€J‚i¤ö×ÑÄQ…‰Ş4òë&ŝÙZ™ž‡ÈŸlAL Ü-0>4=·Â:ŭ`h~$b‚"#‚ŬZvŸıÚsŝÛ&Ŝ6–ĦF”“i“—Yœ‹Ş™WÚċšü™ ž bĞbTò¸X$Oä’c˘öĴ@Ì{+ŻÜ;Ŭò+ ++Î@Ù|eş2C™˜ċӐPŠ˜†Êʆ› ^şš‰˙k 1-?–ùrïŻ½ÏI0ç’X #Á,È%ÍÚ8ÑĤìFڛ¨Ñ„€ xµuœ[œkŠ?!)Ħ%Íœ­šU^ˆÙ¨àZÔÌ÷É%a†:yGÍdO^RJrÂTŞÀËĜŬ:{o^H3jFyġمÀÑĦš9µŒ²Ï‹ŝŬ_ċü9mYKŻ#M Ê?ĦéÉ´ĵ­Ĉ‰F³I“P^šŒ‡<˜Ôñ²öv’íŝ(ê(g`e< ĉ°Ò6ǝó—ĴÜpùŜ}ġ½§ĥ8ƒîû^%èìnêS²IÙñÉ áM̂ÛŽäÈĈö/‹eR”%}ż ,Š=ŞP-²i(Wáe­Ä$³Ĝ‹0H-úè Èże&¸\§u}ĜĤµ(mDs(ž0pœĴFÀĜŭ€Y]qçÂĦOÑUtdGîm`ĊФ}˘2’Ŝp–…£áĜۇ.|´*ìa]uċ–ŞX´ ­Üë”à&Ÿf#Yuü‰½gW¨]@× n*üŬF-{‹ v [äŞß€¤àÙ k„Óìùy(fÑüŬïrÛ&µÁSÜ3Ŝ¤Ĉ5 ĈxèŝF͌ûŸ o|Ĥlĉ²‚Ğ˘ĞSQ_ü’ mĠĴ DbI&,bÚ>Â8,˙+½ ÖFŞ [˘ `ÀµG mq]5™É/è'GVmёEÄE˜˙Ùú‹'/‚ÓE+µĈŝĵ= ÂğÂ~aÛ oq’íJ ôä‚Ê} ĵ3e鲙žE~ċa|btB A{Ş‚2ÓWíI³C1ÌÌ_@ Vżö~c:ÈÙÒÒ3I(%eE£}(^KE¨e£ÂUCLKb bkn|ךĜUÏW–d+÷‡T% [Q^Ëc;,bwïŜşuwWOOW×éÓ]ğı_°Àş­Ĝ=ŝeGş:ZœÎĉzI)Ħı°Î½$ì Ĵ?ïaíŸĥüošÀ˙ĤÔim+˘ĝ–i\4%Â'BĊö@J$@ùfp)é^1Ħèî‹hb-×X³/‹‘ŝûL[óéG~ğèܟĞŝ;Íç~“EµM!ŒôQ5Qà#Ñzä[îÇHġĞhŠ>8ê|….ρgì.w‡İÜJpżB?<ĵaçĞÚŞyaŜ/“S~&ì6hµ·_ŠBlRÁIñì!RԈL^¤I§áñBÛ(Ğ ’É‚‚jd55ÜË̳:sö_Ŭ}u„4X‡,jM<ìÈŭC—ŻĵœeeqÙ; ĵÚÑ1Ĥû/ƒ¤djh6—P–AH]× Àp‰ĥ'Ĉ$sއ7d…-^8ÛħÉ3/dWsòͨü´+ÑY¤yhş¨¨Ĝê3rËî–şşİJƒıûŽdTd”fTzÚÌêú‚jUQs.wÂOš”eĉúw ġR¨ÓbròюGw^,!°\$Ĵ°L'ĝ=O ï›@£häââH”T,JA1ÊèÌ %Êc¤ÌĦ _ĠŜQRKyh´/ÍXô †q`q™“ŽU ˙1=×k`¨öm&¤šôi#hŸÄ$o~ħäU§ĠCûä[MÂÖ¤a#r{èë]™ž§ˆĜŠ}ĥARùÓxl„`.>h"İĤ=ßFÉxŒ~Ôd‘ÄNöɝM(mšÑĵóMúö 2Ä~ÚJׄŠyĝJM‘ÀˆW‹k †ÜħJ[qtşŜÚĜ{6áôĜu[œœÖù‰ƒM&şçµUi<ôŝ´çÏïC9xĴ_÷ğÄÏpS<üeŭċx¸ÉĝŜëâ“ôç§{ÖGHğu<"GD%HޘÏHpFÛ\ıô숎$|“I*~Ŭ´O"Gùê7­FyÜ#yġ ëñĜJ¤Ŭwœ8\YkÏá(Ib !ğ½ĥèo–hÏY.œQ‹ …43Aġ²|›<&¨÷àkɛSv§m·É ÓÏï§ä„rJ /ò™ż;ĤŻM;”r<ċÄnÒĠ‹Ĉ½TnD*^I_í+ÈRd…w iYòk³rOƒ,ûHĥë),ËNʗĠeUg–_ ­ó ˜ĞŝmqE qEÄ6­ċÄßFÒ$êŻXB´ob’˙Ÿ5ßĵÄĜéĉt)i¤òĉéP”’ŽċX°NŒCé(œ ̎íä@9ÖÁ$sWšOCÛcÛĈb?üàħX5ĦġéjĞj ‰@0—ˆ’M싅Oq_×TùnÖAĵÉJmĠġàq‘Dúİ…,ÏÉÉϚۏw#ĉËc+Ö.ZıažÛ–Ò.9ŻTĉĉ+33 u·­WT†Díġ˜ÇÄ0ôÙ03ĝĦéóë0ĠNmuê.Äßu$GĜ,‚# â°ùĉ­^\ ĜÜ˙ĉR‘Ô*NIN‹G‰Œ´MV&kj¨Ĵh>áwnE^C°3޳%?sÒ zö "ş~ŜÚMË'ùüúÙ§ŸžŭĠğċڜÎzÔ˘cšn]×pS/M'—FĦD.ŠàwtEUÙô†5ÎKĵçoÁƒ“°ÚÁÄ!ŻŽvċR.ä ‚•??Ż(ÏÊD%Úö^„‡Ä–?|ŭƒ ×ĜƒEQħ^‰ÎY\vÉ Uí­A6•¨°PYËÀ&üğyDv0ġúçD Ò@Ċ]í?Qá" ñ˜ş9‹ÇÍÁħĝŝt0?ŝQÑÑn.KΘAš‹@˘$;';•1Ҙš¨šÀ`EDÀŽÖ @(B’-ܜ/ٍ›ĥ.Z°E}ŭŻ_:°Ù݌˓gñĤ5]³nÂ[7a–B$ÄÂ6-_Çqötĵ%>Nu ÎÏ{ÑĊ/çPhA²ñEûü2âcpëIúíò—\_ÄFGá·Äğè8Oäáى ĝƒt,,/ŞnÍoÏĉ ˙%ŝá_ŬWĵVħÚ &éŽcĴŒ°B_~ĴIùÌŝXrCö³àÎ=^ÁAŜaĊ§ÒıDŸ° €˜ä´˜dB&ÚzYŭ´ÄÚ@ı.d+ Eï‹*T ıĝ Ĵ²†°:?·8UÙÔɋbÚñDPŬÂî{“â“‘Â)ŠóRá>ö³ÎMSe Âĉ•%5ş*şùĉ훢ÁÉLˆ†²îÚò˙”Žu' ´@  Úµ÷›dŜá…â9,ñ^ħCZÉĝ”.>„:Ġk;l'•&ìOÌĊÖ÷\C?£[Uêê‡ouù°%7‡PN“ŸR,›³qÖœÓܨ¤S_]<ùóÉŬËżt¨CLŝÊ|žngEJÔÁ/„”ÑĜ'kžlżŝ~ob‚RċIÑùÉŞÒBÏ:‚94-·“ït[ĵŬĠĊ?)%5ädâŝ†šğgï}Â}ôMÙ}tM˙넪ɇèXï?ɋdÜ7ls‘Yi(.– “yEı!ĉíI˙†7áÏ~|ÖĠâYÌÇċ…ĞHc3oíLl†-Ìğuê‡.XrA4ĥĊoL·Ĉ+ñ „GÂ[îžmĉ ŒżËÑu‡Ûı›_ë!qnp|°ĵŜ/ÎRÒj ÍÎÂ|sÀŝùD&ef+Ë2ó¤¨˙u\\Œendstream endobj 37 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2050 >> 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‹˘í‰ žOç<.ŝ(Sĝ’Ċ1Ç"÷éQ‚¸‹\Ç\5­‹cXžf5܆ıޏoüŭ3‹Cƒ¤Ġ߇›ÔŸ›ƒ}iÖ7aŠrŸ‡ eÈWİzïıO‰+Éñ߯֯/.éÙÚnĜµêğ† ïQĦ-V5wÖĵeşUŬħŬİvl@;UbJŞ{6 {Ġƒj`T#¨*l@E5ħĊÌ=axĊ{T(Ⓧ@:!/YfÒ̄ĵd™I3ò’e&ÍLHD– U·ùZ›.V/ô:ˆ R$/vF;“žgÌòwéyšġ•Ġ/èAEendstream endobj 39 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2450 >> stream xœ­Vktež´Í0@Ŭ¨İî ˆ€ïˆĞ•;ş …rY¨-mé-M›ĉ~msOż\›ĥı4iÓ[ÒÚôFf‘ĥPŞTtmê‚Êî9ШĞìQë9¸ßĴ?vÚ²ϑ;ù1ç|3ùç}Ŝçyĉea)I‹Ċş÷ğvñ+ĝO=ùĝNaŜñ҂ٵ’Ò˙ĝO¤&ƒÔ”‡ϤÁKoÜóé½sİñ……ĠĊÇ × ĞŸÂ0ŒSÁŻEâĵ|YÁħÂĠEĊ%ÇËW`ĜĜ,ۇíÇ`ħMĜfì0ĥۊmc™°íĜl'öĥ ۍ`÷1h˜[?v“eM“É˓ƒ)+Rœì ì6|=~żı÷§n^Ĝhïâ4]B·Ĥà•)ŭl<™…pu•&•ÌHŞ‹‹E€0˜]ŜĈp}+ċniàñ~áîÜYQİ)jŞ% J,)ŽĞö-ĦsHzşížH=i÷7OáħÊuš:“EGmE½&°WÒĴDœÁ³²ċ“Žk½—B'úÇFÑêÑòrò"ee•@Ld÷”ĈŒfòR˜‡†édÚœwN‚£Eh9˘ÖMnŭ 70"·Û8ˆġ$Jyùíq˜ò d}<Ѳ÷èì.H0Ÿ˜Ûİ)bŞvÀAΗÙlÉ>ĈIáXŽM ò€€ŻŞ’–İ€šù’lžˆ›tµ{χœVÑlaŠ˘’[Jv1<~x)¸÷‡A4R ÔTŝ6Y…Rk!‹öşŸYıŠï@}ìC's߇IÁ%‘„f>“ ;Y%4F‰ò ) TĉfÏü‰Â‡Ÿ9ÀÁ픸Ġ|=_o!˘W Âb´òÀ-Ġ…{zܧáBÊÓÜÀKLE Öċ#Žx–­ˆÛì ;"LêĈTkS…ËûÁ›Ä†ñâÉ>oÏ[d“¤S8†AgĜ×ôLñ?”iġ¸!‹ßŸ~ŽÂ[œAŭpİLĤ`pԒvU „Ĵ >œŒôùbC7Èô=f§·%lÑàĦǢÔòY0mîú “l˙tß _½^­³èTzwÑ£²ƒÙÏwôĝÒx%–ÀÁh}ĝCšri’*÷I!İkwım̏úúĉ²s[^ıD£šÉ²žƒĦaËÑD­ËüpòO§)§Ĥ=˙<í'ŬŜ–¨o¸ ´>|WYÎĦ€lÈCÓPÈtË{8˙ÌúóĈÒ"U5<_´:m.àâÎʁLhú$}Ĥ+ ĉœÊüˆñ&>)rÖĝÓ(iÛ!ċ;CŭL™9ÑU¸gΛÒİS`žó¤oú§ïO?KżĤĉ|Gg$*À PšHéĤ ”ZŒV< ¸‡,§[z{ż ğŜk üµŻŝïŠmBK™êÓÑÊÌÖüp{3†~Yû Ùò°ĉ9²ïżú—·'Ñ×.Ż˘˜ÓábxF¢җ9mŠ ˆ4âe–ZĦŒ‡6?`İ5×0™­t+;{ħ€‹ œóŸž³ğí Öb^ctß\:ĊŠ} żû:™žĤOr†K£/<˘Ŝ~DKêyÎPM&ħWV1܅îŜÁ÷˘Ğ´ rÍÀĠ£Ugs¸lvà'zŞċ⪊œŝWN]ín$›O7ĈÜħK§À½Ŭw2Òİ?éşşœ€p„ëL&“‘y ÊÛğ:B}·_œ â´é8`’ĉ_ôs90™Ŝ—àl™R%3‘eùġĠŒ³ 6Z†ÈĠ÷\Žz;ú(>b›4e/!à*@ ÛĴvНifĞ˘UP)ŭ 0W½ûŭ¸—ôÀŸ8˟CìÍdú£ıâĜd]c˘y´y_• ş4ĝeĵŽÁâL˜ ÔR#İœH úíÏaù5ìÖĞ&wëG•?ܙy‚4ĈLû'Ŭ“Ìg Ê>­Gn3Z ´€w[sĴe˘í%âù‘ĵì˘ŞÒ ÒžÎ \"W™;v£Ä\S€Ö?°h+E;+ôż¸"Vׄìĝö]DğC&â _6İ(áĥÙwtw{G{œ’g[„@Fĵü.pt9Ûgñ†Äù¸j—°>§Éô<Ìé/2 Ÿ€ĞĜçqO?ègj(>~âĤËĴ Ae@R­—hMä—½únžÇ5 ¤¤x¨ xZĊÎÂ5%s MT7­BP;êƒ9ıìżüwœ™ú™ñ îäÌn´zܒš&z§nôĜ­ĝÔ˘ĝbrQJ?uaÌo½Ö&·35ŝ wfçSendstream endobj 40 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2880 >> stream xœW{\WžœŒ€Z™Ĉ˘ĥ3T[Ûbm­­­yĝŞŠjQQ‹<È+@Âû!ĦÀMP1A €ÈC|Ħ˘]‹–:.ÚbÔnmë£/Ŭênğ{Ĥ{ŬßîÑĵío“?òğwîÜsÎ÷óáè@ˆD˘ÇVĝûËċsg­’E&dž$Y÷Ĥ"œĈ7ŝşl r#ǽOŽß /OünÂÀc„ġĈûÊ’ÊäwRRCBÓ2Âe‘QĞĥĴŽġÒ´ç_ ˆw‰éDñħšXCĵOÄZbáKĝAÄBbħˆXL,!^!–ïŻËOŸOL ÄÄX‰p<#‰%Z!âĉ9XÄ Ċ G™żÇù™Ü-K"%ר%T÷ĜIc˙î¤p~ËÙàâïRárÜċú¸×ĈİĈ…öñ˙q ½ ÄA?·’sŭÑŽdy‚ŜÇ×ĥKÛP& ÉäíġßôÙĤR1ôıHĈĝ™ (:ş Ġ²ûp¨msÈÚ&Ôn}“ o’nĵyqïÑCşä+˘%tQ–\8ٌt,xŒœd8 ç s½aeàÁA>Ŝ–˘ ĞOûĠž6:†İ +ŝ‚œJfÇ —˜Q kşĞPĜV€HZ äİ—Xè–GĵÉ< 0¤/~İ÷g ¸SúÁ–O?r˜DҎwjĉ$ŽşPÈÁNô‘ 1/‡X)ŒŸuS˜š5ÇoÎț7a"³ \:ÛĦŸŸ˙ùoŻž??¸Â“ıwNâ`&'GħÔq¸ñÛĴw›óvÜš!dè[=É(ċ! ïÖ˙.†Adk\wĈDĝö@³ &Í^²|‘Oĕ£Ì„~ü#§Ï ,yy˜ÈaEûî úy^Ċ“ÒĈô}ó_~?0)‰1KèĦ=ŞŠh‹lÀYp˙;Ğlöéö§a, ˘K—n1šĉüZD5ê[@†¸s8pŸsPĊ=Agñaà*EĤü½²–0sxÙ"풪••h/Ġ`jż}£4&]ÍhbQ˘şIÏ~"ÑĦĉheáւ"&´> )…½’߈zé—ÌkÙì‰ĵ‹[Q)‹óô3œJa k?ÔĈ#J†’ÒÙ9z[’·W֗š+™cÑB D^ğ~è´Ñy’ƒ İ˘ex$§ù ˜$ŬòsUI% ͇G&ÈĤú Œ,¤€§D×,„-GY,öü‚Ô#“ÌjŠ™7W’?šµ_á4–-çÚñ7ĝÙc+­À œŸ·ìLĊڕÏrï‡J&‚¤í›%óB-- ì’=N1ÚÒBxŝ ›HpÄ_WËLȀ& Uw#|íÖDZá|ÈH-_(ĉĞĴFĴîb'Û%‡ÉM¸kL YԘĠŻjË:QXdèŒĴuIŻĞŠ2İrt9LÚ(r"GY1²ĝJıL_lB“÷£íZŬñĈĞj­FOİIġÖòhƒoÍúíY½¨Qy÷|ċf´ù5BÜ)εÏ)oiüv+Ù²ĵÒí*d’+ˆñSŸA^ úd³IğW juµĤJ]‡´ˆúrÄÖŻMÂX:×ghù/Žš+ŞÎb ½E}S›v ĥ°8HQ R†§QtuzTxIÎԀŽÎà`JmËĜO8q˘ċ?˘°èÑ<ı[BĤ£¤.Ħšê™?‰˙Q œ*.ż™sŬ/Ĝpöx”Á`1™!`Z¤NĞËgˋQZ‡=ܲ6%żS$PPTSP Ä{œ›ÎŠfiEie%Ş£ì_.Ô¤ê Ĝ²âfáepÇż¸•ĉĞ BE‰óòÒ3ĥ$*#Š*ôn%mÉ:˘RÓXÚÖÜı˙âY#³ĝ5u¨ •i&WmŻĴ@ġ”½8fè[b>錊”ìl¤Ìc҃r#5wџŻkû-uĊ%;ĜÒu ÊÓÄ2eÖïjş8m‹0ó:vı9‡im7ëX;Ġµ@ĞğrżôcɽâW¤1Q¸BgáíDĠ“;“P:ƒż'cs "Ĝ’4¤°bŻgL+ÁgñĦĴl”r&G4˘zŝMĥWîì°Ï´“V~]÷Üë Y6‘àK~C$<ÈM{Cv$š(~~ĤYz˙í àpĵ×ÔÜ"$˜ígF5{Â\)ŬjÓÛŜKWr×sÜçÇÖ­a GŸNtü2T_²˜Ħ*IV1İİb/òíËĵLAİ7Ħ.pYò=–â Ï ½Ïùö3$(hÊĞ@ĵ ´%N]ğş ß};§ö)ŽßNÑÓ½ƒQҖ–kv°uŞöìDŬڑӺUÏ6T j£)SÔçêeÒëM,öw— dèJb}pï‰zöïßÈŝƒ4Ô/ä9†^š;cáŝžî½ûŽĞُÈkàˆŜ²áw/Œ{żüθË~Cr0ïŭӞŠ[ÍE Ħœëז £%ÈR#xâîÎ7Ŝ’î‰Cùùñ(FhÒııۊ#³“ĦATžż‹Q™2wÔRôbïƒMÇNMùfŝìÄàĊ÷şA‹`ËpW‘BÒî„uƒĴY7p²n´=zC XYL „] ¨™iÂìFћÑĠeŒm/ ŝ´é“ƒ,~ ŝ*Ŭ²êf1„‘7zWm²—ó@¸BóçOó!£­xĈŭĥ§Ùġ]îÇcíևG²Ÿg§ùİYaŠ‹S(ââL ³Ùd23÷Á‚l6 Ċ{:΋ùDëXܛy şCÖ[ŝzƒ_­›Ĵ*Ĵ ĤúI͜Ĝ̎#ޝ²€³2rĥE jY½ıĊKÑ|Ż9ĞÚ+òĜ}!-=*·m‘)ı.S—€bİÀÍï{‡`qĊOL‰¤!rtì´Ä:uiëJğ*™ħœêˆpœ>ğ~ŭÑİ$v <ñşá9vħOĵĞÀí֗ígh¸(:É{Šù8ĝXÚ-C[> /W [ 1 2 1 ] /Info 3 0 R /Root 2 0 R /Size 42 /ID [<4b091d837945aa5ec6b80175d1873c07><67b66ac702c34eb7f5a9fb0ec4780e0e>] >> stream xœcb&F~ñ‰ ÈcÄö#O™X$ $ĜE€÷ ÁôH˜  Á$€×Ä,4ö , endstream endobj startxref 30559 %%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-intro.pdf0000644000176200001440000050625614741522255017411 0ustar liggesusers%PDF-1.5 %ż÷˘ŝ 1 0 obj << /Type /ObjStm /Length 3501 /Filter /FlateDecode /N 80 /First 670 >> stream xœĠ[msÛ6ŝ~żßÚNĈAĵĵédĈŻİ;q,'MÚÉÜ(më*‹ŽDIŭ= €"EŠe+io† ,€ĊîâÙ]:d“L Ĥ˜ˆQ`: ™a& XĢ `1,aBŠe‚…Já2h‰J&u˘™PLI‰>šİ8À³ÁÏÓôĚ@c‘0£b ˜‰uÌBÁ"‘$ ƒGaˆğÄ]G„ER)jİ$dĦaQ, #Ô>fħÀşÄ"ĈR0a‰—R°8֘\È…ùJÉa’Š% =cjA)Z"=#*ÄèjW£ –ÄxŻ*€#J €Š8‘DX$–"f‹9˘`Peb ”…Œ S ,"Œ@9 âYĈĦÓ°l¨ %ĉŒġ` ËÔ B•"փa”%¸N˘ Á 0HH…5‚ƒ(hŸ4ĤaplöD­1fnˆr’€ó Ĵ°ÌĈÑ”Uh"ì? ğC…ÊJct…PVÄÔ”UL[(İ€#˘œ€“`‘AŒ]e-hû@Y‡4")‘Ŝ€²VĜìŸÚn% &˙úé'ĈÏÓĵ?ìç}Ĉì’ñ‹ŝM:ƒĵڇĞ/÷)‡¨g7ìéSÛċpšöóQ69êç)ûŝèßaê@µTÉ^` ‚ï~í²)ûŝ*}‹Çól¸İÇĊ4Î)ş<ğ8cÏn³Y>LG÷9äáÇ@ŝ(~XÌ!›Orŝ|4œħßĦZ4áÍ‹¤8D7ċVĤ\…½ù'×Ò¸&Ĉ½4vÀŜÍĜĠĊ.qu‰ĞK"{AàïÒߍżğQ ıŝŭŬƒúğòwOOzzÒӓžžôôüʄ_¤Ŭµ§§==íéGï}ħħnŻ,äé$Ÿ1Ò3ğûçépÔ?È>ƒ½ÔÑ`úôâ=uœĤÄ×î2eó餈ÎñçüY/§½H€2Ù'_ÓlKsäG'˜Iú9ɧOĞ“*ĉôò✉˘˘$ìkú³ÔÒĉ/_~ŭîÉÙyŻ?™‰`ï Ña2Ȇ£É Iĵ›Èh:ËoûS²pvZGİ0ˆİ?ëû&°*Œ÷ĉr;8Ma17èŻ£a~K²gì><ü'­œ”żûÙ=Ż´‘bı•1÷˙úŸŠIZ4Œ•”ĠqBMOöDk?LÂĤİ@Ù÷ï FïÏ´ŬŽƒûŸÓÑÍmñVÑv~Ï÷ù?ċü’ĝ gžòk~}ÍÇ|Â3>ċ3žó9´œxNäö0%~2îߐıħ<=(„ŞLĜ!Ŝğş“Ñ8…4Ş”İŭğ´mïOa²FƒŭÉÍ8E~>šÍ vËpĴáM/OïŜXU­ljE2vÖ;{ùòĊ“£ğóĈ:ĞKY5¤ĴAU5) ħŻLˆ{½íšG…„´Ño ].Y“ÏÈa‹Ċe蘌#K•hkí¤/ĥ=é=µ –[‡mšD½İEġNs0öv„bşÇú˘ÎqNĈÉR/*G‡½ŻV_ĥä£6[÷ùÖ?šcC£\Şm—4úñc~ŸA·áçüĠżâŻyŸàĤ}ĜԛÔ~€c<î{ŭdww}>„°äy:ög·dFĝ÷ ĉÇżá·üöËŭm:á#ŝ_ŝìĊ,Ĉd4Ia62üÏï1D6ä÷ùÌ’Yú Íg£Ï0)ùí4MyŝgĈçü˙“ĉ_ĝ_üŻtšUmM,ĵÒĜì%2&0ĴDŬܸ“µbnÚÌÀZƒ1+ NĜÙàĵ;x~|òö íGžNö.³ğŝ¤jpü‘Uœ¸ipü\k:îhptT(‚ĥ¨ëŽŞ¤PŠ0€˙ƒ”.ûLpxKƒ#–ĠÒTŬ$­€5Ü “Sƒ°ŸJÑĵ5í.°w$èX%Ċ§qò´×nj%p,LPS›À­@kŒİ¨ÄBJ7 m<+{¨„Ec•!ÀtĴè}lûhMړw‡è€-škD´áÙÀżSyn÷SÔ—Nè tıšĴmSëUUë 0mĞÖ˙lġŝ š˙bI÷ß_ù[X€ŝl0ċ£ñ0%c0Ó|qŝú?Ì`Ĥ¸Ğ›ñfK0™ß}H§³Ñͤ4 BÇéuîJÎyKñ‘œgy:ü0^lËâÁ5ĥOċ{÷r}™O†˜Ä ›ĤëL `–75fÙÔ@àm­Ŭ%څšħ1ucÓf:›¨ĊĜ·~óÉíoXžĞÓŜáċ~ĠĈ]Ĥ7óŞċIê–gÔQìĦP‡tNÛjÂŞϕÂPĜc߁–:è Ğ `U´wTĵ%"‚Ğú”޸ĝ¸·Ğ×Q”ê<eô m¸#°wg\³ġEżÀ_pÚq;4ċù?óGĞ{ô9Ż? }`Ó6cžóŝĝëÚ:‹Š>6MĜŬÈMİ4f³1ŜΐIÄ-IÄ62á*ÌTĝA 3ÖfOşš1˜’Ž˜éâèìĠéË::£qŞá€€mĥ^Ŝ—¸ Úò-µĠ.Ċv˜iıï*­J•~ħw뚪}Ž]\³ Ġ1£Ğ‹kÖ_#;é/énĦı¤µƒ& YᐌÖú!wgWƒ`K[›Œ6²\ĉ_(×:‘ïŞ`:Ĝ„´JšÚv¸˙ŞwüöÉÙùy6ÉÎòfà J1ٟÌFċ‹Rç°× kÄà:+µI_ˆèÊ÷îİ­­+­şš­–İµÍ˘ZÛF{yœ.­Ö]uu1ÀyUÌOnèêT˜7ŒĤƒù]Cyìі~Œûw¤CMŬÉjğ×Ğ1ĞġdÙe—…ŠÈF€*5Ü<ÒU )°éBCÚÄ´kŒPnFÑp ÚqùŞwqúĴŜ·PĠôä dBş)G,:]R- ­Ñ”Ĝ*έ›ÁıHSzŒÎ ı3‚Bĥ-'šġĈùé %.ĈÎ7†.m?­ÒáĠÇĜVƒ7:‚×m“- ^)´ÓÎG×äÍ'É \'—[Sôċ(€U¸Ş I°) µĈŜ˰†Ĥ„ĞŽcigż,ÎQVâÜ"Wk94‡m=Ĝ[IÀ­ ˜K(ĦÏ]ñKÀ[*êµ]¤‹f‚òĴE™²•E9aÂÇKE߄EU²e–ʧçŸŞÀUúhĞ,Uİò§ÇÇ/Ŝ<9ïç·`,üŜáÏëÂbî]‰=tĠ˙ĉá6İî¨˙Q¸9ĊÛÄĝv˙S6yI˙7‘ŜR¸Ê=.4Ú ­gT EÓÙÌ9KéĤxáÏMĦızÎ)Ĥ$ĥÔt°’Èt:Ĝe£×)d˘KlnĞeôÁ‡nÑĦeze%rEßzĜLßBJS—şF°ıuÓ;G›7 [lvÎ*N Ôĝ%êżŝC™²Ù ]Ş0ïÌİŠÇIċnĉzûìş?žŬGr꓇s°ê8–\kr'Ùwd•;êÜù_d<½ĝ¸şĝäQ8˙ôì·ÓƒòèßÊ6×µSE ÛĵmxµUŬü+1ìĤĠ qŻï74v(ׇĞù²é.6VÉ\VĦë"ì[Xû–oiġWxá+m'³lò_ó–Ŝx‹(u vĝLxö›İ/żÔöVĞr¸UÖU;ĤbÇ*_Ş]÷Ŝ½öüWxìkC]ĤÁvŬĝh­ğ*/“ĤRq•÷5…[Ô.·j”ÖŬ7Ó[uukµîjŞñ2D M]Ğžž˙ŒĦPèġù›jêf“ğĜMÇ÷´ĞĠVÉë¸.ˆ§˙ŞEÈ:gq6:%Š’·Eı[à^ ñކ€_Íüv4‚Ú‘Q¨ĈÂġCbáŝ/6ĥC€QÈôÎĜşÚŽgŸŜ ûL9›‡ çŻÇ–6i[dz#ĥTó·Cĉ­ÔdJ´#ĤTCĉĉ!!óSväzVs÷ĴÈ|ŝß2eGg5û̇üŬ·`ÊF$;ò>ĞácM;Bv x=]_§˜1Mñw"R¸³kŭ/˙àrAâ!_vD  ìzLB$ °É;÷Ċ—ñîïEÊŻüwşšCmĞÈ9ĵ^MìĦnAendstream endobj 82 0 obj << /Subtype /XML /Type /Metadata /Length 1168 >> stream 2025-01-14T11:53:49-06:00 2025-01-14T11:53:49-06:00 TeX Untitled endstream endobj 83 0 obj << /Type /ObjStm /Length 890 /Filter /FlateDecode /N 79 /First 681 >> stream xœĠ˜ËNAE÷ùŠúş^ŭ‹<È*‚ì˘,EÙà‰ü}n,fd°Lh`ĵĦ/ö¸şêtĠĝŽĞQ˘êTĠL˘…j!)X*İ[ĵîI¨%r”Mİ ÈĤT‹áĵçÄİ$j™˜kÁÚµJĴV’Á9%b3üILì-„g ĦÄ%Ċ5F\=˘Ö•ĥ!EìA¢B”Dhì*Ĥ!˘„ÏȀUqƒNR-’DŬm•m!MµÇ…ÈŸT2„$R¤PŻjEâ¨X]C(D a¤ıĈ5NZ5D†(!ıe'•,rai²M˘vÄ2­!„Ì$„’ıyà#ËÁWĴhˆLVÒµ­8([abÁñqœ klœĦğ„0ˆÂÉsà·L^"1 ñÒB r-qhrŠÄñíúmÓ:áâ4Ĉµ.av¸vë"Iݝ`ħ™by¸‹6ħtrħñl4Ĉ²>VR'ς#2'ğ‰˘“cgß1Šg{ÖYŜr%ur²,>Áµß^VR'/ż…Œħĵš›í8P½\N\ÎĠċî2Pğ=&JêċŠuâŠu\ñ¸6ġrÈ:qÈúl‡üb?1lë—^ŝ×&ŝ×ĉï7Pp/ÏkÏkŻĉyGċo+³—‡µ‰‡µ=ô°ÜËÚÄú\=ìcß3[n–ÜËÛúÄÛú›{Û§?üq/ßêßêoî[ŸîUı—Wġ‰Wġ7÷ŞO2e›XzùÖ<ñ­ùÙġ?PLáş(×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òòžµFħ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Ħt˘Á,”°]vQÖ`Eyc—ï—ċûéŒi(Ż)z½˜Rhċ-òĠé”Á ÜäuŻĤN¨O$ւúʕÀ–H8\q¨tq€²éÉÏ[R@bĜdü }Xt\\f˵ûm›2[˙ğXV;‚J‰ÓŬ óÜÎ1[/<;LEo7e™ùöĞu{ƒ*ô.ŜCÓİĄ wvÈRЇJ˜·2ñ‰ÀÚ.]Á£05™QL'gPWcX€³´VŭOû‚14ف}h†ë‰2 nšĈu}ġŬóç‹%ÚµS‹Ŝ|љ—ħ`^zwâ¢,”‡àwµ\ċÁ)]\ Ï(ŽŜL]ˆe„£ü´Ċ2Óh“Á5sm"½× Žtsà "Ák5D" Ôğĥ@ĵµ„A5Gb…Gט†>¤¨‹ı‹âLş@¨ËÍٙÄ· šş EŞÂ äUù*½Z\¨Ì]şN†ĦŞ8Ğ?feŜŜ$]•Ŝ))ƒŜç|^‡; ĵ që:úĦ(ÎWí.¤ĠYxşÈ˜ëĤòŠġŒô5ԙF*ôkŻĞċ‡᠋ŒŞ_ëĵ\gĞ•/nì€w>…Ó=GÙŞ*Úê!f–ù*ÏZ†(›ġ"/³žme†Xû×Ğ|4ÌğbÓ¨ßB;Ï[ŠĦĠr’ÁĞÁJ„Ħsċ $‡u[ÎNƒ‚A·Ê~X.òŞg™àcôÙ iĊ™7ê,Xq&·JĈ˜ùz^,–ësW^Oè¤ër3Ż7eÓbˆ úÏĴöl(œ&Û;Üĥ‡'-ÊÏ~7_ĉë:HáDf#ċu˙ÈM{N½REġ \Ÿùö—y”—Yí¤ĵ{œHßÏKŜ´Żò’T›ĞĞ˘lô z­Ğ ŽF/ŽĞz9¨,4DĦWß||P5Fŝ1óĝ"څW\‚Ú²t&_!CG×ġEħöâko¤68î ËËóµë°ú§Á¸óryš‡BàHœwŠF,|œA;3ŝċ\%ŸŝÑù­uIƒĉĈjʰ¤Ĉ4~‹ŽJˆàôQ~Ñı8wÙ-WÁĊݲy“>@&û>kÒ($N7”@ôm£ô·/–sgAÈH%şhéÎÓ`ĠED54$ƒujüĤÒۊCè²²]mìBuŝ_ĥ7 Ĉ]ĉUĠÈ+¨i֖KäĠé*†ëş5Ħcġw6€"ŸTTìÊOq€Ĥ7}U@Zö>·ŻdtbƒÑ;9HèEÛURh1(́Ĉ›ğњÎ!ĵÖ ÷ú´žr7OérùOÄ7Ĉ,Z´}0ë›ó2Ğgĉƒ>t0hâÜŜΆ`Ct÷? 7OÑŝ^È;´ÒİíŞ!ġ òp7ÎÔí8r Pq/Á{ê&RŽ]Ĵşr-o‚“<[[t.×ÙċrñúS£]R1ÎA; ‚™pVĦ²ıt^5‘ Ò@uÀšhÈ>t€5ë`ŭŞÌ³ĠMJݝĝàì6ïJtèâ˙€i›ŝ|†Ÿˆ´~"Ĵ„ĦhpŜıɋùœ!x†è§{ÜXó2ĝ³ë gùjŠBÇ ùwŬùV çbÒġ z ó˙ۘ#ñŝĦ?5¤ 䊚L‹Óß/ĞĞUÖáVH~b‚ş;à+7¨ıÁôÎQ~ ŭx[ĵ˙\7‘‰ŬDS,ˆ n";7y——ËlµügŸ$)›ÄUŒĉ^1ïä*ûò i1HĵBu^q4mĤË4ÊÊŞu ëgÑSö"1÷ħ‰é{•Ĝ_„ĈL‡Ù3Ĵûqö*ĞŞĵú6Œ³5z›×Ċ"Ì3SıwĴe UùfQô†X‚qC,ëħìHĵëÀA'Ĉ2—˜ġ‘é°ü6A„çk*‡c cc‡œGŒ?Yb@ĥMl™W=²Ċ6²çĞbR Ë`›ı·˙í÷è§E´Ì]ZDIjDk²=˘ċ6˘—ĠázYûU„F²{ òŝȇ2Œx} ÄŭáUH ïñŞĥñZµK^! ›Pu/²3d?ĈÛGKÜ~%Áš÷³’~Ž}+ƒÈ³2d*QĦ†ĴÓêíÁÙo$ŜhšÜ}„Í šıĊéF{1ë½İÁ™r$~1l3…£ÁžŬFöéuWQĤ‘"Z‡T£g>b÷Ñ;ì²ÔĜKMÂA*3ŝsÀ>.ÌRçnĤ"f=§EÜ  BEË,î·í?mŜcO—fČ÷ĤÀgȑx²S}ܐÍ,Áq f[¸>ËëùEĝC$FŒG0?-âŝÀ їóh‚8ìÓŻ›÷›]-Rċ훁F~½ÄŭT)ÌT4 GĊHÏ÷ ÒX„¤_/ħiŞß:Jİßı“[ Í‹=LĴ 8ïMƒΒ#ñ‹A[0È XmµíŞ.SEA4´oÈĝ ¨òÁ™t$~1Œğ=ÚT<ÓÛáğÂó‹ĴÌĉužtÁŻ}ħb Â×Ç@Ü\İÛÑ*Î6Ì\ëâ]]Fğ­${ħÂُáöÑ;üĤúÒ·/‘ĜĈÓvW´]-ĞşM˜y ôĥóhï´z{pö‰_ ÔrlT„hĥ½€·ıZduxµ‚$YÂs™ƒ2üˆû²ĦXÛè= ĥ½p×ìZzU‡ <ŬĈĴ Ò`_˜Ħ#nħm޽:Ü*‹5‹^gÛ sÏVù÷7ĦkS,µ³ÄF”~½Ää(mw9 Rcş™4{s—ƒì†ĦNïġjğ%ĉ€o×Ôq낑xםöDžÄÒv‹}6Ŝğàġݵ›}‹ĉ4x"G k)î{SŭCƒÀHürĉKfzxGÛœ\ôß@­óaÀ3n€¨ r˙Ôà?˘˙)ww¤Ŝ…ƒ2Š…˘½Ŭ~PĉYX3' ÖÌ;GˆÙŽ0?ÙRożA‰; ÷Ž nw„ï^Ĉ[(§™ˆ0Büi÷lĞ1gJġÀ–ğ/S&Šò!›ˆ0†ñ'KÜĈÄLÚâj7Äo8Ò–lù'–bôS î šcjY?AoxpÑÑâĴ=?f|r^ÁĠfšĈµendstream endobj 164 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1587 >> 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ŒĈJQŞ V”"i‚45J“&ETš€H], ˘ ˘Ĝ"–`JÔXòĊ3›Kò˙wVÌgòäžßžċΝı§ĵç}Ï Ġ’H$}çğŻŬêğaëĵe6>^k½ĊµA³qĜïÁê`ġ’˘^Zƒ^–J”}.ġÄKżġv˜ç3ó‚- ·.ÚĥĜ×ÄÏtğ™˙Úë–¸, \oħÁÒĠÊÍŬĈv2OğMö^Ë{ç WŻ1š˜<)qòĦ)SĤ}=}èŒa3‡Š=†˘†R–Ô jeE §Ĵİ” 5’²FQ˨є5†²§ĈRËİq”5r¤ĉSÔ jeH9Q İ Ô"ʈZLM¤L(Sj2eFMĦÌİİÔjµ”úš² ĤS^ToʛÒĤúPsİo)JFíä”/ĠZMñ”.ċOéQŭİ””Ò§´¨Mq”ĠêAY ‘% 긤·$Qr·Ûìn'¤´ÔGÚ˘5R+@ëړÎg´™ġLsÈndqĈ\Ħ:>:eceɲBÙÙCy?ı³ŝ[~ħy£'˙O‘ĉ  Qé!tg-b#zŸÎÂ7ÏŻƒìI#ïxuäԙ;úmÎYl ï0ÂxHdscí;ˆ8èVżnĉXëµX't'ŠÙİ”˙_ׂLĥ,ĥhßrYZżĈhäÒuXğ_ÌmJmĦ$ĵR˜T))í€ü)d Ħ<8v$ƒGżú ˙Ë{ £ÇĵÇ•k´4ÌĈ<Öµŝfĉ,ëğÀƒî…ĥJmuŻ:áq¤òƒ {^*<Êáa’-ë‡AA^áŜğ}‹Çló‰KÚHü2E5 IŻï¤ f#ĉùAì[t'éڙ›*_"èɁ+î:x—búJŝĉÏ rl?i6WĜÓĝQ' #1˙ öĥK…Ġ‚oŸä´-‰ÁÜÁ#<ôtݍN>|F‰íÙÀÀ%ğ tw–°öħé´p‰E‰ûï+Ĥ¸òŬY—]^ш3°n… ÛrçCVîîÈ|’Ù[¨Šj`ˆ0+ĠáóAgġäżé Éġr&pdH³ Ĥ3)Á‰óilvfvÍ ĦñtĜAd•–—§L#9Ùıínk 2R~}oşNÊOOŜJj/Ş„Y¨IC[^[œ[„²PzÄÁ 1³=aGĴ?âä(Eìuóvótw:>—ĵTSxAö⃏†8Viš¸[İ2ÎI‹t!œY˜BCLg‰ıóˆı[ŝknĝ1ƒSÇÓçÀ¨Óׅıòw[‡‡W“+eµ.÷aÜ]óSzòeZà=R×XM˘Î,Y>Ù¤ÊóÑ<ŻĊĞ$`ı³›‡µ·O|š"ôí„u™âUg²z´^xY’żírÑ )îéœ|™íQïĴJŭêü£u‡G†QÄ/ O1Új³:ˆ,‡Ĉ:YċÀ?ٜד ÂTĝ_ÇŜˆ&ĉáġìúpŬŜäü‰£€k0yġ N–ŠĊ‘@bŻİÉŒé!³D ²k VàAĜ ë]ÁPb\ ıJ˘*\$5r/‡ƒ6=ċ\]Îj“=g„îŞÇ™’§íÒ§Â ßadyµ—UHU)JYßhß=3 wŬQB:ŒWáñżı²k M½éMĴĥz;IAy $œSú'éżòÒîrvİ&%Ùg“Ġ]Ğ6âŞPKŒı@¨ïva›Ä;q~ adµéĥìjĥ+ô Ò3eŻ?1ĝ)*Òç*q;ŞÖŝñİşœÊK ıŻ-Œ.aÒhaÑĥkË V~ÊŬ†]MĵŽßTÂCâxÛ'Úîı´X—ħH ]Ö4‹Öìwa›˙ò\G8ÊŒK%ÑB‚4Z]ÙĈ(˜ÚiFŸg``r1ž.Ċ ]ÙúŬñA¸ğŭä´şXş”¸`Z+ĵ8)I>Ğ’ÂaxLd„û‚ñğBcßİ9¸ d´-žĊÔUFTĝ\yĤJ€0ˆĉ\˘µĠɟŒĜĞN‘îŭlÄbD…>ğ³ĝu˜`rŝ {Fà𸇠£-Ĵß)3‚ğYï\ÁĊ0ĵJVñ֐à“ŝ 5 CJ{1PÉ[]9Ëĉ,·Ĝ™£h}ÈM:GĝófĉFc'‹&xĦaœĵhî)û{ yp-ŞË\Iŝ>ċè½.h#⽊NŬş|†”ÂA¨TW*I‚Ÿœ}B~ħMí ÖĴ́èä÷0â%ħ6’Ĵy”²–ñxl„ŝ0˙|"qÎĕ­Šßi„û} zq‰5û5• jáĞ:XT–)yÜ{IĵġÔ<îC(ŭîĦ ĥż<‡ı0hÖ ÜcġŞP_'%ħ,ÒzħE‰ùû‰[o/,Â:Xaiu£w ˜MÄätÂ?j`žxVzTWĜf„q/‘· ML†÷¸°—˙BÍ5ĜûĤ¤Tò(ŭîsĈŒ;m]àí¸Ù{À¸AáÈÀĈ£WjÏ­R€³Ĝ ĤoQœtp3îÍeÍ&ò˘0줤ôıT˜]ÁŸe×úĴ !ô4ÌôôYcÛô´èTċ 6uWjt*âŽgg6Ĝ‡ìg£`P}}zá9"]ğê@R/Ä=•è‚[9cpˆ*YĜÑù;]ÉÀ.µŬÙÈî 1+7˘œ]Şİ•ä”ˢ×7ħĜĤ3[ ßÑGħ;i˘’œdvXF¸“à ¨‘U ş½TPpFOžU­+èÂ(FŜĉÀ„M &Aôd _BŸÀ`ŠMjK!À[Êȳpf'OÑ~™€Q,$‰••<…dĠJAžÈc+vÓŻXÂ|‡ &Ş8ĝĦHÎĠf–ŸQÊW, AÓëİgB&0`ċ•mmĵĞŻ[¨â&ZŜ€î sŭÁğùQğŽ“Ĵì U/|U/ÍӄÄR’=Ĵ Óy…nŜ1—ˆë.ìŒşs#‹;„:[‰Ä‘Ñċ…è~hĝĴ€!Ġ’ÒÇöL*,û·Ùàè‘&w ß÷(Ċ*Ħ‰IB‰(‘ƒ> nc Ö;£ž†ŝ—Żdžĵ¤˜xÄìtá|3▞˘P4ħĜ'¨N託Tŝ*˜ŝG*tS/à§˘ı^–Ö&f˙ĊF×LlÛĵ!àۆóŻŽ7¤· Û$n?™\ħlĝ6*â촀†µ°ĥ˜„iħ›DôĈĴžA7Ujm˘ċĵ T’·íb`BJ˜bh аò‹fŸ­Ì|nÙ˙ȁÔCè0Wè™ğ÷˜6Ï܃v£Ŭ ó`Ú³ı“ú,áçˆ~¸ĠÂ]„G½ü›€;²¤EÛ{ˆpáÔ7O ŒŸz/Sâ˙m˜é<Ü`3öe 4²ı_ŠÁ¸›…f‚ŭö}ïMJ7{×ÀŞk­eàŞ +“ĵoŭo½­'×ĦZpáċ¨C\6 Ä=ĉ,;WeĠ¨ôÜ´ mAAħÁûC8ù³°ĊĦ.Nĉú³ZV{§5§²NQV˜U‰JÑíċ¸GĈ¸Ôŝß%}âPZlꁔŭh?ùʑç÷ĠgĊáy;ò”MĊ“Ħ0á¤óœı.NÖÖ.µ?´ĴiP’\:gòŻï, Cvl-'ͰĞi¨*(=—IÜ´|"µW˘JaˆHj"šÛ:…O}ŞfhÑHßżM5ÎâoÒj6İĈ™L5ËĊ݈’ë£2Hİ&m ˜‰à·˙äá]š álFLzL*zŽÊĥ‘ekVğ6Çż(ĵċ Üïó÷s'Ĝ=HüÌAžÉ~Tߝóİñ/òÈZq¨ġçÑcr xšÂh%_Ë@ßK†ĥY{EhèŠ43[ZĉG`eŻ€Lн?ŞxÏ-[7zÙZXx$·°pËOşŬx+Y‰ëšĦÌ^tÔOßÄ&à[B—udêxvZvé˘ÓKĜŭ˜4·y—2ù˙Ĥ›0S~i‡UÁŜyʕĠviY¤S›Pĉ”{U˙֙ÚGĊù‘!ıŠÔ@Ò2ž… ŒĠ!ۄe„h†N2ĈôĜW:‘V$Î ÓġÚ9Ž]µ!>Ġ[ħ3=XڊцCĜ[%<éòä)p‰'Ï@"|Íw.fф ×ħûo Ŭü8Ï\żŞú39eŠs—öŬF8a¤Ĝh(Ğ˙iâżô\ŒF!Ğ5’´s`öÌÎIÓÄá›ò2%•Î&& ÄDL^ ™Cm7!éŒS IlHĉŒêñ`ġ [Ò\Ípü Fß4°0ÛÓÁèk‡@ |#šEm²qeĞwÁx½CÛÀüŒb[Û$Ü=)!ZĞ—ĉ~'–EßĈ-+s>ħòĥ×Ïègt;˙DM™*î<şĊ ÛĊĞn"Ż  1°xò%X†û9\†A ĝ“Íèj Ħ•¨{‹f˙Ú.=ĤKĉĈF4û/ž˙dŒ•H4Fg '%êÑR_)ÍĦú‡ŬÊ@ ZĞ)™œè$ĥŸ‰!Ĝ´3†YLRJƒĉġ/^Ĵj‡Ġb˙)ĴŒyߪ 9+Z´|ğézî_^ hêñó[ùİìŞÒ¤˘—Žm\ĝĊk/*6ëD2İĜĤ _Tì§÷ż8ÖğĜĝžĞŝ} iá¤ŭ>Y AşW˜)TÁìÎ*ú“…?Ĥ‡\HËš‚{wzàéB!½ÁS;³0/Ĵ‹OıO6ĝ’f%„çĈ'V×ù°çŒìm;xÀMµŸ—œ’Žrı‚-Ùë†L…§ħAÑ ó zÓ_î[KX‡. ÔĴÚuÙíDVÍ6²Ö›iĵîƒî:]–ÍÉD'Ŝ;Ç7//''ï˜oŽ·—ŸŸ·B l8&i´ Ïĉß%]ğKh˘ÙĞÄÑcĞßĈ€¸¤PE3#Şá•yĞĉ…a˙΂›ÉŒĵ^ďpÚMĉġhÀVŝßF)\·mûĦĞ;?2]<â_"2ÁÔ<‚·›àrU˘?İ Žò&àw•Ĵ„ƒ\òÈ „ĵ𷏛[ŜĉââcNJK|Žıġك$HĜ#Ċ‹´Ĵ…=„ka`‡%Ċ [ӕĵı…§%²ĉl ÜT%‡s'íN ?¨0göĈ£(Ġ=Uw‘IĴVx­’”wÀ‰ŸP ža¤,ĥà-X`XÈa l1ĤtÖzqz^W8Ž˜0ÁáĴ§3ï_{êP…Z’)Ĝ§RhŸâeFŻeaâ1ş³˜ Äl½žV°˜Š MĠVû÷`pm$P –‚ĞÖïÁ3âcî §ÏÈŬ×ĠzòG0äO_½F €6Cú‡“,ôÈò+NKKLQ|dóÓóä#ŭ´íxĴGÚZ öÁ‹”KXyœàÓW1ÓŸ€?TH`,THaĴÀñ³šÍîßżÒrïY³ñ,3óY„ôêÂTÂKrzÏçĤ/ôäkà:üĈż9vĉjŜ}s÷Â:SML=³ŭ ÓĈ&$+:Ĝĵ̂„bĵv0žiç4222E*­ĜCßgĐĤA÷êìJIĤ‹ŒĵÈ(żYıéQXì˜p4Às›Ÿ·=+è †„Ç´”ò5èıy–ĈsÚêÛ֐ yB(E*0üÂ֛-‘#Z“á”*mUÚrd–l[ì̙ħ7N7ğˆšĊÍ­EaQyèşœÓ˘Óêš nW„Ħ$#ïÛ¤‚–šŒàÓh3ĝµAW0-LcżÁ7a$ÊYx \n‚%w%ïš`ç é;‘ñÛÙìĜĵ}Dϔ­Î ÍM ü|cŭ”.w틈‰B<ĥùmrj]ùĤx <0Óîb}O·è°ġJp†SwÉsGi`YÊË™· ıħ°]àÎ{–8ğmÛêš°Sq…ف"QrŜĵÂŜšƒ=ş_nóŭĵ­ùïÛ4ĝ…÷—À­Arú%T‘ÉĊR½ŠÇ{ƒh<á›ĵÁ_ŭçWò[>é9îieµŬeı˘½ï€)(FóáÜʗçŸJ=‡¸G͇ħœ3ŬÀî!L>„²öe‰wÍ>Ŝ‘ŬP9 kôäV7ÄèÌbċTLÚs|ï^t{6#·‚Gj}͆ş ³Â›ZYUá÷è6ëÇzr¸-<–”ÙW£ċìÙÖ[µŽ³ì}–{(*ĝÛeċdŭġÜk}§Ï2żÄĠ[!Ï5r_ieĴé'³`8(_<ûM!w@wW4qò\<܏}ÇĞ›1glk7uœĊĊ§Wó+Ż•ò{(̄jIU{[ğô0“/„m1ñ1P܀ ô-[‚=£b"c"x t‹ÄËHs9˜\ ÜC6( ÉeâÎòLH­‡*Ie”‘ycÜäWù ]¸ñö …nŻŭĝĵŝ[<Ĝs·G„ğŸèdy@„,8’Ž{ÚÏx0>j V`Ŭ‡Ó wĠéƒGÎ+Vcvìdl8Ÿ ?Ä7BT0R[3$ÍB§T`Ô+ĝé8’Ĉóœa„GÒx²3 gfà]Ş vĜOƒ3KüŝPüX…żfNÁH&ŝeîÂVçôY8‚Ĉ†Ì=ĜJàlĈ1âSĈ6ê&ĦY#TûJ¤ÚÉdŽv÷Ùìĉ~Ìğ¸8/ݏÄû(qâ´Ü}ŭ#ô›Gè×[Cżu#2Ĵnİê3e 5>ŜTÓ>0–?ÉD*eq³EÈ6Z€ĥ‡SXRÂñîéáû˛ݐ+ħ1sjçĠG{¸ïYè›}ëÒĥĵµ8ƒ•r°—-BQùaİÛûËea݆t51)vñ+‰Ní%?Ü –·÷ĉq kšċyG Ċ•—S¸*ü€˙ÁŻÔ…0…ùÚ ¸ÏÚ@Š˙]Ÿ —èÉerÛ˙[R`’îçm…_n3û§òLĊC+Ôé’ßI]ġ:/òÇ!|”íoxÌóçˆ\èçX€ A(‚È2­}uĝ‹;aû#iı“èÌWÛp?„#µ êïˑĊy™żÁ8 Ž€qxQ6§”&ĝ%Áâ U> stream xœW TSW·1äŜĞ é› 8 "È䄠ÌCAED@P‘İbĞÔê/•ZkT‘VµˆŠ8àŠHÀ ‚´Qij˙}óNxï˙µŜ[ëÏÊÊÍ=9瞽żóíoP:(@0zÁꔕ7„Ĉ¤L ‰OĜ¨—SUûTÙ"¤+Dş:hœ¸Íd`4Şa4yyşşŻġXçıŜ+Í{ƒOúFżŒÌ˜Ĵ•Ùħ9qñAĞ‚CV‡Y”–ž2u˜ġŻÂi6ĥÓí6Ù;8:͘9kĥĊg—É–S(ʜ ˘,¨`jµšH…P“¨Pj2µˆ²¤Â¨pʊZL-ĦÜİʃФ<)j)ċEySÓ)ʎòü(ʟr¤ œ¨jHͤPşT G=¤R)}j5š2  İ(JL}Fq”eLĦL¨ħ”eJ£$K §FP^ 24‡ÊŒ .[8ĴxX“POh'<Şê¸élÖ9¤sIçh“¨ŠÖĦż ӍôŒ'sœÁĴ›3\8ÜcxÙĤÁ#v85âÉHnäԑ FžùXw˘‡nОDÏQÏK/Zï‚Ŝ½×úúwġU£ş5j`ôÚÑŬÑû Ê š u ĦL_e‹d°TÎO— ĝTX˵µ˘4>¤Ja]Ĥˆ~§;`­ŝ!ç&tá…HŸŻC2>¤-QfĜÚáúöu‹/´òÇ9ñOêÏĦš·ŭófëËĤêĜ ŝŻnŜŒéñż9É%"Ċ=J"ËhvUÀ~lRv*ĦSı@i,ĉ;@A· kÇŞŞYñÇòJÙġ[cQolM9+ĉ›ÊÎŬx2ĠeÖğ?ñ½bq-­Ä9ĜÌuTşTVqĉw)(Ċċ&ŻÏLËJŬħ˜LòĊ/9Ĝ™Ìetfˉ äÉ'Ò'%ŒE‰_%mL߸!eËrĒ„Ò;xëAyÔġá_ÎáÉöĉĜ{öš˜Ü÷ĉƒŸM2“ĜavÇ/ÍAÒvµĝV•—1x’Ê™{uËbŬ…Îĥ ž>èŬUü*˘Ê>ä*}J!|/8~ĵB=rùé ġŜÁ^ĤPğÓú’P2KĥKfĜB@1·´hĝxWÇS j?V{´ĝĜİ·óÙŒ¸boîŽü-ĤaheÒRVÜò†ÑçB˙Úx€ìcĤPçĤ(i}~÷Kjz`[÷çġıĵ÷>·ħÉKn€Ġìê8"•gŬÎ=™âM"#׸//<‘!Ù|dç‘]Ĵ½ë5/„ÏÉ yŜ8 hqJê|ÌçûÔ¨ÂäÊĊ²ĉ‡ċİ‹öJôUÇÒ°[% Á%%żY!TE‡o͆´LM†MÜ|KjVH–^OíA},ĝü#À„]!Ód’7ôz°Ä:/°3²Gé!Ëfz-Ċ"„YœŸéñ{gEç#ÉI+Ñ]YzoĠ,xÑ-„ƒ5'˜0 Oôy¤6£ËSe²½ßœ–´2[voÎûħ [ *¤€_2šŞi#e†Ŭ°ż{~ğħXÉg‰ĝ³UĈ,ÔËÑ/ĉü} ÏÌR[2ŽĦHÄÊT[RÛÂş3dW$SyÉï^ !\•ÂMLy­X{Œ¨4‚(ŝ¸h-Ġ.ĜŒw!_!@}\¤á¨v Íl´S,ÔÖxkÑDz²Úڌ|ħÁšÌ|MĥŞmECNïT÷@!!ċµÜĥ=_£]ˆMŭòHħî2JŸĞ˜›°1.Q²aŬ֔=‹ÙçôÁ•rÄĥWŻndPbĈ&żíxÄĤìŻ“6/HK^†|XëĤ ?›êNŜ¸#9^ĵá:Š ÷–dñ$áÚí9iéĞ“W~‰X˙ĝ²şúŠÓŻ ½‡ĜşŭŸ30ƒÎvĝĴ@:“Νı"Ĉħĥ‹Úa4ߐ˙Òzi{İĝ'CÄhïċö ùD#ˆáA¤†^U ĉœ88 'ĞF‰0Iĵ—bĠ ÒàÙĈë· ĝ ’†ÚÔ.Ó¸I­+šÏğĥa9x=Ñßáû—<üfá":ħ.ô´ĤŒ³Ç쌽z°Ĉ?ZÒxYêŭ„Á9| ×GäÉëŭ%OúwŸŭ"Ġ6mÇ_›9ÔµóÊĤŞĠ/ŻO!›4$>Ï˙ež„mÚ&è%U˙-ÍQAŸ“ŭPypÊ;&ia²öoÉÏAĴkTô|ݽ—OĞzY7żĴ‡2 Ġ 8¤ü˘„WŭBÒîqMßB—VğtŝX zÈÂçs: ĦÑMŜTA8óŞnݳsĝRûĦFÑ Zʔö@m‡ŸNB˜ÇÄÜ[RêK€3ħ,vu:éu1BZ}s}=jB?Ÿib×1ÈsۊŒÔÉ+²— x´ş ŭ‡Ĵ#ÛżÛUĈΠYv($GO­>ċH‚Q,ïÏàĴ@Żn6ĈaóĤ/Òĥì›òWÒ #Zğ‰ĥj Ş›xƒ))ÙĥI&)Ê)HCĞĜ!'ÓP?Ñmyú‘8hµj4^F Tò:@,Éşğ"ÖNšç–˙#ş0ĊD'éĢĊ{úó@7Ğ|îYĊùŸĦn çĥ` ~…ÉL‡•Ä˜Ù~2óTFáÍ:EÇYJô!„9Ѱéù,bµZÀŠ€5K}ĵ›żPèÌ4N“s!d Z•ĵ€EÉĉòÀbJ7žKàt´œÇĜׄM“‚ßÒ_7TŻB!&(.#6ycjfԖ`4…KĴ^÷Wçò/“.•ï[]{ĠçyQz$Ğ)Ż­*kD÷Q_h“e ŝ˘vŒCQÒit“}ÒXû°áÖùš(qj›Şà#R¨qƒê~fqNΒŬċçH<™‚=ßä"öumċ#İJYĉŬ´ĥñŞ…#m÷Ÿ*Sĥ+Ô-³aÇ İr¨hÄà6aéxMħjgŭĴ ĵp…è=×À[b”üDf4Ni"­ SId‚J~ÁĦ–ĴQbĤxááaх§% §s*P=˲!ĜòO[pƒy0ì5L’‡-Ԛ ›Ÿ Áš,ž9˜˘Ewh”gˆ7ĥ¤ñrġ ^Š&Óp„¸d­lŭÍŻÓĵĊµĥĝœĈ†(qûÓúğÍ÷ÎĊûJ f@s{·<ÎOsËÎĵğ>Ċ+R’|3ĤÈyĦ¨ġËXñĊ'¤×>Û*ƒ V´ ù2q8b½p,ŽġòÑ äöSûôm~÷ÑĞÍPÑ Á„-Ïà›ğş! ùŻú Ż´ÇC”⃠çgÑÍ ï͙Ëö°ñLëıË/ ËhÚǚ ˜ÀOÓh?ÌnÂÑtŽÔ`·ü °Z‘_ñ—ȏùKäŸÓ˙W‡0/wjŒ’–džÜvq{²ç˜;8¸÷02)=š›>=+9-óÀÉhéĥŭ+Ĵ;ħ³ ™<­)żUz*bûN´'WúŻì‰ŞË {şÁ‹¤ß˙vú+7(ÖrLc(aÇcÁϰMÈám°í/8„J ħĝ Ȕİ"H#Ï&dÁ[·ŠêiĜŞÚúÉtÈċ‚‹}PÑ'„ӪΊŒ L·Özħí]X Ö` z” ’ż.{ Yu5ĝ4Q@75S‰ˆŠš6ĊfÙoá5oŜ –÷ á0ż—SïíUE,d’ħ s—ŝj˘y× |GâùO·†˙pÓĝ4ÔW“5ğOÈïëáÔéC·ĴèıöîĈ˜ßo\k#%~gC}LeLċâ|‘òMŠ J‹ß½Çƒí÷]9Pzĝäɋ?×!ĥĞ!d^èš RÛĊĜrĉ ßíxş Ÿüə<é0ä}Ŝ}Ĉâ°äÜ·tEHÜÒ5z†ŭ˘pÛİËĵß)%8¤`ĠѤrŸÖÄ~âX&½îħ}‰Wg”JĊ/šŠşúh,èÏiĤĜbž žş[ÒKç_Ü_ôí YĠ˘zÄÊk˘ĉGd§Ä})Ŭ°5ùëÀÔÀÁ ŭŠ/—ˆßω‹ v‹~³30û­¸ÎĜ;³Ğ$˜…oÉÂö+ÑŜ~‘Ñnn‘—6×^z"ĊWuÄï{BgÍ µs şĠŬŬp³W:´}ˆîu*û ò­°fpG1ûÔ(Ò³U^¸ıEփ€#V&ûiÌŭ¸[eš?ĤV“ħé³ÏÖĠ˙,ÍnĦS'Ħ@´˘*·™…Ïĝ5œâž­‚@§áwŜô54>Ól—)ƒfpoÙŞ@ΕNÄKDĜ€.‡%˘yt‚ĉFÏ(:ğ‹0í3@ÇÑS‚X‚F˙ŭfx³9]î˘?›mh{N;߀ŝ‘ŒhċZ>`‘„5C’À×ù¤ Ÿ~’ß’ 4£ĉ¸ċ˙“Òg lŭ£U@ÄŭONċĊgÑu†ú°^%ú x > Emq…É_˜ğ.qYŬÍO?£.v€ÔŭKMŬ·=Â2g26ÀŝÛ!lûż#jSO;€E$ÌEàˆÀĦ\zÁœŭ´ <ž •8‘{Ĉ÷ÁûŸ Ĉì"ş[ԁ g"ħ‹&Ë(êżu<^endstream 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ùšhë{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Ċ0ċö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^ŭf"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Ôİ'Ş™Ê*ĝ µ(xfàġs“ËLjĠBÂF~ÏÜħšM34u˙yŞwz2­g{xŜŭċËè?İÖZgı“çÚñLċD74—;o\żİÚşĞšŬ MÉ9Ö.ŝRWٖ-ĜÒCvÖ÷ċêsÙ=mi`âRÏIzĥİĴÁÇĜéƒz1B)Iz.F=o·ûM=4íîšËh‹ù.'XÔ?×às0úµ zċ’Ò„ 2 "cBĉ‰MH›LÙdB2™M3Ĵ…Aà+wKB_&ÖÇÎ0Ï´- eôšFċKSêGÊòÌJÔ@ş^äyġ7ŬE¸KS86zDBş÷ˆà\Á‚í.8(–ċ†}SÌŭĞÇ4iBI i␭q[tÈ=€…–A‰è‹˙(8@ëV‡rU_îꕛ—q–ƒ¨°ß”¨âöè‘_ Ž™ûbC‹ĉ‚Ŭ”·¸Ĵ‘Ĵ½ĤÀrŬ5ċĤùŸx ÉúĦ;T^µ—´*[–CIo)4OŠì×D²Go´ ĞÚíö°k.ƒPĜID·Ph@ X°=ÊĴIc†(AM‰m’yIaÍÌrÛĥĞcX‡¨((ÒỀüϕ‚C3âÎñ´#1€ĥ?uĉ´fê[š <ñħ-X¨B›°€É‚•ôÄI Ŝcġġ‹Ş[£‡‰;xšwĠŽżF2¸—ùĥÄr!Ĝ°ŽßàĦ°’qO8E•"AR"œ0ŠÊ/ Ú°Ż;?œ?Š òÑY…èòêoûĦŜ^–Ğ]ÛME4Kv[q V‡EÂW‚mšĠz¸İŭ˙‰E´¨MÖls; ¤ĥw¸J½ĞÚ%û’Ĥ ĵħ3îNJԊä’Zĥqße}yršÂ#‹ŻÜԛM‹7ócħp Ĥt|‚6‘p*L`÷buèÒ<, ü”ÑĠf·İP7œê!LsĊTşż,8rӇ+I"à;MÙ-¨ĜŬvû°P==ìÄ‹šdP5ԁÁĞ·Rƒ[sÚ;ġ³ŞĦ-0r­Ó{ġŜ²EĤ:“Ñ‹ íż¤ŭ%gğv –Ù˘Ğ˧ŬExע—‡ŭW]ı%lqh6ÄĴÊf×SN™‹À$>ĠzŭħiñuÖïëŞy=PFGíŽ]†t2÷˙óş‰U„ÓX€F·e÷!xôxvèÑŭyKdÑzOÚġħl6%ÎËè4snÙoÛvWÌĵï<+\-(ß ĉFVH5?"Ĝ\Ġ7ta²A×,Âİéš~ĥòEà܂-·ô–`˙ñû_â7ĞÓ`÷˜3?…Öïħ S¸Ĉ„HóIKbÊ;’ÜĈolhĥI9í Eƒéá?:Ä"SĈL÷`}/=uĞ*‡Hd ='ŽX†XÔà³êëO Ğé°@†–H‡Ï8/PŜ.éÂä™sÊ·ċĉ“”K@:ë'„çġk:1e³ ùĠşí FB1”ŬŞĈIAŜ³>˜•ôY¸Ds&‰ h9MT¸š†Ċ@ VÁT >Q§é.zJù äfÊbĦ˘.cÔ3 jɍÛ@Jëk1(Ş.öûĥ’‚Ä’³˙ĉħè&µQüċˆz3ޏĦ /ŠÛĝJt,óÈÜ7ŭĠÉ"~Ñ^ƒ˙PÇ _-ÛŞż è‹,şTnúqħġ°Ŭ|]Ŭóîġ9}!VÂĞşo–Éĝ#ÊĦ Ï…îg {-pi³BŠ9Z°˙´`fh!:eD a/IÎ"ş£ˆâ÷|"é+6ħRĜôĴhƒkpÒòä,[—ÉŬÀ‹˜…5:3Ú4·ŒĵóQ÷–ä„ĉÀàŬ Ĥ ÔNr Ì!X¨ä‚ĵİc‰988ßTäéǧER›&Rä‹á}Ï`‡Ë >„‹;—êLŜ‘G¸0O5^œÀs1’]`çŽÀr9^öēwÒ•ÎN¨TİuÇW(P7V”(‡ñ'U÷ôd†Î}3DÎwĵcçڝĥóY†b„öÊ `Ĥ+@-Ŭòͅ ‰‹Ż8ÁâçáöÛċò_wsïnı\HäğI6+ır5/Ž˜>e°:3 Öxßŭ>Mŭ~xÁWpj(žn÷]½ö½Œô(Â,†AÌY$W1S$ĈR)iċsŒR*ZÏs| Ŝ£-ĵ7SÇ}Z%¤AĈ&•D×.òÓ^=b½pĉ ­c?ŝSôÚ8@Ç5ŭb}ìµ½*ûĜ ¨Ì7_y)ċҌ}8ù}8ÒblUxòö+ÔÄ{ŞBĈ AŽ£"úWß:¨d…9¨n‹:˜[‡”ΊI鯠.XĴͤPçö-NY|ûĉġ×L ‡1üĦM éıbµnâ=ħ¸· äJoÑ/•UM*:ö6•Ġì|3dĞ~‰D 6­£ċ‘K0 pcŜıGɎh|^€_4;_•ˆħZċ“‚·•àXż_qğiaÓğéŒT`x6UEŽÀŬ¸ÓDˆ§Ù5$"8Ÿ×FşE3Lj' ”H5fİ2+ĤàĈvQoúì)LD I&¨ŠĴ Ĵ@dĜfŻ·ûâ”ĊÄD҄2Ä-U›ĝ7ìŸû!CağŬ•ې/{tš³Û JĴ™—¤C. óúY~ÄFH¨|˙ĜŠş2@Ž0‚ż}甖¨`q”{…ޏšá³–S{ˆG­ñü><é%àĝ OšÜ€‘<€'§p2´ĠbĈH‡“ú/‘ì ÉĜ²œà_;€#ŝ”P|Mż]ÜRz…ŭ#j(~fKsìŠ1Íß.'Rö÷PéAHï8Ĥä°· €Cż§ÂOĴxЁ—9+û²ú€ù Ï[ĥcûKP˙L[ëê”ǢNüˆOS­rÈôlkt£Ÿ YIqD3:ɍú ŝBĜKÑıÉ!ĝ{zĞê}úù= µB‘9żäža@£UEşiIĉğŠîK ],›:ô}şŻ‘S·O†‚Àl­Iû3<–ó0y·˜4“ġ·u‰Û%ŽĈı#ôíŠ]3¤4=ĥ1ë}|idL†ĉĉXŽˆv9-Ğá„f‹gTo g÷´Ö֘LS!K…{şô\d\޵d,=KwŸñëLs‘’IêׄĊŞ[*X]ÈÀöĉŽr(È[ŞŞĈ³2ñ:Íâ6-ò–ĉ‰ùâr’AĴñq ‚—ñŽG8¸˜•½ŜĜ}Qì!S`ÀEîĤÒúœÔy&ÀkτLQTÑ<²²C‹à­Ó=ía/”Áçv½,Ä|ç$nßFĊ‰3›j €hċĝ|™‰ôïK÷jŸ1ŒÈĊ˙{š­Ìùùc:7˙{³n*úG„`İNí뙇Tß[óž&Ċß·ÜwͤĜİç}˜Iógŝˆ‘(’Ĉ`éÓV€3_òÀ +G fC>â7CXĝĦñ:rWµü%1–fÈħ$—İ]ıl<ÌIw•îlνSċ„ïÑgèÊ×ÍqÓ9l&›Ġ”ÙMy‹ĝ.$‡::7ÎŻy)ÏhÏ ,)T\ûûċ²Ĉڜgy¨‡ĦŜ¤fg?\ĝ+­VZıOìó–ğ˙k›ž°[1ɇŭih?ÄĠTÁBTր·“ëİe˙ŜĴv~³ 83éû;Ñͧt+Èñŭ?育ĝĦ^t_HÄH ëv‘&ĥ٘ÈE~RH@+’ŝßQò³ílVşaÏdş †#ŭżŞödz˙‰ġa%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ïßÇ·ŝıó½~ÚŜ?š.Çŝ~§Œók_=n6íñtjĞ>˙ûkï÷/§ÏWwğĤl6x˘ZSPĠ›‚êĴÑÔ`Ŭ7uÏúÔÖCSPĴSSP'ÖcSPĴ½)¨ġÔT0 f³ÁuÛÔ-+Ĉ7Œĝ&‚‘`ßD0 ›F‚eSP“µš‚ZĴÀ™€F g66ud…Ġä5z V“×è5XM^£×`5y^Ît8 tà\@'s@Ît8 tà\@'s@Ît8 tà\@'s@Ît8 tà\@Ët-Ôı€5ä z֐7è XCŜ 7` yƒŜ€5ä z֐7è XCŜ 7` yƒŜ€5ä z֐7è àBÀ 0€ ƒÀ. š((JŒŸ"$ ‰ñS„$!1~А$$ĈO’„Äĝ)B’?EH§IBbü!IHŒŸ"$ ‰uV–\YB“%E MJ”%4)QR”XWjeɕ%p)`XXWieĊ•Ĵ%oÑ[°–ĵEoÁZò½kÉ[ôĴ%oÑ[°–ĵEoÁZò½kÉ[ôĴ%oÑ[°–ĵEoÁZò½\ ˆ'Żá×Ùaä‰ŭş¨ôħ,}éëÎòĵžçŝïT_/W~5 ĞżïàbÁendstream endobj 175 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7420 >> stream xœYXSWûżrsU\Ü^Úël]uWqĴ˘ XŠ‚‚ AĤìö>aï½ C÷‰#T[£UĞm­­bµµĠûo{èóüO é÷µ}>ŒsîÉ9ïŝŭŜed@‰D˘‘öŝ~ŝ³fN_ïîâ³#P=9&G~·#cCdltpÌäé&ËHX1ĵge  6÷Üê>#8hV@ˆ°{^?͐˘¨MÖ~›—ùoù`ßò€6A+ƒW…Ĝ†Ú…íXÓ>b—Cäî5înß³v²Ç:Ïġ{7x9zoôÙäëä2uë´mÓg¸½;3jÖlٜıóĉż·`ÜÂñ–M\ĵdéÛïXQÔ8êCj!5žZKYR¨uÔDj=5‰Ú@MĤݷݍÔ;Ô&j ċDM6S˨iÔêj:ċL-§fP.Ô ê]ʆš)JVR³DiÔ*j6eKÍĦì¨ıÔjjeOͧ¨÷¨5Ôj1eL-Ħ†RKİaÔpʊA¤ĥR&KıRoP5Š2Ì(sʐ² Œ¨Ñ”˜CÑԛOIİAÔ`ê-ʉ—<ŠĦQÁ›7 ­ Ï™%‹%â`ñS:˜ŝSâ"yÌldŞуœ½,bà΍2ĠbjlşÖôŞ™Ÿù›ĉ.ĉ ĉŸYŒ°p°´È·8iñŭèy£/ŽycLΛĤoĥòĉ|–t˜ÔCÚ3vĉĜÖ·vU1Îa\ùĝÇ_ž` Q™´Žc‚Íq…8„fk˘‚ˆ džMû• 5›Ħ`é3Ĝ$fÓ^bò;!8¤oÍŻš´BB¨\•&ߪ Zċ˘ħP(,âÊċ†eĠġÚçQ7sgÍClÈPZĤ>ĵ•K›zeûôŒ“A³Á Öó@: Žr;½m§ÀFÒìŭŻkĵ¤5ĝ0çĵ{í\³ <Í}Ŭ²ÌU}~²î+E—U 2<À‡ƒ‘3^b#l4m<³ßO0ĝŝ˜6yÜ +kk‡{Ïż½qö§×ífòŭVA8ùxĤpŸ#:Gñ}ĴEġÒq8NvÎÄט××ꌨ~\Oô¨Ħám|UŒWJĉ`]Ö ħ^”4VÓ0Šk4sj‰”BRtDWɑᰘÛ„â‚‘_:ŸôŽeNÄ̜÷Lw˙ÖsíÒ6ËRiVdfT bÚQMµ¤’rÔà‘Ÿ”§§˘ô˜@/Ċĥê͈ÁQÛÛáĠ@ŝÂ(`éyŞ>*á]%ÜÔFñ Œ%^2˘ĠĈ>ûÇ·\\#|öòìËĉôR÷żpŻâx'}tÇñ„6Āè‡ï•ÚŒšşÂnĊÏ'gĝ;Öäê• Ŭ½²lÎÀUPIô€‹̝S°9wöï^&­í•…èFd{0}caÙZ‡‡“™*È^ î"ËèİuWcË:²÷ì¨uŸ³p‘Bµ{=Q¤;żŻygzb£‰Ó0‹G|7 nžê¨Ğ‘bog=Ÿ-ÒúÏFqë.´ĥğġôÙ-Ġ÷N.µĠj!JpÓÔSĠIĠVb?„Œ£\D{ThoƒĞ!L%;QTûT[Ċ?ï{µ“ÇĤàF³G!}ŽB¨}I,Ġš\¸—ï¤Kʖ^™ŻÎ‚”f öç´Iġ LWĦ }mÊ΢„!\uìħ›WGĜ;ò$ì}͎Ĝ@Ħ_ânKŬJueŞlÂwW_ÀP^Tր˜ÚêòĤĵÔ/ÑÏ*CÔ5b„d_à‘:÷÷Êĵô7CúNàcèżµĊò(KÏyüİ*•†‚ŒäݘĞñÎYYlĉ—½²fÛZż˙ŞÔ7 ‹—GfFĥöċƒJ“Aݲ¤tŜ­Ĉ …W/ ^èñîëÈg2igâ1h³g×Ì­Šò)•İEˆQğK:E…[ ÊċĊ|§Ç…t‰ĉÙm_Ñ&)ÌQÂ è ‰öIÄµ¨+.˘3ĉ1:9oŬ„Ë÷"i>ŭ‹_´Œİ ifdnl_s64%no4ïÙ²ĞlÒxmħŭŻĜ†\>ÖRW- AaZ[ÁbI=İĜ}ġí&)OÄ糉Á„ĞD5ž^Ħ‘|†úĝ`Ä,E礐 $ĤÇ ÒQıp]Ôuû N£§Ŝô¸s÷Ë=ĵ^ġ=V'Ù?£E›A‚ĴAçI}°+ö׿>Àކ^Y nô×B ž84ŝÏ2İUÒQÜ&3lT60” ZĠ—ñÖ„Ŭ_°u/ÍvβŒġ^Œö·ñP'ùïôTU£G <ğĠ[^ƒ*GßĦË´vĠ+ûëûÀS‚ (½ü8¤ËK ze˜Ò@ÀŠPa°RT[ÂC!M˜ 5!¤SUAc‡EpOĴ3Ü İZhàçĊ{ĞQ 2ŻBu¨h?Hà;³}ĜHSŠn÷€ 9PxŽĥ:™öΠç/L OtA~|vNv*gêЃC˘½í?ŜúŞçˋßòÂÜIżR?ƒsJQ9¸|.†BŽ0‘k B<–AQ%í¤·àsâ :µ1ĉTìшÒŠ‚Ì Ĵ‚JeyiV-#§sœ: ìÄâÈJTŒ:PVyví5è1kİé{·•&gUE*m¸PN˘`ïŽĝœĴD|$·7>ÂĥODË|k˘êËrċËċĠ™òT€˜ÏÎû,—âixĝ4•al>²ûı£;Żġ4ÏZùԞÉ84ZAàœ½_8ÂCwG0lI¤‡+Jí°óÀáÎo:`bĥ.Nzş`#Ì2I¨¤ĉÓ³Ss32ñ\8dÓÀQ|ˆŬ²ɤsÔî29ìĞÄPU+)ë‡ÍÉZ_İùïFŻè5!`N?‡A0g‰ĜÒ=}şĠ­ĉ„ÎĜœ/?öàlÊŜ „ğhüÌÂJÄGèÒĤŝHÔOhš¤Ö“Ŝ˙IÜĜOe ÀGhŒßĈ#<ñ.šm˜‡Aژ E>Òo`x.öï'‚ä™ú”JuW bˆ d.‰Ñ˙à`÷ß9ڛK‡ĦPRóŞĝá˙Í&@¤‚dġjü%9C*]X(ÁßdAÖ%Ñİ=_—`½²=ş‘`L÷*W7à˘4i„-xĠC°-ĤĴĊ?òxo̞äˆ$ó :*Ħ&İj$™5ü}^·Ò0˙žÒ2G(½˜@†MòsôHÎ`PNA‰”µjˆ¨ äÙû"#vĜĠùê$˜eKá]ÁEܢW"ĠĝxGA=†Âq ?”Ÿ–Ä'DŽoµFÌün}{FAŞĈèš(A*÷Ĵ’Ġ#ĤĤ˘ùÎx䊭>Äcĉ`ï&‚ HüXÑM •P4ıܵ½ë‹.Cŝ˜²uB6‰ĤPäÍ 2I›:!Ùyê`á74O•%ĴÂfħ ~É~$ùOρâôÜĝú@$C̍¤l3Éŝ6W&ñVG ›£6˙PĞ û‰vóı¤hÛu옓\➓”›XœTŒJPi~~iVîא[|‘÷ê-´Iü{hAÔİ‚£$ ürWt4Ì×JàtÖT˳P…ùÎç´Wb˘—t›d€t4BĤßÀĦai(Ò|o-Şâ…átm.ŞFeL şİi}`ŠÑ“û7À4›öjŜY ĵh*aœR6 x:ċ·cMÍ ž]dGĝ>Â3à=Žmßàş`éòo÷ĵ¸uÖġÎ Žş0ŜĦ]„|ô÷%oé#­í…´ĜŭÑYûùJ=ˆVƒÀè7= üċ4Ĝ÷Ĥ•x–g4"ó–âĴCR!·A˘ 2tí³k†Ò„Ŭ'ìî ²ˆÄ´$>dóĈd…ĴÎF}À9şĤ u½úG< ™:—²xĜO“€³ÓOĝċ0ŽUtéĞ—n!ÒL`zŸ.4ŻyÂŽ…*°vŬ‡c5ûÀìk›àoSÀ!´DZvĝ…sv]7“˙ĵ>ٞg'Öş äóŬW&°÷Ġ2"%Aĝ>’4ż£ÀôÒXŒğñP½”;£%]ìL+¤(ışż;4Óĥ°)‘‰üÎöĊ; ­Ï_uÊöĞ )Hö‰Ù2EòWas-œĥŻ]ìïœŬ´‹ßєz,£2£"£ÒğŻ›Ċfšvĥ6·´­€?âĞŒşNÈó铞>’CeŸÚgzÀìĠ b/Áȍl´B`k ĵÁ¨Ŝé4ŠDîžûÜ};öCħ™Ñ™L3Q£ ‰ôل÷DGaâA0γoȅk$-’}˘zFŝ )z·£µĵLÉÀĵWĉ¤w+c­w@š3³żŜh öR°-ÁeC×MÓçcż›`8HÄíz-Ŭ =FHùxš^kĊħÓAfgŻÌYŻOĠğÓpŝ’ŝâ. Áïjo5Ö<@ε-Ú=ÄM+Z4NŻŞïèħĥNN›ìÎ˙ßµ¨{ƒÖdYġ’ĈżûêĠg0œ‡—şŽMŻmġèëĠñ¨~ÒïDMb" +§7ÖQ§Ä/„@I%Ĝñ`˙9ĜĞû‡Ĵ~i'jĊ¨AíÒĝjÌĤ÷“ĥЉn{jEBÇÁ܌ŬŜ^Ó'3ğv"Í>ï[roEĦ{9jFĉM¨ t€™Piv°Ĥ_ríġĠ….˘~™²B‰†gzBH<³}wĈìöç£ĝWz!oä+ aĜ/[ÒPÄhozàÜ-ñíĞLO´%›Ha„íì9zúh]i¤e’ŝòuï/‹ŝe‰Ĉ:?IÌM€ı­0ה}.Şù—Ú8‹ġŞ톿I\“ä”áO̓|}+8gä&Ô£Ò‡ĦxÒoĊ[SCF9UI„ħúMÂbmß@R9ŭioµ˜½ï™SŠGúYX•wb²F9Ûġ"ސ§ç6˘<Ò*×£œöO…j³˘kò÷ñ$ I@„mê ˆiż‡iz,ĖöJJ–ŝıZâ“€ہP€ú["ğe(DÂUŬĊ’’ébÔîé‰<Éh<'‰%o=ÛQħ”´2éXäÙŜŽÚ‹y$Ċä­z#a ‡òS Órñ£ßWš&V„ &,:2"1;>+Y ŝ\™ŸY‹ÌĞË**5#E°&ÂËNıû°Û`_o÷ĉÀŭıyòÌ<>ÚakTlj|ZD c˘Ë"+Ú~ĵNe™Ê.íà~_ŬWÁlġRvڟñ4½ħí@ğ§Ö˜Àyżĥ·iv·é~múDişıßFo÷@Ÿ=-m‡Z[Ġ"àEê]°Ùżî"ìù}2W]’“ÌŻŝ´IŠÊ@(Ñ<˘,²ş6ŻĴ$—‡Ż~·É+—#”o>À:ÎŞà0q§ŸšsĴ™ĤĜMÖÜìŻù›‚½ °mŠ8üĥĵd‰ †·a’êċŬ;·ŜÁ“µF‚³êW_­pâšċ <“…˘VĉIPCÚQǖc eûċ Á ԀŽdċWz’ÙŽ˜ÜêÜz;+°(fN¤4#mAŝÌ, ò@ÑQÑ[2›LKò­Ï(”6f€(-s#ƒ-%Èıž÷;|)é b*ëŠÖ0% #´<…ȲĤŻnÍ*h5…'ÇĈĤîóâÂÓ£2BÓÉA•)eUGsà{-gJtÜ [Żŭ#Öä| |?‚ei‚ÏQħŻ ÷çq͎¸zîĊ½GöùG]§aĈ“îáaxâ…ó÷(â*jê*Ċ)% y|ÙİÓ­—óŝĥ9+œ×Ù:Jq^“˜œ‚dĉêëžÍg4Ëô‡˜–¸İ%HÏÉħAfz‹$HN:5ğ4Úg{"&’Ô˜€ŞTR‚ùtb?/ï*ó>ĵÁ;}+Je°„@Ĵž˜1)9²âñ÷Ġ_–Iċıè,R0O%ÄgeË–‘×k}ÓwEyœ•&'z>ì)éÁŞ]Ä~B0,í­Wm[ş*.£‹ÌŬeŸ` 6^ábĠ ĞVë]š\˜–Ċ·ĥŜVߔŬ<ëáêíı/Dê˜î‘>5!?F8ü)š-|ynĠş5ìgîZZt:@š““GäkĊÙ?Ĵ#kúġ³ç}€L)…7‰£ïvu“Ĉ5\´^ŻéŭIù{y:dĄápü‡YB J'ÉíUÔÊCĤôhà*]ŭrêAß·3ËZ9HC ü,ÖZ U ó”˘'*È ġÜOKă=Ŭ’Bvò°’ôîÄkµUWI"Pp[evNa>ßÔv´ò qŭÉev‹–ĝž˙êüKŝDĊü<˘bspyh´oÂîV€Œ|ù µ¤ şÁ¨,ğ½üsHŭ܉Ĝŭ´à 9 çô`'§È|)ĵġŬ'è*ËI!?É(‚ Ş kl¨héô¸8…d´Š]q<-{ɳOAô#0&=Ŭ<ÛġĜíîT†ññġ™ġ¨”évö³//Ĵ²VŸ_*\QŠN¨.kZNjü\³…„KwôQŞ*4ĥĈö{ñ>„ òjݍ(jĉs Ĥ2ċĠêÊÌLrB_<)a‰'•£ú 5ġ·ŬÓ´ÑtÏîŞuÍM';Ñeĉáüx6~oħċúS[>àÙÛVĦĞ×ZYLy>F‚ɳ'? à·ŜÁmÏî_ĉp²ë|יÏ\vq’–✍í†<ğ~m—Jyċ£oŸ]ĥ_£)Ë_Âi‘ sY§÷ĉÇ pä—ċV‚ŬÌäÑYĦ Rœr*ċ ^Û˙}…V‘…ŬAÜ£‚úËo›²Ż‰snpŒ UÓ°á¤Äìô“Ù`pŝ|Ċѓ|<ħäíݸ=äĦċÙ99ı¨‚ݏ¨ ‹ôġ\NšT3#Á™_rŸsܸ~ċĤOî>ŬġéqEpİLÛî‚ċääšPxïLşóD„:káÁ–„Iâ3\POHŬéRätF#s”ꗍ‡šMĝÛÙ:hù„ŽÀ“ÄÎş‰tŽRb"J#kZ³š‹3ùr&ŝċĉ?ÓBĥ[N½Ġ`Zĵ[ĉ F˙ zĝŞÑßá•ë` Ñuġäûêô‰'61°[²?ġĴĴ|s|bJ,ŠaHËTS_ÜqßñS<¸ï4<>(0Šw—`ƒ˜Ġï#k”‹)Xìàh‰kîÎÚèsıمù¨ŽQU„%x¤n[pe)0qüu—ÓڂÊùCVuît‹Á1°–[_¸é :‡Îœ9Ò]ÈÀÒ^SmvŬş:Ž?ÉÇ1Ç]ÑfĉS5Ç}ìÛĉîàż×żÂ³“Ù蝘œ&KBQ*Rûâ"iPĥĈuCZ7Œïµ“’÷›şìğp™{°ğËĊÙ}Ġ’Îtşr‡—2”Nà7ŝı"5>=%™‡—GUĠçUeóôûÊìÂÌ”g~÷7îîžĞ[ĥìYkmŬħöìَĞwyÜ#äsnáŝħħáŠG+[JJ*}I™ÛßОŬGf›Nœ¨j*.ÚçĤNü–CU1ùqyĝĜšùU”W’ŞÌë‹£Ò2d<~ˆw%$Ç$˘psDV&Á7ĜŬĴ4!+ƒ CyUq&9n=$|'R0áÚ÷ òĦ—´l‰Áŭjó]ĵ_TӌڽÔ\è:֋<ëP÷/éҎ>.¤Ĥ\¨$ħ(>îf²‚4yb˘ÂcƒÉl’Ž`[LŝÇ%i„ Š-/Ȓ”òväjÄV‹bMʞíF•%eGĥ9#ôêHÁâÛò˘ĵlTĈä§TĝáíĜ à!§fµoá/,ğ·`gcNuF£ƒ„ž÷ôvÛKÚyj P0Ŝùéç_'×ÔIÓ2Ġ=³Èn!·,ïv8Ö7Dáċx Mñ*ĵ†asûôÑċféá,]×oߺڃG§.;yb%?,Hĝ –eÑÊÁŞ!ü`#GA‡ÊsċꟜêì\ccŠú‘;d‘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œµ[_“ÛĥŸéM>„FÍĠħ`â/Ló?vڎ›şçË$3<è$Ŝc¨”›égé×ë×è.’€NÔɧ“ŭ`Rvğ‹Ŭß.àßG)Ħ£˙úçwg/ϳÑM}öû™T‚dr”Q)ˆ’#™rI$QC‰Èĝ¨ÊG?Vg)1™PİŬ<>áìúìß@_t aRàF¨‚ "%’ÂE„ÌZ‚Í31úĵ5tôĵŜ/X3ZsX3)L…É 3@ü$ ví#˙ÏünôíÈGÍÈ£2ĤG×gN1t$5ɨiŽéî,™U7ġäâ·³WÈl4L’Ğ]$3C”1ÉˤÊg‹·UÙ”Ż‹e^_N:I`ĴjŬŞEjô&1)˘7Ék’Ŝ0PћBPAzÂĦ%€êgÉŽRZ=+R(*ċ}òçɔĤ2M7ĞyS”ĞÉT2IRf@_רĤĝ Èg’EQu/"YÏĉf7yûKnM2>·jŝvs=~Ñä0£iòjµ{Ĉ%ü!kœġ%Ìùġâg”ÂR9şxsvñ+(§Â  ËâŠ,Ëy'XGG'?ŝôĉ ĥ›Ïh0ß.GĜïàŽÔ$A¨%ÖĦFS¤„6X€z~Ş‹ĠÍdÊÀĦR*“ĉ6÷sc 02Ş6ĊYVoè[['*…Ŭ˜:Òàâ›ğ|Ġĵ@ò×Qò–Mĉ³Uûb’zÏ‹ë{˙CJĦeĠ’€‘ùÇĵš-ÛhòĊ² 6ÜÖŝ[Ĥ`9³Ĥ}Iııım_5Oš²'r•·Ï*ħFê_~MĴRâ­$µ”DëŜu9… ‡£Û„­­9ˆÓm%쐨ĥ‡Çû‰* ­Ŭ~Z.iŬQ&öšyΐIS˜›™uRß×M~GZç{b䤰*­ AOp`-­è`üÀ?6ûÖ0ÀI³˜ĠĜ:×ĝùh”Q}È˙ p˘)†Œ-ó?ŒŠ<Ÿòì… C¤ĵ>êĦ@Î@N y€M•SĤ(¤U:švĦĜÚzœ_0?ĦË΅xŞRĜÉ@ċBÎcÚQψIuD÷Òn§q{ ÇüĈ³Ċ˘ÊëúŞ,?·€Ö˜ùâMŽÜûĦ›4Œ@µĴb”uŒe 8C–Šˆ_:wsËÙÊŻR´ŸŞ ˆi°—T’(÷ĉÏŠùR餏™2žı<7ÓCÇcàġ-„Bû ìióÈHÊEòéĥ˜[Q@Ĥş‰&ĊÍŞĴòEû|ĵvƒ“•IC´à‘Ĵh$–i1SĊÒöò$ġf½^ù˘\$³ċÒ ӌE~ĴʒğY3żu  żÓìQĦ<Ê"ö‰ÛûĊ’:<Š˙ÑäĞÚÙVyŸ 'mf˘…2ĝœZïÖeĠ䋝ĝ… BN1ĝí/ƒĥñ xSˆ_8DZĊùAĝe˜ÇİŞ2 eìöO-Ê ˘ lHña¤}MA9݈V~ğ9U~và†Gkjœcâ;dhc˜âptTkz³\’Ġì7½U˘Îb-J€"!Œ€ ­Sûôù(Ë04K½8˙éĠÑĝ&‹½ÄÙÔ¨N–âRĈá’ÁvX½O˘:'´˙çŻ²5˘Ép%v&yjÑŭV– #Z÷|]Ĵ ;ŬO(çĥOaËk ÷$›÷á-eêñĵI‚ʐzï÷ËE3ԗŒċj³ż€ °VŸç3LóüŜô2`È#‘Ò{(3”Pİ˘i0›$ĊY9)aQoh,T½ıš‚IóySV÷^š”×Ŭ£· –ÊäĤĝ˜ŻÚO²Ŭd2ċvY<ùĈEôÚÜŻ‹ıkAı%oê–ÓɵëVĦúœk¨hkXÖŝƒeUlE’ ґzHızSÎû$SM˜–ħ†B_”6–ڙıĥÙ5öe²0V‡]fPÑ ·ÎFèAh9áe‹9nşĵ˙ĉ=fç- & ëìp¸1ìéXµ†`xŻÈµ5l"ç˜à–s׍p°À·0-*0> ÛN†ž%…-Üv:+ĈÑÜĊ?ûÂ]:·XÄ$€IĞ˘ƒÜĞÑò3V_äŬX{Üĉ^ÛìġÀdĜù”~‹rıœU>ó¤\çĠĴénjĉ­áòáù‹6‹÷ه2×ċ™—mĦÏ€€ëëĵ%v0¨í#Ĝ›‹yÛ}….‹A \u³3˙ÑÌÀĉÖ£š2FÁü7CÉÒ³ÉĉAK¸Ìôš_€D3\àOĜ6Ŝéë[Şñ>ŽzĴŬCŝËá=•Òïo۔¸Ái*ħ/İ=˙I`xÂĥ†hJŬ ˙ÏwaG¨ Ż)~RX<‹ƒôŠĊC÷ÎTF8ĥI"w’î=> stream xœµZێı}ìG“Kşy'­‚˜£* ĉ’“Šßö*~µÉ’ciËċ]#ğ)Wë酠à>ï/Ĥ?_ŭ%M‚‘Â9 ĵmŒ ^ bŒ6cs9›‚•èFçËşÜÎĞUSW`ÄöËÚZĵĴÏ4EÂ@Ú|† Ğ˘if”…ŝış³Ÿm=%Ħ!èĠô‚* MŠÊ&µ%ŞvğŞħ‹ĝBkÔVé#A—i`ö­WMÛd2ĥU?dWÖíŞ\÷B7e;ż]moÒƒVI‚îĥ^Vġ&(éAċvÑoom/j[nlê‚÷MŸ(E³ĴßÍê³Ŭ&ÙmğŞíú˔0/(Â>Àà ͽĤĴVêcsŞ! §Âİ 6”ˆÁëë0b™\Ċï‰l5¸ŬÖe[Ġ`ħĤ~Öór4*׍s/ 0F„iBÛMybċž bċ†Àŝ´·ġ÷È£7}‰ÛĈB7v½h’NT-S7ƒÊ¤˘mšòĈêe7ûŬnŭ%Ô÷çÈ Lu’Ì]Vŝ‘£Has%(Ş{Y]Ç0íĥLBŒÚofA(GoúÙ­¤F; LxĈÁTè¸==Âm³p•v0˙¨Ó‚Ù%ĵ’Ç@Ĵ”€Ġ”ˆ ĞìÙñIÂ;Vsğ‡ĦÑ +ÀÊ…^£ŸNh+_m ,àß@ñù‡Ù¤½‹è{žÙè4(ıqéġĞyÖsᯞ†˜ÀŠÊ…Ó'„C ,İ&™¸‘h<Ép[İ "7œ=ÁÎÉLá—ŬÇ;Mçž /ıš öËÎv\H6 ĉ‘3Ħu9˙ĊgÚ§ÇmÙAIöûU¸”[Ġ-ž^0`/ßġ’îŞú—²öc҉]9R„ÊϰnËÙÚĈ.µCWçĊ.&ÀIŭúßqara›y½šu¤Œ8›’½ }°óvUm˙;n#RĈHŝ1ĈJ8„ÜÄñÀâ¸@¨¤ĉ9-=ïˆ\Öù­§¤À<î€Á¤ şxĠ7‰NJ=ŒGÁ8ú\÷ĥÁùü  0Wì(*<I-îAN€Œ5p1>Ĝ&)$Ì8 ̧˜CĝEQ ?­šŬşœ÷,r4OIyÏĠĤnÓèĈm,żH†–>ԙ޵ŞÎĦÄĦrX”í+G…!y„}Ÿ5KÜħIoµĥçx~Xe; ]ġf·ĥ`ìqŻG\…i„šÛêîûNó`Ĉ1êƒyll{[%"ìĜl{[ĥñ‰´ĞĞÏĞ…í?ÏÊf5ï'ıÚşútâĝĈ˘äÄ:ĴœUûn£7Ñ[iM’¤WÀjÁ´g—DŠ{ÎN8L@™úĦ`ŭpö Ò;˘äñyB€=L‘ƒs…Ŝ\JŠah§ê ĜHş<=âÀ\†(“K)ëè9Ë _Ž(xĵ@Q„Ù-—He]ŭ–XœKI鉣oÛ=ì1¨ÉñOġŞí·î„‡$ĜKYj´\…â0™Ÿ›ŭü6ŽÓ2UHċż8 ;ÛßÜ@÷ŻÚíkw–áO)\a£…ßm£ N°ŝ³€J<ż-ërŜ°—[€+K3œÀ–hTìLÒ<ˆòL#67Umû9Í+‡„­Mn#èğüñÇ£Ú:bLmwµmA&u‡4À n<ó òÛĥM´ÉA×2q€´â1Xâ0elxvĥH]?K§GnĊ‚SGû#OçˇÁ҈ä‰ ë>kSÌ×ÔP3žµŸTĤÍêNù¸šC"yÂYeĴÇs‰QVó<ŸñĦĉU‡K˙ħ”<s8‹ŬÇéÇéHgxŞ6]À˜*Lŝ4¤Ÿq°Ž‡ġÎzH‡µ…Ĥ÷Búˆ‚ÇC:SÊçÖ¤ğ³–7ŭ9ôĝa¸ÓşWïÏ~×ËX-Ŝôuó=óϒ}ÓúhġrԖzĤX˘ĥ"RÛÖİĠż=’3p7ÔÌÏËjŬYPZ˜’C†×C[şƒr@WÎGUÀKF‰cr(…Q% Ñ|߸ÇÂç6ĦÍÚG†œ&†ìE1‘1dßCùâ-èAvùÍ|e·swlí ä½ä²ƒvgÓµ…h½‘áÔö@.e2Ŝ…;÷×P ]„Uµ÷&ÛBìWXúB2ŒO°&¤^ìi2$˙O{0Ä fĉ„끘}i],.8 Ôáêž4KÁ߀\FÖI87obàí‘›…Œ*Ès’ċC³ëìĦ,Ôż:öİš3 —:˜…ñ$ĞbŒ÷zVĊDŝ¤=öî-Ÿ%xñhŽfEYŒ$›¸>”˜UJ´d˜ž3ïû ˜ž½÷Ó'ÖşĵëËÜÏP¨çeo_ÄËü:§ÙY;ż<Žç] äc=£hN0ˆ1f@°xIRXÁrzĢCG KéQÌ`DÉK1ç-B^ïOŸżŝŭŭû§LE0ˆÈ%e³ŝ4Â9FŒ°ƒÓ#×ċ ëŝ|”+-îe# Ϩcĵ²'`hp@Z”}ħWd…Ÿ }[fïċ"k“Ĵm²ĥíÛ´èÛ\ömEOÈÉĈJv†L—ÊúLW‘żÏĉHd_šÊĴŬÛc2{LfÉì1™=ĈÙ3£İÉüÛОÉÇ<›·<ċcqĵMíÉħGŞt÷ D *I P£úìĠ!¸FMħNtŸQŭ³‰·ÑñcĵŽŽEe~ëŻ£}|ŝӁ> stream xœí[[oÛÈ~öGnF k<÷‹ÑŠ›‹ Í:^ô!ŜZ˘líJ˘BÉ Rô˙öoôœám¨ˆòE²Š‹<˜¤fÎmÎċ;‡Ì§„Qž0üWŭ/W6ı[> ´QÔêÄ2ċ¨‰fRS-á-uŒ'E–ü3Yġž İ’ğÇ7 ĤƒŸj*´Â š: £š'’ jŻ9(ꝴ*ùĵ€üߞÀça ѧÚ%ĠŸñ"ys H“xê.ıžJĠy˘µÜ€şÎÚkÁÚkeÚk+zèD{ì‘!âe£5<âĊâ瑎ĵ‘Á]·òĝHÉ#y|$Gy~½ŝiÀ9óÉġğÁġ÷ı™f䣑½cyí‘lĴ"½MŸġîk‘ġîE.¸ÓĈYô/O•ñ^$#Ħ)“ĝlŽġb8ÖÁ>²É›Ë´¸mŠ´ĝŠO’|•5ĈSä‡ĜvĵT†>ĜšAôyuèٜ%ëp&g_nϰ`š ĝİcğávÛ}òM„Aœ+Y­³b–Îg˙:èĝA‰1˘ûÎuŜ:3x6(ġ*ŝÜh% ¤TİĠxžŻÑŽÙ"š7•Żz2HÊİÀŻÈÒɛÙò-šH¨%,w+Á…ĦVm)‘~9Äħ”ó‹-"‚ˆo¸Ÿ:$‹DÄÙ!ÂB{ĉşÂϏ%­qÔ0ÓĦÙAòÖıĴ#oC°3ÜEşżMèß°<`ĦĦŸÙìĦ˙rÔĦ¤Ĉ‰?Zƒ?Zƒ—µŬ^ÀD×­[̓òÔċÀ Kì—.ëÎÀ‘tn:An³úڐ‡u6İÖ AfġfHZo'‹ĵ¨wXG é˜Ì°İHçuĞ!I~ût5YOòb–-7%i|ÂÉ4]ßÏòF&œgËğövsI5Éçó´¨~”ÁX‘nòşrœìjh ]1€yš@ĥ ˆTŭM˙†­Ì %umKc-‡0×Oiiö8żÁVBŝġ. Iö$uHWû’TNÉT“|J×r‘û”\ÙQ֞—ĥ+€oáĠ‹'$šCQP2ƒU„޲J.žŒ¤ΣâÏŻDŒ‡&çG§£àܪ͉é"žâTxt˙ÀJ½ATœžïġ¨ĦĵѨápŻq‰òü/ċ;iq>V“C= ˆ3¨ŒİğÒñA‹™JşŠc —9˜îëöîáñáµÒS”Ë€jÀŞw버ÁFLò&ĝ։†Ôè§² 8ĉŝyFßòmk))ä¨ÚĝÂĞ0WydšÑKŭċ³ iAmÛY6×mjìP…M²ġ¸˜­ lÎëÇzÊĠĤ֖5[o7ê˙ċŬğ]ï aqU*”JÈRÚpĉşl-ĜBEaƒ÷ŽkUdkhCÓ*]àskH>-C‹qYwƒñqìâŒù|şÉ–ĠrĤ İžÏëĤï;Û;‘Žä=ôħ!÷8Yĉ›zk@̛tĥl×ΖÓĵXIJzdnÚğŞ§·@À7]<^×]ĵ\ˆ†Äd·•Ĥ¤D+M.ÓĊ ĠAƒÁACrF 2LxÚGĥ1,phmƒ‹ħ1ĝşÊ0u"V‚ĵĉ ¸ŠÁ—z4 ÷éçĴ"ÉŞ÷—<$Ĉ"˙<›T?züfëzİÚ2‡.‡ñŝGK8ƒRéŬWr"k)Agt×ZQÉİÔ ‡r[Ĵ}CĴ=4ݵq‚ ôµiEésşœt¤•?š€İ– îšl@MÈҎ(ħœĝۛâû7leXh žÚ™)Üħsfşâ÷8 ×0°w[Ċ´ì`ĝе5`ޏ7ràÛڎB"à°àÓ÷YħΗġ+-ëĞ˙U_ia-à²lĈX(P‹¸rŠñ›”# _×â˜UşĤû´HÇHX‡żêjQyŬÍpW­ÂbYkŜû€´{Ğ}˙†íHVPŬ~܄ĜC;ñX½ßC˙ċQ(4½­Š#ğĴcQ’³Ğ| Xù€ĵ-Òċ8Ÿ­ÏöUúÙä²ĉȰ2ŝ9ŠóËvĴt6­ˆ×_§E–Ñiqĥ˙çL ôġI[c’0+/ʎ² ½Év˘˜òap˘—kÌêğ*†’È]µŻŻĉI &ùv\ï;zŜ×7CyŝM—€|ÒÛy½Ĝ8rĠN×Ûâĵŝ]’ġĝ]’ŸÀĈ`ËÔÎċ[²ğŞW@[ EµfÔÛ_µú7lĊ ,Äΰ‰­5uzgĴlW­=<^/ÜAŸ¤Ô˙``q>ÖÀ2&y‚eÇv'XĈŠžGXvl·s`İËx?9´á6DĊ1ĦMDr?´9Á×:ú&ÄQg1ÍSÌOı¨hĝáYLñ•áYÌêÈĴĞĊ^xĉ<ÓEC†‰~xÖżaĞä8ÏݵÏEg{ÈPmÄŻïŝљ(³à[8‚àRžP¤'@ĵó=@5Zi”3œj¨ŻüfŝÚVŭ_>\ÖBóÄPn~p1Œd ˘“ ¨TùĥÉTpNÇK9~Ğ(lúŝĊšôXħÂî‹.µêÈ`ŝ*!‰3[ÉûÍfµĵ¸C|Ç 1.i1Ž\Ğà§4/î.Véx(ÂûbAp~˙Cûàio$vËd{™H?N&ÙüvÈqöÁ4yÈ6›l~^ÏÜ4y;T"ڑRfü&eùŸ|VOnj­§âp£=ù°ÉÔĴ0$i佸˙WÈσ˙ĉ/üRendstream 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 4272 >> stream xœÍ[ÛrHrĜGĊ|czÀ˜„ş£&ìˆġÌÎĴ½áöĥğeûĦÛ Iœ% @ġŒ6ö[ü{ŝ ŸĴ P`“’B{ŭX—ĴĴ̓'³JżLŠœM úŝŸ­Î.Ŝ™ÉMwö˙b6/K3іË\”U•+1‘œċFMÚzò_“ġY‘[#ua'7w8ğ>ûwŒ/û L.Ĵ˘ö,/-ÚË"W íunDœ@ĉĥFN~ĊTCZ6ùĤzİ0š.Ĥ+rĦŠÂ–x(XážÚHÀÜÚ'áżÙjòŭ%äSċÄĉV^N.ŻÏĵbĜDɜ Ĥ'†‹\ĝiuö!{5=WÀÚ2këjXßÄ,ÛŜÖñEemġëòݞm›6ólSŬ/›j>|h³N‡ÑÙŞîşêĤžŝ÷ċŸÎ~ĵ¤%NŻCè×ÁXeXǎ,û‡ódŽœq[–ÚĥÀàAqË­yH‹ÌaVcE:ğÓÜ÷‹ġôòçç‰É2—|<êÇl{Í^ƒä" Ĵ×€ŭ=B~ ëeċŽüɀäĦ%sĥü€´ûçEA>‘Ž]!+/sàˆ&…WċĴZOÑ °2Ğ–]CoŭގÏ:ğëêyhÇyVu/UìžmşúnŜ„WĵŻêím{1ë0Ó˙f=fĈ!ĉu7k‡¸~ 4úÛĜìğaƒ‡À§”ĊŻ}la} îjïÂŜîLç’ġᎷ)ŸïNq²pòRĞÇŬuÛĴ⛤}‹-ŻË XZ`酒ìóÑ!dŽmĵíïó‹9ôòaèĴ ü-ù3éÌŜUŽ˙O’!iwùħ4èë9oéÙÔëa˙ŝ1Ġ€)7ĦuÁ–Ì ;kŸ1³'`é:żnŻ>ŠĠ8’4Ò\àR mäü0GĝÒĝSÄ2ö%'™é…'ñ#ùÛ^nѽ•eyĦŭ|³eÓeeAa܌Ĉü| 'ÀPĞg{t@Ğ1|ŽRÈï^-•69Ĉü Ċ‰<'v…tĤ—q…tďq“FĤTXäĥnÔŜ!¨.Ġ#éƒĦĉeÁ˜m „ Bç $Óm 2†;VÙËŞëêIÖY×DzAÈea`Á äëıħFgo'÷?ŠĜ:šĝŠ‘*—ĊHÈìòĥöÙĈ]j•s)G]Ŝ½m›móŭŬġž4%™ öœjG%›jögÓŜNl ” Œü ‰#’ “½—%Ŭ}·­WĦrŞm3 ÑÁê8†ÎëëĤ]UŽÀômŞĞĉn봇ħ™ÙŬ58gD iK—(nùÍá *xôKÚMn>éìênë_lib’D~jĈÒ¸ĉ"H<=0übŬÏ4êü.6ÑIb…!xĥˆ²ÙìSMìÍOŽìmħ^ĴŞeĝUĞ(şÊVĠb½ĵËĴŬ˘Ûvŭ˜>Ñ£aDVEi™ÊêßĥuğĈ˜N}ğŞc<ç*¨nÓ,ÖhÒ?­Ŭ6ùT0I8p]ĵ61…N)ŬрoÑ:× ĥùĜÎ4r8Thŝİ^-ë˜İÂ@nИ†ÔEÏ%ô°ĈîÍ£ À÷CNKê÷Óíĝƒ¤^?_ĥ!Ĝ—¤ÏûF?ĝ£UBóÒhŭÌU.W-Qu&¤s|_r-KdŒ İĴċ°ı‡Êʇ{ì$Ĝh(r͇Û*`<)Á~`’÷'â&²ÄÔÊ€nÛQ4‰‚FDHñÁäsìğ‰ÜE9‘šç’‡šÑt.-#/LÀB;”"ÄĈôhĞÌŞċ²ùĠ™ŻSöa íŞÎM:ċcx=”ó6AĠGÒöxEômœÍŬĤÚÎn‡/ĞĠȟ;˘˘³´ġ²nĥĦ#ÙM½ÛĊlĝà!Q{°éHÄс£ġşĞ_Çß ·;/ŒWmĠ=¨¨ˆ`RıÔ^Uëú×}J*AJüšu_ĤF\…F]Mälñ×zÏp+´pß2§IĜìF”ı*ôS‚tÉÁùô¨Çc4U5m!ÓiŒ.H­ĞĞĊڅiW˘ĥ‰ Ê"TŽÑcĝğ8Ĵü~³˜US–-÷Á&§ ŬĞr½‹KôXHˆàäˆĴnħP öÈ:GËó6:”nyˆ­}Ċ–ìôĉnUŻ·]¨ÔV ´eÎá,£\È Ê SȕيˆÊ(J'sJ†bàĥ­ĉ " >Œ—t*YaäöaÌıSĠm>Sˆ„ôŞÎäüXßDE¤ĞŬc-x]–ݵžŽ>KJ_‰ôı ôù 1)”"vÒ“Yŭ,>Lü1ò?F z4í›@ï Y8UÀ=lÑ Œ­7mŬEŬƒŞÒn8´˘œ;Òĉ:J[ġ•|şy ~²ˆÙ³1éBUşE9^ˆ‹&4uİ‘›#ɉ$Eé%È~ô݁nÁ£„ ì†Y·lĥ#ІËb¤Öž>ĵĈc(&=ámì2T*>ê¸Ù§ħsY pKNÊNz,âÉ˙Uj‚ĉ‰{Ù;slz9µÜ@–Á<˙gT³T‰s>ä #7‹&İAĜI°'ˆê—žD]ög@¨” 7ĝ0YÁÑŒ T 0'Ë'”ȜÍd…HĊİşĜY‚ĞĦċ¨DD kEĞŝ‹ÁĈ]ĞÜœ–â[*$"0‚0,—"  ™!'·}F6*IKçċİŭ—DŽ~MÖ LÖŒÖD9¤éš4v"=´&­&†˜ñ¨ˆ ß: ]À>u€)ĥ1CÀ‡Ç…{,9Éġu;<ÖcÛ· I% 67dÖ!’ÖSQP5fżùĴŒ2BX ,Úù€r6Í WÎ"†kĵHä–RġûÍ ż“T1(9놯ŬµŜìëĥoU Y•ħqĥ 5Ž=Hċ ħÙß~Zĥ}Êĉ‚RR*5šH+@I7–ò;‘!ğ* G.–H´(aÏŝÌ\„ i<Ç̂ħGÓú/‡t…p‘Ô¨ÉıC/U˘´ŬíŬUš˙Z OV‚1ıè‡ñàġPÏ‡%÷½šr²’˘Ì>MÉB ²ÑjħĴĤŒVˆ`Ay5ġ,bÔ cÂM÷˘½‚gÍrĝŞĝîzP™šë˘\ŸŸi°JäĊíŞ—€„ŜÔß=SĠ|Iı_èÈ5Wo·ÛÍw³f^O•? ÛüĤin–ŝ½°,ËÁ|/ŞÍ˘ğçġĵ`9 (l$ù4İ6.Ü/WŠĠvófÖ]´ġµ÷FKëġĴ˜m6qF"˘ĜÒÜ 4_0 ċ:Q Îc9˜¤£÷ÛíjùêÍî½{(€r€²‰ ž&°Œ`‘‘—&…E/œıVĊ¤Cô ĴMôĴw°ñûáq³cîîë>s‡€…è1âúnI.âĜİì—;äbżĞ]5Öì··ŝ­BÜ3‹6MħS½Î]Ù_&55ş&ñ“ßcċü?› nµÚ,H%yÙ>l` KˆBżŬ £í^mvCĈˆ€ĵB£ŭ‘‚Ëf·U¤7:[ôĵn," 5=ÜğÍ2Übl†Żu˙¸G"äÉJ‰>Fù0ï”/K¤Íî…ꎆÑ^<ċJä°ċ½óD£ż½Ĉ²jĉ‹ŻbM…4ĝÏlö€€hPžÌéM?Oy{923-ĝ¨OÓ>x&G™.¨PڇGĤĦCQÎĊXq˘³r’a Y]Ż£xŸÓYאc_6mŭiÑÜĊÀ•;wèµ&œ>—1û›†ç"1ös¸ÌÈûğŒĈĠÄğŒ´É³jıĴç{Ëg\"= 'Œŭ–YW‚9´e’lšĊ}›dè"ëCgoätˆjŬšR8~q˘R€!şİ“Ġeü˜J€E –#]ĊjGÏÍô¸Ä‘ì”ua`^µîk#xżnâa_¸—ż×;`rŞ/Ÿ.h!{ċ^WiÊâíB†›¤èbÒ ¨ÓÀO>9.1­ïKCЇïœÏ{Roè¸4$Ï~G€“ï‹ĜÇcŝPŭ½+)³!Ĉžtr‹³{=8 .Àwmħß돉†KĵġoÛĥšĊm½'yûÓX–}%D‡ÙĵÚV{ρÈıaÉYbñà&‡Ï÷Ĝ9WÓÎĦëŝX‘àÙ'*>0Ċ{7Ċs.á€û¤§_ĝÎz2{<Žzî­EşVnÙhďŸßS?É Ĉp[žî)TıVġéo0j¤½Èġ“™³ŻŻ›ĉ˜;ŒñŽR:ĉiô˙d¤·zU-–'WĊ…Sî*î÷WUK…cH<­4â (Âe#.ĉ½ıT{ÔçÙP8†Wñњžžg@fÔQ|U†òËĉĥY÷Ŝ)‚švħ ¤İθ—‹nû^5ˆ1úÛĴÄÖp 9é8h W Ǣï kŝ–TúowĞĞş=Z„żéïÉ5œní&·OşÌ1éÜÙ×ß ñ1+>NótĴ"?ul]!š(×˙Û, ÈäF3½°ìŭĥù‹MŞÌUeiÈ’ĴĞ ˙çâfM“MĦtAÙß"ÇaİÜR‹\”ŭùÄOġU{GÄîö‘;òs›ÌĵöC#Á*ĤÉQG?–R„eħ–ŭ·Š405ÓïÍĊ;dÄ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 4119 >> stream xœŬ\َĈüĜÈGC§ö%ˆÀ+Ć3Ó@ÚóÀ–Ĝ-Ùİ‘Ĝž´‘oÉïċ7rk!ĞŠ˘ÔŬZ ˜‡!KµŜsênUì#”2˙ü˙ÓĠĠ›·’Œî·W"Lj(9úx…Fß^aÊeŽHRĈs.FĞ+&ÍuW°ĵz•ʑIÂHTêJ(”pbkĦÑŭĠ‡+l‡ù˙ĤĞÑ×04Ĉ#‘ „ÔèúîÊM 0W9–ş•9‘|t½şşÉVe3Żg #XÁIJm9mu5ž`…qU6+·ÓÍbm ß_˙ċêëëĞż™I£\Ċ3ìJ˘v‹%TçRG‹ġi%Ls˜UTÉ$Á0)Dc‰Œr‰m­}Ò|$s&9lj8Ë1e'ˑĤNó1Ê ÓŠêĴ[û¨PN5×ZĜÎ6àH3¤ñÈ1§ëŸ}÷‡Àì’ħ\cĉğjĥ˜MıOˆxIĥ¸ë ˙Ğrğ-îKS s  Ï‹­Qq½ûĊŻcÂ-–•U[fŸ”ËY>@ŽĴ@—V ‚ZTĐúvÇ@ P@K„Â4ภuiV…Ò²{<3aBhv 5~ı)#˜ħŒA›.ë*‚ĥ hĉċ.vaìê(4” èÛ#,Ĥ}ÂırK\ô·£}ünĈ¨nÓ/µu‹ANDÍ~‹91Ò2A8ÉfâG´RË~:?áG,—`‹&bÛĤü°Ĝ”3_•KĞ˘ Û²Ù%V LŸj ħ$&9`Ûîbq’ĥQl4q²Ùm˙lȲ´ ;ĵħuğĵ.‰&oı"ÎÀ•DċĴ?hy¤qĥ(–‹ßĈ0²!‚ 0ÖvÁ£|Ħ‚C‘5µŭ@WmO–íï´Ï&Ôġżß.ŞJ‰Žaš=†ĤuUµîˆmĵï@ZĥnÊĈO•ÊqÛX)˜ħ¤4‹§6/}׈%Ú™Î(£àkL !µ]Ï@ë˘ëñqY³°-ş]‘ÚÇÍŞ3.Œŝ%-A*ûjFӚ6°ŬÑq½żG’! –ˆ-fÛîx‹)À"ü Ċ,ĠçĉR,²,—g`yĵĈ/—e…†eÁD n9Öbĥ-ÇÔ ÉE ßfŒM!<ËN?öt^}PÚ-ĊhöY×<5ħÌeĠ€r ïµÔ}B%ôáPĤuLÛNE’c–šƒh•ŜQ¨;ĠÒçbš1ÌÂrF3ñÂç‘eĴ,0(–‡ĠmıĽ\–+@/R‹*˜Óf×Pißıq™âË n˘$Ĉ×·;Ĉ`ÂòÄA‰7·ÔÇ£Ġ÷ȅ0cË}.ÄBx1n;‹ûaƒ>x×ñGcPPèéa9 ›âÛ¨ ,j_WÓNáACnŜ ·rˆ]oú|‹t¨€E‰‹ĥ Ħ E2ç‰ÏĈ „ST à…³óħïYZ­ÏN+)Žgai…щĵ"ĵż2cnċ°°ÖFëk{•2†Œ(B²À¤a{³)×&4lıˆÓ-‡í·0°5ĜleJĈûvÇgi!IyÈeè̘‡Ħĉĝ ˜'ˁè(6\ŽFÖÚżğ_.t(}0è0‚&΁ow‚o zE!oC.v>ç—ÚÄaBPr@ÓEÚ¸ge3GŽÜÒ,Y3Ħ8ÏzŽÁ‰àv°ġáNÀ…ı›Üì*…û(­Ì(}ÀÁ²ÙÁH:ÂöëPúÁMcT{œ“ŒQJ‚­Cqu)Ĥ„ċ9ĤœšĦ5LIDmŭÂú†B 0.êÀ ¨ĤĴĥ6>L•ŭ:ğC=aK޲ı†"ĊcjĝfÇsƒkXh{Îp˙Ǎhyާ&uİÈ:nÏhĝ‰eİâDGħ|(‡ME”¨?#ĞaúäÓ^Àš a]'‹ša[·´‹ġP³3s'Ĵqç YÏD6ix;·IOÜñy†½{èÎ0€rÙbŬÔíáŠÂq0ëáĜ¸™/˘˜jżßÔħ¤G„J*%÷Ĝ\³|jÀ@è“BD-w2§?–ƒÇn_wöÖĂô ñ.`ŻÂ˘ñΐMù âÙ;+^?½€„lz=fÊ8uħrìq—uĦR²4HÇˆä µ¤û‚CĴX§ ÔL„…?  aùsÎħ²z‚³[§½aËNT ;î€OîĞè°w?E$!áooCë;ë9/µŭÁû‚zâ“Hx—Ġ$)¤wż÷ûĜÑ_ċĵ+Ġúĥï˜XoGc8[Ûmù‡+.˜ıkÌ@zı @œŒ°4îmÊÑßG[ksSXĝTŭĞ;ß-ħ˘d) ¸$(‡½Ž*,EÛħ ŭİdĉޏéġÛ§ğgğF8cŻ1‘d+€ğ"ħ0S?Ĵ=mü=°q”Ŭà÷ 7vZóìĠ]]żĥñI˜Ž†ákŽdéH:{ôĊƒ%ËyŽ@s:$}ëŭí3†8ADFÌŬĈ\’y§@b 8{a$Ÿtzh ›  ôé³´ÜÄ1ì\.ÓŝÊUħXv}v Rĝ›<áŜOñŭ z BEj`H8ž˘ĝî(’ùĉĝŸo‹M>­WC\§œ€Œĥž&FŬïçúŝ}1qĴÌ·ìÒ¸ÄÏ!û1N×9•"&ûÍMDw äâèn ;2ƒŽÖ‡Xż6IF|µž×UùêÄXÚëû÷ğÄ'TpD4!8^t?ñ÷7è! yL|!ıž`ŝŝO@“€Œµì1¨˙Ŝ’Ü|Òc@ĵŝëĠġB…Îcvۚl÷(ĵóÌÍg·½nÀYYËüÇr³­ĞüGƒßöÚÓk߈¨ìü*߸í£Îî.Úsï¤ğSyLéĉ†ÄsĈò˜9ğá/5çżˆ°ú…“‚†Á›ÚĞ1ö7èó‹@U2¸§dŠSWÌzHıÈê* ĞokGÊ} çm&ŒİœA[&ˆï¤Ní²ÎÇ ’(eòIŸ’8uŒôä!S—~ˆvRŒi²9 ñxI§„˜tħ‚€)ᚽQş‡ä&™=é²-³ çωPìlıï¨żŸüîr İ:8cFÓÜNŻ%Í,ż.§èÔÈÜE’ŭ×ò³4ñĠbvRrÖ'˘.oLV£Û* 2'í{')cÏ<96, $JvyNÌw‡4~ÛĦò>O€ƒŝħwk˙Cóüá™ÉeP“Í›f½ŭ›7Sw‘†‚kSTùf2ž€ËżŜÔĈğÊëÍŭ›u1µß‡‚[ŭŒùü폛şİżx¸{^ZmϜ7Ÿ—'Súz6+—·îŝşeӔËö£v›#xĊUĉĉln;V˙ğ“ró·Şî‡èì]S˙b{“Ddċò1Ì÷Í[P]÷[xú È=+endstream endobj 185 0 obj << /Filter /FlateDecode /Length 4884 >> stream xœí]Ûn#Irì7ÂA´÷ĦèmĤó~iĜ€w3k^`§[ĥÔó@‰%‰ğİ!İéicżeÏżáˆĴĵUħX¤¨ÖôĜĉĦKÉʌȈ—ÌŒĴùaL Sü/ü{}?úÇ÷†o·#Mċ֌?èĝ÷#Ĉ­"LŠ(=I£5Ħıe9ú€oYÂÙĜpɉ•Vj˘¸‹ŽoG?Œ˜§;˙\ߏ{´™k˘)µ‹›Q3Ħ²b¸!ܨñĊŭè²ú›z9ŸLıħ„2[í>?ԓï/ŝmôÍĊèğӖÓâ#ĥ|<#‰„iĥxx âœnhĜĦĵúX­ÖĞ'Ż6ġC=ÛĠó“Éĉ˘Mîh÷:/§ù€ĴL³˜Oj)ĉ“tą#Ĉ•: -í·˜ 0‘ò­ĤIĈĦ˘Ô$g%ùt K´’0¤$ԉF‚óġĠ„SÔĦĞ–}*Ì $g@Ğħ!Ò(Ċ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…褀švÖĥ1<ıCÑ)3BÒ0GpSrŠ›'â&)¤$ŬŽYÒbʌ8ĥ´%\ËI'‰~NĂ•t,F,-÷ŬP ˙<â,e’?/–*PÌËȘr‘Ôyiße˜Ìú°QĥŬvù….¤ñ i¨2–…%  ç´éf`“LŒY¸ pí}àO¤"²^T:K ÚtëרàÂ^°ñU¨pìë+TëÓ}DceéÏÂʒ­sj+·LħhùĞa[ƒ"­†ûÌ?S-Â1ŞG<@&ûêN÷{l[bt?kÔ;nx9r=9šÓí.Áğ´ÄïdhÌá:µ4½ïüP&-úL/Sí3L/“}5½WÓûŞĤ—àŬ5Ĉ–éQhsĥ4½ïüÍ>6`]Ïfáŝr*3ħËgXaÉÁĞZáW´Âï]–Vˆk"xi…Ô=gGƒr˘9ëÙÑè3Á‚z6ÊgÙ_IŝĠŝ^íïëÙ_Ĉva‘í!xEnŠĦĜÒ2Që(QċòŜ˘ĝïÙ§ìÊqBe³Opµ^/÷2Ԃf6Ġ£4‡m³ zYn­ğVèUQïu~œċÇċÉĥyÖVcqεîE÷"·¸*ĥ<ŽùÓ·³B |%…$@Y 3*ËbK PĈJbÊEĵ::gÑ#)` @"u8~Ĝî6“)ƒùXíŞĊêĥÇïgàŽsp^% dîşè),½‹İ˘[żwûҎ–1M˜ŭĝµ'ìheċepfċ%Hi€$-OKš~ĉ<i#aFBġ]S8Ĉİ­>ïêmÀ2ġä†İX&˙ Ż„WR]pĤíé´ĊhRzşÒĦ2Žˆ² DiÈmÜ9%BŽ Ԕ¸˜aÖЉƒÉX§ĞÇûfò —ÇÉAaI˙ġÀî‰Q4)$£-+$a JxYd[ZĜ’FU™À[âĵ´L]Ş`ˆĤ!-ğŻ·ÛÙm½Ÿ™e²eGÉÁTĤ{Y}ÈàéħGöLҘTà³ú=Ô6kV­oR ôġrĥŬö˘E ˘ÁşèĊĊ6·n{ŭS 8Sg(ˆĊ” ܢw°Ŭ²֊‹’›ŝE‰N&ĴÈCËĦĦ{· ’SĉDÉi|·-9„†-mg›[‹ÇäŠnŝqßjä ;{ı§4´“{†–A{`0+g”—ÀTÊĦd•1Ŝóbb1ĉ+İW†Ì`ŬĝÚA³ vrÀ²sĠï֛M½}XŻĉġê:£MuUï>Ġàĥ§ ƒšğŝg+CE~ükĥŠ?9_·ß ˘;omêŬfQO|ÂËUġc=oFwNAžÂ° ¨òs ÉYµğĞħ ŸġÓn3ón pÛrK‚꽐¨¤ÎĞ^(I’âY3g†hñ‚7rúÙµ§ì„ĴŝĵEjdKĞÙnñc™¨´œ^-vq. +ê[°!˘N¨ŞFfŞíÛÉT+í÷qĥëĝ²ġó :Ô"`G!ƒSäP)5†q¤ĥX•6ôŝ›ġnŭÛÇâE~³ŭbƒĊ7Ĵö ¸S›Ïy×ğ…żRi€ÓĥZ ħXÏ "/wàœ?NXYSÍˀj˜GHÓSTğuxĥ¨µÇM”* ÛĝĦh˘” *ecıċQ6ù÷Y|\ûĵ€KVŬá¸Ĥ0v½Ğ*X/ş|•´Z/ĉá'<·(ħfòÀóĤ^lA6Ħ%–Tw‹80•mљ ıfÂóz{½Y\Ġq| ¸ˆoÂĞÀ)a×§W(´T™,Z*"á'Ċ-8Â&ÄI"NŞQ80˘·lkD‚MÖ\?Çdƒ˘xïÖèKDħ˙ ß5ïzAó³Uê¸Ú.nWuşsÄ{°ĈK·(–™Šdŝ0R@Öcİ '€Q…Ž•;ŒXM=ŝŻñ íŒÔßï0ş Ôĵ§î*@Áôû=ad˜€öʗRü>Ó°àÛîWuİ.G …-Y_Kè…>ŝğƒàŬ/·mL. r@ĵ ’·ÒžËËħI3„ğ~ ’ÁM‹Ĉi•1‡ĈÓx­î²úŝ{‰˜yTŝiÚ²F)tżQ| Ì>cŝˆĞ=77ëġĠló&ORop̐Zî(è)sÇŬ àÀy)üŠÔM%Éuqçé˘h:ÉC9âǽ<7ݤ§)£ĉˆ·éeŻ€ûn‘úĠ‹ˆ‰ċoQšmÉ5¸ŭĈÛ?jfaíŜ×ÇÉÇI³(xÇ„p0g —âü9Äí =ş>/jd—")Äv`ĞÇUş“?SÀ‚Ïè`v™Uršûú]´@‘­ípà ïâßG˙ğ,ĉ݃ŞdSj[ŝ^ßC‘^á~́AÉġúŝMÌypŞ4LĠçôM¤™r……sĥ 9§1˜ ÈX—ġ_ÏŞöË4˘0œ V/2HÊÉÓißpè!-(ĥî2%>:Ÿ:úĴ•ûĠ²n‚İŻ9ôñ.„M†ÚlŝÂyoêüĉlı\j˘¨óı·Ï7üş=üfq{Gq˜C­b/iñbž^Ċ4ĉĦ^͛´È³`Ğxŭğĥ†ŬÍ6·u1n‹ż6ënŝ–EgxŒ &/´tùÓ Áċż,‚Ü„€’”r°ÚÂċzhÊĈ€ù´M ĜŸ…HÌC0÷€lO„V³eZ;ĥŻEs#9Ü2?İċ\†8›!Ôq“GKQ}Â,XKt£uLD÷tħ{ räÄ<Ĉ†‚Ċ$}+ĉJ釖ö[‚ââ´|Ği)u$9ĴĴEĦ# ìĴ•¨$Hw/xé œ§‘ĠÛí ™ 8ݏŠşé%²î];ˆ‘t@IXRçJ+!¨”ÖKoš¸x>Ij›Ž|şŸ†vM1ĉ°xóí C_öúâ# ÌT}¨/}àÙ²èšdâ3ÉV!Ż%–ĥZJ[eœ‡-ġdĵáŸuu*Ú*î*uâŽşÈ­|È@1 Rš)9Ï'#GIëÁŭXOP 2›öŽ3•=Úy‡´i=uÚ îÔQ.d‡‹.Âş\4­AC˜?.òBÛ'ı•ċbĜ3Oñ0ɂuNŭ~˘-™9MP8A\Nîdž‚ôO½çHóPÉŸ;ÌL#ŝ.3Mká:ġàĤ;°`œ´Ž64n2½"8ŭÔ{Z0$ò ƒÒ¸—CŸ£ö³§ÁÌŜ™ßü ŽÚ‘>ıÚ"öŸékS¤ß÷µŻ‘ŝ˙z¤ï35§ŸÀ—ŞKèdu·[ IÂvÎP´SBá8&$ĦLH(ÓĦR.f(pŜqlLH¨$:Çkƒu÷1ëâ€'Ŝ²MŸË\²à’ıW ŝ˙aÁ-ÓH Iĥ’1“Lƒ2{£i„–Â4¸OFéÂ4(4Èçäêx Ac‘_aŸ{ĉ"ĉm[Vòô\½‚m—\§–ĉ@.Ûb˘eŞYV…ñž)ĴhŞ-aŭ<µ_%ò”2²ÒŒ"¸£‹X2bK $Ke¸İ‘…^èĴ‹Hjw›ê^mF}? ¸Ä[VċıÌ%Ċ•Ìŭ²|ì‹ùż'íeëéċà´Cä+XLÂR2Ħ d1–ÂTDi1Ħ´…Ç-Ċ–&7=ëëÑb pÄBáa6ˆ}'›Kö `÷j/ßc¸,r1pQz[dIĊ^ǀ1'ħ–³ċ–Œı”Ûİ5b†8‰÷azoq‹ßùÊJá‹qô@yn·–c˙/QX7äCÌÔ$j%‹ÍAŠ’Ôbö°Y?àċ^aĞĊlW‡wıLGÁ r5Vôy,`Î÷“zK§Ì ˙ŽfîÌ/¤$EuóĊĥ‚Átt†ß´=¤ñp”5^~7jœì eûŒ …y&İœ<–2´<½ÑĞĠĦcÀ+ aĤË4kYIĴǒĤhŞßÄ1Ĵ ü”ÎÁÂw€ħš¨&ÒçqX׌–*M9Ğİ˙8 e*%᜔rXV”V@4“R†İĊê_Ŭù7<‰3 4·ğ[ÏIßY8ĊħħFŽMDŞĉcDwucA‡Ğ  ¸ì‚”›2ÁCtd1ĥĠé2°ˆ,c‰ž6Ï׳µoŞÁQá!ïĴ™eΟ÷†4ŜÌ4'ĜİkáĞ´?t^Äa™İĥġÎWä9BŭíËa…`Áo!=—ġ[¤'‹–\ûÏŝE×i|ŬeäÉxˆ,ò×+<ßÀHà!HD1b°zƒÁ }Ág›żñbÖM<1WH*Ô7CûÓ{[“|xeYÏĥğĉ•|^T}[?Ѓ'ú³ÍföyKmï´Q:†úZZŽj†X­WÓB8žĵΠ{ôñUњA!\?¤8ÎR€EÛ.3߀ŬcĠ•ŻŽU‹Ġb·˜-˙]ü@ĠáçnÇÌâ‡pÜ)€ÇJa À.ğmÀ=cù€˙Âófŭ¸š‡~şĴïíçœCÄáRĥ8˙×ÙöÛŞc}nŭf{Ğ'Öx ˆIÀސêĥ˜< ˆaj£€´}ŠR²MŒmžŬљKÈ :ż]Żo—ġğwXċ|ġxóîŬûúfŠh÷Ùï€ ’OS‰$żkŜäx^“Ċŭİ_‰v"ÈŻûĵ/ƒ­lÜ}ġÙé)c‚ùĠò,`CK;Pƒz¸G§`ŒĦް07TŒ dIˆ“ŠPˆœ_5Ĉĉ1&ê=8îĤĥ‹u*6żde`SƒXPŻVġ§çbVâ*GüXíwë ĝ#òÇz³]ŻŜ>³Ìñ€İsƒemQbá]”£Ĵŝùe _1( Z“Ĉrĵ7Ï$Ö¸ƒMµéË*§\PïÓ³ËB+z‘Up5V3˙ßÜİĴQ…ä—âmš’Rˆ0ç"1bğñcU0˙ ŸCmIê "ï9`ÒbíE›˙şZè‰5¸Ñ1H X”Ġìq’N+"¸LN’YAXoĦ~ĞŞöÏpĝÍİÚEµ—ìû\!{ñŝ?™k@Ĥ)Ĵö1Šáç!9 n ÑL šġÍ|^/›ĞORÇÇz·Ğ—o…AÎ'ŭ ñ„× o[üÏzWĵZUĦâ³ıKĝa·ŝs3šTU½ü<™J Ëe"ó"ŸžU˙‰×4v¸ÂdLpÌqŝ’ŻP|KÈӄM7÷­Ż6³M³ĜÀÖçHÛTĉm34ĴñhŻ ~S'–³½xŸİxĊâĊíxŸİr géŝ˙vŭ/ÉĞ%tendstream endobj 186 0 obj << /Filter /FlateDecode /Length 2512 >> stream xœĊZÛn#Ç}üĊĜlġŭ"Ä@²Ĉa­‚](-‰Q‘aJê"E…"ŠGÌqB…‹iôŻhvA‰3R÷Ǘ'\ /ŝùr­€¤ŸÀˆĈxI‰boċ˘R ‰³ÂÈè3TiÈt,úaUïĦŠÂ¨O,_`TŝL£7·0Bèȧ ·Ñí˘X=‹”%†i˜Ä9”á§éEyz !À½|ŸĜ"Nżôìr\Çlh2 Ú8äÛj”=J£€ġ ˜•H’Ġ.A„C a²ĜĈÛQžĤïĦÁİĈ”A<ŸÔİŠsš#L=í.>ÍĞq6óv+,IǃEšĴÒeùĠqâ?jȉgéçòk&ÖxRNdñj”Ĵj1\‚w½ $ *ámlXZ‚JáŝŻí “!T¨–.ïux(bXaSĴ*×üy‘ÌçéÂÏq„ÄÉ"{š=ĝgT7Ğ*SàtıËr[;‚Ĝ’à#&ŝ;ܳa,ĠħrL=›ĥÖâŞô}6˙òn‘M7H“’(Át1t _…Ë­Ŝd$×Xş“ìÇ,{œ¤××óEĥÊ×׿ԅĦmşd½şï‹Üà~iôښo` ÑN"/Ù÷eŻ’7˜$Ë%yŽWŠ q­‚%| í.Ν[h…q’èş6+tSĜĦ6wĞ8°BSÂyDNY…S:ŝKżnYNY@„1İBĊyBQ€¨Ê$”ĝ!^=­²Ċ8™_ÓĊ2›}{d7°Y5G7@iˋ³dšV~”ñwĦOWËı@‹ĉ˘/‡YvL%çQlӑy)ïs –hYÔG ËU‘hSŜˆ—ġgÄQ°èôwy×ċKĵôHp^WS i]Ô P§Ħ! e~¨<‹şË=,†žġŽ=iĴaÖ÷:°D‰gŝÛ{E(r’Ɇĵğ8&I˘ §îbKñ˙×ûdAÙôò,aħ†K4Y(âEX Ï8 ‰˙tĈ£0ki›Ĉ'K2%‹d°BrüY@sSöĦ·‰Hë[îà°I#0Ì=ĦUU°5 „ÚĵDĥˆ?ĵ˘J B§[Àׄë:7 ¤~~$ Ab‹ĉ ä$ĴğëèžvÔèT“$íÔulQñŝLYĉ/<\.ËB‰gβPĠ‰³ĴıŠ)ïÈ2Êvh½a11ܒeÚAD9:„u q‹¸1/gY·ĝ#²ÌÛ5ˊڊŽĉç‹Û?×󊵞À[uäŽħ%ĥĤèêeŠ>^ŝ8Ż“Ž˙ŬëcmÖ §%á£Ülê~×DN!Ôt$,# Ŭç\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Ŝ âÀfÉÂwD² Ÿ¤$Żŝì`<Ğ(·Ú oä(+‘¨`˜?àgÌuşdĉWs“ÜNÜZ34ì ‘rkûıĥRFûk[rñNv-ü)ŠdkLÈP VĜYèş'´0 ½ó× %XA”v¨t[tTBj/ğL˜òĴŞv6’]*×ʏċĜ%… Ċ2­~|†³áĈ’&Ĝ¸L½XòkWÉ6 <çU‰ˆyëÎU*zVr Gm‰Ĥş!ûĈkîĥQ·şWĠŬ uOh ÂIf‡Ž:l†ĥˆ?c¸óĠì€+H.•:ˆTÔĥ†ğ'´½#š>À0zµñRĤ [tá"í{Uvŝ+ÈPÑ1G,Ġ‘W ï.?túIĠ*ö?Q)Á=4azásq%€Żáó@ÑYħ,Ttj, ew`c>oöÀ²Î ílġĞ´û^Ħn‘DĤ2ƒ`[ìöĉŸğÜ ĉ…Ħ˘gúezĥL%7óß1´Ûiq·÷ò5*]_£‚'q<1–ïDÍ( ‚P)•)WİkuÜżç’Ì „Á2l$âlQ‘5¸ûñ,Y|İYÚ ›ÍÒüŞ–l(Œ#˙x]%E-[ŜÂéžJ* TÄÔ ‚dù›v;TÀ-*Ï+†‚l,û?1‘@û‰¨H(ñ•ıH•ŻJFÂEŸŠ„2Ïä7ô§’·üÖ¸.:›„d }ĉ¸ ×E{;§%úÚWp ?íl&QĜ ş†óŽjTÄÉĉ’Žibh$L3Y Ê+j—”QÈóZ½²şŸí„²odR²âÒé|8žw͋Ĥƒ6¤Ö·ĵ6ŻÓ zï—úĴÇsa4ßòRhĞÇëž*GÑÊġN/‰‡=Ŝù‡×"wpİ·ôx—WĞéüê˙ŬĵÎË+ż9‚d€3)‡ëóyyPĤ Jyèˆ6ÂF}żjfxîiFË>J…c™ß&‰‡óŸ•Kçq'·y[l5UKôGħÜDuš’”VĞùòúŞç_ƒ£ŠÇWƒEŜƒ …žgFŭ^ß²xÈ~G£B²ĊĠ<ôxŜ†òĝ#*ġw7żúÓÜ7O0Ġ÷5N˘#ñgiĦmoÒÉ}ŝö *~JWĞtòmġĦŠßġ¤ XZĜÌĵÉ˙͊—ŬŒßüm²âAıĝŭ*û˜K3\ÇéäKmïĠ Âíq‰O˙ćÁendstream endobj 187 0 obj << /Filter /FlateDecode /Length 2760 >> 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´ŭĝ…BÌ;#CaÇHÀDĈÂĴbß4SˆS2*˙™­£w7 “‘AF*Ş£›Ċ¨°âˆ2"#E)pƒOëQĵN·Ûä>ßü2úîĈREš`j`Ä$&˘ĵ›ˆÓÂÈITÀè[ĦFk,¨Á 4<j¨Q'p’.NÛ4_&ĞċŻžR/6á mşwñnAîĈ–êDkd„Òф2X^Ê˘›ùèÓñDPXU#â?OĈ?ßü*—Ĉ•ܤ·˘íÒġbı:KcF‘˘" {—ê*¸aф˜Ú:e+v^Lq‘P§%†"ĞoSSĈŭ˜êœábʋ%nżèC,£j‹%%ü8êfÑ18%†¤ÈÎL·ñĈߒŸëġżzğ[?ŭ}x·xœmßÚb eAĤz&ÙUíµŭ„á"ï ,/0 ’:'4Ĵ8ÎÁz<›}uó8€`&NIaÀYĥyĊÀİ9Çç „‚ÀIZ˜ oÎDğ~T l—=Ĥñĝ/íÁX8†Ĉ…-F˜^ÎY'@ÏЧéĠĤ£Ĝ…i`ıl8x^‰6Äaëeó”$qù iÊc4d–òÈŜÙX* 9¸‡…Ĉ8~³Uĥ=G-:İ€Ĥ§ˆÂ`š€B0 O—-¤l6PH(.nÒñ„jyÁĈ!dĊ,Oòg żJëŭñ7Ğtëb¤Ó¨pRĝtmŜï†(Š(•Á¤d3/&u°ç£R!Úχbíʑ@éiĥ{(ġ£Ìšn—,7ÀğÂ&Ò½Ta?XÄ'ñcòĵʒy1Ü'Ûò£QqR™‚ğ~Ú§›Ùa&³EEVĊÓç]şE ÓĜ}³ëgc.!p(Ÿ§ÉüŜkÈ^ĊıûÍl·Ì6µ³dĜPÚċ@ÉQĴ4›Ġ Ğè~›ZÈa ËŞ/N¨ò6)ŬY8RñĤxaĥòKRÎ qž<•?ƒİ?§³]–WHìÉQ–ñ‡1ħ? _·Vg‡Fƒ÷sÚWtÎhÖ jYU×Ä× ôĝx!èÜ:k:̉àSáżOĠUùçĤïv%”\òq xÈ9Eğ²}HC m€ËDyrµáÇge+è" ^„żJZ۔Ô>KŜ˘ĉ ĊmiyÖ4ˆobHOËÓ=£œd‚Ó.ÉW;žú§ì‚pèLŬñ%Ž'Ġ³Œ1ĞŸôžíÏ{sİ÷ğOsú2šÜ£)=š’ÔÏÊûĤŜÖAŜ†Ï\I…Ô àısB`œ@”„èLĠQÜÍRèÌu˘³Ouĉޝ%AçPÑÙ'>:ÂŽÎ>ġA9·9ڏ…˘œ;'4C“ †ĉQĜÜMŝthĉÀċżCsÑs̓ÎĜM`“BşŬ۟´ġfJJ°­tè ŞÜĤeQŽĵ…ĥj÷U4™ĥ)_tœĴĥ‡†‚zm‡ìl;H<_ĉ-ĴžĞîAžîòeú9­zv#uWŝàÚ³ĥn]ëBÚ[—ÖŜµ7aĈp$iώo3ùuÏh„ ¤ç³ûEöëarF a‰ıüÁ‰Çç²R£!7¤<²~ƒİLào›z4ìžNÈ6_QŸĠ?˙ġŝŭ9ÂKrñ@ĝĥŒÂ¤g9ï;âèžÑtxi“ s Ô˙_K*= Nwvà–żg•2ШÊ9J0µĈšPÄáĊ@^‘HrUžRÉÁlŒ,BŒ ĝ82·gD½Xœ~;¸Éx•&vKHjˆQĉԖÇüŬFiY҈q¨ïUQûte´jŠ0T:˜2sĵû÷ CLKšŸìèĞdGèĞôF\İқ}ezĈşd Ż6Xdȕ“ĉے˜e+ˆ%ĠcÁ°÷ôn*â2`+§ÛuœâM%£q’ßï×éf÷Ĉŝ­-,F–·n2* Ëï´Ż7÷ ĥ6J';jKÔ0î!6!°zş'?vNh Œƒ|XW ´H²Òc73ƒDÄÁKÊE*‰\ìXŻ:ƒó¸Ç›ôĴ*nP„ĈsdHôcšo³ÍeNĝ(…u$4ċ&Yìxħ> m xA ôĠ"ËÎ:ԁ‚: y!ğAħgxné:Y.n8Ĉ$Ҙa¸żN“Ͳġ9äö¸ƒ½‚ŭ8p ĤÂËye</:g'€s‚8pu˘ç˜ˆè5Â˙ÂçŸ CUfŠKA³dw†PqîS ĉá„W`IEÀ*Ù˘ÙC’'³]š°ÏjQ&€ğqkM95¨ÛŬD˘îİĦ;'4“"·Ym MżZBwÓ?=!ÚDK^²h~]+1֕îrŒ~?şùc=~9ż+nêFúŸÈFô´”#D`]ì[š*h:ħ–=ġH÷Œ†ía @Şí¨Œ@Xĥĥ/_$=LÎXL—mĜ}F—íĜ}N‡ ŝäB§ĜòöiŜ]=)ĝˆ!l@ôô)^=}V£g¨E='ö† ^^8…:­Üw|ċ"›hbQfÀ"Û§ĝÊEĥÇú•‹l_éĦŠlŸĉe‹ìÀnŻ[d7 7`‘}yûUEv`ż‹ÙNCÙA°ÀȽ{HÂğá͵Dħ×Ĝ÷9 •k}šA²²n­ĞĞċüœİN‡é/['ÀJĴ,<‚°ğ–FóžĞ{F³ÎÇ6ÔÇîJhûÁ ÇêapzO ßSL½¤É²{ıï_ĜEu+3„ŞÜµëN5$!u(/WMµ·½{XV>ċÉcš×ÇIží7Ġ‘°fî¸ġV°è^ ĝ·^;%lž7·1’6+•lî³ì~•^_?ĉÙ.›î××?ÔI£Áš0€VÉW  Ĉx]›ĝ6ŝˆqĈàħeñì>ı0‡Iĥ[Tr Ïx¸„ÜĈíĥ‹Ĵë3ŭġ3žíò×ñÄù·âqyÜŝ•3[eƒW•‚wIĦŭ~x%äYzŒ;u_Bĝ´Oóçòá-‚Í~=MĞËÌZ˟MIgğŠ…–ÁMg˙†Aú˜&ğtžĦԗjšÁ´/.0\Wĥ‘Ĉö  VÏ^äWRG2ÈX˜âğù<]MŬù›Ò"Ŝ§ğ]şrg@Êû~Ì~é8wë +–lŝ—ƒ!R¸›ŭċ ‰?î²˙Ô¸ˆS{cƒkÛO³ĝÖµßí:ŝ÷ò~c™Ĝ˙k‡iü[%7ñċ†ş ™ƒ+ŸNó½=+³²0êıb­bġĤ L1Ċ­&IÉ+ú­ô“€›FBéƒËrH$aÌŝ_֟F˙§qŸendstream endobj 188 0 obj << /Filter /FlateDecode /Length 2553 >> stream xœĊ[[oÛÈ~ú#ˆ$T7žÌ™û] H‘ŬĥHvÓXEì<È2mk#‹ŠD×Èb˙o˙FÏ"Î0˘,‹˘Œ<„ gÎmÎ7瓯%Q÷§ü{r7xóIG7ĞÁׁT‚h)Á2’”K"Ydİ%ÊB´L˘˙Dó%V Emtóĝ†Áġà_H_Ĵ0¤p8ħnƒ DBdAe*‚Xµˆ•BšHéçX!+ŠB}@`Tŝ5ı‹ŜŽP"KĴÒÌD£ëAĦ=DÒ JDš1d†Żîçñ]²Zo’á‰d(Œ…ĝ/'Ï£ŜÌфÌR$³ÌêhÙÎì&îŠ0m|îñ&ËU:]3ĜK™ÍĴS” M9ß­í(â}3r Tĉ ­uŝD kŬƒ3ú•ĥĦÒ/ÓôEC2c! ÙŬ€kÂP èïH ·Ûâ6Ż ÇK5ŬH1Š!ïht5ˆgÓUÖEaŠ@ı/zNG7ğ=£’0”ÂgĠÍík‰Ë† ·'QıżğL–}B@GÊⵂK ä гd½@s‚@yÇ/~àü"ĤCBH0pN‰a< Ŭ9ú4Cġ fßŭ_"\kbÁ†öûûŻŜu1œÀĝÄAD/†]M·UÊ(˘1VU>ĊçD•ĀxTĠĵkT½|ùò ¨òh÷Œ*߂ÇE•ożżŭÇûn¸K´€ìĊŒ ‚ 9ċısŻ5[ĊKUz‘{§ )ÊWT†ûÖM‚‹ÒûÙUŭ>IÊ­LÄé|RŭŻWPĦz5×GˆÎË1˘ ,À@–úŒnspâ•ċZ“ëgmr b˜ĦPá4_Ô½ĤĈİ[`d;:#..÷µoAĤÀœ›3SıòÚäı4ĥ°aÎÛĥòR@„@ĵ߇:Koƒs"ÖRĥ!M3Ŭ@š@WoCš’F}‡´0¨ Ŝ†!§ "k ŒíRû†FP…ÜċDUPN ÎwɑĥĜ?² L§µzĤŜxÍü@­qà‘;Ú÷T>T_Ü#ٓÑĴ%‚…FKîĈÓY˙=‹ĵ[bšVûëċxI&éŬ!ú½[ŻhĈ›^U–³ċ܎Şñt>.żBĴ‹}$:ÀhѸqy@ż;^çĈɢ­íżs3òóœ}ï9 ÚB°€ìĊĈ²L`ĈH0΅el/ËÚ74#˜Së°,}¤.ÛBżCô—ßY÷i ^&‹dœ%U/FĞĝOÉĴÔ>ôGJ’:ö“o[.üÖġ o—kC}áçx›Sµĉ…ß΢ƒC2¤ù35<îê6ĝÜnLyÔ~ƒŻôĦ>Í~ñàíüıñ<1úÄóYfd(ŝÙF†Ü—…—ÚsŒ yĵ>ˆçÓîwd(°àQG†ûuÄ+†|˘}âıäUÙ‚Ê#ĝŒ˜<ŸuT9.¤jÖÂóH÷ (ß|GĊ“oĵLàĦŬ˜½!Ż£Şn­ĴێĜĴÌDµ:B³ÖgTÇì|’=ÙùĴ7fçSġÀVíŭaĦœ,òIC§A%Ĵ·4ëGÔ²IáÓîò,VWşá^œşŞş@˘µi1Ş2wÉ^µ „ (ö”½Vu>ĞñŠLnÇËñ$°ÔŭJ¨E?ŬÀ²›ĉ³zĠEôÊ=z9ÒÏÏäïëDÀ› KeA! ÷ùóĉŜ~ÄM‰´]4şrí}k4–]b—Ħ ż+·…ŝŝMC@6F ‹\ë´ÊP>6”G[ŜF7ş,´.a‹Ĝ_Ġħı¤Ú]=ëĉ§Lt˘Ĵ뷈> 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.&?˘Ù¨0T8ċ'Ġ8^2ŞÇʸ¨5HêĴ02û€ş4Êt}ż‹·¨ ĈµWÈó_ î¸3Ùê-€bġYġëì6{~„öËuÚp›]LJ×@†Š¸ÎÑüêvBÎĉ›éÑϓG^Wĥ]˘÷IÔĝ7Á ’xBZ 7Š‚"R5_Ó³Ğùj~ĥÉWVÂP§Lg·ùz=żÌƒĊX` wžQĦ0|xĝ*ÀàóHÓC,·Š2Ë{µ\äÇǁTÊöƒï×À9ĥw˜°˜sM¨HŜééÉôdÚm‘Ğ Ŭ`CƒËm‘ëf2@îör[Äâ@|0 dTswd àÚ£àmĦà!Ψİ"Bg“gÓî#‹ğÛwùêëéLq´Ĉ‘ƒż qBĜɔRz0==úçU;ÍpÚ“£żĥ7ßçÍ4Aŝŝêċ‹bx×ı\+ŞeĵİzÒâö]çr-(ÈĜıb·|Ĝ£dĴ|ˆâİ1˘ˆĊġ‡ùûá]gİPd“Jƒ\"€1Uïœ÷2£ œ³îán¨D†*Š$p0$³h‰žŽ&Ê)`$U6ö; ħµLŞ£˜ŠÈäVF²‡¤?D9ÂĈñ1`6Ñ-.Ÿ'ĴöĦđĞ}¨*qµW1fµ5¨öĦĵqŞ}¨a2ëjÊÛZí•Eíz R·ÚoŸÑ)HʂECv)HQµïQ0 Ú3 â‰‹½’NSÓí2úŠŭö]ßJ‡ sj~z”ŒU앐ä&a: %ŽœCU‰ÓaĵŠ1Óa¨)E: ċ“C )šŸPŜötˆk£J= ùÙ>£ YÌ”é7?= Ÿ}ê’Z={ĉC÷™|ĝòĠóüPfDŒJlñÑïÀ¸·cĈñĜÌ1Rgܢ3€s4€SKQ4J`è"ÉK„)ĝҒKŻĈ§7Aò/Öùf:Ĉú£;"fsµ<§µ*KV}ĉW ^.5£ĞUŸxĊRé„ċ /ıËħ>£Ë1ǕFo+,8›/ÚïòÒ4ì.ÈŬ:݇qN6Ëú Í œĥäżó›ğ|Ŭ\^TÏ̑y-È*ŸÏ7Dœh4ùK~S-ĵ€*Ën•ŜwTô­:ŒDY—ĞšDQƒvİ9Ûu<>†F\Ô1\çÎ*|3k“²*Şq"ÔNù‡!)µê%C‰'ds·Yç7ôuZ/‡K\\ı˜ß6~”äۍéhW/úàbıÒ>cψxŽƒŒ7œ2‰)]3Yú­(ƒmüĥÎJQI VÌ2ċÜ\݇†êĈ60cĴgEY 5 ‹zŽċOb‚ŽmïD=}í}úï˘.‰žIaħÉ …ġVòÑ0 -5Ĉ„ş;=ÈŬ+Ô#„dA!4µ¸‘ŭ‰`ô" Ö#!c˙ùflˆ$“Ê<™ġ\?ĤpĞ|&ÄT qŸ˜‰Y’ïS­îÎ96ĤÙ#c*ôàÓb*ô_y „*<ŝq§#ħ+›°™€Ŭ€ÌfeƒÁ˳v7dF;Ò1çD>u INtœr܏Pâ>pˆÍǘñd8l°¸ Áál6„C+hìܑPè$ö~2ö_BE™cyO Ï4¨Ĝ{?½zóŻAÄcħïÊ˘¨,ñ'6àş†Ÿ*ÎĤ£°QhÀ~?0èÒQ Aí4eNŞHSĠá?ĠUçJŒNÛ _/‚§scĵ^T;óXj²wvĠĞËPö ×‹ÚQĦd(Җ­Ò†ï(ĦĤ„ħxt yëPâ˜ĵµž@UbŜ:}ì—ÑlK•4ŠÂ~7Ċ2ÔĜ–Ì£Xz·ÓĞÛgtĜ)¨˘7"€9TİÏÒĞ= OM ‰FqÛĦWç·!KZ²=o™:|ÂoĊĜjgÎyŠv+e[”Ĝ{&t¨Z_SZ@tmĝ#”ħŬŞOWYNıßÀ€KŝÔvÙ7@ÒË|7zùbê|¤p’oÎêÇĞ‚uí'›1˜Ĝ.l³˜dr îá›ıG–´Y:ù²ä›KN9=ß xŻVkÌĜÌêÂyûŒĤA 6mûÊÄ8YX ÜÒĞ@ÙËr R3ÊmÖĴÊfÂÖ@ı’ççùÍğ)²3V‘ğ|³Éo½LÜBäğİ,ÂŜ’Uħ7 Ĝ?—×ëjˆöŸÏë@Ŝn–ż”Ò¤"ùÍÇéLbcn#o^Ż–›ċóğ‹’PúÏġċÂ+}öíä÷Úní–ÊoԞ˙.·ş›ŻÊèÀÓùXë6Ä–˘9ì^`5ÄĝĞdĦrŸ#u–*c]=D“€z…˙Ü'˙şïşÒendstream endobj 190 0 obj << /Filter /FlateDecode /Length 2631 >> stream xœÍ[{oĈ˙_è‡`}BµñzߏCHƒŜzíġÎ@˙°Z˘e%’¨TFšÏÛŻÑY>wy˘N6E§0`“ÒîÌìì<~3ğŝ)ÀˆĜŝTgëÉĊ[,²ÉO!9R"Ä(Di 0H€‘!A˙ 6ŒŒâ›`ñù “ÛÉ?>oPD·`"ƒ #A`‚`ÈÔ 82š)|VhïŽ`ġXÁިњÁò¨Á05Ô¨ ]€¤XzPŭ™­ƒo/A†GsO¤/wĉœĜ0fTea3CĝгX!kL$0;µ†‡‹§Ğ…dtĤDÚ°2_={Vg+Ú\_ż‰0‹sİ‹úƒ0ŞŸt˜ÁçğU”VéŠ@>yĵɖÉ&CNŜz°ò H˜…ˆı'ÖX‰´Š„2.ëp<˜s)^‡½ëe£ÂÊ6Š|ŠÛ …mÊ2K ÉC•b~1*dv9•5 ˘k´ġ‘CzŸ“mŒ˘Ġ‡ċ&gôCcĥC“Ëŝ3Í„3OŞ(CÀ;^Äé  §ż\‡ üÔĥñà¨ÈĦ(U„yÄÉaı@†ûÛ^Àd š¤Ž %Öo*kƒdħsŞ!M2UBeŠl F,|2|gY4%ö…ë‚TñÈXQżHşĥuÈW„ë8żKĉe˜ö DRĞBbmš/\íò..Eì,K# ƒ—ƒûíP”°O’“rUĊÛÊb,€gÑĤ}ı‰K!m(Ŝeq=ŒÒ0OêoˆeX}Mĝs´ÚA²m&·ġw2lHSĠ†g':7ŭŽ;ö EÖî{ûŭŠ~GÛ瀁 q§Ïa”Ŭcxĵ+x<&­ˆ8^u˜ŒFF]+EÊ ˘Úl‹1Y°ŬG0cb„c\,‚;ĈĠ;Ħk\ŒAœÒ­qÙ`Ğ÷ÙPŭîòìŠ RÁ•g6ŝ^‘÷-j!u¸ñ£EÜĜgpT ŒíÄqÑ.šO­`^Š€ĦĈ7 Šı>"İjL4Ÿï‰j0„I0ÓE5˧֍jŜÀš2ŠcGy\OT2ü]ĵšï‹pÀ6X³éÂĈyÉú#\˙„ŽÂ@ˆ]ĵ1Ba;=0áˆw€Ç-‘kĜ=ÎKK\[³Yĵ’ñ°s…tîCħ3#vG=Š×a˓t­›8͆ƒĥžŽÀ"ŻÊM´nôÈOŬÖò}v› ꤔ}Wâ+²Ĵ/(ÄO ù]Éí]²i–ÊF,·ÀQÀúJ’e§0™ŞĦíRüÄdğĵżïÖ7q:’ù@,âv[1À| †µVéXT7]œŭ‘ħë_OBƒÚKU-ÒGƒÌ0$!“{Ìï·uwRŬHú…G(_ŭÇ뗃z™’@†à]–È10 üîOµO N@ŒKÂpĜ:":-ú(ÚcTˆm—âÈgb.г" 1€²Ëè½Ïiši}0ˆQÂlƒ ôVhċVSŸâşŻÇ1ÚfçV#m½ñ§Fe’ƒ ˘ƒj1{Ġ[(ġOè`T&Ħ<Á²Á¨¤Íù\t€ŝ|JTr½JɂĞç-ä(!u‡˜ümrù‡v|˘”‡ĴĠŠħŬê26T;ipÏ›`!lÔoe€²­#Ż.èäq]–§ĥ QVĤƒ)Pê\]ËYÊ=µœŞ}ZË-–?—˜ĥ'‹a~ç”soëaÜÒŜÍò]ZИӋ2ŝ´*V€:˜"Î)ˆżÌÚŻyÖPEiĵşŻß‹ òv·ÚW1 ş•m9ĊˆMğ˘żĈëŸñ QÚÚldGuħxĵ1bÀĥĜoT9ÜOTıŸ¸ĈóTù¤5žğèSĠx.͑ôVÜ­éè-^GËĠèŠc`ĦŸ((E³d=˘c’Š'P ]…Ëy{aÈUž2àÇşĝK˘ƒod(ßYË*†Èz’ H9ĉîɇ0I…î‚ŭş‰Ì֛Îq g ûlËüŭÇ'1 İ_ş@P(JÒu´jÛ$³U”eeĠOHĝċëÒĤĴˆŞşİSßCîUš÷ġ§,ü¸ÌïÚE[wËVIžµ0ĉĠÀĦoÚ>ŝ6ħ‡·éóŻíĦGş‰VÛ<ŭ“ƒUéç”} bOXàĞçm8ğKÛQg,xĥPÌŜ=àĜB×N° :ĥ;ÀcĴûɔ CNà£uiëRlJÛ}Jla§ÈñÚ?Ħ³Ğ+÷ĵWċ{Ï\W=@˙ñJlŠ“˙/Wµiĉħ:–¨‹Ë ÌİĠ‘Ç{šÙ>m˜ ï˘4šċq]ŞwìY.)-³†GÏ]*S)ΛŬ˘=ıËÊĈJġĵk ûKĊOŸ3PĤ[Zéŝ×?Ħ{Ú˘ALüzġïx ?0ĤġoTï9ÜOTïıŸ¸ŜóTù¤ġžğèSĠ{.Íqë=OoO[ïuwÊzo|Vġž§żQë=wI§¨÷£pY{FárêfìAwÖEG_ÎMĜĝ‰•)` A\ ÀŠ£âք„Wc…;–0¤i0ŝžÚ" ݧV[ AtU`A1VĠğ<ßfÏ/ĤÄŜ4ĵ˜ĤbB‡ÑçÓsMìmĥâYŽ’tqtJ‹ ġ4,ŝá£A¤ÇŬaß/œd[‹l/çóxu3%Éaîâ<W_µ8îĠ”[X’–2+ò“²ì†Áûĵz&|—'?ÔÀGÛ oä½x …Ú"ƒ§˙%İendstream endobj 191 0 obj << /Filter /FlateDecode /Length 2026 >> stream xœĊZÛnĈúDj TħžÌùP$@ ´@²+´ğı %ÚV"‹ğíy–^_£ß8CKŠ$K|aRœù˙™˙ĝ}~H(a ġí˙ùä‹×&ıÛL>LsÄZ“h'5Q2QT(˘D"œ#šò¤Ì“'ë %ÎQ.drwÀŒÉíä'h½ C„S~‚$ÔO”(–H*‰²½ IœF&Ħ̨äûC½"Š5}˜°zƒIûoŝ|3„NqÚp›Ìn'ÍîY˘$á‚éÄpAxô0y›ŝuzͨ˘é:{È˙>½Vëq"ŭìĥ(>›ŝ<ûaÂ$Q—Ìŝ1™ŭmż\ô£UÊë‘áü![úĵ–÷ġMV’yñÈŭv†MŽPŽÁûŬ2Ç .Gé—qwÀŒÚ”µÄŠŜÌB·Ú_C–cĦvë¨}@w˘)áŽb..wܙ¤ÜíĉöyGkMDíœtžUÓÙ/Žw·Ĉo‚²PàğtwĈE˜"ԔmÈü>+³y•—ÏĜ†8eâ=<ä›Mv—ż››ö˘ƒ@˘Ü˘´QÎîËè3ĈDı&TŸÉğĵİœ’ĊZ0bÙQIÌϞĈ“ÀEœyᷓkN$n\r KI.u2[`}œXÂ,$J‘z:ŭ§wá”ùiÓ;Ż—B¤ùUUĵİÊċżqÉÎÂßĠ}ħ ­Â‘U`I,Ei?a ŒTÀ@Ô`…DĤ͂ĉe™ŻĞĠ'ŻĊÊ\şÜĝk‹:cÓlŬŝÎeš­–Y÷ÈI¨èYZŬçÛs³nML­K+"5wíàÛÇġĵZk²%°•@CÔġQ-Zñ=r÷ŒQ`c ö%ħ lÄÑ\T"÷(9=¸•²H´6şÛ|ïâ_^äœuÌûÍ8jO×ùÇçÔ/n,’ĝ.­Ğ˘\f+òc^nŠġĞgċíŞ9‡,‹Mé DgG™~šQ0JU­ĠŭžúĴp֝ ÑĤ›Rtş!ı•Dš(0Ò ÙÍÁ8rd·ş^ÜpBhb=Rn¨ı§÷*+^À~’)rÑÏEĈĞÑıE³‘§h’¨ŭ°|¸'ŝoëQú`OA%;#Öäġ0)Xkh„ĴĤŒââ%²Wtu1ĉ1ş ô„½ŭÔj ÇZk#+í@‘ÒrċAÜá(r÷ŒQ³Ċ@Aĝñ(r‚g4Zĝ>: FŞKsA) ġ;ŒY—ÛƒtvÏ_j’ñ† ŠƒÎ%—"ƒÂCë³UˆPâ%é r7TuŽìmKB ö­ßBW6â…[˘J8jˆ1GĵêÙ=cUˆĤg”6öSz‚ÓSZB¸Ç1ó§ô1ÌĈ Á¤VËMĠ/ÊFĵ0bU %ĥ#`³ûĵá]#³YJ#’žĠ²Ÿ4áH;èmĞqàŒóbŭ[^V›˜ĥ7z . ŻdyÌ:1Ĵv΢{âÒ׿&²5˜ıFäȘuÉ}ŻËvÏ3'ġ­7$ƒâ°ıGÉé-¤ò:˙$2h? %0ŒLù˘d0ÜôıÈ`(ó²d0²Û˒ÁħáÎH/ożŽ Föğ( ÷t2%ëeÉ ­ŽwïÏğ~tâlİуCİÁğó-œ‡áw3à[”yż íž1ê)Ì ö7ÀnÇ˙ íQpz?"xtU×Â=Ç]oÙÏžğBpÁR4—ï˜×•½SŸ‚Ĵ§bŜßëü‰Jžên…J¨PĤ# ‚J-ˆ2'ŽĥĴpÖ@#ëžQÓiqëŻ1Ĝ¨úˆş(v@ ĴL³2oçPэ7ˆƒt&Zq`\4l‘ÏWħè„Èô/ùjħéŸïš0Q/¤úô>Ġ-Ùżç_tKÖú)&]•ŻĞö.Ú/e4rSwÑĉP]ż Âĥ,uӆW‹ub œlÏbó˙Tġ9AMúqYŬ·pşŒDéĥ X qÊMd‹÷y™w´Š,‡‰7óry“÷èVĤËî„êt“×ç˙zóMŜš[×W™ĥáö*pPÁÛ.ÒËX$i-1b"èĴ†z&“4vL„Ó˜ÈûEVċí •ŸP˜X+;€ŠhŬj…oa"ˆ$LÙIFúS+ÜÜ4äqÓ{•óˆƒ û°u`or™l5 èÓĴĦ#Mž5—'<'Ğ™Ċzžo0Ĉ Ô yÄyÖî£vc´C,¨“γö(9½ċ8p^˙ŬÀŸCaíg˘0ĦÄ'ĉÂ0ɃɚrċÄ Y…À1 …ö(é2˜¸ûĤ!PùB\Œ˙Ĥ9ĥà³ı­![(òBT ÁÌc÷‡TBŸJp8HĜhKÏa\r˘QÈ_ÀD ÀĜĜD/V;˘<­s°UĦÖtìĤĈ T¨DIPp ßÚ}ħĉ˜}-Ñ̅”M§üvħÈW7Sx€>•>ĉU•Ż^µííêğİĴ[‚MËşß3dĝż˘|˘U‡ŭ KßTĊŻ4İÒÜD"-÷­'}ŭcYTĊ7uŸ´éż–wkŻ Ĝ Žö›ŝŜaĕ8Ŭ5öïò›ò1+À!°ŞOj“šWdN9íDE&P(hZv€÷ÖJ‘6°ßšLġžùâ5ŝÓĊŸ&˙&jäNendstream endobj 192 0 obj << /Filter /FlateDecode /Length 3294 >> stream xœĊZÛn#Çü(ĝ#ۀ‡ħٜw 8ğ ½+ ğy ÈĦD/Éá’”× ä[ò{ùœêžž ĊĦ(­Ö4ÓÓ׺œ:UÍ÷ƒœñANĠ˙éêbüÊnvï/´QÌêċ†3c:—ši1àN1eċ`[ ŝ9X_äÌû\H5¸yxÀĊüâgÌŻêZa€öŒÓ•3Í1À3mZA1ï¤UƒX Ó˙íŒu^c;zÁéĠżéjv ÍÀ3oĴpƒĞùE<:hÇ0'ö#$S\ Vo²Ż‡#žë<[ğŬäĤŽ´À†|VÎÓ£Éö7áƒfı”Ù·ûğ}ı]L–ì§bğ+×ßVŸÏ>,ö·i˜ÊdzôÙ|Q,gğô.²]ħŝëêï/Żp’ZĈ KŞOìVô-UXerߨ˘@PE£t¤6*–^hÀ`.Ï-œX"hqᝓ°0ású€ù…êí×÷§ôc`é'›NöĞ_˘œŻqĞHÑ3ÛZĠġĵÌÁ`µ9“&ç9żyÎ ĥğÔ7­%žOL\p(„wVšìĜôv²L÷ĊöäE.&s} Ż··zÒĈX…ÓÌúÚ0¤÷L{׏ŭU8ÉdmĞ*WL[÷\œ˜ŝu˜ŝ)Pa4Œ_ê.TĴ'Ğâ2ù²Ìš—ċWÁ›9ÇLÏĞ\\ŭĦ鿘Ġ½u&BÏöçb5Y,/l ùŝ|=Ù²iıŠóÂìÀ2/8|ğ Ĥ<=„{9¸ša‚9ÛÀLyŽf“ŭH†>äô˘\vCëáV|3+vÓíb Ž™ç~ħż-g,-)!mœĦM—lÄkĉ$ =‡h\@Ñìê6xSŸ4—Ì ŜÒÚ@Ù·œ0Ž)ĠûĤÚ)íœPÍeÛbż]żğމg{ì(=wÏ !ÛïBCz\g“4QBˆPbٜğìuQ¤A¨=Ŭ/Êġèbx6{ʓ{N§sÄUÉĉÏráŜ9 êïJl/ıÎVċĥˆ›†ğÈó4tk„ŒCk ZMèÄj= hr]ŜíéÍÁTm4CƒċU¤ŒŸMK;v$Üi­á0Â}ŒrŭÑ·˙~h­@0x l„?'Úġ/ñt шB2‚é›CšÁ³?ŽÚÖôŒQ˘ŠG­Ġ³uñáS‚ƒ„hĴéÌĝ6; C1RŒĴ„&ĵŒ"$j¨ÏwaħR¨ ÊW€ÏwŞÚuê‚ĜSċŞáñywb ş÷C†“2)Χêŭ]FDñXŠ~bŝOá™uŬÛ†à9ÎEHKaµEÑ­8BÑrž3ÄĠ³Év˙€a*ç3î dûÄŸ‹l+oà}úÍ.Ÿ+Ŭ™¸ĉÜÇĴZÑíÏ·êŝ‡Š ‡Ü?ÖŞOÌ˙tĞV÷üf}‚‚wjĜĦ8~ħ,^´I?Ï͙QäXo ÒİÏ"ˆàħ )M{È|ÑÙÄI’(s(ÜwĈ·Hb .˘CŽšĞŠ%Òwĵ|ıĴ^•Tœwö™mżÂ•öä'9İĝŝèp  A•xJLÚpbú§{tF´ò˙ìĜƒAV$­šĴÈ8M¨}ʊĝÀ1—sşÇ™ß+d!20cL<ÒëH{[”W& ŞF„ÂéÀ.Zçċ8ÁöÛÌâ|D:­lÏX&¤ínéÇĤpvÈ7wU#d9 äÈÑĠ ŻħX£Ĵh¨cJÏ"{Ġ47„Ò;¸j¤ì*oíùNHš"çIŞ­ğWu}“½VirŸM—`şÄP‘$ċ\Ĥ_‘àêcxÍĤċz?YĴ+òí}½Ğ{ŞS‰RÌwËrż;–8[1˘ÚûĤ\ĴĞ‹ƒKdòİßd=;š…8°·Ĝ)¤\÷gr€@¤™.kÈ0 İşÀcáœn@\FYDÛÁêBY£)O-K8,'~ƒg!àÍ0äUÓ"˘K êuÂòÁ6óü ˆ¤˜ yTuYA˘ƒVÚ,™humÊĜȽhíĦniíĦ>Ó>OĠÒ>P‰ ·}!(“9y£‘½*Іí)C²ÏL%éÍ‘F"}V6‹è2ÔuÓşo‹ĉq[÷­’XŬ&ĴĊRŒ­ÌĵJʈaÇż‘uáŒÇ"„n à镪m L£ÊmÓÚ'T$* í(ĝ6HHK¸‡vp(ܖuD1>Ÿp9SÈʓt$š<@ü"<‹p·2dnıË~Špá$³Éb9ır’‚tYH}@Í·ċŠŜˆĜèŞ—œÛ¨ŠiıĴ>ž]×SßÍĦ›c‰Z3zö›âò •}œ¤³ÌsE_ÖUĵŬï7—ñ´œCNLòg7ey³Œï9ŒŠ@ǓÍb7;QAÁ`î¨adJA¤éĵñ”Jr7ž•ÓŬx[Ì£?{j,ÖÓb<ŬlĈiEb/Peä'•ÈsŽİ Œk¨6ƒ 1VfìvżZ~ŭ˘ê˘‚Ĝc{ÛÀd L&ÈE/$(ŞıİıĤ"Ú!½$Ñ}êuŠŻôÀà—óêP‘ ŞjAéÇĉqs€ZĦġŞb;Jr€ùŬrù‘ĝƒ%Jž½ż›,_NC-ŜÁò"yqˆE7zİĉĉÛi]=Ĉa!n×j<"ġZR-=ԒŞî@-x;–BrĞ۔żÀ™7ĉ²ĵ7ÌÈħƒWŠèĜá`*ÓDĤ@¸(–ĵhEîZbDLEâ+7L²[â“ħÈVIĤL¤^TiËMÔ9âĵ”½°s&EDÊÖJŒ ;‚ŠgÖz ²ˆq vċ‘Ž!‘ĠÍôëĊ · 6ápl#CÄ'!ŽJÏğïÓgß:O_†KġÖ2ħ^sbkdï€ÒÙZı)ĥ“ŞŞK Ùt²N/:ğ.ŞmBwğHËc·ĉÀšßöôğœê£UUÎ0ž'8§.>Yz˜ “ƒq.C!> #)şâŜ‹ġŻċğ"MOÚw³r áUÓ*D{Jş80ĊZ•ŒÓ²žëeñ\…egâ!{h-•™§W•İ„äÔÙyÒuħKċq×ÀŭĦ’AúJRŭr]¤ÛĜY§,ŬkaÈá´³ç¤Lô“_gL)ê‡şµÊ.{.nJ!ĵ!ŽYŞ8V7žUżêÉ^FcZĴo’Ów*(4ñ:e=bîĥNJáŠT}ÈéDöœ;5*ÑÑçTġ*P•ì iùç"ü|*Ĝ²ġ˙·Ep "-v)X_t"Jñ;ôxĝÛ˜=À4ñ×Ôsï#;ífÛĠ ûÛIÊ_ċŜ"G•ĵ&'İ/ÖMßT–,Ġ˜Ž…Vn9\ċ‘d‰‰ySȸ]´ 7BPÀ!ˆŒÖÉxodŸŝ²XÎŞd÷.˨x›íŠ<‘Ċ?×URë(àŸ}şNʟàĝíY-bŞĠ]½~ŸÄĊ%ñ€ ëğUs“tp§×È "ÀguPHDdÀ?MJmQŭĞ+ƒD!|üÓMâ½sÏkCm£Yğ{·••!Cè<\$Ż:ġ*Dp“[ÑË2âXƒĜ~Hż2nŞşŬảÄ&²·îR‘e4³ŬBĜ8#ħë<J3v—!9ıÙü<µƒİ°íh8r> stream xœĊ›ÛnÛÈ€\ê)´@¨"žóár7Ù Rt‹Ĵm´›˘%ÚVĞC"қèûö5úÏ ‡3¤(F,|ar4ç˙ûOCòS†ɰŭĞ˙ÏדïÍʉDS­²Ïœ½Ê52,SŒ $dĥžp)˘Ĥ)YMn – ÈèLQN‘ĉPĞ)aP"¨Ğ…³‡É§ qfġżù:ûáĈ&$“HbĴ³Ûû‰ŸɈ`H`Ŭ*D•Ènד_óŸ‹êqğ˜^ 34ż)ĉĠrğ™^MhŝĤ(çğċGWòÛ?O~ĵü2áÊDY2½Ĥ$™^³TÊ R&]j]ÒE‚9µ|IkC!³tC(ÁHWëfH‘)ĕ¤½0e #Ž0ÌÀíĈfŠċF3“ñò³ğÔËf0bF#]gğAˆAP˘f::§Ĥ3½ŭWŬŭl{ğä)Ù^Ìë]1ĞŠrzEˆ–¨|V_‚˜?îĥĠĥúòħ°E Iòí}ŭ3M+‹²œ=„jFç ‹à!ĉjyW,bíğ)ĊÖù—Ĥ³êqYî7ç =ir`kğ›rż‘ġ0ÖHäemżĴħ†Èaħ'/˜"LĤ{ğh4ÙíŻÓdHĠ mW“}écGgWL{ıùˤtŜ‘ħ/ġšÌ4Ö*iç§ÙÚP›¤—èf™˜6"ipní"ßœcp}-/Z·;Ċ‹‚+!ѕ`gW½P—]3wŝô/™ĤƒZ‡:]ĝ¨ž’P eÄBjɀKĊŜŸ.ê[lòĠ²ĴìEÜ8Äm‹ŞóŻĦƒĊjñ nİvN°ĜLÁ*mdŝ´vċÖ6‹ş +Q”UħŠ^ŻZÖcÛ0rzZ¤S[†pċŭ³ ëUÙí_&·úµ_ûĴ§ÖŠġşê†½.³-BÔé1ŒoGÇ$ "->èŞî‹óÒ ÉċĴÏ_ <ĴÁ“wàêñàĤÛħn°ofġò}oO2bHB?[Ç~İ7òls>·‚ZñôÜ*”´Ĝ ˜ R6”ÀRN`ƒA!˜}I"Rù͸ïµNĞ^6Ŝô&­eoÈ×ïÊ?ĤVÏEt’ š îâ˘Sf8ŭf("Ñ%İŽuÀiڝâKÁUkY3w¤;`ħìġĊ€IêÖmıGë@µVX§]Œ2eçLzkzxzÇ?İhmôícrì{ŒÁ yİżċÎ%&¸Í€EÄşhĥ@TP+M5}3= ˙ŸoŸ ĉŸ5C͊3´qŭžÚñ/Z[úl×:µk?*ğˆŭkêĜâN`ŽpÀ…f§µ aí ĝVà™š8yOÍĝCâÖ~ünĈn€ ĜĵĞ.é‰Ô"ÉqŸğÂ’˜ …4¤…Ö6 Ë'§ċœjû^”0ùìÎİ&]\5+ċıDÓ+´§ġÒ]óH:*.0êŜÙ+cëû)ħkWtOġs“ÙCw,ëÇKiĦ2˙à&Œ-ĴîŞ`Oİ‘&ĞEŬp7(XT7 'ùjV–q?Mü1hĈ•Ŭˆ>@ĜH°ŒÂ-–2ÛÙß³ (‡Q\b ½ĊäîZ9pĦ˘DvsŒ@ç)d/˜³µ;VÜq‰$tfHöö˜AnœÎ‚Ŝ &0ûcÍ(vW*,tĉžD– ¤™q#S™?LŻ„=ëħoÄ,]Âo™gşóĴxHǙTs¤ˆ!¨z‚N—³z_ìJ€Şħ H“°Z ËT_1TĤo@ ˆ˘5à2Rŭ °§àèLû+Ö³ċŞé3Œ3cß@ Ò$†ƒt#db3žBv°E2ó`˘ŒhaL/dÂż=f€7ÀIÂ_ĜÖA 5œòâҀTscDä Ĵ6£ùK·‹/CáÓוµŬġw<Ù%â'0” ‘żìÓvÈ3 ‹Ğföh†İm?ܢ#¨èĥ8Â>ĵàà(märÚN$ Ċ÷´½ĜX?dsfe÷&ŭ†Êž xeOú{˙¸Ŭ·–Ç}…gö‘g(üá]Î$%HÓg+üÀ§+<“Ĉĝ<}„YífùËfƒÊCäà_s jÎÂÉ›­žŠ^GΈ"ömŭ–ÇfHµĥèn9e²ŽWÇiöá1.ĤٌÙ)í)vHÛŭ=í˜Òó*:£°EßPϓñÎĦĉIwŽÎżúìt_ÏİĤiù =?ܢT„Q=ïçœçOĊqŠĞ½CJĥĥ×YSi‹*›½ñ>ܢğıL H˘Jk÷Xó(•äb*MáB3ı§Óŝ5½°ß³òşë–RĵOyÑW´C~Íu=6¤ [t^š·µÒÄŻjáFhdĈ$ä_LÀĉİ4Ċ½˘ˆÉ¨FR‚ipİû ²r`-œ­Ù—ÏÀÜOŬó{*òÏát‚Ô)9 0XĤ°OżħÀZ§Ûĥ+—gwĥB;câëlŠÏu.žöU˜½ĴSñuŭážULL>Ożö²ç ³iíċ_ç ŝĠş¤fòĉĵ=1 ġö×yÙ:<żû‘ñ”ÇŜ$˘"ğ¤ġ "À”Ú­´'F  -:<ÛB¤QCDcĈ8i"ìù‚ĝv;0qِ2â0‚ ‡ A}jvÂHŜ™§#ĠĞĜ×VE{îÒ7Štˆr+Ž7…‡[tÑ!h óìÀ``€܀q˘c ċôĤï |Hˆî¤8ĤŒqlYT}ÊĞFœñŽšċ=ܢ#M,<[yĈ¸93˙ADq{t8žȂ ¤Ġ‡ıêPí‰í"8/b׉ebCÒ>mpÎáÇĊ˘XŬıCZEŝTTUħzN“IŝӔğí´Ÿ¸'Eälŝ·mŽĜ/o‡oƒoŞíż}oòÌ8İ•Z~íŜżŭáÉOç[>lì`@ĴµH˜ĉ˙ >‘¤óĉÂîCe?wğ'ûħ¨ cġ×vh•ĞWgˆ8pèŞµB€×_KÀpá;İ˘‘P&|ݐ> stream xœÍZ[oÛÈ~7ò#·ÀRm4™û%h€viğE·M}ˆö–h[]ŠŞ7‹ŝßŝ~CrċDÙħD´Éƒ)rĉœ3gÎùÎeĉsD ‹¨˙_ŭ./^½7Ñíĉâó…Ò’ĤÑ:RT(˘xÄĴ$҈(K£FĞ Jœ£\Èèöñ 7˙}ıcÀ W”#ÌO”(† ŽHeIœFFàòzŸàC!Ñç VĴ.ŞŝL—Ñ·W@èȧ ·ÑĠÍEıt)K@òpA$“ÑĠòâcüĞјQEeşÙ$·éhĴ8rñú&<ê8˙r_|P„ “oóu6Oä]šmÖĞoŞOœĊóü.L“1 .™§‹Ù&üĉñ&ÍG?^ŭ˘2Q•ĥĈK ½h|ŽĈ\í¤ŠfñŬH)/‡‰“ÍfşıħPš‹“ÙlžÏ×ĞdQ½36N²Ûí2]ċ›ŠĊùşzvxKEçwë™˙íe ·XĴÂDĞÙ'Ħ–*X'TÔ_B¤hk_9j­c£ Œ((ġú't´_vÚTjż‹zGxa.`“BH°…âéˆ ({tƒ¨ƒ­¸Ŭ•jCœJ–ğ Rˆ›MG<~)”3Àw–íŭ,ÉÓ<Q‡1İZD'#>œŜBM–!O oq:ñŒÏ°Žş&£—ƒ >gŠڒżƒúr0ÔWÔ6ĥsĦ*)×QâÔWÊpbMdµëGŭŝ ]ÜQʲ_[$Ħ˙|Ô÷´•˙¨72‘!Ž3Ĝ$#_rŝyÌì,̨8qDL§4 ‰6•q–&EvoĞLŸ,:1Žkh´ŠéĜö=YSDÓrPA·Ġ˘„şŞ"óqŻ´˜oêeğIÎ[ĠI¸Ĵ’0íW 7ÙzYÏkŒ|ħHmlRĈ´¨]ÏWIöUrĴÒ˘à8TbHĈ}ú^ÛóŜ˘ûƒm˙„ŽÑK˙Ħ޵Œ üUO‰µGX k“Èx÷Cmždyó^İŭb“z7˜˙RTŒhżajĜĠ/Ÿ]Ô+ × U"ñU˙n°5ĝžŠ]!Vĥ–ßß­ċhŝ]V6TïEÒó£à)ž9#Ú5)ŒvMVgFğö*zŽeàmp zÑBÇ%1P!Sl£ĦŬúÏwGîĵ1šĦÑîħΔŞ;S²§3ġ‡ß}˙}ġŻŽ´¨ĉsŞG[TaPÍ`żO%áċ>Eù_·Şòôçĵ>áW‚7Wş9£ö™Ŭ×S`ӈ1ZlĦ‡˙ÂNk;s…³ŭħ¨B×İÄÔW;¤?<²O:#?Âc°œXû5ĴÛt•fI^5°dq˘UŒTF •,½ÏÒMşÊ“òúB9‡·şĊğ˜;g)9ö‘U °Ò²‚Œƒuż(ĉ×d}6`ŻNכ¤ OL#SĤşĊêÄR(m ßÉ!ê?ù–…k/f>{ÓX ŝ‡Zġëİ;I˜kï ;f„ÏKnZô†Ñ‹çĨZ›œ,ӆfÎĜ‰@EŞÚëşüa›eɗ“zpĈÜĥYU™ÎX ³¤ĥšp% ìċAL#íŻ—9Nĵr{Ó Ŝñ`€qH=X}œi ôXÔOŝùI3Ú#{; úÈ~Ĵ1ñÒïŝëş';™T„‡Éd5Ÿ½Oí^\ˆĞŒKĠĵĦè+1&L\íŸU%—˘yeRPgxÒ-Œ#<‹Ğ Ò³ßßCĤĥêkµ˘h²™ÎçuóU#ŠnFTÜğ÷s „á럐.‘sÄ[ß$ĥáérsÛ ·}Í37 ½†,ßÛhrjĜύU˳IwRàV‰k{e‚8y¨ÌPʌ|ŭ!ÏŞûŞĤj7ĞŒŽPUŻê‚zîÂßàĦ~˜7`Ğċ5Ùŭ"Y…BĈÉbž„OŜ:s @gAĤnvĠ‘KC~ße+ßlWĠ™ö!E h!jŒ`b­Ÿô¨èÑóĦ ’Ù¸Yƒĝċ×)÷—¸ùÓä§ŝ@"X0E(Y]›*Ż½Ç†7›­€>ĞKĊ–‡ĝU5…ñÎî'âċ([ŜIö³Y{ö,ŬL³ù}^^uQ@Œ§ç ²y íLü°ŜúË%+_2ŝÄû>Î_5£'"EYß êۀ-šâĈĵÏĞMÑħŒÉ}ĥ†ì+KHBu¸ĥâ1l3‹ĵKQŻ2l³f„ûĉË…vÍl5V5Ç2€ ßŬñĝw33r>%*„<†mjaMŒH…)§ĤÂËğ<żßĵ~5b>ö(żšf…y ċŭ…d@PTÄXy×ëìöĠ}2ñ"Tñĝ0ŭÍûw^/ßnožĉ‡…“şˆ•-ÙŜÎféâz„|ÊYŞâmšçéâe… FĊI i)3ó"˙g]şĵ!Ċ=ŭĠĴúĦ\ü!_*¨(ħ“÷Ġ{dG·<ŭ ‹Ŝendstream endobj 195 0 obj << /Filter /FlateDecode /Length 1158 >> stream xœíX[sÚF~ׯLó°tÂfï—qûâ§—$ub˜ĉ!΃ kB ÈbZOëßÛż‘³BBB^ĜxÒvl?°+Î}Ïù×1Á4&ŝżüL£g:Í£ëHR‹Ñħ&B`)cI¸Ä’ÇœP,uœıĝ}<‹ĥZ(bї˘ËèĜ+s+½!hêĉódäŞÑ@ċ@”[†ŝ*fÊh=Xô_Gŭo eFĴġòwô?3÷Ëbzá2˙LbÂTi¤ÔäTš™ğ^Œ37ĴÄ,š/}ċ{ĥ2³Ü_--˘G!“éU>Ngɤ6‰[“Ž‹ĝú7W”!ċċÎ[M'Ĵ^~şËd1É+ËĤ)÷雓GuĦ êĥQHĝŜAĥ5X­…éÛƋĝĉôĝ§×'D‚%òħ’5*úŝôìUPœ­‰’¤:ägžLC‡ħŠoY@ı“íñ,çĞ3äh<Ĵ à‹™Ümv¤nšŒ'µġ†E´˜ı+—äÍĝÂÍı6> stream xœĊYÙn#ÇòHĝ#È*£RíKżĥI0 ȃ'”Ĝ’è!ÙvӎûWò{ùœŞŜŞ[lRË8Ô]]wİ[÷ž{Šġ)c”g,ü5˙o6³‹÷6ğ+gŸfÚ(jufœäTıL3İİ™ĉ–r³]žŭ#ÛÎġž ݲğÓ³ÛÙßĦ_uZA@8h€bTsxj¤m-(ꝴ*ûĥ ŝO­+•ĵl36ĵĈcTĜ#­zv _ĵŝ41Yóïf“}u/É<ġĈ —]ŬÎêÀ7G-7*³BQçuvµ™}G~;?Ìcĥ'ĊCµ*ĥ‹ġü\ M™¤ĴvĞí]xÇBĵ ùfħZ·Ż’|Ù>z"˙0˙çĠŸgœ,ƒêżÌ~7PËòE•/{ċ´ÚWĊnµXÓwù,ĥôŬ}ħÍ˙ĥß\çğf3ä! ĥvTjR%&ı<`2˙W•oK,İl„œ#œħVƒ&UÑ>½Żġ5J8ӌüG.ŜsŸzÁ™ñ<Tù|.D —ˆ$žİÈış‡ÏÂz,ԐEI×в k²d“W÷Ċ’ĥÊ%6Kg^QĈu³_\K¤rŒú°_QñĠ÷“[Ì-|³f Қb“Ĉâh]*ĝ]g[#xaĞŭ.DSĜ:h‹ŝqğĜäqj¤]pĝÈIqÛ(ħœTuhÁzòE^m¤˜"ùvżyÛNġdħ]6Sa|›—Ugy²ÌË9À´&7ğĠRİì=]moÖûeŜŠ[…‘:[ÚZ0TÄúĠŠ2ŬĴ·ş_•ġ.!°Á@£xÎ9‹ SoÙ7W(żcêJË28ÄıO1Ĉ*|‚1“cl’İ[¸“”cs`‹2Ï{|9b2Úx n’E)„¤ĠnHF*(ɨ4Œ3ìŠŞ¸ŜßÒŻğ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ìxLjéqáż´Y!Î|¸Š½ ,BĦvV’’GšĠ´À(0µ(ŞL§şĠġ/O60hj™ĥĞë>éNžF7“î&şÔlO#^,—;tÁë˘ĝX77„üq•s nj19;]ċÓ˜k÷#zy"ŒĞüˆËϜùŬĥ4 ó™_ĴIuˆ›{0ùu¸žšü“mŬŽr˙ Í$˙´úW$żÀyÉĜ˙_ò?ƒ‘İFJ÷‘–ÉFOox2wâ¸-Rôĝè¨CDŸvGù@"Z>x2mí„]SH“Dާ`}— KnÛb#½Îûç}™·Ó@ÂíN+Ò²ĥfD6ÔK߆# óšEu`$Í×ÓñZµo8xkvQ–Ċͪ܊cÎ7d;-‡nœĦNÉkĵj@¤x2ÌúzDÇĈւ‡‹‹%ˆk˘ŞÓıàN8 KœósÒyŸH‡ÚZ÷AËM‚Ä2XS ÷UġPŝŝââî#á$W7tòá8Aŝ~şJ‹ŬŬ’ĥ‹ŞàË÷ñòĠŝ6a²ÇˆĉA—”Ñ4ü:“xôÍr™ŻŻçyé˜&ûĵŞòġÛúo5ùvBmjGj—ÁâÛ˙ġġ×?Íċ^´'—Uñ1j³¨Ĥ|ŭSïîĊ{€Ñ]‰§˙8Ĥendstream endobj 197 0 obj << /Filter /FlateDecode /Length 2120 >> stream xœ½ZÛn7ú(ä#iS@ÌpxçC_$Š ÈĊiœ pìµ£VZ9ş´˙íotȽqWğ­dyˆVâ̐3gıŝš0 ó˙Š˙/“§oMr³ž|(pÔZ“Ĥ µ2QL(ŞD­ܙd•&&لQg¤f.ıÙbr=yƒdÂPá”7PT(4Œ*H¸”›*„¤Î #“1˜F§’ßö öƒĦ?Íd€1gñ>­np֟˙].’gg8CeG6Ü&gד<9(Iı.¨fĝÓbrN~žž*ŽSt–Ĵg‹ÛyZ>s’],Òédzß'ÏÏüT’ŝxBĈ Z†xd³Ŭ,W³‹9}ÖËlzöWáZ(Şq…ĝahàş‚àÔpĠĝK¸³V`îî~P܅ld¨SĤ)¤Ğ 6:[ ,"Â5\~ Ĥ•ËÓÚ\C…0–˘Ş†´c\ÈÒ½Ñ5’qN†¨ VP°]@6*qżûwÁŭ! ÑĈ§CU Et0rKx*ò8‡˘Q†p_)&q˙Şï·hçˆ[œĥ;¨Ú‚Ü[µki(3b§Ú\ĞdβËùöj–Ŭ_YG֗ËÛ;ݍ‹àW˙qÀû­˙8ÒÔżm¸ü@Žœ}O(-ÑÄĦÎÉġv>/ñ ÉŻÑĈ†Êîœîˆyööŭó#òĈ9ò…fŜşXS9\ĥĠ-šR´ÙoÑâÈ·cysÀ˙ÄÉp*Ò gĞsE¨c?£ŽŜï)2>¸ä”kOÉÙ:äÔa–):d\“³/È" ǀ"—Ël3Аœ\Ì2ä“O›o·ċd‘n,ŻhQàJ”ĈTĝ…à€ ÈİŠabŒVL„êê…ÊüVD&~:ñ,‚y_Lîe¸ ‘ƒóbş8}Ì3ŽĴÒÍj–ŝ“ŭW88ل¨\2]ëËĠìÓ[ `ĤĝîsàÖ7M£Eş^_ܤşüVoµ·@MÀ™Ôw”0·zuÓSŽÈqÚĦßÙş|2ñlXĜ{ÚĠ-•“W•Ĝ2úğeżEğ2„DħY†ÓTŞŭšċ@ŒĞCI –=`/ŠŜo/Š#u ˙Pzżc ç=Ş÷IjêŭҘ?†ĝµ×˘"&µ5Š4–¨?ĉ×~˙G ˆYŞ5oòëĞ÷/_vU–ÔÈ*ލĴ~‹VNp §ÖµJĞ3);5äÄH£i3Ĥ²˘xż£ğŠò‰Ü½ŝ²ÌÒWÛĊçtuÇSÇ´+ŬSżCN(dVçÁ8ʈ÷0‚ÚŞ†™•ĝhĦߢ~rÙE”€‡²ô7(a Àȗ"LŞA ħȏT–\WĜŠsa¤8ö|!ÈIĞfN~$Ê,0j™Z•ñĥ*ó2€IòS:żútıܢ4ŻLˆ=$POÄ(ó{U— YËÇ\Ïêğ 9“$òħµ˘ò(bPTAĥX‹£à4Éò2,~´dy]Ĝ2GaÜuŭ8ËÊÏş!„ÔŬBHX…˜Ž†Uq9@×ŭ-Àâ@IEÄÖL[Ä8³ğ‡§–£ë8àŭ Ħ8R ›‡öˆ‚·cÏ=œ‡GĴE3â”ÙoцÂ“˜ĥcO™ŝ€ÒŻħ0pʔcO•b€ż ĉÂĜsá&%`ĉ1uu²ĞhĜOZÛUVQ–hRVÌüÁ‚ğœùó½M/gÒÊğ ´Vş†ğ`5†%ÈÄÀ}ñĞġZ´!‰k£JîÉ]Vëq,&J?$ĞEï™Ġ˘Hlċ³â0öß5úae–¸]tT &bçpÌd¤Ê6I½\;„!7û-Z8çŝÀ¤Ċhı9àp{*dFÊÍ3…ŜääÄ_WŸÏ&ÈŞ|¤„ݤÖè„)x]îş·…$Kכô*œF*y*làı’g^ġ—‡ĴAD(—x"7nŻ[Bî‹i²;Ŭ~E€ĊcQƒ]MD ‚Zħ‰ċ”ï5ŞÖ´ŝGÎsMë³ĊdòÇpQˆ³ŞÜèĵ„‘ŞlÁg³LŻìîlñ†oß ‰~‹vx]ÊùAAލ„ĥÓx#ĵßfGêÄïÁ/SM\I‹'ğĝzö‡oĦû-ZHB ŞÜXĦ;à˙py$Z„.Œşj‡µİkżxaµĥóĈnÚ‡ ŭ™†[Ù0‰g0H‚Ü˙Ċ‹ÑħqĴ’ŭÚdD‚ÚV,t/ TÖPÉ~uùÀ4GG*98Љ²0-²ĉ‡C)šŭçZ4W=ò´óŬ (ܐùRr…àĞ“G³Mġí·h£Ÿ+—k†ñïL‚QB  {@Ŝ/Ĉ‘Zà?òŞ ö|gÒş¸Ö}£Ĵ9C–÷ϵ‹ë˙³ Ö5\ßoÑBğNAµ”u'Úd?à¤{Vw§ı4z›0ŝRW÷\ФÙü·`ÈvÑÔŝ˘Ä_ñJƒžÇ\ñĤY3Êns°€.Ħ?öĈ¤yÉĞ£K^B×w#>ür筍“e^ĵûìKM-"é$ñ™/àùĠU:˙<ß]0›Ût³IçOÊ{( /Ĥ2`ӒUĜ Pä"ûo™OÁ„)\dċ½•òn³ü;÷&IçßĤ§Òr_äíëĠr³|ĥ kĥäÙMĉƒ!ú<2N—ó†xŜRù͂2á/ÒÏĞíĊÊc֒oelC̓Ü5˜Xg°›k-˛³ïĊö6ÂYŞŒuċ^ÓÎÓ·\ĝż‡}3ùŸŻ‘~endstream endobj 198 0 obj << /Filter /FlateDecode /Length 4041 >> 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ƒğÇ\Ü^üôy˜€–Tp;€–DbŻJA0@–\¨v^Íĵ\D |}À\Ż1W…U½½ ‡˙ßĝaĊVÁäÀ”F*ŞW·Ž}2şTDbM”‚.^=\ëÍzœŒĤċ·ġr5Ÿ Ż~ĵxyeİ—šTÜT%“İ0X˜ S%…ĝÒ ?JĤ ÔhÍ05xǃ †uÄLœ–œ³lĤzĥyĝaŭë˘ŝa<ßÌÖqŜ÷@ġ7Ċ›a %5şhuĤtIŒHe*ÊxÔî  "Ş0Hš•D÷áTż>€üë†ü1ĝ‘D@ bĝĝ@İŠïÈ÷KAħ# 2üŝêÏVYj JCIE-KèÈĜçKŞÊ ĞğşZš’¨ƒĞŞĴ¨,îë!zè²âáĜV˘ ŻL˙Š˜âĦ^ßÏoÊv*†% İU³bJ< ËNÑ„ĤĥĜÒĜNRúN-kFŽ›RI0\ığ‰íBL³e½Ŝ,g+·2èĦX·#‹›z5^NĜf~5Ċ­ûv yïĠ˘O>ĴuĠ,,ŝE`{OfŝM%AfÒ.AŠtVB,ìXá$ĠÁ+ĞL)Éáp÷€.^YJBŽ1|{ĉxh™-ûŭŒ^:áy^:S#Íр>ÓŬ7EBúT/İ=‹ŜAÜ@NJdÄÉSl³µUß>Ë,Œ"ĜTšwŜħÌğt.ŒÄT‰e6@:{Ì4ïĦ˙”W idĤ9µ@…ÖÚY Ö\;#¨´ĝĝÛûùĴj d+%aœûî²x7Yß·cyÁÚGSü<šnêU´2l8e Ĝ™˘BX°K-Á Œ†.uEÏ8”%m¤­X%ŽC„V<7‰ĦĊW“zj-§vv9µvċTĞß+¸lı;Ñná I(9[†óXpÈpTĊx:Z­ĵSâUêEÀĵQÚû›f­/â ·½Ž„ƒŻĴ̜×Y֋e½Şgkkċ5mì˙‡ž_Ì\éÜÓ4mŜC4ÏĴxUĈö+ç-€ıŞRĊ¤İe1òŠĊ˘^ĥó‘â5ÏŽOK°-`Ŭ´$œGsĜÖV—’Ĝ`·ìŬ|~7­Ÿ?_,çëùġĉöùóÇ”¨…2ğ—TJñK7‚šT¤ˆ)'­H?Á’Ħ)ûÂY cŬëŜp 2ieHŠĞĦq{`t=­˙“âžġ4kÛôÌ0b™ÉÄ£²ğ Ÿfòŝ΃ċşnbµİ6Ħ(|ÓĵeèüáÌĊ$¤‰.|üb{>ŞlPX?—pó¸j/9Œ‘FÓ%ħ3VMĴĜ* …Äŝ èË ³Jà²a­‚)YJ:x¸àÖże JĴòlXĥJm+´0´ @ħ½ö˜&PÂ^Ë<šMÓ0Ü9„ğšÎ× NlìöċĦF GJ˜Ĉ¸’,$0E\.O™ò-SD Ҕ)*Uİ÷ò„ SÁñµ,ĥV iĴ-vl-†ˆZ8ܙ)ĉñqÒ<"=‘Ċ,ĥc—ĦŻßn"(‡Ie„µÛíċ/ëĈöÀ+QxĴÙhêcZ,ĉ“™{ݐ_]Ĵçá]ÄcΙC ›ÀS˙*şa@ßWÇÖil½‰­/âc;Ĵbë8>.c‡DF ëU璴Bjšçħó^!añJöċ'ŸxÎÁúÏ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èa Oz„ Ä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òФäšëĈmç½ö]Ŭ6 Ş&€N0UÚĞ$;ŻnïÙ†Ú‹ñ×YÄk]ç#W·÷?ŝêĥ½ ĞÎŻj„ËŬħNeċ/lŝĞ1á˘ä_.ŝĜP Us/:”ÀÚ&.G•³@ÑŭŭyĵÔM>k¨wHĥ…’H²ì °Ln‘7}ĴMôı[³É$4>~‡ÌĈ%4޲Nûŭéoßĵüŝ³È.ìzd·ĜoïġË#öòµžżÖ]5·äs'ĠQfeJM[/Ĉöü”/£ápĝÉĠ†GöBà/§“Qû ˘‚cé›ĠßĞ́^ÏŜ‚—NÊĜŬ]Ù{ĞVJĥ4ĞĜà°–ÍeVtÔ÷i_Â,żíÜ˙NlÎ{đZğH)íÏÓ Ì˘•³î×ëĊêù³gcwö›Áώfċòrx WşXÎĴÇërĵ{ĥ›{Žsñ6Í篚ó°_lnĵòßğ$ŽpAÊlE/onêéu(éJ›z½—.D3_ ıµžènŽ+XŬŝwBaİw{Ġ áëġü§†šëéŻqıÏ^ÁŞÜ­ô?{B endstream endobj 199 0 obj << /Filter /FlateDecode /Length 2331 >> stream xœĊZmoĈúQȏ ÒĦŠófgß7A>ô_’â’\|J‹â|8È-+'K>½48´ŭ½ŭy–/â’e[–RĝƒIqwfwvĉ™g†üpF ċ˙˛Ŝg6/{zšË~\ß\d‹ZsÄ5 ə4œ8.ż!AÁÎ íŸEg9!ˆˆŠ5­ĉŻW‹Élüó #™nmà<=ïŸ÷7Bk?6J;ĉÄĈQ´´Œ‹È=REnÜ9!÷âÚ{1Î0)6ŜĞ•`œğmŜkuäıŬò_çòc‰Ê5³ÌˆÜoÒ?÷Oà#<½É–Ëá8ëŸhĊĝ4ö'üĤĦĠ¤˙îżü­GÙ$“ÁËŜà/ıÁ½“هġd‘Ş>]ÇWJél#ħ¸˙şşô)}•Ko‰œß&óÙpZ‹d[]ñ6+ÇpŸÊğ YĊJD}ùf”] ×ÓU%ÙĊûé‡Ó·_ĠÛċ:Únn°˙ĉá̀ĉáT`ëÁn|r",# _Œ`e bA>çı%×XŸ à6.ÖïcV(JÇA†I™ĉ£°'pBĞëùˆUj%ŽX(ƒV8Ĥ+™,V€5Ĝˆĥ”ğ{P_ïò ržYŜœR.i\NìÒ&¤cÚËxê›rĦĜP–sŻX­³eĝ!$J‡¸tátuívù3#ÓùUyíÊS,ĥğ}ċĴJ5V>žÏÇӌŬ.ĉĞùĊúн˜dÓÑ7Ùòr1ı…ßĵ żoÙԉ>8Ħ““Íy‡ƒ ËÖN•Ÿ™uX¸I[bûDlZœO V´“’™Vúħ;²cç„Ĵ`1˘½’b·ŽŭĦEä4„ċĜŬ Óf%’‚YœVĴ³'d z.–7xÍÊ!4eך˜JIduÓ:ˆŜ7—ò<=ĊbC*Ŭ’HµÂIµw9Ġ"„íLÚ=£íó ùËĠİ4@‰ÒòŜTşCÁiĝ°;—).M+3}ŝ ´:o&!ÓÏËd%]úÛdu] Ruêş "–ġ£eĥڊI¤BŽyeïžÑ>ĦMZ4QÉPİ[Éħ¨şñ$/HĠc‰çéQBÜjCR6T —ìòz¸^â"`,lìâ¨p^pÑPù8Â0Oş!ïp.`&麖|ȵBàÛÍ£>šçĵÏ·Î9TF[!])‰ U—"Š˜Ô~¤wÏhâBGĠŠ%,ú>HßĦ`Hé…H5!}6ĵÉĴ0UĤŸNFŸFĊoE™³™€²#*mòÓáE6ŭ².„^ŝġùéËwg§?˙òŭÙé7w†‡´éüóĠéğïHq_~ŽP‹u§Ħċ*ß`yġZƒ0™tˆí,-\à’²”ËKıH 'Q ŞË†œn“ÏꛋˆzŻ—Y5Lˆ4äÇâ …Jc1Éŝ•Uœšœ½Úcxdşİŭ'ȟċ£tÔĉĝr;Ǘ˜CuI8Çòpï̧Ŭ3Z၁0UŬú^2á–Ow()òİ6Â-Ba{óüjPi·3‚à"ˆÌM^ëÒċäĉvšE͜GdËcävé‚'ĉKÙ¸ážp™g\Ħ"œ)4œk¨|R•clL y“ÑV´— Ù!$Š‡!ĜöŬ3ÚîĴœaFE^2şżĥCŝŝ`/qaQġ6Àŝ ½­œT×Pß6—`µĥ,%Rюpïš6G]ŽĞ£=t·Úçn´wê8Z°‡ öN°`[Yq2ğœGu+ùty9ż=zĝ‡>šÑ ˙Häŝ‘ʃ„$o2zöDÒÚĠTD™Š0ÖuµžNżŽ´íċ\DL´|pöËéSèħaRMëo…Ja|è@<*ğg´°QȘ&TÚû‰ñûc@8îwaeğ5_açcÚäúC…Ûz+Ò?M³¨áz^ìñÀ¸LiXT9f¤~H_[ '3ԙïŠmùƒ‘ÂÛĤÒá`H ˜˘Wúr"äAŽŒf´Wp—"F LèXcÄAġ9ı’!ş ˆ.bí6mÄ˂!–S"Š~‘ ˘(°l’œ›â+%ċ`<‘´y—ıÚÀvyıîÒŜeuu=\•wVUFYV]U‡ç“êÎĜğ=VnÎJ'…7ŬŞĞž ŬšÍ—G§£Q6½èSĝnë^gĞU6}ÄÚü;“}•Ç,ÒEˆôpöżyĦCL¸U7”^ÍßҔN³éÇŝ‰r"Äjz–żˆ}Î[Ĉ.ŭûd< Ê&Âá`˙İ–Kñr•N“” îÙĊb=\÷HĴêcÚĤöY!YpÁ·î\kP E…,¨+üŞĦ ab}Ġsrƒd_œSĈK\ŭC÷.ƒendstream 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ßğ}ırÀ WÒoà„il”(† šHe*’8+ŒLŝ†/ £Ž%żvu _H‹;kòŽb+>(ñDÀŠÜ“ò×è>y9@|Ì%Ž8m¸M×½eaX˘,1L#ZÎá—î{éh6͇“édzó!˙úġŸzï7‰[z“u& á¨bhŭ]š?ĉ³ùdxG^góĊlşĥO,£ u¤DhÊ(>ìžçèP5—ߐç]45{“ñğŝÊä RÚRE _wÍʤċB!ßP@j %,„‹5”Ĵ‹A fí`˙²°żK* hkˆċ Wé·ŭ34ŒĤl1šOĠŝ™â>›^Ż8•0Â7E¨áé‹^ôß~kSJGŒë>Ÿñ ÍbJiˆĜg,[\POφ¸:é`T³:"2ôƒIVót<äB-DÍúğt#‰0ŠÊéH$şĦ‰{ê,ĤA"b+‰Äíz†DÇgô\Mg”{ÏgİóŸÏ¸%Ú÷`0†O´iXCv”ëtp ÓÜXBe:Y|Èú ^Àŭé?y6]L0ŒËĞÌ÷Y~;“ʝ@˘ ĴXäɗyQﰉ?)†Eµ.yg+ĊêšE­ˆÔÂ,_•},ˆežċóéb˜ŜŝqQ}céäşúĴÓüvR­Ó6ŭ&ğŻw­`ÏpZšç&]EF6P´RVĠ‘ğ ’Rt|CŞX(ÀG£Y˜ÛŬâTÒIĦGœÊ%6şı/·r†ĵYhú „Q‚}r§Xuç8 !µĞev†Â0Ì`-Ü+Êt´g ĝâŞgŬIà“9gÂèú&ş8Pò 'ëm<·? *<Ú ^ħ÷kÊ{ġóï—j#­Ŭ/²şQĴ* ²ÇÔĊì_éqÌ>Ÿ, C…öN%‹"1Ÿ@Ġ²9ÇUjĦé͚H*…jİĈìı8Ä74!N,ïĜmTbŝÀk@FşpA‹È˜uÈħ‘3í;'Ñ,}ĵ˙˜Íŭ˙˘m—7ғĵ@\.š.­?6BZ‰ ş&ŻB÷·‹q6şγ@Àä›j3Ğ|–m:ğ.ŻQWSAŞPA›¤¤˜bk[×dĜè†&â<҄ër÷yB²q§’6bxF³ıîäžÛ cR…FŸSÔ0k9Dôx´‘ÎVQ# f‘‹FYœËâÈÚèìĈe-ĉ÷ç2a Áŭ˜GıŒo*P†¨&U|èâš Os{ ]‹ê#ÑüÏ|B‡Ç7Ħ½S‰›HÌ'7Ħ§ƒYÎĞ(Q³Ĵ”yÍÑkyÀ‰ohâ2ß§]İ nŝ¨Sİ´ v‘4."i–çC…Ž1­:ŠÓ(Áşè˜rMuŝ×0ÄÑX¨˜Ñê,_>ĉq‘UË8OóYu…yá3Ÿde•bauċS¸üV6Á…úéNp°Ĉ|ùœH7‰.ô0é|äßÀ#bŝġgîšuáß§=\i˘Kr>ìĜ­Ñ҆ŸUh tê0Ÿƒ¸ßbQà0™­r‡3Ċ|Û:˝ĝ†&Ĥ˜ĊŽ×b~ŽœaÂÛ8Nm( ô(BĜá W|C£4XˆZìó†ĞĊĊŝċaVö3ޝá1ÔNhïTj'ó ÔN­Ŝ/İB“›µžûgóȤ…âš`—ŠŜ;ò@‹ù€naË?hċ]´~JħCE vÄĊ‡@ñ(Ûzr5£e§“›JòĴì?•=RBâòçS=ż”)qĤ¤$žédĊ÷X!…ÀÇMÀ]K­—Ç„”Ž )ÖUH9Á‹ƒ™ÎÌß;&ŸjöR->N%¤ü›cÉÊwéšöe˜SĈ…fŸUN•vaVŬ] laġt6*Ä˙7Hı{ĥ` T:9CcıV.Ë9UáZÉĈÁ'ˉŝ7¸Ż§à£­ukU!ĉŭƒĦoÊ×W·yŝ°ĝñü|„Ù[ ÌŝpJĉgŭ3 Î|ö)ċd6ż9Žú+@xéçáMöÓÛ×óY>{ùx4Ĵš›c’(ŠÖġ.ĈìîcŸĦĝ–Şô1Ëóìî‡ê QŻúÒO ˜s3³ùżÙò€ĜĝŽáû¸âW—^ĉ³Ï…5ƒÏìîë:^P“ŭ÷Ĥ÷?rĴ)endstream endobj 201 0 obj << /Filter /FlateDecode /Length 1975 >> stream xœÍZIoÛF ŭDÚˆ§³/Çu‚9$ĥÒâ  -ÚV+K6E0˙ÛżÑ7Ü4¤ÉÑî>˜ËÌ{o·Ì÷†zŒĤqċ˙ëûÁÏç:ş] ’ZlŒŽ4U[IÂ%–<˘Ú`ji”&ÑÑl@°µ„qŬn0cp3ĝD­Bcn› ħ0A,iD ÇÔTĥ†kŭ ş´ŒŜm˘çô0éq@óġEċżëûètpYl•f&Ŭ ŠĊÓH Ì8U‘f + ŻîŸÑJ$AŸé—á‰d`•ˆżŒ~œ@Í )e¨ÂDĴìħ Í=¤´PÄzHġÏȑZ!9–BVa!uD „ï6Qr‘+Ù"e ÖV9ˆPĥÌĉé$žâIş˜Ï†£? d6€8›`%pŭ>ĦĥK!ċ k& ZİĜÚǔCÌHŬ7Ĝfa°`ĵÏfL™5†ƒ f 8 .$³Ìê4Io˘sŭ5{zHöÉB¤@úb/Ñċ°é½ ÚJB(ŭ3ÚA/46k–­Öօ€‚=Ŝ!MÔښž‚ÊfSœœ†ÜĜè„i̜·GcÀ0…8 Ĥ‚! è.Âw4JĤpĞÀ"Ë}’ŬÍǸRÀÁPİ` 6^0H^cPœvgêğ$[8ı Y”J(‘µ’üDó›òEħğâpÉtœ?‡˜?d“ù,žv$&œ£4y\NÒd\>²Ĉ˘yş’™&Iœ%Ë!Ĵ”;wZ“Ż´XI7ä‚L {ë(m…ë_à F›Ë/+—(”-ÓÙ˘xàĴ-áMD¸‡/q;mŞ ŠuTÀŜUŞ+Ñ2`ŬBÌ8Ħ´˜aù£17‡·3^ Ó§b:a“›x9ÍÊ ”˘IVÊ6Ú[Ís?ĉĥp4[Ŝ_%ie†Dßâé2İÍBWËR !&ùDS/!ì2‡=ì1(^àE–Nf·=nĞ€FaİuÈ8½]Ŝ'3om×ñĴDLqtUDmû‚@ĥZˆxHçß&$w…(”ÍŬµ´DŞşĠEÄ[çéğċ}\żpîŠÇñĠ4)Ÿ(ƒÊE•¨‡4Y€­ħ w1İ…ÀÚ8T›ôÏhIÈ`ـ;=#Ŝ§Ş** ìĞ˘•Ò;nRN”ÛÉ}™—G&#J(´Ħr/2ġ;ZçɛŒ;÷Y)ˆÂÁ†³l`ŸíŸÑ!A`oÓ[ï³ğï³R@ġQo֙`Dħ•`?dE(ğş‡·q!Ò: GK, - 9hby2_*ħ<•I,OŜĥܕÑRUFsj9ÉŻĈ÷ħep¤i*:Û~ԐµÜÚY„Ĥ²ÑÜı͔‡ÊB˙ŒVĝ@†ôzN ˙֗…€‚Ŭ˂€ÚÂ*R×Y^½szöŝëùÙÇOżžŸŭòŞĞLĦş°-öáŝm´¸#|—}8 cÀ4Œ/Ö û Ñ ûòŽĠ ÷Ĝ|„Ŭ×´o}Ĥ@< kˆĵDG*mRY6uí[ڈkEÓüÎÒF˜ĊBµêHèdĦF;Y ôˆVo_Úúì‘İÄb%äĥ-pí3×Ô?h`Ï`@“Ċת,Ÿñàieë:7žKÊ{ğÖ!ı´Öċ _ĊóFPAŽq"‹ħ~ğ^ġVuğnœSŠà+ï ÷½İĦığ›,VMZulQÌŞßhSwĜ—°ñ ğĊn˙ŒVÌA2z]Z~~Ë7ÚŽĊ&ı4˘ö6ŭ·k͂5hĜ=ɟ]Ġ*cÜ<Û£jç¤à3’g²ż}ö¨Ş†5V›Tıċ ZWtQÍpŜlú)F;ş¨|L‹~ˆµ- `÷ŠĈ(—!²ööÍû‹³.ˆ˜aù‘Ŝĉ Ĝ?£30™f*şQ”ì3֝ÜĵCóô‚ yâŽĊÏş->=ó×rzW5pžàž(LPmñF;â…cŠÛììípA7* ë>ĦHŸÙ³)NÚËgd ³q§|f£*úĞèa6T½(³)Œéd6PíĊ…µF+Ì` Ċv§şq,nÜa'÷¸Íʃ{rOòÀmüu‚Û4V³žÛPĊ$Öm":ˆêŸÑŽ/|b£O*ż{£ J€Ġħ<ğr_Í6ÌĤF Ĥi‘EÛ˙:$ d”¸€bú‚ÔĈWxnË;ıéħùìĤħšƒ”ĵŠŜĝ’{ĝ…¸bŞ}şâ7ŭ3Zqo÷·§7ùğ‡ĵµ~Ù‡Ğş0Ĵá7LûüFôó›úË|Éol˜ßHĴÌĥ'7µŠ˙ÉMeL½>ıïÄĊŸC‘8*!˘ŞĠĥDñl> stream xœ½Z]oÛ6}7ö#„n@e`aĝŭ1`+†ĦK<ìĦ-7V>ZÇNmyCŭßŭÊrL)Ĥ"ÛR‘Ëyîċċ½‡‡¤ż$”°„úżòóê~pzn’›ċàË@iIŒJ S’h•(*Qî(şâAqÇÀoà+Ĉž”W÷ÉĞüc.qÄim2şĴe‰aŜr‹xu?Hó‡ün>O‡£Oƒ³‘·™Ä‘…Ŝ…̘&ÜĜ òû4_ċóĊŬxJŜf‹ċ|ĥĊ'–Q…R"4eû†SJŠÉާŠpĵŞgò~ĝù˜NÚ2.c s.È%GıÛ\Š´.i›@ÚRçç1Ĵ ÌîÊ@yû˘ÀŜgô›ÔÖŠOŒŝ]úŭóDÓwìDqxáTúú—ß.ΆFżÖ£"•&˜ÊÖEïPT‚(sHq5Ĝ8"F¨uƒ@û é5Ċ™0„#dĦÁcRœIN¤äĵğIÇ>ÛQóıC6c˜&Yu4°gŠZÓût'0&ˆdµT líPOzĈ›W Áèg!ŽDÂ3Ÿ‡ş)`ĥLbà9Cu‚”sŝù„ÄR–Œ&@Áj‰\PkOG·Ùm,AV¤·ċċ$ğŻĤùċßCî[8Ž§Ğ˘ àHï³üv>!Ğ#P Żb˜8a}ŝÂXŒ™{2J *Ĝ´İ,ì=*¨àÍ-[÷xWÚ÷ŝ8B™KYZ̖ëA`vÒÑùŸg›o,½ğŜ<ë4ż½Û´Ó*ŭ.›NĥíàÉ“ícé]ùaÒÂM²ƒ‰•roĝêK-ÊÄñµ¤TÊ:Ä `bĴ\´aâ}Éŭ:ħ.ߝó{0˘ŭüĊŽÀş…Ú M%v„&Zˆ ŜÛÛù,û}u˙1[tìĵ“à ٝóÎÉM/˙úí"hë²8AÇ;ÔkK ßöTl ‡ó³˜'êĝı ˘§L!-BɃ½‡ĊÂ'lœ)âjÑACML¸!B˜k 6úb g•T½1Eˆ˙˜"4ÙS„x½3EgΗLâÍ żwq…TĜ,ìAÑöġZPĜá³}÷vqô‰Bj,Ġ3(·@È阐Љ8!÷qB!T·QqÏ)8ĥqş½‚Ë7CqPŸ5&×lû~~]˘:Ôm^ŬíRiÒOĴh/Ò˘íëÙF'ö‰·ï"wŒYŸµtĈı Ĵb÷Íı0%µĞ˜<ŠĥÊŭgˆ×çA¸ĉŬ9rßVbêLhä˜0m·Ïñµ*@C$Ĵܓsà']a”/Òe;èAˆâ°ĤĤ‚dœâêĦŜŞŞ4kÇ 6ú˘'­½PDˆŭ("4ÙE„x½SDgΗâĊeDœ#Ĉµ?qw¨UšbÁÛ눭ŝ’ ŠX)HâĊ‹6²ÌşP–™˜,ğϖËñoxzíy• ÒìÒsġĤ!oÖg˜EdĊúĴ0{SÚx*Ï´ò€î0yVb—˙0,ŬÄżŽż=>ÛÊyÛ3x1YÇOnÛ^×Ċ;Ô³UVöÓ^Öµáìü8›+E¨ß Ü?òƒ);ìĦBèŜ/ׂĦÉ({½„xž²w’f…¨DÖnÓê¤íPO#Ĉŭ_Àz.v›Va½8ŝáĴÇħ)ä´vÛ8ɖW‹ğÌlI~ÖĤ׏_À„ëBÄ>–Pӗµ$ Á2ĝrG2ƒĠŒŞöïP‹,"˘ġm%Ĵl]?EJÉowOìâž2Ä+*c·µ%•qğËĞJÌ­NHGĵ¸9ž Ħw_U"¨’„?xŽQâêy/AÎZìË( ĝGäĵtDkÖ3£4ˆ0¤”•³1aÙĴP`œ™tuê.ĉuÜÔ´ÍċĤÖe£lĥ1Tt!`F+}˜èòÀ›ĥĤâ²UĊ5+ûsӈÓ[HZpnOçñµ´FÑq]gƒ‰$œSĵ•Ù>”‚ŭ~ÄçI€Û³Ŝò´Ħ„­˜ŒŻŠë0hú‹âÏçoó|ŝju½-ĝĤîvIb;  =:›L²éÇ!CÀ-Ué*ËólúcyaTúz(}]+›]f˙7_ó•ñ³„ï“ò‹réE>˙\ .œ~Ŭş{z޸Yâé‚-9Ĉendstream endobj 203 0 obj << /Filter /FlateDecode /Length 3796 >> stream xœÍ[[o7òhìş:ÚÖÓᝠ°/mŬîEğŽ·}hŠB–'ĥveɑä¤ú[öïíßĜï3Crż B\é´ávtñú$œž”,ı!†‹R29ş¸=ùİĝĝ”UŞ*êġt5ğÛ,WSĊ‰([ĵî~8Uԋû[úÊJˆâïo–‹úâ·ğúĤ“ëâŬlsÓN…h›x;™ß×ëñÏ;9ğ ÚËÊI.Ĵ€l„áJ94´U ĵ[m?c#[ڊíÉħXiˆÏÚñÒJŽĊKĈÊñİtàƒĊY½3ìÊ´-èœñ²ŞDzjR5·ĊşLèÜÁc&Àc!(œĜ†’v1eä\ÜÔà³cĜ”Óùd˜°TÉ*–NTË\\g`ĝ—‘‹ġ7ĠşTҙ0ü§bĥĤ-*ŜɢiWœ‡&íün5ığĞW )ĴĦ$Œ´˜Ĵ–÷‹Ğĉ78µé¨†pżh(ĉ.! WòHÂ'àlݝÔÍ0<£˜İÒ2Ù ov÷çĴ×)+‹ëċòz^żxq·Zn–—÷Ż_ĵx/Ÿá芗Ĉä+–4%“Tm…K¨鍝[(&—óú?)Ž<紟ĵ ¸š­,n7“ÙVЈ˜ÇaŻ]ÏÀ\òœôK\SnÌŞ‘*7ÀšÓĊm½ıY^uO&üaQ_µżea4óSƒX{ĉ•Ŭ¸FR—Á ìέKVqŒƒ>„2d˜á`’Övt{"’Eĝ9‡Äs[D”Ĉ8Òġh †(?j‡BÑSR>2ƒ£éPÌ>çËÍĝThíy§6fËEƒ4JÒ")]OBJw yÉyzĤĤ';–ôD¤ÇRdMìÎci˜ …‰éı$tT–f£ŭïĈUÉ% +–ħ9óMË+],bï&6ëĜ\uc›û–JĠÌtĞÎ~ŬòñÖĉe1™h£wËÙ"<4PJ—Ŭ³ˆşü`¤˙ ßŜ£ZAÓâ>öŜĈŜ/co›ë8`{ Á˜Sik*£ÖùîMœ·ìÍó½œQ8܊†ô/>ù¤9-ŽûvLVÓÀÈNHSƒYŜlr9ĉ^‹‹b^ CJÄaDJ‡:‰gR¨kz2Ô E‚KQXʃ@‡C ‡%m‰ÛP—€j›·}™Pï넁 W-ëÖ³ÛğyŬâ†T·zИ)–Ż3u<†;ġe,4 ܁‡Ì쐰·e@ÇKĦÈiIyÙôdĵäÒŬOx)VÀL0‘‘Îâ`AĞá_GŜÇĉ<2s{‰Í2ˆW¤LJ.6€[Ú áġŭ|ŝ[#£‹7÷“ùìY°"á6G*+£œ"+;ħp)KëRħ4=™XH²Ì^pÉJĜ°'`?Żƒ‘hËßbóî Œ§Ü³[ıw[Ż×“ë:QĦÎw7ġ*}¸ñŬ˜Ù:ĥŻjĜédúP,+AuĴìÄB"İXšž÷hlÏád ·à,Ĵ (Eç¤Y²Í xô>ÒĉŬ!eáX$gMñebÀ;ĜFĈjoï×-Ï5.£@‚ü*ça#<‡ÈęJ`Y awıCÙı4µ (ˆûôùM%+ş€Á3žqxŻboŠ·ş\awÖġxsçY”‚#gÈÏèz4zvëò-~‘€r³˜OÑ\ŝ#-ŠZá>ëi`*³À¨ï7Jü‘ĥ ~wñ§çŬ×Ĥ…7ùŜX]ÖĞAóˆĴ7“ĊĤ5ċşfÌĝ aĦ•r›CAc)´C àJ-Ám}4àY3ĴGCu,Iž:“n$½ïk面Nϳ]ÔçcIâċĊ?ϒLÑĥ ĵĊuiTÄ:5; „Öwġ´}A3›ĵô›RsM:{zŒmîÁšÙd^~_ŻÖAg2JË**†qÒĞÌ{L“µàµÊ6|—UÚrIĠܘl½öûȤ[ÜuĊGşƒÙ·9ïüîüïŬ’ +ŒU‰ÌeÈ}ÇgÛgôĦXYÜş´ü_PµÌûŞ˙wĴ˙’µe.Żü˙‰ŭĞüùEċ†²,ıܰf€{c­Mw|ÒíÒ férH/p*WəŸ~D)c“RJ—näż\y—ÈĞ×Ĵ'ĉ'żm'?iH!ê=ä?'䯕È7ßeìîl[ΕĤÊàĝjœĵNNԏDPÊĜ#”óö}ġ#9 ĴrŜħŝáʙŜ²6;1¨œ?"ëġѰ·à?Ü蔓C‰ċ˘·Íoû˘ËmÈb².ç³ġĤuVM[ zÚÄdÓ)Q"–qOŜ‰½\mĠŒh;Òn?ĝÁN·]~‘ÏŒU‡ä~R9çtUO6ŜĥUĴ9£g2föÂÏóĤédZ~ĉü—RoÛŞ3Z…7ıŭ1Ü!oż£Ák|^żĦjżp 1œó²…e³á3şö 9â”sç˘)­ëŠÑœĦ/Ft¨Â-˜ÉžAT;ìôö½‹‚<ûˆñvzÇ&ÊNÓ7–†=ÀفŞÊQ‹™lĠmĴ,•Í·|’µx,ϖëĴġ ÒĠ¤8ĵfl„VÁŜÛ:wë„’â¸I•6ü{un;ï6âJ#x¨Ì\á_)Ù@O;kŝĊìó²ç5?˙öğÏ˙úÍY¸½Œ’oÜߜ\üi‹îâH #1ìm3Ÿ˙ċğoÒ[×cŝħ_$›éœ3ù8Iû2]Q}Pj@ >t“y;ğşŞç—>ÛcĴ*îëÍĤžÚ&+XñĠXz‰QјÏˑNûï²Kyk•ÖÜ,˙V“…ôш´œQœû"£ÏïCĞĝav½ Íp iĦÓoéf)Ŭôٓë0ûŞ\ŬûÏĤèPĠ~•˘MaBZĤàŻY@bֲ͍ŭŜ’!TÁäšü{ÁcĊĊgç…×k´ŝR›\endstream endobj 204 0 obj << /Filter /FlateDecode /Length 2125 >> stream xœÍZ[oÛFöQĜAd dTTı_ä%X÷$ëhÑğ²DËjuq(*E‘ö÷îßĜ3ې"iE’Û"LŠç63gó!ßGӈ¸ùßéjpq£ùv~ •ÀZFšƒ9‹$áK÷s.m”ÄяÑz@°µ„qÍWÜ ŝöEé€a&…SĜ8AA°¤‘dp'XáA`k¸ÑŻà Ì]úáÜ`%£UÓñ~ 3ŬöK´ĵƒXDŭ~@ŭ DùŸé*z5†()cË(aÑĝnMÄĤ0ó1Sˆ|ŽWƒkÄ0˜áH‚ÂßÇӁ&[<Rĝ]Pƒî'ÉdšĈ‰{ ÖµDĞ8½ß̧ñwÎ),–Êhï“)L¤żÙÀÛ˙ 2\ŒU06/d°:—qJ^¸fPI,ç™uîڅb1ĦÍâm·5Ċ ĴUhßîĉ…(EÛ4YĴç•êĉ.ż&ĥŻwĞBL£ô·‡8êċĤżÌ1e8ÁF–)C-„‡9Ĥ…"ĥÊħnŸcUn) T™[ÔjX!Ŝ–[ ŒYZċWŸ;˜2˜&˜MÌ,qÀ³Ìê(éÉ*[[ĵ"Ğ ÖTA´Öíá² M'İ[B?Q}yÚH‡Ü˘XPajoPeŒÁÚ*aêÁ7ñÈQPÁ°$¨"Ŭ›d1Yâ·q²ŬĴƒAJ$  +B‰ÛŸ<›Ž*]sùÙ C`œbAhhï½½ßĴ1l€ ĉr˘›áͰmg¸ĵċe*ÀĊzÀ·Sı/×0]ċPŠb÷ĉv›çÍÊ̔I/5Ö\g3óŻá֐ä¸á'ÇÊĥùúè' p×*0ü`üı×fĂ/‹^żyġí—… †^—‘^·Ħ͛׸Ċé‹ÊÀéĞß\}ߪÉ^té‡ĝGùµB3‚Œ·îz‰¨‰RVû#:JLşyWâħöÖWUˆ…òzPUÉ+Eeż¤%ĜżAEiaD”ĈQ9˙.ďĠò¤›Ìi5˙£H.ê°÷Ĥġà|VĤcıi÷V1óiaa{Yn‚U”{Ğ\‚  ù:Ŝn'C„f‚˘ıKW­8òR`Ò°80rj…-<”À\Éw0ֵօŠŝ×TòĉqËÒŜ˜à˜hŞVÉ@-…á1”Äé.YoŬ S4Kcó|ÍĵdÏ÷ËïŻaĞğ5n]â"rî’AÔÜ£ùf3_Ĉĝ!Ù¤›ÛŬ„´ùwĵ&‹XÌ·îç–18ó䳑4ÉX·:¤Ô!2EmGRtÎÎqşX‚Eqz\ç’Be‘ϟĥTS(aÌE8ÊazÌŸôÂÀF˘ĤNbJTË*އ‘ìRe w6GÏ€Ğçı²Ôè×Ez_1V\Zt·ˆ—³mġh§-P$°=͇˘n…ĉŠi1Ç`Q§j·„äX0zĈv+´ĝÄíVèêÌíV}Jğş\·Ê{ l3× ‡Cdm:°èħa=‹kštéúô^[uôÚ.ü†<ÒgÈâdöÓ[ozż'TW„˜{:YW7·Ao²ÛĈ…cÍO¨ëĒEü!.šZojŠ!şGêF|Öì‚xk],Çĵ"_œÀlsŬM=şšPâŬ–H‰–‡0óŞ(é…ĠċÒôá è•˘â‹Ċ™ÄvħzXĈĠħ•[‹`Ÿ‚1HBi|(e Kƒrn˜ĵv<¨:rip‰``çèŞ”­˘j#:İ!ÔPe`Žki=ğmÉtêÚ Ñä³²ğbv+42ÁïA$;,š=öŻ›:0€”zŬĵĤ?Ug·ÍŞÙ˜%.iö~ĉ@<èVhÎ:Ô CĦÇǓ•s!÷!b2ëér7óEòm§›‡§†×p#Î Éż""B{eÂqb7ÓâÔŜí–Ë—Ż£Ò³™Ô`în|ġßËSZ´ĵ› Mĥġ@Ì$vgdh§Bˆ;ċµŸ  ŬöOPbħ6Ĥ@;7µ‡ĠIµ$dµşÉjQŝàèË88džŸµ'}üŒ›ÀÒFH³UòW ş<€ŞÜ-j!ìóàÀĦû`ÄU…@ż"ĈÜöċ‰ħğq×â:#Ĉ܌Ó1v/œJEŒ³§,cĵ™˘B˙\ĉ7î=L@x3F=WöšL×5=WöŭIħüùw$ Vß}G°ÇĦ%*§žFî Ä½dñKĴŬ––шsÈDHe×?0“Ïš eÛ'‘ġż0Á­ïêÑşµ"~÷şĜʈ8Hŝîö>Mĥ_^\L˙½ ‡~d²ĈÉh82=$›ŸiŠ7Éüâa22J ŭ2™Ç/ŻüçĞŬ]€ö}Ÿĉ´†$$…ŞEt9›ĊËÛ!…Ġ5­íâ4—_Tß|5n³Kƒ²İˆ˙·Ylsá~–ßH‹Ŝ›_ĵ5 û'^ŝV…{qĝ1ßÂĠ˙Rx>tendstream endobj 205 0 obj << /Filter /FlateDecode /Length 1959 >> stream xœĊZÛnÛF}úDZ 4o÷~yl¤@[ İ£6IÈ-Ğħ)W˘ÒÈ˙ö7z–"%£%Jr‘&ĊËΞ93ğä_ %,Ħŝ_ġ÷ênŬ…I&‹Á_ĊħÖ$†)I¨KŠ(‘0Ç .™gÉë$PâŒÔx>ÙAbp=ĝ äڄ!Â)/ÀˆĈxI‰boċ˘ĥ ‰³ÂÈäoĜÒéXò.ĥ^Á&Ĉµ3äŽú°Àw&™Oà+gŸTî’gCĝÇ\âˆÓ†Ûdx=X…†%0ÄӉá~àÑŬ ½žŜf?d‹Ğùô˜Íφž½Ù$\èmÊ7DbfĦò·iħ„Öéè–ĵÌĉ‹YÑO,£ a¤DhÊ(.öŸgŒÖ|9` E¤j¨{y3˳á§ûìíÙZñYÚ8K¤í@– d€Ĵ¸D‰Ĵ ˘0P6ğ@ʨN^•ö H maÜi‘7é×gçX:Z"çì\q¸âT:Ŝ`hġ›µéġúîGWF“µ_C˙˘07 ¸ŒĈyĥX\ÎfÈŭ|VÌöwŸˆğ”œX½GFÇ%Úq—ˆ·0½RıÈħ³(`È£ñ¤ÙÄ'†Ğ†ÁC²‰ Cœ2 }ët:²ëR<ĉú)”9(ħ²aéhʵ J6Wàmşy(R’ËÔTóD%Ú@­ôœ²7óÄ €~4â˙c5š8Î(÷žsT9pœsK´Ô.Žá'¨E–@#¨Óá rë“^Íòb4ͧùä}áÁżzÀÓğĴ¸™ImH  \[Ïטƒvž(„W’„KíEĵAœ²†HۇR)nü­)i­ĞPÙaž­3Ĝbx,ĴUÊż,([Ĵ]9¸.%™:_ –ó óŠŠŬ+šï^fó -Ï+Iê<¨Ċ(/Ùi^?Ö ·%ƒo%iĦÇΛˆ¸D ¨aĵOw9Ġy€Ôš0W6YÁböä F½n(=ñ9ӎ%&ŞFċ—"×} ı-ğn€ıƒ€¸DK\*‚ƒ´?ÌèŻ@Ĉ“ˆĴÉxoĜğ ğ‰mİ&Ĵñ>ûġ¸D+<Â"]Tğ%Ú)Ó:lôpŝ é·ëĦÁc´DĦ·D×O…–f8ÎĞé~¤B÷³h%!ëà…¸DĝXÒ˘û +t¨?ó°pâAVèèd )΂NíZĠÊ`cĥ27£Ş¸SÜtô1àċùîáFĤnQJĠ[ĥĊP·fç6fxñûóúŽÓëúz[cRĞ1[7˘A;´¸ÏĤ_e@>ş[ŬÔ=Q ‚­v>ÙÚúÊ1ż}ŜˆÄ%Ú°¤ÜĴ^gìßút9œ@O=!BȁSòv×OAȁ*íú²1ġïIšßĤóx@Ué3²‚ú ¤­³ËùĝħoAêÉë_/~~rˆ˙’ Âiĝż­–p˙u“şğŽ|­¤Ċ@Eß·˜tèïŸŻÍ·Ĉŝ'^LJ‚ŬÂj\ Û'\]¤h‡G€— ëÓcĈM!x!µ}g·—eĊ6VËĴ(²Û§Ġ;Òg²ÄŻMçgŒ–_#ŒògĞúfÊú6ÊÇġ K_³+m•ïöÓÌqŸ'éĊK˙y˳ċê`*ŭc:ɽ1$°Gċéçş'`ĦßRù‰×%üEv9_Žĉ>ëŭkL›~Úĵ\4OWš9ċ´VĠRà ÉŞÖás†5K”ŻĞÜ­×ĉğ äódĞ˙0ù† endstream endobj 206 0 obj << /Filter /FlateDecode /Length 3495 >> stream xœ½[ێäĥò8GNĞa—÷Ë~ħ=vݳ;pv¸§G3Óvßĥ/{ò-ù½üFEI¤4êŜž,l`5Ċ*O*Ùo2JXFŭĠż£éĊ³&ğ_]ĵıPZ£2´!NdŠ EϘħ„9–-‹ì_Ùì‚ç(2ğ˙ĝw˙Äĝ²À WÒ ˆ”ĝ@R˘XĈĴ ÌÖ$qV™½ƒ(Œŝb^B …Bo.X9ıĴúg4Íı†BgŽ8m¸Íï.ÂÌYĤ,Á˜P‡s˘^M/^ċ\2ŞhŝŠŭ:¸TÊ8•‹ÁŻ×Ç8ÌdP3Êŭ8—œHçŸ/ı!Ü8“]ßbN#Œ|N)ĦTä×Ċ},ĦÂċoÌùAM>œlÊvG(wù´X`[+²ùü–Ô2tWښRuŒWĞÏ4BµSD˜RŭRÒġï[gìMĤaÂô“·ċG[Eqjˆj}öÊë -ĵĵŠ÷ëċp´^U-ZċY5;fóĞÙfúˀ1Zöġ"ż+V£ċxħž/ÑÌr˜K ċWï1ÌäC5Žáù|V›‰‰|¸ĵßL‹Ù:=ż‹oÏn‹÷_|ßŝÁ7ĊMŜœÍÒkÂ=5'ħŞċŒ I5‡Ï†Óâ‹jÁóéfU‹ä<ż)êž:_-ŠÑĝ³âĥİòġĵ~Ëòñ-tß}¨ßşüŬxôPŭIY>šÏVëa˜O=Mhl~[ĴĈˢÂÂĠ5`Ŝ¸İVÂ,oÎ[Ï%nj¤Ĥ.şéöJ7î‰ŽŠŬÓÌşÏ=5Ĉ‚ŝ°‡ˆ—ˆCÜSk@єk”Ż7ÀËx8!?ËĠ|ĉa[Z… ŻÏP"4eÙr;0×ën ‹˙E<™_˜AHŜïç ùú˘8ħêŽ+ì6ĠAGÎZÜQż XWî8Èé’VÚ°–¤†B4ç@ĞP­1_çɀ>^UVÚĦĥÁ5Aäh ΎQV0"iÛŻ̀Ñ?›`îè –³=Œn˙ ëŸÌZb“è rf½ŝ™†Ïá›00Ĥ: PnŒĠŸÂ3ZMûĦÍÚW“úĉo˙¸êá'³"´:ÉE 6a¸*ĥê#X`,[RĈdKñސ!•ô3ŠóP~’Κx~50_ˆ²*÷áxéĞRĦeİĞ QŒÁ0é„Ĥ£ıÍWIŭaZġ#_ËjxƒĞl[ɲ(ĉ÷$”ò|4VUÁKÒdaáµÌTÖÖBÉ)Ä ċşe¤žz™ġċÇëÏ}i…9ZZĊW§ÊgòáÑkòn9\,ŠeĞ4 =-D.ç›ÙmóvŬL‚ëüÛJîÒ2šp ”f_ÂÎD;N%û | ´àiÚwŻ„ï(èIK‰d-Ëĉ÷óùŭ¤xŝ|ħœŻç7›ğçÏKĞuŒġ¸àw)_i³ËÄé8 {‘o&ĊS ç“ĊR“]¸mMŻÒÛ"§dˆ[e8ŒïEb½é5îUä›bUÛlXşp ˜Í[…>›5u<,],†•ëĠY mĴl?K3Ê=¤‹Lšı#xPŽ~à;C´&Tg’‡À‚Ó ,ı$ŜtUËt‡^‚€ êKuÓĜâ'£]Ùk³h˘aŸV˘ĵĜÒY‚AW“ùzp‰½Œ†'ĈHP@ı’Ë£"MK˘H3)f€-NŞjiMЉ@‘NŠA ĠIi•"ÖΕ´_ŒàŭĤÊb€¨/e\>òÑrŞóYl]ÇÇ">.›•KĞĢ[ġŻ)ìŭÚÓ ÷†X1N޳ž/ĉYxi Ìn›J2ŜEüµgĤ1!£d3zGk2áù&ĥNcë/ħu'½ŸññğĜ!i…!>Kİ™ËGħy;']ÄÖul÷}ÖcPIZCêß~ùee%˜éíÀÇ`#üA˜FĤ ?ĵ’ßE>)zàÚ@,8BĴ+5Œ­Ħ!ĞpÈĤ¤NÁJÑÂä!`UB§0ĤƒJU‘-Áâ0>Nğ+ċ[{L‡‡AîTYn5ž.&E 7V*S2SĞ4àkL\ÌÎN€BËt˘ÂjbyŸN<²q´L´z´LmcôRÌÄÈuKËÊÖ§À‰‘щ#™:ˆ`d¤ù{äÁÈwѲ›ĝ8é8Ihŭw||´6Ñş”ÑÇXżŭ­çn3 ‡`0ŻÑù›Íp2ŝSOÁàç]­ÚÂÉò5nË"ĝé4(Ġ- 7É!j<š4„a˙!|°ĜŻeñİŜM™rÌtÒÌNĉHU‘¤„ xŝ]‘ğEğè2€­j“iĴryëOSÎmˆ{S Gu RQ#ùG}kvÈ µċMö÷R–ÒAµä&ï-­dQ#XdBĝ·4,(•@‘ş%˜„``*lPŭh[ÄG˘â–P7,bCĈyûxWh¨sùŞ2ëóCğ%ŝÉĵKGĠšѰi5Gî=ΤsĴZÚ½ààœ·z…––%üY¸bİ%¸?·ħ·KD%{Äş›^ֽّÔŝŝ´´YġĴ§ĜÏèTµ°×Ûoûß?$6ŬNvĤğ,֛*GaĜ)Î"´¸%ì+YI-7Ċr …óìà\W%i*Mî7rÚScq#B6÷éWéRÒïPħ÷ =kÖ<‚.yƒŠ6×ôV@I?&LlO‡¨DÀÀžğ§H'ö"b@š8ajşßF, ĦÜ Í*wёb;w*ĊBġŬaıç0b´ÚH½İ@7ù~”6${Šı/m8„Ŭ„ÄñjÙcOi‘BJxWUÖêËSk_Ón><)Í8ևĴˆ™.ÖZȲèf˜v°Ĥܢ"Äe>b´`ɄZVñ‘D´ŒbëC/#Ċ-jÚ:JQè7pÖj?AKf°'O€½Ôb£l}x’ÌĉQk[½,ËbUÌÖ$Wt6ĊÓp2Š`hƒH·!cfӔŝî2ÂîNçK,ÌT1bÉ@a§ŞYöô’hŞ›;Jî£ l]0zémЍnî£˙ú::fŻ£ËĵąƒóĈ-œ)şÂÔû/ĦÎRÔÇۜ£15‰„ž£•şžlĵSîJâr׺t½Y55œ·.\–âm}cĵ>£Ğ?œ%;UTÛ\?ĥ:†Cß ÛԇġËôŒ´ĵÒŜò‰ĉ̜X<)î}ufû3sf™_ĤCÎìñòÄ×8êSuo9Prâˆë 2İZƒ>ó…#ñğ–È£nìxTŜïLWvêË([T?áb×÷˘SIG_ÚQL!;k}ž[;ĠšÇX=ÙµHÍÛKħ_ÑĤo”´Ĝù;,5ġeVĥ=Jn˙ O+EĝÁ`@§ ĞÊö ’;D„ İtM͈żŜSîòi/(ğÁQFĊğg·ĥ9 ‡Škz!ë 9¨ġ'ìġMñ#XÊßúĥ=äıµÄ/l*ò¨p­-ĵO·Ĉ;W¸Ĉ6Ì@ÄĠOĞû°İ¤£µDê\g­ÏĞ_´zÚpmŭŻXÛŽ ×Üù oÇŞx]Ì2M AIûs—]*}l´êĞÒ ĴÁ­ĞâÇÒßtì_ħˆ£ĠL€]¨ÉBNMU_xXŻĞçϞBMM Ĝ gdy9¸´,_,çż£5™/ïŸ-†£ò âjŝÇĝúEYQĝfs·çEÒ^¤V>áiİtu{[LnŞ›Ĵ*ßëu1ùŞŜÍĞüûô<Ż|ÉĞ<Ĵ´Pùóĉ°@ü]_ŞP.ıž˙QŽfó‹É‡¨ï³Ĝ_ŬŻô5gÀêendstream endobj 207 0 obj << /Filter /FlateDecode /Length 2984 >> stream xœÍ[mo#·ŝ.܏ÒĦŠ÷—´ùô mы­&î‚BĥWĥz²äÓËô·ôïġot†ËĠ’kíږ´Eqn½Kr†á<Ï İCFùáżĝ˙ġŭàĞ ;ĵŬ >4÷Ô9;´ÜXêċP3İİ–Cnċž×ĊçárÀ¨÷LH5ĵ}FÁl#HP{–JŻħƒĤJAĊ¨ĉCî$ċ’ ¨wÒŞáŻ Ëêá÷ϑs r¨ôqÀü†ñżëûá·@šĦ§ŜXᆓ٠œ<jE…äfh… F§ûÁ;ò›Ñ˜3ÍÈ;ŝËhĴh5ùâçż^üé‹Ñ/“o& Ğ6—ħŒSİöJI&(—61—U†ùÄ\í=‚ıj3uzo&É,ċB²“ÁÀß?GH°Ġ†iXFfÌ;x`œ…§uğÁFf4΃Hı7ci'ĊrÄñ5·dw˙÷-†>ĝ& äĜŜ­nh%LÂL´SàD KG-h*Áv–V›Ü…€Óz½˘ÈOÚXVòCÇ6iBġ…Lğ‹ŠŽĈքII§Kü’Ğ"ĵ$ğM>[ʘ%ÛUŬt]l×óâShgÀ"ġˆŸ™&o@Ğ?›ëġü–!6¸^ÍbĦĞ8ĥ Ó(˙Ô/#/šoż¸Ŝè„,,VİŝM-€s–âYÚ J×.èĊˆÒγÚ{4644T'tÔ[´ùshV‡ŒËžˆŒv0ޏŭĉX*€DQĜlÜٌӔ¨TäIlĈƒ}]nšĜŒÄàŬĤù9ÉL$ݤ“ÉŒqÔÚĉR÷Cf 02žI:/—‘,ŒÊœBe$×ÔÙÜÜïGáYKlSoù@Şl:·vhĈ!Œœ†'àì!ÌË'Ñı}üÁYԈfJœÄê˜ğ92Û˙‘ğ-t€—/÷{Ëĝĝ×ùöꠈĴ}éܛ§ÀhĤ^5¸Ğ&¸ D&EĤz]qGîĤëéġĥXW×êNx4`0u†RZÑÜĦel„Âö2C8V;€í”k݃{r;˙Š£E·Ġ,ĵ7`òĞŬmĠ”“ öòĥîŠPž™Ïû•+Q6³1pì?"bYċ€çY˙mïÑpnhh¨l`ìAß~²2úYċ‹àŝ@¨ĥ'ï$DÂtēcîaċC]BèLTÓ3EX€=Żmc½’!8¤"y I°­=Ï­ÓIàÇÛT?'K€ . ™H%ÊŞLûĴÛ âݤ3³…Ù`&à$–SĝÌ4£ž ´ĝI–Ċà˘:ˆB{f0Ċ‡”) ƒ•áŒ)t8ž*(ˆÎJĝœ*`Ĥ^ó‚oêb°ĝŭÓùğ•j„×-ż]]îÑ1] ÎÀ ä3@ŬĈFûñşR`=ñ˙ç,ŝ2ÈíŜ҆ˆÌDùž@ "ı„“î IµÊwA‚²ç!jñl£ï‰Gİ  )Ž#°Ĵœ5Œtĝ‚Ì•cXË+ŝ²ƒŒ´÷hDNa0ȋĈ„}’t8>j ȀTÎEöXYr€Kċc™×G _>Ğ c‡˘>œ˜Í‹ĊÍĤŝ´)ĥ‡ MHˆż ßnïÑ\Äe-Ž9¤îÑW-¤G˙8_ş ĜsĥH:sñ<›˙¤vžHá?^ŬŝşÂa™ŜËé*`ëäσÉï’agìğ€''×̙W½£gHHš4z†qú‰=áÉQQJeZÇËmx³ZF҂WîéhĴ<ĉù‚|7_àe9fpÎÙĊ7ÌG6éĝ/j½¨4ì&“éP ŜŜR Ċ   7ĵ*Ê7Œ+,N„(ÑŬjÑ]€ÎQaRݤ$]Ŭ—Ÿ1ıÁ^íuµ ÄÏT<Ŝ3dşNfħ.ÖĊĤXn‹ŞÇßÄĈ“‹z*%ƒFĦlQÎCħT%,£U9ZIŭâñ 3QħùÂ&\žŒ5´ëĊtË:––‡;•û,P(|‹eĦÈġjıÎ—m'G›Ċjğ9ĵ 2][=ĴĉË×P¤ĦıTÙîġĦr˜Ĥs²Ċ ŒQŭT˘yĈİ{8ñìu&ĞvHI!İñĵşUó0½ŝp¸°!PÀtcğŻħE(„U|PR˘WgTñxèx9żŸ/ĤëĊgP‰`Lĵĉ*œ ‡l1gĜĵŽŸ™N|Ħ…²Yc31%˘(VŞq‡¤KċŞ­Šġ4\˜ ˘(ïçĠ„ wtô£ĵ§‹Íĵ5qĊ:Rüs‹$´ú¨ÈĞ2)‡$³ġê>~ƒÍQ: öt&n¨0i“]ߪx_Ûön‡ġ΂Ĥ›âu=ĤWĠWQĠ²T˜‡U0ÎĦË\8H £52‡ŬÇħĴ¨HP+|ó0Ĝ§Ġ‡Ş­QäaSìnV²ŞZî'f;…˜`ÈôjQü;í ĵô£n>‘E§*˘áNXHt'\= à§dn‹*êV(3OœkmŸ½Áß³Ú`ĵŬĦ5¨Ìs$A•ÍczLAœÀëŒğ=ÏmïÑ  Ñ$ù…‚ŠŞƒżPx”çvÈ8ž…p€kfbUVŸ}üaœı\â…gûí—K5éĞ.–Jš=r™c“Èòĉt:vUŜ‡ŸĦ(Ϙ.á'ú§ÈÌñ6;[ÊzssS,FOœ&ğbğ-ŻĞ랜|7RÁuY‡KĦÀĤË˙ĴB´&FGşŝàärğúPŽĤ4)X”èĦä"ԌŬ…óG~šß.Q°M,½3AŝUNñToĜö´B5 eĊĠz7]—G\´ú\‰ĥĖ`JĴ*3ÖÔìo“‚¸ÒJ™4d|’ïWíĞ !ñ§¸?ŝ ħ<endstream endobj 208 0 obj << /Filter /FlateDecode /Length 3127 >> stream xœÍZێÛĈ|)ô!§@¨Ĥšċœg䢝ô4ݽ@.⠐µÔbI”E)µÑöyûŭf†ä )Jğ^Ż‹b/–Íá?|˙qĝfœ:ÎŬ_ŭ]<×l|]Ħ93züQ>ŝzDıĥIJħĉBİĈë‘F’œ·#ĞÑ Ì2ŒX=ÖL0bfµ##’ùYùĝzôfDŭıúß|=~r‰³)+˘ò܌/£@S)ˆÂĤš0-ǗëяYµ*÷“)ç<'ıȊj[n÷Ër3ùéò/£g—£ż;)ħ&!ĤIˆicÜmSĈꑔ1eı&OŠhágbJÉħ&BKI;\ ı Žħ“çk;É Öp›•ñqé ËUĥ‰£ûĝXÄÇ];×I•‰D­ '_^á´bâäǨÍŜî‹ŬdÊħÊâÙj2Ò½‰l[.7ŝW!eĥ/û›bÎè2¨sÂÍ!_Eâ=’ ͲU-âèÓŜhxĴâ„yŬ îğ£Hv…˘0:?y@@Òà‘Û†öòĠ/Ċ|ïY‡œxV.şì‡€À?~ö™{Q$§ÙvW1á'A³ĠòĠnŒ `'›9)ĊPž½›â§,#“İÑĜUËìi9?Ĵ‹Í~ĉÁìe˜4+ʝĝ”2ÌŞñJKˆġô\ŝr 7J„ÈUWU[^”K^ĠÏ(Œ³p•šC­iŸŻfUĞRÙ²~ĥ†e³ sHÎMöëÄĦXsžÍ–ĞÙĞ u²&[ÍJ-vċş~“Aŝ2ñş›—иóĞvç"jÂÙCX#Ŭš€’°!,fv]|ÌÁJk•·ûŬß'|Ÿ`Ü;£^†Ùà$nöûíçWÁ|à™.VċĥĜU Q%-ĈÑ8À#F™ Ïë²ĵ†X¨³™—ë‹FÓÉT;ÌkzRĠĊU9Ż.vĊ"¸ë‹Íĵ¸˜o·Éĉ*'~Z0’CXääGĵûžLÉı9€.ÜDÍ3r³_Ż>ùjı*žÖÓ§Ĵ™väŽ şèĈŬcbŠNÜ}3Òq÷†c‡4Ža%êö8vÊċ " N7ˆI^›‹Ÿ÷}‹ £‰÷ŸĊÇġÜ!ïωĉL4ĉ´8ĴVïàŽ´g*{s˜­–ŠĞzÄàx³™­ 7b4ĉŭŸf'½żħ­m„!‘´íÑ§ ï Ny&‰RĴġяÊڙİÑŜĊCĞ!­[<¸T“†˙f¤ƒÍ 8âÁ€#? üƒ³Ÿè7q³Ż'\÷3ğ…˙ílì‘eŻá²jĊ+š%J‡·ĵ*mZXĝŬMó À ˘@)ú?‚AĞşŒ¨ş„²ġÈ9#i…4òċŽ‚ ‚´Ëg'œ×yëċÄ8W)Ħ>ĝBŸ|išĵ°áÉ)'.Ÿ“è2Ĥ A oŝBĝƒ³y{¨Ï­äߌ¤BÊ(g„ħħ„³wi7µÌĊÚñ˙0Ŝ <"@ >Á›Ŝş`´¨7ĈïR`"˘‘ĉ˜(ràQĞ]šÖì,\áĝQ¸mżŝ/üŝjĉjìó-Ö È‘ÁƒIĦiPó'Sı̳ĊÒéVşàle[Ĥ8ċĝ1c²Eû‚ 0È`ˆaĥpÀäËĈáSÁšÉ^f³ĞĞ]QUŻÊòuŞ/'B—Ĉ.häQ+œ'Ħä6 ŭô‚ž%²)bĦ;sRvHè ›YĉŒû ^ïœàaÀmth@h”ĥ\ċö|îe‡Ž€ċZ°Ù9â·ñˆ3ñ˜deö1”î÷=)˜w³iT D¸Ĥ<ÊÊ"ÔĞ9½ Ż@ ĊİT–İo³š3û€òEìYÍ­v²·-j“€Ûù´ħdùi4Ê­ò‚iŒzżß m7#Áû[¸¨…iN„ġá½áĦê6ï?Ô²€³ôĵÎÛ×ĊŝĤD ċ ÊÚĴBĠà];Lȅ¤S}   uíHB]Ë)Cù-DÊi=ҝ…߸íÌ #yPœƒ%‘?/éÀG…ÛSê*V'÷Lg?ĵšBCP7'Dd ‹y'£ŜFdág:Œ=/ö]5ÌĤ‰ï!mn_³4İVˆíuy%{ñ{YĊ·^%„o)ßûĤƒp%R42ŸV™PQ™­‚‘ċ§úŬCßé–u^;x}”ìöáà  ßwGé‚C€ĈkZÓ· w›²ss6gŻĥĊĵ)ĉŒïRô³ö“€üQB "*`°N FxQnÑŭŞ%†˜%áıŜ˘—k‚‘*>&µĈ<ŽŜ B+İ@ŽY÷X]˝›&ëƒû„ğDúá@ìHl~3Ûù²CP“ÍĉĦé[`Wl‘WĈÖc3žÔü³Ö¤g#ÔQÏĉ, ĝtÀb0Eİ,aż—û„ċ{‚{İ÷I2jcQ¨TIhÂáF3ì\´=İÙ`ŸıoÒaôĤoĵI{~քÑ8O•ìMš›ĵŽ'aĈù{ZFĠWÙË i•Òâğoñĵ qÔÛ÷°>ŭ} îŠXŠ=Ħ]cÎıÄo›‰Ġàlâ+Khhç€öTğziŜ ½gó¨6ŽQiğ0ÛDĈ!ÏÖ괏…ŽĉŞ'ž*^v˙ÔJ( Jï Wƒ-™ğïÀİ8RT,@Ċ)ç§UìR˘¤½ZVûĉM¤>mȑU1sş­˙ÙhU´żœŒ–‚¨GUiĠ†IıiĴښ‘ût'‘ĴĦŠ·”öŬIñ>ŬÉPïVqù{ö'%˘Ÿ˘÷êOŞöŜùL+uş,)b$MX›ëħaéiÁÏe›­ „32o(BjIµĴY'Íi|l]³_{ĥ" ĊÀÖeskÛë“Ĝ½ç¸³Ú#é†JĦ¸nĝnş L[¨ ċÓòעցk¤´%ì(}u¸nĤÒĴÚë¸4(ÓşkıîşßPàÎÒv /Ġq“mC‹Ĥ‰LúG–‚G~ş#yzAŻĦĊ/­’6°"BĥûÉ3gĵ2 ˜"Ìĉŝ̲Ìê÷o&6-/îšÂßdóÙŝډZáz*éŽ/³¤úpÄCĠ a­sT–÷ä‚ÂÑ ”˙.¨ËĵÖQ‹#żrO>„ıìñÑëMœ¸żnŻ˘.^Ipx&"Ï]‘œ˜tCÒÌ Ĥy.“ıŭ†$,[·v˘á µ 4A™0=0Ò,Z}@?˜+ׯWŬ~pġÉÛx+òeóh²Çŝ„=ŝÂ;×EU¨ú.żañ§£ËßĊMzw+­bÂÊ£éeך3™ŭ:û9ÙŬĈÈ%órMŠ·³ġvUfó”.ĝluëċĉô³˙Ô%´tüŻZdzlöĝáèIYö kġ8a#‘BzZ“Ê6¨/ÚÓ˙éw¨W°Üş yĵèĤÜ;Ĵ_ğF Şğ’SŸċ -{sXî\ŜĤÙ6ş4nÚmzjµŭbhË Żx†üĥg^ÄÓwŻ\àŞß|ŸÂâWĊbvXí=[2ïOß}ûì§SŠlġï>{żà6RÑ!ÓĦâ·ß=ùó7Ï‘ŸŠÈÑ:ÀĴ9!Ñ{ŝ×Áé,ċW߃ß;¨?˘ûݧ7\nöĵĠ!ÒòĞĉY pÒÛíJ}òŠġlıŠğ'xà'èÛ³}Jß08;Ĉ‡pƒƒĝƒço÷ĊĤñUĵ£yž\Ž•QÔÚSŠô>áH‹G~°ïÏÓwġUUıĥ>ĞfÈQsŞĈS ġ™,guŝ*Ӊ$†™ú³”ì_Ièò3îք8Ô"t)Âr-â§sĠçóHrg²›NĤ†6ò‘rw}áíî³7ÄUßh˙òıw´O‹äÛê×#š„r­tIzvuUĴšdv(öûbġûXJ|5NËÒµ¨Ím·ùOÙžJ½)OQş½ĜC5n7 ÍĞw‘Ŝ‹ç(q+<ŭAÊIkendstream endobj 209 0 obj << /Filter /FlateDecode /Length 1735 >> stream xœĠYYoÛF~'ú#·@VEĵÙû€Ñ‡uz%Mb ̓´DÉL)Qİ$F›ßÛżÑYR—%;] ÉƒxÌÌ73;'}LCâŝŻG³àɉ§ypHjħ1:TÒ2Ìt( —XòPK…ıâá2߄ó€`k "œŜ‚#˜ŻAl 4ĉVƒħX`K )k­áZ„LËÇ ĉÂ`<ۂN ˙° =Oj48m(~Ò áúg4 ŸAOB‹­Ò̄IPıˆ†R`Ĉİ 5Ĝ€öYp†2bÚ˘eĵˆ£"%“˜0‹pħ*²eĝUĵ̳ı{Œbháß[†Ğ/-˘Gƒ·_JAÂÂáó`ĝm‰C‰$èsó’Q÷Ŝg̓ GŠ-£ÎÜIpȰ€2ĉ„İp8O3L9f0)^‚LL*²Ób™Ì§î.•žĊĊe6Ĉk„ΉˆfáTAr;|ïtá@)Ä qÌYEx†’ĵ´Ú hî-h"P”&QŭÊ ”MzQ!~pP£.£e4*âe²bX[!×ÄĜQ!l½ü¤T`n6ÙF-ĊBûùİ…"ÖÏϝe~zyI! ŒŬä%µ İûòR0K½ÜÜRĤĤÌĦô0K€.$³Ì‚ôŬ Á°'!-óò˘bŞ/ÏpÏ8ĦÀsÔÈğGĠµÄTqî#M’4ŝ!ÎGËd‰ó/Ĵ Pĉm+ĥ“·1Ë@2Bi&PĴ %pñċö0ŬĦ{ß<ˆß˜`Xіm~úŜÑc̈QĠöĜùÀsR“vP˜ĝ&¸ıkqVíé‰;È; Te˘Ġ ǵ‚Š~s#Ü%ŭ´”~—ĉ& 0³inUıžѧžneÁb™;ĜjZe_ò‹ŭ"ŭM›fTGdĊÙ´1h6–-ŠÄo–ï£Ñ;Oœëc²Ô(›áĝS4[¤ñĤµTÜj•½Ù ŠóğQċù<šĠŞkí·ëƒïÇeœçO³ìWÎùg‘1*߯:3@o#ŜbşÌĉñoĞÙtŝÎİX#WĞdé#ùşEր󍘽CHë@j长˘t÷°ƒKU‡×‹úŒœùúN”}ÒcÍċÙ8žDĞ´¨%Ÿî§—/Žßúi=ŬjŸ}îsd Ö6#MK7—^ĥ߉/^>ŭùùqo䓣>§`…Ĥöh‡üÍ˓_{ÉÙQŸ½–Ŭ⠛àŬ§ÔnÉĵà›#â(××êf·#Ğ^<‹’´‘îIä;ôğiĈÛiBZ¸‡½á'zqâOE<ÏAùz°5à1Bš(*²ĈÔÚ]À+!7Íċ÷şcÜvħĜÚBŝ÷‹…†ĠÜfħà[‹…än‚†9ŭ̀Â¸ hê°ÜSŽjrˆĜöÚÑéa:0ġˆĤ9&FÁpĴĦ—Ğd‰Zî;Ĥ:˜,c-–J7IÛ „‡Ĉ„í¨ÏzĥVw…{éòXĠïPÙâGYêĴ$èb5™¸ĴŞèdÌĴî; ĉ&†Ş£:ĜˆÜ/İBEé]áĥ(ôUoPĈÍìKá@ÜéWnì `<ƒa)ĵŭŜ³›£3†Q€Ö½‡ßjïÙòP{Ġ0ĥşîÜ …ğ.„bÎtKîÖĉpż{5ç’µ fspùs~ éŜV.Ĥ8–°­·=·cƒ œA½aM¤¸íCÙ=KÄnŽnsÇ›6v×âŜÚ#öÜ}• Ş‘ĦíU˘Ûú\e¨[h{:|4Ͳ)Ìïeġ˘ƒŸµNĞœµ­;WècR\6̲éu“$NÇyó*‹²f€ żäsÊnŽÎİXȄµË Ô۔•= VV´2Nïñ{Š/ñ!?¨0قê~bğkYä0C@ŭVPÁ1älNJ{¨ìeñS´²3(…„ĥÏŝ i‹™-¤{Ğì\2 ı×ñœĞìuuµd¨ úˆĥċ”ÉaŒÔЇ‡şÚòrÊ<ôbimµ‘hEœ>^ŻÖ=ˆ²À$VŽ˜T˘hŝwV}rċîÇġ E§, 4!Qœ^…aࠓ²4>]MÊ/Òè÷d:w`P€ĦÌÀŠŝާSêë-¤3?\ê~_,WѲšq9hu]Ck¤W’a¤Ġr”X)A+YWyİ…f°Ô–Ż)8ߜ“ĈŬ‰^˙3Éendstream endobj 210 0 obj << /Filter /FlateDecode /Length 853 >> 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~ĥ)@ áĴÀäX¸bœW`PzÔeàğӟ=Ĵ3É_¸” H0ˆġ „ qKŜäAħĠ×\f}cáeÀúg8§fIP —x YĞö`À=èbÁ€K(H˙kb}²Ÿ9uŒ8²§áD½têœhʒڵ0ŠR5Ÿ_&É5œI–ÔœÏÁ; cI´Ĵàù6zŻĞU‘v-[dI:U\<Ñy5xŬÎTÀíğ"Ž İÈ=V]•ΓiŠn–J5Ğ8ÚFŬ˜“œbVZÄ<ï°Ŝ“K•n 6.ĊáŠ7b·NNŭÖ ç_ĵoöü×eĤ…úÁÇ?è½fçĴĴ%÷[5Ĝ=N<Ż ~U’Nŝžôf' ä(W“pWOĞ‹?ïÍóÎI뿟ûìK2­ĥġì˜Ñwŭ“ úèÛ~żrĉ”Òê&rPäïyv ĉ÷nìA%÷ÚŭÜiĉô¨yĤ˘#%vÔĦVŞœK'µĈ0˘o=˘û7ݐn6Qj˙òċĝêlQmgs÷J){èêO ĝqñeìcâŭÎûö!lĊ% 6âäˆÔ(\ÄÙà[/ĥyt;Ŝž·ŭÒĠş?éì.ŭƒ—Jwn³çĤ‚<úz”ëÈÑKŝGNĵ}~ÚlùÇÎ=Áğt!‡ŜŜ˙=í ÄıÒX²:‘#,@am=‚Ȳ)s‚ŻˋXLĦG<-œÁü0?0RÉKw—6ƒ²ċfC%T›L¤êÒ ~ɲÙüe£1LlÔ`i‡S˜Öş‡míżŞa“ôŞĦŭžC4#b÷Ş×5ñt1ZÊ]ñ{Ä –sb‚C!v)ùQ¤âKëIyˆÛ •e*~Ħ—W›aérûÌÊrÏ^qĈžĤü3Ï×áêçhŭÀŬϒëe6WŸsßnù6z„saŭÎ,öĈendstream endobj 211 0 obj << /Filter /FlateDecode /Length 1634 >> 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Ô.ĉF:‚y ‚`I‚Ĉĵò °Ñ\‰àĝR2ĝµö£¸8 ƒġ ÏÉH´g§ÒJFç ¸?ލ/B°˙XĴƒ“„ lBĊ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óĦ µzv6Œ:\]Ž°0Áˆ§Ä³%@1”cÁ™C8Ù4W`ZKċ8‰óÂm0LEë ÈD!ß"¸rĊûeœâ ììџ‰ÀĦ‡síß;˜½$ ŞMW Ğ ùbTá…mĊ7u's ÌĞZd6*lî6@•B†ûݐ‘Ğú²zÂYód_ƒ½â*ò+ĉÈc‘nŠ(ŜäûÇpY _@ż@K›/²x ]P HĜ|´ħuLp'ĵ#‹Ğ¸z”Ĝòˆ+Xyî'0(U&×XŸPZÚ.d:nfĤ4‡Ħ0¨ĦX(ŜI”Ħ.ïVI3‰€^Ş'jB,dï(‚1C[Ȱ?h`Ê>9ÌZÌP…/’fT  Ŭ·Œ ĉ*éĤ†nGùb}û`c sw›ÛVߢjìğ+'a’s“Ħ|{"îjHŬuù¸ċâû•Œ*Fĥ£UœĜçM=ĵpLrL”9(ÜÛÉÛIm´i]Ş8ƒÎŻÛFÈÛ§éA…ƒÖ9¨“¨[*†5`é]Sô°ŭso˙!³1 yĠlìQüñƒú™‹´î=oĴê Akœ=9lÎ#@ü2.%zÒ"ü€“'g[$tƒ1IËhÂMż­aċ.bS˜‡ü5ħÉÄF4,„Çz·;şšwî&3Ĝ+ŭ'ô~d¨FYGĊğ•É(ô“Ş­Ġ0Üq&‹6ċ•÷Âîp‰vıġb¨‹£"mT2[dħ½ĥ•/ı žoÊ]%÷Ċ)µ)óti.+5ô).Jµ½İô•×oó0¨^:ÜY÷ëc6 ÷Á‚OĥœÀ˘lĈEš&Ö§ĴÀŒFQvı[ÛMQIÈ}AÜ‚ê² N҄(ßÚEüÈÇŻÊhâUe'DĞ]’4ĞmT\ıôóF=Êl)\jqf—½4K sú <;ĴqˆVÀfşDĞîE´·8ùQLKİĈ ÀµŬîd dÈyÇäĤYİĦpşòÑl(Àíxú~<ËĦwôAáhV…€•ĴĠ"nĥ5·ì ÂA޽/´'DċpîÎߪÍ?œeaÜ ]–}Cß5$5ŽJ6Ĵù€·îEk\Q‚ BèCOmĈ.K^Îtı´ÉĊ20 ^vĥ(lòÔA‡CEŠ^L„ÏW#‹ċËÇĉż4Î÷"Ħ[/ĞEç­·&$²É@PÍ\Yљ <ٕ(†ŝŠ/7ΤDa8Ìŝ· ›ĥÒUjâ}a/²]”ı:8NÖèKċZ!ġ´´Ì#½€×ş0”Ĵ´îJ:ëxÓX* WŠpYwŬ³3ĈŬšŻF˙şoîßendstream endobj 212 0 obj << /Filter /FlateDecode /Length 2605 >> stream xœ½ZێÛÈ}ò‚³ÀĥOğï—òbÇk`‘^{y°÷#qf´–ÄħHÙ0˙Ío¤ŞÙ-^†Ôjd1C‘]UŬĠuNU5ùiÊ(Ÿ2ü‹˙çëɳ·vzSN>M´QÔêİċZQ£§šIMµ˜rÏݲrşÍ§˙™n&ŒzĞ óӛ?˜\O~ŭjo@PĦ Ê (F5C•ĥɂ˘ŜIĞĤ_À–žO_aëĜb0ĞOV8˙ĉëéóK˜…4SO½ħÂM/Ż'ġòùT;jı9 záÑzBŞ]Ul—ÙŠÉ·eħ™]ŝ1yy‰ÚİLj•†qÓí¸Aî‡ riİ÷µ ŝ2Á…wN‚ áĴ.´ÂÛ,)A•’K×ËUŝÏĵœo—w°ĈĈìƒŭ&¸Ĥ–‰ŽòäìĵÎÂ@ Ĝïà,!!ïXÚdëü[\Q.eßE­Ùk“¤ó.ÀOáêÀôÇlYP§;ĥ.ßŝöò[ĤoUŜt§ßìïž/ŒĠ’:Ġ‚¤ ¸ _x&¤jĝb\ E0SİZğ~0Kî²ùLàÑäc6á'78ô‰$8X8˜‰!ëĵş-4Y—°.mœE°.уÖµS`XʜŻ#ĉ6Äû˜/¸“ î:"0ħÙM3%0„”j ³„Y“àĴçÙXŽ%Wy|à$ٕyĉ İŠtMĥyµ]ĉŸóZÌ{IŞÛ$gŬ~j{Ñr^ÜĊÁŒ+’•e1_fU­î1E,ĞÛ(`¨[–IŸ$Y%aI ‡rĜ7TWûğ‡ na_Ġñıt\  n|[9Ôcrè߀@’˙nù³mqógÛÒÙóg[ùċÏÇwVʟmK-n8ĠKĈÚĈ´šĥNSàÙ}LCòâ^'Ħq` —k€$ÈŬŸċ êOǘvŠJÇċ ½' ċz%dĜfi…Ö¸ÍĈiŒ­CÛ̧Ž:Ĉ(ÚS1TŻh KWOÙ—ò0w/Èğ|;ğÀK`òy9GÖ´öQthS!Ċ:RĥxóP€ôs‹÷­<&Àµ)½.ŞÚŞ·†\ïVĞŻÓa%Ér}·Ê×ùˆf--&5ò:Ïe\ePÜĠİÈq¸-ÈĵĜlòy1‚rŬ™y4‡Ô”'‹†ĵ}ó" ҍùĴZ›0ÊeLĝA-yU7n3`™ûûK€xOŜ`­1/V(,Cö|ğê­o@8‘ħċDĞĦëҘ£CòwNş€ËÒÔĞ" ‡Tşı(‹ŬĥŜ_RġjyµÍĥèk\“PdQäq j”M½+˜/Á›ùj·ÈÓXABŝLJà˙è1\NßcO£„ôäjWEېîc²Ê|Ĵ&‚ݸ…qXg Á;^‘<+—!@â*`KƒûN2UÊ* ÒĜBèÖeO§š2 Èù×äòoĵ_×I&‚éTI†ċ:Ñaî%>TĦ8 ƒgûÚiC† <ˆħO1H˜ç‘šEéb /ytqĦ ˜Äé&`ÀdC¨{ö$¸Ża[Û.͌ÛÖP`kç'h£"n4Žl#3BׇPOuò˜r6"ò`À§w>Á~cù64p8¸Ŝ€) BƒcŜNéBvu>dèh@ú`Às 4F™M3·ql  [‚9LĜG11 \9Èê0‚¸ŠÀp5·Ħf‡‚_YKU$×/oX){=.€Ôx„×Ċ—ĝq˜IV%1Ùĉ¸˜¨¤× ˇ2SÇġ) xPÊÛó$7èİcjA…R*×Ĥ³š`\ˆ›m?䋧1ğA´%r!Òjò‹ĞÏËbWĤ‚ÜeıĵZ–Ġ×—kI„ğ1äEħÖ665IqNğĠ"ùÚDZ‹=_QVi %_òĠĵXçôUǃŠá*@)‘Î‘‰¸'żU¸´%xDK·˜€ÎE™=CÊDäĊĵ€Úcí`ž/77ž&`˘¸ú˘³ĴoàŠCÔ9ì=0cYf3̜ÒĤZ²ü¤â˘CĦœ‚Ĥ ‚AËczdlĜĦXkKdċżqzƒMrÛ  ÌFò=0ôfŽ1+h†ËT%ĜĜïâ#IÊ*Û,²í˘yŠŜœ·¤ÁMóÛl³,×uiuFq‡”ĠÛ5R†B£Ë…è.íš0eJaÛ"uĈ{Šr÷‰ ŞcQkIX³¤,ÈDJì•ĜkÄc‚°ĴlždI€”·ĊH¨ÑíÈOm;ÔWûâ]Bmާï7íc{ ƒhċûNB2C‡G´ì£Ŝ~•߁^CzLĵrßkÔ†Ğc*Ożú6=ZÇ(7Hġġn˙Cµ+›úžĞĞ„úıiù½˘yŻQŬ/°nIî#ôÄVš1èĜeGï‡ŝQÈPë*%TŒíèòşgD½Öu\ p2ŬĥZW?öžŬğzï*§ÖÈnïڏd£)zêóǛP,ÔçŞWğkÚ„ïÇ80^á°ÓMX]/ó–²)tËĵÀ>P:ja Of \ ·0Scƒ q­Á˙ÇËäa€|³["ŝQ‘,œ£Ĉò³#ı­÷’é›Ûb“_BaZ(r<ĤÇúA¤0¸‡bú€ŝÓ1-”§Ré³aú%„ÏAXÛĊĠı‡˘^U¸èm ÷ÌAXŸ’×Ĝx4\ħ€ÀBüx\§Ÿòğ{:1TD#°ÛzïûÌo+žZşŽÉe âĈòŽ|-WC,Ä5·0÷Yh\ òò‘3eĦúOg!ñpA…~Ĉ`)/¤éѐz0 1fÀA£ûğÁ˜Â]8…€F <ûpèîcŸĠpñ¸äĠ™óçïÚz;_ƒœñĊ%ԙLéŽİ³½¸DÌJĤ{ë¸×ç ~)Âex7v,Žż÷.œ˙×Dêżċ3jp ç#£öĥ.‰F[†‹ÂIfÖ×ߢ@zb܄oQŸ˘iâĦŽng9áâ‘8ùo+p<µíjK~Pŝxè9 ÌFżŬVĠ]ùÓ³gómĝErO² Ŭ^Ì.'à<¤ĊöĉYú*†3AMó?Ŝ=ß]yì78'e45Ĥ;—‹Eş G“Ži²ËĞ*_…£_ŜŝmV’Ż6ó}öVHü\ò×É˙êÊd­endstream endobj 213 0 obj << /Filter /FlateDecode /Length 2351 >> stream xœµYëŽÛĈŝ/ĝ!„5 ÌĞ g871¤ƒm‘ĴĠö‡×€ıÒhÍ.EÊ$ċÍÂñcôû=g.$ċÊہĴ†3sÎwîçŒ?ÌÊĉ ŝ WÛÙW—z~ÓΚd‚§&…½Ts)3ĝĦŒ”Bϛ›Ù‡s÷ĉáÏj;˙n w›jĈÄ|ı™y˘l.Ġi&çš jàïr;{CRÊéùB& ùc½Ŭ•ĥ+ꊞż]ŝyöŭröó,™Ÿà’Î3*•ÑŽ MxàxJ•Rc>dùŜž/˙—R—2ıCc"ĝi|ċò§ĤîêïöñQn™ ZñCİvùê6żħç ‘š$’(ÛÖV]‹ßRĝĈI˜PÇ@p7ŽAÑ?Ġe™7Ë·ĥ=+Ġ°ê×ë4@âœÜĜÊ6ĊÊá!›}µBĠ{t™&WdmŸUví·‹¸‘}µä=TÙwE9…v!´ĤĈÌŒ@\şğ:?_p9¨›şÁ…ŝŒäewY•yÛÚÖ{Œ#<=Î<½ÁŻ •’]ŬĥĊuQ]zôŸ Šı*÷kÈ3Mv­ŬŻë°NÙÚî}½Žûİœü2}΋¸­ÈÜǛ‰ _;8Mı‘|à ×˙ż!<`§žÙrÑò“Ìa§%ĥ^/`ĤT‚-ŝ2[ŝáK{ˆšĜjż²JÒŬïÂ.вÛĥ³ñ6:îGblNĝ ™;<èbmÛUSìşşb)™áÓüuġnQڏĥŒŸ8ħżtĥjÁ‡ĈċHzŠÑ³Òú| „!–d§$1s ñ’êÌÇòàÏ)ó\1(aé:Qd_•Ċ­-ïŭ—,3dİşxC8ïâ]…wĵd>ځlî€ï[Û,bJptµîVFz+Wê< •êC„-è$l1ïv‘ż"yésRWqCİ@µÒSC”CF >HÑUS´“Ñ}ÎBœú¨I%İ`Ĉëô@Jn0O§1H wAÒ÷ ›¨.żµa3#ğĈìÚVĞĝݏ\hEV\äÈ}éÈùˆ£˘Éġ=ŝN8ŠâĤş6Û"OŬӄ[€Ï÷éɁ˂fŭ&ĞĵÈäċ]~ßĈMN{šÒàÇú4àĵX]2B*Żu£™YŠ5…Œ ÷ïÑ9`mıb理ÎáèŜcĦ$wĞuX€§áVñ5è+ħħ†jÁÙ/߇ Ç…u•Cp‚·Ä²zŞFò„Sžec‚^ˆ‡5rƒsIMšÂ 7òǤR´ Xµo;b˘F‡ )Hû˘tşÁÌ£X’ż† wĞHÀìÙÖXZŒÁâXßĠM€­ ŞlÈ;öc^îóW0ɽ|ä2œ×Ó~hk1%Oû)‹qQĊJĞ)Lı*ĈǢİЭˎš ÙѧïÔmGğġÛ5äÖĦ?gÂÖF:ʸ$Ò×ûÌ%³ĝ;Ek˘NĥhÁûĦÈîÛ 4<ïò~ÑDy´Ż5tÚ˘½Q"}oñİÁÊ%\Fôၙz<ŝùf1œŻìŬéöP݊ĵ¤?ÙĤ­1Oım0•ŬĉEO ò2ŝÌÈÙĤĈG›W)2Q4Q!9?ŝ<ä¨T„g˜VÏâ;Ȃ¸‹B]EQ.gpgps…J!Ÿ&<£I8txpÀ‘c0°D{Ĵ#Ûg!G‡^§XÎtĜ~ë)lšSÙ,°ŝfœ„QAûoÈbhOù¤+, ÄĤÔ&´™&ĝj7ÚÖÁ÷ éáDž/)ÑŞ›ÂIà—0E4ġvĜŬSÇîà/öM{Ò7§cúòÀßnÚŭġ˜½ùöíYt8hÑÎâOC†ÏXá:m(œ§‘kğkŠŞÛxòÒµcg/ÖŽ7/Ú·ŻN/ځ— ^ wCÍǎ£tÈç “`˜Èhr¤51Û.˜˘²ċ|‘Ĥ0eeaZŽ­ı.6èŝ\GcŝÚvwÖV}Ì_]uŭvŬ'Œ£Ïñœı.jùàPQ}Žzôċ(ž:Ìñħ-*ÉRs4¸ùDĦŽé@âŬ7£Ñˆ&#Żêf8ûdŻlrÊÉì†MÌѓÈ/‡\6TĦ‹‘7÷ƒÁĉQT::ˆ°£œËż$ùĠ°}]c'}l•û‘sRÚÈ&ÎFc.Û£°ë!í*‡ĉĝĦSôŻ$QfÈ]ŬÜĥ lgüÁß|•JĦ£1½ĥĈ¨€6ş+VyéÎ-é#÷3÷˜úğ=&Ŭ…)tI^b_èlÛófd’î~ ÉPx¤N8Ĥ<ÒwïŜƒ zIHÍÈY²(ŝ– 4Ÿ\h$¸£BûíuŜPĴñ†/4=ñÑqr’§ħìwkèË&1ውÓôŬÙß_ob(ìĴż w<äšŭ3  œÉ´T4P€Ud kC¤ÄĈÎ˙9ݰsÍû7O¸1ÛéŻ.…{!E0”Cŭ‡ gñ‚H¨„İÚ˜+„—j1ż^ZÎx Ÿ×N„éYċ‘Ç7Ay .Ç £" ½DKdBŜ°·C°,/˙ŝŭT–QĦ2˜:/a\}yìñÔPĦ• EèċËİ÷HP<…Ö¤ŜÙ&ïú0ġŞoǙñ3hh“ ÙÄw6˜ŻòvĜx¨Ae1l ŒÙÉŜW`˙[¨!³LÔU8˜ġ ĊǎÄ3ŒÁ\*qO2ƒ#i1}ó„ΑFčĤPŻ{R’Â6ċA ˆü&żÁ‹pŞw£>ĉĤ¨‹„ĉ›@—`Ǜœœè³) 6fáè‹Cú4d#İâĉ€¤°‡ĉËÀÂÊ hËNäÇo™/Òğ>Œ­˜N0ĝ Ĥƒù[qùÄ 犂ÇàË"ôR³-”À—1ác÷ûġږ×çĝ˘Ĥ${Ûuĥĵˆó8#ŻÎ…‹>ó1 ‘úŸ:FdJĈéŒĵîê[OM@݌30U9ú lòâĤBf K9üq³1n!Q1Ġĵ²×Í>oPr Ġ}d­‰ö„'<™ToR2Ž{ż†DqÀÍP˜ úœ’êŜ× £Oħ0ü<û/¤v•†endstream endobj 214 0 obj << /Filter /FlateDecode /Length 2840 >> stream xœÍZÛnÉ}'üŒ÷a›Ġšw;1/`/,Ż% ö>ŒÈĤ4k’#s†ÒÈ·ä÷òİÍMCZĤ$#ƒ9šžŞêŞS§Şkĉó4dšıñ˙ùzrú^M/ĞÉ牐+1UD ĴĤ"c :%2œM·vúŻéf’a£¸ÌÌôòkË'ËÉŻ ›7Â)Ĥ‚ğċ Sëy†ġs“|ŽfŠOoA“™†LŝŞĤ3”EŸ'Äïm˙›Ż§?ƒ LN 6RQ==_NÂĈÁ‘`eXflzž 5™˙>ysîbM2ĉg˜ÉŒdcşŬ݃˜1ŠğÍ鞎?½ju|³ÑG¸èMMfÑ:KiLŒè„Ñd”ñ6Œûl –² ēèħĝÔŸï!ŝ̋?&rRìîĴ'³W†>ßf'‚‚F ·Ż9{3ûíü.@ D İ•“d0—Ĉé • JÈéùdĵ^ĠvğÉëâĈÌc D£³ ÖÂrT_Ù(­o˜bÊÁ8ƒòĠ ÛÏğ|ċÂ2PÌ VöŸËŬf^ċĈİ08Ë$šçé‚ta“n‰v•]ĵˆ·¨qJÊÛbsHòôAuı²Û|3·éO Ŭ^Ù$˜r4/××ùÖ=>ĥ*ÖⰝċŞÌ둭P!¨:*·aÉ bsM“cċîbeGD6²FßMÚÙ w13œ2Í\&**„R —›‡’LÁ@ïAGbêQÌ4Ĥ@c; s  É2´ĥÛ8c” K‡(cÈù~fZ"ì=vdö’ ÔkÓĠîT^Žù¤çŜ]\è;¸H„–鉒Aġmş§4ÜĞŞüÒVíír™@h<ÎUîà¨ŝrm;>hG(J¤LAêĈŝ„ Á÷´!Á)y݊q@ÇX‡x^‚ÙF˘żžt° 5Úc–š Ĵ‚‚jcv´ˆ$Îï(F{û€*L Ġġ$~Dġ.·EÂïìĥ*7/:xÌfĈUÓ,óÑëyq!üÈÑĞÉ2Ÿñ\œı@ŒrèÛ53‰%ëoúù²,/òíóĝÒ 7²ï˙xB °½2Ó A0^„L†rŭŭ “A0ġ˜éHüŜiU@vĞ§Ç •°ğk‡™żh0ч‡ek3h`˘ä8ìûGÀ ,èU¨cĦC ê)Ŭ•ù°³&/Úĝ­)lŭIvh´ğŽ“„ÍCCsä~RSߕĝ=ú{ÎKyOU^áùUÍçĴ>$*PF9§ƒ]ĴÙÇYá ĵSi\›Ÿ*İk`“ûÏû–w*—uSŜİD(ġµĊùǗvÁ íŸ(\qz™ÊڒáÚäç/“ó?·xrjžĦÊèÀü :[tÂÒħ³}7#PŒb÷í`{Í(ÄWG=0Twġ ó+;Úŭ7µ ĤXï‘w#-oG !.T7Ó’Pž ×ÀŠû" )§£ĉ$˙Èmŝ}÷É"œ–ĥĥŜĥYIQÊŭ„#Xl”“Z£…­ĉÛâê^Xäşé]Nb~ *ê*ŝ†[_NҸDŽ)=œ+ŝ^§‡Xg+mÊtW.kÛl§~?šwaç9ü%€q€|ËDôŬŜö~U–Ÿv×éÁ`À.›˘Z§ġ"nù˘9gŠÎ‘µ²>*˙é•`jŻ7è’ğÑojàX+Ú5qLïEu%0ÀŻ+ß8.‰ çŒîˆ‚ì?Áì`@q°’†Ŭcd2<ÀPqö$uÒĞÀƒ²MÒ#ë‹*… ÷äġŞäui0ÚSġ|š>¤S#àÂI+#E’ğüí ¨’K³żFî]?ÄnLĠÁÁ\|µDî|…ä  +MżBv)ї< ÉesaD$AAôŭ8͏#f2ĤŒûĉ—ƒdÜ˙ÀÀ™°PÀŽHĈ*ž*™ŜˆšG8żĤµ+ñ‰›Öއ0 àVğ£ç^ӏIÂñ‡ôT=*“¸’ µ­·•ц› ÇCŜÏ^Ċö“Éŝ† í%ÔÁoe“ò§ĉlbƒ†ğiı}ĝÖ%{;LŭÓ]& ·(A·E}Ġ/³ôÓ eaW‹ŞíÍ+[ñOƒÓ?@?û֝˙}Ž:w¸gŻü@=BĤwUìğ.R óżä€cC£\4ħ ÓèbW·Ì~kÛĜĝuşħ(;Ağ*Ş6ĊĤŞmxȽ1ú*İ[°îfUL‡ƒĉ=3j˙ƒ ÂB •`Qìku@ŝñE5IÇù'-plU˜°ûwËûz“$?˘@PñTšrèìĠc XSîJĵ3`Ğ4£JàFê÷>0ŒD é7zżüàÚ ô˙MĦ8~tCYnàŠuz)_IúSŝëĊŒĝD•èfĉĈ8F(äŜïúı›PôÖĉġnkĞôşğ?$/JȌ8§â˜Äħ›?jğİàô^3"îl;W- ÜnċqHßJ;uĉ‡ŝĊu¸tÌó܅I‚żîĤ2@`îEÂÎWùÖú•~ ŸWh›oü8Ĉ-ËD3×0Ò g°tGĦÍn}ÁNÒU˜Yx)4 ëÚ (ŞŻò:Ŝb(İ÷ŻÌó›ĵXċîŭu410hĴÄÈĤ­z7ş½ħat9™ŽÌìàYùIó;?÷%Ò;E‹à£ĉ€]_…x§5nrÓĵ›üÀÉħPÜ[H•ö#˘Ċ^ˆi\,nì&İc]1qˆċ”èşĴŞâbġ%µ$yÖ½uS‹m ĤßnFż1HĜç@w„ÓwŜ–°ÇÑaVäNIßĞÏV6í6>³Ë]Lè*żIŸ<ÜI=e“Ĥà4/ё]uĵ´?8>ı,6ù* ¨SïCêÑqfí116ÚuĵàX=#Żêúşzyzş°3ĉżMÀ ŽÓ2@…]•×1ž5$Aĝ²,/şîZ1ƒÜ úÔ{y^N€ „kíşì„v˗KœĥĠ颜Wá‰쌆@˘6½àŽ ·ı0GşòĦĤ'„ġ;Ĝ¸·`˙,ëbŜ„!%Ĵ˙Ĵ &›yU·ßÒĴŠMsO܇ŽB”* 2‡7÷YJÛVŽ}ĵ˘šOzÚäñ6TÍŻì:}œC]˙;ŞMCÍuÄż!Z,€ËĞ‹²ü´7 3¤RIq‘>ĉ¤ï‡eyç[Ħ3$z9j ƒ–3==ĦbÌD˙Û§§^Ž^²Óùzŝ2öŭ•àĤ³ê§ò‰Ìş2‡lT]Ûyñ,ä6ġHÌċNA˜!fÄĊÇt\+şk ô'îû€ÑwG0÷·´d1àĜÍÑn4ƒ~²GoóíÌ}…Ċ ƒó ŜWĵ!jżÛyËíċéu>ŸQÜèlòĠûw.Ĥ?í–÷$Q›¸nÔ×3éÍbaW‰!ĥíêEìÀ”@og܃(ĜìßIŭ· yİ\bE¸ aY]~òÒ•È}qĜĜ{úž2÷ÙìŻ“˙n贕endstream endobj 215 0 obj << /Filter /FlateDecode /Length 4170 >> stream xœí;ÛrĈ•Ż.•?‚U›*ƒ‰Ħ/èËdŭìÚ^§ĥvlĵû0“ÍB$$ÂC4ŽV›ĝ+6˙˜ßÈ9§ğMqĈ’&O.?XDwŸ>÷>·ùa–l–áŝ˙ËíÙĊžŬvgYšYɅ°&4Ïs (“çRÏÚ۳Ν›ù˙-·³ß_ÁYĈf&5crvusĉ€²YÎR-l>Ó\Ĥŝµ={È”§óEžeÉż–Ŭ²­v}ÓÎBÉ4,Ù4ÍÛŭ.˙ñêg_\}{–ÍNÜ*f6͕Ñtišq/ƒ‹ŸÜ›\­ËùĠ÷pH(8d•ĉ&F•é,5@E|äò›ĥé›ßïoÜÁ‡nœ\™)•ğbùĥ¸-0 „1–ìğ²_9ü’IżĤ%‘Z£pİġK™LVċ§uıò3•ôĊġf8šÙäĤ-ĥċ]Óġ[8hEï~!¸Ş  Y,'`EçOĞwEۏ×47.ijı2žZ!³^^_.û+‡íOüUVƒZÍV1¸ĥÀ‘ïŠjƒ‡' ´Ùâ“ZËÇÜ•ĵܖ·Ċż!Ñ´6ïÚŻwŠ G‰Tg'ËRĞıÎÁ2@,çÉMYôû–> 'xRl6Í]w’ •g:†úĦÚÂl†e§ġÇ‡™¤ŞğPÀ CË=ċ¸*xÒíÊeUlĥ2)ëwUÛÔÛ²î=Ê2‹o–óġ‘ağŻë1-AA×áoJU)ĴbÉnSô ”pÍXıQX´u$ג²nš1뿐ú(\ Ġ:_pC…û›jÎ×!2ı+G²ûö~Œ48ÏË~(%]$ %•|ZnV3Ÿ‚û•Ë‘˜IIAq€Ç“wĊòˆóCEè) SGĉ ï‹œI Y !3’C‘1p(ÉsŞQ|éJ–/ĉ ˆ²H’ß´sž%ÁIˆ3èÒĉè´0”Gá2ŭ+(ô=OšŭîQ U\W:vM)ĝŞEÈXò˝8Ñ£şúUVĈD¤"úèXëP’Ċ(_àĈe(“ß\yĜhGµ÷y´ä}W܏ШÓµ²s%Ò5ŒuċĦ‰f†Œv%ŒʉÂ2ÀmÙuĤ‹ ĴW¸Î5Ħ› ¤†q™ë˜IĤ†ÒéİJ7X>“ ˆR ×Ä~·Ù\‘':YfkÓŻ0ŜĤ‰ĵŒH=Y™áÂL1Ágä÷€SJŒÓċÀĦä#HÙ6ûµ7ˆáhġNT0/İ Í|Qĝċy^lHĊ‚pŝùh²'¸lΆ~§’ÈġDJ’súŝ!9Ŝw<>\’R§Ş;.5žK+ı’ß­— Ä!鳑Éçħ3xJdÌAÑ´1V SOıàë À?#ĵSş0 Ú:ƒŝ)à|ä@ŝ4ÏG5ƒ L@%AĴLzŞġSx³ ä51Àß:ށŞÜèÉĞ›üxÄ 1·ê,8Dò™`Ž=żsaĜÜĤ_7ûÛġĝèMJ3cƒÌÇU[´‰Ü÷ùWÄEŸċŽ3첌`Cí^äiŒ2ĥݎٳàÙ1;Ĥ#XÊss >q`Ѱ‘§à6‹ LëŞ6'.yĵI ƒ‘…öÑ#`Cêóϋ8"a‡ ·I`@’sËíé€ähĥŠÑĠvŜ=E…}ŽC|3T½˙4ĵ"ñóĉrŜEA‹A–NÇÁÄQljÏZ!(9òWşk˙˙ê ‡ R /¸#熟·Àİ-F^υ>Ëè÷„Żco9Q½§ıKôn|‚¸xâƒÙä Âï#jKt˳hKïĦ-τŝ -ĵâHĊJ`Ü-ÙÏ(Y=|âoó ^ŝskV'à?Áesñô‰˘•8öށ·Öîéyˆ;‡ŻÚ'¸sdÇ#Z'îxġÌïNàL}~ĊôËaX‹ĈE÷gD=8„èĤ˘K‡’ÎSl˗—'4 G{3?Zĉ2ÉAZ!OĜĜ'µHfe$;ï·ħocXĵäy>µħš?%*Œ‘˙ŭìê×t†g–êĊ‹`™Ê[Ĥß@@<ÚD˙逇Ĝš _]ŝĤ‡HWRE€ûê…ÌpÂ%a[ħ´‘‰{żĴy²lĥ×U]†Ÿ]úöbƒê@xV³1Ÿ§›ó ½ğWı:'ŭÈD Ĉ•ÏdF­ö&ìgñ–Şo7 àËŞ\n@™{×֊ӨÍхÓTWŬ˜`Ru¸W¨Êğ̞Ïs}<ħǑFşX<ˆâ…˘^3ì_Ûġ?ÑĴ EC“şĜ3L&àAÒÔïÊÖO}17|׌ošğ²],‹n8­’˙™ĵӟˆt‘ñY'?NÀI(1t¸ü“jĉžÌEsOÇÊË ”8¨Ŭ´F‹d>8É µ4ż¨ëÏTW^ó‹>Z_Ae0ĝ‡ö‰Uv”:^eÇ÷Ԅ™—ÜĠĜİ4ñ2tÍ4U‹ŬKêX÷•IS,ħŒnPë²{\µ‡A1m{8h‚ÂÙÙj HŬ]k·Ü•ġ*|PĈ'wZ44€ËèÛh^öBD²ŻWeğıwž›d„‹¤Ù•ÎAvô\`…B‰*\‰=âÁކ·*îĉAbĞâ.(xĞŠ|$ÈĜ†ĈgˆhVŬ ÒÛÑú$ŝK6Œ+ßGğ¸¸o½żž0rĤx’B4wñ=İr|qÀó'Ĝ„Y*7ñġΈ.És†7g –ƒ&3PLȘÑNX­ÊÍ5ġĴ58ô}Ù÷ċĈ‡ żœÓż}&iç,£&qQ˙­q MŬA?ô?XòŞ‹$h2OJŠg Ç4w:fb’˙Ĵnkĵ ’A&èßü%äƒ,ĈÇÖí0TŭeyŬîÑĥXŬ‡Ğu˘ŬÔAÂ3žPOş‰ïżx.Mn3iŽċt·CĜĦ pqÉĦ~{öwşKšendstream endobj 216 0 obj << /Filter /FlateDecode /Length 1759 >> stream xœµX͎Ĉ y[ÀNO˙“ ÛÙ0g=Ğ ‡lٚĦ‡?2Ii˘ Ïâ×ók¤Ş(J˜µ:HdwUW}UġUµ~\3Ê× ?ñğlW÷Ùúq\1ÊĴ2—°&3Ħµ…&×ZeëáqġŠ{ıuü*Ûġ×[ċŜPm¸Zo÷Ğ ”ݵĦBhµÎ„˘ıĠëmğú;1ts§œ-ùŬ¸ıYF­%û ·ÔĉZ’~ˆ/sMöÇé88|Î)’ qĊèĈÍ?ĥßŜoW߯Ĝú äڂ]y†v18ĊŜÚĈà˜hڇĦŸú²oà° d†|}ÜïŬ0Ĉ`ñSqòĥ€Ħ֐"í¤uċSÑĠcWs²÷^à²P`uÛO.mÏÉaèKWǢê²hš1Jgš|"ù´ÁuNĤ§bJK’Ô|H×§÷–“³›$9Žš·íÎûik2‘/§L™p8‚ŝoĥ?ĵ…£ÊsÊżÂñwŠìŽSòŽ“wAµ-Î?ûÎyÛÀ‚Ûĵ1Vƒñ6(­‚!CĤâهÁP&IQŠn*]\Ïé÷ĝ¤³ ° xioÇîWĠ—Ħžêî1.B”ЏĦ]äê4y̅ĝ ˜ĥnĦ(˘ÈCRdÉè†ìċ÷xĝ#á„J^HR6µëĤ‹‚²ŻÜĊÒbŒŠ kšwI½ÁìÙğĉ7 [E ·ò™wÉÀê) QËoΚŜğrŞûhê 5ëA P† &UŸË#. ͘Xê%‹×³(ÙAż‘âڞCQ>@ĵbL‘ïú—d‹™KSJ’?öŭcœ@ĠGÀ[Äġ‹ è¨aW‘G(HôW“NR*à³k7Cr˘O*q[ċC-1uRò2ȜŬïNu/@úqĴwµ—™§—4Céği¨Ħ!´c +ä÷KlŞ„Ÿ!ğX„· ’ ÊL,mû1ò >%˅ÄܲIÖ!ä7Œö² ûŝŸ“ëĈh‚g(‘¸4çŜs]â+ ¸ö¸Şg5našÔ]âıà'˙Êf6ÖV$Ĝ¤œù‚‰ÊŭQ‚¸`ÌÉ5‰‡ œ#_˘.›-taÚğq AñĞjÁlÒĊ9ê.ĉö #9‡…ò8 àNs~g…,j"Óıħ„ˆ%úfn;e÷|yLà{ı4FFöÉêŞWNQ)0]ŬúĉԆ™%ˆ).ú”ŭŻ7'Ë%ÔÚR~ 5´5A ž##ò‹NÒ<öİí“KTíi}H-B@uüĤğŒĊ ĉÈ]3÷ ü2Äż‹ïW:Q’Ù eä÷07İğHAĥ‹×ÙfíB“?>ĵa3}âÌcùĈöt8Ógl¨áĜzTÄ !áv‰yĝËîä?3Ïψ ó.ċS-ƒä-k“Q­#pé_–m+²Rî'ŽêÜm]úU2žÛ]ŸúwÓ÷ÏÇC|Ô?ÁdGçGӟŝÇ/Y/ 8)ùÒz˘¨ĝġŬĴ(ċ5zeĈüŝç˘;'òP’crW…r­tΧĜşŻúì²ùkR´Ċżâ&`ĵw2)ÔPn–Ï~u'4£9ü–œJÍ×Û üf1#ôr/pN7pp÷üû‚Ì/…ŭZÛLTi‘­áš XĤLOÓt{żÁägZû.NĜ5)t¸ÛÜÁ5<˜´ï!7™ĜówJùeŭU”ÑԘkÛŜW•kvaÊ=â¤.b™żĵŝa£°U€ÁfŽ&˙Ü×éO “&I|–|œúgŻ-ƒĦÔĊaÛ{˙ $ŝóŭê?x Bendstream endobj 217 0 obj << /Type /XRef /Length 227 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 218 /ID [<67b66ac702c34eb7f5a9fb0ec4780e0e>] >> stream xœcb&F~0ù‰ $À8JCò?ŸÒF ›ġ(ßúĈġp$˙3ˆMŜdóĊ/{ˆX"%ş@¤`˜L“‰ ’ï%ˆäĵ "™\@¤T0û4ˆ” ‘ĴA$—.ˆäu‘<œ@’‘{-ˆÍÏ 6í˜í‹0Yl—ˆä³Á¤"˜œ"9LÀfj€É#`•Í`/€ecÀä$°™Â`wĤ‚ŭ g“ù —ˁÙÓÁäG°żÀ$¸Lmë‘ÌóÀì5`ğÊÁfV‚ÙI`[Ĥ€e5Ë_$ú endstream endobj startxref 166584 %%EOF RProtoBuf/inst/tinytest/0000755000176200001440000000000014576705046015012 5ustar liggesusersRProtoBuf/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_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_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_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/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_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_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/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_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/data/0000755000176200001440000000000014535363433015716 5ustar liggesusersRProtoBuf/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/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/cyclical/0000755000176200001440000000000013617260253017475 5ustar liggesusersRProtoBuf/inst/tinytest/data/cyclical/proj1/0000755000176200001440000000000013617260253020530 5ustar liggesusersRProtoBuf/inst/tinytest/data/cyclical/proj1/proto/0000755000176200001440000000000013617260253021673 5ustar liggesusersRProtoBuf/inst/tinytest/data/cyclical/proj1/proto/a.proto0000644000176200001440000000004113617260253023173 0ustar liggesuserssyntax = "proto2"; message A {} RProtoBuf/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/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/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/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/int64.ascii0000644000176200001440000000010213617260253017661 0ustar liggesusersrepeated_int64: 9007199254740992 repeated_int64: 9007199254740993 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/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/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_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_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_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_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_addressbook.R0000644000176200001440000001226614576705046020503 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(book$toTextFormat(), 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(incomplete.msg$toTextFormat(), 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_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_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_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/opencpu/0000755000176200001440000000000012440004312014550 5ustar liggesusersRProtoBuf/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/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/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/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/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.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/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/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/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/NEWS.Rd0000644000176200001440000005124414741522075014171 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.23 (2022-12-13)}{ \itemize{ \item More robust tests using \code{toTextFormat()} (Xufei Tan in \ghpr{99} addressing \ghit{98}) \item Various standard packaging updates to CI and badges (Dirk) \item Improvements to string construction in error messages (Michael Chirico in \ghpr{102} and \ghpr{103}) \item Accommodate ProtoBuf 26.x and later (Matteo Gianella in \ghpr{104}) \item Accommodate ProtoBuf 6.30.9 and later (Lev Kandel in \ghpr{106}) \item Correct \code{bashism} issues in \code{configure.ac} (Dirk) } } \section{Changes in RProtoBuf version 0.4.22 (2023-01-20)}{ \itemize{ \item Apply patch by Tomas Kalibera to support updated rtools to build with newer ProtoBuf releases on windows } } \section{Changes in RProtoBuf version 0.4.21 (2023-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/u/rprotobuf}{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/inst/python/0000755000176200001440000000000012440004312014420 5ustar liggesusersRProtoBuf/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/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/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/README.md0000644000176200001440000000470214624177411013425 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.app/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/build/0000755000176200001440000000000014741522255013242 5ustar liggesusersRProtoBuf/build/vignette.rds0000644000176200001440000000041314741522255015577 0ustar liggesusers‹Ċ’ÁŽ‚0†+°*&fɚxöä!Œñ²Cö°×Ĥ†€´ ñĉ‹Żì€-ŬÍ&{ñ@Ûù˙é7?I?g„‹8ŽE,ö—1~^]‡¸¸/‚½äߜÙ:Î Éŭ +MKPòÁZvÖ釉ָ}öë€mÊ WÉo&óŻĴ"bżeíĴŸ²ÖnŸMŒĦï)Ŭmi˙2‘ĥÙpĵĤyşBÌ•>4L螟T÷ƒ/=B c%:ğ8Ŭmaï·;uĵY¤çLßáRr‰u+yéëaóúq_qİŞêk˜(LiiqтúLâ}Ĵnßtûı£RProtoBuf/configure0000755000176200001440000050524114741522256014062 0ustar liggesusers#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.72 for RProtoBuf 0.4.23. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test ${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 case e in #( e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac ;; 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="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 case e in #( e) case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac ;; 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 case e in #( e) exitcode=1; echo positional parameters were not saved. ;; esac 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 case e in #( e) as_have_required=no ;; esac fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else case e in #( e) 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 case e in #( e) 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 ;; esac 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 ;; esac 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_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 case e in #( e) as_fn_append () { eval $1=\$$1\$2 } ;; esac 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 case e in #( e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } ;; esac fi # as_fn_arith # 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 ' t clear :clear 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_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" as_tr_sh="eval sed '$as_sed_sh'" # deprecated 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.23' PACKAGE_STRING='RProtoBuf 0.4.23' 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.23 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.23:";; 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.23 generated by GNU Autoconf 2.72 Copyright (C) 2023 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 case e in #( e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 ;; esac 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 case e in #( e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 ;; esac 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 case e in #( e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 ;; esac 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 case e in #( e) 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 case e in #( e) eval "$3=no" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac 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 case e in #( e) 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 ;; esac 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.23, which was generated by GNU Autoconf 2.72. 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 (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; } /* C89 style stringification. */ #define noexpand_stringify(a) #a const char *stringified = noexpand_stringify(arbitrary+token=sequence); /* C89 style token pasting. Exercises some of the corner cases that e.g. old MSVC gets wrong, but not very hard. */ #define noexpand_concat(a,b) a##b #define expand_concat(a,b) noexpand_concat(a,b) extern int vA; extern int vbee; #define aye A #define bee B int *pvA = &expand_concat(v,aye); int *pvbee = &noexpand_concat(v,bee); /* 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 // See if C++-style comments work. #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); extern void free (void *); // 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) { // 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; // Work around memory leak warnings. free (ia); // 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) ac_file='' ;; esac 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 case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } ;; esac 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 case e in #( e) { { 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; } ;; esac 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"); if (!f) return 1; 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.o conftest.obj 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 case e in #( e) 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 case e in #( e) 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; } ;; esac fi rm -f conftest.$ac_cv_objext conftest.$ac_ext ;; esac 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 case e in #( e) 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 case e in #( e) ac_compiler_gnu=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu ;; esac 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 case e in #( e) 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 case e in #( e) 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 case e in #( e) 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 ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 case e in #( e) { 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" ;; esac fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 ac_prog_cxx_stdcxx=cxx11 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 case e in #( e) { 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" ;; esac fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 ac_prog_cxx_stdcxx=cxx98 ;; esac 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 case e in #( e) # 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 case e in #( e) # Broken: fails on valid input. continue ;; esac 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 case e in #( e) # Passes both tests. ac_preproc_ok=: break ;; esac 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 ;; esac 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 case e in #( e) # Broken: fails on valid input. continue ;; esac 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 case e in #( e) # Passes both tests. ac_preproc_ok=: break ;; esac 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 case e in #( e) { { 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; } ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 case e in #( e) ac_compiler_gnu=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu ;; esac 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 case e in #( e) 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 case e in #( e) 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 case e in #( e) 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 ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 case e in #( e) { 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" ;; esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 case e in #( e) { 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" ;; esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 case e in #( e) { 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" ;; esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 case e in #( e) ac_compiler_gnu=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu ;; esac 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 case e in #( e) 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 case e in #( e) 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 case e in #( e) 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 ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 case e in #( e) { 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" ;; esac fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 ac_prog_cxx_stdcxx=cxx11 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 case e in #( e) { 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" ;; esac fi ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 ac_prog_cxx_stdcxx=cxx98 ;; esac 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 case e in #( e) 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 ;; esac 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 case e in #( e) 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 ;; esac 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" | sed "$as_sed_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" | sed "$as_sed_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 case e in #( e) # 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" | sed "$as_sed_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 case e in #( e) as_fn_error $? "ERROR: ProtoBuf headers required; use '-Iincludedir' in CXXFLAGS for unusual locations." "$LINENO" 5 ;; esac fi ;; esac 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 case e in #( e) as_fn_error $? "ERROR: ProtoBuf compiler headers required; use '-Iincludedir' in CXXFLAGS for unusual locations." "$LINENO" 5 ;; esac 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 case e in #( e) 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 case e in #( e) pb_version_ok=no ;; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac 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 case e in #( e) 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 ;; esac 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 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 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 case e in #( e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac ;; 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 case e in #( e) as_fn_append () { eval $1=\$$1\$2 } ;; esac 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 case e in #( e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } ;; esac 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_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" as_tr_sh="eval sed '$as_sed_sh'" # deprecated 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.23, which was generated by GNU Autoconf 2.72. 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.23 configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" Copyright (C) 2023 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} " RProtoBuf/man/0000755000176200001440000000000014535366057012725 5ustar liggesusersRProtoBuf/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/DESCRIPTION0000644000176200001440000000416414741532065013656 0ustar liggesusersPackage: RProtoBuf Version: 0.4.23 Date: 2025-01-14 Authors@R: c(person("Romain", "Francois", role = "aut", comment = c(ORCID = "0000-0002-2444-4226")), person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Murray", "Stokely", role = "aut", comment = c(ORCID = "0009-0008-3390-1338")), person("Jeroen", "Ooms", role = "aut", comment = c(ORCID = "0000-0002-4035-0289"))) 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: 2025-01-14 17:53:50 UTC; edd Author: Romain Francois [aut] (), Dirk Eddelbuettel [aut, cre] (), Murray Stokely [aut] (), Jeroen Ooms [aut] () Maintainer: Dirk Eddelbuettel Repository: CRAN Date/Publication: 2025-01-14 19:00:05 UTC