Added support for deleting XMP metadata from EPS files (exiv2 -dx), adjusted test suite

v0.27.3
vog 14 years ago
parent aa60fc8d96
commit dbde8b815a

@ -626,8 +626,9 @@ namespace {
throw Error(write ? 21 : 14);
}
const bool deleteXmp = (write && xmpPacket.size() == 0);
bool fixBeginXmlPacket = false;
bool flexibleEmbedding = false;
bool useFlexibleEmbedding = false;
size_t xmpPos = posEndEps;
size_t xmpSize = 0;
if (containsXmp) {
@ -644,38 +645,35 @@ namespace {
#ifndef SUPPRESS_WARNINGS
EXV_WARNING << "Unexpected " << line.size() << " bytes of data after XMP at position: " << (xmpPos + xmpSize) << "\n";
#endif
flexibleEmbedding = false;
} else {
} else if (!deleteXmp) {
readLine(line, data, posLineAfterXmp, posEndEps);
flexibleEmbedding = (line == "% &&end XMP packet marker&&" || line == "% &&end XMP packet marker&&");
if (line == "% &&end XMP packet marker&&" || line == "% &&end XMP packet marker&&") {
useFlexibleEmbedding = true;
}
}
if (flexibleEmbedding) {
}
if (useFlexibleEmbedding) {
#ifdef DEBUG
EXV_DEBUG << "readWriteEpsMetadata: Using flexible XMP embedding\n";
#endif
const size_t posBeginXmlPacket = readPrevLine(line, data, xmpPos, posEndEps);
if (startsWith(line, "%begin_xml_packet:")) {
#ifdef DEBUG
EXV_DEBUG << "readWriteEpsMetadata: XMP embedding is flexible\n";
EXV_DEBUG << "readWriteEpsMetadata: XMP embedding contains %begin_xml_packet\n";
#endif
const size_t posBeginXmlPacket = readPrevLine(line, data, xmpPos, posEndEps);
if (startsWith(line, "%begin_xml_packet:")) {
#ifdef DEBUG
EXV_DEBUG << "readWriteEpsMetadata: XMP embedding contains %begin_xml_packet\n";
#endif
if (write) {
fixBeginXmlPacket = true;
xmpSize += (xmpPos - posBeginXmlPacket);
xmpPos = posBeginXmlPacket;
}
} else if (photoshop) {
#ifndef SUPPRESS_WARNINGS
EXV_WARNING << "Missing %begin_xml_packet in Photoshop EPS at position: " << xmpPos << "\n";
#endif
if (write) throw Error(21);
if (write) {
fixBeginXmlPacket = true;
xmpSize += (xmpPos - posBeginXmlPacket);
xmpPos = posBeginXmlPacket;
}
} else {
#ifdef DEBUG
EXV_DEBUG << "readWriteEpsMetadata: XMP embedding is inflexible\n";
} else if (photoshop) {
#ifndef SUPPRESS_WARNINGS
EXV_WARNING << "Missing %begin_xml_packet in Photoshop EPS at position: " << xmpPos << "\n";
#endif
if (write) throw Error(21);
}
}
if (!flexibleEmbedding) {
if (!useFlexibleEmbedding) {
// check if there are irremovable XMP metadata blocks before EndPageSetup
size_t posOtherXmp = containsXmp ? xmpPos : posEps;
size_t sizeOtherXmp = 0;
@ -724,15 +722,6 @@ namespace {
nativePreviews.push_back(nativePreview);
}
} else {
// TODO: Add support for deleting XMP metadata. Note that this is not
// as simple as it may seem, and requires special attention!
if (xmpPacket.size() == 0) {
#ifndef SUPPRESS_WARNINGS
EXV_WARNING << "Deleting XMP metadata is currently not supported.\n";
#endif
throw Error(21);
}
// create temporary output file
BasicIo::AutoPtr tempIo(io.temporary());
assert (tempIo.get() != 0);
@ -759,7 +748,7 @@ namespace {
positions.push_back(posPageTrailer);
positions.push_back(posEof);
positions.push_back(posEndEps);
if (flexibleEmbedding) {
if (useFlexibleEmbedding) {
positions.push_back(xmpPos);
}
for (std::vector<std::pair<size_t, size_t> >::const_iterator e = removableEmbeddings.begin(); e != removableEmbeddings.end(); e++) {
@ -772,6 +761,7 @@ namespace {
// DOS EPS header will be written afterwards
writeTemp(*tempIo, std::string(30, '\x00'));
}
const std::string containsXmpLine = deleteXmp ? "%ADO_ContainsXMP: NoMain" : "%ADO_ContainsXMP: MainFirst";
const uint32_t posEpsNew = posTemp(*tempIo);
size_t prevPos = posEps;
size_t prevSkipPos = prevPos;
@ -796,15 +786,15 @@ namespace {
#endif
}
// update and complement DSC comments
if (pos == posLanguageLevel && posLanguageLevel != posEndEps && !flexibleEmbedding) {
if (pos == posLanguageLevel && posLanguageLevel != posEndEps && !useFlexibleEmbedding) {
if (line == "%%LanguageLevel:1" || line == "%%LanguageLevel: 1") {
writeTemp(*tempIo, "%%LanguageLevel: 2" + lineEnding);
skipPos = posLineEnd;
}
}
if (pos == posContainsXmp && posContainsXmp != posEndEps) {
if (line != "%ADO_ContainsXMP: MainFirst") {
writeTemp(*tempIo, "%ADO_ContainsXMP: MainFirst" + lineEnding);
if (line != containsXmpLine) {
writeTemp(*tempIo, containsXmpLine + lineEnding);
skipPos = posLineEnd;
}
}
@ -817,11 +807,11 @@ namespace {
skipPos = posLineEnd;
}
if (pos == posEndComments) {
if (posLanguageLevel == posEndEps && !flexibleEmbedding) {
if (posLanguageLevel == posEndEps && !useFlexibleEmbedding) {
writeTemp(*tempIo, "%%LanguageLevel: 2" + lineEnding);
}
if (posContainsXmp == posEndEps) {
writeTemp(*tempIo, "%ADO_ContainsXMP: MainFirst" + lineEnding);
writeTemp(*tempIo, containsXmpLine + lineEnding);
}
if (posPages == posEndEps) {
writeTemp(*tempIo, "%%Pages: 1" + lineEnding);
@ -843,7 +833,7 @@ namespace {
writeTemp(*tempIo, "%%EndPageComments" + lineEnding);
}
}
if (flexibleEmbedding) {
if (useFlexibleEmbedding) {
// insert XMP metadata into existing flexible embedding
if (pos == xmpPos) {
if (fixBeginXmlPacket) {
@ -860,8 +850,8 @@ namespace {
break;
}
}
// insert XMP metadata with new flexible embedding
if (pos == posEndPageSetup) {
// insert XMP metadata with new flexible embedding, if necessary
if (pos == posEndPageSetup && !deleteXmp) {
if (line != "%%EndPageSetup") {
writeTemp(*tempIo, "%%BeginPageSetup" + lineEnding);
}
@ -902,7 +892,7 @@ namespace {
writeTemp(*tempIo, "%%EndPageSetup" + lineEnding);
}
}
if (pos == posPageTrailer) {
if (pos == posPageTrailer && !deleteXmp) {
if (!implicitPageTrailer) {
skipPos = posLineEnd;
}

@ -0,0 +1,11 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 0 0
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%EOF

@ -0,0 +1,11 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 0 0
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%EOF

@ -0,0 +1,11 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 0 0
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%EOF

@ -0,0 +1,14 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 0 0
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%BeginPageSetup
%%EndPageSetup
%%PageTrailer
%%EOF

@ -0,0 +1,11 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 0 0
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%EOF

@ -0,0 +1,40 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: inkscape 0.46
%%Pages: 1
%%Orientation: Portrait
%%BoundingBox: 0 0 100 100
%%HiResBoundingBox: 0 0 100 100
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
0 100 translate
0.8 -0.8 scale
0 0 0 setrgbcolor
[] 0 setdash
1 setlinewidth
0 setlinejoin
0 setlinecap
gsave [1 0 0 1 0 0] concat
gsave [1.25 0 0 -1.25 0 125] concat
gsave [0.1 0 0 0.1 0 0] concat
0 0 0 setrgbcolor
[] 0 setdash
100 setlinewidth
0 setlinejoin
0 setlinecap
newpath
50 50 moveto
950 50 lineto
950 950 lineto
50 950 lineto
50 50 lineto
closepath
stroke
grestore
grestore
grestore
showpage
%%EOF

@ -0,0 +1,15 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%EOF

@ -0,0 +1,15 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%EOF

@ -0,0 +1,16 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%Trailer
%%EOF

@ -0,0 +1,15 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%EOF

@ -0,0 +1,15 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: NoMain
%%LanguageLevel: 2
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%EOF

@ -0,0 +1,45 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: NoMain
%%LanguageLevel: 2
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%EOF

@ -0,0 +1,45 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%EOF

@ -0,0 +1,43 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: NoMain
%%LanguageLevel: 2
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%EOF

@ -0,0 +1,43 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%EOF

@ -0,0 +1,45 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%ADO_ContainsXMP: NoMain
%%LanguageLevel: 2
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%EOF

@ -0,0 +1,45 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
% begin of XMP embedding with non-standard comment
/currentdistillerparams where
{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
{userdict /Exiv2_pdfmark /cleartomark load put
userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
{userdict /Exiv2_pdfmark /pdfmark load put
userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
[/NamespacePush Exiv2_pdfmark
[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
[{Exiv2_metadata_stream} 2 dict begin
/Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
[{Exiv2_metadata_stream}
currentfile 0 (% non-standard end marker)
/SubFileDecode filter Exiv2_metafile_pdfmark
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="TEST">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:test="http://www.example.com/" test:test="TEST-irremovable-xmp"/>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
% non-standard end marker
[/Document 1 dict begin
/Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
% end of XMP embedding with non-standard comment
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
% begin of XMP embedding trailer with non-standard comment
[/EMC Exiv2_pdfmark
[/NamespacePop Exiv2_pdfmark
% end of XMP embedding trailer with non-standard comment
%%EOF

@ -0,0 +1,18 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%PageTrailer
%%EOF

@ -0,0 +1,18 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%PageTrailer
%%EOF

@ -0,0 +1,18 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%PageTrailer
%%EOF

@ -0,0 +1,18 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%PageTrailer
%%EOF

@ -0,0 +1,18 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%PageTrailer
%%EOF

@ -0,0 +1,18 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%Page: 1 1
%%EndPageComments
%%BeginPageSetup
%%EndPageSetup
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke
%%PageTrailer
%%EOF

@ -0,0 +1,80 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 539 785
%%Pages: 0
%%Creator: Sun Microsystems, Inc.
%%Title: none
%%CreationDate: none
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%BeginProlog
%%BeginResource: procset SDRes-Prolog 1.0 0
/b4_inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath
/languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if
/bdef {bind def} bind def
/c {setgray} bdef
/l {neg lineto} bdef
/rl {neg rlineto} bdef
/lc {setlinecap} bdef
/lj {setlinejoin} bdef
/lw {setlinewidth} bdef
/ml {setmiterlimit} bdef
/ld {setdash} bdef
/m {neg moveto} bdef
/ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef
/r {rotate} bdef
/t {neg translate} bdef
/s {scale} bdef
/sw {show} bdef
/gs {gsave} bdef
/gr {grestore} bdef
/f {findfont dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def
currentdict end /NFont exch definefont pop /NFont findfont} bdef
/p {closepath} bdef
/sf {scalefont setfont} bdef
/ef {eofill}bdef
/pc {closepath stroke}bdef
/ps {stroke}bdef
/pum {matrix currentmatrix}bdef
/pom {setmatrix}bdef
/bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef
%%EndResource
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
pum
0.02836 0.02833 s
0 -27700 t
/tm matrix currentmatrix def
gs
tm setmatrix
-1000 -1000 t
1 1 s
1000 1000 m 19999 1000 l 19999 28699 l 1000 28699 l 1000 1000 l eoclip newpath
gs
0 0 m 18999 0 l 18999 27699 l 0 27699 l 0 0 l eoclip newpath
gs
tm setmatrix
7902.22222 12206.11111 t
35.27777 35.27777 s
gs
0 0 m 18999 0 l 18999 27699 l 0 27699 l 0 0 l eoclip newpath
gr
gr
0 27700 t
pom
count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore
%%PageTrailer
%%Trailer
%%EOF

@ -0,0 +1,81 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 539 785
%%Pages: 0
%%Creator: Sun Microsystems, Inc.
%%Title: none
%%CreationDate: none
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%BeginProlog
%%BeginResource: procset SDRes-Prolog 1.0 0
/b4_inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath
/languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if
/bdef {bind def} bind def
/c {setgray} bdef
/l {neg lineto} bdef
/rl {neg rlineto} bdef
/lc {setlinecap} bdef
/lj {setlinejoin} bdef
/lw {setlinewidth} bdef
/ml {setmiterlimit} bdef
/ld {setdash} bdef
/m {neg moveto} bdef
/ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef
/r {rotate} bdef
/t {neg translate} bdef
/s {scale} bdef
/sw {show} bdef
/gs {gsave} bdef
/gr {grestore} bdef
/f {findfont dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def
currentdict end /NFont exch definefont pop /NFont findfont} bdef
/p {closepath} bdef
/sf {scalefont setfont} bdef
/ef {eofill}bdef
/pc {closepath stroke}bdef
/ps {stroke}bdef
/pum {matrix currentmatrix}bdef
/pom {setmatrix}bdef
/bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef
%%EndResource
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
pum
0.02836 0.02833 s
0 -27700 t
/tm matrix currentmatrix def
gs
tm setmatrix
-1000 -1000 t
1 1 s
1000 1000 m 19999 1000 l 19999 28699 l 1000 28699 l 1000 1000 l eoclip newpath
gs
0 0 m 18999 0 l 18999 27699 l 0 27699 l 0 0 l eoclip newpath
1000 1000 m 20000 1000 l 20000 28700 l 1000 28700 l 1000 1000 l eoclip newpath
0.500 c 10250 18500 m 6500 18500 l 6500 12500 l 14000 12500 l 14000 18500 l
10250 18500 l p ef
0 lw 1 lj 0.000 c 10250 18500 m 6500 18500 l 6500 12500 l 14000 12500 l
14000 18500 l 10250 18500 l pc
gr
gs
0 0 m 18999 0 l 18999 27699 l 0 27699 l 0 0 l eoclip newpath
gr
gr
0 27700 t
pom
count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore
%%PageTrailer
%%Trailer
%%EOF

@ -0,0 +1,85 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 155 288 369 459
%%HiResBoundingBox: 155.930078 288.916016 368.730078 458.996094
%.................................
%%Creator: GPL Ghostscript 862 (epswrite)
%%CreationDate: 2011/03/25 15:44:41
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%ADO_ContainsXMP: NoMain
%%Pages: 1
%Exiv2Version: _Exiv2Version_
%Exiv2Website: http://www.exiv2.org/
%%EndComments
%%BeginProlog
% This copyright applies to everything between here and the %%EndProlog:
% Copyright (C) 2008 Artifex Software, Inc. All rights reserved.
%%BeginResource: procset GS_epswrite_2_0_1001 1.001 0
/GS_epswrite_2_0_1001 80 dict dup begin
/PageSize 2 array def/setpagesize{ PageSize aload pop 3 index eq exch
4 index eq and{ pop pop pop}{ PageSize dup 1
5 -1 roll put 0 4 -1 roll put dup null eq {false} {dup where} ifelse{ exch get exec}
{ pop/setpagedevice where
{ pop 1 dict dup /PageSize PageSize put setpagedevice}
{ /setpage where{ pop PageSize aload pop pageparams 3 {exch pop} repeat
setpage}if}ifelse}ifelse}ifelse} bind def
/!{bind def}bind def/#{load def}!/N/counttomark #
/rG{3{3 -1 roll 255 div}repeat setrgbcolor}!/G{255 div setgray}!/K{0 G}!
/r6{dup 3 -1 roll rG}!/r5{dup 3 1 roll rG}!/r3{dup rG}!
/w/setlinewidth #/J/setlinecap #
/j/setlinejoin #/M/setmiterlimit #/d/setdash #/i/setflat #
/m/moveto #/l/lineto #/c/rcurveto #
/p{N 2 idiv{N -2 roll rlineto}repeat}!
/P{N 0 gt{N -2 roll moveto p}if}!
/h{p closepath}!/H{P closepath}!
/lx{0 rlineto}!/ly{0 exch rlineto}!/v{0 0 6 2 roll c}!/y{2 copy c}!
/re{4 -2 roll m exch dup lx exch ly neg lx h}!
/^{3 index neg 3 index neg}!
/f{P fill}!/f*{P eofill}!/s{H stroke}!/S{P stroke}!
/q/gsave #/Q/grestore #/rf{re fill}!
/Y{P clip newpath}!/Y*{P eoclip newpath}!/rY{re Y}!
/|={pop exch 4 1 roll 1 array astore cvx 3 array astore cvx exch 1 index def exec}!
/|{exch string readstring |=}!
/+{dup type/nametype eq{2 index 7 add -3 bitshift 2 index mul}if}!
/@/currentfile #/${+ @ |}!
/B{{2 copy string{readstring pop}aload pop 4 array astore cvx
3 1 roll}repeat pop pop true}!
/Ix{[1 0 0 1 11 -2 roll exch neg exch neg]exch}!
/,{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}!
/Ic{exch Ix false 3 colorimage}!
/F{/Columns counttomark 3 add -2 roll/Rows exch/K -1/BlackIs1 true>>
/CCITTFaxDecode filter}!/FX{<</EndOfBlock false F}!
/X{/ASCII85Decode filter}!/@X{@ X}!/&2{2 index 2 index}!
/@F{@ &2<<F}!/@C{@X &2 FX}!
/$X{+ @X |}!/&4{4 index 4 index}!/$F{+ @ &4<<F |}!/$C{+ @X &4 FX |}!
/IC{3 1 roll 10 dict begin 1{/ImageType/Interpolate/Decode/DataSource
/ImageMatrix/BitsPerComponent/Height/Width}{exch def}forall
currentdict end image}!
/~{@ read {pop} if}!
end def
%%EndResource
/pagesave null def
%%EndProlog
%%Page: 1 1
%%BeginPageSetup
GS_epswrite_2_0_1001 begin
/pagesave save store 197 dict begin
0.1 0.1 scale
%%EndPageSetup
gsave mark
Q q
0 283 5105 0 0 7565 ^ Y
127 G
2623.3 2889.66 -1063.5 0 0 1699.8 2127 0 ^ -1063.5 0 f*
1 j
K
q 1.00053 0.999471 scale
2621.91 2891.19 -1062.94 0 0 1700.7 2125.88 0 ^ -1062.94 0 H
S
Q
cleartomark end end pagesave restore
showpage
%%PageTrailer
%%Trailer
%%Pages: 1
%%EOF

File diff suppressed because one or more lines are too long

@ -0,0 +1,778 @@
%!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(TM) 3.2 %%AI8_CreatorVersion: 15.0.0 %%For: (Michael Ulbrich) () %%Title: (zs_oodraw_ai-3-lev2.eps) %%CreationDate: 3/25/11 4:13 PM %%Canvassize: 16383 %%BoundingBox: 199 311 412 481 %%DocumentProcessColors: Black %%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0 %%+ procset Adobe_cshow 1.1 0 %%+ procset Adobe_customcolor 1.0 0 %%+ procset Adobe_IllustratorA_AI3 1.0 1 %AI3_ColorUsage: Color %AI3_IncludePlacedImages %AI3_TemplateBox: 306 396 306 396 %AI3_TileBox: 26.5 16 585.5 799 %AI3_DocumentPreview: Header %%PageOrigin:0 0 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%LanguageLevel: 2 %ADO_ContainsXMP: NoMain %%Pages: 1 %Exiv2Version: _Exiv2Version_ %Exiv2Website: http://www.exiv2.org/ %%EndComments %%BeginProlog %%BeginResource: procset Adobe_packedarray 2.0 0
%%Title: (Packed Array Operators)
%%Version: 2.0 0
%%CreationDate: (8/2/90) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /Adobe_packedarray 5 dict dup begin put
/initialize
{
/packedarray where
{
pop
}
{
Adobe_packedarray begin
Adobe_packedarray
{
dup xcheck
{
bind
} if
userdict 3 1 roll put
} forall
end
} ifelse
} def
/terminate
{
} def
/packedarray
{
array astore readonly
} def
/setpacking
{
pop
} def
/currentpacking
{
false
} def
currentdict readonly pop end
%%EndResource
Adobe_packedarray /initialize get exec
%%BeginResource: procset Adobe_cshow 1.1 0
%%Title: (cshow Operator)
%%Version: 1.1 0
%%CreationDate: (1/23/89) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_cshow 3 dict dup begin put
/initialize
{
/cshow where
{
pop
}
{
userdict /Adobe_cshow_vars 1 dict dup begin put
/_cshow
{} def
Adobe_cshow begin
Adobe_cshow
{
dup xcheck
{
bind
} if
userdict 3 1 roll put
} forall
end
end
} ifelse
} def
/terminate
{
} def
/cshow
{
exch
Adobe_cshow_vars
exch /_cshow
exch put
{
0 0 Adobe_cshow_vars /_cshow get exec
} forall
} def
currentdict readonly pop end
setpacking
%%EndResource
%%BeginResource: procset Adobe_customcolor 1.0 0
%%Title: (Custom Color Operators)
%%Version: 1.0 0
%%CreationDate: (5/9/88) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_customcolor 5 dict dup begin put
/initialize
{
/setcustomcolor where
{
pop
}
{
Adobe_customcolor begin
Adobe_customcolor
{
dup xcheck
{
bind
} if
pop pop
} forall
end
Adobe_customcolor begin
} ifelse
} def
/terminate
{
currentdict Adobe_customcolor eq
{
end
} if
} def
/findcmykcustomcolor
{
5 packedarray
} def
/setcustomcolor
{
exch
aload pop pop
4
{
4 index mul 4 1 roll
} repeat
5 -1 roll pop
setcmykcolor
} def
/setoverprint
{
pop
} def
currentdict readonly pop end
setpacking
%%EndResource
%%BeginResource: procset Adobe_IllustratorA_AI3 1.1 3
%%Title: (Adobe Illustrator (R) Version 3.0 Abbreviated Prolog)
%%Version: 1.1 3
%%CreationDate: (3/7/1994) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_IllustratorA_AI3 61 dict dup begin put
/initialize
{
userdict /Adobe_IllustratorA_AI3_vars 58 dict dup begin put
/_lp /none def
/_pf {} def
/_ps {} def
/_psf {} def
/_pss {} def
/_pjsf {} def
/_pjss {} def
/_pola 0 def
/_doClip 0 def
/cf currentflat def
/_tm matrix def
/_renderStart [/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0] def
/_renderEnd [null null null null /i1 /i1 /i1 /i1] def
/_render -1 def
/_rise 0 def
/_ax 0 def
/_ay 0 def
/_cx 0 def
/_cy 0 def
/_leading [0 0] def
/_ctm matrix def
/_mtx matrix def
/_sp 16#020 def
/_hyphen (-) def
/_fScl 0 def
/_cnt 0 def
/_hs 1 def
/_nativeEncoding 0 def
/_useNativeEncoding 0 def
/_tempEncode 0 def
/_pntr 0 def
/_tDict 2 dict def
/_wv 0 def
/Tx {} def
/Tj {} def
/CRender {} def
/_AI3_savepage {} def
/_gf null def
/_cf 4 array def
/_if null def
/_of false def
/_fc {} def
/_gs null def
/_cs 4 array def
/_is null def
/_os false def
/_sc {} def
/_i null def
Adobe_IllustratorA_AI3 begin
Adobe_IllustratorA_AI3
{
dup xcheck
{
bind
} if
pop pop
} forall
end
end
Adobe_IllustratorA_AI3 begin
Adobe_IllustratorA_AI3_vars begin
newpath
} def
/terminate
{
end
end
} def
/_
null def
/ddef
{
Adobe_IllustratorA_AI3_vars 3 1 roll put
} def
/xput
{
dup load dup length exch maxlength eq
{
dup dup load dup
length 2 mul dict copy def
} if
load begin def end
} def
/npop
{
{
pop
} repeat
} def
/sw
{
dup length exch stringwidth
exch 5 -1 roll 3 index mul add
4 1 roll 3 1 roll mul add
} def
/swj
{
dup 4 1 roll
dup length exch stringwidth
exch 5 -1 roll 3 index mul add
4 1 roll 3 1 roll mul add
6 2 roll /_cnt 0 ddef
{1 index eq {/_cnt _cnt 1 add ddef} if} forall pop
exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
} def
/ss
{
4 1 roll
{
2 npop
(0) exch 2 copy 0 exch put pop
gsave
false charpath currentpoint
4 index setmatrix
stroke
grestore
moveto
2 copy rmoveto
} exch cshow
3 npop
} def
/jss
{
4 1 roll
{
2 npop
(0) exch 2 copy 0 exch put
gsave
_sp eq
{
exch 6 index 6 index 6 index 5 -1 roll widthshow
currentpoint
}
{
false charpath currentpoint
4 index setmatrix stroke
}ifelse
grestore
moveto
2 copy rmoveto
} exch cshow
6 npop
} def
/sp
{
{
2 npop (0) exch
2 copy 0 exch put pop
false charpath
2 copy rmoveto
} exch cshow
2 npop
} def
/jsp
{
{
2 npop
(0) exch 2 copy 0 exch put
_sp eq
{
exch 5 index 5 index 5 index 5 -1 roll widthshow
}
{
false charpath
}ifelse
2 copy rmoveto
} exch cshow
5 npop
} def
/pl
{
transform
0.25 sub round 0.25 add exch
0.25 sub round 0.25 add exch
itransform
} def
/setstrokeadjust where
{
pop true setstrokeadjust
/c
{
curveto
} def
/C
/c load def
/v
{
currentpoint 6 2 roll curveto
} def
/V
/v load def
/y
{
2 copy curveto
} def
/Y
/y load def
/l
{
lineto
} def
/L
/l load def
/m
{
moveto
} def
}
{
/c
{
pl curveto
} def
/C
/c load def
/v
{
currentpoint 6 2 roll pl curveto
} def
/V
/v load def
/y
{
pl 2 copy curveto
} def
/Y
/y load def
/l
{
pl lineto
} def
/L
/l load def
/m
{
pl moveto
} def
}ifelse
/d
{
setdash
} def
/cf {} def
/i
{
dup 0 eq
{
pop cf
} if
setflat
} def
/j
{
setlinejoin
} def
/J
{
setlinecap
} def
/M
{
setmiterlimit
} def
/w
{
setlinewidth
} def
/H
{} def
/h
{
closepath
} def
/N
{
_pola 0 eq
{
_doClip 1 eq {clip /_doClip 0 ddef} if
newpath
}
{
/CRender {N} ddef
}ifelse
} def
/n
{N} def
/F
{
_pola 0 eq
{
_doClip 1 eq
{
gsave _pf grestore clip newpath /_lp /none ddef _fc
/_doClip 0 ddef
}
{
_pf
}ifelse
}
{
/CRender {F} ddef
}ifelse
} def
/f
{
closepath
F
} def
/S
{
_pola 0 eq
{
_doClip 1 eq
{
gsave _ps grestore clip newpath /_lp /none ddef _sc
/_doClip 0 ddef
}
{
_ps
}ifelse
}
{
/CRender {S} ddef
}ifelse
} def
/s
{
closepath
S
} def
/B
{
_pola 0 eq
{
_doClip 1 eq
gsave F grestore
{
gsave S grestore clip newpath /_lp /none ddef _sc
/_doClip 0 ddef
}
{
S
}ifelse
}
{
/CRender {B} ddef
}ifelse
} def
/b
{
closepath
B
} def
/W
{
/_doClip 1 ddef
} def
/*
{
count 0 ne
{
dup type (stringtype) eq {pop} if
} if
_pola 0 eq {newpath} if
} def
/u
{} def
/U
{} def
/q
{
_pola 0 eq {gsave} if
} def
/Q
{
_pola 0 eq {grestore} if
} def
/*u
{
_pola 1 add /_pola exch ddef
} def
/*U
{
_pola 1 sub /_pola exch ddef
_pola 0 eq {CRender} if
} def
/D
{pop} def
/*w
{} def
/*W
{} def
/`
{
/_i save ddef
6 1 roll 4 npop
concat pop
userdict begin
/showpage {} def
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[] 0 setdash
/setstrokeadjust where {pop false setstrokeadjust} if
newpath
0 setgray
false setoverprint
} def
/~
{
end
_i restore
} def
/O
{
0 ne
/_of exch ddef
/_lp /none ddef
} def
/R
{
0 ne
/_os exch ddef
/_lp /none ddef
} def
/g
{
/_gf exch ddef
/_fc
{
_lp /fill ne
{
_of setoverprint
_gf setgray
/_lp /fill ddef
} if
} ddef
/_pf
{
_fc
fill
} ddef
/_psf
{
_fc
ashow
} ddef
/_pjsf
{
_fc
awidthshow
} ddef
/_lp /none ddef
} def
/G
{
/_gs exch ddef
/_sc
{
_lp /stroke ne
{
_os setoverprint
_gs setgray
/_lp /stroke ddef
} if
} ddef
/_ps
{
_sc
stroke
} ddef
/_pss
{
_sc
ss
} ddef
/_pjss
{
_sc
jss
} ddef
/_lp /none ddef
} def
/k
{
_cf astore pop
/_fc
{
_lp /fill ne
{
_of setoverprint
_cf aload pop setcmykcolor
/_lp /fill ddef
} if
} ddef
/_pf
{
_fc
fill
} ddef
/_psf
{
_fc
ashow
} ddef
/_pjsf
{
_fc
awidthshow
} ddef
/_lp /none ddef
} def
/K
{
_cs astore pop
/_sc
{
_lp /stroke ne
{
_os setoverprint
_cs aload pop setcmykcolor
/_lp /stroke ddef
} if
} ddef
/_ps
{
_sc
stroke
} ddef
/_pss
{
_sc
ss
} ddef
/_pjss
{
_sc
jss
} ddef
/_lp /none ddef
} def
/x
{
/_gf exch ddef
findcmykcustomcolor
/_if exch ddef
/_fc
{
_lp /fill ne
{
_of setoverprint
_if _gf 1 exch sub setcustomcolor
/_lp /fill ddef
} if
} ddef
/_pf
{
_fc
fill
} ddef
/_psf
{
_fc
ashow
} ddef
/_pjsf
{
_fc
awidthshow
} ddef
/_lp /none ddef
} def
/X
{
/_gs exch ddef
findcmykcustomcolor
/_is exch ddef
/_sc
{
_lp /stroke ne
{
_os setoverprint
_is _gs 1 exch sub setcustomcolor
/_lp /stroke ddef
} if
} ddef
/_ps
{
_sc
stroke
} ddef
/_pss
{
_sc
ss
} ddef
/_pjss
{
_sc
jss
} ddef
/_lp /none ddef
} def
/A
{
pop
} def
currentdict readonly pop end
setpacking
/annotatepage
{
} def
%%EndResource
%%EndProlog %%BeginSetup Adobe_cshow /initialize get exec
Adobe_customcolor /initialize get exec
Adobe_IllustratorA_AI3 /initialize get exec
%%EndSetup %%Page: 1 1 %%EndPageComments 0 A u 0 O 0.5 g 0 J 0 j 1 w 10 M []0 d 305.3501 311.0195 m 199 311.0195 l 199 481 l 411.6992 481 l 411.6992 311.0195 l 305.3501 311.0195 l 305.3501 311.0195 l f 0 R 0 G 1 j 0 w 305.3501 311.0195 m 199 311.0195 l 199 481 l 411.6992 481 l 411.6992 311.0195 l 305.3501 311.0195 l 305.3501 311.0195 l s U %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_IllustratorA_AI3 /terminate get exec
Adobe_customcolor /terminate get exec
Adobe_cshow /terminate get exec
Adobe_packedarray /terminate get exec
%%EOF

@ -0,0 +1,778 @@
%!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(TM) 3.2 %%AI8_CreatorVersion: 15.0.0 %%For: (Michael Ulbrich) () %%Title: (zs_oodraw_ai-3-lev3.eps) %%CreationDate: 3/25/11 4:13 PM %%Canvassize: 16383 %%BoundingBox: 199 311 412 481 %%DocumentProcessColors: Black %%DocumentSuppliedResources: procset Adobe_packedarray 2.0 0 %%+ procset Adobe_cshow 1.1 0 %%+ procset Adobe_customcolor 1.0 0 %%+ procset Adobe_IllustratorA_AI3 1.0 1 %AI3_ColorUsage: Color %AI3_IncludePlacedImages %AI3_TemplateBox: 306 396 306 396 %AI3_TileBox: 26.5 16 585.5 799 %AI3_DocumentPreview: Header %%PageOrigin:0 0 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%LanguageLevel: 2 %ADO_ContainsXMP: NoMain %%Pages: 1 %Exiv2Version: _Exiv2Version_ %Exiv2Website: http://www.exiv2.org/ %%EndComments %%BeginProlog %%BeginResource: procset Adobe_packedarray 2.0 0
%%Title: (Packed Array Operators)
%%Version: 2.0 0
%%CreationDate: (8/2/90) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /Adobe_packedarray 5 dict dup begin put
/initialize
{
/packedarray where
{
pop
}
{
Adobe_packedarray begin
Adobe_packedarray
{
dup xcheck
{
bind
} if
userdict 3 1 roll put
} forall
end
} ifelse
} def
/terminate
{
} def
/packedarray
{
array astore readonly
} def
/setpacking
{
pop
} def
/currentpacking
{
false
} def
currentdict readonly pop end
%%EndResource
Adobe_packedarray /initialize get exec
%%BeginResource: procset Adobe_cshow 1.1 0
%%Title: (cshow Operator)
%%Version: 1.1 0
%%CreationDate: (1/23/89) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_cshow 3 dict dup begin put
/initialize
{
/cshow where
{
pop
}
{
userdict /Adobe_cshow_vars 1 dict dup begin put
/_cshow
{} def
Adobe_cshow begin
Adobe_cshow
{
dup xcheck
{
bind
} if
userdict 3 1 roll put
} forall
end
end
} ifelse
} def
/terminate
{
} def
/cshow
{
exch
Adobe_cshow_vars
exch /_cshow
exch put
{
0 0 Adobe_cshow_vars /_cshow get exec
} forall
} def
currentdict readonly pop end
setpacking
%%EndResource
%%BeginResource: procset Adobe_customcolor 1.0 0
%%Title: (Custom Color Operators)
%%Version: 1.0 0
%%CreationDate: (5/9/88) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_customcolor 5 dict dup begin put
/initialize
{
/setcustomcolor where
{
pop
}
{
Adobe_customcolor begin
Adobe_customcolor
{
dup xcheck
{
bind
} if
pop pop
} forall
end
Adobe_customcolor begin
} ifelse
} def
/terminate
{
currentdict Adobe_customcolor eq
{
end
} if
} def
/findcmykcustomcolor
{
5 packedarray
} def
/setcustomcolor
{
exch
aload pop pop
4
{
4 index mul 4 1 roll
} repeat
5 -1 roll pop
setcmykcolor
} def
/setoverprint
{
pop
} def
currentdict readonly pop end
setpacking
%%EndResource
%%BeginResource: procset Adobe_IllustratorA_AI3 1.1 3
%%Title: (Adobe Illustrator (R) Version 3.0 Abbreviated Prolog)
%%Version: 1.1 3
%%CreationDate: (3/7/1994) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_IllustratorA_AI3 61 dict dup begin put
/initialize
{
userdict /Adobe_IllustratorA_AI3_vars 58 dict dup begin put
/_lp /none def
/_pf {} def
/_ps {} def
/_psf {} def
/_pss {} def
/_pjsf {} def
/_pjss {} def
/_pola 0 def
/_doClip 0 def
/cf currentflat def
/_tm matrix def
/_renderStart [/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0] def
/_renderEnd [null null null null /i1 /i1 /i1 /i1] def
/_render -1 def
/_rise 0 def
/_ax 0 def
/_ay 0 def
/_cx 0 def
/_cy 0 def
/_leading [0 0] def
/_ctm matrix def
/_mtx matrix def
/_sp 16#020 def
/_hyphen (-) def
/_fScl 0 def
/_cnt 0 def
/_hs 1 def
/_nativeEncoding 0 def
/_useNativeEncoding 0 def
/_tempEncode 0 def
/_pntr 0 def
/_tDict 2 dict def
/_wv 0 def
/Tx {} def
/Tj {} def
/CRender {} def
/_AI3_savepage {} def
/_gf null def
/_cf 4 array def
/_if null def
/_of false def
/_fc {} def
/_gs null def
/_cs 4 array def
/_is null def
/_os false def
/_sc {} def
/_i null def
Adobe_IllustratorA_AI3 begin
Adobe_IllustratorA_AI3
{
dup xcheck
{
bind
} if
pop pop
} forall
end
end
Adobe_IllustratorA_AI3 begin
Adobe_IllustratorA_AI3_vars begin
newpath
} def
/terminate
{
end
end
} def
/_
null def
/ddef
{
Adobe_IllustratorA_AI3_vars 3 1 roll put
} def
/xput
{
dup load dup length exch maxlength eq
{
dup dup load dup
length 2 mul dict copy def
} if
load begin def end
} def
/npop
{
{
pop
} repeat
} def
/sw
{
dup length exch stringwidth
exch 5 -1 roll 3 index mul add
4 1 roll 3 1 roll mul add
} def
/swj
{
dup 4 1 roll
dup length exch stringwidth
exch 5 -1 roll 3 index mul add
4 1 roll 3 1 roll mul add
6 2 roll /_cnt 0 ddef
{1 index eq {/_cnt _cnt 1 add ddef} if} forall pop
exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
} def
/ss
{
4 1 roll
{
2 npop
(0) exch 2 copy 0 exch put pop
gsave
false charpath currentpoint
4 index setmatrix
stroke
grestore
moveto
2 copy rmoveto
} exch cshow
3 npop
} def
/jss
{
4 1 roll
{
2 npop
(0) exch 2 copy 0 exch put
gsave
_sp eq
{
exch 6 index 6 index 6 index 5 -1 roll widthshow
currentpoint
}
{
false charpath currentpoint
4 index setmatrix stroke
}ifelse
grestore
moveto
2 copy rmoveto
} exch cshow
6 npop
} def
/sp
{
{
2 npop (0) exch
2 copy 0 exch put pop
false charpath
2 copy rmoveto
} exch cshow
2 npop
} def
/jsp
{
{
2 npop
(0) exch 2 copy 0 exch put
_sp eq
{
exch 5 index 5 index 5 index 5 -1 roll widthshow
}
{
false charpath
}ifelse
2 copy rmoveto
} exch cshow
5 npop
} def
/pl
{
transform
0.25 sub round 0.25 add exch
0.25 sub round 0.25 add exch
itransform
} def
/setstrokeadjust where
{
pop true setstrokeadjust
/c
{
curveto
} def
/C
/c load def
/v
{
currentpoint 6 2 roll curveto
} def
/V
/v load def
/y
{
2 copy curveto
} def
/Y
/y load def
/l
{
lineto
} def
/L
/l load def
/m
{
moveto
} def
}
{
/c
{
pl curveto
} def
/C
/c load def
/v
{
currentpoint 6 2 roll pl curveto
} def
/V
/v load def
/y
{
pl 2 copy curveto
} def
/Y
/y load def
/l
{
pl lineto
} def
/L
/l load def
/m
{
pl moveto
} def
}ifelse
/d
{
setdash
} def
/cf {} def
/i
{
dup 0 eq
{
pop cf
} if
setflat
} def
/j
{
setlinejoin
} def
/J
{
setlinecap
} def
/M
{
setmiterlimit
} def
/w
{
setlinewidth
} def
/H
{} def
/h
{
closepath
} def
/N
{
_pola 0 eq
{
_doClip 1 eq {clip /_doClip 0 ddef} if
newpath
}
{
/CRender {N} ddef
}ifelse
} def
/n
{N} def
/F
{
_pola 0 eq
{
_doClip 1 eq
{
gsave _pf grestore clip newpath /_lp /none ddef _fc
/_doClip 0 ddef
}
{
_pf
}ifelse
}
{
/CRender {F} ddef
}ifelse
} def
/f
{
closepath
F
} def
/S
{
_pola 0 eq
{
_doClip 1 eq
{
gsave _ps grestore clip newpath /_lp /none ddef _sc
/_doClip 0 ddef
}
{
_ps
}ifelse
}
{
/CRender {S} ddef
}ifelse
} def
/s
{
closepath
S
} def
/B
{
_pola 0 eq
{
_doClip 1 eq
gsave F grestore
{
gsave S grestore clip newpath /_lp /none ddef _sc
/_doClip 0 ddef
}
{
S
}ifelse
}
{
/CRender {B} ddef
}ifelse
} def
/b
{
closepath
B
} def
/W
{
/_doClip 1 ddef
} def
/*
{
count 0 ne
{
dup type (stringtype) eq {pop} if
} if
_pola 0 eq {newpath} if
} def
/u
{} def
/U
{} def
/q
{
_pola 0 eq {gsave} if
} def
/Q
{
_pola 0 eq {grestore} if
} def
/*u
{
_pola 1 add /_pola exch ddef
} def
/*U
{
_pola 1 sub /_pola exch ddef
_pola 0 eq {CRender} if
} def
/D
{pop} def
/*w
{} def
/*W
{} def
/`
{
/_i save ddef
6 1 roll 4 npop
concat pop
userdict begin
/showpage {} def
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[] 0 setdash
/setstrokeadjust where {pop false setstrokeadjust} if
newpath
0 setgray
false setoverprint
} def
/~
{
end
_i restore
} def
/O
{
0 ne
/_of exch ddef
/_lp /none ddef
} def
/R
{
0 ne
/_os exch ddef
/_lp /none ddef
} def
/g
{
/_gf exch ddef
/_fc
{
_lp /fill ne
{
_of setoverprint
_gf setgray
/_lp /fill ddef
} if
} ddef
/_pf
{
_fc
fill
} ddef
/_psf
{
_fc
ashow
} ddef
/_pjsf
{
_fc
awidthshow
} ddef
/_lp /none ddef
} def
/G
{
/_gs exch ddef
/_sc
{
_lp /stroke ne
{
_os setoverprint
_gs setgray
/_lp /stroke ddef
} if
} ddef
/_ps
{
_sc
stroke
} ddef
/_pss
{
_sc
ss
} ddef
/_pjss
{
_sc
jss
} ddef
/_lp /none ddef
} def
/k
{
_cf astore pop
/_fc
{
_lp /fill ne
{
_of setoverprint
_cf aload pop setcmykcolor
/_lp /fill ddef
} if
} ddef
/_pf
{
_fc
fill
} ddef
/_psf
{
_fc
ashow
} ddef
/_pjsf
{
_fc
awidthshow
} ddef
/_lp /none ddef
} def
/K
{
_cs astore pop
/_sc
{
_lp /stroke ne
{
_os setoverprint
_cs aload pop setcmykcolor
/_lp /stroke ddef
} if
} ddef
/_ps
{
_sc
stroke
} ddef
/_pss
{
_sc
ss
} ddef
/_pjss
{
_sc
jss
} ddef
/_lp /none ddef
} def
/x
{
/_gf exch ddef
findcmykcustomcolor
/_if exch ddef
/_fc
{
_lp /fill ne
{
_of setoverprint
_if _gf 1 exch sub setcustomcolor
/_lp /fill ddef
} if
} ddef
/_pf
{
_fc
fill
} ddef
/_psf
{
_fc
ashow
} ddef
/_pjsf
{
_fc
awidthshow
} ddef
/_lp /none ddef
} def
/X
{
/_gs exch ddef
findcmykcustomcolor
/_is exch ddef
/_sc
{
_lp /stroke ne
{
_os setoverprint
_is _gs 1 exch sub setcustomcolor
/_lp /stroke ddef
} if
} ddef
/_ps
{
_sc
stroke
} ddef
/_pss
{
_sc
ss
} ddef
/_pjss
{
_sc
jss
} ddef
/_lp /none ddef
} def
/A
{
pop
} def
currentdict readonly pop end
setpacking
/annotatepage
{
} def
%%EndResource
%%EndProlog %%BeginSetup Adobe_cshow /initialize get exec
Adobe_customcolor /initialize get exec
Adobe_IllustratorA_AI3 /initialize get exec
%%EndSetup %%Page: 1 1 %%EndPageComments 0 A u 0 O 0.5 g 0 J 0 j 1 w 10 M []0 d 305.3501 311.0195 m 199 311.0195 l 199 481 l 411.6992 481 l 411.6992 311.0195 l 305.3501 311.0195 l 305.3501 311.0195 l f 0 R 0 G 1 j 0 w 305.3501 311.0195 m 199 311.0195 l 199 481 l 411.6992 481 l 411.6992 311.0195 l 305.3501 311.0195 l 305.3501 311.0195 l s U %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_IllustratorA_AI3 /terminate get exec
Adobe_customcolor /terminate get exec
Adobe_cshow /terminate get exec
Adobe_packedarray /terminate get exec
%%EOF

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1 @@
<EFBFBD>Exiv2<76><32>

File diff suppressed because one or more lines are too long

@ -21,7 +21,7 @@ diffargs="--strip-trailing-cr"
if ! diff -q $diffargs /dev/null /dev/null 2>/dev/null ; then
diffargs=""
fi
for file in ../data/eps/eps-*.eps.newxmp; do
for file in ../data/eps/eps-*.eps.*; do
if ! grep "_Exiv2Version_" "$file" >/dev/null ; then
echo "Error: $file contains hard-coded Exiv2 version"
exit 1
@ -51,6 +51,38 @@ done
continue
fi
echo
echo "Command: exiv2 -dx $image.eps"
$bin/exiv2 -dx "$image.eps"
exitcode="$?"
echo "Exit code: $exitcode"
if [ "$exitcode" -eq 0 ] ; then
# using perl instead of sed, because on some systems sed adds a line ending at EOF
perl -pe "s,_Exiv2Version_,$exiv2version," < "../data/eps/$image.eps.delxmp" > "$image.eps.delxmp"
if ! diff -q "$image.eps.delxmp" "$image.eps" ; then
continue
fi
# Ensure that "exiv2 -ex" won't merge metadata into the
# *.exv file generated by a previous run of the test suite.
rm -f "$image.exv"
echo
echo "Command: exiv2 -f -ex $image.eps"
$bin/exiv2 -f -ex "$image.eps"
echo "Exit code: $?"
if ! diff -q "../data/eps/eps-test-delxmp.exv" "$image.exv" ; then
continue
fi
fi
echo
echo "Restore: $image.eps"
cp "../data/eps/$image.eps" ./
echo
echo "Command: exiv2 -f -eX $image.eps"
$bin/exiv2 -f -eX "$image.eps"

Loading…
Cancel
Save