diff --git a/ChangeLog b/ChangeLog index 61b34903..ca747b9d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2021-03-11 Jay Berkenbilt + + * Bug fix: allow /DR to be direct in /AcroForm + 2021-03-04 Jay Berkenbilt * 10.3.0: release diff --git a/libqpdf/QPDFAcroFormDocumentHelper.cc b/libqpdf/QPDFAcroFormDocumentHelper.cc index 0b3cc2ff..256fa694 100644 --- a/libqpdf/QPDFAcroFormDocumentHelper.cc +++ b/libqpdf/QPDFAcroFormDocumentHelper.cc @@ -947,8 +947,12 @@ QPDFAcroFormDocumentHelper::transformAnnotations( { if (from_acroform.getKey("/DR").isDictionary()) { - from_dr = this->qpdf.copyForeignObject( - from_acroform.getKey("/DR")); + from_dr = from_acroform.getKey("/DR"); + if (! from_dr.isIndirect()) + { + from_dr = from_qpdf->makeIndirectObject(from_dr); + } + from_dr = this->qpdf.copyForeignObject(from_dr); } if (from_acroform.getKey("/DA").isString()) { @@ -1105,6 +1109,7 @@ QPDFAcroFormDocumentHelper::transformAnnotations( // They will already be copied, so we'll get the right // object back. + // top_field and ffield_oh are known to be indirect. top_field = this->qpdf.copyForeignObject(top_field); ffield_oh = this->qpdf.copyForeignObject(ffield_oh); } @@ -1216,6 +1221,10 @@ QPDFAcroFormDocumentHelper::transformAnnotations( } if (foreign) { + if (! annot.isIndirect()) + { + annot = from_qpdf->makeIndirectObject(annot); + } annot = this->qpdf.copyForeignObject(annot); } maybe_copy_object(annot); diff --git a/manual/qpdf-manual.xml b/manual/qpdf-manual.xml index e7c243a3..78a497ad 100644 --- a/manual/qpdf-manual.xml +++ b/manual/qpdf-manual.xml @@ -5060,6 +5060,26 @@ print "\n"; --> + + 10.3.1: Month dd, YYYY + + + + + Bug Fixes + + + + + Form field copying failed on files where /DR was a direct + object in the document-level form dictionary. + + + + + + + 10.3.0: March 4, 2021 diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test index 51ae1b66..afb6668b 100644 --- a/qpdf/qtest/qpdf.test +++ b/qpdf/qtest/qpdf.test @@ -2425,7 +2425,7 @@ foreach my $f (qw(screen print)) show_ntests(); # ---------- $td->notify("--- Copy Annotations ---"); -$n_tests += 37; +$n_tests += 39; $td->runtest("complex copy annotations", {$td->COMMAND => @@ -2582,6 +2582,17 @@ $td->runtest("check output", {$td->FILE => "a.pdf"}, {$td->FILE => "field-parse-errors-out.pdf"}); +$td->runtest("Direct DR and annotations", + {$td->COMMAND => + "qpdf direct-dr.pdf --split-pages" . + " --qdf --static-id --no-original-object-ids" . + " split-out.pdf"}, + {$td->STRING => "", $td->EXIT_STATUS => 0}, + $td->NORMALIZE_NEWLINES); +$td->runtest("check output", + {$td->FILE => "split-out-1.pdf"}, + {$td->FILE => "direct-dr-out.pdf"}); + show_ntests(); # ---------- $td->notify("--- Page Tree Issues ---"); diff --git a/qpdf/qtest/qpdf/direct-dr-out.pdf b/qpdf/qtest/qpdf/direct-dr-out.pdf new file mode 100644 index 00000000..ea1a227c --- /dev/null +++ b/qpdf/qtest/qpdf/direct-dr-out.pdf @@ -0,0 +1,950 @@ +%PDF-1.3 +%¿÷¢þ +%QDF-1.0 + +1 0 obj +<< + /AcroForm 2 0 R + /Pages 3 0 R + /Type /Catalog +>> +endobj + +2 0 obj +<< + /DR 4 0 R + /Fields [ + 5 0 R + 6 0 R + 7 0 R + ] +>> +endobj + +3 0 obj +<< + /Count 1 + /Kids [ + 8 0 R + ] + /Type /Pages +>> +endobj + +4 0 obj +<< + /Font << + /F1 9 0 R + >> +>> +endobj + +5 0 obj +<< + /AP << + /N 10 0 R + >> + /DA (0 0.4 0 rg /F1 18 Tf) + /DR 4 0 R + /DV () + /FT /Tx + /Ff 0 + /Rect [ + 72 + 470.774 + 190.8 + 484.922 + ] + /Subtype /Widget + /T (Text Box 1) + /Type /Annot + /V (Formy field) +>> +endobj + +6 0 obj +<< + /AP << + /N 12 0 R + >> + /DA (0 0.4 0 rg /F1 18 Tf) + /DR 4 0 R + /DV () + /FT /Tx + /Ff 0 + /Rect [ + 372 + 330.774 + 386.148 + 470.374 + ] + /Subtype /Widget + /T (Text Box 2) + /Type /Annot + /V (Rot-ccw field) +>> +endobj + +7 0 obj +<< + /DV /1 + /FT /Btn + /Ff 49152 + /Kids [ + 14 0 R + 15 0 R + 16 0 R + ] + /T (r1) + /V /2 +>> +endobj + +%% Page 1 +8 0 obj +<< + /Annots [ + 17 0 R + 5 0 R + 18 0 R + 6 0 R + 19 0 R + 20 0 R + 21 0 R + 22 0 R + 14 0 R + 15 0 R + 16 0 R + ] + /Contents 23 0 R + /MediaBox [ + 0 + 0 + 612 + 792 + ] + /Parent 3 0 R + /Resources << + /Font << + /F1 9 0 R + >> + >> + /Type /Page +>> +endobj + +9 0 obj +<< + /BaseFont /Courier + /Encoding /WinAnsiEncoding + /Subtype /Type1 + /Type /Font +>> +endobj + +10 0 obj +<< + /BBox [ + 0 + -2.826 + 118.8 + 11.322 + ] + /Resources << + /Font << + /F1 9 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 11 0 R +>> +stream +/Tx BMC +q +BT + /F1 18 Tf + (Formy field) Tj +ET +Q +EMC +endstream +endobj + +11 0 obj +53 +endobj + +12 0 obj +<< + /BBox [ + 0 + -2.826 + 140.4 + 11.322 + ] + /Matrix [ + 0 + 1 + -1 + 0 + 0 + 0 + ] + /Resources << + /Font << + /F1 9 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 13 0 R +>> +stream +/Tx BMC +q +BT + /F1 18 Tf + (Rot-ccw field) Tj +ET +Q +EMC +endstream +endobj + +13 0 obj +55 +endobj + +14 0 obj +<< + /AP << + /N << + /1 25 0 R + /Off 27 0 R + >> + >> + /AS /1 + /DA (0.18039 0.20392 0.21176 rg /ZaDi 0 Tf) + /DR 4 0 R + /F 4 + /FT /Btn + /MK << + /CA (l) + >> + /Parent 7 0 R + /Rect [ + 152.749 + 648.501 + 164.801 + 660.549 + ] + /Subtype /Widget + /Type /Annot +>> +endobj + +15 0 obj +<< + /AP << + /N << + /2 29 0 R + /Off 31 0 R + >> + >> + /AS /2 + /DA (0.18039 0.20392 0.21176 rg /ZaDi 0 Tf) + /DR 4 0 R + /F 4 + /FT /Btn + /MK << + /CA (l) + >> + /Parent 7 0 R + /Rect [ + 152.749 + 627.301 + 164.801 + 639.349 + ] + /Subtype /Widget + /Type /Annot +>> +endobj + +16 0 obj +<< + /AP << + /N << + /3 33 0 R + /Off 35 0 R + >> + >> + /AS /3 + /DA (0.18039 0.20392 0.21176 rg /ZaDi 0 Tf) + /DR 4 0 R + /F 4 + /FT /Btn + /MK << + /CA (l) + >> + /Parent 7 0 R + /Rect [ + 151.399 + 606.501 + 163.451 + 618.549 + ] + /Subtype /Widget + /Type /Annot +>> +endobj + +17 0 obj +<< + /A << + /S /URI + /URI (https://www.qbilt.org/) + >> + /Border [ + 0 + 0 + .4 + ] + /C [ + .8 + .6 + .6 + ] + /H /I + /Rect [ + 72 + 501.832 + 374.4 + 520.696 + ] + /Subtype /Link + /Type /Annot +>> +endobj + +18 0 obj +<< + /AP << + /N 37 0 R + >> + /Contents (attachment1.txt) + /FS 39 0 R + /NM (attachment1.txt) + /Rect [ + 72 + 400 + 92 + 420 + ] + /Subtype /FileAttachment + /Type /Annot +>> +endobj + +19 0 obj +<< + /AP << + /N 40 0 R + >> + /DA () + /Rect [ + 72 + 350 + 92 + 360 + ] + /Subtype /FreeText + /Type /Annot +>> +endobj + +20 0 obj +<< + /AP << + /N 42 0 R + >> + /DA () + /Rect [ + 102 + 350 + 112 + 370 + ] + /Subtype /FreeText + /Type /Annot +>> +endobj + +21 0 obj +<< + /AP << + /N 44 0 R + >> + /DA () + /Rect [ + 122 + 350 + 142 + 360 + ] + /Subtype /FreeText + /Type /Annot +>> +endobj + +22 0 obj +<< + /AP << + /N 46 0 R + >> + /DA () + /Rect [ + 152 + 350 + 162 + 370 + ] + /Subtype /FreeText + /Type /Annot +>> +endobj + +%% Contents for page 1 +23 0 obj +<< + /Length 24 0 R +>> +stream +q +1 1 .7 rg +.5 .5 0 RG +72 470.77 118.8 14.15 re +B +Q +q +0 .5 .5 RG +0 1 1 rg +372 330.77 14.15 139.4 re +B +Q +q +1 0 0 RG +72 310 20 10 re +72 310 5 10 re +S +0 1 0 RG +102 310 10 20 re +102 310 10 5 re +S +0 0 1 RG +122 310 20 10 re +137 310 5 10 re +S +0.5 0 1 RG +152 310 10 20 re +152 325 10 5 re +S +10 w +0.14 .33 .18 RG +5 5 602 782 re +S +Q +BT + /F1 16 Tf + 20.6 TL + 170 650 Td + (radio button 1) Tj + (radio button 2) ' + (radio button 3) ' + 1 0 0 1 72 546 Tm + /F1 20 Tf + (Thick green border surrounds page.) Tj + 0 -40 Td + /F1 24 Tf + 0 0 1 rg + (https://www.qbilt.org) Tj + /F1 12 Tf + 1 0 0 1 202 474 Tm + (<- Formy field in yellow) Tj + 1 0 0 1 392 410 Tm + 14.4 TL + (<- Rot-ccw field) Tj + (with "Rot" at bottom) ' + (and text going up) ' + 0 g + 1 0 0 1 102 405 Tm + (Arrow to the left points down.) Tj + 1 0 0 1 182 310 Tm + (<- Drawn rectangles appear below annotations.) Tj +ET +endstream +endobj + +24 0 obj +874 +endobj + +25 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 48 0 R + /Subtype /Form + /Type /XObject + /Length 26 0 R +>> +stream +/Tx BMC +q BT +0.18039 0.20392 0.21176 rg /ZaDi 12.05 Tf +0 0 Td +ET +Q +1 0 0 rg +6 8.4 m 7.35 8.4 8.45 7.35 8.45 6 c +8.45 4.65 7.35 3.55 6 3.55 c +4.65 3.55 3.6 4.65 3.6 6 c +3.6 7.35 4.65 8.4 6 8.4 c f* + +EMC +endstream +endobj + +26 0 obj +202 +endobj + +27 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 48 0 R + /Subtype /Form + /Type /XObject + /Length 28 0 R +>> +stream +/Tx BMC +EMC +endstream +endobj + +28 0 obj +12 +endobj + +29 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 48 0 R + /Subtype /Form + /Type /XObject + /Length 30 0 R +>> +stream +/Tx BMC +q BT +0.18039 0.20392 0.21176 rg /ZaDi 12.05 Tf +0 0 Td +ET +Q +0 1 0 rg +6 8.4 m 7.35 8.4 8.45 7.35 8.45 6 c +8.45 4.65 7.35 3.55 6 3.55 c +4.65 3.55 3.6 4.65 3.6 6 c +3.6 7.35 4.65 8.4 6 8.4 c f* + +EMC +endstream +endobj + +30 0 obj +202 +endobj + +31 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 48 0 R + /Subtype /Form + /Type /XObject + /Length 32 0 R +>> +stream +/Tx BMC +EMC +endstream +endobj + +32 0 obj +12 +endobj + +33 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 48 0 R + /Subtype /Form + /Type /XObject + /Length 34 0 R +>> +stream +/Tx BMC +q BT +0.18039 0.20392 0.21176 rg /ZaDi 12.05 Tf +0 0 Td +ET +Q +0 0 1 rg +6 8.4 m 7.35 8.4 8.45 7.35 8.45 6 c +8.45 4.65 7.35 3.55 6 3.55 c +4.65 3.55 3.6 4.65 3.6 6 c +3.6 7.35 4.65 8.4 6 8.4 c f* + +EMC +endstream +endobj + +34 0 obj +202 +endobj + +35 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 48 0 R + /Subtype /Form + /Type /XObject + /Length 36 0 R +>> +stream +/Tx BMC +EMC +endstream +endobj + +36 0 obj +12 +endobj + +37 0 obj +<< + /BBox [ + 0 + 0 + 20 + 20 + ] + /Resources << + >> + /Subtype /Form + /Type /XObject + /Length 38 0 R +>> +stream +0 10 m +10 0 l +20 10 l +10 0 m +10 20 l +0 0 20 20 re +S +endstream +endobj + +38 0 obj +52 +endobj + +39 0 obj +<< + /EF << + /F 49 0 R + /UF 49 0 R + >> + /F (attachment1.txt) + /Type /Filespec + /UF (attachment1.txt) +>> +endobj + +40 0 obj +<< + /BBox [ + 0 + 0 + 20 + 10 + ] + /Resources << + /Font << + /F1 9 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 41 0 R +>> +stream +1 0 0 RG +0 0 20 10 re +0 0 5 10 re +S +endstream +endobj + +41 0 obj +36 +endobj + +42 0 obj +<< + /BBox [ + 0 + 0 + 20 + 10 + ] + /Matrix [ + 0 + 1 + -1 + 0 + 0 + 0 + ] + /Resources << + /Font << + /F1 9 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 43 0 R +>> +stream +0 1 0 RG +0 0 20 10 re +0 0 5 10 re +S +endstream +endobj + +43 0 obj +36 +endobj + +44 0 obj +<< + /BBox [ + 0 + 0 + 20 + 10 + ] + /Matrix [ + -1 + 0 + 0 + -1 + 0 + 0 + ] + /Resources << + /Font << + /F1 9 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 45 0 R +>> +stream +0 0 1 RG +0 0 20 10 re +0 0 5 10 re +S +endstream +endobj + +45 0 obj +36 +endobj + +46 0 obj +<< + /BBox [ + 0 + 0 + 20 + 10 + ] + /Matrix [ + 0 + -1 + 1 + 0 + 0 + 0 + ] + /Resources << + /Font << + /F1 9 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 47 0 R +>> +stream +0.5 0 1 RG +0 0 20 10 re +0 0 5 10 re +S +endstream +endobj + +47 0 obj +38 +endobj + +48 0 obj +<< + /Font 51 0 R + /ProcSet [ + /PDF + /Text + ] +>> +endobj + +49 0 obj +<< + /Params << + /CheckSum <80a33fc110b5a7b8b4d58b8d57e814bc> + /Size 22 + /Subtype /text#2fplain + >> + /Type /EmbeddedFile + /Length 50 0 R +>> +stream +content of attachment +endstream +endobj + +50 0 obj +22 +endobj + +51 0 obj +<< + /ZaDi 52 0 R +>> +endobj + +52 0 obj +<< + /BaseFont /ZapfDingbats + /Subtype /Type1 + /Type /Font +>> +endobj + +xref +0 53 +0000000000 65535 f +0000000025 00000 n +0000000097 00000 n +0000000177 00000 n +0000000249 00000 n +0000000301 00000 n +0000000545 00000 n +0000000794 00000 n +0000000923 00000 n +0000001232 00000 n +0000001336 00000 n +0000001589 00000 n +0000001609 00000 n +0000001917 00000 n +0000001937 00000 n +0000002248 00000 n +0000002559 00000 n +0000002870 00000 n +0000003114 00000 n +0000003318 00000 n +0000003458 00000 n +0000003600 00000 n +0000003742 00000 n +0000003907 00000 n +0000004838 00000 n +0000004859 00000 n +0000005218 00000 n +0000005239 00000 n +0000005408 00000 n +0000005428 00000 n +0000005787 00000 n +0000005808 00000 n +0000005977 00000 n +0000005997 00000 n +0000006356 00000 n +0000006377 00000 n +0000006546 00000 n +0000006566 00000 n +0000006770 00000 n +0000006790 00000 n +0000006921 00000 n +0000007145 00000 n +0000007165 00000 n +0000007442 00000 n +0000007462 00000 n +0000007740 00000 n +0000007760 00000 n +0000008039 00000 n +0000008059 00000 n +0000008133 00000 n +0000008341 00000 n +0000008361 00000 n +0000008399 00000 n +trailer << + /Root 1 0 R + /Size 53 + /ID [<31415926535897932384626433832795><31415926535897932384626433832795>] +>> +startxref +8480 +%%EOF diff --git a/qpdf/qtest/qpdf/direct-dr.pdf b/qpdf/qtest/qpdf/direct-dr.pdf new file mode 100644 index 00000000..b70c54a2 --- /dev/null +++ b/qpdf/qtest/qpdf/direct-dr.pdf @@ -0,0 +1,968 @@ +%PDF-1.6 +%¿÷¢þ +%QDF-1.0 + +1 0 obj +<< + /AcroForm << + /DR << + /Font << + /F1 2 0 R + >> + >> + /Fields [ + 3 0 R + 4 0 R + 5 0 R + ] + >> + /Names << + /EmbeddedFiles 6 0 R + >> + /Pages 7 0 R + /Type /Catalog +>> +endobj + +2 0 obj +<< + /BaseFont /Courier + /Encoding /WinAnsiEncoding + /Subtype /Type1 + /Type /Font +>> +endobj + +3 0 obj +<< + /AP << + /N 8 0 R + >> + /DA (0 0.4 0 rg /F1 18 Tf) + /DR << + /Font << + /F1 2 0 R + >> + >> + /DV () + /FT /Tx + /Ff 0 + /Rect [ + 72 + 470.774 + 190.8 + 484.922 + ] + /Subtype /Widget + /T (Text Box 1) + /Type /Annot + /V (Formy field) +>> +endobj + +4 0 obj +<< + /AP << + /N 10 0 R + >> + /DA (0 0.4 0 rg /F1 18 Tf) + /DR << + /Font << + /F1 2 0 R + >> + >> + /DV () + /FT /Tx + /Ff 0 + /Rect [ + 372 + 330.774 + 386.148 + 470.374 + ] + /Subtype /Widget + /T (Text Box 2) + /Type /Annot + /V (Rot-ccw field) +>> +endobj + +5 0 obj +<< + /DV /1 + /FT /Btn + /Ff 49152 + /Kids [ + 12 0 R + 13 0 R + 14 0 R + ] + /T (r1) + /V /2 +>> +endobj + +6 0 obj +<< + /Names [ + (attachment1.txt) + 15 0 R + ] +>> +endobj + +7 0 obj +<< + /Count 1 + /Kids [ + 16 0 R + ] + /Type /Pages +>> +endobj + +8 0 obj +<< + /BBox [ + 0 + -2.826 + 118.8 + 11.322 + ] + /Resources << + /Font << + /F1 2 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 9 0 R +>> +stream +/Tx BMC +q +BT + /F1 18 Tf + (Formy field) Tj +ET +Q +EMC +endstream +endobj + +9 0 obj +53 +endobj + +10 0 obj +<< + /BBox [ + 0 + -2.826 + 140.4 + 11.322 + ] + /Matrix [ + 0 + 1 + -1 + 0 + 0 + 0 + ] + /Resources << + /Font << + /F1 2 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 11 0 R +>> +stream +/Tx BMC +q +BT + /F1 18 Tf + (Rot-ccw field) Tj +ET +Q +EMC +endstream +endobj + +11 0 obj +55 +endobj + +12 0 obj +<< + /AP << + /N << + /1 17 0 R + /Off 19 0 R + >> + >> + /AS /1 + /DA (0.18039 0.20392 0.21176 rg /ZaDi 0 Tf) + /DR << + /Font << + /ZaDi 21 0 R + >> + >> + /F 4 + /FT /Btn + /MK << + /CA (l) + >> + /Parent 5 0 R + /Rect [ + 152.749 + 648.501 + 164.801 + 660.549 + ] + /Subtype /Widget + /Type /Annot +>> +endobj + +13 0 obj +<< + /AP << + /N << + /2 22 0 R + /Off 24 0 R + >> + >> + /AS /2 + /DA (0.18039 0.20392 0.21176 rg /ZaDi 0 Tf) + /DR << + /Font << + /ZaDi 21 0 R + >> + >> + /F 4 + /FT /Btn + /MK << + /CA (l) + >> + /Parent 5 0 R + /Rect [ + 152.749 + 627.301 + 164.801 + 639.349 + ] + /Subtype /Widget + /Type /Annot +>> +endobj + +14 0 obj +<< + /AP << + /N << + /3 26 0 R + /Off 28 0 R + >> + >> + /AS /3 + /DA (0.18039 0.20392 0.21176 rg /ZaDi 0 Tf) + /DR << + /Font << + /ZaDi 21 0 R + >> + >> + /F 4 + /FT /Btn + /MK << + /CA (l) + >> + /Parent 5 0 R + /Rect [ + 151.399 + 606.501 + 163.451 + 618.549 + ] + /Subtype /Widget + /Type /Annot +>> +endobj + +15 0 obj +<< + /EF << + /F 30 0 R + /UF 30 0 R + >> + /F (attachment1.txt) + /Type /Filespec + /UF (attachment1.txt) +>> +endobj + +%% Page 1 +16 0 obj +<< + /Annots [ + 32 0 R + 3 0 R + << + /AP << + /N 33 0 R + >> + /Contents (attachment1.txt) + /FS 15 0 R + /NM (attachment1.txt) + /Rect [ + 72 + 400 + 92 + 420 + ] + /Subtype /FileAttachment + /Type /Annot + >> + 4 0 R + 35 0 R + 36 0 R + 37 0 R + 38 0 R + 12 0 R + 13 0 R + 14 0 R + ] + /Contents 39 0 R + /MediaBox [ + 0 + 0 + 612 + 792 + ] + /Parent 7 0 R + /Resources << + /Font << + /F1 2 0 R + >> + >> + /Type /Page +>> +endobj + +17 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 41 0 R + /Subtype /Form + /Type /XObject + /Length 18 0 R +>> +stream +/Tx BMC +q BT +0.18039 0.20392 0.21176 rg /ZaDi 12.05 Tf +0 0 Td +ET +Q +1 0 0 rg +6 8.4 m 7.35 8.4 8.45 7.35 8.45 6 c +8.45 4.65 7.35 3.55 6 3.55 c +4.65 3.55 3.6 4.65 3.6 6 c +3.6 7.35 4.65 8.4 6 8.4 c f* + +EMC +endstream +endobj + +18 0 obj +202 +endobj + +19 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 41 0 R + /Subtype /Form + /Type /XObject + /Length 20 0 R +>> +stream +/Tx BMC +EMC +endstream +endobj + +20 0 obj +12 +endobj + +21 0 obj +<< + /BaseFont /ZapfDingbats + /Subtype /Type1 + /Type /Font +>> +endobj + +22 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 41 0 R + /Subtype /Form + /Type /XObject + /Length 23 0 R +>> +stream +/Tx BMC +q BT +0.18039 0.20392 0.21176 rg /ZaDi 12.05 Tf +0 0 Td +ET +Q +0 1 0 rg +6 8.4 m 7.35 8.4 8.45 7.35 8.45 6 c +8.45 4.65 7.35 3.55 6 3.55 c +4.65 3.55 3.6 4.65 3.6 6 c +3.6 7.35 4.65 8.4 6 8.4 c f* + +EMC +endstream +endobj + +23 0 obj +202 +endobj + +24 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 41 0 R + /Subtype /Form + /Type /XObject + /Length 25 0 R +>> +stream +/Tx BMC +EMC +endstream +endobj + +25 0 obj +12 +endobj + +26 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 41 0 R + /Subtype /Form + /Type /XObject + /Length 27 0 R +>> +stream +/Tx BMC +q BT +0.18039 0.20392 0.21176 rg /ZaDi 12.05 Tf +0 0 Td +ET +Q +0 0 1 rg +6 8.4 m 7.35 8.4 8.45 7.35 8.45 6 c +8.45 4.65 7.35 3.55 6 3.55 c +4.65 3.55 3.6 4.65 3.6 6 c +3.6 7.35 4.65 8.4 6 8.4 c f* + +EMC +endstream +endobj + +27 0 obj +202 +endobj + +28 0 obj +<< + /BBox [ + 0 + 0 + 12.05 + 12.05 + ] + /Resources 41 0 R + /Subtype /Form + /Type /XObject + /Length 29 0 R +>> +stream +/Tx BMC +EMC +endstream +endobj + +29 0 obj +12 +endobj + +30 0 obj +<< + /Params << + /CheckSum <80a33fc110b5a7b8b4d58b8d57e814bc> + /Size 22 + /Subtype /text#2fplain + >> + /Type /EmbeddedFile + /Length 31 0 R +>> +stream +content of attachment +endstream +endobj + +31 0 obj +22 +endobj + +32 0 obj +<< + /A << + /S /URI + /URI (https://www.qbilt.org/) + >> + /Border [ + 0 + 0 + .4 + ] + /C [ + .8 + .6 + .6 + ] + /H /I + /Rect [ + 72 + 501.832 + 374.4 + 520.696 + ] + /Subtype /Link + /Type /Annot +>> +endobj + +33 0 obj +<< + /BBox [ + 0 + 0 + 20 + 20 + ] + /Resources << + >> + /Subtype /Form + /Type /XObject + /Length 34 0 R +>> +stream +0 10 m +10 0 l +20 10 l +10 0 m +10 20 l +0 0 20 20 re +S +endstream +endobj + +34 0 obj +52 +endobj + +35 0 obj +<< + /AP << + /N 42 0 R + >> + /DA () + /Rect [ + 72 + 350 + 92 + 360 + ] + /Subtype /FreeText + /Type /Annot +>> +endobj + +36 0 obj +<< + /AP << + /N 44 0 R + >> + /DA () + /Rect [ + 102 + 350 + 112 + 370 + ] + /Subtype /FreeText + /Type /Annot +>> +endobj + +37 0 obj +<< + /AP << + /N 46 0 R + >> + /DA () + /Rect [ + 122 + 350 + 142 + 360 + ] + /Subtype /FreeText + /Type /Annot +>> +endobj + +38 0 obj +<< + /AP << + /N 48 0 R + >> + /DA () + /Rect [ + 152 + 350 + 162 + 370 + ] + /Subtype /FreeText + /Type /Annot +>> +endobj + +%% Contents for page 1 +39 0 obj +<< + /Length 40 0 R +>> +stream +q +1 1 .7 rg +.5 .5 0 RG +72 470.77 118.8 14.15 re +B +Q +q +0 .5 .5 RG +0 1 1 rg +372 330.77 14.15 139.4 re +B +Q +q +1 0 0 RG +72 310 20 10 re +72 310 5 10 re +S +0 1 0 RG +102 310 10 20 re +102 310 10 5 re +S +0 0 1 RG +122 310 20 10 re +137 310 5 10 re +S +0.5 0 1 RG +152 310 10 20 re +152 325 10 5 re +S +10 w +0.14 .33 .18 RG +5 5 602 782 re +S +Q +BT + /F1 16 Tf + 20.6 TL + 170 650 Td + (radio button 1) Tj + (radio button 2) ' + (radio button 3) ' + 1 0 0 1 72 546 Tm + /F1 20 Tf + (Thick green border surrounds page.) Tj + 0 -40 Td + /F1 24 Tf + 0 0 1 rg + (https://www.qbilt.org) Tj + /F1 12 Tf + 1 0 0 1 202 474 Tm + (<- Formy field in yellow) Tj + 1 0 0 1 392 410 Tm + 14.4 TL + (<- Rot-ccw field) Tj + (with "Rot" at bottom) ' + (and text going up) ' + 0 g + 1 0 0 1 102 405 Tm + (Arrow to the left points down.) Tj + 1 0 0 1 182 310 Tm + (<- Drawn rectangles appear below annotations.) Tj +ET +endstream +endobj + +40 0 obj +874 +endobj + +41 0 obj +<< + /Font 50 0 R + /ProcSet [ + /PDF + /Text + ] +>> +endobj + +42 0 obj +<< + /BBox [ + 0 + 0 + 20 + 10 + ] + /Resources << + /Font << + /F1 2 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 43 0 R +>> +stream +1 0 0 RG +0 0 20 10 re +0 0 5 10 re +S +endstream +endobj + +43 0 obj +36 +endobj + +44 0 obj +<< + /BBox [ + 0 + 0 + 20 + 10 + ] + /Matrix [ + 0 + 1 + -1 + 0 + 0 + 0 + ] + /Resources << + /Font << + /F1 2 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 45 0 R +>> +stream +0 1 0 RG +0 0 20 10 re +0 0 5 10 re +S +endstream +endobj + +45 0 obj +36 +endobj + +46 0 obj +<< + /BBox [ + 0 + 0 + 20 + 10 + ] + /Matrix [ + -1 + 0 + 0 + -1 + 0 + 0 + ] + /Resources << + /Font << + /F1 2 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 47 0 R +>> +stream +0 0 1 RG +0 0 20 10 re +0 0 5 10 re +S +endstream +endobj + +47 0 obj +36 +endobj + +48 0 obj +<< + /BBox [ + 0 + 0 + 20 + 10 + ] + /Matrix [ + 0 + -1 + 1 + 0 + 0 + 0 + ] + /Resources << + /Font << + /F1 2 0 R + >> + >> + /Subtype /Form + /Type /XObject + /Length 49 0 R +>> +stream +0.5 0 1 RG +0 0 20 10 re +0 0 5 10 re +S +endstream +endobj + +49 0 obj +38 +endobj + +50 0 obj +<< + /ZaDi 21 0 R +>> +endobj + +xref +0 51 +0000000000 65535 f +0000000025 00000 n +0000000257 00000 n +0000000361 00000 n +0000000642 00000 n +0000000929 00000 n +0000001048 00000 n +0000001118 00000 n +0000001191 00000 n +0000001442 00000 n +0000001461 00000 n +0000001769 00000 n +0000001789 00000 n +0000002141 00000 n +0000002493 00000 n +0000002845 00000 n +0000002986 00000 n +0000003536 00000 n +0000003895 00000 n +0000003916 00000 n +0000004085 00000 n +0000004105 00000 n +0000004186 00000 n +0000004545 00000 n +0000004566 00000 n +0000004735 00000 n +0000004755 00000 n +0000005114 00000 n +0000005135 00000 n +0000005304 00000 n +0000005324 00000 n +0000005532 00000 n +0000005552 00000 n +0000005796 00000 n +0000006000 00000 n +0000006020 00000 n +0000006160 00000 n +0000006302 00000 n +0000006444 00000 n +0000006609 00000 n +0000007540 00000 n +0000007561 00000 n +0000007635 00000 n +0000007859 00000 n +0000007879 00000 n +0000008156 00000 n +0000008176 00000 n +0000008454 00000 n +0000008474 00000 n +0000008753 00000 n +0000008773 00000 n +trailer << + /Root 1 0 R + /Size 51 + /ID [<05209b885a642b4bccb162f0c1aff77a>] +>> +startxref +8811 +%%EOF