aboutsummaryrefslogtreecommitdiffstats
path: root/examples/qtest
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2008-04-29 14:55:25 +0200
committerJay Berkenbilt <ejb@ql.org>2008-04-29 14:55:25 +0200
commit9a0b88bf7777c153dc46ace22db74ef24d51583a (patch)
treef567ac1cf2bf5071a611eb49323a935b6ac938ff /examples/qtest
downloadqpdf-9a0b88bf7777c153dc46ace22db74ef24d51583a.tar.zst
update release date to actual daterelease-qpdf-2.0
git-svn-id: svn+q:///qpdf/trunk@599 71b93d88-0707-0410-a8cf-f5a4172ac649
Diffstat (limited to 'examples/qtest')
-rw-r--r--examples/qtest/bookmarks.test49
-rw-r--r--examples/qtest/bookmarks/1.pdf1502
-rw-r--r--examples/qtest/bookmarks/2.pdf79
-rw-r--r--examples/qtest/bookmarks/3.pdf1
-rw-r--r--examples/qtest/bookmarks/4.pdfbin0 -> 11561 bytes
-rw-r--r--examples/qtest/bookmarks/5.pdf1573
-rw-r--r--examples/qtest/bookmarks/encrypted.out11
-rw-r--r--examples/qtest/bookmarks/test.-show-open.-lines.out22
-rw-r--r--examples/qtest/bookmarks/test.-show-open.-numbers.out11
-rw-r--r--examples/qtest/bookmarks/test.-show-open..out11
-rw-r--r--examples/qtest/bookmarks/test..-lines.out22
-rw-r--r--examples/qtest/bookmarks/test..-numbers.out11
-rw-r--r--examples/qtest/bookmarks/test...out11
-rw-r--r--examples/qtest/mod-info.test93
-rw-r--r--examples/qtest/mod-info/dump.out11
-rw-r--r--examples/qtest/mod-info/files/1.qdfbin0 -> 6842 bytes
-rw-r--r--examples/qtest/mod-info/files/2.qdf1338
-rw-r--r--examples/qtest/mod-info/files/3.qdfbin0 -> 6245 bytes
-rw-r--r--examples/qtest/mod-info/files/4.qdfbin0 -> 6252 bytes
-rw-r--r--examples/qtest/mod-info/files/empty-info.pdfbin0 -> 5802 bytes
-rw-r--r--examples/qtest/mod-info/files/no-info.pdfbin0 -> 5790 bytes
-rw-r--r--examples/qtest/mod-info/files/source1.pdfbin0 -> 5932 bytes
-rw-r--r--examples/qtest/mod-info/files/source2.pdfbin0 -> 157418 bytes
-rw-r--r--examples/qtest/mod-info/usage.out5
-rw-r--r--examples/qtest/npages.test23
-rw-r--r--examples/qtest/npages/bad1
-rw-r--r--examples/qtest/npages/minimal.pdf79
27 files changed, 4853 insertions, 0 deletions
diff --git a/examples/qtest/bookmarks.test b/examples/qtest/bookmarks.test
new file mode 100644
index 00000000..4cf4abcf
--- /dev/null
+++ b/examples/qtest/bookmarks.test
@@ -0,0 +1,49 @@
+#!/usr/bin/env perl
+require 5.008;
+BEGIN { $^W = 1; }
+use strict;
+
+chdir("bookmarks");
+
+require TestDriver;
+
+my $td = new TestDriver('pdf-bookmarks');
+
+foreach my $show ("", " -show-open")
+{
+ foreach my $style ("", " -lines", " -numbers")
+ {
+ my $out = "test.$show.$style.out";
+ $out =~ s/ //g;
+ $td->runtest("show:$show, style:$style",
+ {$td->COMMAND => "pdf-bookmarks $show $style 1.pdf"},
+ {$td->FILE => $out, $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+ }
+}
+$td->runtest("no bookmarks",
+ {$td->COMMAND => "pdf-bookmarks 2.pdf"},
+ {$td->STRING => "2.pdf has no bookmarks\n",
+ $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+
+$td->runtest("bad",
+ {$td->COMMAND => "pdf-bookmarks 3.pdf"},
+ {$td->STRING => "pdf-bookmarks processing file 3.pdf: " .
+ "3.pdf: offset 0: not a PDF file\n",
+ $td->EXIT_STATUS => 2},
+ $td->NORMALIZE_NEWLINES);
+
+$td->runtest("encrypted, targets",
+ {$td->COMMAND => "pdf-bookmarks -show-targets 4.pdf user"},
+ {$td->FILE => "encrypted.out",
+ $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+
+$td->runtest("bookmarks deleted",
+ {$td->COMMAND => "pdf-bookmarks 5.pdf user"},
+ {$td->STRING => "5.pdf has no bookmarks\n",
+ $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+
+$td->report(10);
diff --git a/examples/qtest/bookmarks/1.pdf b/examples/qtest/bookmarks/1.pdf
new file mode 100644
index 00000000..2003cf97
--- /dev/null
+++ b/examples/qtest/bookmarks/1.pdf
@@ -0,0 +1,1502 @@
+%PDF-1.3
+%
+%QDF-1.0
+
+1 0 obj
+<<
+ /PageLabels << /Nums [
+ 0 << /P () >>
+ 2 << /S /r /St 1 >>
+ 7 << /P () >>
+ 9 << /S /r /St 6 >>
+ 11 << /P () >>
+ 12 << /S /D /St 2 >>
+ 15 << /S /D /St 6 >>
+ 19 << /P () >>
+ 20 << /S /D /St 12 >>
+ 22 << /S /D /St 16059 >>
+ 23 << /S /r /St 50 >>
+ 29 << /S /r /St 54 >>
+ ] >>
+ /Pages 2 0 R
+ /Type /Catalog
+ /PageMode /UseOutlines
+ /Outlines 95 0 R
+>>
+endobj
+
+2 0 obj
+<<
+ /Count 30
+ /Kids [
+ 3 0 R
+ 4 0 R
+ 5 0 R
+ 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
+ ]
+ /Type /Pages
+>>
+endobj
+
+%% Page 1
+3 0 obj
+<<
+ /Contents 33 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 2
+4 0 obj
+<<
+ /Contents 37 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 3
+5 0 obj
+<<
+ /Contents 39 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 4
+6 0 obj
+<<
+ /Contents 41 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 5
+7 0 obj
+<<
+ /Contents 43 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 6
+8 0 obj
+<<
+ /Contents 45 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 7
+9 0 obj
+<<
+ /Contents 47 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 8
+10 0 obj
+<<
+ /Contents 49 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 9
+11 0 obj
+<<
+ /Contents 51 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 10
+12 0 obj
+<<
+ /Contents 53 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 11
+13 0 obj
+<<
+ /Contents 55 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 12
+14 0 obj
+<<
+ /Contents 57 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 13
+15 0 obj
+<<
+ /Contents 59 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 14
+16 0 obj
+<<
+ /Contents 61 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 15
+17 0 obj
+<<
+ /Contents 63 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 16
+18 0 obj
+<<
+ /Contents 65 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 17
+19 0 obj
+<<
+ /Contents 67 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 18
+20 0 obj
+<<
+ /Contents 69 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 19
+21 0 obj
+<<
+ /Contents 71 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 20
+22 0 obj
+<<
+ /Contents 73 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 21
+23 0 obj
+<<
+ /Contents 75 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 22
+24 0 obj
+<<
+ /Contents 77 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 23
+25 0 obj
+<<
+ /Contents 79 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 24
+26 0 obj
+<<
+ /Contents 81 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 25
+27 0 obj
+<<
+ /Contents 83 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 26
+28 0 obj
+<<
+ /Contents 85 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 27
+29 0 obj
+<<
+ /Contents 87 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 28
+30 0 obj
+<<
+ /Contents 89 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 29
+31 0 obj
+<<
+ /Contents 91 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 30
+32 0 obj
+<<
+ /Contents 93 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Contents for page 1
+33 0 obj
+<<
+ /Length 34 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 0) Tj
+ET
+endstream
+endobj
+
+34 0 obj
+46
+endobj
+
+35 0 obj
+<<
+ /BaseFont /Helvetica
+ /Encoding /WinAnsiEncoding
+ /Name /F1
+ /Subtype /Type1
+ /Type /Font
+>>
+endobj
+
+36 0 obj
+[
+ /PDF
+ /Text
+]
+endobj
+
+%% Contents for page 2
+37 0 obj
+<<
+ /Length 38 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 1) Tj
+ET
+endstream
+endobj
+
+38 0 obj
+46
+endobj
+
+%% Contents for page 3
+39 0 obj
+<<
+ /Length 40 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 2) Tj
+ET
+endstream
+endobj
+
+40 0 obj
+46
+endobj
+
+%% Contents for page 4
+41 0 obj
+<<
+ /Length 42 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 3) Tj
+ET
+endstream
+endobj
+
+42 0 obj
+46
+endobj
+
+%% Contents for page 5
+43 0 obj
+<<
+ /Length 44 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 4) Tj
+ET
+endstream
+endobj
+
+44 0 obj
+46
+endobj
+
+%% Contents for page 6
+45 0 obj
+<<
+ /Length 46 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 5) Tj
+ET
+endstream
+endobj
+
+46 0 obj
+46
+endobj
+
+%% Contents for page 7
+47 0 obj
+<<
+ /Length 48 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 6) Tj
+ET
+endstream
+endobj
+
+48 0 obj
+46
+endobj
+
+%% Contents for page 8
+49 0 obj
+<<
+ /Length 50 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 7) Tj
+ET
+endstream
+endobj
+
+50 0 obj
+46
+endobj
+
+%% Contents for page 9
+51 0 obj
+<<
+ /Length 52 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 8) Tj
+ET
+endstream
+endobj
+
+52 0 obj
+46
+endobj
+
+%% Contents for page 10
+53 0 obj
+<<
+ /Length 54 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 9) Tj
+ET
+endstream
+endobj
+
+54 0 obj
+46
+endobj
+
+%% Contents for page 11
+55 0 obj
+<<
+ /Length 56 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 10) Tj
+ET
+endstream
+endobj
+
+56 0 obj
+47
+endobj
+
+%% Contents for page 12
+57 0 obj
+<<
+ /Length 58 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 11) Tj
+ET
+endstream
+endobj
+
+58 0 obj
+47
+endobj
+
+%% Contents for page 13
+59 0 obj
+<<
+ /Length 60 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 12) Tj
+ET
+endstream
+endobj
+
+60 0 obj
+47
+endobj
+
+%% Contents for page 14
+61 0 obj
+<<
+ /Length 62 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 13) Tj
+ET
+endstream
+endobj
+
+62 0 obj
+47
+endobj
+
+%% Contents for page 15
+63 0 obj
+<<
+ /Length 64 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 14) Tj
+ET
+endstream
+endobj
+
+64 0 obj
+47
+endobj
+
+%% Contents for page 16
+65 0 obj
+<<
+ /Length 66 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 15) Tj
+ET
+endstream
+endobj
+
+66 0 obj
+47
+endobj
+
+%% Contents for page 17
+67 0 obj
+<<
+ /Length 68 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 16) Tj
+ET
+endstream
+endobj
+
+68 0 obj
+47
+endobj
+
+%% Contents for page 18
+69 0 obj
+<<
+ /Length 70 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 17) Tj
+ET
+endstream
+endobj
+
+70 0 obj
+47
+endobj
+
+%% Contents for page 19
+71 0 obj
+<<
+ /Length 72 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 18) Tj
+ET
+endstream
+endobj
+
+72 0 obj
+47
+endobj
+
+%% Contents for page 20
+73 0 obj
+<<
+ /Length 74 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 19) Tj
+ET
+endstream
+endobj
+
+74 0 obj
+47
+endobj
+
+%% Contents for page 21
+75 0 obj
+<<
+ /Length 76 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 20) Tj
+ET
+endstream
+endobj
+
+76 0 obj
+47
+endobj
+
+%% Contents for page 22
+77 0 obj
+<<
+ /Length 78 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 21) Tj
+ET
+endstream
+endobj
+
+78 0 obj
+47
+endobj
+
+%% Contents for page 23
+79 0 obj
+<<
+ /Length 80 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 22) Tj
+ET
+endstream
+endobj
+
+80 0 obj
+47
+endobj
+
+%% Contents for page 24
+81 0 obj
+<<
+ /Length 82 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 23) Tj
+ET
+endstream
+endobj
+
+82 0 obj
+47
+endobj
+
+%% Contents for page 25
+83 0 obj
+<<
+ /Length 84 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 24) Tj
+ET
+endstream
+endobj
+
+84 0 obj
+47
+endobj
+
+%% Contents for page 26
+85 0 obj
+<<
+ /Length 86 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 25) Tj
+ET
+endstream
+endobj
+
+86 0 obj
+47
+endobj
+
+%% Contents for page 27
+87 0 obj
+<<
+ /Length 88 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 26) Tj
+ET
+endstream
+endobj
+
+88 0 obj
+47
+endobj
+
+%% Contents for page 28
+89 0 obj
+<<
+ /Length 90 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 27) Tj
+ET
+endstream
+endobj
+
+90 0 obj
+47
+endobj
+
+%% Contents for page 29
+91 0 obj
+<<
+ /Length 92 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 28) Tj
+ET
+endstream
+endobj
+
+92 0 obj
+47
+endobj
+
+%% Contents for page 30
+93 0 obj
+<<
+ /Length 94 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 29) Tj
+ET
+endstream
+endobj
+
+94 0 obj
+47
+endobj
+
+95 0 obj
+<<
+ /Type /Outlines
+ /First 97 0 R
+ /Last 96 0 R
+ /Count 6
+>>
+endobj
+
+96 0 obj
+<<
+ /Type /Outline
+ /Title (Isis 1 -> 5: /XYZ null null null)
+ /Parent 95 0 R
+ /Count 4
+ /Prev 97 0 R
+ /First 98 0 R
+ /Last 99 0 R
+ /Dest [ 8 0 R /XYZ null null null ]
+>>
+endobj
+
+97 0 obj
+<<
+ /Type /Outline
+ /Title (Trepak 2 -> 15: /XYZ 66 756 3)
+ /Parent 95 0 R
+ /Next 96 0 R
+ /Dest [ 18 0 R /XYZ 66 756 3 ]
+>>
+endobj
+
+98 0 obj
+<<
+ /Type /Outline
+ /Title (Amanda 1.1 -> 11: /Fit)
+ /Parent 96 0 R
+ /Next 99 0 R
+ /First 100 0 R
+ /Last 101 0 R
+ /Count -3
+ /Dest [ 14 0 R /Fit ]
+>>
+endobj
+
+99 0 obj
+<<
+ /Type /Outline
+ /Title (Sandy 1.2 -> 13: /FitH 792)
+ /Parent 96 0 R
+ /Prev 98 0 R
+ /First 105 0 R
+ /Last 106 0 R
+ /Count 2
+ /Dest [ 16 0 R /FitH 792 ]
+>>
+endobj
+
+100 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.1 -> 12: /FitV 100)
+ /Parent 98 0 R
+ /Next 101 0 R
+ /First 102 0 R
+ /Last 103 0 R
+ /Count -2
+ /Dest [ 15 0 R /FitV 100 ]
+>>
+endobj
+
+101 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.2 -> 12: /XYZ null null null)
+ /Parent 98 0 R
+ /Prev 100 0 R
+ /First 104 0 R
+ /Last 104 0 R
+ /Count 1
+ /Dest [ 15 0 R /XYZ null null null ]
+>>
+endobj
+
+102 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null)
+ /Parent 100 0 R
+ /Next 103 0 R
+ /Dest [ 21 0 R /XYZ null null null ]
+>>
+endobj
+
+103 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null)
+ /Parent 100 0 R
+ /Prev 102 0 R
+ /Dest [ 22 0 R /XYZ null null null ]
+>>
+endobj
+
+104 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null)
+ /Parent 101 0 R
+ /Dest [ 25 0 R /XYZ null null null ]
+>>
+endobj
+
+105 0 obj
+<<
+ /Type /Outline
+ /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770)
+ /Parent 99 0 R
+ /Next 106 0 R
+ /Dest [ 4 0 R /FitR 66 714 180 770 ]
+>>
+endobj
+
+106 0 obj
+<<
+ /Type /Outline
+ /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null)
+ /Parent 99 0 R
+ /Prev 105 0 R
+ /Dest [ 3 0 R /XYZ null null null ]
+>>
+endobj
+
+xref
+0 107
+0000000000 65535 f
+0000000025 00000 n
+0000000434 00000 n
+0000000830 00000 n
+0000001035 00000 n
+0000001240 00000 n
+0000001445 00000 n
+0000001650 00000 n
+0000001855 00000 n
+0000002060 00000 n
+0000002265 00000 n
+0000002471 00000 n
+0000002678 00000 n
+0000002885 00000 n
+0000003092 00000 n
+0000003299 00000 n
+0000003506 00000 n
+0000003713 00000 n
+0000003920 00000 n
+0000004127 00000 n
+0000004334 00000 n
+0000004541 00000 n
+0000004748 00000 n
+0000004955 00000 n
+0000005162 00000 n
+0000005369 00000 n
+0000005576 00000 n
+0000005783 00000 n
+0000005990 00000 n
+0000006197 00000 n
+0000006404 00000 n
+0000006611 00000 n
+0000006818 00000 n
+0000007037 00000 n
+0000007140 00000 n
+0000007160 00000 n
+0000007279 00000 n
+0000007338 00000 n
+0000007441 00000 n
+0000007484 00000 n
+0000007587 00000 n
+0000007630 00000 n
+0000007733 00000 n
+0000007776 00000 n
+0000007879 00000 n
+0000007922 00000 n
+0000008025 00000 n
+0000008068 00000 n
+0000008171 00000 n
+0000008214 00000 n
+0000008317 00000 n
+0000008360 00000 n
+0000008463 00000 n
+0000008507 00000 n
+0000008610 00000 n
+0000008654 00000 n
+0000008758 00000 n
+0000008802 00000 n
+0000008906 00000 n
+0000008950 00000 n
+0000009054 00000 n
+0000009098 00000 n
+0000009202 00000 n
+0000009246 00000 n
+0000009350 00000 n
+0000009394 00000 n
+0000009498 00000 n
+0000009542 00000 n
+0000009646 00000 n
+0000009690 00000 n
+0000009794 00000 n
+0000009838 00000 n
+0000009942 00000 n
+0000009986 00000 n
+0000010090 00000 n
+0000010134 00000 n
+0000010238 00000 n
+0000010282 00000 n
+0000010386 00000 n
+0000010430 00000 n
+0000010534 00000 n
+0000010578 00000 n
+0000010682 00000 n
+0000010726 00000 n
+0000010830 00000 n
+0000010874 00000 n
+0000010978 00000 n
+0000011022 00000 n
+0000011126 00000 n
+0000011170 00000 n
+0000011274 00000 n
+0000011318 00000 n
+0000011422 00000 n
+0000011466 00000 n
+0000011570 00000 n
+0000011590 00000 n
+0000011677 00000 n
+0000011873 00000 n
+0000012019 00000 n
+0000012194 00000 n
+0000012377 00000 n
+0000012568 00000 n
+0000012778 00000 n
+0000012947 00000 n
+0000013116 00000 n
+0000013269 00000 n
+0000013438 00000 n
+trailer <<
+ /Root 1 0 R
+ /Size 107
+>>
+startxref
+13603
+%%EOF
diff --git a/examples/qtest/bookmarks/2.pdf b/examples/qtest/bookmarks/2.pdf
new file mode 100644
index 00000000..a7e01f91
--- /dev/null
+++ b/examples/qtest/bookmarks/2.pdf
@@ -0,0 +1,79 @@
+%PDF-1.3
+1 0 obj
+<<
+ /Type /Catalog
+ /Pages 2 0 R
+>>
+endobj
+
+2 0 obj
+<<
+ /Type /Pages
+ /Kids [
+ 3 0 R
+ ]
+ /Count 1
+>>
+endobj
+
+3 0 obj
+<<
+ /Type /Page
+ /Parent 2 0 R
+ /MediaBox [0 0 612 792]
+ /Contents 4 0 R
+ /Resources <<
+ /ProcSet 5 0 R
+ /Font <<
+ /F1 6 0 R
+ >>
+ >>
+>>
+endobj
+
+4 0 obj
+<<
+ /Length 44
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato) Tj
+ET
+endstream
+endobj
+
+5 0 obj
+[
+ /PDF
+ /Text
+]
+endobj
+
+6 0 obj
+<<
+ /Type /Font
+ /Subtype /Type1
+ /Name /F1
+ /BaseFont /Helvetica
+ /Encoding /WinAnsiEncoding
+>>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000009 00000 n
+0000000063 00000 n
+0000000135 00000 n
+0000000307 00000 n
+0000000403 00000 n
+0000000438 00000 n
+trailer <<
+ /Size 7
+ /Root 1 0 R
+>>
+startxref
+556
+%%EOF
diff --git a/examples/qtest/bookmarks/3.pdf b/examples/qtest/bookmarks/3.pdf
new file mode 100644
index 00000000..a1c0d954
--- /dev/null
+++ b/examples/qtest/bookmarks/3.pdf
@@ -0,0 +1 @@
+potato salad
diff --git a/examples/qtest/bookmarks/4.pdf b/examples/qtest/bookmarks/4.pdf
new file mode 100644
index 00000000..9d25f2f7
--- /dev/null
+++ b/examples/qtest/bookmarks/4.pdf
Binary files differ
diff --git a/examples/qtest/bookmarks/5.pdf b/examples/qtest/bookmarks/5.pdf
new file mode 100644
index 00000000..53a89ae5
--- /dev/null
+++ b/examples/qtest/bookmarks/5.pdf
@@ -0,0 +1,1573 @@
+%PDF-1.3
+%
+%QDF-1.0
+
+1 0 obj
+<<
+ /PageLabels 107 0 R
+ /Pages 2 0 R
+ /Type /Catalog
+ /PageMode /UseOutlines
+ /Outlines 95 0 R
+>>
+endobj
+
+2 0 obj
+<<
+ /Count 30
+ /Kids [
+ 3 0 R
+ 4 0 R
+ 5 0 R
+ 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
+ ]
+ /Type /Pages
+>>
+endobj
+
+%% Page 1
+3 0 obj
+<<
+ /Contents 33 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 2
+4 0 obj
+<<
+ /Contents 37 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 3
+5 0 obj
+<<
+ /Contents 39 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 4
+6 0 obj
+<<
+ /Contents 41 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 5
+7 0 obj
+<<
+ /Contents 43 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 6
+8 0 obj
+<<
+ /Contents 45 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 7
+9 0 obj
+<<
+ /Contents 47 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 8
+10 0 obj
+<<
+ /Contents 49 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 9
+11 0 obj
+<<
+ /Contents 51 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 10
+12 0 obj
+<<
+ /Contents 53 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 11
+13 0 obj
+<<
+ /Contents 55 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 12
+14 0 obj
+<<
+ /Contents 57 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 13
+15 0 obj
+<<
+ /Contents 59 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 14
+16 0 obj
+<<
+ /Contents 61 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 15
+17 0 obj
+<<
+ /Contents 63 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 16
+18 0 obj
+<<
+ /Contents 65 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 17
+19 0 obj
+<<
+ /Contents 67 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 18
+20 0 obj
+<<
+ /Contents 69 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 19
+21 0 obj
+<<
+ /Contents 71 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 20
+22 0 obj
+<<
+ /Contents 73 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 21
+23 0 obj
+<<
+ /Contents 75 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 22
+24 0 obj
+<<
+ /Contents 77 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 23
+25 0 obj
+<<
+ /Contents 79 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 24
+26 0 obj
+<<
+ /Contents 81 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 25
+27 0 obj
+<<
+ /Contents 83 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 26
+28 0 obj
+<<
+ /Contents 85 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 27
+29 0 obj
+<<
+ /Contents 87 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 28
+30 0 obj
+<<
+ /Contents 89 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 29
+31 0 obj
+<<
+ /Contents 91 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Page 30
+32 0 obj
+<<
+ /Contents 93 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 35 0 R
+ >>
+ /ProcSet 36 0 R
+ >>
+ /Type /Page
+>>
+endobj
+
+%% Contents for page 1
+33 0 obj
+<<
+ /Length 34 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 0) Tj
+ET
+endstream
+endobj
+
+34 0 obj
+46
+endobj
+
+35 0 obj
+<<
+ /BaseFont /Helvetica
+ /Encoding /WinAnsiEncoding
+ /Name /F1
+ /Subtype /Type1
+ /Type /Font
+>>
+endobj
+
+36 0 obj
+[
+ /PDF
+ /Text
+]
+endobj
+
+%% Contents for page 2
+37 0 obj
+<<
+ /Length 38 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 1) Tj
+ET
+endstream
+endobj
+
+38 0 obj
+46
+endobj
+
+%% Contents for page 3
+39 0 obj
+<<
+ /Length 40 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 2) Tj
+ET
+endstream
+endobj
+
+40 0 obj
+46
+endobj
+
+%% Contents for page 4
+41 0 obj
+<<
+ /Length 42 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 3) Tj
+ET
+endstream
+endobj
+
+42 0 obj
+46
+endobj
+
+%% Contents for page 5
+43 0 obj
+<<
+ /Length 44 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 4) Tj
+ET
+endstream
+endobj
+
+44 0 obj
+46
+endobj
+
+%% Contents for page 6
+45 0 obj
+<<
+ /Length 46 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 5) Tj
+ET
+endstream
+endobj
+
+46 0 obj
+46
+endobj
+
+%% Contents for page 7
+47 0 obj
+<<
+ /Length 48 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 6) Tj
+ET
+endstream
+endobj
+
+48 0 obj
+46
+endobj
+
+%% Contents for page 8
+49 0 obj
+<<
+ /Length 50 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 7) Tj
+ET
+endstream
+endobj
+
+50 0 obj
+46
+endobj
+
+%% Contents for page 9
+51 0 obj
+<<
+ /Length 52 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 8) Tj
+ET
+endstream
+endobj
+
+52 0 obj
+46
+endobj
+
+%% Contents for page 10
+53 0 obj
+<<
+ /Length 54 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 9) Tj
+ET
+endstream
+endobj
+
+54 0 obj
+46
+endobj
+
+%% Contents for page 11
+55 0 obj
+<<
+ /Length 56 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 10) Tj
+ET
+endstream
+endobj
+
+56 0 obj
+47
+endobj
+
+%% Contents for page 12
+57 0 obj
+<<
+ /Length 58 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 11) Tj
+ET
+endstream
+endobj
+
+58 0 obj
+47
+endobj
+
+%% Contents for page 13
+59 0 obj
+<<
+ /Length 60 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 12) Tj
+ET
+endstream
+endobj
+
+60 0 obj
+47
+endobj
+
+%% Contents for page 14
+61 0 obj
+<<
+ /Length 62 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 13) Tj
+ET
+endstream
+endobj
+
+62 0 obj
+47
+endobj
+
+%% Contents for page 15
+63 0 obj
+<<
+ /Length 64 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 14) Tj
+ET
+endstream
+endobj
+
+64 0 obj
+47
+endobj
+
+%% Contents for page 16
+65 0 obj
+<<
+ /Length 66 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 15) Tj
+ET
+endstream
+endobj
+
+66 0 obj
+47
+endobj
+
+%% Contents for page 17
+67 0 obj
+<<
+ /Length 68 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 16) Tj
+ET
+endstream
+endobj
+
+68 0 obj
+47
+endobj
+
+%% Contents for page 18
+69 0 obj
+<<
+ /Length 70 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 17) Tj
+ET
+endstream
+endobj
+
+70 0 obj
+47
+endobj
+
+%% Contents for page 19
+71 0 obj
+<<
+ /Length 72 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 18) Tj
+ET
+endstream
+endobj
+
+72 0 obj
+47
+endobj
+
+%% Contents for page 20
+73 0 obj
+<<
+ /Length 74 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 19) Tj
+ET
+endstream
+endobj
+
+74 0 obj
+47
+endobj
+
+%% Contents for page 21
+75 0 obj
+<<
+ /Length 76 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 20) Tj
+ET
+endstream
+endobj
+
+76 0 obj
+47
+endobj
+
+%% Contents for page 22
+77 0 obj
+<<
+ /Length 78 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 21) Tj
+ET
+endstream
+endobj
+
+78 0 obj
+47
+endobj
+
+%% Contents for page 23
+79 0 obj
+<<
+ /Length 80 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 22) Tj
+ET
+endstream
+endobj
+
+80 0 obj
+47
+endobj
+
+%% Contents for page 24
+81 0 obj
+<<
+ /Length 82 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 23) Tj
+ET
+endstream
+endobj
+
+82 0 obj
+47
+endobj
+
+%% Contents for page 25
+83 0 obj
+<<
+ /Length 84 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 24) Tj
+ET
+endstream
+endobj
+
+84 0 obj
+47
+endobj
+
+%% Contents for page 26
+85 0 obj
+<<
+ /Length 86 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 25) Tj
+ET
+endstream
+endobj
+
+86 0 obj
+47
+endobj
+
+%% Contents for page 27
+87 0 obj
+<<
+ /Length 88 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 26) Tj
+ET
+endstream
+endobj
+
+88 0 obj
+47
+endobj
+
+%% Contents for page 28
+89 0 obj
+<<
+ /Length 90 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 27) Tj
+ET
+endstream
+endobj
+
+90 0 obj
+47
+endobj
+
+%% Contents for page 29
+91 0 obj
+<<
+ /Length 92 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 28) Tj
+ET
+endstream
+endobj
+
+92 0 obj
+47
+endobj
+
+%% Contents for page 30
+93 0 obj
+<<
+ /Length 94 0 R
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato 29) Tj
+ET
+endstream
+endobj
+
+94 0 obj
+47
+endobj
+
+95 0 obj
+<<
+ /Type /Outlines
+ /First 96 0 R
+ /Last 97 0 R
+ /Count 6
+>>
+endobj
+
+96 0 obj
+<<
+ /Type /Outline
+ /Title (Iss 1 -> 5: /XYZ null null null)
+ /Parent 95 0 R
+ /Count 4
+ /Next 97 0 R
+ /First 98 0 R
+ /Last 99 0 R
+ /Dest [ 8 0 R /XYZ null null null ]
+>>
+endobj
+
+97 0 obj
+<<
+ /Type /Outline
+ /Title (Trepak 2 -> 15: /XYZ 66 756 3)
+ /Parent 95 0 R
+ /Prev 96 0 R
+ /Dest [ 18 0 R /XYZ 66 756 3 ]
+>>
+endobj
+
+98 0 obj
+<<
+ /Type /Outline
+ /Title (Amanda 1.1 -> 11: /Fit)
+ /Parent 96 0 R
+ /Next 99 0 R
+ /First 100 0 R
+ /Last 101 0 R
+ /Count -3
+ /Dest [ 14 0 R /Fit ]
+>>
+endobj
+
+99 0 obj
+<<
+ /Type /Outline
+ % /Title (Sandy (Sandy [Greek]) 1.2 -> 13: /FitH 792)
+ /Title <feff00530061006e00640079002000f703a303b103bd03b403b900f700200031002e00320020002d003e002000310033003a0020002f00460069007400480020003700390032>
+ /Parent 96 0 R
+ /Prev 98 0 R
+ /First 105 0 R
+ /Last 106 0 R
+ /Count 2
+ /Dest [ 16 0 R /FitH 792 ]
+>>
+endobj
+
+100 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.1 -> 12: /FitV 100)
+ /Parent 98 0 R
+ /Next 101 0 R
+ /First 102 0 R
+ /Last 103 0 R
+ /Count -2
+ /Dest [ 15 0 R /FitV 100 ]
+>>
+endobj
+
+101 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.2 -> 12: /XYZ null null null)
+ /Parent 98 0 R
+ /Prev 100 0 R
+ /First 104 0 R
+ /Last 104 0 R
+ /Count 1
+ /Dest [ 15 0 R /XYZ null null null ]
+>>
+endobj
+
+102 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.1.1 -> 18: /XYZ null null null)
+ /Parent 100 0 R
+ /Next 103 0 R
+ /Dest [ 21 0 R /XYZ null null null ]
+>>
+endobj
+
+103 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.1.2 -> 19: /XYZ null null null)
+ /Parent 100 0 R
+ /Prev 102 0 R
+ /Dest [ 22 0 R /XYZ null null null ]
+>>
+endobj
+
+104 0 obj
+<<
+ /Type /Outline
+ /Title (Isosicle 1.1.2.1 -> 22: /XYZ null null null)
+ /Parent 101 0 R
+ /Dest [ 25 0 R /XYZ null null null ]
+>>
+endobj
+
+105 0 obj
+<<
+ /Type /Outline
+ /Title (Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770)
+ /Parent 99 0 R
+ /Next 106 0 R
+ /Dest [ 4 0 R /FitR 66 714 180 770 ]
+>>
+endobj
+
+106 0 obj
+<<
+ /Type /Outline
+ /Title (Trepsicle 1.2.2 -> 0: /XYZ null null null)
+ /Parent 99 0 R
+ /Prev 105 0 R
+ /Dest [ 3 0 R /XYZ null null null ]
+>>
+endobj
+
+107 0 obj
+ << /Nums [
+ 0 << /P () >>
+ 2 << /S /r /St 1 >>
+ 7 << /P () >>
+ 9 << /S /r /St 6 >>
+ 11 << /P () >>
+ 12 << /S /D /St 2 >>
+ 15 << /S /D /St 6 >>
+ 19 << /P () >>
+ 20 << /S /D /St 12 >>
+ 22 << /S /D /St 16059 >>
+ 23 << /S /r /St 50 >>
+ 29 << /S /r /St 54 >>
+ ] >>
+endobj
+
+xref
+0 108
+0000000000 65535 f
+0000000025 00000 n
+0000000145 00000 n
+0000000541 00000 n
+0000000746 00000 n
+0000000951 00000 n
+0000001156 00000 n
+0000001361 00000 n
+0000001566 00000 n
+0000001771 00000 n
+0000001976 00000 n
+0000002182 00000 n
+0000002389 00000 n
+0000002596 00000 n
+0000002803 00000 n
+0000003010 00000 n
+0000003217 00000 n
+0000003424 00000 n
+0000003631 00000 n
+0000003838 00000 n
+0000004045 00000 n
+0000004252 00000 n
+0000004459 00000 n
+0000004666 00000 n
+0000004873 00000 n
+0000005080 00000 n
+0000005287 00000 n
+0000005494 00000 n
+0000005701 00000 n
+0000005908 00000 n
+0000006115 00000 n
+0000006322 00000 n
+0000006529 00000 n
+0000006748 00000 n
+0000006851 00000 n
+0000006871 00000 n
+0000006990 00000 n
+0000007049 00000 n
+0000007152 00000 n
+0000007195 00000 n
+0000007298 00000 n
+0000007341 00000 n
+0000007444 00000 n
+0000007487 00000 n
+0000007590 00000 n
+0000007633 00000 n
+0000007736 00000 n
+0000007779 00000 n
+0000007882 00000 n
+0000007925 00000 n
+0000008028 00000 n
+0000008071 00000 n
+0000008174 00000 n
+0000008218 00000 n
+0000008321 00000 n
+0000008365 00000 n
+0000008469 00000 n
+0000008513 00000 n
+0000008617 00000 n
+0000008661 00000 n
+0000008765 00000 n
+0000008809 00000 n
+0000008913 00000 n
+0000008957 00000 n
+0000009061 00000 n
+0000009105 00000 n
+0000009209 00000 n
+0000009253 00000 n
+0000009357 00000 n
+0000009401 00000 n
+0000009505 00000 n
+0000009549 00000 n
+0000009653 00000 n
+0000009697 00000 n
+0000009801 00000 n
+0000009845 00000 n
+0000009949 00000 n
+0000009993 00000 n
+0000010097 00000 n
+0000010141 00000 n
+0000010245 00000 n
+0000010289 00000 n
+0000010393 00000 n
+0000010437 00000 n
+0000010541 00000 n
+0000010585 00000 n
+0000010689 00000 n
+0000010733 00000 n
+0000010837 00000 n
+0000010881 00000 n
+0000010985 00000 n
+0000011029 00000 n
+0000011133 00000 n
+0000011177 00000 n
+0000011281 00000 n
+0000011301 00000 n
+0000011388 00000 n
+0000011584 00000 n
+0000011730 00000 n
+0000011905 00000 n
+0000012258 00000 n
+0000012449 00000 n
+0000012659 00000 n
+0000012828 00000 n
+0000012997 00000 n
+0000013150 00000 n
+0000013319 00000 n
+0000013484 00000 n
+trailer <<
+ /Root 1 0 R
+ /Size 108
+>>
+startxref
+13801
+%%EOF
+
+% 1. Delete page labels
+xref
+0 1
+0000000107 65535 f
+107 1
+0000000000 00001 f
+trailer << /Root 1 0 R /Size 108 /Prev 13801 >>
+startxref
+16059
+%%EOF
+
+% 2. Delete outlines, reuse page labels.
+
+107 1 obj
+ << /Nums [
+ 0 << /P () >>
+ 2 << /S /D /St 1 >>
+ 7 << /P () >>
+ 9 << /S /R /St 6 >>
+ 11 << /P () >>
+ 12 << /S /r /St 2 >>
+ 15 << /S /r /St 6 >>
+ 19 << /P () >>
+ 20 << /S /R /St 12 >>
+ 22 << /S /D /St 16059 >>
+ 23 << /S /r /St 50 >>
+ 29 << /S /r /St 54 >>
+ ] >>
+endobj
+
+% Reuse object 1 with the same generation number. Leave outlines
+% there pointing to a deleted object.
+1 0 obj
+<<
+ /PageLabels 107 1 R
+ /Pages 2 0 R
+ /Type /Catalog
+ /PageMode /UseOutlines
+ /Outlines 95 0 R
+>>
+endobj
+
+xref
+0 2
+0000000095 65535 f
+0000016648 00000 n
+95 13
+0000000096 00001 f
+0000000097 00001 f
+0000000098 00001 f
+0000000099 00001 f
+0000000100 00001 f
+0000000101 00001 f
+0000000102 00001 f
+0000000103 00001 f
+0000000104 00001 f
+0000000105 00001 f
+0000000106 00001 f
+0000000000 00001 f
+0000016227 00001 n
+trailer << /Size 108 /Prev 16059 /Root 1 0 R >>
+startxref
+16768
+%%EOF
diff --git a/examples/qtest/bookmarks/encrypted.out b/examples/qtest/bookmarks/encrypted.out
new file mode 100644
index 00000000..4ad63b76
--- /dev/null
+++ b/examples/qtest/bookmarks/encrypted.out
@@ -0,0 +1,11 @@
+[ -> 6 ] Isís 1 -> 5: /XYZ null null null
+[ -> 12 ] Amanda 1.1 -> 11: /Fit
+[ -> 13 ] Isosicle 1.1.1 -> 12: /FitV 100
+[ -> 19 ] Isosicle 1.1.1.1 -> 18: /XYZ null null null
+[ -> 20 ] Isosicle 1.1.1.2 -> 19: /XYZ null null null
+[ -> 13 ] Isosicle 1.1.2 -> 12: /XYZ null null null
+[ -> 23 ] Isosicle 1.1.2.1 -> 22: /XYZ null null null
+[ -> 14 ] Sandy ÷Σανδι÷ 1.2 -> 13: /FitH 792
+[ -> 2 ] Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770
+[ -> 1 ] Trepsicle 1.2.2 -> 0: /XYZ null null null
+[ -> 16 ] Trepak 2 -> 15: /XYZ 66 756 3
diff --git a/examples/qtest/bookmarks/test.-show-open.-lines.out b/examples/qtest/bookmarks/test.-show-open.-lines.out
new file mode 100644
index 00000000..ea66669c
--- /dev/null
+++ b/examples/qtest/bookmarks/test.-show-open.-lines.out
@@ -0,0 +1,22 @@
+|
++-+ ( ) Trepak 2 -> 15: /XYZ 66 756 3
+|
++-+ (v) Isis 1 -> 5: /XYZ null null null
+ |
+ +-+ (>) Amanda 1.1 -> 11: /Fit
+ | |
+ | +-+ (>) Isosicle 1.1.1 -> 12: /FitV 100
+ | | |
+ | | +-+ ( ) Isosicle 1.1.1.1 -> 18: /XYZ null null null
+ | | |
+ | | +-+ ( ) Isosicle 1.1.1.2 -> 19: /XYZ null null null
+ | |
+ | +-+ (v) Isosicle 1.1.2 -> 12: /XYZ null null null
+ | |
+ | +-+ ( ) Isosicle 1.1.2.1 -> 22: /XYZ null null null
+ |
+ +-+ (v) Sandy 1.2 -> 13: /FitH 792
+ |
+ +-+ ( ) Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770
+ |
+ +-+ ( ) Trepsicle 1.2.2 -> 0: /XYZ null null null
diff --git a/examples/qtest/bookmarks/test.-show-open.-numbers.out b/examples/qtest/bookmarks/test.-show-open.-numbers.out
new file mode 100644
index 00000000..3680c2d4
--- /dev/null
+++ b/examples/qtest/bookmarks/test.-show-open.-numbers.out
@@ -0,0 +1,11 @@
+1. ( ) Trepak 2 -> 15: /XYZ 66 756 3
+2. (v) Isis 1 -> 5: /XYZ null null null
+2.1. (>) Amanda 1.1 -> 11: /Fit
+2.1.1. (>) Isosicle 1.1.1 -> 12: /FitV 100
+2.1.1.1. ( ) Isosicle 1.1.1.1 -> 18: /XYZ null null null
+2.1.1.2. ( ) Isosicle 1.1.1.2 -> 19: /XYZ null null null
+2.1.2. (v) Isosicle 1.1.2 -> 12: /XYZ null null null
+2.1.2.1. ( ) Isosicle 1.1.2.1 -> 22: /XYZ null null null
+2.2. (v) Sandy 1.2 -> 13: /FitH 792
+2.2.1. ( ) Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770
+2.2.2. ( ) Trepsicle 1.2.2 -> 0: /XYZ null null null
diff --git a/examples/qtest/bookmarks/test.-show-open..out b/examples/qtest/bookmarks/test.-show-open..out
new file mode 100644
index 00000000..46667ef7
--- /dev/null
+++ b/examples/qtest/bookmarks/test.-show-open..out
@@ -0,0 +1,11 @@
+( ) Trepak 2 -> 15: /XYZ 66 756 3
+(v) Isis 1 -> 5: /XYZ null null null
+(>) Amanda 1.1 -> 11: /Fit
+(>) Isosicle 1.1.1 -> 12: /FitV 100
+( ) Isosicle 1.1.1.1 -> 18: /XYZ null null null
+( ) Isosicle 1.1.1.2 -> 19: /XYZ null null null
+(v) Isosicle 1.1.2 -> 12: /XYZ null null null
+( ) Isosicle 1.1.2.1 -> 22: /XYZ null null null
+(v) Sandy 1.2 -> 13: /FitH 792
+( ) Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770
+( ) Trepsicle 1.2.2 -> 0: /XYZ null null null
diff --git a/examples/qtest/bookmarks/test..-lines.out b/examples/qtest/bookmarks/test..-lines.out
new file mode 100644
index 00000000..a6de7db5
--- /dev/null
+++ b/examples/qtest/bookmarks/test..-lines.out
@@ -0,0 +1,22 @@
+|
++-+ Trepak 2 -> 15: /XYZ 66 756 3
+|
++-+ Isis 1 -> 5: /XYZ null null null
+ |
+ +-+ Amanda 1.1 -> 11: /Fit
+ | |
+ | +-+ Isosicle 1.1.1 -> 12: /FitV 100
+ | | |
+ | | +-+ Isosicle 1.1.1.1 -> 18: /XYZ null null null
+ | | |
+ | | +-+ Isosicle 1.1.1.2 -> 19: /XYZ null null null
+ | |
+ | +-+ Isosicle 1.1.2 -> 12: /XYZ null null null
+ | |
+ | +-+ Isosicle 1.1.2.1 -> 22: /XYZ null null null
+ |
+ +-+ Sandy 1.2 -> 13: /FitH 792
+ |
+ +-+ Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770
+ |
+ +-+ Trepsicle 1.2.2 -> 0: /XYZ null null null
diff --git a/examples/qtest/bookmarks/test..-numbers.out b/examples/qtest/bookmarks/test..-numbers.out
new file mode 100644
index 00000000..7ff9e2aa
--- /dev/null
+++ b/examples/qtest/bookmarks/test..-numbers.out
@@ -0,0 +1,11 @@
+1. Trepak 2 -> 15: /XYZ 66 756 3
+2. Isis 1 -> 5: /XYZ null null null
+2.1. Amanda 1.1 -> 11: /Fit
+2.1.1. Isosicle 1.1.1 -> 12: /FitV 100
+2.1.1.1. Isosicle 1.1.1.1 -> 18: /XYZ null null null
+2.1.1.2. Isosicle 1.1.1.2 -> 19: /XYZ null null null
+2.1.2. Isosicle 1.1.2 -> 12: /XYZ null null null
+2.1.2.1. Isosicle 1.1.2.1 -> 22: /XYZ null null null
+2.2. Sandy 1.2 -> 13: /FitH 792
+2.2.1. Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770
+2.2.2. Trepsicle 1.2.2 -> 0: /XYZ null null null
diff --git a/examples/qtest/bookmarks/test...out b/examples/qtest/bookmarks/test...out
new file mode 100644
index 00000000..31a1cf45
--- /dev/null
+++ b/examples/qtest/bookmarks/test...out
@@ -0,0 +1,11 @@
+Trepak 2 -> 15: /XYZ 66 756 3
+Isis 1 -> 5: /XYZ null null null
+Amanda 1.1 -> 11: /Fit
+Isosicle 1.1.1 -> 12: /FitV 100
+Isosicle 1.1.1.1 -> 18: /XYZ null null null
+Isosicle 1.1.1.2 -> 19: /XYZ null null null
+Isosicle 1.1.2 -> 12: /XYZ null null null
+Isosicle 1.1.2.1 -> 22: /XYZ null null null
+Sandy 1.2 -> 13: /FitH 792
+Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770
+Trepsicle 1.2.2 -> 0: /XYZ null null null
diff --git a/examples/qtest/mod-info.test b/examples/qtest/mod-info.test
new file mode 100644
index 00000000..83cc3ba0
--- /dev/null
+++ b/examples/qtest/mod-info.test
@@ -0,0 +1,93 @@
+#!/usr/bin/env perl
+require 5.008;
+BEGIN { $^W = 1; }
+use strict;
+use File::Copy;
+
+chdir("mod-info");
+
+require TestDriver;
+
+my $td = new TestDriver('pdf-mod-info');
+
+my $prg = "pdf-mod-info";
+my $qpdf = $ENV{'QPDF_BIN'} or die;
+
+cleanup();
+
+$td->runtest("usage #1",
+ {$td->COMMAND => "$prg -in target.pdf"},
+ {$td->FILE => "usage.out",
+ $td->EXIT_STATUS => 2});
+
+$td->runtest("usage #2",
+ {$td->COMMAND => "$prg -key abc -val def"},
+ {$td->FILE => "usage.out",
+ $td->EXIT_STATUS => 2});
+
+$td->runtest("usage #3",
+ {$td->COMMAND => "$prg -key abc -val def abc"},
+ {$td->FILE => "usage.out",
+ $td->EXIT_STATUS => 2});
+
+$td->runtest("usage #4",
+ {$td->COMMAND => "$prg -in source1.pdf -key /date -val 01/01/01 -val 12/12/12"},
+ {$td->FILE => "usage.out",
+ $td->EXIT_STATUS => 2});
+
+$td->runtest("dump #1",
+ {$td->COMMAND => "$prg --dump -in files/source1.pdf"},
+ {$td->FILE => "dump.out",
+ $td->EXIT_STATUS => 0});
+
+$td->runtest("dump #2",
+ {$td->COMMAND => "$prg --dump -in files/no-info.pdf"},
+ {$td->STRING => "",
+ $td->EXIT_STATUS => 0});
+
+$td->runtest("dump #3",
+ {$td->COMMAND => "$prg --dump -in files/empty-info.pdf"},
+ {$td->STRING => "",
+ $td->EXIT_STATUS => 0});
+
+run_and_cmp("modify Subject",
+ "$prg -in files/source1.pdf -out out.pdf -key /Subject " .
+ "-val \"Export Business\"",
+ "", "out.pdf", "files/1.qdf");
+
+run_and_cmp("add Subject, remove Producer, modify CreationDate",
+ "$prg -in files/source2.pdf -out out.pdf -key /Subject " .
+ "-val \"Tammlin\" -key /Producer -key /CreationDate -val 12/12",
+ "", "out.pdf", "files/2.qdf");
+
+run_and_cmp("add Subject (empty-info file)",
+ "$prg -in files/empty-info.pdf -out out.pdf -key /Subject " .
+ "-val Tammlin",
+ "", "out.pdf", "files/3.qdf");
+
+copy("files/no-info.pdf", "no-info.pdf") or die "can't copy no-info: $!";
+run_and_cmp("in-place Producer added (no-info file)",
+ "$prg -in no-info.pdf -key /Producer -val \"Obivan Kinobi\"",
+ "", "no-info.pdf", "files/4.qdf");
+
+cleanup();
+
+$td->report(15);
+
+sub cleanup
+{
+ unlink (<*.pdf>);
+}
+
+sub run_and_cmp
+{
+ my ($dsc, $cmd, $out, $fout, $fexp) = @_;
+ $td->runtest($dsc,
+ {$td->COMMAND => "$cmd --static-id"},
+ {$td->STRING => $out,
+ $td->EXIT_STATUS => 0});
+ $td->runtest("$dsc output",
+ {$td->COMMAND => "$qpdf --static-id -qdf $fout -"},
+ {$td->FILE => $fexp,
+ $td->EXIT_STATUS => 0});
+}
diff --git a/examples/qtest/mod-info/dump.out b/examples/qtest/mod-info/dump.out
new file mode 100644
index 00000000..a453f9dd
--- /dev/null
+++ b/examples/qtest/mod-info/dump.out
@@ -0,0 +1,11 @@
+Author: Yours Truly
+ContentTemperature: 100F
+CreationDate: D:20040212104653-05'00'
+Creator: Adobe Acrobat 6.0
+FormerlyKnownAs: target/branch/leaf/leaf.pdf
+Keywords: 40, 128, public, encryption, ignition, primarily prime
+ModDate: D:20040212112832-05'00'
+Producer: Adobe Acrobat 6.0 Image Conversion Plug-in
+Subject: Of The Matter
+Title: My New Car Title
+VeryImportantNote: pordofor stands for portable document format
diff --git a/examples/qtest/mod-info/files/1.qdf b/examples/qtest/mod-info/files/1.qdf
new file mode 100644
index 00000000..2b63f6ae
--- /dev/null
+++ b/examples/qtest/mod-info/files/1.qdf
Binary files differ
diff --git a/examples/qtest/mod-info/files/2.qdf b/examples/qtest/mod-info/files/2.qdf
new file mode 100644
index 00000000..63be2439
--- /dev/null
+++ b/examples/qtest/mod-info/files/2.qdf
@@ -0,0 +1,1338 @@
+%PDF-1.5
+%
+%QDF-1.0
+
+1 0 obj
+<<
+ /Metadata 3 0 R
+ /Pages 5 0 R
+ /Type /Catalog
+>>
+endobj
+
+2 0 obj
+<<
+ /CreationDate (12/12)
+ /Creator (Writer)
+ /ModDate (D:20041221113239-05'00')
+ /Subject (Tammlin)
+>>
+endobj
+
+3 0 obj
+<<
+ /Subtype /XML
+ /Type /Metadata
+ /Length 4 0 R
+>>
+stream
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<?adobe-xap-filters esc="CRLF"?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+<rdf:Description rdf:about='uuid:d8434ae3-1ef1-4c46-8276-e1d75853ad75' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='OpenOffice.org 1.1.2'></rdf:Description>
+<rdf:Description rdf:about='uuid:d8434ae3-1ef1-4c46-8276-e1d75853ad75' xmlns:xap='http://ns.adobe.com/xap/1.0/' xap:CreateDate='2004-12-21T09:50:20-05:00' xap:CreatorTool='Writer' xap:ModifyDate='2004-12-21T11:32:39-05:00' xap:MetadataDate='2004-12-21T11:32:39-05:00'></rdf:Description>
+<rdf:Description rdf:about='uuid:d8434ae3-1ef1-4c46-8276-e1d75853ad75' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:3cc807c7-0bed-463b-9bdf-c902541aab4b'/>
+<rdf:Description rdf:about='uuid:d8434ae3-1ef1-4c46-8276-e1d75853ad75' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'/>
+</rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end='w'?>
+endstream
+endobj
+
+%QDF: ignore_newline
+4 0 obj
+3154
+endobj
+
+5 0 obj
+<<
+ /Count 1
+ /Kids [
+ 6 0 R
+ ]
+ /Type /Pages
+>>
+endobj
+
+%% Page 1
+6 0 obj
+<<
+ /Annots 7 0 R
+ /Contents 8 0 R
+ /MediaBox [
+ 0
+ 0
+ 612
+ 792
+ ]
+ /Parent 5 0 R
+ /Resources 10 0 R
+ /Type /Page
+>>
+endobj
+
+7 0 obj
+[
+ 11 0 R
+]
+endobj
+
+%% Contents for page 1
+8 0 obj
+<<
+ /Length 9 0 R
+>>
+stream
+0 w
+q 0 -0.1 612.1 792.1 re W* n
+q 0 0 0 rg
+BT
+90.1 615.3 Td /F1 80 Tf (abcd) Tj
+151.2 0 Td (-) Tj
+26.6 0 Td (efghjk-) Tj
+ET
+Q
+q 0 0 0 rg
+BT
+90.1 504.8 Td /F1 80 Tf (mn) Tj
+102.4 0 Td ( ) Tj
+20 0 Td (o) Tj
+40.1 0 Td (p) Tj
+39.9 0 Td (-) Tj
+26.8 0 Td (q) Tj
+ET
+Q
+q 0 0 0 rg
+BT
+90.1 394.3 Td /F1 80 Tf (rs) Tj
+58.7 0 Td (tu) Tj
+62.1 0 Td (v) Tj
+40.1 0 Td (w) Tj
+57.8 0 Td ( ) Tj
+20.1 0 Td (xyz) Tj
+ET
+Q
+Q
+endstream
+endobj
+
+9 0 obj
+404
+endobj
+
+10 0 obj
+<<
+ /Font 12 0 R
+ /ProcSet [
+ /PDF
+ ]
+>>
+endobj
+
+11 0 obj
+<<
+ /APEX:Id (353)
+ /APEX:Label (1)
+ /APEX:LabelAp 13 0 R
+ /F 4
+ /Rect [
+ 63.461945
+ 339.112457
+ 525.003418
+ 700.653259
+ ]
+ /Subtype /APEX:Zone
+ /Type /Annot
+>>
+endobj
+
+12 0 obj
+<<
+ /F1 15 0 R
+>>
+endobj
+
+13 0 obj
+<<
+ /BBox [
+ 0.0
+ 0.0
+ 9.199997
+ 12.399994
+ ]
+ /FormType 1
+ /Resources <<
+ /Font 16 0 R
+ /ProcSet [
+ /PDF
+ /Text
+ ]
+ >>
+ /Subtype /Form
+ /Type /XObject
+ /Length 14 0 R
+>>
+stream
+0 0 1 rg
+0 0 9.2 12.4 re
+f
+BT
+1 g
+/LABELFONT 12 Tf
+1 2.32 TD
+(1)Tj
+ET
+endstream
+endobj
+
+14 0 obj
+70
+endobj
+
+15 0 obj
+<<
+ /BaseFont /NimbusRomanNo9L-Regu
+ /FirstChar 0
+ /FontDescriptor 17 0 R
+ /LastChar 255
+ /Subtype /Type1
+ /ToUnicode 18 0 R
+ /Type /Font
+ /Widths [
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 250
+ 333
+ 408
+ 500
+ 500
+ 833
+ 778
+ 333
+ 333
+ 333
+ 500
+ 564
+ 250
+ 333
+ 250
+ 278
+ 500
+ 500
+ 500
+ 500
+ 500
+ 500
+ 500
+ 500
+ 500
+ 500
+ 278
+ 278
+ 564
+ 564
+ 564
+ 444
+ 921
+ 722
+ 662
+ 667
+ 718
+ 611
+ 556
+ 722
+ 715
+ 329
+ 389
+ 700
+ 611
+ 883
+ 722
+ 722
+ 552
+ 722
+ 662
+ 556
+ 611
+ 722
+ 722
+ 944
+ 722
+ 722
+ 611
+ 333
+ 278
+ 333
+ 469
+ 500
+ 333
+ 444
+ 500
+ 444
+ 500
+ 444
+ 333
+ 500
+ 500
+ 278
+ 278
+ 500
+ 278
+ 778
+ 500
+ 500
+ 500
+ 500
+ 344
+ 389
+ 278
+ 500
+ 500
+ 722
+ 500
+ 500
+ 444
+ 480
+ 200
+ 480
+ 541
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 333
+ 500
+ 500
+ 167
+ 500
+ 500
+ 500
+ 500
+ 180
+ 444
+ 500
+ 333
+ 333
+ 556
+ 556
+ 0
+ 500
+ 500
+ 500
+ 250
+ 0
+ 453
+ 350
+ 333
+ 444
+ 444
+ 500
+ 1000
+ 1000
+ 0
+ 444
+ 0
+ 333
+ 333
+ 333
+ 333
+ 333
+ 333
+ 333
+ 333
+ 0
+ 333
+ 333
+ 0
+ 333
+ 333
+ 333
+ 1000
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 889
+ 0
+ 276
+ 0
+ 0
+ 0
+ 0
+ 611
+ 722
+ 889
+ 310
+ 0
+ 0
+ 0
+ 0
+ 0
+ 667
+ 0
+ 0
+ 0
+ 278
+ 0
+ 0
+ 278
+ 500
+ 722
+ 500
+ 0
+ 0
+ 0
+ 0
+ ]
+>>
+endobj
+
+16 0 obj
+<<
+ /LABELFONT 20 0 R
+>>
+endobj
+
+17 0 obj
+<<
+ /Ascent 1098
+ /CapHeight 1098
+ /Descent -281
+ /Flags 4
+ /FontBBox [
+ -168
+ -281
+ 1030
+ 1098
+ ]
+ /FontFile 21 0 R
+ /FontName /NimbusRomanNo9L-Regu
+ /ItalicAngle 0
+ /StemV 80
+ /Type /FontDescriptor
+>>
+endobj
+
+18 0 obj
+<<
+ /Length 19 0 R
+>>
+stream
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo <<
+ /Registry (Adobe)
+ /Ordering (UCS)
+ /Supplement 0
+>> def
+/CMapName /Adobe-Identity-UCS def
+/CMapType 2 def
+1 begincodespacerange
+<00> <FF>
+endcodespacerange
+100 beginbfchar
+<20> <00A0>
+<21> <0021>
+<22> <0022>
+<23> <0023>
+<24> <0024>
+<25> <0025>
+<26> <0026>
+<27> <2019>
+<28> <0028>
+<29> <0029>
+<2A> <002A>
+<2B> <002B>
+<2C> <002C>
+<2D> <00AD>
+<2E> <002E>
+<2F> <002F>
+<30> <0030>
+<31> <0031>
+<32> <0032>
+<33> <0033>
+<34> <0034>
+<35> <0035>
+<36> <0036>
+<37> <0037>
+<38> <0038>
+<39> <0039>
+<3A> <003A>
+<3B> <003B>
+<3C> <003C>
+<3D> <003D>
+<3E> <003E>
+<3F> <003F>
+<40> <0040>
+<41> <0041>
+<42> <0042>
+<43> <0043>
+<44> <0044>
+<45> <0045>
+<46> <0046>
+<47> <0047>
+<48> <0048>
+<49> <0049>
+<4A> <004A>
+<4B> <004B>
+<4C> <004C>
+<4D> <004D>
+<4E> <004E>
+<4F> <004F>
+<50> <0050>
+<51> <0051>
+<52> <0052>
+<53> <0053>
+<54> <0054>
+<55> <0055>
+<56> <0056>
+<57> <0057>
+<58> <0058>
+<59> <0059>
+<5A> <005A>
+<5B> <005B>
+<5C> <005C>
+<5D> <005D>
+<5E> <005E>
+<5F> <005F>
+<60> <2018>
+<61> <0061>
+<62> <0062>
+<63> <0063>
+<64> <0064>
+<65> <0065>
+<66> <0066>
+<67> <0067>
+<68> <0068>
+<69> <0069>
+<6A> <006A>
+<6B> <006B>
+<6C> <006C>
+<6D> <006D>
+<6E> <006E>
+<6F> <006F>
+<70> <0070>
+<71> <0071>
+<72> <0072>
+<73> <0073>
+<74> <0074>
+<75> <0075>
+<76> <0076>
+<77> <0077>
+<78> <0078>
+<79> <0079>
+<7A> <007A>
+<7B> <007B>
+<7C> <007C>
+<7D> <007D>
+<7E> <007E>
+<A1> <00A1>
+<A2> <00A2>
+<A3> <00A3>
+<A4> <2215>
+<A5> <00A5>
+endbfchar
+49 beginbfchar
+<A6> <0192>
+<A7> <00A7>
+<A8> <00A4>
+<A9> <0027>
+<AA> <201C>
+<AB> <00AB>
+<AC> <2039>
+<AD> <203A>
+<AE> <FB01>
+<AF> <FB02>
+<B1> <2013>
+<B2> <2020>
+<B3> <2021>
+<B4> <2219>
+<B6> <00B6>
+<B7> <2022>
+<B8> <201A>
+<B9> <201E>
+<BA> <201D>
+<BB> <00BB>
+<BC> <2026>
+<BD> <2030>
+<BF> <00BF>
+<C1> <0060>
+<C2> <00B4>
+<C3> <02C6>
+<C4> <02DC>
+<C5> <02C9>
+<C6> <02D8>
+<C7> <02D9>
+<C8> <00A8>
+<CA> <02DA>
+<CB> <00B8>
+<CD> <02DD>
+<CE> <02DB>
+<CF> <02C7>
+<D0> <2014>
+<E1> <00C6>
+<E3> <00AA>
+<E8> <0141>
+<E9> <00D8>
+<EA> <0152>
+<EB> <00BA>
+<F1> <00E6>
+<F5> <0131>
+<F8> <0142>
+<F9> <00F8>
+<FA> <0153>
+<FB> <00DF>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+endstream
+endobj
+
+19 0 obj
+2311
+endobj
+
+20 0 obj
+<<
+ /BaseFont /Courier-Oblique
+ /Subtype /Type1
+ /Type /Font
+>>
+endobj
+
+21 0 obj
+<<
+ /Length1 1346
+ /Length2 145230
+ /Length3 0
+ /Length 22 0 R
+>>
+stream
+%!PS-AdobeFont-1.0: NimbusRomanNo9L-Regu 1.06
+%%Title: NimbusRomanNo9L-Regu
+%%CreationDate: Thu Aug 5 23:43:46 2004
+%%Creator: frob
+%%DocumentSuppliedResources: font NimbusRomanNo9L-Regu
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development; Cyri
+% Generated by FontForge 20040703 (http://fontforge.sf.net/)
+%%EndComments
+FontDirectory/NimbusRomanNo9L-Regu known{/NimbusRomanNo9L-Regu findfont dup/UniqueID known{dup
+/UniqueID get 4162059 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /NimbusRomanNo9L-Regu def
+/FontBBox {-168 -281 1031 1098 }readonly def
+/UniqueID 4162059 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+ /version (1.06) readonly def
+ /Notice (Copyright \050URW\051++,Copyright 1999 by \050URW\051++ Design & Development; Cyrillic glyphs added by Valek Filippov \050C\051 2001; Numero, infinity and Omega made by Dmitry 40in \050C\051 2001) readonly def
+ /FullName (Nimbus Roman No9 L Regular) readonly def
+ /FamilyName (Nimbus Roman No9 L) readonly def
+ /Weight (Regular) readonly def
+ /FSType 0 def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+end readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+o4>ì`0BCT&5.
+
+Svik kA 7F`$yJU4NL^
+Vٍ.+Yҁ4۳\sm'vͽ=@R3GIJzvN1͌dհf~ e:^/:0(}l^?2-*Йu3K65g*ߠJ(]<MӶͺ
+#!v'˅:m(^^ mzTG9~^@s?;Vl1 `vQLaXjp`M `jQh|?M'UHj=^+tLҩu֊$VZ 8=h^I|R2iTMB" ,0\ m`3i6\8s'k##
+h
+ y0'ϳmdc0Xjr<?[A)AQ_&&S,z /WxDC?̶`{4dKNVh3C8D%3˚JtiqNe
+[}i}"&`ba)%vnjQ}ܟ%]yZҨpT0D9(pvM
+6_rk߼o%8G#9q<Evy$
+I#"Lb:Ṭ*f}tgxyWGxVVF0ɘvǦ>; 4wǁsOEhiE/17񥱲YY$d5x:8/);
+
+-
+PѼ+IEsP<J!uckMvӃ zQNwXx>7f&8ؽO]՞V}_2R5:8`ĺ1I^8 RsL8n$4Wf=p.z|Ur~H&nT<EɓomW􉠌2U_я>:Yo;-kGp#dݢ0eEv0F!N]친)Ā88zKG7up$|kS5vβR*
+mZ\Zp40e ' f(#)B: YвA]rۛNU <LNӢqWr +Œ0{Qi}B }*PdΆ"%^v`-<[_ G޾ eNt]%&9αd]}BW lv¾8ėCt#[{̷)l{#h{US shZ3K%s輱 sW||fFE=w|¶xH'G^a2]bϽb*;iB嶀@3̾uT 5GIԏ4uIw O6QH0
+J;;ĥ# _B>.y o͠퇜 ͕.BQu[۹5GqUrה}lw`r`3dq&xwT
+lRY+RfÄ}H$4pm1<l4e՝J#0 ,M^~U
+:j`-{ k
+m"庝/xBFd8ڪ D[La@&JRR,Cu`MxAVlަQȈ\ή%# }A5jk9P֋?u&[kmY|d
+sx6k/rU smÔ`6pr:i"!yҖwFT|`_<TEں< d߰C;:Bj9rTV\<ID;ލմ-?`GEUjkc.c HO(FK2Fc;des
+8"cɻ-(^!˞*e8 *^'+>Zo1ET/ڝNx ]bWPJ b 0 `/9CԷy{|O${9AȣՑ*7(aFBQܥՖHM
+O~\EfqѷooL9 XQC0S/lAӇ\*7^IQlYFG:E|VTG78{ 30"7"g
+V3T/\ddADVޠTɴK;֪/r-ʈ ;:6T
+$6}dϊO/1,GF Uqf0Y9\dUIg=_>HjL6PėCc4}+7Læ +ʂ>@<nzFU+:_k޿a|jGAe%WC^!Q>]R6 efaimɜ:_6.GZ79Afޏ؍w?C! 04,Ri+$ MIA,p˼~V]-<5(rUoghTxmd:u\equeҴQ<s|%
+k2JBQy~֔y͌dߔwg2nBF2Ȃ'4kV"?9 o;c}bx=l N1d9찊j (G@vR7㾭qLy¶u<~.Sg ݡޯ6kQ*4t7o;7^]kz3:0 (. {TU& DtvEau:o!矎`>$` <p(W.3'S nԔX^q X74QrƋG?~3BO$GS{
+CǸRGrz%Q+p?棍);F%80*+gւ@}<qMX*
+2`/c
+G&^ I"Ҏ4G!
+$)W&*?mY=<MܯOAQn㑇Z:y=nCQx&^WUqˇSe]y,Y8.9߳G}=bW lE.4:JLU1JY1X˹yrq_RzJ+r;/b}z7Ka8ϓg@pɚ|IxZoߋ'l!,T9^ڼB|BnFl
++ʩ`<[?wmtR^nj`G]_gxt$|D.Wq)Cˑs=ڿJC/ݾm QļU}x; DqI."F,'У_aubڲB'I'fnD+AnD`m( kM:T6q<VIiվl\À{bNtFg!![$k 9(VXXnc9z`i#Smy2W8r`밶^ٞeVR#>G5y`t)q#Mr}zxd>gPsh 1ϠrA D
+AFƳHt^ j&:mVOoȪ)7ɗQSFV=#?m #!x~ flm@XyuXN`yܽkgG9ڑ uS<st:t_ҚG[!?Mi 1~LzJ[
+IC/ʢ+q;l=<㍌?Ւ
+B,p%ЀDm
+@BӐ?7傰P 8cwٶR=>pom |6fW6$Q"A3
+ڻ_Ej[U ~ydbѻ{Lvv'2Xf҂nS_~go37{|I[uL0nc$Z0Z9$Ashao["Hl[$Uğ0\p=b )h|izN 4n`n;6(TaUUl+KdjJ3(I=b>.yE:BV;sXƢ4D7<[d!YlgZ\Nqslsjm87oizJDnhk̩^
+O?oW?'qBqemawe@Ԇ
+D}MQ80\f3R(|L{KrFp`T&(J/k )NԈVXwTa҉ fyJix I/%nt_2kT/^Jr6Tcwɩ@t?y^E
+j湍oi.R#6!0 n{@WAj֢=H\hp;aỻ3`v_ڎR1
+SE͐=\)dU2 ܨ䔜7 <CxCR:UQf3HYKѹ6&\
+=Ēn_Y\W,x s~lIy+=r0Mx`p> (dL ki&VU8`Pg*QAFڦ]yg)iji)n!ahzb3,3=? MRV*6ߚb6h'ƥ$7x wD #hVD1#OՁ *Z\<ʨ6%
+D)ª^hX){tFNiPM-\|1Q]n3Gpt}`-!*u٫{/&xQyr{TWG^P *,g̒tBUeցCoڹc!1FlF,ݒovR>2)HЭlKrvX𳧅
+'\pMydK{Rp1ڍ::q8K dy6YmWVjG]#C?FZfdE9UX';3 +p{]bZ)31ߠa F?`Jɹu]-S|k|$i zUo[TkJq71rg+Kt"@ه2A39 8` qO](ڃW[S
+q5]AY\a1Y:Tn\#PI=YqPx\.ߔVgEN)م?4*<4um[5`sybwH
+Ӱrx%Am9_~HoaT!NA%ѹ4! >EkUqZXd鼐,{SDѼ^`O<e:xOkfU۵ y 1\Ys8磩}G. ֈGh|EZhUoMeN+ ; WH23t?0-"E~s#z!{O@ͬbsq?HЉI~ tw?oy&bǼY*SrrN{LcOj1 k6}rT+>7w(C2B}M1<O7db*ZU8`܋~EP0N~@p
+򵈻ó V /寿H?VfYC? B]W1 j,
+o.5UsjmlQb CTkyu3l-/nvL@ K΄mQ8DZdڹks(R`_xݣ%K0/FA?7@IfZ }@S\@<!!vC,o
+J]#Jδښ[8CTKrT0qWɞI,e)Ct\u8gaTBtXh (*,PK]c7mL!zz<+A9>um
+ҔӅ-hrnMgJ9hY r@YἜ>f
+vlhT_#,%|lxATlqXmβz|j}oƝCv6[c$J"a}ٝtU^
+A"KD%
+JՈI՞z z+7Fd#Bi^A 0L6O5 jaXo(-c{7UYWLuꤩtumBtTȍn1WcR\-|?15zmyO~kZzt
+
+W&tø$Fn׸mԍ
+MIҘޔA;>g7*]{ 9F&tYu+I+¸}@D_7n.Zޜ _;L} ^|
+09EZ#h}bm05*\1⌥@ּVkZ`6C1sw~*pލ%{t Vu;wP>-_CW4(.kU4!m>ovI}a#c2t`?ԇEt%_o:nRYAɾr@&̌$a:{A&*y }NBQS=qU[snc%&8L0u0ׯjWުtݝŒ~< DEŀ5ﻰ0@ΐ%C#f*)p` pL +J"rp?yvypc_{|%f uZUD0 O1L0 ۴  4OMM)}P_۫c;j>x{+u D䩦3hԞsaXo2R#0 >1<4QfF|IN$i.@ )B4b^\;. wFT5cY6D |+⩝ۓKݯU3iظH\L7 #eT?jj5Rvv lAlzl!ӖW/.h+,МTSD'0EIcϳL5;[%NiیEj9]0'L({<<e
+0:Θs"\
+$o DbL4D/t\k)C?l d'5 &IBoFD>
+`m=)
+&īcDsȣӀԍ ׇ}]oQ^J4P r1t amjEd\FHjt!v%Y=pȃ`-a<
+y;_NF`6هFG1}Yv=CAUp61gtvL:昃6/75u'\ax/@[ti?>ZaG.
+OŃ.,ɂQUH>-6$sv.V>xRGTh:Re!?x!L#ſ<YCM`넨tm@kѝ~ Jm+
+ G
+*2 YvӋ+^.r53(N'x뙨 #w,4N'_#>>*, PM0%Ee}G\]͛4IXo3!K|$ڧ
+RX6ǻ03@skOHVB#Za9A841~Z^gA3o)é<yۗqe$,WM@~88)mViM'V`V4{3mK^-
+.wj*tMeNMI|͔}*'`|=xDϳ@OOikP9W1LR#G aE9i,~d
+
+% )Cf.AFew{hViZ'CM}﵃փ.[S:ٷY_3UY_/ݫ*4+,FIwoF٫|^危hr|MKz<
+E({"|lp!2sI zeXΖGh:^Ieӽ$SLS`~nDHH+\22՟K> +<Sq_F3ls\hf)Nb>ewf)+R );  ޏ]qZo 4wPD8QrqۏEmSTgH0U\-Ďz0El
+ _A-CD*II }y̖V5|x=8*$I ,^m;Oy'I,3o`%ưr ЕMTiEN] GMԍx*  j+zʵÑ]BWw!9aELqԽti+7H
+7.Baap\ZZdC6Zfz+PCwgо1cE LamZw8!DG(ad=pRQ&V:֠Wdǜ)yL^є%]Vfڽ QOgw<0 , M\+TE:.bю2}z*&[BCatj3L[Tm>g
+a6Tw@H*cz,vdl0!Ѵ􊄡c,CX}x)C*Ґgv2n(h 8zXU4r+tf>#.f2Tuݻ C2rol+0U  ghw5Z+ L-`3*wg(ܩѣUc g >
+AѴi4Unm1q,y5b) v]?(fgT O?1G"Ic2N{M@4n<!M[}`s
+31& ^G]ua<*vNtTsC";0),7}#PH*%)2$)޼ū:*98yXh1Cr%ݫ̳O3,[tʉFeDzn [wŢ,ڰyQ)G^ܔݧ`ǴuZ}=8Uif5SSe6XAޡZTZu\+pILSm^Z]$̿ m==N ͧ,մ*JJ0<HsAWrWYb r`D_t
+ &.^Bn3ڎUx
+e;Sg䍝}&'C&{ǭY!RO|$%|H3bb9UkHyFor"q?`8S5MQn݋
+@^$$y9>H[)P_ZhugҊ癔çq<&˨ܴacA1Rm
+kfB޿ީVHx-aDpJ(x4#p>;0 (fa RIMw[~YPQlUB`5"]縵9m9"1^$e,gQs} MH !>PS>ΚىIһ= fېX;=߸o4 c<Y`B3:_^H౤PsFTPyndN `hfAݸA\$Pq
+bXx֨\*KI5h2^O&+w1H:L0cYE(|m!SLZV2!Ic#qvD%x*X/_y˷
+EaȷAaa{u#̣!%X[1="{*w\iXs'8ǵ-!F5{ &0<Ѵ6hs@xt<c?Dt]T̽]{iy8U]I*UeyTgba`~d;48(/FQ%^'%4J^xUa W^ &rAA]JtSd̓z-Gǟ( c
+$Ň){2r"^ڇ^33[Hm6MG"[́|.]SykZc|G>gŘ07n
+ނKt4:,El|lFwb++暭[+WgnHe+
+ijP,iU'8eb7^(AT}n19<QcYqD_ZG9ב2E/{|˿} SD5 !]/lw?8}Z@9ܸyEFTZuUaZhs va;XxbI#Pw)Mbl/_|ˎѺHycTcp=hB- H$Z#~3}t7cg&.|bH<n*ĤntlRm_jEؚ2Xru(ⶂ|׏?B6ӥBf˙dcn֕JxJEQ
+嗽>oN!f)pK\Iyg{ԓBU#09L'&WgF$<bV0wbSjV'c-cw?ZDǑP^5vA!F΅V/-D2g2`z(`|/醣B
+s+#N|zQ̀'9^p.}zJR LyOňӆt}. kzAe;r^@Gg}QuTfy
+&xfǹ ?I˜sR5$ ss(?ޞ N HهAaoRMFsv1^cèB#!>= U@~e?Q[/fQM/٠G\l}!U_Hk)+4$AZn%([/ ގK2
+ǢkIvoLitEǟeIl|>bSpBa*"Aтc
+ 22(Uq/K r>g
+36N9ϖmqr
+|K{~B$CUUv)k. u!z7\L8)]:L, ޶2e!"dBI
+^\.gJ?|EG)뙳@j~Js^ ~~DӘD2~vȳ" a)Xݴ
+ fSSY{(޼nt5 auNb̀_֘!Cn#}, Gú=30<dzKƉcl
+b-rI,mL1#p[4ƅ'J% _]S]$Pn<*wVPN5"6ջĺAvU?LXEtCZ*rMCnv
+ tyTko> !yX,ooWC"׬ΊAXAz|ln\p5V=iXjI!46fM 8?MHl
+vEĄ9K )d;u
+^n9._SI~*>2p0q#
+܎99P8^; JiR)=h@H B pn{џnQDEVU)+)F-._j
+ZsAo., 5=Dg&RJ3B?؛T"^vƗV^y[ГP߂},G^܃3Da7OXʡMa}j_s%e CWa˖,N.6
+RU+&j
+!gđT[jcŽа[nVAkG\+Mrf|Ͼ|:,8V8@gu%mI2E&ٶsWkACޢ[FF ByM`vʮ.C'B\Dqdc}0k_#x9S'({dn1}~(B g\dk4EU}|ƔIz*1xhkD2{&#ך3pAc(0$iű {s,+C_Ґ%gzozܲ@'\^M[jq/_7{ub^I .VsXv~]vz Wq>:ZocE째6^ƆB<Ӡ"E>70mՏ,0+]Rn{IEu#D Nh6_j 7L=K)YhΧ2jFmt#?&xR,5x͌hHRq%z>b.3;F> g#eL|Qi~9g3q6X}fk*w]K.7s}Cu}Ecuu9H'êğ: /,%Vk.,lH[
+ pC909h;-;13r$U&
+W'Jۙ]3a)W?
+mHvʱmcwRe…/wP3sM T
+&NkG M$EWwlCM9yۮFK
+jNJ:#=RE%+ڝ̛(uϔ@;#xcIҦG~~l~ V{0oLˤX
+Q#%nD{¯>}Z޾c'7o$W4hQ Tmš7D}_hA9Ue3Uj(q˚d
+8`\Nn!yuܶk[1\6l_6¼\Ҹ,[.:#kź2hJ)7Ԝr4?VW./؆
+ՔBx%o_`.v{E"j೓eFAP4K&Ƽ\s4M~-RP`LSɃ:\-])c
+i%?KmFxvM#mOt?RtłC%CSyHdǪ!wQOTb+Z, !3
+T
+yjGԷ#4!]zI="zE@"H>lbvw48Q
+Kb@!{E@<;+bUr[4"S`:v-bɧl2 51Duo#,yR
+T1w\rcwH &۹V=s wS^!0f
+
+]qJ%t 0G!m2U!@RTȞ!l3[AE>D @]O2!WI;Vt; '((ۤBɼ'*!g$ÅsQi%u۟9H: a>|ci-6ܒGrlْk]irAOg C^fwWoKG8r=a/cеW
+ WEEtU8z_1子NNT:Gx_#< PȷK3ùF  /H@=_v< JXnyytEŠUj1n2{N+Q̙!e:3p.L1wE 6TV88e(,p[. ]硳uɇg]r$2mض -/a"]O?T
+cU{(n
+UQJ1]$tB D;],G's2vAԊDW3sS0~]\|Pm=T|[,pJz3A@5Ki t@:QWc|(JC嗦ÀNv6VE=Gב8o
+.w
+\7P k F<(ܴaO*
+oUZu-e<=W7_SEI db1QE,skM2"xIK}JG{A-+aWapAσrk,)nBj p8jChЄ`_f04.ZAg/,y r*.${`0(.ۤ$*FAw%^SD3sPx Ȑ-̺)|ПzS!at&CsEfOTلB
+ NW( Tۑሪ;s̏96~kZzt[os8buv5XH+4֌
+KxlyJW Qд-27=fd9o'cbڧWxuk\fIOtGK?SE%א p:Jua'=Q3K@{
+,vEJ-:JybuED_|ԢSu4B<_wL!/<{'}b[s eo+}
+.q_So.{ ҁ:h.E7[ ^uCS̑U9=1w:)F[cb?._23;;poLÆv̋ϰR^ zZ=i S.gO\/H; n, zQy^nՃ)E-1V$ [?A"~USK
+&53(y9a֓ j> V ףy<1<HM}+G#|{7?eoUf/%{}ߠX6^3É 2qn#*V͓49K@hbIGrLtzf &9X|#O럿z2kK :GET0*i1>35>Nn߻ Rόu\ӶާqACt6rE:w*|LcE>=ᦂ|(Ĉi P+l$ػc3Ne ոZ[qSp3c:Ch[{B&OkSE__,Ww
+f&ޱ͒Š_Z`sE{HۇT,&: S!l2 Lt䚟C_.ͮ7^nZ# Yk7Ȱ=RDbfk*|2Y0
+C ña"3e4I.SHQj!z csgEat]FR f,:vkT!CV)z ߴI`8)MY_Im*R|m|PS8W5g A YŻ9ԺOf]OtFUZО|94$[cJ̡Ytmې%NJG0a7Ch@Hk~ >QfJm`b\ױ9ɗ9 &C1Ίҗ@iE}3B XZ: Q.3VQ[p7+V
+2T]vrwEҪʨӺͶ>n>ДZ*FWWGuEO+{_UI Ah_H0@@5y_\ɪpbJ8U0`Lk^W^zE4ijfH@x/D0%3ůX} :QI޵eHXg,00uomz7Ju᥮twQ$8MBK+ TpCZs8yyb7*nrRץ]}e~Q4zP1:tyK=~-\S˗#u
+[V>N0LX&dI:q>
+czN'}?x91`sܳߵER y62"#ȹRѲ#:#* rT> d̝C\ƍ۴@WUf_d1οZ [s퐅@Ʒ ^!O1uºZZ^@b<R<x)߀P(7'C)YQ 'ɊSW@P*<
+-
+B=g.uoҎX@xlwpPZK gZ6ȝ w(
+/,Βө6^:wGjo9χ4ЏafjK']0Cgb
+b%5C
+{B{>iG?M96n8N}Sט-P@-j4,HwKvU19zcGIN
+ S4= cB⬴Ũr-y*j~}}ހ]iG jyu~ \l [iչy& J.=uتY6M2 0iU1&@Y&O30% ޶ )I& P@APjӊfȉW<{y^;u*c`
+chLvtSɛTBm;|Y"u9IS"2Shԣ *%``Ф6+ [k{NϢހI1u99,> %&nb" H=֨G4TP*F5r+8cԱHY5,z(t:fKVQA|(Ϳ0󀅉͂4wi!@cRޑ3>);V):'B =4
+_gqo~nXZ>+v[*.u!!2G C{
+DW
+x&W;_fC&-[7b@?iA1rO%Cs0ɥ1HN$pg) sI`=
+~1Іɘ&fŝ߬:¹j™F(04?pJZbm vK|
+_ё_艽<1_-xQNx06Z\
+yX&51iFӸ js:x-41tw\ŭoPo<L'R`K:2>Cn'kt`Zmr->6lh+*l1t r(J
+wɂz;vRvS5.*K:T 1+냮K_vkΕ⩴ ZJXp5
+s&#$0d"<>-U=[|@d ~EPzp1Q,ZT?ŸfN0QmfG#`{߁Gy $֥c Dgs$HX,bWؐ5nj̔!`~?$1UpTxJƋ}G}$rG<.'Иr(GMЮBTԾ'_OU'˖,(.\"DJ(ISVqB? /1f__!$$ ru1&&  rs:R Tl|78e) ,az3P:ߟjX1X98r|y 2%YZ=a{z#:"a7p>ר1rj_6Syp#Xp)RW
+VMHAuשdڇJcQE]ea_Lg*tJ=ZXdy&SYSvg]KcUBEcw̔/2Hh0''jRfù&Xwɸ(zėǖ/+?[{ɸmsz?RYth y.s81i\_ X&459>njfЕYx^XBc41ˬ{%( |N1*LŪW(|Mǐd-&m8z`zUug[$\{'Y=eZOP<
+GIF{a a[P+mDo^ yIH
+Ót.1)f?6$Ǻ48F@b=G2;b^͕c*Tm gl1k+-bh)Z,֭t2IM_ s+^ڋ}ebQ Hsb_cwBWDM]z\NNүal
+K*}
+(n Q
+(bE_QR~ v3X3^I>5bilxH>1E~ EO` ȫ0P%w|wq=c;5e)}_KeJG"z<x!DX(NK9J 0Gكez<lQG؊2w]đu".UvœZj4 4jP1,|vӈEܵ
+.U84z6
+^KM1z wHhJIbAmD:lxU=B$>^ svB ws
+xlL#!e_eR;fC #AQ߿P3~<;tnADQaP X֚!=E F;ˊ=[VGͮK}3yO4žt\BgxβH|.E 4pPf.}3>V~+?5Y&qN3<ǒC7[$8(jd{iΥ`UZxHi1/} MwIԽ cQFp՗&ֹ8nd kJ|Cn"UYf5.x}B`ln3p_Q.Iސzɀg_ϝd}IXI(kJ>әڏLϡU B4[I: ^}@ܺX'd:*$$2A0ȟt"CUX5;~'AٲhNn<qzE/(V]w?8#vͱ!*jt2c]C^]hyhAk fqi ε͊88d4sWVBP8۳OvZwI644t q 8~xqP08ǖniۇVZyGa"݅׀gP<<x RBI|mlmxCϹÓjg\θyw) ЕHvYBF_$]R+%FVun=^V=,|`E]&NS\&hó )-y4OxqE he[m|aEV$G)ċQUpBdn-|SQ
+4Xw/VU
+&|@=,`:TbVJ1
+D
+J_?zL(\'#2s0P?^wsA'm2ԘLı*>'UWhTྷ'S{U77$
+ op "jfؠӭ WJlA]bgdw"rq69L/9w%;=J-b3F\-*AxU!֘QFi/39e[]Cۉͭ!r{WG8۾s0{D`
+ Z\<sK4KQ̌{_mLQc-*bֵ'v؇SYz5;dR 'd
+4kQl' o:{Yd)7
+)E);1 dF:kaix5,?{?#+ښIjOfFw:zίGoqȝ5ǻ
+ v86Vt2 EPeWqtXNi.jɨEU S]̕5wMHv'C1J7mSW.o1^G# \+U7ʧR>ǦRM29t;b8z+Nm0
+
+ Dz曘zZx_ {1 ]NDfq6sbjzV @G]'D>QDxnDT<cxkAT6
+Evԓ=
+3NJvQ
+\]_LW:?Ӫ
+Ts;#d8!4e|JyeFن1N?UyOkKw)ND0+yM; kSՑEDUZ;ܮFeWy MDH3RCnIeq5? 5u^22kjvfa٠93mg}}j NfopN-`qWM12U9SA2f2
+ٵFLowaX
+iVqAԡ'h)ی`x$ C,8_Od)Tq!"(2r*Y̢9f3BU@.5e|R*r#Wec^6]PS}#JVs?R R>UV ´B]:Kz|8vRc@yZ{1P?H*w8̨Ѽn4|hf٘ 9\DˆJ|CPĿǼzSD|-8b( ?E'cp.R*TA*No΋.%d"4ǫHe+\2aϦz:Mh0j6{}$[@d-ZЏbE#B0uHd\_jL46pjZo|k[p@K9fGECrzeO<A-}{#\9bA@Ym3AyggYRHm]!R@z>J/LOƲLUdriǸ>4h\T|S# D]k6(~7T!Wu%ziv[X;qCi{r&n6-o|"*\@f?j'i:­JҜ<J*A[A9 LA\@ Mh]>mA
+Zx7
+SL-uJ'p1^(Nv]/
+zrbe8m$6{"JWNqq&:0"{5ec&X3>ݎudP(űs霳`9)G
+/L%%q&tۍRlyCQ Y|Zj ϨVY-Nj,;܄W$
+U?n/l&g;NӦD-bI6)& p~_h^˟aeL[ ®)C8Kh ^ dB/4Ǹ_Rdq=N|j<&efZ㾣 x+ =ԅ.)Y]»{}&\6JI AlfU,&'IyZ {Yu>k?͑L3&pс=Pԓ4<ka0>Eg̑FS$e E=|P0SFAIj= 4%gYeeW15?gW.|E" }' vmٙe V,oٮf6r?fr_x<WHFG Y VjЭd Hċ_gpMfE6HPx.g 7RPszٝm8ޚhOIt:Uha)i9.ծbUiU~%"CI9]S7= #f+yA xcf,ȳfd"oqaG Mk6+c;
+9`]djٿ,ʓOwiȍ5
+ޢ]I{b#8
+OU'8+e i,@xj"t<0TÅ0m ,fm%g>{
+h~ g6fVۑ~ U,Ö-<mf =uN@Q;|ܸgCl@@B)/q>CzX5 ¼H! S7q#Rm@ l Yr/c1y#%#“EX[ә߭jRO
+m[aPsN*'yz ]v]Gv6sA:Tʺ};zQ=ycQ-^F#h@ ȿU~X9Y9{Axgu Fiv1 Gj=ѲԎlo:c c^zLydL]JޠCP,⬦3b36 b> MYV}]$_R|1
+PY<@5,_8,53|
+ ~ "՗FٲT*Q+ueBٝY3m,{W;%X%1 LDqs;uUr/Lh  trYG!<}(2zoFXpbz^'i8LGxhE(ƽSJť ~ GP3!S},6&YvQ:jt5!`b]{;*[cQY%Yz>4lISD|N'Qq_UL@I%lڎTu(X,K߾aO2ԍFdYad Iogg `pN{kW(EY^=]DQ,Ϛnj|{<2%\&}@Jp~=!a8BK/Ey#n
+tQ݂y< 2YJWOG@
+wZ
+2T &Ol|(tOLT[yM[AJD52v{GW\K+Iܽ:yjgK>tY *qwg Yyj3`=OcRSXڃ
+w2KIb#Ui<Mh K)b]GCP_ڕ iH6 ftUVr$757K3% ϠRmV)+ $. Met )hȷga9]73L-߉YkGy
+%A{+HxaY7$CM,|WN^t"b:g"74^maij|66ZG<a;x|[?/B\KL
+-8\F7Bf`cW#Rgc\Հ%ѹFd ҙߍt_EM8a$ϬdhUQs+A?S*?ZW C?)mOz~e6*46ވ~͠tS3|l̺ϣn <ڛҥngܙ
+%_5hiT[NRR0JkI˔ZP zŌ]y$~2d}F'\,`NozX,uM$[aG7E4
+/#|SfbiK#]!d>%K)!|fbqAҠOuXz< ly
+¶7T5:7UK~鲳a,DG^}ӹG9/bYgzSero@OBg5*?0Ծ>ГH}"rWT҂
+J9 àrOwc&
+`
+&5uo$[G` lY{Al
+"7ddg YI<"^) Dls,Z%c\_t\\I3l𷚊Y 4kMhLNj.aĽ E} 8>N j`nT?]EE}Qfq-jouvNlӳdX @z1rUs\[b[Bt)VX;%§x^Azz?IDh,bQ8U2垼C {}ʈ_PΟ8n4;o璙egWNf╢h&ez퉿)-A\GGb ]a#x'9!l *NDiyV\<f5\$;+;!(#׎b} )XbT̖UA{<]&k1i$8͇M1Mm&>*iYkx1u0lKj˽qYZ"SF׏umcSL~\#g[?aB}wWIQUPU=95?gqB/XQK~ق1 ˴'~ t_ϒZ#޶D#_y>L'-PJ > l?BAjH0&.2U(Α in)6?_B rry$df5үm憜5]A[ 0&ᤞF.^y DwzJ9Is!LZC#7vm
+V(V?\t&Uոy.&kWڏlCxc] ;U<*K`2h *cSQ'[ľ@"&Y;jz<1(Ȩx}z7n0]>dAaMK9d8ZUؑ`Y:ܶ_hmeQ*nwk2 ЃBՐ#sУ:,cy~1"LmU?LdgtEjHt LoTd&~sJ)ws7vizz]o9p-$u]?$"->bfOA{ʠf5ûHRtZFB>+ӈn0VtkVdTȕ33aГmH.3/Qa_0klg{¥\ƭGT'|k4F)!dAG꣢=?#;;Rn8!02c=@?kDV>- 9ba|Sƙ QͫeWYw̓pR!EK*N[1E*Αîi#$v_ik
+-s:9=}DlJSRW
+qU?iQxtݢ+ibiP)9Qd{pfw#GO/48Y90RŶ!NeRX
+|Zw<b8@H
+w0&?T{s=UPi| 1tHkT*&F2+@3z53*6Kv'z')8q>P{$Y"Gsw(V@ٹ:@ .&Ԇ쟃 S -v$$߈NfTGQZ%~c]d<6!%LBEV %p#(}g
+Mt$#3, 938`O6r*@)yKKV4]z)Ҏi2ӄɼx3k;X q.auf(2 c>}FI:$u$fB8Q,WG.DG<࿤)
+DRCr4+WXbu<g43` US=& @MV7GaW}}=8@tZY+/m
+U=Qs(iު lsV5F*B9
+0%EvybWԗ,$zgQ'جr*2<U-@0}A7R ) @y8~d)0Zux/pN<
+O[BnQc?`k⾍
+
+
+)lKhN?'rn0T:6OLh5dXp+U|7_MOkѭZctЅE^V!
+/
+n4kgu%%O/^3GQ]R{ 4ޛIATLٻY1J`_;8<G7dvjDO dO1z S]Z Awv[-(hA{Qjo2RD{Q)N7<HӲ7fޮiԂx.It/&< p 1 hc\aNO/.8Qpmj =@XAXoDP;p&gxJ{bʿ
+mINJ.'/gF7dj@K^
+e TOw>m
+#2u_Hv)ą.wd/T-FoHX\"U}^GٳX4MEp`1vتi nEox8XNmA=X8}L|*G)
+;#=5FTuDEopNavFp`_uzBRdx|lD.65CL'gmzmp 2os,CNsg쇍oH4W*pR k?.xj*ZOɻQqG>. ίPI0y%/'OmUtR>&yI$DiuK
+w ~)'q ż;W.kַhVɴىGJTWiJI>QJ!. iAŅ{j`u$gkꟖ'`Tpb-V"<+{{-_bWK,k>p^ 8'amc#QB⍃(8~QA"&q(6 V5#9G1Qz&%2߉mhSԑVbi?mb?ւXs"ǖ}㎑Pİ+e\h{F>6n|Ƀ{af;jע6ɐ^U|)g`O:嘼v?jōB)Աo{.)`Ļ `KCKGC~
+͠?( ҍ>?u>y`CD:,|?|99}p\56b A0Hud@ݿz1Hx'M.4O8)EQZ.A`΃ߣ/7x[%Y*|/Ћ/ƏUҕrb{ 1.rЗyH14N &}Y8FvZ8yA8ωw+FBR _\BX c7JWNj dHv!z' Kbw9}dɳV
+z Ƀs>a>d7F҈ /JTDLDY# L7ն`mcxgv8A$$8/5蓭wt\%.H /.,z+֝;mUpH@lW>O]DnƼ^[H-vAFoj51d(E#ze4 R
+
+\凓pf*5$x-Dd#gD>~G
+fF-ʪqWȀ.s=fx~2xS<bA[FqYB6vq{74Ϙ?t~|mHT\Uh1N\7˞Gyhp/jk䤲2. Vt;NyE,Ƒ=!ӻ<o kɭjNu 5#
+ 3F0>JŰ#DnID2n`80T ՠz\/X>-:~e*,mʗ
+iKk4f+xf}'-RM>eڼ;lM\$
+C rd-D-U5Ȕۖli& psYaHScox(~ pn="N;pΎ/iS'gy6^; &vI`
+ NpI$Zmβb f[?͜㽈zmFS3D,d,u͆ YE]jyU(``9O֎#s@jp.KhܾϵTz_DHNSD) 'Ĺb^'FU8g]#ȳ4UV؂f:#Jr%{i4<d*4[JÓ5qiv'+TS#̋-BbԿbTQ\
+
+VQs
+appEh% jm;F\ ݡhrxM}XQb!31;v5Rʯ/ }۾~c=(+FyY?#T>Fen7]VyAST<rpH|ztƈ$q9cR4]c<1XѢ 6yMx\ԑa81U6f666+'p>\'
+(u#5 I. @O;"0I gbT =Jrޢ9Ô{'ŤspVJԤdJ
+u3q4@/GR}=6sO%d"[ބ| IFYg b8wԯK|^m.ݦm*Q Hk`i#zs{󦁀O KlH
+E~|b'Gg߈-#ԪZVc,/TڨO Cτ%k U uY
+ia'^Q˴z`8JBHH+va\x$fl8.d;o
+\BG+^r\⛺;\` =~C6jhETY6O~LJ%Gu > Ge[a<î&ZVϩXk]UIkn_Q!f7~ˆ<B]AALHEvU[҃?ya0``&]_u$8?re0c@f朑GhB thLIXś>cx7Y~FL9lSMlcaNxǬKŵq?1&޶R4W#1L
+/M'&(`pUjlQr;J^kMٹn0sfC0yT}AB$1[XlTfƩ]wZv",KСk=B֔,G ]ci~'
+kܦMg2BF105% t䨰{'Rm-f.9,i&pD;d: T3I&qud3p
+G>}Two+ɰ)uv7>нh™Q|f$DR`+ʣi f /Vot
+\{`s%{<(eI^:y{#28rw}L ބHW pb*I Ou>x| SxNU~"j"Eo U10AAAJhi)Z.^39'Yo6ȏAN'c1'G~^E2pTd6Ԩ@%)r0g}LjBqFLE{xkI~kȋMn(@n2QbUJ>8 ҠeN6Qx'YZz&Xu+etTHqLFF pw;
+-УOD:7!TDBvKwq:g2,N+9N¶-cgTY<Z:6_} BںK 0mjVn "黬ǚyzR߰(>sP;jSbԶ"*t2 J`iRwpۈª_p
+E{NS'#pxܝNg"`+n 5W-6[UKa"OުVתG
+AQPh`^ ry{bQ}=r>tDaHgDC{c
+fpV2QL:4%L8
+TvzNj xA?4V֬Ox
+Š`+E7;7iW{qK.|>+·\k`I]`%^nEtBYYE/(B~)UPOwdGm>PG|o1rE]][G1J!PF*>#2KdyP aqu(E}ab=RXԬUl< -,OTwJMeYvH,KWsu' 6W]p0UQ8*
+/;9ycnUEmBt |e&LXO'<MM'
+/jBl D!FFaX+K^,M_I|NJ2%wRao5 ĬQkTwR}ҏp'Eԡ>IKHZK G<ЦoOe|4))w*D"tc[H;074i/;IйQXvq.btQ0$l]I&1UYCOGu 
+$ $ pO@7[ksNƅ^p8c/cQWpVÁRPD W Sڻ@5;^4'-7݁$Nˎ?>ΎP{0y4j۷za͖y`MXP ei\ ,X#cS)i8Z7P̛uxT@w3L~Gbuշǡ]B2j5dr&=sĄdBUKԫ~zu
+]-lތzmn]I3ڲMΥ%s[L*P-G'y~4}Ҫ^BT/ \ZG%fOC !&M&|)ڇq XnJ G-:;tʼ |g1CWȭnP}p
+nXqkn Arh蜏S^idl_8NMdYg)C5869+P;qͨp3F ڎ#~Tu#
+O#4sYM3B{i_ L^cPPʚ9@b\ڴԣnDQʄLh r|ZVz·-P-7QLu!9MN/K<XɘK-w l_: fk;
+ܟ)C4570H?nNApPzf*^X -vSUMƢvNhIbuBX_IsXk ./PzeN߻0Ogp}&"2TwJ(QIA" CYH~kxT쑷jAA+̂j2/jT* ʽIr٤^{xctZ5~2IޏOgԾgXOճ @݀ݿx/!<U|Zw@y$ԡ$)}8gܖ{&)]z9YhwCL>"sD𩖛d4D;Pρ m)aͣk4w4{u k-U -?%8D1W(Fġ_3顧ZZ'uf?)Ax?}]fg[xQ#]2 s(jG ḩ* Hlz%Wd] Na`HES O% +7ᑉ3,eKtNXRG(Py=qA9bчѯI
+kΆ+ȗͰ[L,cNX/ހ :
+<8)-w0Wh Q3 =)!>qE;ܔvM7Tu@k9#ʲXJA
+Oq?ƘTpx>Z>D|ztw-yJz2:X?`oX'65ϖVΒ(e)}6u?S3 +7Wk{0`1V)E\̈.c zV$g)QW].wI #mVu-I1K&1?(;)E7R7 ?*c&4< &w\\d'8֤SJPh so]q9ic&VDQ
+at ǀMsm
+|H$oW E]|E3 L-?7j&sa:ZuP`1 e4Є:Df@wSV5e
+&ʰt]^||wVƮ?9f@:j#Vqm
+KRKQE/dz& jxwCl%/R*tr]6 g\֮
+*qŴCXМ!K62&;#"Uj@38tfe_\P7`߀?R0MH>r?V4Kɕ"Nj=dV֠W2p&5̮
+x3kW?)cF>>
+@ #31X/Z(Wɞ"Ycj#uu۲h&4 Psu%>+9+P8;IޖP:8д gg#Du#V(p5!1֪eN.z¶bll2)SHPpŀM{ vvW2=g5
+ co5_~ KYF#U2k\n
+5^}D
+`Qnq//"HyOzlՁОF Pr&*z8g"[c8f"Y!r*qV5?He 1^2;^/d:?[Rڟ0Oxc|vLKM ; :8}{8qK
+E dUZppVI`:)
+-V{{A6h%F3,bo.+V9M
+}:蕏 ޒ1u>8X)$o\'j9#d(%'O{Y|-4UP1z~[*>UL/Зe.ϙ? 櫾w3@̷y<f]C4G+T*i$ZQg\lp7mjxOFk;L-mfhKT< oV8Ȯ
+I7ix+AB{EW[7 -?^B uO[(
+h EBʹ
+% ըd+>>z8i/8GWձmM V=B
+Z|G-WGLŲ3oPc'9 0CA72MF篵瑚h)Er(2ڱL0I0 d/#nӅ-jE=_;YJX˜b8,yFbr!ΰW6}l6!O2?BX/(* f5@XevE&
+,Hr/:5$GzJ:%xsYt>x-*U4Z4!a|,1YkptΜ^eM c-ړu
+6X M>/9shvIZ2>ˊ_&~0|Rmȃl'_Q: [vhAE5cIL*m!"m;e@}T=ξ &p6TI !1⁄G!L;6E^NwMݽ RrDQdxϹc
+%Pjӽ!_I3*[ 59FlFs*q>osՆ\i;%ukht!TN LVqx3ݸحĹ(-sxdM o(n
+2M̸S8Rqͮ6~XN֟37nGݍTU@0ſE(f9:pRť{ޱmnK( %tTbN7<Nt]|+M%noA0e'qgE
+؛dcUz[_VFS(/.
+B-ݔ2pRRU]'{1?W1јlPk݄p.\VA6G+=~t_wҥ =2p yGOo40axH]6ryI6fy -
+eI;ZA_ڈP%R`o\sVQvEslW
+fh K57r 1=)-
+%N
+fQjM.[fZ6
+^ABQKG\Huh֎P\A46v(fw-!o.HԸN7u- e">m<Z#LGa{rN ܁T{D]?c:1 [nnS`nX.۶C`RW&7tqy'}kc~o~eX1kӥqBXK<J*!G/ +dLҹ*gFxn\
+na#n4[:oWS'6™ѐ+|Umz\6
+x`A
+-gPWC`io`XyRۣ.twVNQݏc
+RNN R<:o8 OkϮ/ԹG8Mp`,PDZÈ-y/W5 j+)e̯FWqWith#D/ "*{Pй10g'@`j)2ҫ< Hf|?rC盍wAY[Y1*/4^*])>v,ևiO
+wɏ^);"6zkgpDhèHD`6UG(1|HT>iXl9AC IYXFV.1$7h,@V^OA JO8,oT/Nu_5{̜%1^V$dfV> NipjuBb'3E[*l Q1G]B0bE]}fXsNJ_y*O h+56<@Oq(Yr2{{Õ?-hĿ@C
+Np}&fiTts{y.'IQWz[lh<DJm=dp Lo̙c>m
+) f)ѣ<)F-z($<Y)y6aHo cߥ޲gӠ'?J=tN)d# I\JY߱ݔeyVpq|k;UGj ~+z!J
+f0ݥ.p[e4
+z(+D +1oI> /BpiPx'Pٮ` Ga!ĮSG D>!`W`F`VХDd/nڒ$=*L}ʳ_*1eB[#g4Cb_4_,zV癵=-ؿ
+X6Q&l)b}u[Φ8"-I.{&oO(W7Xתum~Y?7Ãzr#p- 30)u _g`dx3 ?5~Iޅq:a7DeΜWy
+x e*ɶ nκK)՝ Z9UM=d^Ôe;LFg9m֝}
+LeVϺC/{)sp6~
+(SDnD<}<j+w0Jk+S$'_gP4kU%GaCSMQXFB*D >QvH;D~4W9KGwt-fe:+Kٱ;6m]gaU=|ad͍3%!C-b9nlcd4ꤠlR՛[4 ; (L$TJbbMϿjK2C`̌@LJ̠'/\}@IP6->QZ9ūl>&ɃӲ":G&T\ݘbh<u/ ^{ϏI]QCy`diVnJSM<p2$Rɝ-T=,q-C.4S
+à]2uRJZV$`^w<u6me<vkaW:_l;5N\5 #h9!vTT$hg#,D]i
+ŤA9 S?n ^C3R/\ +ZQd1(S5=0w\r2}8, U-v4@b 3QNp hÂ!뽏[%z\W4$ M+r[TK;9C"jA=_Sc7˗<P6{/ޓt+x,GR$Va":$bEJ/zKSP֛vG(E"d}1F`}fXzrX*VkrʏFp&tX椼JJ\뇾Sbϯ(PS O
+l
+[|*ЗL7gɡy
+׽a~&_3{op",Z~$!ޗr굛*BFɈdn \l![
+`l5FA0@턻
+@( RH]*1|xb.j)G!`[nwDD޴[0z+zSZ+R5ubatl!s-_xi0K&|#KEtzEO:T v~ |i!C$!&DIGmf$Tu2MfHۀ#x<U,֨?F k9DM4.ae6orGGx7rų64*8j|(ZG>OdQDGStKZsP]9/,$,8ՊMzAe{N)Gn̷ƛ1xi1GG#l\Kf]F Gtn(tc`2[p/Hضʓ@h[&!Vsd"Of U?br
+
+,o*g_%Gi`-P2ݔ#aOIK^廈ͼa8^f+3j]Dher[%v7Ѝ':L9ż=TkhFUVMsܡvI=;_F*Q{J+8?p@~Z/u;0*|0jâa*]YsZ?D;_x1es<ӑ֜һX+Z^*ci57MO]gl {vqsȺh \hz7`Ŗ=T22F@2f|4VѐډtH2<K/zW|L^R_Tu#ց 0CB޾ W ˋ.T^b_O
+@XDR|_qt5(W鈦5ݳ:wKN- ND^&q>qp B9[+%y:40_T*Cu40{Jf[z|pS8{qv 1 4&#?FMYաl"EටyN~-Ab Kk'hlR/]N-Rr6$rSM'?:Op7IR_UmXrSj9QhCH~C7.2pi87 ^"=Xy;Y
+pXiBq ֢\?8[9[cԷW UKuaKf&\W
+]]/%[*I
+"BA 7P
+BKrc8q2ڎi`X)9܆+HقF:L%w5TNY4EkAfek ;E) x3F#Da_zʎ0 3ߟZ"Z_C`>5<
+5i>&/BLl ];x%+?"k-tj:dg"
+l$]FCqAfWP硙zwKfcvc5 u$fQI:e;9‡0Qr: R[l3蕞@\ e$:hT? tt0,z(5rF Y@T%% lxAn^X`NovgE{zv;=]]g8k-l6HJ5x6p>:L5~{qsp[6kZ=Dr`(`ӴG8M7hL)1:** PChnWo\KR
+?#fy{;<MSI4Gz $
+@R.(q{'9Š0:ե0
+s]alQ7Q^'<=>KR+n4IȢ6P*2b-$u2ML4`raY:2,5!vP'C/2_}_pV@mP;H=[cq5ɳH[9H̾גR ٘ȸ<u~(V  pWQ|/ n70岚n8PwμB~*X zUD 4ρikԀi)ۮ,36l2X:+rX\V
+
+l8⭤ŷM`+.Q 4TqφB
+|BO֬p5y{^ġE ` >g4;o[!Ȳ8p6GIjayܦҷ
+Bv9=r)9U,a[Eҥ1r5"׉O{BHB}I_ {^* 85VQ1ȭq}α׉֩zjM-^ c)$81
+ԑCx֍|lJqdD@ksm,A=zIVIOPM cZ»[ ]S
+뛂n(Qy4duݴm&5[6MW0^KfcΨxLii`.TyI:]hYx*7n`$&"o3ȼ_U6
+9W͎ \i{̛&m\+_.?/.X^?jzpz҆mnknr_|Hסԥ}̊r4j}vz|'$:FPCtӕ4anl^X n;?&(})(W)92|-#7r&EקW`1ձlْtB5{D Γ3Z yzED<t~gY>ngnhK.t1&ÂBqy7q\UX6xoja… DuCP?2k/X N19Ru)
+%"}[L7Nש6髠JƁEoU>h;pgW90ЍL  j[yP` 0B0n|1,ki0u': SN|Ed<N>J'nVSVӐM
+y
+`ŝ߯*utH
+E #$b j Ҥh둊?3cY$_Hx.PZQN[j6*N-t߄m(aVEHm
+wX7kϽhFӻ<P7$ܳ "KO])10T$. p*)y| L]6kdfǪcr
+m!}e-jit`'ڢڛlHd0RZ8
+x)gȨʪYTõ_g !IښVw{hp(8&p =Zj6A0d6K~%gAL
+C):4FFqCX.TA=5f&n&y\AwyJ|EW ߲AAnQϏ*4 /lf
+:a Ei[ZC7/\@l=vHi*mGo8/]V_BXmgCp&Sߣt"CL ]'G:/B.vKz4yHl+Hi\kU%emXz1G_`KV!._ĢX@QR G>;f Mi!$m#-CoyOnRJ[N9+llsVWg;Cظ 73Y^ <s*:x{OĽ- QU}c,>1Jɺ³T5=8QapU7ӏᡘғD% FYRe5 VUa Rdu6*wF#]2ωT=nj#yʛ'R:-t4uch/-S/OC=D638qՖYt( fK/0#_1`$)H8uBvxNBeB II>eMB$Kenf:G*;`E͒+4 Omjo6X@ru( Ⱥcz7VM֡[o vB|]gxq ߒ
+MX%W~VW|rdcB] Xj-T`.N
+-e]zB u!*Oݐs4w@QU
+D>ËcV/=^g}d ǟtD,iU_;"/hۺ}TO ghnƋޙ/eߎ"62l.@`a.&wbW:DqاI$ M^)BMrC' Qخ)U}Ō{Ni; UQĆXʴ+SqV>qmб MSbIUqR3.ŀvd'WbjH<H';'˴R&>U Z ߷rA#%OrY0OR!Yĝ5p4Ke{+CL0`ۗejrvybkuCCs8(4T!1{G^jiBR
+"\c ;AJ쬟;SAގ %wVG iVgU50ӂ6Tܗm¾"RDRb_]7>dܘb~ow' ҆Q+}I4mU6|k1M+^Fjb=BSenB*X`!eI2A`V I$o[znzMɌ8ĩٞ*صA SI)VA
+ IXo<,7vl葼 ٬TyԵ"<V͞#9lT.B
+1qk_dn|1h,{Ի%G9<IqƘ?xmKƀ[Lbw$%K`$Ge ܊QE}!lEIg@y~%ÏDV7Oȥ}ZV՛:~
+54Oْ.&yX3 '< bN :L1tX^/Kկ;vB1r;7
+úi%t:ꧺLa3q9YC\:}!0rʈ^5""z"E/h*j.bX,.Ñݜzo( wD0xOUƮBZ*+M7O߃Ú1v$B8LL
+CeƼA}W@u/_;55+*2Ǯ{E6^ܟ) oO=Z`H ЖKoA=S7dvpR)h,hɱEF~SQjsm
+)%EnfbXT+o!l sͤlgI9Qp Jwp )M|=a
+@6;
+. "^ (b 0Q ^ oc_/XS} \eD9.dh%{[sT/ PL| }]0/YGt?gZ ."{4_(sR
+Q݁I'{?X l[?V ,[)5Gc zTEdN>H nGsI}yhHn-}^pRYFق1(3Q|橕)"Q E#xp}M
+MfƐr<E$
+w,f+G|:V}~'T v zZHg9yc2%JEQ[SS`]ʮ"`Mv"dX]d5_x]E+ 'Jў:(qIq`7Dñon[# J6)`^$;C5iJx]L(_W,Zdyj.&ox1b8s<^ x:yt0><E4%g06tT fٕ@`%GS媎ktY) ⊬ cIô#>,UŶ[A8s>IMfMOŚX,}QQn߁9VjX 2$An|ևQ*N[
+J3Ƶ0ފ=߮[oQEE[8H#$*fpG"X4pZ%g̽sΧi
+rBUf:֑-PNg9x9)ѱƺҷفlpRQ7^e2-|a 뺃
+pJN?od٫)7h&;\&NVY G]߹y2%}ҿq;EHEvܿ<_Zپo8d%dD Jal6's^e8nR50] )
+$f \W$:ƵmjBpAR*=²1_ԗgD&֦Sƕ"TL;ʻCEMQlR֮ܐL&]G>& G c/:)r$3, tlu>ꩀ>Mm?Q5
+Uf!}"ua4YzzdiJ՛'CR@[w5 i~iXEJ0@DSNp׏?kt<^]!oMڲ#'a_KVin'$tݖJz%i?"1lA'"9L셈k+
+•;ZCajmv#SoGgS[{! ݜ$=4C96q/GIYYAܗJ 5kx'*=eib[:Rѻ]'G"λ6BiO]3+9f1M)Jp_ѻЎ&L|xS<㇦8C*W<kǂWKk` eԫJd' 1ia.Žkns9G'x٤{ȉ*9;]ي"]y#0\{Qc@NV+[?oLtFPpbb|+d͈;7BXZPeުLv&5P161Jm>$PWu
+q.pVbm5wԢ@v|ӄ,f!9<̲^cm{[őw%VeD20¨49.U4͝b9mTwMyu;g\ w!v3J{ޤSVq쥽m E]7 ~ێPX2:'?hRY=!FH
+-bEIB2K-U^Eոį_']5Z#BϦnoPb E|B&9$-k]V6XcЄ
+(Zs~P`o>rtԙumJTē\=>U`OBNk$Ph2鋪L2-ʫwr/'Qz#{ZdZw
+Hu雥i > _?Q˰" r ~qE V]7{Kky1AYyo 7Z9;0Lzw%Cn^NZތDJMY&h%\4Ok O3M^uV"
+bLt}2B@Kt!1ʴ<L:S"12
+S<E"?FKiYRUF=]79R:zTo$#Ո Q akؐ^2̮S@AJlAZ+_ |@Uusj}B|/ &c-'$[|'՞ I|{ދF6$[X#h&FbrgXtJTa<B>m-IG0;R4tZ?4拕1"SAEw><;wle
+0 vPl~9H$8ΏxCN`0;S-U2(o
+蔶Cau
+!"I[\,X}G@Q $ӵrád]kڒ Y&c-54<w-cK(Zz<V̈́OSn9KvRKOCcWt5Dzɯk6Lx""j>-q b(1=;~!ڵA̜x1E7
+$AHoorh= +ؠ2^-L0U+Ģ<Pf.U3eMDQm++wӎj> 12 +vJ$[mNCf==h st@KgV_EVhT`" 5*BWd`^[!ޣ~FJpwآ$tc׈<a%4qe_4}o}ZOf+8~saBr:eY7iB\o;hOUߡmV.XKvcf|D{8s虱5 E麰~]Z1fxj&s5%<&騺X{X3o0>x9?[?ۓ(pc9lhx}Ubјan_#|Ңm3yq!+*ߟ9D'Ћ2=EI/J'#Z(!Zԗ!}dWL7ߤo*UjԃGBmUaj-/.Krls;, IPA
+sU%\w+Ӵ_
+,ݞ8U%v Goț yxƹ'^)TЗFmf{T3uR2֩Angݬpj=z%-و}klfnV|]ϳkY(O$gقFHА yjN)ryL
+Rl3$\'1r@O)Qve,E:_o`75(%lpD3w<^9"zŬP7V4ʅ6o)#:O]/7`k8H3vNWxɭ<!X:Wl}^[Hv2lhhq;?=E}6n3ԛrH,2^/{dg8A'KcJiqw(?>߬qQVQ(/z C]ZpϲEaxh'A#Q
+=ĔXg{Z@M_9Msp3{.mW >o
+'ʉ'ׄ`
+ Mo'-H%L*UՁ/8@\ S6f['Fxg8B,4_0K N:L/
+R.6hV:x9‘Epb_lLib0)RAhwrYKw 0rC4.vJiKÑ_N=㯕tnIUJH R6 ^~e(j( ffŀP?E`<BѰ+$[b;Lbz:m$HQy|r$FA&b:#RF˻D $;`o>lwBO' ,IJ2@3y w%/ЯD#czjtMݰӗ֌ DfɃI2^ƚf)`TO\L;:kذmf(x`?*(sQ&/;yLA\lrW[ oc'L:PӕCpZᾆG)5VЕEףٞaM.MѫՈgk{O94A9sٚ%F咮n"Ẽ*y;Ŵw[119]O:o0pVIRb6/8[\"@MxzD #Ҕ+-ǻ8 Yzй/y/
+<6G
+?rEPrxQ1IɪQɰa }l(k.8(erɳDOLMg2>M|D{1!>d{u" ShZW2@#&w빛R7mXAjwB:[Tp8d/LPzbK%`w3
+Yyڐ(cf3ŭ_>:hs ev;( ﵻo<Gۡ
+&x*˘wa
+Nj;#CmۡޮhT>nB19w2x\
+q=BU<~0YPz9x`!G̰S Poarrξ <Q"4I=cou,30͉>Ht[e1
+)WX1N$*DGW
++vA -R'48V`dR+ U:kCnX!a7u+3Ӈ4&.h8Pl.
+2
+4va)ir| o+s;\k9[sڀ
+>S.Q !;
+ຠs)7Ƥ 9L%Q
+:|sAcԫa _hj k7[]8
+Wv@rM9E4![J4i\ϸ:tP@OYJ|Zˣ*]DWbUp;gfD{>ZJJ$+}eVpia
+av'C5ZN[# <h#NoDɵm޿ɫ n`jFs|s'|+uWH'YP TH`GifQ2ܔt&9ue/xN%H7xWZ.*pUOqF٬+P {0xƍ-ʠy- i:S<vO~8~# 6+lh68x; T% ڙެj{ ݶˋ<ΖJqf'y2^s',O1Bs7t>"BX۵W@rg'2KZ3hα&
+y\nAR}c=6
+`T?=#2ɸ8tvǓ/qSfϞ;'iFȕiDj@'z/,$xU EZ6 wf)Lr8Y9mKBX9IbA)9o4 +*J}Sd ïWiE1YΑaV&G
+
+*
+Cy{(:5L-}PUɓl귑GA}Jx&(9tDb|=Jbrbb.uΤʛ076'k 񛎄CtK縢_QwVۦLhr 7 -|`f5
+HDTzt=PWdr3"Q p:yj{$Z~b}C'@:Ljoc8.f0[fW8I5H8͐_صw1 Y)Ptֆfё+_U$)^w4/k1P4ye ]bS{ c3'CrIJr[R
+TrМ)M[IHFLKm
+̏~%&v' iY$h0L?GaPe>=6!9s<%$T_sgm`B#@5_@e B>i;!v9zl(A9\,\[%
+6?Q{2Dbb17a9%kix(f;Ú6nU8ҋa1__# l1(m8܍!Co5y_0U_)1$g5utQ;T}G"!ДHg[{.}S:BIU}wTV? yD{`[6 Kj9m1m}';_3L=y0!t6f;KmZZb< b -|#qI5\t͉b,s`\nXv@6f4E
+$J`.©iV;
+9x7 [臶kfiE
+'|\ =}bS!=,nj#ҥ UŧlLVx%!`IK`kߤ%_}Ġ^'4=Y<Y`t`Y'Qi{cֺc2 50m5jC'G8.ǹ`UĘb'S+ᖭxOv= LT>`53qdnLps j1 [n s,"/4Ο$glՒܭu"ՉV)fͫr<ٗ
+J596|W $$IVvuzClB˷$^lNN)|W*÷Pb#S;E2̌_:FMo)_
+Ocx:GV;:T9jj"m΂|gܿf F1Ö*#˵r77j8ry 5웖gd_lIo8
++LK6_JhGk#Ӱ](d`HGj#ǯd6}D$ҩpdu=<džt<"oc)bX7~JA\b8Ē.Z$["\ z["nJ$T* ++' BG#ĶZdE!4 cH"7xWkns,XxX8X.įF`g2}xή.{-2ۤϸ)8Uk.RȀBj 3֒\y`U ;+MCTHwLSǹi˜^ZչI3pʙnDElŽJh1V^f3lBo/ɇ9s8z#]^X|z)+K3 O>$Wt=S]51jW^Mr#y@ ;6{nڇп%dsAPQd" us:v *$0QAptTi&]I%pC?l9~pJ(_m:
+g }B-b c=z s![mwi1D-RNo~ KG`8)fryz?ݱiU!N- izk˂jYa+ZjJ,`u>H O?.g .\<ivjϘsF6<
+ݨ| X'6 k T{?c=ZDxէ|4%KeN
+F+h6^GVSscmϭ
+r6;5anYS ?wtn" o0EkK©A0VcŅ._o F^M\~D-2Ҹ [)BKp +s>4w OO[ɰ0XFfcNAfqDi5бcK}WB.4#ӟ0>\P2>񷀌\}vЊo7^|
+(Uv  Lzdo!Z)b*4U`jՅM"I̖u/lm3%Ew_`d d5nvyIRy\$-kv vN''ÁY>B)3JO$wW9?+x zaA:
+ Id D/Y
+3R1xv?i˘LتapKWtˏ |+6//'7j:LcpՑlj39p™gUmfalr$΀a˫h+*s#*)V`v)bhj,rsKؓxޘƷ,IS`RT~] +A
+G˱lT+
+qH+m( ^,Wǯ4-\>ń4] V,ta~,} aqn5"lTccb+&ccY?|Փ)b"Ct\ :̈́wsS&w!v캹՞MZ(t-}*A=caMÐݕOȭ |ٳ SYlEdnZeYQa9o1
+lB6LأW:7 &'Ѵp&FV/cf[TZA_> :?^Cܼ@yWbx
+/Jn}Z*\i~i r$`?!.Dq7l}IEK'0&e9T7,oV<0 lrg;9fu@0k*
+-“|wePu"(79uT_x0
+J䜥{?:%Kht]/n$@ALlwR;33Hx1,B0H["!pF
+Lzd|ٱۏ22qo
+~/Nc1]AYML"@SxhLQ!B_,n!iVe6Lz%2ZC"pX.yMs ĚWDKC41~@,(C4ܮE?7@}Myϯ612exUBf{/63}e0ZP>ʐECA^!6";|i*Bo-Rعs._( 쫢iy>BbӇ3Ҭ腎rZMkF}Q a# @~#62 |h h5C0BmQF%qQb8IEhUs6Y :sUtCG#BħZ&q*R[X@Ss(S<}0ڒ!Q[ ]#+&= ]s v!4? ߿YRSi/k=)tڷ:M`trs' ᇬ(Fh˰wKWgX%vES)PKaCJnXavN6F?J4Fԑ6*sP_(e_oπMm7}P,cJF_C\IP#Y i<(F+Cx 
+@$$Q{/Sp!,Jׅcu {8ܜrbIZ:?X2eXf~oB~PWJ%9pOvWhj):͛%ѾD45zRnW3l)"QXoyew /QlF$]bUԙ+Ch]+^- ;` v+u䦐ȘUbwܲ/k-K B([Zc;8Y{p3
+Aˋ,_>İ/B|rޗnnJ\u
+G8g{&ܥRKx272Z7%sߠMuhWB˽<P%tK0nmEt叱)?@?~0T  `V`u&k̜Uv;J{ Eݔu_bye^U^ .0+'=n‚U'{(cJ0#+9t-Ge"S8fR |mgbM4M56{bͨ33U
+a):m7_ =c x7fdb΅rup$[ce4^is/bzP) " (/2<Rri,/!']I*/O&\;Rtə N/ׁ*x GwXx$s7yfe6jM@ykH"tyS;t'8ox靐YU c`]#h,޵\u^PTh#9R>GD|uy<*_c -p W0"*!&HyNb)FZ+uOZOsSM͑!)smz9sFQD;-V4&ޛAkq$05^PcJ#`׬C%GOFPnAx[JilW`\;^\ef*Q DC<jĖKIJJu sH.*|dIek<3?8lXŸ~¦F*gɜYHos;~c3*Q6VGbmaFL_blq='Tf/SMלRE;2+XGz4[=WD}H}PUɓlRBxK\R̈́{9%8 gX|IWDD3n@]YڅҷJq+& )(N6 s)WS;B+`3MA|t_kKArMZtpY{f7} K0> An'hOW ru )CEg$}e;w)"TC?ÛԻTq4vsΉWOb\NnbKPRvַj0Yzy%8J1+1 :;_G 'ahjz7|_o&ڽ ʃs
+|Ӝ+̐YEZM;cʰgሺuセқc0ios[0<qݘr 1x؋(9u, PGﺻyGo_mIʂe,r.
+ dtפڊ~phԑx Wkxw_.(V5[\A87Gb~?
+CWTYE3W6+0XyD)y+5\@Fbt@>+3>#()E~w`I&l¬-{z/g8SME@)@
+-\f|ha
+'膄 чOoސED$Cd) YI'&c E
+}ѡzgT5j v%6y6;⡪yrOj X;"?qFl0ȁ<>DA,-C6t\̲zJT!yοRnon.|
+A[l"e YqP 1b!'zaQ_6N?K$^H)Ko-&E_7nix8TZGPC ?ϫݍkc)>3Ϡ!`]I7I%PRZNi?NxףyZ7 >sV=Ce}@Ke(+.YN](*co^gb#XAjQ/2wc/WS,5 1w$6t@C`ꇭML5 ʻ <)@rE:/ՀHe=sEL[E{bJQδ?#`Uwy"w@7NhgPzV['m@2u|oGA
+<學JQDS-Ӏa1ݑ%a|^/<8t1f.T9M{yoQ|p K| ?]]Lup1O|UZ G2|ꂴE?s OSL0\hJA"22x# - Us`te_l#{$̀VG$1M"%?ͪ9~5CR_9U׻LxȖHP74NYĵե5H*̖PEjjD Vs`[fv4[5w7yxJ|\Q)J.ձ.ו)KzClUhq5{Ǻr a/e+ee:|>בf"rk|XʼnLtCS~SC
+Qc׿W${0[qͱچ_8; ii Qu37hv ݯHEE˃E~
+)kAx,n @hШpUzIgb4ٳ
+9o=DSDu!ƓRWn[X`= BR{
+eTAcHx,%gF
+\υvTNj.om' w S?2VX5⋑2 xwp"9G|KO#4Pbr=T|
+@Z'
+TtRc8#W#o.7Kߒ eQ/L
+N {q0}?3O~[#aS2zClZj+;S=]×X# #9:9i`s1?ĺ&O;S܀љxnCA} ]xz
+9ΕKpLwZc)0xS>#q/4C%M.XQz$9"4ógG#װ H~W;Vͤ(dw6h{Ugr^ř~/*?{kyZle?hɇMnٌaߥ7FdR; 4/U@6jc#۹XuXˈ&q
+8oʋw8=DR2&v9VR_i7ܾƖO<5F;%lT{(߸}U
+ndn*{dpNY!REמe}x2Ib=w{: tF<~O-{dB[.~Xް7@eP=ijRlzW}ItV*^N[ `&8ɈԹV2jNu_Ǘk_;+aUU(<'UrΗꐺr)E"eU2hszOuiXt3OzWh3d nn襉:."dr:%fNQ1G y񐇯_F_T%4{Q+="済drgnXz?v&p/ B҉TȧCckj|R;J3$,X$Yd~@]’SO^i)ܾx|t}~ E;'-/x^7㙪 J@|z=:ֲ0Iʹv\<KS=3tD=SH6
+8v|p spۋV+Up+{Gkɖ7h?C=UŊo|Վ/u H>k @XӞB%εWeIzn=/ukZ+%F˩K%1}o"z9S$,A%mdjy6m-L%
+n
+P<|e1)ʓ hr Kw Emp~0z5 PfΨCԉB4gzZzIE#e&BX#66:0\zF'3 t$u/P"8JCJq![[XM$#&T:6MF['Etj:2ѓ)ZשD4qFƍ'sI,I:Aw0a $jk,8Mqҿ 0Ub\]Sej';G|J g[1L ܰ
+~ͮ
+ |ΆWbo dGgpfVj+OJTb<sB"Cػu{bz簲g@\RJZ` HQ`yF*#5v56c2L|[F)WC7oyN*6"~hV7iuF#(ahh$aZ_D g"bURm@ E w՚[l:dBanC`ћЩhb]J˚|?eU
+LħWd[€;k ^,Uh9|0Y¬_V#$|8!EAKw7ڣb+5y?د20o6h1P`_z}nu#>N5W]RZ^AM(GzV9)}GXF ] ϐ.޻toVT H1A1o6+P$w#,y,RH2󽺬Vuò)N*,+BD[W mPpQ9[fIlplRKkc%\gI[h^[x TnvKtw)L`'2L@li>XZ?bQ|$r;\X?+0J<tR]mxD|)#@BP2@UmfV+dc=^ͧ&YV2~[Ӧ!(}N9f/&.29f~ ,D wܝVX컟D_ڭgLP.A"(<ұ
+ - 8&:-|Y@L.]y!E3=5aKMV`ϸ;!Eҙ ϖ$2yC{gæ< ~p@2.xX@23"5L% oY4b7M;9t\<_eŃY؅)Y} 4}>w_r{*»M9Tۼ"dxz^$|y̬ѪLbe^vpi{ΣLO/7[c̽V+V'pV% U'|drC-4͇Qŧ
+
+i
+=7.;>wa{x#JR2 3d2\ 0Q
+$^3h]>ڒ aZ: M 3(LTd%I f?Il(/%R2A'Ҵ^*t&1Pb) 8ZR2I1{,34ZX
+"M^Md:W@ DE\p]Ћ/l7,_`O:RtgaaY?@vښ2i
+HƧ͆Əz_&6 !@yNv
+^y \Pv^&UAaD+OX,Zqsʵ2b۫+ίIkɢOl>x+&g@qJPwC7uHhfObMI,5>!ǰL"]qRE=LxP'pA#5'M< uc75 -jHE5̪ ks XD^I<*?A1p<`GIl/VTD#ڄ%KVo\BJg0DbxcfM4iu ,R[G`VL!ZjW:3V0T3`~)t0%",hadۓVcVgp]{QW;6!oukͩŒ}3[;rG0t>jO*jMڪWBu[)WMr/t^Z>]ez)62ht)"b{e]oTznoNzRjPt2 Lpb?Ry.j|/sڞo^^ufj: p
+s(u}8i@YD3n>LbshB'R^pKE܌ 3E,I>*'!4'K^&{K1:Qynǭt^MLE~{O3nz`>Kri0u%kc=,x}LRZOn[{MJ qhObAV'O魘.瘬<5\bJ=NA!U6^M^$Wf*wˎhKGe;;:&T_q =Γ=yA}4VZ(*qPpnjz64Vx#!=}g/E mB^ʠnu.y8JEN 
+m:G
+&-Φ^ge *~7a@ml`U,_vT( o@S0`k5I5h8xgi>z1[PtctkK0tfl;rl>FuM]ooÝ HRD$:tQMƁ .#O ed/
+n,4 kP7!Ř`7Sfs/*7nD3/ 0'Eү֬- ݩ6.ᷠd[5e|ccLqhRfFZ@Kz;r5U}!Ĉ ȷSh,$<;-Do08bxRon
+V{CIcb<Pvn!+"*kU$w
+S$+Ge$XTH7K"D!$Ciq??BrO5ѐ<( Pu9AHrv^~c|wmQj̸~aӉ׸vc
+pYʦ%ֿFF2؞WFC0JkW'bO&J=cUqO/J^YD=رq'fg.G6y8DB_;k/|+]"Tw/4}sԶ͹7)ukg gRyլ%{Bc&25tCЊJV؛ײ=_ݪ_P^Xxi0
+oQ{NF8d'Em 7+/`z*芮%t%fdEzݡAz=-u%iH_ ֎ U1An
+J#B1 i G U v!@ـdH *AbVE|
+)݊FǷc3
+x悜\W0#LhG<~H,V9xd~:/Pʉ)/ InK~^ f0n5
+fFY~͌¾ x>n`ok ]HϢc<?7Z,)ؘgB=|͐4YBۢ>Ii)g'7aO
+SMYWf"غ  ($3.|1wGۄ՜
+m~,H+BS'WtTOPԝ۾qrOR4qLZ`÷qZ',̃KGk@'3JtK p4%ﮞJe7vJ!FC
+CfVs_+$PU?'*/T
+M:NW/k#K@svEKMcTijb` JV0KRi ;F̞
+` aʌ8;֥&@ҹk*lpjQu<Ig{G4C/+1[a$K]+ػjixn5u#I-N$%h?YQ/wp>]j ouT)gˌba};FLqS@@Hi .t۞Ѝ
+Qn01^GxlwK*aKeooy_Ȥ5_fʨغ
+;#MƮ+o 2QeMfǫ^Mũ8)Q7\>{SX9 ֚_V‚KV*IjkV!C,eG/S9dh:U5 tlZrHD}Tr=b;~GOޜjU-yL kU 8PQ0Y"o
+ }f*Y=uTC1 _G0*ݺLd<2\,j]Xۃzb K;+9`1$CJ8ůj%U75FH}]at1/x,#$s8Q/ɴ a7|rUjxZG.$
+.u./a~9?9aG!pV)I n1"+dI\>[Uy,YyPqEtPX^ŀjz }Yp5 9
+99ĭYJS[ ӗz"NocUǻKP܉*+1T1O]}Z2u:
+gCqYz_T4\΁Ej ' W6fewMvքF?2NU
+T}u$تjwz[ ?/q$F.fSDŽ$\mzKF5.45hs}
+ܺ& 9yA ,D2;ܥ.jY?VI܅q(1ZĭtI lqN, gK ?ua1рZ%
+zwPM=/Q*P6HP=Y[uPs9aZ{,D7)P O $4%uNlFY}_, D_o%Z5{pk+nhW>LgJ1c}F<@i#MMTQXˆSdRoRcsO+'F!fy"wъ=]la<AW'\zF?thQFB[2(I0W:fo:^Ґ'^67F$A@(.v~dp*$eFGvT6+%21asI5/RSqHJ߬
+4
+Ѧj֞!0e觃߰׊Kdd)ٙa.?l$+}3#d5f0ںN
+6E0]9<d(+54
+ S lZ@fABRxSM4 rMjfe2ho%5&@q/)-:WYmN"W$ شo+tz"*_R++T>5S)iq;Ofi5oqq3ҐUUAhB5v.kgEO}۔1D~0!w8*MzЩYK^mG;=i|?8_E#:pT,Coorsl-R:\mnzÏoP
+jSP?~xgssqM w($>P =.WT$%=ൊF}txlJzm`nYcɷ[c =! TuzLuIo9r99rfe73L~}Z-i㉯rzCӣxɪ~vǀ8uo$ƐD$6EӵՖ*EcGw@nR5Z*8Gیngg|,L{7,e[1NoF-/6z:VU>ַ`x}W;-~l.&a=u8Dr9Zdgw%p=4~-]Rn 7xB6m܂9 9tjPXw숰wҰ+T\k=k>;>Ok2 s1c0>sv7U`G{:dKЯ&x̉[Nqr'尕^BU"̏ð.LC XgJN|=,9 p{–9.)"Dg؋` ,LාQx$\
+F֔][ϩyE$=Qir
+zT2+9
+6HJtt$T@䗫K@BlN
+Cq'OM+q/p:Ojr!.YnuS9InպC 6aLDWY8"Sm NS\m?$ӯbAro 
+yz1ͬڥ
+ACjp~%;׮0Ygg2;aKF,^O9UԓhE= a\MJ3("RAm~7lJyT<H/K!>a5'douI MϦx+^8]B0d+W)7ܹ:PL}ot[X.|JL5>˥ejI@7bQ>h LG/261ۗжC&VeJ'ױ7r y{\:$<&$MbN4@uD#=&h {(_N-xt M)ɤY2ݱ=cǬPpub*w
+ց۵27gdfNdWrmtN-_i{";:>`jpCsۖA|JW~q4گ80>{mv
+";Jk+ Գ@}ihh>%4!2G0y7^=N0dВѼͿn38bϫGwd&,|zwva?Sz>X x +T!ﵡR*i}gJैI^h*芗=43j>伣<nY m/F2IhIi{dQE=
+#9nȼz"
+EC$ˣnap2ع#Bn,]ņ邇jqk5k6 + iZrdU^<Dz%Mى.Z6=s-fH)h[%zx}[N)>k({暣0B}`aݸZsJIzz
+]CN
+^UM0Ks
+q*wu[㫙gi%r_O:0n% BnqGjo  @\UI7qVR̺31Iȃ=*O~gډ?_&".,HNa4sa ?$IU;un!0&ӃȢ̍葓Uj~㴒gx7[R0u9 `tV=9bU@NR0wF@,+[4Y LWtKɞ"FCo/w\%=f ufR>\7ً9><N?<!+ Qe|U?\8>:$ɪH&++\rVI5h<cL"4 iyì"u2(Qs8ǨhJ\WU^QOn0aYi}6Pgd +,'?! FyS=Jv(d<X|m
+ȵu gISQ޲ էS.
+=Ad.疊3+zqKHh{N$%?ؗ6<cl Wx[ko)m=~$
+_+(]lS*z9{g!g:Y*.<FKҤ˞8eJ c+/)7S&[뇀b*?Kxebi
+Fږ/33-@+s N~+F*T+x|.MM؍#ȋJB?TC{.Xb6bk=;("]gM<aNsʯ4-+ -v+ (w|c-:qb? ] {5^hp9+<XlKzhjm6{X&<ܓ8k*V'AB_vsg<A5\ObÀF^_㭞[lWxhy-
+}gAkpֶ KӨxkLYuS7 T)n<=e~F\6Dzp@*6ɛHq~8oTN)o[b;Q$qPNrc7Lmj@#9RSuA5$ۏwV$Kpe_*{ +7==:ٜM\\zf.gyzKqk\>ڸS39Fdv;7n픁 zzt1~X4-EӀۥyHS 7Lϲf?>98vP_ [-Wm7> jXDkD~آ @Q/CNB>ìjLڴ7gCgj\je{͟l4|j]8ܧ5d?\`P2O[._34{ u]hÏ1]4V#\Tr#8a,a-PU c?Z6Ljd6)r>rdmOɅ\Stfse=^]v
+kpA0?08EnCȍU y@cJĶяWiG,(6Ҕ~HڅF2{ϱŝ5p*N+5lj9pE!(gƫ p &H5);.X5/0\gd%27C%Jc`<F[o, OHiӑpFrnp{>J_= rŞr
+h9!Ӕ=ҔT؆b@@(m S`]C--y͆bKUd/sxU]bv-FplZ4FCI6M3lޮ
+娭?rB
+VHigH|U1Y=V ݛ)Ia
+բc<؞`$8,~{DfT r")xO\tO T\c|@hhBٵ*1;K6S%ɒ|pK`ۆzL vqн笜!/>VHW+<5;utD䲎'H%N&}P 3 ꍍa0;eEόGQw;- <b!ʝX+ h&F/N[ sp7%ޔ-!h-p9I+Ɖu:aWmd%MiiŤO05ߎ r<1ϵ#urXX?FʚA3`/w"-jiҍ㌏(&gd1lK* Ax|w+q,Z'rz(O;!/AP=e E˫ˋl+ME rUf[ MՂib{V&ٽ%SͤиjˤRJTI@ P:R )mFGPje0)PvL~V?
+?3ԡEgɎ@騎ʤo_EꯆV^g~0` C<b | 3U[ּ MV߷S^zT\@z,*vM4Y8X 2O >{C랃ezH9ΐ[_i vE\TC%zsK j}tv
+W]{҈"ÎWL<Λ[!qLtdUgR*=pݦxȻUV">ֽ^v,+hZL;lڜ)ot!${QuZLabwah뾼̺dZYĉ3T#hb>R4fng9Ÿ.bx;-KOVң1+*J<=#
+S~^/ش1̠<$5|Jvp 1R8:Z:"ѧ] c(AQfjiWg(k2iCx$CcM-mnD #uCSiAT1N@kxhb3XS/W"uTr4䆧 T*
+4
+Z@Jyh75rPlc5z#BK8mlU$7jpIqZ=Y30 ?k蹘'mR,FU\;B3Nyj{j
+w@0'h>l)A2X@]+08IP;?/N)x8/鳁$w(̤4So0L9,ÏYp`<{KU$WL5;~ &Ѽ9KsҢG}inkf(sBgQ Eޘw.<Ss_
+raJσz7/{;N.d=5 ?` Ț5,E?L]F aW)H 5
+ ,”ݏ`m]mcu~maTA=q&eC59`UDR]$-YE}1 wGAn+!țd8 C!cd?ܧZf)SۆyYӹn"`$N:z;-ֵ"˘6z\tM ]:H3_'qscViZj44qN?0
+%h8ƘSXRT3G#_)OB^hj:5"3lD14vfF͛‡
+~\ЍRg, wQc
+ՂS1I^ 2\[GI0A#Y(w;[CV9̥_v9,3 ysGpս~|QlVv٨3#3|Fo%,B8&aԊ'Zhcg fPH܌TPٰ|e=!Ҁ\a$M3lq!dӁ9 ?NXx=zQHAm*fq
+
+lGX?1ght\6Oѿ>sJWYXqtsz\ ʝ%+7e`i%#"j*gOJRG
+)sf8Ocon摍녎b(Ήr7WMѼzm]S`2^`ϯ䦓_
+#Jm&+N^Jt._7gD[]
+3  I
+ RZ24ۤHP r3C8AڗWC&Ƣ;l} DZz B7B?]mwn dJ
+6z#lғ?-n" F1'0+`z<tHl,wbP̃g+yLwEsHetsY@cKrAT(B_C& LlH'ʑNاԿmA$6iU!1/ܗ4I"ÇY:_]սOD(NwS?*w+uqPЦ,ɭ
+r30X-f Yo⧳O^d8|aܴd 7ݞzr[3~AAɎ"h|UgDo:E_jtfi]o_"w1t,rPe=.|ohd}D$ VFmL|<MuTiE TV:]ZkNo^ub\,@J/Z)ӹƪ--HZQL,o(u
+VL;C1[1xFZĽ:z*NOox;!rF!d']0{Y xo2&?v@..)QVg\Q}II5**S~E.rP+/k[tCR&S[dk 'YY0'Hi^br6:v~(hwna Rړ%WJh}P/]?!A_h/H-
+o8eip9ߚ{oXB6q[>[parz|0Uoo19pvX'S ;[nﺸPH^`ЈǼh_KUϘhkZ!RQV 0kDT7 ]G%ȚqV3LTbsS EOŶ/|
+RTeb8cmsZ!p'dP*@^
+!t-!@ 9$W`EFérQŁ1FFY~s?S儋3pw:*RnA^¤j }lwWx8)a9m3,1v>LamID_9h1S4ψɍź,.@'[N{dk
+g:!mP_[(w[FdSE <;"x[X@;UL&.ޝU^FV9\FrdX(*dH
+ GoN%մsT:!
+o^tN)좆Ch~^Qa:i0cm`HF%?
+x~+SLi.M<d쾠L3yPup'b ԀOQ tNs2&"\?+e>Ll{Am-\Zre]S,Z%Hl,
+P+ftKB \ ;^~fuR~tĈ:$.&Q}
+I!C?qAXIi^om`$O.c ,@ T
+&nbo29: TF2
+݃g[ӓ،AOuY|UN>|?&U}J
+M&{0`YcZX˪Ɋ-~=+ l+K`Y#}
+Ri}ȖAMOm5zq86Z@Z*zc%l*4pˉRqWp—J*5+Y@򅠽`<6:wT׫\
+]31ѪB'W"jGn`jla5jj0yuHCWf)
+֬/B]G/J*g<A[Q"T~U?! wH2MfP5+ 1o\HtQ*JdE= E7\ס@a
+`
+47jotkjoVAdrLqQԫ@y3kxo5ƍee}Kݍiy*? 'Æb]{3##ˁjGnңnlx,Ǭd`ujSf3(;UgJ:þb<2A1;PmmT5CI;$
+8 7|LL˨u"5SҦ3,dԑ8)i4R5.(B_5V7P*WX+1YjFϐ@8׻DhVՕ9C:פ=SԎ?VI]=qjP5dC%%%^3ޢ OfoGz>y@w=SiM >SK2ko
+mDEvݭaɾ6gLT^3 İ3u0,;?sNϼ%&?)xV"z~՞F*`
+^QhT;Q8{8 s-6&PCCMx43x jeH߉d#†iHU7~.nau}gd& iR(؃W> %TQ[QnBhvIC%PMĀmб
+ vD'Uq҈_lbp?VWTA -;4&|;-b߄ =+ڢ>=5?ԯ C*ޡ;i9;8no2daXD2Cw>–4B~LDfAþ(>FUh2
+#`sF9S#~twg lS ?E{ 3a oc/pkT&a%'zq=Ϣ]:o"xb! gN͌uQR^pjNck/@9 9{뾲3we}t$ܛ/9kc=ލO%сd>?'xzp-̚h|>yMeNGϳ#$ԣ Dn*gC8Nn>'*GќE=7‘ofG9'gRTY9<UQhA\8v;Gτ<ۏ
+,]·8?W̃rG5n[PwX4
+-Yn{VXHXdƫ
+"ӊ{M1B/~^V3kv,BuOsSAg"p
+}RCl҈4 oLJKHd럷9]O4|d,-jpCҜۯ<9M,i5qFb$X=1|b>r~N)qJJN#Gs%ӕȮ'@*l6`Ac{?y[biIRAԍ*O6NcY*A dr.̻-iqr16 :L`~6qH淕=W1tlj!!-t_iu3p>:<23ӵUXGB=|\Vs
+= ֗<(Nݯ_F5"QQp`MfM-3
+>TyDZ/[0TM7RGo~:L}.gYzIbYϔAT y UBB76"װ.᫐17= jzik*"YH+8_
+`^lS"o:َqNѝ<!vgTFg1}Z? 7qbm
+[iQ,(m]FGF9r:`y\5 sm8F]֛,S0a#vI"[]N(9vQF7Pنim' dFq53S4
+.' E]| `<4-U!iZjDSjTv/'S̽" 񔶿1-oExeS$F1Aatݠ29py*3LA}SL\
+,6HP#׋cN+4l
+j*IT|S;J0apJ}Vu+* Z]/T%87]mfSPVj]{_"@l*hDaT'fC'T^ב=wgSk3F`I㋊nsJQJZ{7m,&K
+endstream
+endobj
+
+%QDF: ignore_newline
+22 0 obj
+146576
+endobj
+
+xref
+0 23
+0000000000 65535 f
+0000000025 00000 n
+0000000097 00000 n
+0000000221 00000 n
+0000003486 00000 n
+0000003507 00000 n
+0000003589 00000 n
+0000003741 00000 n
+0000003793 00000 n
+0000004252 00000 n
+0000004272 00000 n
+0000004336 00000 n
+0000004534 00000 n
+0000004570 00000 n
+0000004884 00000 n
+0000004904 00000 n
+0000006922 00000 n
+0000006965 00000 n
+0000007208 00000 n
+0000009576 00000 n
+0000009598 00000 n
+0000009682 00000 n
+0000156384 00000 n
+trailer <<
+ /Info 2 0 R
+ /Root 1 0 R
+ /Size 23
+ /ID [<d1db92ffc47f1749a08e8a3b57190061><31415926535897932384626433832795>]
+>>
+startxref
+156408
+%%EOF
diff --git a/examples/qtest/mod-info/files/3.qdf b/examples/qtest/mod-info/files/3.qdf
new file mode 100644
index 00000000..ff82f567
--- /dev/null
+++ b/examples/qtest/mod-info/files/3.qdf
Binary files differ
diff --git a/examples/qtest/mod-info/files/4.qdf b/examples/qtest/mod-info/files/4.qdf
new file mode 100644
index 00000000..992314c7
--- /dev/null
+++ b/examples/qtest/mod-info/files/4.qdf
Binary files differ
diff --git a/examples/qtest/mod-info/files/empty-info.pdf b/examples/qtest/mod-info/files/empty-info.pdf
new file mode 100644
index 00000000..37bef288
--- /dev/null
+++ b/examples/qtest/mod-info/files/empty-info.pdf
Binary files differ
diff --git a/examples/qtest/mod-info/files/no-info.pdf b/examples/qtest/mod-info/files/no-info.pdf
new file mode 100644
index 00000000..05180443
--- /dev/null
+++ b/examples/qtest/mod-info/files/no-info.pdf
Binary files differ
diff --git a/examples/qtest/mod-info/files/source1.pdf b/examples/qtest/mod-info/files/source1.pdf
new file mode 100644
index 00000000..86cc3477
--- /dev/null
+++ b/examples/qtest/mod-info/files/source1.pdf
Binary files differ
diff --git a/examples/qtest/mod-info/files/source2.pdf b/examples/qtest/mod-info/files/source2.pdf
new file mode 100644
index 00000000..1a814e91
--- /dev/null
+++ b/examples/qtest/mod-info/files/source2.pdf
Binary files differ
diff --git a/examples/qtest/mod-info/usage.out b/examples/qtest/mod-info/usage.out
new file mode 100644
index 00000000..5eeba82e
--- /dev/null
+++ b/examples/qtest/mod-info/usage.out
@@ -0,0 +1,5 @@
+Usage: pdf-mod-info -in in_file [-out out_file] [-key key [-val val]?]+
+Modifies/Adds/Removes PDF /Info entries in the in_file
+and stores the result in out_file
+Special mode: pdf-mod-info --dump file
+dumps all /Info entries to stdout
diff --git a/examples/qtest/npages.test b/examples/qtest/npages.test
new file mode 100644
index 00000000..cd81e6b8
--- /dev/null
+++ b/examples/qtest/npages.test
@@ -0,0 +1,23 @@
+#!/usr/bin/env perl
+require 5.008;
+BEGIN { $^W = 1; }
+use strict;
+
+chdir("npages");
+
+require TestDriver;
+
+my $td = new TestDriver('pdf-npages');
+
+$td->runtest("normal",
+ {$td->COMMAND => "pdf-npages minimal.pdf"},
+ {$td->STRING => "1\n", $td->EXIT_STATUS => 0},
+ $td->NORMALIZE_NEWLINES);
+
+$td->runtest("error",
+ {$td->COMMAND => "pdf-npages bad"},
+ {$td->STRING => "pdf-npages: bad: offset 0: not a PDF file\n",
+ $td->EXIT_STATUS => 2},
+ $td->NORMALIZE_NEWLINES);
+
+$td->report(2);
diff --git a/examples/qtest/npages/bad b/examples/qtest/npages/bad
new file mode 100644
index 00000000..9daeafb9
--- /dev/null
+++ b/examples/qtest/npages/bad
@@ -0,0 +1 @@
+test
diff --git a/examples/qtest/npages/minimal.pdf b/examples/qtest/npages/minimal.pdf
new file mode 100644
index 00000000..a7e01f91
--- /dev/null
+++ b/examples/qtest/npages/minimal.pdf
@@ -0,0 +1,79 @@
+%PDF-1.3
+1 0 obj
+<<
+ /Type /Catalog
+ /Pages 2 0 R
+>>
+endobj
+
+2 0 obj
+<<
+ /Type /Pages
+ /Kids [
+ 3 0 R
+ ]
+ /Count 1
+>>
+endobj
+
+3 0 obj
+<<
+ /Type /Page
+ /Parent 2 0 R
+ /MediaBox [0 0 612 792]
+ /Contents 4 0 R
+ /Resources <<
+ /ProcSet 5 0 R
+ /Font <<
+ /F1 6 0 R
+ >>
+ >>
+>>
+endobj
+
+4 0 obj
+<<
+ /Length 44
+>>
+stream
+BT
+ /F1 24 Tf
+ 72 720 Td
+ (Potato) Tj
+ET
+endstream
+endobj
+
+5 0 obj
+[
+ /PDF
+ /Text
+]
+endobj
+
+6 0 obj
+<<
+ /Type /Font
+ /Subtype /Type1
+ /Name /F1
+ /BaseFont /Helvetica
+ /Encoding /WinAnsiEncoding
+>>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000009 00000 n
+0000000063 00000 n
+0000000135 00000 n
+0000000307 00000 n
+0000000403 00000 n
+0000000438 00000 n
+trailer <<
+ /Size 7
+ /Root 1 0 R
+>>
+startxref
+556
+%%EOF