aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--libqpdf/QPDFAcroFormDocumentHelper.cc13
-rw-r--r--manual/qpdf-manual.xml20
-rw-r--r--qpdf/qtest/qpdf.test13
-rw-r--r--qpdf/qtest/qpdf/direct-dr-out.pdf950
-rw-r--r--qpdf/qtest/qpdf/direct-dr.pdf968
6 files changed, 1965 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 61b34903..ca747b9d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2021-03-11 Jay Berkenbilt <ejb@ql.org>
+
+ * Bug fix: allow /DR to be direct in /AcroForm
+
2021-03-04 Jay Berkenbilt <ejb@ql.org>
* 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
@@ -5061,6 +5061,26 @@ print "\n";
</varlistentry>
-->
<varlistentry>
+ <term>10.3.1: Month dd, YYYY</term>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Bug Fixes
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Form field copying failed on files where /DR was a direct
+ object in the document-level form dictionary.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term>10.3.0: March 4, 2021</term>
<listitem>
<itemizedlist>
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 [<a2f146daeb6d814a742556489dab9882><05209b885a642b4bccb162f0c1aff77a>]
+>>
+startxref
+8811
+%%EOF