diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | TODO | 8 | ||||
-rw-r--r-- | include/qpdf/QPDFWriter.hh | 44 | ||||
-rw-r--r-- | include/qpdf/qpdf-c.h | 5 | ||||
-rw-r--r-- | libqpdf/Pl_MD5.cc | 61 | ||||
-rw-r--r-- | libqpdf/QPDFWriter.cc | 174 | ||||
-rw-r--r-- | libqpdf/qpdf-c.cc | 6 | ||||
-rw-r--r-- | libqpdf/qpdf/Pl_MD5.hh | 14 | ||||
-rw-r--r-- | libtests/md5.cc | 18 | ||||
-rw-r--r-- | libtests/qtest/md5/md5.out | 8 | ||||
-rw-r--r-- | manual/qpdf-manual.xml | 23 | ||||
-rw-r--r-- | qpdf/qpdf-ctest.c | 13 | ||||
-rw-r--r-- | qpdf/qpdf.cc | 10 | ||||
-rw-r--r-- | qpdf/qpdf.testcov | 4 | ||||
-rw-r--r-- | qpdf/qtest/qpdf.test | 37 | ||||
-rw-r--r-- | qpdf/qtest/qpdf/deterministic-id-in.pdf | bin | 0 -> 177835 bytes | |||
-rw-r--r-- | qpdf/qtest/qpdf/deterministic-id-nn.pdf | 1852 | ||||
-rw-r--r-- | qpdf/qtest/qpdf/deterministic-id-ny.pdf | bin | 0 -> 138231 bytes | |||
-rw-r--r-- | qpdf/qtest/qpdf/deterministic-id-yn.pdf | bin | 0 -> 176117 bytes | |||
-rw-r--r-- | qpdf/qtest/qpdf/deterministic-id-yy.pdf | bin | 0 -> 148511 bytes |
20 files changed, 2232 insertions, 51 deletions
@@ -1,3 +1,9 @@ +2015-10-29 Jay Berkenbilt <ejb@ql.org> + + * Implement QPDFWriter::setDeterministicID and --deterministic-id + commandline-flag to qpdf to request generation of a deterministic + /ID for non-encrypted files. + 2015-05-24 Jay Berkenbilt <ejb@ql.org> * 5.1.3: release @@ -46,6 +46,14 @@ Small, command-line tool only enhancements to do soon (libtool). +Next ABI change +=============== + +Remove private methods that are there only for ABI compatibility +including extra QPDFWriter writeTrailer, writeXRefTable, +writeXRefStream. + + 5.2.0 ===== diff --git a/include/qpdf/QPDFWriter.hh b/include/qpdf/QPDFWriter.hh index 8997e144..747386bf 100644 --- a/include/qpdf/QPDFWriter.hh +++ b/include/qpdf/QPDFWriter.hh @@ -35,6 +35,7 @@ class QPDF; class QPDFObjectHandle; class Pl_Count; +class Pl_MD5; class QPDFWriter { @@ -189,8 +190,22 @@ class QPDFWriter QPDF_DLL void setExtraHeaderText(std::string const&); + // Causes a deterministic /ID value to be generated. When this is + // set, the current time and output file name are not used as part + // of /ID generation. Instead, a digest of all significant parts + // of the output file's contents is included in the /ID + // calculation. Use of a deterministic /ID can be handy when it is + // desirable for a repeat of the same qpdf operation on the same + // inputs being written to the same outputs with the same + // parameters to generate exactly the same results. This feature + // is incompatible with encrypted files because, for encrypted + // files, the /ID is generated before any part of the file is + // written since it is an input to the encryption process. + QPDF_DLL + void setDeterministicID(bool); + // Cause a static /ID value to be generated. Use only in test - // suites. + // suites. See also setDeterministicID. QPDF_DLL void setStaticID(bool); @@ -298,6 +313,9 @@ class QPDFWriter void writeObject(QPDFObjectHandle object, int object_stream_index = -1); void writeTrailer(trailer_e which, int size, bool xref_stream, qpdf_offset_t prev = 0); + void writeTrailer(trailer_e which, int size, + bool xref_stream, qpdf_offset_t prev, + int linearization_pass); void unparseObject(QPDFObjectHandle object, int level, unsigned int flags); void unparseObject(QPDFObjectHandle object, int level, @@ -348,6 +366,15 @@ class QPDFWriter int hint_id, qpdf_offset_t hint_offset, qpdf_offset_t hint_length); + qpdf_offset_t writeXRefTable( + trailer_e which, int first, int last, int size, + // for linearization + qpdf_offset_t prev, + bool suppress_offsets, + int hint_id, + qpdf_offset_t hint_offset, + qpdf_offset_t hint_length, + int linearization_pass); qpdf_offset_t writeXRefStream( int objid, int max_id, qpdf_offset_t max_offset, trailer_e which, int first, int last, int size); @@ -360,6 +387,16 @@ class QPDFWriter qpdf_offset_t hint_offset, qpdf_offset_t hint_length, bool skip_compression); + qpdf_offset_t writeXRefStream( + int objid, int max_id, qpdf_offset_t max_offset, + trailer_e which, int first, int last, int size, + // for linearization + qpdf_offset_t prev, + int hint_id, + qpdf_offset_t hint_offset, + qpdf_offset_t hint_length, + bool skip_compression, + int linearization_pass); int calculateXrefStreamPadding(int xref_bytes); // When filtering subsections, push additional pipelines to the @@ -380,6 +417,8 @@ class QPDFWriter void adjustAESStreamLength(size_t& length); void pushEncryptionFilter(); void pushDiscardFilter(); + void pushMD5Pipeline(); + void computeDeterministicIDData(); void discardGeneration(std::map<QPDFObjGen, int> const& in, std::map<int, int>& out); @@ -437,6 +476,9 @@ class QPDFWriter std::map<QPDFObjGen, int> object_to_object_stream; std::map<int, std::set<QPDFObjGen> > object_stream_to_objects; std::list<Pipeline*> pipeline_stack; + bool deterministic_id; + Pl_MD5* md5_pipeline; + std::string deterministic_id_data; // For linearization only std::map<int, int> obj_renumber_no_gen; diff --git a/include/qpdf/qpdf-c.h b/include/qpdf/qpdf-c.h index 96ea8aa9..95ae5f61 100644 --- a/include/qpdf/qpdf-c.h +++ b/include/qpdf/qpdf-c.h @@ -324,8 +324,11 @@ extern "C" { QPDF_DLL void qpdf_set_qdf_mode(qpdf_data qpdf, QPDF_BOOL value); + QPDF_DLL + void qpdf_set_deterministic_ID(qpdf_data qpdf, QPDF_BOOL value); + /* Never use qpdf_set_static_ID except in test suites to suppress - * generation of a random /ID. + * generation of a random /ID. See also qpdf_set_deterministic_ID. */ QPDF_DLL void qpdf_set_static_ID(qpdf_data qpdf, QPDF_BOOL value); diff --git a/libqpdf/Pl_MD5.cc b/libqpdf/Pl_MD5.cc index 3a78cb33..0510e50e 100644 --- a/libqpdf/Pl_MD5.cc +++ b/libqpdf/Pl_MD5.cc @@ -3,7 +3,9 @@ Pl_MD5::Pl_MD5(char const* identifier, Pipeline* next) : Pipeline(identifier, next), - in_progress(false) + in_progress(false), + enabled(true), + persist_across_finish(false) { } @@ -14,24 +16,27 @@ Pl_MD5::~Pl_MD5() void Pl_MD5::write(unsigned char* buf, size_t len) { - if (! this->in_progress) + if (this->enabled) { - this->md5.reset(); - this->in_progress = true; - } + if (! this->in_progress) + { + this->md5.reset(); + this->in_progress = true; + } - // Write in chunks in case len is too big to fit in an int. - // Assume int is at least 32 bits. - static size_t const max_bytes = 1 << 30; - size_t bytes_left = len; - unsigned char* data = buf; - while (bytes_left > 0) - { - size_t bytes = (bytes_left >= max_bytes ? max_bytes : bytes_left); - this->md5.encodeDataIncrementally( - reinterpret_cast<char*>(data), bytes); - bytes_left -= bytes; - data += bytes; + // Write in chunks in case len is too big to fit in an int. + // Assume int is at least 32 bits. + static size_t const max_bytes = 1 << 30; + size_t bytes_left = len; + unsigned char* data = buf; + while (bytes_left > 0) + { + size_t bytes = (bytes_left >= max_bytes ? max_bytes : bytes_left); + this->md5.encodeDataIncrementally( + reinterpret_cast<char*>(data), bytes); + bytes_left -= bytes; + data += bytes; + } } this->getNext()->write(buf, len); @@ -41,16 +46,32 @@ void Pl_MD5::finish() { this->getNext()->finish(); - this->in_progress = false; + if (! this->persist_across_finish) + { + this->in_progress = false; + } +} + +void +Pl_MD5::enable(bool enabled) +{ + this->enabled = enabled; +} + +void +Pl_MD5::persistAcrossFinish(bool persist) +{ + this->persist_across_finish = persist; } std::string Pl_MD5::getHexDigest() { - if (this->in_progress) + if (! this->enabled) { throw std::logic_error( - "digest requested for in-progress MD5 Pipeline"); + "digest requested for a disabled MD5 Pipeline"); } + this->in_progress = false; return this->md5.unparse(); } diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index 08647e37..ef3210c6 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -9,6 +9,7 @@ #include <qpdf/Pl_AES_PDF.hh> #include <qpdf/Pl_Flate.hh> #include <qpdf/Pl_PNGFilter.hh> +#include <qpdf/Pl_MD5.hh> #include <qpdf/QUtil.hh> #include <qpdf/MD5.hh> #include <qpdf/RC4.hh> @@ -77,6 +78,8 @@ QPDFWriter::init() cur_stream_length = 0; added_newline = false; max_ostream_index = 0; + deterministic_id = false; + md5_pipeline = 0; } QPDFWriter::~QPDFWriter() @@ -264,6 +267,12 @@ QPDFWriter::setStaticID(bool val) } void +QPDFWriter::setDeterministicID(bool val) +{ + this->deterministic_id = val; +} + +void QPDFWriter::setStaticAesIV(bool val) { if (val) @@ -507,10 +516,10 @@ void QPDFWriter::copyEncryptionParameters(QPDF& qpdf) { this->preserve_encryption = false; - generateID(); QPDFObjectHandle trailer = qpdf.getTrailer(); if (trailer.hasKey("/Encrypt")) { + generateID(); this->id1 = trailer.getKey("/ID").getArrayItem(0).getStringValue(); QPDFObjectHandle encrypt = trailer.getKey("/Encrypt"); @@ -864,6 +873,10 @@ QPDFWriter::popPipelineStack(PointerHolder<Buffer>* bp) while (dynamic_cast<Pl_Count*>(this->pipeline_stack.back()) == 0) { Pipeline* p = this->pipeline_stack.back(); + if (dynamic_cast<Pl_MD5*>(p) == this->md5_pipeline) + { + this->md5_pipeline = 0; + } this->pipeline_stack.pop_back(); Pl_Buffer* buf = dynamic_cast<Pl_Buffer*>(p); if (bp && buf) @@ -921,6 +934,36 @@ QPDFWriter::pushDiscardFilter() activatePipelineStack(); } +void +QPDFWriter::pushMD5Pipeline() +{ + if (! this->id2.empty()) + { + // Can't happen in the code + throw std::logic_error( + "Deterministic ID computation enabled after ID" + " generation has already occurred."); + } + assert(this->deterministic_id); + assert(this->md5_pipeline == 0); + assert(this->pipeline->getCount() == 0); + this->md5_pipeline = new Pl_MD5("qpdf md5", this->pipeline); + this->md5_pipeline->persistAcrossFinish(true); + // Special case code in popPipelineStack clears this->md5_pipeline + // upon deletion. + pushPipeline(this->md5_pipeline); + activatePipelineStack(); +} + +void +QPDFWriter::computeDeterministicIDData() +{ + assert(this->md5_pipeline != 0); + assert(this->deterministic_id_data.empty()); + this->deterministic_id_data = this->md5_pipeline->getHexDigest(); + this->md5_pipeline->enable(false); +} + int QPDFWriter::openObject(int objid) { @@ -1069,6 +1112,13 @@ void QPDFWriter::writeTrailer(trailer_e which, int size, bool xref_stream, qpdf_offset_t prev) { + writeTrailer(which, size, xref_stream, prev, 0); +} + +void +QPDFWriter::writeTrailer(trailer_e which, int size, bool xref_stream, + qpdf_offset_t prev, int linearization_pass) +{ QPDFObjectHandle trailer = getTrimmedTrailer(); if (! xref_stream) { @@ -1119,8 +1169,21 @@ QPDFWriter::writeTrailer(trailer_e which, int size, bool xref_stream, // Write ID writeStringQDF(" "); writeString(" /ID ["); - writeString(QPDF_String(this->id1).unparse(true)); - writeString(QPDF_String(this->id2).unparse(true)); + if (linearization_pass == 1) + { + writeString("<00000000000000000000000000000000>" + "<00000000000000000000000000000000>"); + } + else + { + if ((linearization_pass == 0) && (this->deterministic_id)) + { + computeDeterministicIDData(); + } + generateID(); + writeString(QPDF_String(this->id1).unparse(true)); + writeString(QPDF_String(this->id2).unparse(true)); + } writeString("]"); if (which != t_lin_second) @@ -1794,12 +1857,8 @@ QPDFWriter::writeObject(QPDFObjectHandle object, int object_stream_index) void QPDFWriter::generateID() { - // Note: we can't call generateID() at the time of construction - // since the caller hasn't yet had a chance to call setStaticID(), - // but we need to generate it before computing encryption - // dictionary parameters. This is why we call this function both - // from setEncryptionParameters() and from write() and return - // immediately if the ID has already been generated. + // Generate the ID lazily so that we can handle the user's + // preference to use static or deterministic ID generation. if (! this->id2.empty()) { @@ -1822,17 +1881,40 @@ QPDFWriter::generateID() } else { - // The PDF specification has guidelines for creating IDs, but it - // states clearly that the only thing that's really important is - // that it is very likely to be unique. We can't really follow - // the guidelines in the spec exactly because we haven't written - // the file yet. This scheme should be fine though. + // The PDF specification has guidelines for creating IDs, but + // it states clearly that the only thing that's really + // important is that it is very likely to be unique. We can't + // really follow the guidelines in the spec exactly because we + // haven't written the file yet. This scheme should be fine + // though. The deterministic ID case uses a digest of a + // sufficient portion of the file's contents such no two + // non-matching files would match in the subsets used for this + // computation. Note that we explicitly omit the filename from + // the digest calculation for deterministic ID so that the same + // file converted with qpdf, in that case, would have the same + // ID regardless of the output file's name. std::string seed; - seed += QUtil::int_to_string(QUtil::get_current_time()); + if (this->deterministic_id) + { + if (this->deterministic_id_data.empty()) + { + QTC::TC("qpdf", "QPDFWriter deterministic with no data"); + throw std::logic_error( + "INTERNAL ERROR: QPDFWriter::generateID has no" + " data for deterministic ID. This may happen if" + " deterministic ID and file encryption are requested" + " together."); + } + seed += this->deterministic_id_data; + } + else + { + seed += QUtil::int_to_string(QUtil::get_current_time()); + seed += this->filename; + seed += " "; + } seed += " QPDF "; - seed += this->filename; - seed += " "; if (trailer.hasKey("/Info")) { QPDFObjectHandle info = trailer.getKey("/Info"); @@ -2260,8 +2342,6 @@ QPDFWriter::write() setMinimumPDFVersion("1.5"); } - generateID(); - prepareFileForWrite(); if (this->linearized) @@ -2397,6 +2477,17 @@ QPDFWriter::writeXRefTable(trailer_e which, int first, int last, int size, int hint_id, qpdf_offset_t hint_offset, qpdf_offset_t hint_length) { + // ABI compatibility + return writeXRefTable(which, first, last, size, prev, suppress_offsets, + hint_id, hint_offset, hint_length, 0); +} + +qpdf_offset_t +QPDFWriter::writeXRefTable(trailer_e which, int first, int last, int size, + qpdf_offset_t prev, bool suppress_offsets, + int hint_id, qpdf_offset_t hint_offset, + qpdf_offset_t hint_length, int linearization_pass) +{ writeString("xref\n"); writeString(QUtil::int_to_string(first)); writeString(" "); @@ -2426,7 +2517,7 @@ QPDFWriter::writeXRefTable(trailer_e which, int first, int last, int size, writeString(" 00000 n \n"); } } - writeTrailer(which, size, false, prev); + writeTrailer(which, size, false, prev, linearization_pass); writeString("\n"); return space_before_zero; } @@ -2435,8 +2526,9 @@ qpdf_offset_t QPDFWriter::writeXRefStream(int objid, int max_id, qpdf_offset_t max_offset, trailer_e which, int first, int last, int size) { + // ABI compatibility return writeXRefStream(objid, max_id, max_offset, - which, first, last, size, 0, 0, 0, 0, false); + which, first, last, size, 0, 0, 0, 0, false, 0); } qpdf_offset_t @@ -2445,7 +2537,8 @@ QPDFWriter::writeXRefStream(int xref_id, int max_id, qpdf_offset_t max_offset, qpdf_offset_t prev, int hint_id, qpdf_offset_t hint_offset, qpdf_offset_t hint_length, - bool skip_compression) + bool skip_compression, + int linearization_pass) { qpdf_offset_t xref_offset = this->pipeline->getCount(); qpdf_offset_t space_before_zero = xref_offset - 1; @@ -2545,7 +2638,7 @@ QPDFWriter::writeXRefStream(int xref_id, int max_id, qpdf_offset_t max_offset, QUtil::int_to_string(first) + " " + QUtil::int_to_string(last - first + 1) + " ]"); } - writeTrailer(which, size, true, prev); + writeTrailer(which, size, true, prev, linearization_pass); writeString("\nstream\n"); writeBuffer(xref_data); writeString("\nendstream"); @@ -2725,6 +2818,10 @@ QPDFWriter::writeLinearized() if (pass == 1) { pushDiscardFilter(); + if (this->deterministic_id) + { + pushMD5Pipeline(); + } } // Part 1: header @@ -2807,7 +2904,7 @@ QPDFWriter::writeLinearized() first_trailer_size, hint_length + second_xref_offset, hint_id, hint_offset, hint_length, - (pass == 1)); + (pass == 1), pass); qpdf_offset_t endpos = this->pipeline->getCount(); if (pass == 1) { @@ -2834,7 +2931,8 @@ QPDFWriter::writeLinearized() { writeXRefTable(t_lin_first, first_half_start, first_half_end, first_trailer_size, hint_length + second_xref_offset, - (pass == 1), hint_id, hint_offset, hint_length); + (pass == 1), hint_id, hint_offset, hint_length, + pass); writeString("startxref\n0\n%%EOF\n"); } @@ -2886,7 +2984,7 @@ QPDFWriter::writeLinearized() second_half_end, second_xref_offset, t_lin_second, 0, second_half_end, second_trailer_size, - 0, 0, 0, 0, (pass == 1)); + 0, 0, 0, 0, (pass == 1), pass); qpdf_offset_t endpos = this->pipeline->getCount(); if (pass == 1) @@ -2920,7 +3018,7 @@ QPDFWriter::writeLinearized() { space_before_zero = writeXRefTable(t_lin_second, 0, second_half_end, - second_trailer_size); + second_trailer_size, 0, false, 0, 0, 0, pass); } writeString("startxref\n"); writeString(QUtil::int_to_string(first_xref_offset)); @@ -2930,6 +3028,15 @@ QPDFWriter::writeLinearized() if (pass == 1) { + if (this->deterministic_id) + { + QTC::TC("qpdf", "QPDFWriter linearized deterministic ID", + need_xref_stream ? 0 : 1); + computeDeterministicIDData(); + popPipelineStack(); + assert(this->md5_pipeline == 0); + } + // Close first pass pipeline file_size = this->pipeline->getCount(); popPipelineStack(); @@ -2954,6 +3061,11 @@ QPDFWriter::writeLinearized() void QPDFWriter::writeStandard() { + if (this->deterministic_id) + { + pushMD5Pipeline(); + } + // Start writing writeHeader(); @@ -3005,4 +3117,12 @@ QPDFWriter::writeStandard() writeString("startxref\n"); writeString(QUtil::int_to_string(xref_offset)); writeString("\n%%EOF\n"); + + if (this->deterministic_id) + { + QTC::TC("qpdf", "QPDFWriter standard deterministic ID", + this->object_stream_to_objects.empty() ? 0 : 1); + popPipelineStack(); + assert(this->md5_pipeline == 0); + } } diff --git a/libqpdf/qpdf-c.cc b/libqpdf/qpdf-c.cc index a46df63e..c8adb9e4 100644 --- a/libqpdf/qpdf-c.cc +++ b/libqpdf/qpdf-c.cc @@ -512,6 +512,12 @@ void qpdf_set_qdf_mode(qpdf_data qpdf, QPDF_BOOL value) qpdf->qpdf_writer->setQDFMode(value); } +void qpdf_set_deterministic_ID(qpdf_data qpdf, QPDF_BOOL value) +{ + QTC::TC("qpdf", "qpdf-c called qpdf_set_deterministic_ID"); + qpdf->qpdf_writer->setDeterministicID(value); +} + void qpdf_set_static_ID(qpdf_data qpdf, QPDF_BOOL value) { QTC::TC("qpdf", "qpdf-c called qpdf_set_static_ID"); diff --git a/libqpdf/qpdf/Pl_MD5.hh b/libqpdf/qpdf/Pl_MD5.hh index 13a0927d..c23e6b45 100644 --- a/libqpdf/qpdf/Pl_MD5.hh +++ b/libqpdf/qpdf/Pl_MD5.hh @@ -25,10 +25,24 @@ class Pl_MD5: public Pipeline virtual void finish(); QPDF_DLL std::string getHexDigest(); + // Enable/disable. Disabling the pipeline causes it to become a + // pass-through. This makes it possible to stick an MD5 pipeline + // in a pipeline when it may or may not be required. Disabling it + // avoids incurring the runtime overhead of doing needless + // digest computation. + QPDF_DLL + void enable(bool enabled); + // If persistAcrossFinish is called, calls to finish do not + // finalize the underlying md5 object. In this case, the object is + // not finalized until getHexDigest() is called. + QPDF_DLL + void persistAcrossFinish(bool); private: bool in_progress; MD5 md5; + bool enabled; + bool persist_across_finish; }; #endif // __PL_MD5_HH__ diff --git a/libtests/md5.cc b/libtests/md5.cc index 9c9c8cf1..e88c1d66 100644 --- a/libtests/md5.cc +++ b/libtests/md5.cc @@ -45,6 +45,13 @@ int main(int, char*[]) Pl_Discard d; Pl_MD5 p("MD5", &d); + // Create a second pipeline, protect against finish, and call + // getHexDigest only once at the end of both passes. Make sure the + // checksum is that of the input file concatenated to itself. This + // will require changes to Pl_MD5.cc to prevent finish from + // calling finalize. + Pl_MD5 p2("MD5", &d); + p2.persistAcrossFinish(true); for (int i = 0; i < 2; ++i) { FILE* f = QUtil::safe_fopen("md5.in", "rb"); @@ -61,12 +68,23 @@ int main(int, char*[]) else { p.write(buf, len); + p2.write(buf, len); + if (i == 1) + { + // Partial digest -- resets after each call to write + std::cout << p.getHexDigest() << std::endl; + } } } fclose(f); p.finish(); + p2.finish(); + // Make sure calling getHexDigest twice with no intervening + // writes results in the same result each time. + std::cout << p.getHexDigest() << std::endl; std::cout << p.getHexDigest() << std::endl; } + std::cout << p2.getHexDigest() << std::endl; return 0; } diff --git a/libtests/qtest/md5/md5.out b/libtests/qtest/md5/md5.out index 148b4e66..dec491af 100644 --- a/libtests/qtest/md5/md5.out +++ b/libtests/qtest/md5/md5.out @@ -14,3 +14,11 @@ d174ab98d277d9f5a5611c2c9f419d9f 0 5f4b4321873433daae578f85c72f9e74 5f4b4321873433daae578f85c72f9e74 +41f977636f79cf1bad1b439caa7d627c +c30e03b5536e37306df25489622e13e3 +9dabbd135cc47bb603a94989df37c926 +ce80591b269b749f65c53b71d0be5212 +db5448be0a1e931cbd84654e82063483 +db5448be0a1e931cbd84654e82063483 +db5448be0a1e931cbd84654e82063483 +9833b12b21147bebb2f33d35807049af diff --git a/manual/qpdf-manual.xml b/manual/qpdf-manual.xml index 3174e68a..093d5b5b 100644 --- a/manual/qpdf-manual.xml +++ b/manual/qpdf-manual.xml @@ -991,11 +991,30 @@ outfile.pdf</option> file should be given. The following options are available: <variablelist> <varlistentry> + <term><option>--deterministic-id</option></term> + <listitem> + <para> + Causes generation of a deterministic value for /ID. This + prevents use of timestamp and output file name information in + the /ID generation. Instead, at some slight additional runtime + cost, the /ID field is generated to include a digest of the + significant parts of the content of the output PDF file. This + means that a given qpdf operation should generate the same /ID + each time it is run, which can be useful when caching results + or for generation of some test data. Use of this flag is not + compatible with creation of encrypted files. + </para> + </listitem> + </varlistentry> + <varlistentry> <term><option>--static-id</option></term> <listitem> <para> - Causes generation of a fixed value for /ID. This is intended - for testing only. Never use it for production files. + Causes generation of a fixed value for /ID. This is intended + for testing only. Never use it for production files. If you + are trying to get the same /ID each time for a given file and + you are not generating encrypted files, consider using the + <option>--deterministic-id</option> option. </para> </listitem> </varlistentry> diff --git a/qpdf/qpdf-ctest.c b/qpdf/qpdf-ctest.c index 3c13836c..9ed984d7 100644 --- a/qpdf/qpdf-ctest.c +++ b/qpdf/qpdf-ctest.c @@ -427,6 +427,18 @@ static void test18(char const* infile, report_errors(); } +static void test19(char const* infile, + char const* password, + char const* outfile, + char const* outfile2) +{ + qpdf_read(qpdf, infile, password); + qpdf_init_write(qpdf, outfile); + qpdf_set_deterministic_ID(qpdf, QPDF_TRUE); + qpdf_write(qpdf); + report_errors(); +} + int main(int argc, char* argv[]) { char* p = 0; @@ -485,6 +497,7 @@ int main(int argc, char* argv[]) (n == 16) ? test16 : (n == 17) ? test17 : (n == 18) ? test18 : + (n == 19) ? test19 : 0); if (fn == 0) diff --git a/qpdf/qpdf.cc b/qpdf/qpdf.cc index 92b3b619..c52e1125 100644 --- a/qpdf/qpdf.cc +++ b/qpdf/qpdf.cc @@ -237,6 +237,7 @@ Testing, Inspection, and Debugging Options\n\ These options can be useful for digging into PDF files or for use in\n\ automated test suites for software that uses the qpdf library.\n\ \n\ +--deterministic-id generate deterministic /ID\n\ --static-id generate static /ID: FOR TESTING ONLY!\n\ --static-aes-iv use a static initialization vector for AES-CBC\n\ This is option is not secure! FOR TESTING ONLY!\n\ @@ -1031,6 +1032,7 @@ int main(int argc, char* argv[]) std::string force_version; bool show_npages = false; + bool deterministic_id = false; bool static_id = false; bool static_aes_iv = false; bool suppress_original_object_id = false; @@ -1229,6 +1231,10 @@ int main(int argc, char* argv[]) } force_version = parameter; } + else if (strcmp(arg, "deterministic-id") == 0) + { + deterministic_id = true; + } else if (strcmp(arg, "static-id") == 0) { static_id = true; @@ -1710,6 +1716,10 @@ int main(int argc, char* argv[]) { w.setPreserveEncryption(false); } + if (deterministic_id) + { + w.setDeterministicID(true); + } if (static_id) { w.setStaticID(true); diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov index b1dc2c0a..d43939ea 100644 --- a/qpdf/qpdf.testcov +++ b/qpdf/qpdf.testcov @@ -269,3 +269,7 @@ qpdf pages range omitted at end 0 qpdf pages range omitted in middle 0 qpdf npages 0 QPDF already reserved object 0 +QPDFWriter standard deterministic ID 1 +QPDFWriter linearized deterministic ID 1 +QPDFWriter deterministic with no data 0 +qpdf-c called qpdf_set_deterministic_ID 0 diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test index 006f95f0..e222f756 100644 --- a/qpdf/qtest/qpdf.test +++ b/qpdf/qtest/qpdf.test @@ -990,6 +990,43 @@ $td->runtest("write damaged", show_ntests(); # ---------- +$td->notify("--- Deterministic ID Tests ---"); +$n_tests += 11; +foreach my $d ('nn', 'ny', 'yn', 'yy') +{ + my $linearize = ($d =~ m/^y/); + my $ostream = ($d =~ m/y$/); + $td->runtest("deterministic ID: linearize/ostream=$d", + {$td->COMMAND => + "qpdf -deterministic-id" . + ($linearize ? " -linearize" : "") . + " -object-streams=" . ($ostream ? "generate" : "disable") . + " deterministic-id-in.pdf a.pdf"}, + {$td->STRING => "", + $td->EXIT_STATUS => 0}); + $td->runtest("compare files", + {$td->FILE => "a.pdf"}, + {$td->FILE => "deterministic-id-$d.pdf"}); +} + +$td->runtest("deterministic ID with encryption", + {$td->COMMAND => "qpdf -deterministic-id encrypted-with-images.pdf a.pdf"}, + {$td->STRING => "INTERNAL ERROR: QPDFWriter::generateID" . + " has no data for deterministic ID." . + " This may happen if deterministic ID and" . + " file encryption are requested together.\n", + $td->EXIT_STATUS => 2}, + $td->NORMALIZE_NEWLINES); +$td->runtest("deterministic ID (C API)", + {$td->COMMAND => + "qpdf-ctest 19 deterministic-id-in.pdf '' a.pdf"}, + {$td->STRING => "", + $td->EXIT_STATUS => 0}); +$td->runtest("compare files", + {$td->FILE => "a.pdf"}, + {$td->FILE => "deterministic-id-nn.pdf"}); + +# ---------- $td->notify("--- Object Stream Tests ---"); $n_tests += (36 * 4) + (12 * 2); $n_compare_pdfs += 36; diff --git a/qpdf/qtest/qpdf/deterministic-id-in.pdf b/qpdf/qtest/qpdf/deterministic-id-in.pdf Binary files differnew file mode 100644 index 00000000..b7197826 --- /dev/null +++ b/qpdf/qtest/qpdf/deterministic-id-in.pdf diff --git a/qpdf/qtest/qpdf/deterministic-id-nn.pdf b/qpdf/qtest/qpdf/deterministic-id-nn.pdf new file mode 100644 index 00000000..0b71a444 --- /dev/null +++ b/qpdf/qtest/qpdf/deterministic-id-nn.pdf @@ -0,0 +1,1852 @@ +%PDF-1.4 +% +1 0 obj +<< /Lang (en) /Metadata 3 0 R /PageLabels 4 0 R /Pages 5 0 R /Type /Catalog >> +endobj +2 0 obj +<< /CreationDate (D:20150524172830-04'00') /Creator (Apache FOP Version 1.1) /Producer (Apache FOP Version 1.1) >> +endobj +3 0 obj +<< /Subtype /XML /Type /Metadata /Length 858 >> +stream +<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?><x:xmpmeta xmlns:x="adobe:ns:meta/"> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> +<rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" rdf:about=""> +<dc:format>application/pdf</dc:format> +<dc:language>en</dc:language> +<dc:date>2015-05-24T17:28:30-04:00</dc:date> +</rdf:Description> +<rdf:Description xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about=""> +<pdf:Producer>Apache FOP Version 1.1</pdf:Producer> +<pdf:PDFVersion>1.4</pdf:PDFVersion> +</rdf:Description> +<rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about=""> +<xmp:CreatorTool>Apache FOP Version 1.1</xmp:CreatorTool> +<xmp:MetadataDate>2015-05-24T17:28:30-04:00</xmp:MetadataDate> +<xmp:CreateDate>2015-05-24T17:28:30-04:00</xmp:CreateDate> +</rdf:Description> +</rdf:RDF> +</x:xmpmeta><?xpacket end="r"?> +endstream +endobj +4 0 obj +<< /Nums [ 0 << /P (i) >> 1 << /P (ii) >> 2 << /P (iii) >> 3 << /P (iv) >> 4 << /P (1) >> 5 << /P (2) >> 6 << /P (3) >> 7 << /P (4) >> 8 << /P (5) >> 9 << /P (6) >> 10 << /P (7) >> 11 << /P (8) >> 12 << /P (9) >> 13 << /P (10) >> 14 << /P (11) >> 15 << /P (12) >> 16 << /P (13) >> 17 << /P (14) >> 18 << /P (15) >> 19 << /P (16) >> 20 << /P (17) >> 21 << /P (18) >> 22 << /P (19) >> 23 << /P (20) >> 24 << /P (21) >> 25 << /P (22) >> 26 << /P (23) >> 27 << /P (24) >> 28 << /P (25) >> 29 << /P (26) >> 30 << /P (27) >> 31 << /P (28) >> 32 << /P (29) >> 33 << /P (30) >> 34 << /P (31) >> 35 << /P (32) >> 36 << /P (33) >> 37 << /P (34) >> 38 << /P (35) >> 39 << /P (36) >> 40 << /P (37) >> 41 << /P (38) >> 42 << /P (39) >> ] >> +endobj +5 0 obj +<< /Count 43 /Kids [ 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R ] /Type /Pages >> +endobj +6 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 49 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +7 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 51 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +8 0 obj +<< /Annots 52 0 R /BleedBox [ 0 0 612 792 ] /Contents 53 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +9 0 obj +<< /Annots 54 0 R /BleedBox [ 0 0 612 792 ] /Contents 55 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +10 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 56 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +11 0 obj +<< /Annots 57 0 R /BleedBox [ 0 0 612 792 ] /Contents 58 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +12 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 59 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +13 0 obj +<< /Annots 60 0 R /BleedBox [ 0 0 612 792 ] /Contents 61 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +14 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 62 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +15 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 63 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +16 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 64 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +17 0 obj +<< /Annots 65 0 R /BleedBox [ 0 0 612 792 ] /Contents 66 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +18 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 67 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +19 0 obj +<< /Annots 68 0 R /BleedBox [ 0 0 612 792 ] /Contents 69 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +20 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 70 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +21 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 71 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +22 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 72 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +23 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 73 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +24 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 74 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +25 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 75 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +26 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 76 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +27 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 77 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +28 0 obj +<< /Annots 78 0 R /BleedBox [ 0 0 612 792 ] /Contents 79 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +29 0 obj +<< /Annots 80 0 R /BleedBox [ 0 0 612 792 ] /Contents 81 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +30 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 82 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +31 0 obj +<< /Annots 83 0 R /BleedBox [ 0 0 612 792 ] /Contents 84 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +32 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 85 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +33 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 86 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +34 0 obj +<< /Annots 87 0 R /BleedBox [ 0 0 612 792 ] /Contents 88 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +35 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 89 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +36 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 90 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +37 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 91 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +38 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 92 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +39 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 93 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +40 0 obj +<< /Annots 94 0 R /BleedBox [ 0 0 612 792 ] /Contents 95 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +41 0 obj +<< /Annots 96 0 R /BleedBox [ 0 0 612 792 ] /Contents 97 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +42 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 98 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +43 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 99 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +44 0 obj +<< /Annots 100 0 R /BleedBox [ 0 0 612 792 ] /Contents 101 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +45 0 obj +<< /Annots 102 0 R /BleedBox [ 0 0 612 792 ] /Contents 103 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +46 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 104 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +47 0 obj +<< /BleedBox [ 0 0 612 792 ] /Contents 105 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +48 0 obj +<< /Annots 106 0 R /BleedBox [ 0 0 612 792 ] /Contents 107 0 R /CropBox [ 0 0 612 792 ] /MediaBox [ 0 0 612 792 ] /Parent 5 0 R /Resources 50 0 R /TrimBox [ 0 0 612 792 ] /Type /Page >> +endobj +49 0 obj +<< /Filter /FlateDecode /Length 225 >> +stream +xuMKA+rT1̵ +Pebk{ofWh&I3;c+ ~5**Mck$?r_"s8`9@<eKls"l}~hi7(C%FruCT^T0^g!E7SQ=͔gÙn5_Lœ0(eZPм}OǢњPSUendstream +endobj +50 0 obj +<< /ColorSpace << /DefaultRGB 108 0 R >> /Font << /F10 109 0 R /F11 110 0 R /F12 111 0 R /F3 112 0 R /F4 113 0 R /F5 114 0 R /F6 115 0 R /F7 116 0 R /F9 117 0 R >> /ProcSet [ /PDF /ImageB /ImageC /Text ] >> +endobj +51 0 obj +<< /Filter /FlateDecode /Length 336 >> +stream +xSMO@ﯘ&vjƶHUJ+Mf2ͼHB{L%x)IJ) CƂ$(
pcHIV&r·v9
}hEGBg0n#7Q/C#AAyچF 9p3c=q,s0Dk')Zu)`t2ݴ_Ti-J0RIa|
uP $.o@a8iFB=-|2|Wu+hq#-2Qx7kLF5]~..@3&<NzIv +endobj +52 0 obj +[ 118 0 R 119 0 R 120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R 142 0 R 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R 148 0 R 149 0 R 150 0 R 151 0 R 152 0 R 153 0 R 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 164 0 R 165 0 R 166 0 R 167 0 R 168 0 R 169 0 R 170 0 R 171 0 R 172 0 R 173 0 R 174 0 R 175 0 R 176 0 R 177 0 R 178 0 R 179 0 R 180 0 R 181 0 R 182 0 R 183 0 R 184 0 R 185 0 R 186 0 R 187 0 R 188 0 R 189 0 R 190 0 R 191 0 R 192 0 R 193 0 R 194 0 R 195 0 R 196 0 R 197 0 R 198 0 R 199 0 R 200 0 R 201 0 R 202 0 R 203 0 R ] +endobj +53 0 obj +<< /Filter /FlateDecode /Length 15258 >> +stream +xOsdy>i=}ϿՄ-Yز/:zQ"!:Ȣ\,١sO&HIc;ʬ,A2_{<×_+>D=|ͮ>EW~_|ͯsxpſ?|wO'ť7/8?O3qyL?\a?ޓ_qo=κԇ?x7:Ox:O>xᛧ>|zGxSs<xG?}7#>~>\>~5[>gzYlG9UvUhm9)B8$RT+ +;KUuzJ}*|{M,Yd9r$I,Y.LjLujLLLldȲe'N,;Yd9r$I,Y.\by>B-"#by>B-#dddddddȲe#F,;Yvd9r$I,'Y.\d2}Z,/ǷE,/G2}|{]2},,i4I$}>IsO'iWmwqc}ޡ.:~v{_=yo{dz1n5qܮtoN{ +uPݩ^RonTe#F,;Yvdr A,'YN\drze=IJbYX"ebYX*eeeeeee#Fm[ [%uT7ԣPTAuPM,Y.\bX!qe"Q2XF˨b,,,,,,,,Y6ldɲe'A,Yd9r"EK,<2C,e"Y2Xf% $$$F,Y^3jerN~uyY^YzxAl{.~f8w^:f8%#k]q9*ՍjA,EKRıT,U$KReY+=JuzJzHN5Yvdr A,'YNdrze=IJbYX"e-bYX*eeeeeeee#F,;Yvd9r A,'YN\drebX!qe"Q2XF˨ddddddddȲe#N,;Yvd9r$I,Y.\d2C,,bE,eV*Y2i4I$}>IsO'i4Ykkn;r6l[}l_||3=ro~wmn\wJ+yX-_gY-Ii|_KW[nTvS:Lu4iT.S]Hul)'=RN{p+y%=TTTTTTTT6Sme7<-[(f.S]Hut)'=եT\rRݓ]+.Lj3nTvS:Lu4iT.S]HuO})'=jRBYI5+f%լLj3bSQǽFqd|5bso;|c~fD8ƽ7#N嗗7'嗗αV<,///;!oO//;!OTvS:Lu0iT.S]Luj=HZRTk!ZHVRTk%ZM5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAQH5 +F!(TjTS
S
S
SMSMSMSMSmLj7nTS:Lu4iT.R̓T <H5RBYH5f%լTm6[J-͖fKiRl)m6[̰[[k{O/G3ܛ,ǝfر>*za}~d|_.c~f}L:;;f:=N%A~$yX-_Kj3nTS:Lu4iT.S]G9QNJxT(70000444fT륙G}Iwgq7'gq妺Lu2E:yRT('}<Iu_/rS
S
S
SMSMSMSmLj3nTS:Lu4iT.S]/G9KI^Hu_LrRݗӓjVRjaaaiiiiTuC(Ǻ40505|/~맗[{'~fz~%~͘wë́<= +?~>Kzyr}fPDy^L0
{Yw;˻q}koϗF7'#A[nTvS:Lu4iT.S]Hu|I9/%/wTΗWRݛrPnaaaiiiiTyyMjA8,˻Y-o2eTޔrRݛrPN{S+M9(70000444fTvSM0aTNSLu2E{SIuo!y!ս)多TjVRݛrHLuOXK*ˈϣܹ>}\8_ͽ姏}ˎ=Ɲ1^kmi?o˾:Iz_tS\Z(mMqv\,Or뒇EܺrSM0aTNS:Mu2E_IuK9#)'}Tjjjjjjjj3f2i1ޒ[(f|rS]Lu"} 0夺>rR݇SN`M5L5L5L5M5M5Mj3fTvS:Lu0iTNS]LujAYH5f!,TjVS
S
S
SMSMSMSMSm9zlJ<_-vv}1uϣ?|߽C"qޣ|ݶβ{ShwnAy|RLj3nTS:Lu4iT.S]єFSN{M9iT4rS
S
S
S
SMSMSMSmLmz2[~XwZ,byZnT.S]єFK^HuO)'=T4rS
S
S
SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5f%լTTTTTTTTit`gkuo.|w>?
ϳ~}˛
ϗ!֝l8ΗLG)|B!yZ>(ߧPHw/8߯f +ɛ]H)rSM0aTNS:Mu2E9$'Rl!9^瀼e{M5L5L5L5M5M5M5Mj3fTvS:Lu0iT.S]H=zٞCrRl!9^瀼e{M5L5L5L5L5M5M5Mj3fTvS:Lu0iT.S]Lue{I=T/sHN9$'͖fKiRl)m6[8X2덒c>c<|7?ٝvuL;#Zw~G?rgmKNz)oOoZJ{ N9aaaiiiT6SmMj7aTNS:Mu2eT@rRq8夺WRqM5L5L5L5M5M5M5Mj3նUۚXayX-_jyT.S]┓SN{ N9T@rS
S
S
S
SMSMSMSmLj7nTS:Lu4iT.S]AyjRBYH5+f%լTTTTTTT<̚/z<YX杁xܗbv=|>|ݷ/}ݝyyYZ;7u2T|Q$Y>)[J2E ս;ZB{k+J>D000444fTVu^vzI7$Q=BTVPd9r"%qebXF(bE,eT*Q2222222ɲe#F,;Yvd9r I,'Y.\d2C,<2Xf,bU,eVLLLld7xiHηqFY+ jބ?Q_} >|r_ۿ}gClʝ{Y|=ﻏ#.7ngLi|sAyX-_o0(7Ex)Iu/%y!}夺>^rS
S
S
SMSMSMSMSmLmXsMEA8,˻Y-o2eTR>^rRKQNx)+(70000444fTvSM0aTNSLu2Ex)Iu/%y!}夺TRjjjjjjj3f~~&cPvݡ|eס|,{nWO/\γ,Yw~kG{n{f͒7'{fAޱYT.S]Hu('=WꞫQN{&y%=WTTTTTTTT6SmMj7aTS:Mu2eT\rRs5Iu('=WꞫQnaaaaiiiT6SMj7aTNS:Mu2eT\rRs5夺jꞫQnaaaiiiTh̵ƔeNZܛ#_eNv~=/S)/w,ד7_VȰ)^yf|cuoыi|)yX-_7%ojjjj3f.c{OnEIi|_ET.S]HRHN/ӿ('}T)`jjjjjjjj3fTvS:Lu0aTNS]Lu>7rRgQN0Iu!&y%}LåZy7w{`_|ktg]=͍/zypqoPKzoyůם_kU{9*W>+[(?)oOʛ6SmMj7nTS:Mu2eT('=UꞪRN{J9*Lj۪(QEy7'XayXnT.S]_SN{*y!]PN{*y%=UTTTTTTTT6SmMj7aTS:Mu2eTTrRSUIuOU)'=UjVRjaaaaiiiTw9sM{FY3gTnn8\榟>>}ݷ|<_<GcfnGayz-ߐwڒ7'i|Ӗ<,j7nTS:Mu4iT.RݧRNW_)'}T鯔jjjjjjjj3fTvS:Lu0aTNS]Lu>rRݧRNWIu*y%}+Lj3nTvS:Lu4iT.S]HuJ9_%/OTjVRJiRl)m6[J-͖fKkyo4sc?'$?\s=|xzw=l杇A^qG)wDo -M fXϯSŰXQ,EK}7U$QReeeeeeee#F,;Yvdr A,'YN\dr},b䆺>[jGqK-n222222ɲe#?{|QޫI(yX4eT#)'}T1M>r[J{.@6SmLj7nTS:Mu4eTAyjf!,TjVRjaaaaiiiTwmh~:x,ls;kyCt'x,+\w߿>}|뿼>~p9:nAn|g֝ucE~Nɛ{:i)IZBjZ+jaaaaiiiTo7~n|$y|R>i.S]LujAQH5 +F!ըTjTS
S
S
SMSMSMSmLj3nTS:Lu4iT.S]AyjRBYH5f%լTTTTTTTTuTF)Ӟ{<uwC^Cc_W"ƿ;jԹV{O 7c~{i|EEEyT.S]geꞕQN{VF9YTrS
S
S
S
SMSMSMSmLmչ-y?,˻Q-oOg<-7eT.Rݳ2Iu$/geꞕQN{VF6SmLj7nTS:Mu4iT.Rݳ2Iu$/geꞕI^Iu(70004444foސCՈGl+s< q>|JXk1^s#fw<-]$˻zXo.pay|QwYnTvS:Lu0iT.S]HuO)'=TԚrRSk+5Lj3nTvS:Lu4iT.S]HuO)'=ZSN{jM95Lj3fTvS:Lu4iT.S]H5R̓T ,TjRJYI5m6[J-͖fKiRl)mt9S1zkt<enc<|Oz>zt^/ty>c~Y^߬kkβ!ߔz
uR={ATw{?r$I,Y.\dbyu~Pe?dddddddȲe#F,;Yvd9r$I,'Y.\dibyٲuˆ}PeU,/AMAAAIIII,Y6dɲ A,YNd9r"%=ˎ|Pe?>*& $K$}>Krcܛj4:7ƝzMxlc_aw'gUwvc'y7cκMX-_P,_(C}夺T_>KJ/M5L5L5L5L5M5M5Mj3նUG?ayX-_jy|R>i.S]Lu>rRG|I^HuE9#('}Lj3fTvS:Lu4iT.S]HuE9#$/T_WRG|QnaaaiiiiTyʑk}5=FYkκ{#=}=rבӱݿ}x/~_a<rA<͈xl;Z;n'2ay|QY>%{+ Ay!ZHRTk%ZIVS
S
S
SMSMSMSMSmLj7nTS:Lu4iT.RT 8H5RBQH5 +F%ըTTTTTTTT6SmMj7nTS:Mu2eTAyjTjRJYI5+f5000444f{sZOv\8Z +endobj +54 0 obj +[ 204 0 R 205 0 R 206 0 R 207 0 R 208 0 R 209 0 R 210 0 R ] +endobj +55 0 obj +<< /Filter /FlateDecode /Length 1224 >> +stream +xVr&߯`Ozg7yԤ+7,Ľ"#}=$'>}i +}Ҝ9}tɤD"LcԠIQVy%@П'y +ӧ0Y +pFsCѹAnӛqv|/QF8.@`.d=\}fc Pae +cE(~$0$14}/ +=-.cx{ٮb17QW:;2al+M"vТ܆X~j<+>BŞ,7\dȊpzqY1Ypw̬h%#dMQ
Sp^/ړ=ϴWwfYljkNmW +KԸ2kh<siT
WB.3=<ZTg]P;#endstream +endobj +56 0 obj +<< /Filter /FlateDecode /Length 1572 >> +stream +xXK6W
`S>nO]tr%bV9IKC/iS4p/ge~9)>'cmw$$[Ҙ"")ɇEHaIRT{7On?`[['87IT8\kp<mqvGHEe-RR>oK/'/-D^\2+w٬ƶfMMr<K>M#fd PSM"'NbR9$ +Lm_V+-Vf(t +f +.W1ɺ"Fcc87z)ϳ'كDuh}o^hspL^{L51Ϳ[6n
:u̳LSl;EEq[>D<lhOcpIn&I14ZA&%C7dn"&Y_<vpSJrBpaTl4 +bg[rӳJm\L7v928mlP#8v~߉gD{sƺ6o\{o.O]d;ݭwDCw + +? +q8peSg-lSz;cf=-ꄪ/(Ƒ;7'"\ASA.gy~ɞ<vbP
e
%lDnYZ1XUhg@xSswc%߹Iv.;wrM''zv-B;(6@? +<On8_6ڳ$wſ,endstream +endobj +57 0 obj +[ 211 0 R 212 0 R 213 0 R 214 0 R 215 0 R 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R 221 0 R ] +endobj +58 0 obj +<< /Filter /FlateDecode /Length 2926 >> +stream +xZY6~_ĕ$N)cL8$(a"doK"ɛj5F/4 +I +N٩?_}=7ߗ ReeT#Mpji@eW5 ߳2e=~k)4ZD/"wыoWf:QmW(hQByY+i]m'6wkx"Uߐ78U]HC&J<>~Hqs&%[ 7I +:XBz{&Rfp\#|6-uCǪ9<2TM3.tQ< 2?~gqE,(q 2-y۷e)#Zd&I\^o%ޟ(vCfT'>N`EOth&;0,ia!%6۰~/f@>A7YH3UX\m{`]5',e{f}YBöoX_s6RK}ۦc
DoE(u5/g6 +F%h(s}'¥qK# +2<'&diھT2=n
ՑEF2,m=E4)A0+{I>Te I_Kś[;i1pI0i9+[<vڃʉ +f2@mБ'6$Qn mȋځ9eNtqLbg<i +X^r/+ǒ|dܭZT}ޑUFmmP7p]Md=XNj^Dl6VDćieɁug2U?VW;(T} +AL0# 3&b5I;̆j[MV pf{b
Ɉ
:0s-\[i6-6Z08U-n`Hxޗl{ +ٚ +jAo +F>ܠont|y4xQۮZQT6l:Sr8++E˄Xu3&5x~D;>NODoCX~A1 /u{<$hHݵ?AvA&|wↅÒ J5[BF,/ +=+Tzzr_w8霷 4uy!C}*^"+5un*1y=CêN*J\i.3/ +FbU#X7デn㻄4ǸXVTp-9z2D0]ډ0f`dx+mPGSu|G٪+vy;/7Ҡ8Y8#:S!(=<dv4}f,..>8S#вHP*<)koџbp(_|q2 +@A딣2E$x D݈ø6li(: qo,58d_8ev$@m +W՝ +NPx!]uGG:_=eww-A&yJӘFx~Z˃vMyNa|t#&(E (ll-X,vR0̛krfw:T!_TW40G'E&՝zZDs"ƃm[Du%$?DV)g8ǻ>5cG_O\GM5'#;Q5#wK&Q7sn/T2B|'\ۚV}{˪HcgG6vtm!@^mgъ_٪j(OF>o:Z)!T/hhU|f߽gaI"26%$NKo!N E% !/]6hE6$B8w:"[yendstream +endobj +59 0 obj +<< /Filter /FlateDecode /Length 1447 >> +stream +xXKo8W)ݤE[,ʢ#QPHZMx!9/("Yaqoyebe%)1t@NPwD4Pa6G?_8 cqO@^!\?AśQV[E4yE(,*OVMWV!^oM*^U~z+Z[\Nc4m0G>'ILNWp|2ѭ*Di1|A$4I~y8?6_|g0j1[,Y/ bj%aqF{Ҕ5p`%1EVHXaQ^sJȋP07_
}wĠA j!ymQa0e\18%-MMWkYo]x<%R]gҙv3١@k^W`ӅLDINT6/Էo(|vFT F͛>%Z+U;x1 w],1dƴ(V*X*[bYEԀ a^TY$iy<V6Nh<R-cpSB֎|s]C `3I?=fހVx&#up$IY +yb)R\^zӾ=&wݐsK3(<M\.ux=N\e@ecx<`g+f-<>7-,_ైbZdP$1͡(3{N2hȦnzE#R=lٖ#W$d$iS):xrlt̍۽6[=7`(>UT%tW<Ʊ!U Yj:A{+˪1H ?)GVHIqFwC.7ڡ3tFC1 +r\:33]9v=ZJC[jf@(Iq288Tqv82endstream +endobj +60 0 obj +[ 222 0 R 223 0 R 224 0 R 225 0 R 226 0 R 227 0 R ] +endobj +61 0 obj +<< /Filter /FlateDecode /Length 2796 >> +stream +xے۶]_3+ [g;IΤDB+6)j6_߃;xvnsuCPl埬Qy|58ԠY'ElWGoi7X\6ќ:q!/Dߜ(%E)u/1?r&MR-?5D/>U="FnGc͛$D~<K<.btD^_?7?/lqӆ\>Q*B1qEQZ~E(F۶nЇ?\KX8"PMP4t*1}:t4v?h<Tѩz~D;*lPS[ ~3)Sj +*)ӌ)&C]wcW$InD Z)[Jx)@A>}4esa +)"g=v(jݵJGoV,y +> 頹ⓔepNW¼(ɍR8i_* +] +k#l0µ-U^7zc:y94.!z~hP6A?HKs%Q13
fj>2N).b9:ծZ* F5OSV}M8s5(މUz +P3.49Ul者
H=}+$7ɋ5K;u1J6>Ai4CG)*7ۦE!B7XiيR~[aR7O@S-&s|H"J^֑:# M
e F^V<L6 #VB}E1;Cu)F?yxp>Y Fx!@E +E77ΗSJyʨ0^(jaY67a W0(7"LVf V!IVu8ufF0f[(aF,IV>$HhnNHD>̪)gM=9NE +endobj +62 0 obj +<< /Filter /FlateDecode /Length 2639 >> +stream +xَ6oiY ,x=FlaZKcf؏""{.|xąO$6#OXxG" +H)VY?Bp"nK>w.N2ؼ/添ͫw\rw0! +c' ,KNgUӋ
u]G7^~!w8xiL%C/V
hJҀŧR%MECDE?\k{1-r=$#hN:bpi/{.juo,ٞ$N8%4VѳwLaų3,6HjZGS~3{vCh·fCQFN:{hm:oM_ڈ=Y1YP8ThO1r4v{ *y. K\ҥvϤ#"^8ifYGK~4y(FT<Gd<g}Ϫx5ز@2O}_|B?u8 +* +0 +u<)шJ"{.7"57526`m@˖ѽ+w2ɘ74bo8n`:>FWSz1+-&w"xtYDt$$Z^ΓY+<eєMjP0ӲϚj-)rݳzn%`ۘ5g'!%,t9omq<dR *~O 6kâ%p}Yв(IAeխ Ժ 9d+3G3kU9 bʪ
+ +K{ZԖ D.2l?wbHb|b,,D|[C6RK%{;¬61r=XKo[fvZݱoEGPo_g1D +VMn8o"RW<_0g:l0 h+A)JM~ߦi FQm->*Z,Mg
= mvAc0E0@{> Fbr!bԂi[3tAYC
jШCت/$B\_5fQãYWTX<?N1"{#ˇ3}_}~]'[tF&*]8&R8F#X1JWuFDbFa ƏcEtd~lqږ] ІxEv~>r/uL\dE<\LWm
L
8i{6Zյ~<Z_
g0;}C7CHeR!h:ya0FX̠}Ed&@C2*Ih֕kaa-}GF-Y{naMƂLq@g2qAMxv +ypGC%!p5W%֏'qSqDž bq +r!@Jzt@;pXʎ-C3EIr|o8?NVݛJA%d*Qq9P8{hAj6g +z5u_y[؟8ɧ+ċ~+.HW}sq
,JNmLϾ\4zn" +6tŃ:CFmhrNjX:;"./A<\ݳU8՚[J'G\iBypvѻEI} *KϐE϶g",+7A9fi<IWrP5 r|"p#D4˚]o!E+
β4to>0l⺕6+ +3Xq"@.)|9p0(v=ŞႸH<OsE_>/2%!
>]n7~w|$R4\3)`,JѤi"o_6T^V4I؋ih{fO',I|-5Ȅ͘ab+C</[b.p/8&<, ^K^Kb{?_QBi/uu1<gI?<$IxF:&* +ͮZGu3e{a{~lis*gx,t}HAMוir!~-Mt_roߖ-glӽM߹62B\|%Ђg^qTfendstream +endobj +63 0 obj +<< /Filter /FlateDecode /Length 2200 >> +stream +xYɒ+pLUjUCx$g!&&µ +މQL +RC/صu3LQ/h{3wݟvf(ɻ(qUUV$}åmy?~F01 +BB8O&49RHhr6A3?5Mj{M;"oFZ1M|;1\N2!w"R5qH%IyOO뗧'i"_A$7@[gI#`_p +ȟժ}{ȚG[k㲔I"nTm$@pg_J]nMrzQȓ5+l%?Ԍ} zުIvxO0 +0vBtlA +VBfr%tPQf9ÃHZhq&rM߷-IY>YCf7ӁB
xޮxɖ?eLkAt
:K=F&ӁgZ_ض?ݩ-ۙ+H?cbp]sI:#zU\1rჩf-M+bped:_ +< \ ټ#ٷ^G=YDQ ܲ!/)Qi\i2x** -<YT]+~z*fьNTMZy_Α>hZ +MkpxƔPp%mU0OVXySByWӾw +<3WeXqQzb}b#EŊPo`QAP*Ӝm5Gps:=z(s~M@PW 4lx +Là
R OCx|6`E +endobj +64 0 obj +<< /Filter /FlateDecode /Length 3843 >> +stream +x]}żu)r)@ۻd>d rl~}!Cywi.fP/7Rg?yӤ#gLJ3! JI0G9@!A +YK<hiq {5_P,BY6qE +mDSjTÃjQʽf2+S_KAƆ'DLpjj=WÈ +P֍!|L5{wϸ;Gq^.6m;%X +GG(3YRHߵ[Apf&d'0JUC2~K#ƕ9U2_ea-sv ̚˨V^-B9K1ic0XAk
+湛(@J(l(ϗ2,keAf}F^OFvR&&L #i\]1-|U1m?}bVrP'wo$eɘa, +,]Z;U#Yʡ*6]=:rv>gq>ĬGa:aks`uͼq_
~1&X?Y3A\@aaOj̓ +9l +ZlLӠ1Mi ;}jG
95F
qlv(\mM';&+}80ֵVik^[V{<a +FѩPS)N!iP>tvO`d?A7ٖ.ChoF2w3bdgtr4=>4#n2s5=v. XTߎu"הl5my7Ȳ(|su!ly2Zҟj&Πo2]`pʑhJem +#މ"kZCФã8.dxSW
DL&7ِQ2ʂ!U;os| *S{j|]|_v؋D.+҅˦~TGPb?>Qh +lg +!MRBpA;Y:Wg8"Vh<QUݏڿ<X22_طmD%3ՀzpeAebF^F/wiK`@PBEs_aQ{Йwmۭb\8&.Es1+VCHˈ_k
?1P=hBD*ѩ0=5Q,N{P~OY"Hvhzk3&ޤr#ӭ&¢X-܈h#H7"ۈ|#(7Px=ъ9!7'YFoq2[e3)P/'$tMBl[F}Vor"|c"c'-4B`\C'!38by)qKD/``TLE#7dpH},W N~$ncXItIfT_uӕ(-ΉwD>?#5薮B-w,vOy}a'҅wJz.j շ _1S|!%3TxV1|1"PCLd"m6ZulGqLWգ8_t:r-X1K +{ 6f~߲:Zj[#.M:Us88_xr궃[S0ɖ)~!Q'ky'VUEㅢ%:+ +GH,`qHV? +;^жjwv>Eo``;/_&I +&B6߱G;!~+Nz +ڔPvjoWSB;8PEůR2(`Ftd_7";?8XkmTϦZ"/[8zAǍ
EY=^`0;5stt]@W[qiwV)+^KqYBC)hQ.cְWpd2㢜R/q졠ŖKݨ.~7X.KDk̥P'T.3Dl-+"Oim^U
_yBF07q FǑgr<wR],u{gt̋Ahg߽ḭIռqHr_zc[,C +j+0*c-*-."4b]X2[
JiP>;NV8X;n1nLsqt+L {G30sM_m("1pKNbt1١cc"<9ćrzƞ&-"Њ6smJ{KL\ +Rf:C>.u +iWCYpN0J=$_hPmx3UP42X"5 s$[Q6EF{R5ڵxEe +endobj +65 0 obj +[ 228 0 R 229 0 R ] +endobj +66 0 obj +<< /Filter /FlateDecode /Length 2661 >> +stream +x˒6-vAʇlJ6LU1C&_Iq7NYhD?Ax-D1'|Hĉv[AH<Ay@rҭ[+1/@F&yæZ?6p<my. #{k"H8O$yqs*x"~ǻןÿ6<=PC+C+}{h{Σ`'ve=1QZk1Kj0WSP! +(Q9yfLjkf>~G^@W@]BVuY8^ʓΪhtbtC98>ƂG<,v +ŮGi TOYyN +dExGHEsNw,9Ww=t-sjA-<v\7*QOK/D,NK*K]zm<2+]Y99}Ƙ'Y(<e 9zsFcX"X? J=ևH,I<fXx>}OQz#EtĦGJcI i>`s +Oepm +j_l2v.{N_\v+췣-FJomZq c`$x&S#2P蛗ngܤ7aBb,"!4xM[<P(>m렳ҮޥKAs3ف[i}ڂz ؍KKkC7I4@0 +\w5#{rB&)u]Ԧ]螡 +X</T8^Q,w+=^8Z 62@X.SQU5'$_ı-Ab_ۨKׇۡʣޟB +/Գ&z<e}U`Zc"#~J<+p<T sFzZIfOF9|B)!m7Z˴h]ʳ:GB/h
MXBڴpefaAVYHsĄG]&=rֆY#\`4KLm +<'z' xq_Ã_D Ye'O!1B.p{ABFB[&`(V +tt'g2vKsK2z*qt#.ГpI]cY) +^WzA(^DZݨa<$-)DRϱI1mcwU"N{H7ENNŋVbaЛKWӇJj/-&|]4o?^k/f@Jڬ{Cu;k&gQ)80`GNV-:fUCB +!2'ip#͡K<,)*b,yJC_yN(/>cvh2T ,n~s/C?X +_D'@8,$<q[1+GIO +xAL¡zS+{Wq-FkvIs +1Ey<X1Co0An/5ߊV~v㜚+@=:ؐj+\:@9Sw+,XP~nT[x(Îc[@f=X>ãY +VuwY8a`irUsJ=P
NN0 +}(,Sls#XNR~<2i(NKѨodwл/ I;m<;~"M"a?endstream +endobj +67 0 obj +<< /Filter /FlateDecode /Length 4054 >> +stream +x[Y~_ovG +~'.|˯P.7+{_{Ѫ(<Iʲ(cTEOc߿}w'0Z-}=ϓiL8k-Ww#8طФ/ +$o#QLWzS_bʛuFշM>MXQv{}]_[7oPuWt +-:^{[P|NIwLRdj'V*/~Q}}Ł<l>8Qxͧ1ucsueT=^h[PWq L1,B+&r݀SeJ5s&==*X4w3BVAtNܐ4WgC?Y4cP \c=%U$i%+dنW.g,IfyIg!+#.r{1sJ,zo,VLfA*G 2:Gڊ 京|=D'-UfMВY[T7Ej읏/E(<҇vn;{
.SFTءBt:9ur?asϾjƲ4jg0Băǥz Kg ܥH7w3B?!隦`M[XX#ߋ`9?Ҹåǯ kf"iN\M+lA};i;5&h\B?oDpbPFZ9_boC'cP-V&<,%v *h Y+`H;!C$i
v*!ZێbqKŅBdТ!clM>r!zwNuyԶA}[ԟZL5"JGVй>WNɽ<xzޟ'qmEUd/@{xΓ3\@/NW0`(Uf%{ + +.YM#KovT{lǝ=Z
mx{W.C+αM[
<j6yggxhC:EGY4Ց΅*f)DUZqnT'tWYk!E8M^H~%vB;M"ՅN+Z̓wpT^3hXJ5{rvqU[0쇹Y,7uwa4S%&qfXG*K>b*MΒ4ciY lezgP[&<ԈO
j]N<,WpK5
8,tLW<$VXe)L +I1ƃ0T?
MߏgWK˽3um`}4BA* +J 8Q8f38`MkPeHq?g'ܬ[rR˥0(zϺ=ތ,WTmjYY*S39 +)9o,oBjp(ŠM6j6uһrLUyс§tݟ,FX# +i;.1:b_؍ϵ?h?i1Q;Q|uH(Y.gSҡo,\$ـq- jJ".'rJgw< + 9Tz1۪\ +Ңd|sQPL]7=g>[Ô# i;p9p\f3v(T.
/J=*c9#M 1Քf^l茸8=PۻZ/=%A1E?i[~%H*-)yfQ +FFT퇑#YÀ=]+,m>QL')io]==f[E*Ț ;R>|eK3-i9earV&G(敇fx +Qs 1aPHFukbjT .HLA`ap:@O|jސ6GdXh0\
'SX'T4bk*' %p/IVUK5dL
{ف8=Ii7`zw`oT.Ɖa/ +@`7Ar)s-4նq̼U@s{ +!>}w>a7F|r}Iع@)VKr~Gcc'"!ʷSK%`%.4n8RhMgNDt檎#_"My2J9TY8Ctz'ծ;!^Ԩ8YL3<Z4iYZ*7ep-&Eَe/Mi\BDd+Mjl+@smS}!"L٢нhH6e7+
m%EƔ9]{S0S*\(~jWF57:jjpZTm&>8A5.RsSpV浀v=jTf`~֩+![W?-QyQҘ~3t9t"5V:C AЍen%Uكqd{o֯l1yi!J?M +0qa"Nj2+յLV-g̀jo4d2y8|Ɯ<:it4r6,؍ +endobj +68 0 obj +[ 230 0 R 231 0 R ] +endobj +69 0 obj +<< /Filter /FlateDecode /Length 2669 >> +stream +x]۸ݿoMK.E +.p<m%q}R$P M0grԷUDBV?Eq"R$
*IqFČ3ҨU #E08?V*$[}5 +4ѓf.?$կϫ72y\AUUV )$Կ<Wm=y/ߞ'$Q0Q렵!t'YNg&VS EEpM;BgF[1M*v> `rQx3?e(*ٷ )|`5)B|(TQTE-^wr!/L`ubw
q?VZk;<v5{lݳZvѲn7 +plG[7^X`Ҧ +*K<q0ҍvOIjk{s!m'm +6#*||Ty_ fzܻkU'ąI|pϨQ{2/w-1
Pv3!Q;@1-6
ːvn_~6YYWNg~-QX7.2}^1;.uTy%Q9A.P0j{qcb%^i ݮpLDchѵ' b۫jJo5劧t3N!u4+䭲 +0JSm@5`w.P ; )ᄗXeTaWmCg34Bǡ[;D1DF' + +lGeu9aiqeYK zDU>ݹKc" `/Ve$֡~]77'wZf3^[ SpHaȲIX4*gvJSC/ +endobj +70 0 obj +<< /Filter /FlateDecode /Length 1633 >> +stream +xXK6W;c1zK>I39ds%zFZwiY61 + +Wtϝg4?8FZ["30W]9Or.Z^D&֞{#̨Q8KE[hxL%Rt.DpZAKT,,[X9y-sY[3##;69O4T +l5>Xgn{,T .-^dr&fQb HX58{jn((WqTZ}yRx^dW7 +}2}d:7{3 N*+@sđ#'|<1vG=>3ZhλQՍ(o+~ W9γl!Ae5
\&ˣuMCeycvqmZohD$0OpJU;;oќM_{feAYqe= L|M!LGH0BNyOНH42!NnLͼmuO'穨<^09\t^^iEPI Ttr0Ik{F
M}K9(09QXQM[WN + +P[Ұ9562#5[5yh|h@Ŋkh7j$[<bSNL~ɾp:W%*^eΘ<=CQ邁,(pNR,XH*Rr1Q4I0+}km@B?=^ pe.wmY}(FwGnylX*/
+eendstream +endobj +71 0 obj +<< /Filter /FlateDecode /Length 3350 >> +stream +x˒>_K*
+&D{ln͘:'i8GlL"zgMs?zUFrs7{`:?wϠi6Sko3e +(\@!R)Fv;G33ӳc~Jj]v\Uƹ2v4jMP|``;TrS -մx#EA;)AV4
!HH+- k|oA/AstiZ:x..gO(g6GX̉j?jJ&:6;0}A\xR##![yL*S<HgKnWլ2Caa<q\a2^ȫh|)VT@5&AL>ϩ<2hf60qJ5=.
|Tv`kEa^t4> +5hu7vV_U0J[^xUU3vU1*v&J8&.2c2p:{[LEpfwW[pku>ka-9wFdg:;r`v`8C7$%26}iK\g4WHXX1ւ 8XlA7CΊ4HYv+QqSUa;miF$1`0D"r8ʪZIV\l<{y,IߥNҚhjW4Y~U(v^N@0tKv=ܚ}Zڃ88,<jEWqR?ѭc{=ncEWʦ&x`adMZqH7wlTC1ձk߸m@'ME.hPxYySٸJZzC-#R]W? r)]5jHyND2lUJemgulJOidY5f;1ݻ؛+dHX%\G+|H`SEDŽfk/!dd@bDoC}$S$8!Йj"̑Dԑӽ7K; +vOYS4Uc/(0TNL}!DzϣGC+pᰬ/~i>`3#z:zE0Ucc.h%c4OsF/ÅL{P4493,}
40jۚШfc+(e +Gk*
}6O?b`ᩆm!-;Ft~"ᕘ;8WrMd gCׂ%` +'7J,jb`aZmb>+QLTPiq/`&xEvG;`mVɣj0]Y<؍xA@oU͋3QdM B r~vwA on/Ptipvb Auc:]y:bd:RZUr?}S~4z"fA*HE6!\"\;$ xAwe8ϫ_}dpI-h/J0EM] +`P?b%{>R<GL3^^f &XJZ{&FAm:{;J|$\i+oaW/NyZa|o<s+\2[]'y~<dVEZo~}'bVM7NToяa?1endstream +endobj +72 0 obj +<< /Filter /FlateDecode /Length 439 >> +stream +xSn0+xu)ɪkѥ@ءI$-'YNbGpQD||"J({-y|2fpi0`#D{@N\,G>Gؒے\/P>] iQCpVAӗVNpeCy?^,g< '<ۇa` fYxcӅ(.dy|NWMsϋh2&#(R֮3|Hej\cR}JثX-֜Q#pTj&4Rm..-X9"ҜT:ykse-Tk Z5:Bw~;yp`;N{#فzQog1m[i>G]|kTfIf}endstream +endobj +73 0 obj +<< /Filter /FlateDecode /Length 1402 >> +stream +xXݏ4߿\;N/ !PxoC=qijd)/3c{7va w'כNI0v(&\ "5qtD*HĞ4F~ؼyapi.
#f}vAȃ0deK +H!PM<۳(c1[F|=46CAϲm]Y!NVE{UQiiO+ϣ9=eM=ޫgV=viWr/q[9B@3d,I +єP\'`<\ױ̒/^JH5ꚙ["M9eQOD?J]CF^3b,mFL:QB:Ng2ĸupљcY<EW=f)x="F܂٬AE3&b +pՔMbsMAu}Rx:LC/[[i.(t{5!@L͠lg*x7XNyceԽ{rmL}PyCK)UCn3j^|s$7cCi3OzδL+%vLEA>^x7&d\[Bmu1o/ؠ\4Dp:&mdHr5B5&B{ +
Ӽ1]j:{OHQv4+Rxõj^櫤ֱ7 +endobj +74 0 obj +<< /Filter /FlateDecode /Length 3768 >> +stream +xk +}KU(py_Q4IsE>b,/<lɋHspH?AJpiqP$AaR ,L0M`zEwM]tr} 8HeSsI"ùȳr;8KwT0%Pho=Ա/ B Co95u;Qxۻ/˃8 +)P2Iy=xo.NO6V4HD/t$h!ދ$`ȱ}7 s5ɑtFQXMdaXiaԪ0X8 +,,MII1x$$|'NC;MҍV
Ƀ'qWVg86n(
j35Q~alմV6k
rׁd0LL8N7Gu({T`ʏN[N<AÝtlǮ}ܓ
xA,Bf&X,:jDžY⨼N⌊>$ۈQCj<NԬ-ɟ9<8#$CG vw!pcrp^UR;OQOV+6ԗ҆D1 +mQ8mӗ=#ɥ x' ɔ`ypȨvӉ=(FD]K7zv4|D
_١ 䴼omy)*yŢ¢#]"ܸ##h 8ySU!>8Ԩ{JDVYjm']Fon6?{Y].ͥ<̀TG 1A1{]ۈ_7y;&yY֨B`1葌26ӧl +kG:C\3k_FZߎTѦ
`-zѰ+0٤PebQN W6;u^,ڒ3C#ڕxHGDkPV98FSs PG^;T>Z*t,lNdЭ܋'*T3GHNLHc0Ăbv8_xbkp=[GjBzfReQgtC +q\W<E"}" uINr25)LB0c(wsp!r>!Q\OSAdVb?vP-q]._OF(t,*aV4uAuZ>/%
w4tԮ;h]zöZpMn5ZȈzN귆JEځB o<$eYYU{HSJt3iQ3<4Ӿ3Yמu77D!ρ-N1`.-Ns]QmmBǟ2B(>!zSO̓<ӝxtFO'=i\LmDžW%hg_'sq<Jwg}= +TWyAun&r<Xk,?jkӶ<yV6a}j3FBG4uRRe˒2L+.ƃPSYFrCNGCvh2@P!R1g$OX{s)Tڃ6>N}$L(7 ++-OJd+l7c;g)eѕ} +5$-f;+r$}~fEc`ˇAchsxo|꽍Nb2髺=/m'WGRpvq%_MBvCb`cJo"ZBL-Ƣc5\qM!*bS_nMXR_WL_~tM՞y!Z믫EPfG?qH_aYEU'Ev֣qMfPy>rq&ti$ԥ?75@֖Y6"Y", +mĪdY<ұteKL~ՕGl 3G<(/1}^81L-TՕR0OŵԜtIFyQiv7mU.ib?wo*yrƴn16)?AELkd%p;j|w,M7!}kfp*k(78&cC|\>@TFId;m +x/Uf4QXA݈(v+>K.DŭK-tt{#9z+4\fATX$6^GA(gm2J/V +- +D'ɩ-oC} +!>?!uozK^Kaۑ!CoɊ^`8.8Ί>Vf4} gel'LJA$t~CFۊ4ϗmX[DZWyЫg#l:rA9xjclBGy2367t|YCOU~!fR 6Q|S>+#<}cP$brCSz(0$N/{'J,$% ơG" ]8ycTz_w,?ªȪx-?C8m"Cg$ݗB5 GPGq7kun'AM7IwYUI88 s +PZᝎ/WG)hu
T3M@v
jz6llvK-Б{aAOKpF42ZK6`R9˻Ϣx~k~KH]B t?`'6C55k$XĠ-m~ +endobj +75 0 obj +<< /Filter /FlateDecode /Length 4504 >> +stream +x;]6+(;0l6L\U._՝_HItٮE$@DERBQ;}&(3BY )v4kD4Ow]_>a]xMG6}.
dLDaR¿((Dؼ??N
CT>k%[7/}?,`
FiN0{px5ƈέ?5&ʃW!bj 붑ǀ&df^&ΊEycDY,Uw` +@%+TeV1`_0O{՞aЩׇz2A+ccCrRs՜VuaSee$l1/9=lծA0Qbgt=T;2p|9szhD09g4k*.Q>V`36Xzyo=WpHaL95cŅD3HRʡN+cOI^{5Vilp6!7qJѼaI*bmeKQ `
;lPOzR;@jEekv"$X@&٫A
I \DI~:*\<,ZbXgl8
1pZzvm45/muwU4MrWsߝ:ֳZGqZ +-) z}Rdu]ַT!Zj0ͽ5Pz?aAsWη`nTA`{U7,D)SVf~ލJ)d*NtNFxF'i?d⊨ԏ k]v?[ +.SuCf;A+z +R! N:mqo(T20(#MfyN\!D~c<O>^A4:Q/a`aƽHeH F7/AfТ1=,;/ ڪxcÊe
T7Čp +Ɏl]PvG{Xp$S2<(&Q7b4:\8xwG@b\800|d`uQJ-.Vhx +'CX
`k/^$.DHtu\lP^sQbjK4U;wݙu!jﱩ/[Ee8)]ط]SCGPMtr=C}%
.6|lgu8sUC+[E`
N%v~p
v7}8l]eh +< Iۀ*0^>yH|@Ck wEq +A7(/gqM&|fݰ/,pbU]VtER +?_ꧪ1.<{w0_ Um+vNp@
Z%r +7]^HkXA]<[:XaU@I˸,ZQB#/Uin6N8mM6yNzcEk@̧W.#ivz&cs^?`%4_В^ʟhϴbW$ u=Q$EbxشmFx>2cni[}zڈhsƥ~2U?@Ixؚ%
Ӆnn@bvgh/^}#TYy&"f1tqF!uhg>a{w1Q_hdF{+bd<irACi$Y#=*utqw~
l,3o
~P~t{8y9iDfrfB7x2MWOo1⛃ +C; )H@,YwPo^!c))ke+:}ZمG:ITm3@4ʼ 8&Ow}TRQ)>IM!ҷ*6/G?(JC)`s< +f +]`R-Hҗ:R8\ܯ9DttV^Nɉ?"x2[W_}09X0ګ98^~(ڎʨꆇ0D/K7A[Amp'2_b9_1Gˮ<|da:+2S%Cԟ3H9ہC3=G3o-lǂfcK8)qh;=]r&k1~]/'b2UA5!HP-V ԹרCX7FYl +t1Vt<yްU{a*OTawĵ:
}z࠺O`&҂~W8@68!V4ڍ9%[z[sMendstream +endobj +76 0 obj +<< /Filter /FlateDecode /Length 3952 >> +stream +xkܶ +`Y +TrNK15tuch!&|ucy(^&QG~`}0060+V^*=$-0#Wf[O]0jg>Mzlx'iݳJqH$KD[g"#Yf첶Es֩3vZti`wZϬѰK76CAGf]͡hYI|a +IDı]UaUk[:Zߋ)Q<_#s=E*
cU'}}ম$& +?D|֛'q~88 ''ޡU{aʊmE5(358Mp3j-u=6hÄcDZ,!>v +ʪG!ξ^@a6$ 3. +o
wE<cj}%M5X_klG{ʁFsia4+"}O/m +Cede#Dѳx+c@ i!n!lPJ</-6`\A!ex)HL;-Y*t7={Xn9,^E Jk>*w,74Ǻq7gݷ`}F"47xY:p
{vNfkvn:v24Ɍ}sGej$]Mq#|@*(ܜh.~ +A98lؚ-WHB9ΣRgA"LaxӔZq!x_L'El5,polb02~@?*a}9Wq SIQBbֽ(vs"_e=bO kٓD=?!,iLu+:|=.l^Hlree]:0_ +RUC&@$zϧaBv@7Q +brF1@, '1ya6OnF)~kxSݛj"$"Vq0,DJ$ژ0T/S&f@:0r 9((+xJbqK>#75CZY5ys,TsT,^^
ѼUe1dRiP'0Ӆn6|QO N哆)mO2[OtD8"]}qhyf<,aW:E,h8 +\_:xmܳIukyaqj[:{> j4bZ|kĠfc" T3j m +L'W,d" }m;`fC|X\(!gtA-[!̈́[!,~MJE:fDӆeUR`N\/v11maMDlzPPJ3*y$1%i(bqа%c`ZƘiF)p@CglS:ߡS@`ΥD=EEdzw\z2Q䄆QYE J( ȗ(8Е53aeJ&;Ud3
cӽ[ +ŝU
(R0K5Yٿ¯}cTjfQq0 + w͈)^Z$[Azy6uz=rXE1S@JJ#S +k:K\CFv|[-k/4~>to"#s2rOVXV<U4ZjC'=}]c~tGe:CӲwψ;UdDBJ9*Aha +<یz3NfI51],iVEeNL<k(q? "IUMBT4[mēRVVgF.`?PY"dR6y9rΖ9)y\F,z,d%"R^Yl-Żg'H'~w羺?UvXwNrT-8\]Rĵ;ZSuagLyDE\,tXj0JV^rǵ1rk'V_zG;a@GDsq;lc\tƷTDԠ$QQeMnUKn>[ay6O1\2Kڥ?Et((-3.
Z!vԕL]ȌR}/?(uS}=Q]=(M#j`FΫ$\9
N~&{h1k1q-KTZ\E* +`kuv
w-jtIcJ ]m 3u`A8Ԍ9h1vʒQeK~ +v@WI\^qKY5m( +(HBG:7oe͢,1]'אx^UmE/y8WS+J
wM\W Lα^eڭqY+HO(G*H2 #>!Y|'7. TC*@lJIG']:a:WO`(0>e +1E;伶«)V?P(LeݠK/8aGلqq缹eHKXT֚GQBOOԉ]nuRK@ r8)❉! U(&mք[|a0a^? ˥^ C=|g۴cSpJJx*DdV<-2yA?|IOxc]Z4~4y7 +ɭvm ]!P2kLI!>D(iNblĽy3GϹeQOK1.09=8_D:$aLҴܟ} 7fe0J{rG9EO}79[s%D +endobj +77 0 obj +<< /Filter /FlateDecode /Length 5049 >> +stream +x\Y6~_ovodu>Dmz퇩 SԴNx~Q(A ++b 8DR[9\qАkb]A>˂9['lUW7ȫT%8Ys5 Nå5mT?^mg:}Gdc鰛[yaS=BH^`ue))bHڷH,Ƕʢ)(^>&Mp~q&h##(;-3eo`܆შ^ݮ;tk%A +z'ZP:mA7j`98to#D=?TΫjr}៝'+)
8e\bP7=e!آ8r"3=[̑=͵ƤZZ4Jy'N&"z=ʦBӱMJnIBRG>p"GhP{O@T-3ѽy+APSV9@_0x,kMGla>ɦKCUԴ`z +ЎP+Oz̥n#diJjcmߗ*[jC;MTfa)c P5&hMj=SҤ' + @n̊uq,cnZ]!CsT;Bn%D]z1b{"IHJ? +[l>gJ)CGu ÅP9˳̏j1$}&s+,X`ΐ/)^AcoD5uCZ΅aς oW}yom,m\ak@oY@7ƘU68OmG$:WqL,AwD:Gi%Dk7.1Ȍ{4?"yq Kl^N ҆2l}$LjwY`@CmOcU.\&+,7,&YdJD8ڂs8K.0דB(DWSm +d!&j0^7sݍ1֑%r"y/lӂ:lFG*Z˝v9e^x:K +2n}mW]ZydI0vneEyZ4E5j +w1ÐyBmB9R$tXAuNyCBݜ%cn0XmiUv΄*ڗu rw,O>Lc<}o({I3/
}<sm +CrCP{`ʹ2 HΝ+FwYyuq
E1ڎm,0N0:AP]q8-TOԎ%tuImkMYѐ/D ~1V\d:Ŀ:mYw^gޡDG$ +M]ݯWeAK%beBL1k[)/DA01`Z+HAO-gfpjϓ!{[ՏVE]6GZ[B8;^im,ZeXk'$%ܻhkA;~gDԨ1 7] +-*ڙR`; q}$iq:xڎ03b!Dmb&s:/]ׅN])A~_l-nCLE(4`ӳߞyV)
0(/īfڬsN*kT{`YLe#u +3VRƠ;~-A]%n;MH$/wcjFd.*OkU)>;R~а&G@Aԉ^ߦ33N҄B@7l+fe+z~,GPvmx660;Cv2i3ڵz*mzSUU$R>Ad(
CU. t^;^bP{Ԇh0*M +MX2U'ߩ-`hΔ! 7$}W H4#09QE^;fـ-0e\ETZ*PjpP}{['ê~b?hYszHD*+U{[!!}tqji'8F9cr"{1%(@JT(+H@YgYF7'E03eSdNr)Z\;&B4>띲Ρ)Ԭ"%VĢ^iEmJ{[l52W&#ϮPljRj⇾F1wkVq0|ǹ +$}xsSta"Tg}[
$|Ԧ!)ی/d +_uM7?w<MTB2%Hӫ]a^&Sr$kNV|XN,W8qW +8mendstream +endobj +78 0 obj +[ 232 0 R 233 0 R ] +endobj +79 0 obj +<< /Filter /FlateDecode /Length 4039 >> +stream +x[Y6~_$UcE&zks؞-ĞF-u~A$>dm( 1B//ԏtxG^+ͼ0;yD^bDd(quwϿ@aPrްUIxOwyUꅁpp&2? +D^Q(:q}?_}XF:_1_I,a`l[4A?o#px/6~78~96ھݙ`_uP~}.I72Pcy?F4u.d8yZATE;ݪ'QtMȞ3W_08_JO"?q|ׯC`jm!,(|[gr'FY [1(@( Eh,>F@C˼7h +h jlpnȶ5y>ڊUw]i@8R<زA
dW#QFP(M04']ttHHep +-Xz +`+kA2-cMn{A@JG38N3zt7V,VT,"5A'Ru +ʶu4t?)S$}UYOg/&yb+v3JnY\hX^Fc +#UCwp[kZeȭQ-FC}8GT"l~O&0LH4~x쮐B<r(l6J
t1I.u[˖|/˸_/U7Y^:woN ^z0}g4T磫Տ}^;(QjZ0F@CV 7RMƅ|z+1$}/!`mv`;$@h +sE+/#ɉÀCq!P"Q--i蛹LI<6"b:|QL,?c}D4;Y
GAq$$8u}wCR 9A<嗞Aֿv8b|UGu5R\$D43_kІ.f'H/-7 L<wyNA8]\bw1s#!%ILOw HN"#|'~jc?t> jw^Nh÷+YQy<agKfw +ػt#80+:=Ai~?òuюLu\$"/v*'̱0 8M$}H@vDi!THqѺ_njBtk +ѴGUHx%!&ƅZW]h 8GvigڑC\͂{h +=01 ]9/D/ +V$uB-3% Q9*XU" HwWfer#˨)8pNp6"A#Sr+icQvrwQ\5WcaZ@?<œ>ҏ3;`PÑ%=-Y#1n>;#ЎrlyGA ~h8+fny(sH%Vd[/A.n5wtV6y#ԍ-8π>|![;2ǩoEܩ}S=2A/dmQVC3ifu4A;YS}:]xf]访Ke(2 +endobj +80 0 obj +[ 234 0 R 235 0 R 236 0 R 237 0 R 238 0 R ] +endobj +81 0 obj +<< /Filter /FlateDecode /Length 2872 >> +stream +xْܶ}oV4^ت*Rr!v6_nf'k=@F(1Rp"rr҄gdO:#- +ܭ妻7?ք
$y_Ο>:#Go"'I.aO~}T]M6?IFq3i&_$g?d)=%ﱚ08SkhAcA4<@PQ$YLp?d/"YA8M +B +O yN#y={S5yݴ.#V$(c06}G'/A @ןu +(/&3nRA +/ḝ|`Pfj]T ]7^U] +ymUMa`¥f%JW(Hay5%lˢz5xjBg%ORljTvw{_\f +%F֛^[=u쟗Aj[=3%hC'``d%'9hD"YS%ԕ +kVI%~HT?odx +<3C,3UI+=o]bU"LDhhL?غk̅C7AΝ#*o0u4 ìP6#uSFvx=S`& +YatTG0=/p{_.=UVݑFS˳xR}A!S'D+r4DN7WX2G'C^R㨦~@:YE27pǣbySXONLD +1Wy-Av߽F`! o+ LFsaL!NBq(Rpk^"mUUU{Ttr%.6^|5ڄd^~5=^|n55L:z +qU*D;ТbV>]κߍqןSH,Bsqgiv \Gե0,}'{ITi60 +endobj +82 0 obj +<< /Filter /FlateDecode /Length 2662 >> +stream +xZY6~_ +7
ɧ{ڳK퐺pɎ^ߚ9O}xOBa +*/<5@c[h5WEY5衩~i^ph^Rn{\nzg!_=u),]PPve(W$f+b^7Cbuu@4Ŀw<;+ei&$w#+4!(Rkw2*"TB3{:OAKr3rg#M(q_L2ڃ +K-% +33U{I%[\Kq櫵&H+5л +)imֿ=K퍠.)k>ԟ;xC14myа4u5>=B'"Y5|e%@<W +2G٢nJbyf\Q>5qn&g*YGYeI/:Gp*Cbk]VoLx8@
bK<
ckA#=
YT"Y˩F:DkI'F*y\5'>)wT5ImENFO)+9ȏYƽiIGTLHf2i_d~L8XhBTgݐbOҗd2Z\D
yof][-̷ۆW͓,Bȳ@;y-ؖ ȐyAE/*M >]y^L\jWOVמTS&^ +ɾPW,~ XO3T#/:of{^_GI|k]RqMR:`~%pϊ=7 4r%qc~W%O]^lPgY7[!QȜhRQSL[65SHe*w GA]lS@s?L-}z3b7k!f!F!&!迲nf<fdM_4}ꚾu_JG0#9{:h)܍^WU@ʂ0s&o<d7%)_g5g6; D' 8ZRCcJ$b)<%w(k5jWKhtq\lOZ)tK ƴB*ɈHvM12tj(r}|oᮧ\
<dGVYC?P`ؙAgbꃰU%3_ǎv3='<Bߜy!7
\P;L{Pą˰(:qgQMDqYdmnpƊvmUcrhQxl%`+R`-XM7UBoIwhҝUdyE!~ +A#q,BbFRƂP$$=箟-4]QMW:õFXohD0_3Z%F_N;DSBdA!Js4[QC$!Oga=B':|en +b7y㗭-[@ +~fWF@'+J\>4#?l@,*>S-a5Wplp3`d zdwpdE]C,ga# +endobj +83 0 obj +[ 239 0 R 240 0 R ] +endobj +84 0 obj +<< /Filter /FlateDecode /Length 3013 >> +stream +xْܶ}ova&&QʩT,J^0cקn<fʃbj@_h7!7-`YȢHIʂ ;0֨U" +ju Y]TK'<R8ɠHqJ=֕e54)." AE_zIE!! V80H}Hy +Q(+*)'!<K +\]%;QF9[ߋ˘KO2wǠBP_m8-(jX@K-D08KPmFU ahR
w}&:Re7]zՕֆ/+y'#A%
:4%cWBϭ+Auar= ̠K:̈́Ɨ +pBrAoT2g<i4>4ҝM/Uc7LviҁF<[~Kˈ*Ds89Mp+Tb34+hrƅ"|_sOfA^Kf˂u?4j\XnV,r$I/"7eCWqFcRY]6_n%V T*<C o +B*b:<ş 6dl>iNhM <Ty뾍t;Za`aj-;Qq2sB8!: Ih]m߈6OM[֍@aia#v{H<|>_=fo"ۈ>59ܙd;`+'ܙ>1̑G&nkuau4[<Ir"3!}{∅?a!Rn+nu%(WPM}|5&pћulRWxm; +/XcZXSKC7Oͳ\ZZ!Bk>jjbΒt?`6r`{$;(f&{!lՈF:$zͰShI-([VՕ0W?dk6Cw+9;5.`xY{\M| '^wiǾ>R`L} +墕V㇀&1~5=[$u#} +endobj +85 0 obj +<< /Filter /FlateDecode /Length 3384 >> +stream +xZKܸ
ϯ-㪱VϖgSNja֎mQ=ɯHR|.7>$ +>
wQϻ~&]tݝiGo|]Gow?q<XEyY<(4$xj)bnM'|42'B/ +,ZxkL[uj ߛx?S!8aIzsdVQ&Ip ASY|ڹ ~l;p, "d9vIo`qpv$eݯWs>90ݫjN{:ƭ,'.irC|rGGGC +q==ARsi=4,jF0$9=8,PtET +~~㘏'NsG@swY$Wo82\#!Yy"{s=0JEݕLwo(C2$
5^hĀN'mI*9!sObK1(P1zgFdkPHjBNJ{ fw +t-G9ȉD@@ێNAR-Z*N9m~ļ-%Bm{PJ*_NOr*t[X/1Mk6B*5)w麓`ZeM;Geu̲0\~l$p'0g0ZGJ2uB7ܞ1\ !A7##eC;臍Jkј=c(az7']qMj15Ȣ}s$gIvǼp`>Mxb<zEу:;ɄV_<HOrL~@,yFF
9<՛ +Vr1#Z\0gb9h^8eqH +4/$'fJwHeuE2~]sȰ"BH +GM7a=P8/Rl=p!<_w 0zt}ZyrUm`in1iT/3 kv&A}4m +$:":Inwe.IP<=|SZ&ϵw`[<<<j;uVQgwbj nql<ZLfbwKuLpeb^hH4tj#,4*q}0$ +sh.#ږ\gDg3~viBDiWg۵3I(̋2*E]GQT#z_Dp~r|}`&XGԸ\kdZ09[%&⎗l.,yoVTSlnI3z:ֺą.MUo-.$01aҍ4O*CCt{~!-ʰ(wUYl?Ӎ/ŋ%6ɇÆs|`ދW2Rq#.Q4
2ݶz3j2'mޏ=tF=zEh4hLElޒ#ӍƫDGxFoIP~SUOO +0I8MLJWs?鮵ѝ:tmm(
t5QURts^ƸJn#İnD:^"&A 15]HЭN~Ax^T +i]AepH4(өW)ίZ:CZsY6io"mR+ZhO4[LZYfB>nNɚ,%ꓬx$:fylTH|)]+YIQC9c$)z] +{\r{.yD<Y&t;SݏFߓzϫgR\EE7WtfrљP&֙nhMMQ]?(
6>H~e;&<i3>(cås\QD-Jd!-"N"W+/t葼fH3$ј\h=4^oɛ>*z[-u$_ 8=)l]1}ϖ5ΣR-E3B%ݭo ҖylyD3!<wa'ٻ%l^j'e*(:avƽ +MxqE.Zxv;ʼnAu3r˼wMx5MFXo$:%8 +Xc7_тqYcʚͲfάoE9 LU$1e!fʯ[Of&?0ʡ"I*FT&LQƤx;p
XCFrT!?slCJUM6Ui8J +gc]+*o/ުdH&EP{W06\I1u{ew' xԆkßNͫo'NrZ台R~յqQWziyOA8z%/r1FTv)2J:Q$vxR(Ɓ
^-
-u3WdSOHIqL{eޘy*D] ڎY˰+}ygz{}U7$QІֲJk|aU}8endstream +endobj +86 0 obj +<< /Filter /FlateDecode /Length 972 >> +stream +xVYD~()bO>bE- ZixXwbajݾ-OCf$w}]WUEAPXO0྆<0 +kr5Z~N )bp3k?Xjz|'8ȣw [P +9+E\g2'd}l3ѓ
%ӝ|@ۀb\wM?Deǧ{Adb:@g;+lEېB +KH_cɌZ/rhE<^\nMF$ވLQ)EpV$㴯.ei&Zo@
sv%jT)mUWj,U"4W1qBoes÷8S8]isPCl22a\ftOG5#5u" +ce61NgQ@KeuXd3>[s`>yd˸E3L"tȢ*%.߀N*eߠFݼY|1͔YYݻ_1`۹2G뒙n1Z__1C69dzxؠh}֟/3
clw$Z5_q:(*ތZxendstream +endobj +87 0 obj +[ 241 0 R 242 0 R ] +endobj +88 0 obj +<< /Filter /FlateDecode /Length 2156 >> +stream +x˒ܶ>_WU+.&uHxSN(*,0$f1_"8}h +-MuDsjtVW'<8(O' +/]2թ*X] xSB2ZZ,b0--e$-xj訳Zc +K +ljO^:8Y#wA5j{V +,yGSN|_fU,Ufc#Y0ԏ(ۆn6?M'2J#?^|9X[Ă`c;32do +;b&|EY0M!Sƨz-q&K5 t"E\\n@5fC7ۋbsk=Z :P|xIK`;{OWQ +*mKaV!\![B 1 +EkWE-5)vōC7-KchjAP|دa%aSsvZCkϧE5]qxD'mktBhSb֒4^#f!&^p} 63/r]|Ȁ")fQ #3&>ɺsP`zc~9(&0=*0{K⬸l/~TʑY^$lS
kjjAg3hM^C> +_2(zP}0([5{-D^A[ThAGaGnU,T8TDR~B?j1{01/ =7#/0_ OZ);nEj3!F*
*(k/P~5c](Mia۫nrs.>endstream +endobj +89 0 obj +<< /Filter /FlateDecode /Length 3127 >> +stream +xrͻ +d
ۡn{q F&\o(xE~W/do?SEsI)C44<vb`GmT1\p~߫!^F@S{'bd~|<jeYLJڰ8>gsB-/?|")7xfHRo+a?.rrZi)~?K=q|<VۈTռ9)>qyIe2o0; bڅ:szד05Q3c )d9dɌ2/zZ<m&ּ:.'D1?aXb9!'҄f+pGi i +
} +drFV_TۨnTNλZFA-$XwBI>CUڍZ7
9Xj-p%Qy&,5
NBsD8Г2 P_pEOJ2r8`ܩ3D
suu}k/&h:u3iXkdB^ݥrK"Ki}aL,øyT?r\H8²lE@CdqW JPJЛ +d.hWy@b֢keݨ37v7Bf?,Rֆ#Cl9fK/7T@Ԭ}^ƻ=um+?/qO]yBk*I]ĹĄAܠ.Ma^mZ$8gP$ĦC;&Ѧvb!^R7̺ +3;a]Ff֎fTS>a_rAD{nQ5!ʁ + +fGNgfr+GMWhO|F9~trl +[m'=W\+.7~͵9scFgmPQyR!j3+/5]Mvz</}U#Xjiub#I510^N_\;xs6'`[G?paH4oIC(-b
3c_/<455S=*zQ$RN$qdJES$at?BGB+[`9/;3;KHXd}<"/͍ª\qP6'YaA\+L(#J,X N*k(" + *uDwlytXE8"s#s]0@7Qxm(R9!= +h*d$GdfF6!%]m;|ȥV̓k%Xuie@zbZ[a4h4s}lF<{Ci|$z!jнGr!
\bhYf͉ Px7Mȋqz]³|1k/k_z!\k\!Hv-{^`&x% ^E +q~:&nTACwo+GY:X<vR@(sS +3>Dkk<V(l "E6;#fJ5ɇ + +w03sPB}=Z)/5AB7
Υ?/L +endobj +90 0 obj +<< /Filter /FlateDecode /Length 1415 >> +stream +xXr6+pWihKIı|%B"S\d4Drخ&zE#.~$ɮYHGdE1BǏHC$HWYW@IW%|qArѲ߸n%ՏCD<l&E(OJR'ɦ!_>ۂw/=mw<pl~[}\DxA$݇" +7Vah +Z|#1|.0\;JyWEqҋv^ƝU"gz^YgpD +kqI':
Ŋ>KjVJK<yOezuv-Cٍ%׃ݖ[I暼^%H\Z/3H#gSwm0$WCr[Cle {w]s0`m,{^`?W%ҴL;g# +':K*OU{0,ibm8y]buNk5Mo;VJf}̲ZzlUKvr_նl3fmOyx6DW OM^6Xʜa/w!#eɠ"k 9ִ-YյA)ү<8/ CԢK+{p"E^s_1NJ,$IxYq+b4IeazM|yqxMO7eiy7c$? l@[lٓ,A$&H[ dfUΞ$ѥvQĢj[ +ZpFLr
PL(I:^ˢ#Ep6e5jgn-#h0cL9JN6$N=û#CbUjD@#HH[7wRH\橋I\LHy#N +Ǐ}#u֊m0M]U_=ވc
xe ,guݝdtctxYwF`q_H\Oj:W 칮ØE?k50^bk64#OEBy45MxfYNFCۑSM'TBSW)^(Dv!p!c{q0-"~ps?˜8+`GW7mߛg +endobj +91 0 obj +<< /Filter /FlateDecode /Length 2600 >> +stream +xYI۸W6}雗xxܶ;qf +lMNxk| P(T_UA_7>VI +R#K;wa(_s,';<O+SfWH]mv\ֲ}צWYWO2EF~&=upkK~\E5g|X1G9bϋÁHP% =Ӏ +'D5c/ ɯ:`1-yψmVh{G>mrj mk^G'.xӃmKqY2pWw +gb$0Xt>T*8LWp99AK@s8ji 8ϰ0bӾ?~|tڍ8tFlyEu.l] +A6t<r@;Lw%YмYɄ3 +u|؎LHrr`-3sōA +E1iS%-x U
QO+Cm!ť2V'9dá\z9WbgII*&A[
M6. a&*0_VI%8|URQV+<nG +mqU\X2P͒A1R(5?kX&$ z\:N W]'NO3Mp`)]X23ekXr0p,*$Yqwx {MLrdxڱMq j4L]{uϿU4@\u`i;uWSW|pCW,x*x=
-QhcQ,}M<!v"@w~TL +ʶOJGҎ$n+UP+YVߙ`Kwn'yfL\UPÝ'gpGW(.,uw\赑Lz*6_?)-*,M>'RqP+HuY#aCtl m +v'*o;XX .:fTaUU4UFi."ُzCZO=MR5e96xE
VfG +_'Kݗ"vP+vgv *Q"HNkg2q^fW_\֎=/'ug +TMJܯCCB\iȝi*w^rچe$TEV=&$dμ\h2m4 ++lri̋ҫX{EI\t$N]HaboߠC~D2!Hc ݢ%G4L<`<2?b2ȞalfW{ۃ9N4&[)L +(ok3® +EoeVW4w>X<gydyTX;'.3ߺ$|WlU`Ջ__VQ'hٗKMlGߐpIZf]lSP%ءofq濎endstream +endobj +92 0 obj +<< /Filter /FlateDecode /Length 3288 >> +stream +x˒6>_=yR5IxM*Nxj}HrHHbL2Iy[|ȩ=dT
4FwCB
+FGIHjT0,!G ip7`f$. |H +yrluS=1EAy1Y +ù\vȽaUITh+bQ.nv3GU{~:5/ZsJh5yssx">ElTP9aXElvؒxDŜf#Z{S$lj˲`q<'G:0cO4@'ϳAkwXY!JR'x7F:!ؤ)-bTAZ܊6isSFsr*P4ˁxNڭFJq`MS;c5j'à>Շ\#tD,Mh)Xӆz[7x]\ȄђU| XJT-xY>Q#[{@p<эv6*"TzQQpL^Bx/Sns%=[vk;:Sݝf!D!U-#f
!ڷcsW)$}bp),v㗨4dzرYÀM4s[=X~!BUA$9}#V4
Ar+d}sV/02z?u2@
N )]T3N(L؉蚺ҋ0U.J_ן4O/>k<6:J!of9ޖ]18v!eANSr㡫U.A͉C + <YbMP@|ꦨ,è((] l9S\A2m0HNidsCQK !}݂"FNC'ѝT*i +\+(Uz{>p +~X+mhҰ9vod +IM7$5M$T06gDPMφ,(0-B;`yU5%EZvh=H}?L,U#hZoo&ҝ{吝xTҌ7;sˈ`0,@@$r<#e@pM!DJOxN}G
Dw +$w'C g~7j"a4/i3zFceyyGSỉi1U-@<;rٖ&k@a :V[EK+.l@<_g&1HK~L/;B.<iGlA
ꈯ Ԣ[zI~IIO$3nNb|ў5yo)c7.
8]$NoJn1 +9aU/s/oU|yNH_sXeJJgu7flhgK5A|U]ď_eщtkN)`/Kɉ4k#5t5Tai@uj{ՠS@Lla}@,PĨ?"xO?#d+
>\AɭÜyYQ^Y!K'"Ub{c!U8%EA;Ξ] K+tudH7 d%.5>X,kah*i2'TêSW9Ϧ4<}}} N{~%8\%FZ
v%[Ϝ_; 9@JγGY ++nvrԭtnL]&IB]:iWN
;^R +>mq)wvp,lg +̗D%'^y/h'+endstream +endobj +93 0 obj +<< /Filter /FlateDecode /Length 2980 >> +stream +xZY6~_8Û&>Nʼn홬S"2!oٗ* + /BN} ;ђlE'v=w8DP; Kr:+gnꚼ+xZޟ }뻵e|xirjf /^a%A7v7x@TSJ`XӍ/,6v6Sڜ/iS]7e=TZ8i(cQ1B^t<֞Y1<NY?##[TmhjhѰe_{cp]˚p<i|M0*KYٽ|t`mEc@,Ԫ!Њ!vyo7jmq6G|5/(+OǞ-#J&ƀht;|Z
dm0u)ƢM)Ɨc[~diqpej}tyڼui7;łlbc+[z8h?A8JJSI:Hͷ-mg[<tQԂhZ[F\%&F0>zJ,17"ЙɌ4o-,,e9=Sc$q>1.&'*@_lܑ` ={=XRg<g0d:2H)OrX9aX-s\l|QHdܼ~fuM%N]? +i"<Ne*;1ccD&Y,o<@ϖ+{;ORCb(y'-+'Ӗ7+MC##V2àJUHԇi+I>9VQy{uGVzpk.t\4݅2fkXN1DzF7~p=#o{(P#)țiPѴ='Q4YDIŎXu/n ew\l
Afǟ )іjyVUŘRS˫ +jO@M*83uc#w267
'ޞP[TX,(*#EMp T>@5Ҷ0A#znPu҆XS(6 Q@-BdӇ{~in0#@f/l1wuQypxQԢWdF[uW2/AߓV +<VӊWt=Y/kV2$<9g4|{~MUE}P/WmZUޙ*D+s?+W +ؔb6EoUan&FZ7U#uwJlx뉊pU `ګTo܍06NNRQ\=\iIr,WMc[H>سoA$Tk Inv ^G +HHUP;)8؈xRYZEH6ݯV(iDѾ<cVasd36'Fy7s'j^ߡ%WE]P$:0N/YĉA6K^~i;<ń/T'ʛ[gS»]DN{̽Yϵюx4s|}L2~/f@o2-}l?XeO`Yvtmc{&ӄuP4-C[E_n4oq$T, /..n_S~X4U^y +g3HWQ4id0Mٛ7I>&;տΜ$!n>9z>Ǜi-<yo<cT䣳9ڧg94}XdM۞Oeoh[8 +"ԩH
(Z5Z(Y`"O&h[GBo2ڍػGVWes7W<>^endstream +endobj +94 0 obj +[ 243 0 R 244 0 R 245 0 R ] +endobj +95 0 obj +<< /Filter /FlateDecode /Length 4187 >> +stream +x;ْ6r|M>Mqi[
T7,. dHF#H$ׇ8ߓSI?=JmqP&AZPS^q&yp +Vb@b! +XkPrս(&Q]Țjdx9am/DӨ 谦( +ۏR8L~?|x_~d7&[Klyc̏bAqsӱoXá(uQ4([]IvWko
<:t.˰v5m3@`\@AMra_UN4')YGi +W)0lsa$048Cp{ey\9E܍bYCǐQa;,;H4I`S,p
Z[/`nqDNxtkV&=EdߟN3bX`4l(FwX"LJ84.[,VP%I7<nԃ0/V@-]daШxy̧QUpʪXN a~xFۓå3xN. +2Yj?-ȼڦ&q +"s!ҀZ]ްqkС(Z6gm,VzWl(x/mѓxS8]zq+KbrڡayKAK#ѐ&t,:4
t49tbe48 Qt6]x'y}N1-;eBѷXSqO<܃Vf[ѽ\%FE#b$+[ӷ/7"*ENg/"}Y,ig]5[7T;%Bf~3vjEB-GP}A/)^- +
CeR,:"deYiA߀ՒSBp#Kg1Ll&%3V-'6WW61Z%2.@3;,1cFհnҪ oP(C>uS@dڋGBW`9+_]:sɇuEm<@+VgJ*WrVĴrZEF̨sA{Ⰲ]v;(sa;?d'd(eDM[BtSR x,EXbԾJ0/vX=7scnhoC4 ~DDn@=gw)'FJh4S99y`@ +#f"n"k 2gfmyڣ1p"+;Y^m|=MC{KKiB9hhGki5[cGܤdzFV4rm1g
W٭۸" +37<3u$&.aÊ^ZtQ]@Oh/%)"VV{|%EƱdenoŨd &gX<!**:ZQɘgTj,n7lJ#@9eRKAbӰs/I1fPJ@pJ8ۙlf;8%ʝ+e숳`(_9M[8IJ̊m蠴W]=s!xԛ0-ᢝEUkbw3gQj݇Z4L*(E^0hPQFUğD +0r"FE!G\-UzcI.{ OYyd\ +iFFmbq`.s\B.⩪(lIû5<}E~Gp-FctM VuEy]=Mc"ՄV#V3~b3 +1D*Z! +B&~e4ID\q ,3#L`ijQ>RI)x#(0*JYɦMAqR/4elm=ߌ!f
lv Ɗ^Ro`r.<\1z_H",uU#kx"J,GlTH3x=:KI{F*.iWÙ +moEPad&({ +}~z*Rqx
UUҸ%KLWaY- +-GfIULe%e%t= +_P|c'L=Fߨm8Fl0gVM-,א)LSBVż Wy{m`bÀxmppk.Wu#M0Ugym!* })t1ѷЗ%ӗZ7pߖYX{.Mvp%I5:#elߴ~bZ(M|[~%Qfz}hEqz
G<q8N%cvtP(1
ԋ'͊i4<O/5&^vfQCxz!x磆k(] k&OuczµocS=|%jCfmz)8V&1M BڃVJTvx(G~S""JߗbG/\Xh,tP NRח'Al'ZQ%Uh}[*7hjG +
|kUQ1aby=fE#>VpٷR{foM +)cY;T.[?>7_#aendstream +endobj +96 0 obj +[ 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R 255 0 R 256 0 R 257 0 R 258 0 R ] +endobj +97 0 obj +<< /Filter /FlateDecode /Length 3516 >> +stream +x˒6>_5ܜijVۙ! ;Ig +qt<f>WCdzS;8xh<Q*RI2:v1;pfo4sa=J1[.M@Ca\JS8АjÁW᧭ɣ҉n}jCnv/wa ( gʂ&_l Lu1Voߙ$DX}5琁gM`H.0R\`,KA(2quMTmAzgG*5TW*|Ew="! <ขZ5zЮ*ូmۃh'o +(ggP'i
FX୴C`с,ժvz|hsCM"Fwlx#j|P"=eQ!Tݱ]@WIqNs&d+X{ʓɍ\X_m4D؋tc
C_zlj&Q
*`t&{h +v~-a6p^M +<7S^4;y4$g3c
,K@#
쇥{Pނ"}
^%(!APH{M)4hwHBf3cPv} +afղٍʮ$ABܽuWRD<PBRB{Ɠ eq%,PgpՑuH~A邧i +j;xw, +8$SY1OyIcgJR|U[[U]nj +xH4Uݜum}>qh<$H(!IO*丳uFX4 + pB0⒌(/ ^s@b$8Z:ڂ%a]Q0BKb<jioQ
}ԛXS)Y\` + +rǺ~0\23g*Ӌ5|/Mҋ_AL"8@-(g|tb(Ӗ>Tks#G2WUj<E^9=n[?QD)>v3'_R +%P_?e7&`6O2^Ju"4Ǐ>B= +=NJ?^<endstream +endobj +98 0 obj +<< /Filter /FlateDecode /Length 3192 >> +stream +xَ6}o Ӳ[۳q`o|,`KiՒc[Ţ$vcc͢b/Wo?apEq:
0YL}*c#E0س߮+?alp/ѩ/?fW?_=n[q,\'?>\Fl|;n+J-g?1`gՁ.r5KАE>
*×
"taƊulE<{MaȆ?ӪQ"g˴amZY2Λ `{WfE+<v;YG5!q]S_b(XQț$U;P_rydEMonΊEZ[FDd6օDANlH&x"Rʼn}6Ng +y4,e"lqf/[)i*SܙgZԧki
031/N9kw/~G&OHsTwh,rL,b{ϣ/xoeS=+@}F<ngf<gyִ3\b=).S.'ThC{㦫n~nx5BL+~8l?М2!!MVj8BlsN'ʝb{yR`+Y5 +h%pr۷<8#6lMIj#,^|"1Y!ZRӭs]~1HlrM.?q[FEpv/Udn/A0EFEhZAڌW+t'8r +#!eF{}+"kȳiOYPv#=c3q +rd]_ǁG8b~Fp\à{c6ht&JJc& !+TCib&P
3!IKfEzvab@wB~*g<:= +`:T جi:(5kB|h%\ϷbC_壅7{VΗ˅rva;Yc`5 +cTQ5_=)DN=̙c\'}hSC%AImv:@ME+0|*ei4D87 `EF!(ȳt +-8 <Yܽ%
kT"9=
'kWPթZ3sѓ +P2퇳U%Y^l*d,:GFNUU@<luF㙐A6<\ua*Gf<̮`rVırh9Ńt@xi`IL[Abh@.M[wIKMzkfuݣ88XLTLnaАk
Re +7@_{5}S'NNG8ۗu +8Ch֛A,#\;FP@7Ch~Q\xr_8H
~qL8#0ʛ`=|EAE^t +Bg +WoVh^J!^t()"@s,V!R@<:*H=#V[98Zb˱:cS/mފj0xV.Q|7Z3pۺW9t
A,:z0`t*D )H
DQ@.'Cv]ɺVx.պBsb+r<*ßA'ŧؕ>dhmnZRzy0t~Ŷ@Y-wu%*eB4@OC/1F%CTh r194M_2XϞQ{__=.Pq}rkʫl49km˻(ud͜j +Öz-9oOtX0K)Z0E'wF*=]Oځ>>IW{=Y4ʯQP0"Wćjt#(0DNՙ:@l8@cޠa?wtxzKkL=lWJ8Ta+JֻȳԿ_
iendstream +endobj +99 0 obj +<< /Filter /FlateDecode /Length 3175 >> +stream +xْ6}okWysJ|dI qM +I2@ +tyCS}wWi +~'spY~7eI4/4սn Sɍ7s:}{62
"^1xC݈ǮC{pH-!
O%vĸF*uHB[n={%a:Zx\7Xy~琩_ +P*q2/!c?;Wp#pY7]_i k GMgd@lÚ*rβI<a
9rz#IZ):C\r,@^NReZSfŪ`wڎ8U ^g%ޙAL&!á=,ۡ>-"ݪ\8!-ڝM}O60`@h릜AڭoaюvLlx<Z1j.$De<Q1@!4uC"`*uXLWˋ4-*Al`+(VF3w8e2ePq[Ǎ1`}w=ansy + i{QKO +r`HyHtA+,<nWNhNL( m
glH@y\j!-!)Vy=.z}|<SDWM(C)g=GQ +|fnB_nu%I +:(yJtW*m<@ +Lr[IxƇBrxY=|>ӘqNϊ^ +emϘ+{̀ihJtQ d{Ft̠T +endobj +100 0 obj +[ 259 0 R 260 0 R ] +endobj +101 0 obj +<< /Filter /FlateDecode /Length 2854 >> +stream +xr6REjOZ;N98~h+U!1CD| 5~6
3䬽t7~"`>wiȲ3Y"RbA +(-?8~Q_짋?9a?eg&x_.g?\ܾNXೇ8(NtqA+6PW/~|8& +5F}!]{f>$#}ҀV~Q=k?V*XG@6G!Jήwvl=zܱ%k֍
|/Mbgާ0LN>y슭e'TɬMf;Y;):z
V}0~($ZdB)={4ēWV!X~к]1BFQ
:۞# .Y[>Ⱦ 0(ep\7(/ 3.ӀeS= +B" O| Qn9NCY{wflm]b|}ۂz0OJ^PN~azٓ&hBU\,W ^1HQvjD(+v %N}>
$ 9ȆMVr_{ZXY6Mm6[횮R/e%{[S#ZN}1Z};B~#x7qñǫ^hΏkE5+L$1V2^p> D*'ܚt@2p
4cj&M[:'C>(L!»W'p~tj\N\hF3ƍnjB֏?sAJ(踋د<&47lk+}_n=Ah%:K%WkNs$n6S($ս+5ۿDf?ajs@P'?榇~|bD&\vZ;p孿!ǽj(BƄHS%mI|O~?]9?:!KajmGWCK":"樴XbXZۯ)Ge S.QmNEElymUB%c?zЅNplzff0X@XpAج48Gt';ՏX݈ji?Z +2KY9 -\9%XM8i> Jn I6%d`U3[}!{|fle`%ӕ
+(b-,.1K;֜ P("`|"jSADshMx%=쀬r̕.(vX)R +z5mϲ U"_pUǮڜpAU`來fۮyeϛ`PKLK,{^hoYŎnŞH^jOyB#ƫm=<Q(S"b!˫qLOipZ-!Vg\ls@/¹ӕǞlP>Ҁi5p#kM 5wo,XԀ[[5 +J^(bȂfJoB/뛗?@d4&jv +lgn( 5jj_{O|/3?Q
!JT.E3Eǭ0W,p2uVfgw7TLJ/]:9@[%4pHbG^dn!n:Y{@>Bz^ +[x hdn[U~vP%>ѡa׆(Q;gH)&x&":P|mJ;H.qY
8ʼvG\ qt!n!l:MA,Qywy&=b}L&5h_x~qxBk&[m ceg)xBSf[C3g
$S e)5^;+_MBL}펷ٝA(`r&9$%K4$OGnaXD'SHf4XDpW"l,RLTFPL $J!0|ΩhKAg +n55עDdNK(<L:]z{(Ktv'ӾOrjQhTՒ堍o'i+I +[Kih݇(ϑimaB.T˓S+
F۬N<G xQ:%"2X-x!֦H!_>--~tш}]CQͮ?NxIOظ'fM'蔏D!Sf10Uxex8珁V0ٿG8-7Ľ +endobj +102 0 obj +[ 261 0 R 262 0 R 263 0 R ] +endobj +103 0 obj +<< /Filter /FlateDecode /Length 2081 >> +stream +xYKs6ϯ-vD_㛜XN%){%W6Dbf& )~hV'ok4~Ać?'݇$vFZ@Ґd$ "/IEqLJe
i?}W|dA|Xj{I1Qb,&Gý/$?xYo?ϻ ?hYˠ>ӎ#r +n@4j6 8D}wSߨZ\Fw=|; R +/lz;:{[ s_a63Wr=%axyK') +jZu>ZԊ`=H]rVuE,HE{8ܺ]k[gџ,(o-;{vM)E;oBRdiS+DL̑756 +(Ҕ[[fS2RSetEۦSVﯖ%K,h<+~i-+HouheeP+"|?8}/UY48eE'>zw
M'KZ&^\>lz;+;zwC6Tu!bDUºc6{6S8L7rcD0f0a-l1OK:phʅAm4ȳʂh[n](%+!B}]t{^ӁNhl804o[Tm)1 y]}^p|>QWA}+%ՓC7FxlڕV,VPhKҫ +zՌ19|+y(F*3 +P;W"?<*$&Py^]VUV/g#>(E`8>
ʤƴIT|:REf2Z[ GpNkb]hyN"/Z}Ct.-P:2ԝ/wA-ϮmhBey9xd+:qC\KS^=)*zA\LJ3~W&
"f|7Al:GWG~/6Aٶ4Z8Z;Q7/^gS(=eN^{f|XD+6p%.dy?@֏N};^a^(c'U(&[2\8q4Aq|_?2>&vhX,H["նb>ʆ%h]#,.fe}bZכعd0apu
> ԍܴ> r`^^={n1o?:ģqi:&~aoaw +Gs̮D\u
<_hY"TVOJWwiE mfF_we|w_7c)E9/w-0endstream +endobj +104 0 obj +<< /Filter /FlateDecode /Length 2673 >> +stream +xkܶ +~hzqE.v= DYz}ܕt>q +LRvOӧ{2R!m2bG BUF٢2\`irxٟlvBO
JyR[1qP5 ;גz-F3+[(TV +!\?XPB-|T7kD0\HIzuGƒeԬK"XGcW}n=&NOTqeFvԋGlYlJuVb),YMNիWo(GP<IT>^ech:ͺSA'hgiA(76A4rPddtY>EeRoWg
OuúΞ;# #$YW`ZN+{6ZWvC#Zd%PmNbUY,1=I飪{rI#geΒgZ&"K=urI$DɊH6:u$A" +/Mn?2+6d\rL6S%8@g4S=65%sXwF$o% +`H;y)"̤Z݅Yl_BeW19K15Es +D +(D g؏m<PvW,2a*S/xT7v>#^-_Ou6}D:e3z *Vxyϧ*scHLpV +4@Npf,ҕF &XLw{
j˵At*7`%^8x~IKb=DZ_4<X=?SW!Uv+HO5EP!Eȁ*-:l7M%Hy\r5% p12KTؕ-Jr5JͮFsX.8Q7!KSp2@Ԕ¥û
n^
ȃ|sZx)0FYr2,SBIݧNYMyv%J?4=s1țEA +O
b/=Moϑ4bU\J%WÐA5;II)ջ~zendstream +endobj +105 0 obj +<< /Filter /FlateDecode /Length 1604 >> +stream +xXK6W
Q-m6n99m1+Z>$z4 p^i ?I<^Eablpjd. +~& Jil|X,.*N+ZbAEE%s+NF*GKՆhRG÷hne>m'p4k.J_|A?7g.EQ/p;(0M|ߏc}mK>_=w{⸠ "ח])R--z`(5E-~ew]OmqLxGYc`YbABE9H 8*,,ޗ;ąi:nsNZ!տmN4PFUn'w]ڶ`[5!kg ĂO$A}xxW?y9(8,jdLL`(#@ۙ8M\53-_54e BY7
TdÔm'BdŚ#QyD#{b5Y +.Kl"In;GPRKf}**1bD%>]B]-hX*w i-$sF(Fi~<2hEU-\(u(w]uYNjv&etɚ&w݊2Gvfm˸sj붢w?'U%y.2rY.HP6I,<z鵰
hm3_[Ɓ( }?ӅkG%E{50>v(A߽UC
KP[])+in\`v˸[7h|7@k/ +M2tZ+ekk +Plw$5YⳀ<NZԜ1J36OB+0|>g;jq5ϝ(qa.,)jy#bPP˧;捞x]s䥁z.Ffmtv&jxu$. ~?ucDendstream +endobj +106 0 obj +[ 264 0 R 265 0 R 266 0 R ] +endobj +107 0 obj +<< /Filter /FlateDecode /Length 712 >> +stream +xUKs0+dU +J;~)i3R$1kz mF^$>wǟA68v]r +ya\\%RX{FNB8˚Ϣ_ϋ}3QOXHO)orf'vy)VP} +1'!.~}ΝF^VI\@)JZ$^gę¼_(k-7p +3v\XTmPX+\sQ7b/=9=Aum)]m ++v'ʾf:<crdRhD|USf][7?czҋPZt=j5p`
Z=<0nήMOz,<Fr/MLȳe=Wƽ>@YԮY/i)Jb]kȇnvѠP0HnW]Nb^\OyIFC-2>
SME%1rll:qF¤Y<0~ܕ͂Ѳ=fF'yMݖp7UgJ q@endstream +endobj +108 0 obj +[ /ICCBased 267 0 R ] +endobj +109 0 obj +<< /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +110 0 obj +<< /BaseFont /Courier-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +111 0 obj +<< /BaseFont /Courier-BoldOblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +112 0 obj +<< /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +113 0 obj +<< /BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +114 0 obj +<< /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +115 0 obj +<< /BaseFont /Times-Italic /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +116 0 obj +<< /BaseFont /Times-Bold /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +117 0 obj +<< /BaseFont /Courier /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +118 0 obj +<< /A 268 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 680.124 154.961 689.124 ] /Subtype /Link /Type /Annot >> +endobj +119 0 obj +<< /A 268 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 534.3 680.124 542.08 689.124 ] /Subtype /Link /Type /Annot >> +endobj +120 0 obj +<< /A 269 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 668.124 148.536 677.124 ] /Subtype /Link /Type /Annot >> +endobj +121 0 obj +<< /A 269 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.134 668.124 542.134 677.124 ] /Subtype /Link /Type /Annot >> +endobj +122 0 obj +<< /A 270 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 656.124 205.901 665.124 ] /Subtype /Link /Type /Annot >> +endobj +123 0 obj +<< /A 270 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.802 656.124 541.802 665.124 ] /Subtype /Link /Type /Annot >> +endobj +124 0 obj +<< /A 271 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 644.124 202.929 653.124 ] /Subtype /Link /Type /Annot >> +endobj +125 0 obj +<< /A 271 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.926 644.124 541.926 653.124 ] /Subtype /Link /Type /Annot >> +endobj +126 0 obj +<< /A 272 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 632.124 187.474 641.124 ] /Subtype /Link /Type /Annot >> +endobj +127 0 obj +<< /A 272 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.019 632.124 542.019 641.124 ] /Subtype /Link /Type /Annot >> +endobj +128 0 obj +<< /A 273 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 620.124 146.658 629.124 ] /Subtype /Link /Type /Annot >> +endobj +129 0 obj +<< /A 273 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.146 620.124 542.146 629.124 ] /Subtype /Link /Type /Annot >> +endobj +130 0 obj +<< /A 274 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 608.124 183.041 617.124 ] /Subtype /Link /Type /Annot >> +endobj +131 0 obj +<< /A 274 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.047 608.124 542.047 617.124 ] /Subtype /Link /Type /Annot >> +endobj +132 0 obj +<< /A 275 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 596.124 172.009 605.124 ] /Subtype /Link /Type /Annot >> +endobj +133 0 obj +<< /A 275 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 537.115 596.124 542.115 605.124 ] /Subtype /Link /Type /Annot >> +endobj +134 0 obj +<< /A 276 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 584.124 194.093 593.124 ] /Subtype /Link /Type /Annot >> +endobj +135 0 obj +<< /A 276 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.98 584.124 541.98 593.124 ] /Subtype /Link /Type /Annot >> +endobj +136 0 obj +<< /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 572.124 209.663 581.124 ] /Subtype /Link /Type /Annot >> +endobj +137 0 obj +<< /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.884 572.124 541.884 581.124 ] /Subtype /Link /Type /Annot >> +endobj +138 0 obj +<< /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 560.124 255.333 569.124 ] /Subtype /Link /Type /Annot >> +endobj +139 0 obj +<< /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 536.604 560.124 541.604 569.124 ] /Subtype /Link /Type /Annot >> +endobj +140 0 obj +<< /A 279 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 548.124 294.063 557.124 ] /Subtype /Link /Type /Annot >> +endobj +141 0 obj +<< /A 279 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.338 548.124 541.338 557.124 ] /Subtype /Link /Type /Annot >> +endobj +142 0 obj +<< /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 536.124 130.045 545.124 ] /Subtype /Link /Type /Annot >> +endobj +143 0 obj +<< /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.212 536.124 542.212 545.124 ] /Subtype /Link /Type /Annot >> +endobj +144 0 obj +<< /A 281 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 524.124 184.956 533.124 ] /Subtype /Link /Type /Annot >> +endobj +145 0 obj +<< /A 281 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.894 524.124 541.894 533.124 ] /Subtype /Link /Type /Annot >> +endobj +146 0 obj +<< /A 282 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 512.124 189.335 521.124 ] /Subtype /Link /Type /Annot >> +endobj +147 0 obj +<< /A 282 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.868 512.124 541.868 521.124 ] /Subtype /Link /Type /Annot >> +endobj +148 0 obj +<< /A 283 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 500.124 164.008 509.124 ] /Subtype /Link /Type /Annot >> +endobj +149 0 obj +<< /A 283 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.134 500.124 542.134 509.124 ] /Subtype /Link /Type /Annot >> +endobj +150 0 obj +<< /A 284 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 488.124 169.762 497.124 ] /Subtype /Link /Type /Annot >> +endobj +151 0 obj +<< /A 284 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.098 488.124 542.098 497.124 ] /Subtype /Link /Type /Annot >> +endobj +152 0 obj +<< /A 285 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 476.124 174.195 485.124 ] /Subtype /Link /Type /Annot >> +endobj +153 0 obj +<< /A 285 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.072 476.124 542.072 485.124 ] /Subtype /Link /Type /Annot >> +endobj +154 0 obj +<< /A 286 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 464.124 159.023 473.124 ] /Subtype /Link /Type /Annot >> +endobj +155 0 obj +<< /A 286 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.164 464.124 542.164 473.124 ] /Subtype /Link /Type /Annot >> +endobj +156 0 obj +<< /A 287 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 452.124 232.17 461.124 ] /Subtype /Link /Type /Annot >> +endobj +157 0 obj +<< /A 287 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.716 452.124 541.716 461.124 ] /Subtype /Link /Type /Annot >> +endobj +158 0 obj +<< /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 440.124 233.86 449.124 ] /Subtype /Link /Type /Annot >> +endobj +159 0 obj +<< /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.706 440.124 541.706 449.124 ] /Subtype /Link /Type /Annot >> +endobj +160 0 obj +<< /A 289 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 428.124 225.016 437.124 ] /Subtype /Link /Type /Annot >> +endobj +161 0 obj +<< /A 289 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.76 428.124 541.76 437.124 ] /Subtype /Link /Type /Annot >> +endobj +162 0 obj +<< /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 416.124 277.557 425.124 ] /Subtype /Link /Type /Annot >> +endobj +163 0 obj +<< /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.44 416.124 541.44 425.124 ] /Subtype /Link /Type /Annot >> +endobj +164 0 obj +<< /A 291 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 404.124 190.364 413.124 ] /Subtype /Link /Type /Annot >> +endobj +165 0 obj +<< /A 291 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.972 404.124 541.972 413.124 ] /Subtype /Link /Type /Annot >> +endobj +166 0 obj +<< /A 292 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 392.124 186.331 401.124 ] /Subtype /Link /Type /Annot >> +endobj +167 0 obj +<< /A 292 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.998 392.124 541.998 401.124 ] /Subtype /Link /Type /Annot >> +endobj +168 0 obj +<< /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 380.124 136.409 389.124 ] /Subtype /Link /Type /Annot >> +endobj +169 0 obj +<< /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.176 380.124 542.176 389.124 ] /Subtype /Link /Type /Annot >> +endobj +170 0 obj +<< /A 294 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 368.124 244.815 377.124 ] /Subtype /Link /Type /Annot >> +endobj +171 0 obj +<< /A 294 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.64 368.124 541.64 377.124 ] /Subtype /Link /Type /Annot >> +endobj +172 0 obj +<< /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 356.124 227.215 365.124 ] /Subtype /Link /Type /Annot >> +endobj +173 0 obj +<< /A 295 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.746 356.124 541.746 365.124 ] /Subtype /Link /Type /Annot >> +endobj +174 0 obj +<< /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 344.124 167.338 353.124 ] /Subtype /Link /Type /Annot >> +endobj +175 0 obj +<< /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.114 344.124 542.114 353.124 ] /Subtype /Link /Type /Annot >> +endobj +176 0 obj +<< /A 297 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 332.124 214.562 341.124 ] /Subtype /Link /Type /Annot >> +endobj +177 0 obj +<< /A 297 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.824 332.124 541.824 341.124 ] /Subtype /Link /Type /Annot >> +endobj +178 0 obj +<< /A 298 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 320.124 239.324 329.124 ] /Subtype /Link /Type /Annot >> +endobj +179 0 obj +<< /A 298 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.672 320.124 541.672 329.124 ] /Subtype /Link /Type /Annot >> +endobj +180 0 obj +<< /A 299 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 308.124 249.211 317.124 ] /Subtype /Link /Type /Annot >> +endobj +181 0 obj +<< /A 299 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.612 308.124 541.612 317.124 ] /Subtype /Link /Type /Annot >> +endobj +182 0 obj +<< /A 300 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 296.124 181.908 305.124 ] /Subtype /Link /Type /Annot >> +endobj +183 0 obj +<< /A 300 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.024 296.124 542.024 305.124 ] /Subtype /Link /Type /Annot >> +endobj +184 0 obj +<< /A 301 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 284.124 232.703 293.124 ] /Subtype /Link /Type /Annot >> +endobj +185 0 obj +<< /A 301 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.618 284.124 541.618 293.124 ] /Subtype /Link /Type /Annot >> +endobj +186 0 obj +<< /A 302 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 272.124 176.938 281.124 ] /Subtype /Link /Type /Annot >> +endobj +187 0 obj +<< /A 302 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.054 272.124 542.054 281.124 ] /Subtype /Link /Type /Annot >> +endobj +188 0 obj +<< /A 303 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 260.124 216.675 269.124 ] /Subtype /Link /Type /Annot >> +endobj +189 0 obj +<< /A 303 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.812 260.124 541.812 269.124 ] /Subtype /Link /Type /Annot >> +endobj +190 0 obj +<< /A 304 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 120.0 248.124 266.259 257.124 ] /Subtype /Link /Type /Annot >> +endobj +191 0 obj +<< /A 304 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.602 248.124 541.602 257.124 ] /Subtype /Link /Type /Annot >> +endobj +192 0 obj +<< /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 236.124 248.115 245.124 ] /Subtype /Link /Type /Annot >> +endobj +193 0 obj +<< /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.62 236.124 541.62 245.124 ] /Subtype /Link /Type /Annot >> +endobj +194 0 obj +<< /A 306 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 96.0 224.124 204.549 233.124 ] /Subtype /Link /Type /Annot >> +endobj +195 0 obj +<< /A 306 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.886 224.124 541.886 233.124 ] /Subtype /Link /Type /Annot >> +endobj +196 0 obj +<< /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 212.124 143.288 221.124 ] /Subtype /Link /Type /Annot >> +endobj +197 0 obj +<< /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.134 212.124 542.134 221.124 ] /Subtype /Link /Type /Annot >> +endobj +198 0 obj +<< /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 200.124 193.284 209.124 ] /Subtype /Link /Type /Annot >> +endobj +199 0 obj +<< /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 531.846 200.124 541.846 209.124 ] /Subtype /Link /Type /Annot >> +endobj +200 0 obj +<< /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 188.124 154.828 197.124 ] /Subtype /Link /Type /Annot >> +endobj +201 0 obj +<< /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.068 188.124 542.068 197.124 ] /Subtype /Link /Type /Annot >> +endobj +202 0 obj +<< /A 310 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 176.124 155.373 185.124 ] /Subtype /Link /Type /Annot >> +endobj +203 0 obj +<< /A 310 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 532.064 176.124 542.064 185.124 ] /Subtype /Link /Type /Annot >> +endobj +204 0 obj +<< /A 311 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 81.72 657.641 191.15 666.641 ] /Subtype /Link /Type /Annot >> +endobj +205 0 obj +<< /A 312 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 367.94 657.641 483.23 666.641 ] /Subtype /Link /Type /Annot >> +endobj +206 0 obj +<< /A 313 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 248.721 635.641 387.438 644.641 ] /Subtype /Link /Type /Annot >> +endobj +207 0 obj +<< /A 313 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 393.349 635.641 539.999 644.641 ] /Subtype /Link /Type /Annot >> +endobj +208 0 obj +<< /A 313 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 623.641 163.65 632.641 ] /Subtype /Link /Type /Annot >> +endobj +209 0 obj +<< /A 314 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 589.641 141.053 598.641 ] /Subtype /Link /Type /Annot >> +endobj +210 0 obj +<< /A 314 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 146.786 589.641 273.986 598.641 ] /Subtype /Link /Type /Annot >> +endobj +211 0 obj +<< /A 315 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 102.28 552.539 182.84 561.539 ] /Subtype /Link /Type /Annot >> +endobj +212 0 obj +<< /A 316 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 104.49 531.449 188.37 540.449 ] /Subtype /Link /Type /Annot >> +endobj +213 0 obj +<< /A 317 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 184.2 510.359 324.74 519.359 ] /Subtype /Link /Type /Annot >> +endobj +214 0 obj +<< /A 318 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 187.53 489.269 269.75 498.269 ] /Subtype /Link /Type /Annot >> +endobj +215 0 obj +<< /A 319 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 197.68 468.179 351.01 477.179 ] /Subtype /Link /Type /Annot >> +endobj +216 0 obj +<< /A 320 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 110.06 284.909 260.06 293.909 ] /Subtype /Link /Type /Annot >> +endobj +217 0 obj +<< /A 321 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 224.76 263.819 336.43 272.819 ] /Subtype /Link /Type /Annot >> +endobj +218 0 obj +<< /A 322 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 516.1 152.549 540.0 161.549 ] /Subtype /Link /Type /Annot >> +endobj +219 0 obj +<< /A 322 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 140.549 219.75 149.549 ] /Subtype /Link /Type /Annot >> +endobj +220 0 obj +<< /A 323 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 516.1 140.549 540.0 149.549 ] /Subtype /Link /Type /Annot >> +endobj +221 0 obj +<< /A 323 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 128.549 152.54 137.549 ] /Subtype /Link /Type /Annot >> +endobj +222 0 obj +<< /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 333.717 519.578 484.943 528.578 ] /Subtype /Link /Type /Annot >> +endobj +223 0 obj +<< /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 484.943 519.578 515.831 528.578 ] /Subtype /Link /Type /Annot >> +endobj +224 0 obj +<< /A 276 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 319.381 163.171 460.719 172.171 ] /Subtype /Link /Type /Annot >> +endobj +225 0 obj +<< /A 276 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 460.719 163.171 494.664 172.171 ] /Subtype /Link /Type /Annot >> +endobj +226 0 obj +<< /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 329.293 85.499 488.903 94.499 ] /Subtype /Link /Type /Annot >> +endobj +227 0 obj +<< /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 488.903 85.499 523.981 94.499 ] /Subtype /Link /Type /Annot >> +endobj +228 0 obj +<< /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 366.92 188.609 456.9 197.609 ] /Subtype /Link /Type /Annot >> +endobj +229 0 obj +<< /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 456.9 188.609 493.28 197.609 ] /Subtype /Link /Type /Annot >> +endobj +230 0 obj +<< /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 208.09 637.5 298.07 646.5 ] /Subtype /Link /Type /Annot >> +endobj +231 0 obj +<< /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 298.07 637.5 334.45 646.5 ] /Subtype /Link /Type /Annot >> +endobj +232 0 obj +<< /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 160.538 85.505 386.813 94.505 ] /Subtype /Link /Type /Annot >> +endobj +233 0 obj +<< /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 386.813 85.505 425.379 94.505 ] /Subtype /Link /Type /Annot >> +endobj +234 0 obj +<< /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 497.962 450.438 539.999 459.438 ] /Subtype /Link /Type /Annot >> +endobj +235 0 obj +<< /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 438.558 125.9 447.438 ] /Subtype /Link /Type /Annot >> +endobj +236 0 obj +<< /A 293 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 125.9 438.438 163.703 447.438 ] /Subtype /Link /Type /Annot >> +endobj +237 0 obj +<< /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 295.01 426.438 384.99 435.438 ] /Subtype /Link /Type /Annot >> +endobj +238 0 obj +<< /A 280 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 384.99 426.438 421.37 435.438 ] /Subtype /Link /Type /Annot >> +endobj +239 0 obj +<< /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 334.947 468.365 448.053 477.365 ] /Subtype /Link /Type /Annot >> +endobj +240 0 obj +<< /A 296 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 448.053 468.365 485.879 477.365 ] /Subtype /Link /Type /Annot >> +endobj +241 0 obj +<< /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 299.614 431.318 491.36 440.318 ] /Subtype /Link /Type /Annot >> +endobj +242 0 obj +<< /A 305 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 491.36 431.318 528.338 440.318 ] /Subtype /Link /Type /Annot >> +endobj +243 0 obj +<< /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 378.272 673.5 539.999 682.5 ] /Subtype /Link /Type /Annot >> +endobj +244 0 obj +<< /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 661.5 136.11 670.5 ] /Subtype /Link /Type /Annot >> +endobj +245 0 obj +<< /A 278 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 136.11 661.5 167.49 670.5 ] /Subtype /Link /Type /Annot >> +endobj +246 0 obj +<< /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 429.325 422.206 539.998 431.206 ] /Subtype /Link /Type /Annot >> +endobj +247 0 obj +<< /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 410.326 112.5 419.206 ] /Subtype /Link /Type /Annot >> +endobj +248 0 obj +<< /A 309 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 112.5 410.206 151.668 419.206 ] /Subtype /Link /Type /Annot >> +endobj +249 0 obj +<< /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 116.94 305.47 269.15 314.47 ] /Subtype /Link /Type /Annot >> +endobj +250 0 obj +<< /A 277 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 269.15 305.47 300.53 314.47 ] /Subtype /Link /Type /Annot >> +endobj +251 0 obj +<< /A 275 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 116.94 271.102 232.21 280.102 ] /Subtype /Link /Type /Annot >> +endobj +252 0 obj +<< /A 275 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 232.21 271.102 263.59 280.102 ] /Subtype /Link /Type /Annot >> +endobj +253 0 obj +<< /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 455.55 248.384 539.998 257.384 ] /Subtype /Link /Type /Annot >> +endobj +254 0 obj +<< /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 236.384 188.88 245.384 ] /Subtype /Link /Type /Annot >> +endobj +255 0 obj +<< /A 288 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 188.88 236.384 225.26 245.384 ] /Subtype /Link /Type /Annot >> +endobj +256 0 obj +<< /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 492.575 213.666 540.002 222.666 ] /Subtype /Link /Type /Annot >> +endobj +257 0 obj +<< /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 201.666 268.61 210.666 ] /Subtype /Link /Type /Annot >> +endobj +258 0 obj +<< /A 290 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 268.61 201.666 304.99 210.666 ] /Subtype /Link /Type /Annot >> +endobj +259 0 obj +<< /A 324 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 359.15 295.375 455.27 304.375 ] /Subtype /Link /Type /Annot >> +endobj +260 0 obj +<< /A 324 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 321.485 190.125 417.605 199.125 ] /Subtype /Link /Type /Annot >> +endobj +261 0 obj +<< /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 405.397 573.15 539.999 582.15 ] /Subtype /Link /Type /Annot >> +endobj +262 0 obj +<< /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 100.0 561.27 122.78 570.15 ] /Subtype /Link /Type /Annot >> +endobj +263 0 obj +<< /A 308 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 122.78 561.15 159.16 570.15 ] /Subtype /Link /Type /Annot >> +endobj +264 0 obj +<< /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 455.792 645.641 540.001 654.641 ] /Subtype /Link /Type /Annot >> +endobj +265 0 obj +<< /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 72.0 633.761 94.78 642.641 ] /Subtype /Link /Type /Annot >> +endobj +266 0 obj +<< /A 307 0 R /Border [ 0 0 0 ] /C [ 0 0 0 ] /H /I /Rect [ 94.78 633.641 131.16 642.641 ] /Subtype /Link /Type /Annot >> +endobj +267 0 obj +<< /Filter /FlateDecode /N 3 /Length 2453 >> +stream +xgPTY{si249IЀ$Hn2-49AD$)8:EEyqpQQYU[[Ϗ:;羺Uz +0D[oo+k?Q + +R +se4=ơO$ĵmawGIp+z_o# +zañ)|l%"v;#p8'\ŕq=an/Wś|&߀O bu%KE D%чCI &^'?$-=)JG:ADzHzK&6r +y|A&+*!R-!2,Rl))YrYʬ(^TM^4\th91y1XXX
i*Furyc+ BSشݴU$CWc9qxxxqa1\b(㓄WbDİĂ$W@MrDSQ*NjTSitҳ2tLGl1y9y9gDJ+ryX2BBELq-3Yc)*(*)*.*++*)=U&(#˔{TT<UrTZTUYѪTUuMKg? kXk$ikh44kՂh&1ڇ֠ט᭩_3CұIiezvSۯׯUX?^A נOC-CaNkwZHۈkt1xqSIɌiifv7hnbb~8fuMX*Y[Y +VaVG֊mm866Sl__r@ +UϜZ服/]]ʹ]\Lݶ7W?{t{n<W][\x=VNS7ǷmÖ
=O
4,: + + +4otxpdqh~&Mnlʖ-gaaaý#\#j"CWNgk-NEZFFNGYF.y[w"n)>0-pGo:(H2O:4w7&CɛRTRӬҪ>edje͜r:fg(fn;=b{y;&w:<+n\www̛||~=ߣ~pڽ{p +n~.bE,6)>R)ᕌT4t灎2fYAٻ[(7*=D8zHPQURYR*jڮFfoa#6GZkjk?9ι^Xڱ
YǛ=d,\̜ +=uGZuZm/ +i?\Nk/:2;:;]]Cv[tˉ/_(!,]̺8)[z_ rϧoל]x7dercxA;wZ73l=|ýk]Y?24?`,tL`a7->gM`"00>|W%y2ETӴ/7|jq6wk^k?&,YVwFz矽OxPAɏ?M-~'K KKB. t]@B. t]V,r96_6 +7#edoMDEa&s|.7>s7 +endstream +endobj +268 0 obj +<< /D [ 9 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +269 0 obj +<< /D [ 10 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +270 0 obj +<< /D [ 11 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +271 0 obj +<< /D [ 11 0 R /XYZ 72.0 627.192 null ] /S /GoTo /Type /Action >> +endobj +272 0 obj +<< /D [ 11 0 R /XYZ 72.0 127.049 null ] /S /GoTo /Type /Action >> +endobj +273 0 obj +<< /D [ 13 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +274 0 obj +<< /D [ 13 0 R /XYZ 72.0 669.305 null ] /S /GoTo /Type /Action >> +endobj +275 0 obj +<< /D [ 13 0 R /XYZ 72.0 452.406 null ] /S /GoTo /Type /Action >> +endobj +276 0 obj +<< /D [ 14 0 R /XYZ 72.0 519.752 null ] /S /GoTo /Type /Action >> +endobj +277 0 obj +<< /D [ 15 0 R /XYZ 72.0 152.784 null ] /S /GoTo /Type /Action >> +endobj +278 0 obj +<< /D [ 17 0 R /XYZ 72.0 585.874 null ] /S /GoTo /Type /Action >> +endobj +279 0 obj +<< /D [ 19 0 R /XYZ 72.0 636.0 null ] /S /GoTo /Type /Action >> +endobj +280 0 obj +<< /D [ 21 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +281 0 obj +<< /D [ 23 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +282 0 obj +<< /D [ 24 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +283 0 obj +<< /D [ 24 0 R /XYZ 72.0 690.141 null ] /S /GoTo /Type /Action >> +endobj +284 0 obj +<< /D [ 24 0 R /XYZ 72.0 464.807 null ] /S /GoTo /Type /Action >> +endobj +285 0 obj +<< /D [ 26 0 R /XYZ 72.0 408.138 null ] /S /GoTo /Type /Action >> +endobj +286 0 obj +<< /D [ 27 0 R /XYZ 72.0 187.938 null ] /S /GoTo /Type /Action >> +endobj +287 0 obj +<< /D [ 28 0 R /XYZ 72.0 528.576 null ] /S /GoTo /Type /Action >> +endobj +288 0 obj +<< /D [ 28 0 R /XYZ 72.0 360.619 null ] /S /GoTo /Type /Action >> +endobj +289 0 obj +<< /D [ 28 0 R /XYZ 72.0 264.662 null ] /S /GoTo /Type /Action >> +endobj +290 0 obj +<< /D [ 29 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +291 0 obj +<< /D [ 29 0 R /XYZ 72.0 518.119 null ] /S /GoTo /Type /Action >> +endobj +292 0 obj +<< /D [ 30 0 R /XYZ 72.0 410.0 null ] /S /GoTo /Type /Action >> +endobj +293 0 obj +<< /D [ 31 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +294 0 obj +<< /D [ 31 0 R /XYZ 72.0 667.229 null ] /S /GoTo /Type /Action >> +endobj +295 0 obj +<< /D [ 31 0 R /XYZ 72.0 560.872 null ] /S /GoTo /Type /Action >> +endobj +296 0 obj +<< /D [ 31 0 R /XYZ 72.0 340.617 null ] /S /GoTo /Type /Action >> +endobj +297 0 obj +<< /D [ 32 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +298 0 obj +<< /D [ 32 0 R /XYZ 72.0 393.752 null ] /S /GoTo /Type /Action >> +endobj +299 0 obj +<< /D [ 32 0 R /XYZ 72.0 277.193 null ] /S /GoTo /Type /Action >> +endobj +300 0 obj +<< /D [ 33 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +301 0 obj +<< /D [ 34 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +302 0 obj +<< /D [ 34 0 R /XYZ 72.0 626.773 null ] /S /GoTo /Type /Action >> +endobj +303 0 obj +<< /D [ 34 0 R /XYZ 72.0 127.887 null ] /S /GoTo /Type /Action >> +endobj +304 0 obj +<< /D [ 35 0 R /XYZ 72.0 408.866 null ] /S /GoTo /Type /Action >> +endobj +305 0 obj +<< /D [ 35 0 R /XYZ 72.0 197.346 null ] /S /GoTo /Type /Action >> +endobj +306 0 obj +<< /D [ 36 0 R /XYZ 72.0 650.0 null ] /S /GoTo /Type /Action >> +endobj +307 0 obj +<< /D [ 37 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +308 0 obj +<< /D [ 46 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +309 0 obj +<< /D [ 47 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +310 0 obj +<< /D [ 48 0 R /XYZ 72.0 720.0 null ] /S /GoTo /Type /Action >> +endobj +311 0 obj +<< /S /URI /URI (http://qpdf.sourceforge.net/) >> +endobj +312 0 obj +<< /S /URI /URI (https://github.com/qpdf/qpdf) >> +endobj +313 0 obj +<< /S /URI /URI (http://www.opensource.org/licenses/artistic-license-2.0.php) >> +endobj +314 0 obj +<< /S /URI /URI (http://www.apexcovantage.com) >> +endobj +315 0 obj +<< /S /URI /URI (http://www.zlib.net/) >> +endobj +316 0 obj +<< /S /URI /URI (http://www.pcre.org/) >> +endobj +317 0 obj +<< /S /URI /URI (http://www.gnu.org/software/make) >> +endobj +318 0 obj +<< /S /URI /URI (http://www.perl.org/) >> +endobj +319 0 obj +<< /S /URI /URI (http://www.gnu.org/software/diffutils/) >> +endobj +320 0 obj +<< /S /URI /URI (http://www.remotesensing.org/libtiff/) >> +endobj +321 0 obj +<< /S /URI /URI (http://www.ghostscript.com) >> +endobj +322 0 obj +<< /S /URI /URI (http://downloads.sourceforge.net/docbook/) >> +endobj +323 0 obj +<< /S /URI /URI (http://xml.apache.org/fop/) >> +endobj +324 0 obj +<< /S /URI /URI (http://delphi.about.com/) >> +endobj +xref +0 325 +0000000000 65535 f +0000000015 00000 n +0000000109 00000 n +0000000239 00000 n +0000001177 00000 n +0000001920 00000 n +0000002271 00000 n +0000002455 00000 n +0000002639 00000 n +0000002838 00000 n +0000003037 00000 n +0000003222 00000 n +0000003422 00000 n +0000003607 00000 n +0000003807 00000 n +0000003992 00000 n +0000004177 00000 n +0000004362 00000 n +0000004562 00000 n +0000004747 00000 n +0000004947 00000 n +0000005132 00000 n +0000005317 00000 n +0000005502 00000 n +0000005687 00000 n +0000005872 00000 n +0000006057 00000 n +0000006242 00000 n +0000006427 00000 n +0000006627 00000 n +0000006827 00000 n +0000007012 00000 n +0000007212 00000 n +0000007397 00000 n +0000007582 00000 n +0000007782 00000 n +0000007967 00000 n +0000008152 00000 n +0000008337 00000 n +0000008522 00000 n +0000008707 00000 n +0000008907 00000 n +0000009107 00000 n +0000009292 00000 n +0000009477 00000 n +0000009679 00000 n +0000009881 00000 n +0000010067 00000 n +0000010253 00000 n +0000010455 00000 n +0000010752 00000 n +0000010975 00000 n +0000011383 00000 n +0000012091 00000 n +0000027423 00000 n +0000027499 00000 n +0000028796 00000 n +0000030441 00000 n +0000030549 00000 n +0000033548 00000 n +0000035068 00000 n +0000035136 00000 n +0000038005 00000 n +0000040717 00000 n +0000042990 00000 n +0000046906 00000 n +0000046942 00000 n +0000049676 00000 n +0000053803 00000 n +0000053839 00000 n +0000056581 00000 n +0000058287 00000 n +0000061710 00000 n +0000062221 00000 n +0000063696 00000 n +0000067537 00000 n +0000072114 00000 n +0000076139 00000 n +0000081261 00000 n +0000081297 00000 n +0000085409 00000 n +0000085469 00000 n +0000088414 00000 n +0000091149 00000 n +0000091185 00000 n +0000094271 00000 n +0000097728 00000 n +0000098772 00000 n +0000098808 00000 n +0000101037 00000 n +0000104237 00000 n +0000105725 00000 n +0000108398 00000 n +0000111759 00000 n +0000114812 00000 n +0000114856 00000 n +0000119116 00000 n +0000119240 00000 n +0000122829 00000 n +0000126094 00000 n +0000129342 00000 n +0000129379 00000 n +0000132307 00000 n +0000132352 00000 n +0000134507 00000 n +0000137254 00000 n +0000138932 00000 n +0000138977 00000 n +0000139762 00000 n +0000139801 00000 n +0000139906 00000 n +0000140008 00000 n +0000140117 00000 n +0000140221 00000 n +0000140332 00000 n +0000140433 00000 n +0000140535 00000 n +0000140635 00000 n +0000140732 00000 n +0000140870 00000 n +0000141008 00000 n +0000141146 00000 n +0000141287 00000 n +0000141425 00000 n +0000141566 00000 n +0000141704 00000 n +0000141845 00000 n +0000141983 00000 n +0000142124 00000 n +0000142262 00000 n +0000142403 00000 n +0000142541 00000 n +0000142682 00000 n +0000142820 00000 n +0000142961 00000 n +0000143099 00000 n +0000143238 00000 n +0000143376 00000 n +0000143517 00000 n +0000143655 00000 n +0000143796 00000 n +0000143934 00000 n +0000144075 00000 n +0000144213 00000 n +0000144354 00000 n +0000144492 00000 n +0000144633 00000 n +0000144771 00000 n +0000144912 00000 n +0000145050 00000 n +0000145191 00000 n +0000145329 00000 n +0000145470 00000 n +0000145608 00000 n +0000145749 00000 n +0000145887 00000 n +0000146028 00000 n +0000146165 00000 n +0000146306 00000 n +0000146443 00000 n +0000146584 00000 n +0000146722 00000 n +0000146861 00000 n +0000146999 00000 n +0000147138 00000 n +0000147276 00000 n +0000147417 00000 n +0000147555 00000 n +0000147696 00000 n +0000147834 00000 n +0000147975 00000 n +0000148113 00000 n +0000148252 00000 n +0000148390 00000 n +0000148531 00000 n +0000148669 00000 n +0000148810 00000 n +0000148948 00000 n +0000149089 00000 n +0000149227 00000 n +0000149368 00000 n +0000149506 00000 n +0000149647 00000 n +0000149785 00000 n +0000149926 00000 n +0000150064 00000 n +0000150205 00000 n +0000150343 00000 n +0000150484 00000 n +0000150622 00000 n +0000150763 00000 n +0000150902 00000 n +0000151043 00000 n +0000151181 00000 n +0000151320 00000 n +0000151458 00000 n +0000151599 00000 n +0000151737 00000 n +0000151878 00000 n +0000152016 00000 n +0000152157 00000 n +0000152295 00000 n +0000152436 00000 n +0000152574 00000 n +0000152715 00000 n +0000152853 00000 n +0000152992 00000 n +0000153133 00000 n +0000153274 00000 n +0000153411 00000 n +0000153549 00000 n +0000153690 00000 n +0000153829 00000 n +0000153968 00000 n +0000154106 00000 n +0000154245 00000 n +0000154384 00000 n +0000154523 00000 n +0000154662 00000 n +0000154799 00000 n +0000154936 00000 n +0000155073 00000 n +0000155210 00000 n +0000155351 00000 n +0000155492 00000 n +0000155633 00000 n +0000155774 00000 n +0000155913 00000 n +0000156052 00000 n +0000156190 00000 n +0000156328 00000 n +0000156463 00000 n +0000156598 00000 n +0000156737 00000 n +0000156876 00000 n +0000157017 00000 n +0000157153 00000 n +0000157292 00000 n +0000157431 00000 n +0000157570 00000 n +0000157711 00000 n +0000157852 00000 n +0000157992 00000 n +0000158132 00000 n +0000158269 00000 n +0000158403 00000 n +0000158538 00000 n +0000158679 00000 n +0000158816 00000 n +0000158955 00000 n +0000159092 00000 n +0000159229 00000 n +0000159368 00000 n +0000159507 00000 n +0000159647 00000 n +0000159785 00000 n +0000159924 00000 n +0000160065 00000 n +0000160203 00000 n +0000160342 00000 n +0000160481 00000 n +0000160622 00000 n +0000160761 00000 n +0000160897 00000 n +0000161034 00000 n +0000161175 00000 n +0000161311 00000 n +0000161449 00000 n +0000163981 00000 n +0000164061 00000 n +0000164142 00000 n +0000164223 00000 n +0000164306 00000 n +0000164389 00000 n +0000164470 00000 n +0000164553 00000 n +0000164636 00000 n +0000164719 00000 n +0000164802 00000 n +0000164885 00000 n +0000164966 00000 n +0000165047 00000 n +0000165128 00000 n +0000165209 00000 n +0000165292 00000 n +0000165375 00000 n +0000165458 00000 n +0000165541 00000 n +0000165624 00000 n +0000165707 00000 n +0000165790 00000 n +0000165871 00000 n +0000165954 00000 n +0000166035 00000 n +0000166116 00000 n +0000166199 00000 n +0000166282 00000 n +0000166365 00000 n +0000166446 00000 n +0000166529 00000 n +0000166612 00000 n +0000166693 00000 n +0000166774 00000 n +0000166857 00000 n +0000166940 00000 n +0000167023 00000 n +0000167106 00000 n +0000167187 00000 n +0000167268 00000 n +0000167349 00000 n +0000167430 00000 n +0000167511 00000 n +0000167578 00000 n +0000167645 00000 n +0000167743 00000 n +0000167810 00000 n +0000167869 00000 n +0000167928 00000 n +0000167999 00000 n +0000168058 00000 n +0000168135 00000 n +0000168211 00000 n +0000168276 00000 n +0000168356 00000 n +0000168421 00000 n +trailer << /Info 2 0 R /Root 1 0 R /Size 325 /ID [<9b1c69409fc9a5f50e44b9588e3e60f8><47e08688d23013c99057cfe5d79bca32>] >> +startxref +168484 +%%EOF diff --git a/qpdf/qtest/qpdf/deterministic-id-ny.pdf b/qpdf/qtest/qpdf/deterministic-id-ny.pdf Binary files differnew file mode 100644 index 00000000..40c4b382 --- /dev/null +++ b/qpdf/qtest/qpdf/deterministic-id-ny.pdf diff --git a/qpdf/qtest/qpdf/deterministic-id-yn.pdf b/qpdf/qtest/qpdf/deterministic-id-yn.pdf Binary files differnew file mode 100644 index 00000000..bc05571b --- /dev/null +++ b/qpdf/qtest/qpdf/deterministic-id-yn.pdf diff --git a/qpdf/qtest/qpdf/deterministic-id-yy.pdf b/qpdf/qtest/qpdf/deterministic-id-yy.pdf Binary files differnew file mode 100644 index 00000000..c0baa660 --- /dev/null +++ b/qpdf/qtest/qpdf/deterministic-id-yy.pdf |