diff --git a/ChangeLog b/ChangeLog index a1319681..4f15b9aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2021-11-07 Jay Berkenbilt + + * Relax xref recovery logic a bit so that files whose objects are + either missing endobj or have endobj at other than the beginning + of a line can still be recovered. Fixes #573. + 2021-11-04 Jay Berkenbilt * Add support for OpenSSL 3. Fixes #568. diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 94161c08..4ce60ea2 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -590,7 +590,6 @@ QPDF::reconstruct_xref(QPDFExc& e) this->m->file->seek(0, SEEK_END); qpdf_offset_t eof = this->m->file->tell(); this->m->file->seek(0, SEEK_SET); - bool in_obj = false; qpdf_offset_t line_start = 0; // Don't allow very long tokens here during recovery. static size_t const MAX_LEN = 100; @@ -604,46 +603,36 @@ QPDF::reconstruct_xref(QPDFExc& e) this->m->file->tell() - toO(t1.getValue().length()); if (token_start >= next_line_start) { - // don't process yet + // don't process yet -- wait until we get to the line + // containing this token } - else if (in_obj) - { - if (t1 == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "endobj")) - { - in_obj = false; - } - } - else + else if (t1.getType() == QPDFTokenizer::tt_integer) { - if (t1.getType() == QPDFTokenizer::tt_integer) + QPDFTokenizer::Token t2 = + readToken(this->m->file, MAX_LEN); + QPDFTokenizer::Token t3 = + readToken(this->m->file, MAX_LEN); + if ((t2.getType() == QPDFTokenizer::tt_integer) && + (t3 == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "obj"))) { - QPDFTokenizer::Token t2 = - readToken(this->m->file, MAX_LEN); - QPDFTokenizer::Token t3 = - readToken(this->m->file, MAX_LEN); - if ((t2.getType() == QPDFTokenizer::tt_integer) && - (t3 == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "obj"))) - { - in_obj = true; - int obj = QUtil::string_to_int(t1.getValue().c_str()); - int gen = QUtil::string_to_int(t2.getValue().c_str()); - insertXrefEntry(obj, 1, token_start, gen, true); - } + int obj = QUtil::string_to_int(t1.getValue().c_str()); + int gen = QUtil::string_to_int(t2.getValue().c_str()); + insertXrefEntry(obj, 1, token_start, gen, true); } - else if ((! this->m->trailer.isInitialized()) && - (t1 == QPDFTokenizer::Token( - QPDFTokenizer::tt_word, "trailer"))) - { - QPDFObjectHandle t = + } + else if ((! this->m->trailer.isInitialized()) && + (t1 == QPDFTokenizer::Token( + QPDFTokenizer::tt_word, "trailer"))) + { + QPDFObjectHandle t = readObject(this->m->file, "trailer", 0, 0, false); - if (! t.isDictionary()) - { - // Oh well. It was worth a try. - } - else - { - setTrailer(t); - } + if (! t.isDictionary()) + { + // Oh well. It was worth a try. + } + else + { + setTrailer(t); } } this->m->file->seek(next_line_start, SEEK_SET); diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test index af99bb2a..3c3283e9 100644 --- a/qpdf/qtest/qpdf.test +++ b/qpdf/qtest/qpdf.test @@ -3193,7 +3193,7 @@ $td->runtest("integer type checks", show_ntests(); # ---------- $td->notify("--- Recovery Tests ---"); -$n_tests += @badfiles + 9; +$n_tests += @badfiles + 11; # Recovery tests. These are mostly after-the-fact -- when recovery # was implemented, some degree of recovery was possible on many of the @@ -3268,11 +3268,20 @@ $td->runtest("xref loop with append", {$td->FILE => "append-xref-loop.out", $td->EXIT_STATUS => 3}, $td->NORMALIZE_NEWLINES); - $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "append-xref-loop-fixed.pdf"}); +$td->runtest("endobj not at newline", + {$td->COMMAND => + "qpdf --deterministic-id endobj-at-eol.pdf a.pdf"}, + {$td->FILE => "endobj-at-eol.out", + $td->EXIT_STATUS => 3}, + $td->NORMALIZE_NEWLINES); +$td->runtest("check output", + {$td->FILE => "a.pdf"}, + {$td->FILE => "endobj-at-eol-fixed.pdf"}); + show_ntests(); # ---------- $td->notify("--- Basic Parsing Tests ---"); diff --git a/qpdf/qtest/qpdf/endobj-at-eol-fixed.pdf b/qpdf/qtest/qpdf/endobj-at-eol-fixed.pdf new file mode 100644 index 00000000..b39ac1ca Binary files /dev/null and b/qpdf/qtest/qpdf/endobj-at-eol-fixed.pdf differ diff --git a/qpdf/qtest/qpdf/endobj-at-eol.out b/qpdf/qtest/qpdf/endobj-at-eol.out new file mode 100644 index 00000000..f1eaafbe --- /dev/null +++ b/qpdf/qtest/qpdf/endobj-at-eol.out @@ -0,0 +1,4 @@ +WARNING: endobj-at-eol.pdf: file is damaged +WARNING: endobj-at-eol.pdf (offset 523): xref not found +WARNING: endobj-at-eol.pdf: Attempting to reconstruct cross-reference table +qpdf: operation succeeded with warnings; resulting file may have some problems diff --git a/qpdf/qtest/qpdf/endobj-at-eol.pdf b/qpdf/qtest/qpdf/endobj-at-eol.pdf new file mode 100644 index 00000000..38dac8b2 Binary files /dev/null and b/qpdf/qtest/qpdf/endobj-at-eol.pdf differ diff --git a/qpdf/qtest/qpdf/issue-202.out b/qpdf/qtest/qpdf/issue-202.out index edac1f2d..164c4959 100644 --- a/qpdf/qtest/qpdf/issue-202.out +++ b/qpdf/qtest/qpdf/issue-202.out @@ -2,4 +2,5 @@ WARNING: issue-202.pdf (trailer, offset 55770): ignoring excessively deeply nest WARNING: issue-202.pdf: file is damaged WARNING: issue-202.pdf (offset 54769): expected trailer dictionary WARNING: issue-202.pdf: Attempting to reconstruct cross-reference table +WARNING: issue-202.pdf (trailer, offset 55770): ignoring excessively deeply nested data structure issue-202.pdf: unable to find trailer dictionary while recovering damaged file diff --git a/qpdf/qtest/qpdf/issue-335a.out b/qpdf/qtest/qpdf/issue-335a.out index 19172a04..7665942a 100644 --- a/qpdf/qtest/qpdf/issue-335a.out +++ b/qpdf/qtest/qpdf/issue-335a.out @@ -802,4 +802,515 @@ WARNING: issue-335a.pdf (trailer, offset 3589): unexpected ) WARNING: issue-335a.pdf (trailer, offset 3602): unknown token while reading object; treating as string WARNING: issue-335a.pdf (trailer, offset 3610): unknown token while reading object; treating as string WARNING: issue-335a.pdf (trailer, offset 3610): too many errors; giving up on reading object -issue-335a.pdf: unable to find trailer dictionary while recovering damaged file +WARNING: issue-335a.pdf (trailer, offset 16485): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16528): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16529): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16530): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16545): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16546): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16546): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16498): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16513): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16528): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16529): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16530): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16545): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16545): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16511): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16512): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16513): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16528): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16529): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16530): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16530): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16526): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16527): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16528): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16529): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16530): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16545): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16545): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16543): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16544): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16545): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16546): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16547): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16548): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16548): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16561): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16562): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16563): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16763): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16764): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16766): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16766): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16575): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16599): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16613): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16614): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16615): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16739): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16763): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16763): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16674): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16717): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16718): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16719): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16734): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16739): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16739): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16687): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16702): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16717): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16718): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16719): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16734): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16734): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16700): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16701): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16702): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16717): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16718): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16719): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16719): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16715): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16716): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16717): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16718): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16719): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16734): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16734): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16732): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16733): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16734): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16739): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16763): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16764): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16764): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16752): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16761): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16762): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16763): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16764): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16766): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 16766): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16779): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16782): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16793): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19808): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19810): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19872): name with stray # will not work with PDF >= 1.2 +WARNING: issue-335a.pdf (trailer, offset 19875): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19875): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16793): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19808): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19810): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19872): name with stray # will not work with PDF >= 1.2 +WARNING: issue-335a.pdf (trailer, offset 19875): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19876): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19956): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19956): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16806): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16821): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19808): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19810): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19872): name with stray # will not work with PDF >= 1.2 +WARNING: issue-335a.pdf (trailer, offset 19875): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19876): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19876): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 16819): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 16820): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 16821): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19808): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19810): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19872): name with stray # will not work with PDF >= 1.2 +WARNING: issue-335a.pdf (trailer, offset 19875): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19875): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 19837): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 19838): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19871): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19872): name with stray # will not work with PDF >= 1.2 +WARNING: issue-335a.pdf (trailer, offset 19875): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19876): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19956): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19956): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 19852): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19869): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19870): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19871): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19872): name with stray # will not work with PDF >= 1.2 +WARNING: issue-335a.pdf (trailer, offset 19875): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19876): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19876): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 19867): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 19868): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19869): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19870): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19871): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19872): name with stray # will not work with PDF >= 1.2 +WARNING: issue-335a.pdf (trailer, offset 19875): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19875): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 19890): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19906): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19956): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19959): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19968): invalid character (t) in hexstring +WARNING: issue-335a.pdf (trailer, offset 19971): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19971): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 19904): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 19905): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19906): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19956): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19959): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19968): invalid character (t) in hexstring +WARNING: issue-335a.pdf (trailer, offset 19968): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 19920): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19954): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 19956): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19959): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19968): invalid character (t) in hexstring +WARNING: issue-335a.pdf (trailer, offset 19971): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 19971): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 19968): invalid character (t) in hexstring +WARNING: issue-335a.pdf (trailer, offset 19971): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20092): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20103): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20110): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20114): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20114): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 20164): unexpected > +WARNING: issue-335a.pdf (trailer, offset 20170): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20173): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20186): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20189): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20219): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20219): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 20230): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20232): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 20233): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 20234): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20236): invalid character ({) in hexstring +WARNING: issue-335a.pdf (trailer, offset 20238): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 20238): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 20424): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20431): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20446): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20601): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 20602): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20604): invalid character ({) in hexstring +WARNING: issue-335a.pdf (trailer, offset 20604): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 20446): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20601): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 20602): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20604): invalid character ({) in hexstring +WARNING: issue-335a.pdf (trailer, offset 20606): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 20607): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 20607): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 20598): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20600): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 20601): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 20602): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20604): invalid character ({) in hexstring +WARNING: issue-335a.pdf (trailer, offset 20606): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 20606): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 20684): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20683): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 20748): stream keyword followed by extraneous whitespace +WARNING: issue-335a.pdf (trailer, offset 20679): stream dictionary lacks /Length key +WARNING: issue-335a.pdf (trailer, offset 20749): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 20749): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 20756): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 20787): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 20787): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 20812): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20803): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 20803): dictionary has duplicated key /Length; last occurrence overrides earlier ones +WARNING: issue-335a.pdf (trailer, offset 20843): stream keyword followed by extraneous whitespace +WARNING: issue-335a.pdf (trailer, offset 20800): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 20844): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 20844): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 20851): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 20882): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 20882): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 20914): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20898): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 20895): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 20929): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 20929): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 20949): unexpected > +WARNING: issue-335a.pdf (trailer, offset 20957): unexpected > +WARNING: issue-335a.pdf (trailer, offset 20958): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20960): unexpected > +WARNING: issue-335a.pdf (trailer, offset 20961): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 20972): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 20973): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 20973): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21042): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21026): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 21023): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 21057): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 21057): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 21077): unexpected > +WARNING: issue-335a.pdf (trailer, offset 21085): unexpected > +WARNING: issue-335a.pdf (trailer, offset 21086): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21088): unexpected > +WARNING: issue-335a.pdf (trailer, offset 21089): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21100): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 21101): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 21101): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21118): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21158): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 21202): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21205): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 21207): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21212): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21212): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21132): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21138): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21156): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21157): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 21158): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 21202): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21202): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21154): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 21155): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 21156): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21157): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 21158): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 21202): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21202): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21172): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21199): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21201): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 21202): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21205): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 21207): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21207): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21228): treating unexpected brace token as null +WARNING: issue-335a.pdf (trailer, offset 21229): unexpected ) +WARNING: issue-335a.pdf (trailer, offset 21230): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21262): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21267): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21277): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21277): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21277): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21287): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21389): unexpected dictionary close token +WARNING: issue-335a.pdf (trailer, offset 21392): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21400): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21430): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21438): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21441): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21444): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21452): invalid character (-) in hexstring +WARNING: issue-335a.pdf (trailer, offset 21819): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21819): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21287): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21389): unexpected dictionary close token +WARNING: issue-335a.pdf (trailer, offset 21392): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21400): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21430): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21438): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21441): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21444): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21452): invalid character (-) in hexstring +WARNING: issue-335a.pdf (trailer, offset 21819): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21819): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21407): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 21438): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 21438): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 21452): invalid character (-) in hexstring +WARNING: issue-335a.pdf (trailer, offset 21837): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21850): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 21892): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21900): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21903): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21906): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21918): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21925): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21925): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21918): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21925): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21937): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21962): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21991): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22000): invalid character (t) in hexstring +WARNING: issue-335a.pdf (trailer, offset 22003): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22028): unexpected > +WARNING: issue-335a.pdf (trailer, offset 22030): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22038): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake3 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake4 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake5 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake6 +WARNING: issue-335a.pdf (trailer, offset 21936): dictionary has duplicated key /Length; last occurrence overrides earlier ones +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake7 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake8 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake9 +WARNING: issue-335a.pdf (trailer, offset 22044): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22052): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22064): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22064): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 21937): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21962): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21991): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22000): invalid character (t) in hexstring +WARNING: issue-335a.pdf (trailer, offset 22003): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22028): unexpected > +WARNING: issue-335a.pdf (trailer, offset 22030): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22038): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake3 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake4 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake5 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake6 +WARNING: issue-335a.pdf (trailer, offset 21936): dictionary has duplicated key /Length; last occurrence overrides earlier ones +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake7 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake8 +WARNING: issue-335a.pdf (trailer, offset 21936): expected dictionary key but found non-name object; inserting key /QPDFFake9 +WARNING: issue-335a.pdf (trailer, offset 21932): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 22052): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 22052): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 22000): invalid character (t) in hexstring +WARNING: issue-335a.pdf (trailer, offset 22088): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22087): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22083): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 22136): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 22136): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 22178): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22190): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22202): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22218): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22201): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22201): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (trailer, offset 22230): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22238): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake3 +WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake4 +WARNING: issue-335a.pdf (trailer, offset 22177): expected dictionary key but found non-name object; inserting key /QPDFFake5 +WARNING: issue-335a.pdf (trailer, offset 22276): stream keyword followed by carriage return only +WARNING: issue-335a.pdf (trailer, offset 22173): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 22276): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 22276): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 22202): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22218): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22201): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22201): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (trailer, offset 22197): stream dictionary lacks /Length key +WARNING: issue-335a.pdf (trailer, offset 22238): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 22238): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 22327): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22336): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22338): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22355): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22360): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake3 +WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake4 +WARNING: issue-335a.pdf (trailer, offset 22326): expected dictionary key but found non-name object; inserting key /QPDFFake5 +WARNING: issue-335a.pdf (trailer, offset 22322): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 22373): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 22373): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 22437): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22436): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22432): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 22484): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 22484): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 22650): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22656): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22675): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22687): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22690): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22702): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22701): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22740): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22748): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22761): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22791): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22794): unexpected > +WARNING: issue-335a.pdf (trailer, offset 22796): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22804): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake3 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake4 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake5 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake6 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake7 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake8 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake9 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake10 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake11 +WARNING: issue-335a.pdf (trailer, offset 22810): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22817): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22817): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 22687): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22690): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22702): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22701): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22740): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22748): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22761): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22791): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22794): unexpected > +WARNING: issue-335a.pdf (trailer, offset 22796): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22804): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake3 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake4 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake5 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake6 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake7 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake8 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake9 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake10 +WARNING: issue-335a.pdf (trailer, offset 22686): expected dictionary key but found non-name object; inserting key /QPDFFake11 +WARNING: issue-335a.pdf (trailer, offset 22817): stream keyword followed by carriage return only +WARNING: issue-335a.pdf (trailer, offset 22682): stream dictionary lacks /Length key +WARNING: issue-335a.pdf (trailer, offset 22817): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 22817): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 22702): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22701): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22697): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (trailer, offset 22748): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 22748): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 22845): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22869): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 22844): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (trailer, offset 22844): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (trailer, offset 22844): expected dictionary key but found non-name object; inserting key /QPDFFake3 +WARNING: issue-335a.pdf (trailer, offset 22898): expected endstream +WARNING: issue-335a.pdf (trailer, offset 22882): attempting to recover stream length +WARNING: issue-335a.pdf (trailer, offset 22882): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (trailer, offset 23098): invalid character (t) in hexstring +WARNING: issue-335a.pdf (trailer, offset 23101): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23108): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23130): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23147): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23155): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23155): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 23108): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23130): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23147): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23155): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23196): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23324): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (trailer, offset 23324): too many errors; giving up on reading object +WARNING: issue-335a.pdf (trailer, offset 23411): dictionary ended prematurely; using null as value for last key +WARNING: issue-335a.pdf (object 5 0, offset 23451): invalid character (ÿ) in hexstring +WARNING: issue-335a.pdf (object 5 0, offset 23458): unknown token while reading object; treating as string +WARNING: issue-335a.pdf (object 5 0, offset 23444): expected dictionary key but found non-name object; inserting key /QPDFFake1 +WARNING: issue-335a.pdf (object 5 0, offset 23444): expected dictionary key but found non-name object; inserting key /QPDFFake2 +WARNING: issue-335a.pdf (object 5 0, offset 23440): /Length key in stream dictionary is not an integer +WARNING: issue-335a.pdf (object 5 0, offset 23485): attempting to recover stream length +WARNING: issue-335a.pdf (object 5 0, offset 23485): unable to recover stream data; treating stream as empty +WARNING: issue-335a.pdf (object 5 0, offset 24974): expected endobj +WARNING: issue-335a.pdf (object 5 0, offset 24974): EOF after endobj +issue-335a.pdf (offset 24974): unable to find /Root dictionary