gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r23304 - in Extractor: . po src/plugins src/plugins/old src


From: gnunet
Subject: [GNUnet-SVN] r23304 - in Extractor: . po src/plugins src/plugins/old src/plugins/testdata
Date: Sat, 18 Aug 2012 16:14:56 +0200

Author: grothoff
Date: 2012-08-18 16:14:56 +0200 (Sat, 18 Aug 2012)
New Revision: 23304

Added:
   Extractor/src/plugins/dvi_extractor.c
   Extractor/src/plugins/ps_extractor.c
   Extractor/src/plugins/test_dvi.c
   Extractor/src/plugins/test_ps.c
   Extractor/src/plugins/testdata/dvi_ora.dvi
   Extractor/src/plugins/testdata/ps_bloomfilter.ps
   Extractor/src/plugins/testdata/ps_wallace.ps
Removed:
   Extractor/src/plugins/old/dvi_extractor.c
   Extractor/src/plugins/old/id3_extractor.c
   Extractor/src/plugins/old/id3v2_extractor.c
   Extractor/src/plugins/old/ps_extractor.c
   Extractor/src/plugins/old/thumbnailqt_extractor.cc
Modified:
   Extractor/AUTHORS
   Extractor/COPYING
   Extractor/ChangeLog
   Extractor/NEWS
   Extractor/README
   Extractor/TODO
   Extractor/po/de.po
   Extractor/po/fr.po
   Extractor/po/ga.po
   Extractor/po/it.po
   Extractor/po/libextractor.pot
   Extractor/po/nl.po
   Extractor/po/ro.po
   Extractor/po/rw.po
   Extractor/po/sv.po
   Extractor/po/uk.po
   Extractor/po/vi.po
   Extractor/src/plugins/
   Extractor/src/plugins/Makefile.am
   Extractor/src/plugins/ogg_extractor.c
   Extractor/src/plugins/thumbnailffmpeg_extractor.c
Log:
more plugins

Modified: Extractor/AUTHORS
===================================================================
--- Extractor/AUTHORS   2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/AUTHORS   2012-08-18 14:14:56 UTC (rev 23304)
@@ -1,76 +1,84 @@
-Core Team:
+Current core team (and security contacts):
 Christian Grothoff <address@hidden>
-Nils Durner <address@hidden>
 LRN <address@hidden>
 
-Formats:
-jpeg          - core team
-ogg           - core team
-png           - core team
-gif           - core team
-flac          - core team
-mime          - core team
-tiff          - core team
-rpm           - core team
-mpeg          - core team
-ole2          - core team
-deb           - core team
-thumbnailgtk  - core team 
-nsf           - Toni Ruottu <address@hidden>
-sid           - Toni Ruottu <address@hidden>
-nsfe          - Toni Ruottu <address@hidden>
-it            - Toni Ruottu <address@hidden>
-xm            - Toni Ruottu <address@hidden>
-s3m           - Toni Ruottu <address@hidden>
-exiv2         - Andreas Huggel <address@hidden>
-
-Currently dead (plugins/old/):
-html          - core team with code from libhtmlparse 0.1.13, 
http://msalem.translator.cx/libhtmlparse.html
-thumbnailqt   - Nils Durner <address@hidden>
-mp3           - core team and James Blackwell <address@hidden>
-flv           - Heikki Lindholm
-applefile     - Heikki Lindholm
-qt            - core team with Heikki Lindholm 
-real          - core team
-pdf           - core team with code form xpdf 0.93, 
http://www.foolabs.com/xpdf/
-ps            - core team
-asf           - core team based on code from xine
-avi           - core team based in part on code from avinfo 1.0.0 alpha 11 and 
bitcollider 0.6.0
-tar           - core team and Ronan MELENNEC <address@hidden>
-man           - core team
-id3v2         - core team with Milan <address@hidden>
-mkv          - Gabriel Peixoto <address@hidden>
-
-
-General contributors:
-Milan <address@hidden>
-James Blackwell <address@hidden>
-Yuri N. Sedunov <address@hidden>
-Filip Pizlo <address@hidden>
+Developers:
+Andreas Huggel <address@hidden>
 Blake Matheny <address@hidden>
 Bruno Haible <address@hidden>
-Nils Durner <address@hidden>
+Christopher Adam Telfer
+Filip Pizlo <address@hidden>
+Gabriel Peixoto <address@hidden>
+George Shuklin, gs]AT[shounen.ru
 Heikki Lindholm <address@hidden>
 Heiko Wundram <address@hidden>
+James Blackwell <address@hidden>
+Mark Nelson [delirium] <address@hidden>
+Milan <address@hidden>
address@hidden
+Nils Durner <address@hidden>
+Pavol Rusnak <address@hidden>
 Ronan MELENNEC <address@hidden>
+Toni Ruottu <address@hidden>
 Vasil Dimov <address@hidden>
-Pavol Rusnak <address@hidden>
 Vidyut Samanta <address@hidden>
-LRN <address@hidden>
-Gabriel Peixoto <address@hidden>
+Yuri N. Sedunov <address@hidden>
 
 Translations:
+Dutch       - Benno Schulenberg <address@hidden>
+French      - Nicolas Provost <address@hidden>
 German      - Karl Eichwalder <address@hidden>
 Irish       - Kevin Patrick Scannell <address@hidden>
+Italian     - Sergio Zanchetta <address@hidden>
 Kinyarwanda - Steve Murphy <address@hidden>
 Romanian    - Laurentiu Buzdugan <address@hidden>
 Swedish     - Daniel Nylander <address@hidden>
+Ukrainian   - Yuri Chornoivan <address@hidden>
 Vietnamese  - Clytie Siddall <address@hidden>
 
-Specific contributions:
-catlib      - Christopher Adam Telfer
-html        - address@hidden
-xpdf        - address@hidden
-xine        - http://xinehq.de/
-avinfo      - (c) George Shuklin, gs]AT[shounen.ru, 2002-2004
-bitcollider - Mark Nelson [delirium] <address@hidden>
+Plugins and primary authors:
+deb            - Christian Grothoff
+dvi            - Christian Grothoff
+exiv2          - Andreas Huggel
+flac           - Christian Grothoff
+gif            - Christian Grothoff
+gstreamer      - LRN
+html           - Christian Grothoff
+it             - Toni Ruottu
+jpeg           - Christian Grothoff
+man            - Christian Grothoff
+mime           - Christian Grothoff
+mpeg           - Christian Grothoff
+nsf            - Toni Ruottu
+nsfe           - Toni Ruottu
+odf            - Christian Grothoff
+ole2           - Christian Grothoff
+ogg            - Christian Grothoff
+png            - Christian Grothoff
+ps             - Christian Grothoff
+riff           - Christian Grothoff
+rpm            - Christian Grothoff
+s3m            - Toni Ruottu
+sid            - Toni Ruottu
+tiff           - Christian Grothoff
+thumbnailffmpeg- Heikki Lindholm
+thumbnailgtk   - Christian Grothoff 
+wav            - Christian Grothoff
+xm             - Toni Ruottu
+zip            - Christian Grothoff
+
+Currently dead (plugins/old/):
+tar            - Christian Grothoff and Ronan MELENNEC [to be ported to 0.7]
+applefile      - Heikki Lindholm [to be ported to 0.7]
+elf            - Christian Grothoff [to be ported to 0.7]
+
+asf            - Christian Grothoff  [to be replaced by gstreamer?]
+avi            - Christian Grothoff  [to be replaced by gstreamer?]
+flv            - Heikki Lindholm   [to be replaced by gstreamer?]
+id3v2          - Milan [to be replaced by gstreamer?]
+mkv           - Gabriel Peixoto  [to be replaced by gstreamer?]
+mp3            - Christian Grothoff and James Blackwell [to be replaced by 
gstreamer?]
+qt             - Heikki Lindholm    [to be replaced by gstreamer?]
+real           - Christian Grothoff  [to be replaced by gstreamer???]
+
+pdf            - Christian Grothoff [GPLv2-only issue]

Modified: Extractor/COPYING
===================================================================
--- Extractor/COPYING   2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/COPYING   2012-08-18 14:14:56 UTC (rev 23304)
@@ -1,301 +1,642 @@
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
 
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-    51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-                           Preamble
+                            Preamble
 
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
 your programs, too.
 
   When we speak of free software, we are referring to freedom, not
 price.  Our General Public Licenses are designed to make sure that you
 have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
 
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
 
   For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
 
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
 
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
 
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
 
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
   The precise terms and conditions for copying, distribution and
 modification follow.
-
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
+                       TERMS AND CONDITIONS
 
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
+  0. Definitions.
 
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
+  "This License" refers to version 3 of the GNU General Public License.
 
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
 
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
 
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
 
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
 
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
 
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
 
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
 
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
+  1. Source Code.
 
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
 
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
 
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
 
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
 
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
 
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
+  The Corresponding Source for a work in source code form is that
+same work.
 
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
 this License.
 
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
 otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
 
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
+  13. Use with the GNU Affero General Public License.
 
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
 
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
+  14. Revised Versions of this License.
 
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
 be similar in spirit to the present version, but may differ in detail to
 address new problems or concerns.
 
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
 
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
 
-                           NO WARRANTY
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
 
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
+  15. Disclaimer of Warranty.
 
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
 
-                    END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Programs
+  16. Limitation of Liability.
 
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
 free software which everyone can redistribute and change under these terms.
 
   To do so, attach the following notices to the program.  It is safest
 to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
+state the exclusion of warranty; and each file should have at least
 the "copyright" line and a pointer to where the full notice is found.
 
     <one line to give the program's name and a brief idea of what it does.>
     Copyright (C) <year>  <name of author>
 
-    This program is free software; you can redistribute it and/or modify
+    This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
+    the Free Software Foundation, either version 3 of the License, or
     (at your option) any later version.
 
     This program is distributed in the hope that it will be useful,
@@ -304,37 +645,30 @@
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-
 Also add information on how to contact you by electronic and paper mail.
 
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
 
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
 
 The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
 
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
 
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.

Modified: Extractor/ChangeLog
===================================================================
--- Extractor/ChangeLog 2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/ChangeLog 2012-08-18 14:14:56 UTC (rev 23304)
@@ -4,7 +4,7 @@
        work). -LRN
 
 Sun Jan 29 17:27:08 CET 2012
-       Documented recently discovered issues with pthreads and 
+       Documented recently discovered issues with pthreads and
        out-of-process plugin executions in the manual. -CG
 
 Tue Nov 29 12:55:40 CET 2011

Modified: Extractor/NEWS
===================================================================
--- Extractor/NEWS      2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/NEWS      2012-08-18 14:14:56 UTC (rev 23304)
@@ -1,3 +1,19 @@
+Fri Aug 17 21:28:33 CEST 2012
+       Major changes to plugin mechanism now allow out-of-process
+       plugins full random-access to the entire file.  Most plugins
+       have now been rewritten to the new plugin API (0.7).  The external
+       (libextractor) API will remain unchanged and compatible with LE 0.6.
+
+       As part of the rewrite, many plugins were changed to use 
+       standard 3rd party libraries (libjpeg, libtiff, libgif, 
+       libtidy, libmagic) for parsing.  A new plugin based on
+       gstreamer replaces many existing multimedia plugins.
+
+       Automated testcases for (almost all) of the plugins
+       were also written and the documentation was updated.
+
+       The license was changed to GNU GPL v3+.
+
 Mon Nov 28 12:17:42 CET 2011
        Added MKV (Matroska) plugin.
 
@@ -30,7 +46,7 @@
        Added an SID (C64 music file) plugin.
 
 Sat Nov 11 00:04:34 EET 2006
-       Added an NSF ( NES Sound Format ) plugin.
+       Added an NSF (NES Sound Format) plugin.
 
 Tue Apr 18 14:44:37 PDT 2006
        Added dictionaries for Finnish, French, Gaelic and Swedish

Modified: Extractor/README
===================================================================
--- Extractor/README    2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/README    2012-08-18 14:14:56 UTC (rev 23304)
@@ -1,34 +1,70 @@
-libextractor
-============
+About
+=====
 
-libextractor is a simple library for keyword extraction.  libextractor
-does not support all formats but supports a simple plugging mechanism
-such that you can quickly add extractors for additional formats, even
-without recompiling libextractor.  libextractor typically ships with a
-few dozen helper-libraries (plugins) that can be used to obtain
-keywords from common file-types.
+GNU libextractor is a simple C library for keyword extraction. 
+Common use-cases for GNU libextractor include detail-views in
+file managers, detailed search results in file-sharing networks 
+and general information gathering in forensics investigations
+and penetration testing.
 
-libextractor is a GNU package (http://www.gnu.org/).
+Bindings for GNU libextractor exists for many languages in addition to
+the standard C/C++ API (we know about bindings for Java, Perl, PHP,
+Mono, Python, Ruby).  
 
-More detailed documentation is available in the GNU libextractor manual.
+libextractor uses a plugin mechanism to enable developers to quickly
+add extractors for additional formats.  Plugins are executed
+out-of-process and can thus bugs in them (or the libraries that they
+use) cannot crash the main application.  libextractor typically ships
+with a few dozen plugins that can be used to obtain keywords from
+common file types.
 
+More detailed documentation is available in the GNU libextractor
+manual.  libextractor is an official GNU package and available from
+http://www.gnu.org/s/libextractor/.
 
+
 extract
 =======
 
-extract is a simple command-line interface to libextractor.
+extract is a simple command-line interface to GNU libextractor.
 
 
-
 Dependencies
 ============
 
-* zlib (compression library)
 * GNU C/C++ compiler
 * libltdl 2.2.x (from GNU libtool)
 * GNU libtool 2.2 or higher
 * GNU gettext
 
+The following dependencies are all optional, but should be
+available in order for maximum coverage:
+
+* libavutil / libavformat / libavcodec / libswscale (ffmpeg)
+* libbz2 (bzip2)
+* libexiv2
+* libflac
+* libgif (giflib)
+* libglib (glib)
+* libgtk+
+* libgsf
+* libgstreamer
+* libjpeg
+* libmagic (file)
+* libmpeg2
+* librpm
+* libtidy
+* libtiff
+* libvorbis / libogg
+* libz (zlib)
+
 When building libextractor binaries, please make sure all of these
-dependencies are available.  Otherwise the build system may
-automatically build only a subset of libextractor.
+dependencies are available and configure detects a sufficiently recent
+installation.  Otherwise the build system may automatically build only
+a subset of GNU libextractor resulting in mediocre meta data
+production.
+
+Finally, 'zzuf' is a fuzzing tool that can optionally be detected by
+the build system and be used for debugging / testing.  It is not required
+at runtime or for normal builds.
+

Modified: Extractor/TODO
===================================================================
--- Extractor/TODO      2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/TODO      2012-08-18 14:14:56 UTC (rev 23304)
@@ -1,9 +1,7 @@
 * Update plugins to new API (and cleanup code):
   - tar
-  - dvi
   - elf
   - applefile
-  - ps
   - pdf
 
 * plugins without tests:

Modified: Extractor/po/de.po
===================================================================
--- Extractor/po/de.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/de.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: libextractor 0.5.14\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2007-03-23 23:16+0100\n"
 "Last-Translator: Nils Durner <address@hidden>\n"
 "Language-Team: German <address@hidden>\n"
@@ -101,7 +101,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr "Laden des »%s«-Plugins ist fehlgeschlagen: %s\n"
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr "unbekannt"
@@ -116,30 +116,30 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s - (binär)\n"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr ""
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr ""
 "Sie müssen ein Argument für die Option »%s« angeben (Option wird "
 "ignoriert).\n"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr "Verwenden Sie --help, um eine Liste aller Optionen zu sehen.\n"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr "%% BibTeX Datei\n"
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr "Schlüsserwörter für die Datei %s:\n"

Modified: Extractor/po/fr.po
===================================================================
--- Extractor/po/fr.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/fr.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: libextractor-0.5.20a\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2008-08-24 19:08+0100\n"
 "Last-Translator: Nicolas Provost <address@hidden>\n"
 "Language-Team: French <address@hidden>\n"
@@ -101,7 +101,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr "Le chargement du module `%s' a échoué : %s\n"
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr "inconnu"
@@ -116,28 +116,28 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s - (binaire)\n"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr ""
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr "Vous devez préciser un argument pour l'option `%s' (option ignorée).\n"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr "Utilisez --help pour obtenir une liste d'options.\n"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr "%% fichier BiBTeX\n"
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr "Mots-clés pour le fichier %s:\n"

Modified: Extractor/po/ga.po
===================================================================
--- Extractor/po/ga.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/ga.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: libextractor 0.5.20\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2008-03-21 20:46-0700\n"
 "Last-Translator: Kevin Scannell <address@hidden>\n"
 "Language-Team: Irish <address@hidden>\n"
@@ -98,7 +98,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr "Theip ar lucht� an bhreise�in `%s': %s\n"
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr "anaithnid"
@@ -113,29 +113,29 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s - (d�n�rtha)\n"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr ""
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr ""
 "N� m�r duit arg�int a thabhairt i ndiaidh na rogha `%s' (� ligean thart).\n"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr "Bain �s�id as '--help' le haghaidh n�os m� roghanna.\n"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr "%% Comhad BiBTeX\n"
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr "Lorgfhocail do chomhad %s:\n"

Modified: Extractor/po/it.po
===================================================================
--- Extractor/po/it.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/it.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: libextractor-0.6.0\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2010-09-30 23:41+0200\n"
 "Last-Translator: Sergio Zanchetta <address@hidden>\n"
 "Language-Team: Italian <address@hidden>\n"
@@ -94,7 +94,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr ""
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr ""
@@ -109,30 +109,30 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s - (binario, %u bite)\n"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr ""
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr ""
 "Deve essere specificato un argomento per l'opzione \"%s\" (opzione "
 "ignorata).\n"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr "Usare --help per ottenere un elenco di opzioni.\n"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr "%% file BiBTeX\n"
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr ""

Modified: Extractor/po/libextractor.pot
===================================================================
--- Extractor/po/libextractor.pot       2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/libextractor.pot       2012-08-18 14:14:56 UTC (rev 23304)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <address@hidden>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -92,7 +92,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr ""
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr ""
@@ -107,28 +107,28 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr ""
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr ""
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr ""
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr ""
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr ""
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr ""

Modified: Extractor/po/nl.po
===================================================================
--- Extractor/po/nl.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/nl.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: libextractor-0.5.20a\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2009-03-08 16:59+0100\n"
 "Last-Translator: Erwin Poeze <address@hidden>\n"
 "Language-Team: Dutch <address@hidden>\n"
@@ -101,7 +101,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr "Laden van plugin '%s' is mislukt: %s\n"
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr "onbekend"
@@ -116,28 +116,28 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s - (binair)\n"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr ""
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr "Optie '%s' vereist een argument -- optie is genegeerd.\n"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr "Gebruik '--help' voor een lijst met mogelijke opties.\n"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr "%% BiBTeX-bestand\n"
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr "Trefwoorden voor bestand %s:\n"

Modified: Extractor/po/ro.po
===================================================================
--- Extractor/po/ro.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/ro.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: libextractor 0.5.3\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2005-08-16 12:00-0500\n"
 "Last-Translator: Laurentiu Buzdugan <address@hidden>\n"
 "Language-Team: Romanian <address@hidden>\n"
@@ -101,7 +101,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr "�nc�rcarea plugin-ului '%s' a e�uat: %s\n"
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr "necunoscut"
@@ -116,29 +116,29 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s - (binar)\n"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr ""
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, fuzzy, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr ""
 "Trebuie s� specifica�i un argument pentru op�iunea '%s' (op�iune ignorat�).\n"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr "Folosi�i --help pentru a ob�ine o list� de op�iuni.\n"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr "%% BiBTeX file\n"
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr "Cuvinte cheie pentru fi�ier %s:\n"

Modified: Extractor/po/rw.po
===================================================================
--- Extractor/po/rw.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/rw.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -16,7 +16,7 @@
 msgstr ""
 "Project-Id-Version: libextractor 0.4.2\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2005-04-04 10:55-0700\n"
 "Last-Translator: Steven Michael Murphy <address@hidden>\n"
 "Language-Team: Kinyarwanda <address@hidden>\n"
@@ -109,7 +109,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr "Byanze"
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr "itazwi"
@@ -124,28 +124,28 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s-(Nyabibiri"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr ""
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, fuzzy, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr "kugirango i Ihitamo Ihitamo"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, fuzzy, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr "Ifashayobora Kuri Kubona a Urutonde Bya Amahitamo"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr ""
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, fuzzy, c-format
 msgid "Keywords for file %s:\n"
 msgstr "kugirango IDOSIYE"

Modified: Extractor/po/sv.po
===================================================================
--- Extractor/po/sv.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/sv.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: libextractor 0.5.22\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2009-05-12 17:45+0100\n"
 "Last-Translator: Daniel Nylander <address@hidden>\n"
 "Language-Team: Swedish <address@hidden>\n"
@@ -96,7 +96,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr "Inläsning av instick \"%s\" misslyckades: %s\n"
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr "okänd"
@@ -111,28 +111,28 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s - (binär)\n"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr ""
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr "Du måste ange ett argument för flaggan \"%s\" (flagga ignoreras).\n"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr "Använd --help för att få en lista på flaggor.\n"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr "%% BiBTeX-fil\n"
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr "Nyckelord för filen %s:\n"

Modified: Extractor/po/uk.po
===================================================================
--- Extractor/po/uk.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/uk.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: libextractor 0.6.2\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2011-07-22 16:22+0300\n"
 "Last-Translator: Yuri Chornoivan <address@hidden>\n"
 "Language-Team: Ukrainian <address@hidden>\n"
@@ -103,7 +103,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr "Знайдено додатком «%s»:\n"
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr "невідомий"
@@ -118,7 +118,7 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s — (бінарний, %u байтів)\n"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
@@ -126,26 +126,26 @@
 "Некоректне поєднання параметрів, не можна визначати декілька стилів "
 "виведення даних.\n"
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr ""
 "Параметр «%s» можна використовувати лише з додатковим аргументом (параметр "
 "проігноровано).\n"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr ""
 "Скористайтеся параметром --help для отримання списку можливих параметрів "
 "командного рядка.\n"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr "%% файл BiBTeX\n"
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr "Ключові слова для файла %s:\n"

Modified: Extractor/po/vi.po
===================================================================
--- Extractor/po/vi.po  2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/po/vi.po  2012-08-18 14:14:56 UTC (rev 23304)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: libextractor 0.6.0\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2012-08-17 01:19+0200\n"
+"POT-Creation-Date: 2012-08-17 20:43+0200\n"
 "PO-Revision-Date: 2010-02-11 00:13+0930\n"
 "Last-Translator: Clytie Siddall <address@hidden>\n"
 "Language-Team: Vietnamese <address@hidden>\n"
@@ -104,7 +104,7 @@
 msgid "Found by `%s' plugin:\n"
 msgstr "Tìm bởi phần bổ sung « %s »:\n"
 
-#: src/main/extract.c:287 src/main/extract.c:375
+#: src/main/extract.c:287 src/main/extract.c:368
 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:82
 msgid "unknown"
 msgstr "không rõ"
@@ -119,29 +119,29 @@
 msgid "%s - (binary, %u bytes)\n"
 msgstr "%s - (nhị phân, %u byte)\n"
 
-#: src/main/extract.c:665 src/main/extract.c:675
+#: src/main/extract.c:658 src/main/extract.c:668
 #, c-format
 msgid ""
 "Illegal combination of options, cannot combine multiple styles of printing.\n"
 msgstr "sai tổ hợp các tuỳ chọn này, không thể kết hợp nhiều cách in.\n"
 
-#: src/main/extract.c:705
+#: src/main/extract.c:698
 #, c-format
 msgid "You must specify an argument for the `%s' option (option ignored).\n"
 msgstr "Bạn phải ghi rõ một đối số cho tùy chọn « %s » (tùy chọn bị bỏ qua).\n"
 
-#: src/main/extract.c:770
+#: src/main/extract.c:763
 #, c-format
 msgid "Use --help to get a list of options.\n"
 msgstr ""
 "Hãy sử dụng lệnh « --help » (trợ giúp) để xem một danh sách các tùy chọn.\n"
 
-#: src/main/extract.c:808
+#: src/main/extract.c:801
 #, c-format
 msgid "%% BiBTeX file\n"
 msgstr "%% tập tin BiBTeX\n"
 
-#: src/main/extract.c:816
+#: src/main/extract.c:809
 #, c-format
 msgid "Keywords for file %s:\n"
 msgstr "Từ khoá cho tập tin %s:\n"


Property changes on: Extractor/src/plugins
___________________________________________________________________
Modified: svn:ignore
   - test_wav
test_s3m
test_ole2
test_mpeg
test_man
test_jpeg
test_it
test_html
test_exiv2
test_tiff
test_thumbnailgtk
test_thumbnailffmpeg
test_zip
test_xm
test_png
test_odf
test_nsfe
test_nsf
test_deb
test_rpm
test_flac
test_gif
test_mime
test_ogg
thumbnailextractorqt.loT
Makefile.in
Makefile
.deps

   + test_dvi
test_wav
test_s3m
test_ole2
test_mpeg
test_man
test_jpeg
test_it
test_html
test_exiv2
test_tiff
test_thumbnailgtk
test_thumbnailffmpeg
test_zip
test_xm
test_png
test_odf
test_nsfe
test_nsf
test_deb
test_rpm
test_flac
test_gif
test_mime
test_ogg
thumbnailextractorqt.loT
Makefile.in
Makefile
.deps


Modified: Extractor/src/plugins/Makefile.am
===================================================================
--- Extractor/src/plugins/Makefile.am   2012-08-18 13:12:14 UTC (rev 23303)
+++ Extractor/src/plugins/Makefile.am   2012-08-18 14:14:56 UTC (rev 23304)
@@ -1,8 +1,8 @@
 INCLUDES = \
  -I$(top_srcdir)/src/include \
- -I$(top_srcdir)/src/common \
- -I$(top_srcdir)/src/main
+ -I$(top_srcdir)/src/common 
 
+
 # install plugins under:
 plugindir = $(libdir)/@RPLUGINDIR@
 
@@ -14,77 +14,91 @@
 
 SUBDIRS = . 
 
-EXTRA_DIST = template_extractor.c \
-  testdata/ogg_courseclear.ogg \
+EXTRA_DIST = \
+  template_extractor.c \
+  testdata/deb_bzip2.deb \
+  testdata/dvi_ora.dvi \
+  testdata/flac_kraftwerk.flac \
   testdata/gif_image.gif \
+  testdata/html_grothoff.html \
+  testdata/it_dawn.it \
   testdata/jpeg_image.jpg \
-  testdata/rpm_test.rpm \
-  testdata/flac_kraftwerk.flac \
+  testdata/man_extract.1 \
   testdata/mpeg_alien.mpg \
   testdata/mpeg_melt.mpg \
-  testdata/wav_noise.wav \
-  testdata/wav_alert.wav \
-  testdata/it_dawn.it \
-  testdata/s3m_2nd_pm.s3m \
+  testdata/nsf_arkanoid.nsf \
+  testdata/nsfe_classics.nsfe \
+  testdata/odf_cg.odt \
+  testdata/ole2_blair.doc \
+  testdata/ole2_excel.xls \
   testdata/ole2_msword.doc \
   testdata/ole2_starwriter40.sdw \
-  testdata/ole2_blair.doc \
-  testdata/ole2_excel.xls \
+  testdata/ogg_courseclear.ogg \
   testdata/png_image.png \
-  testdata/odf_cg.odt \
-  testdata/deb_bzip2.deb \
-  testdata/nsf_arkanoid.nsf \
-  testdata/nsfe_classics.nsfe \
+  testdata/ps_bloomfilter.ps \
+  testdata/ps_wallace.ps \
+  testdata/rpm_test.rpm \
+  testdata/s3m_2nd_pm.s3m \
+  testdata/thumbnail_torsten.jpg \
+  testdata/tiff_haute.tiff \
+  testdata/wav_noise.wav \
+  testdata/wav_alert.wav \
   testdata/xm_diesel.xm \
-  testdata/tiff_haute.tiff \
-  testdata/man_extract.1 \
-  testdata/html_grothoff.html
+  testdata/zip_test.zip
 
-if HAVE_VORBISFILE
-PLUGIN_OGG=libextractor_ogg.la
-TEST_OGG=test_ogg
-endif
 
 if HAVE_MAGIC
 PLUGIN_MIME=libextractor_mime.la
 TEST_MIME=test_mime
 
+if HAVE_FFMPEG
+# FFmpeg-thumbnailer requires MAGIC and FFMPEG
+PLUGIN_FFMPEG=libextractor_thumbnailffmpeg.la
+TEST_FFMPEG=test_thumbnailffmpeg
+endif
+
 if HAVE_GTK
 # Gtk-thumbnailer requires MAGIC and GTK
 PLUGIN_GTK=libextractor_thumbnailgtk.la
 TEST_GTK=test_thumbnailgtk
 endif
 
-if HAVE_FFMPEG
-# FFmpeg-thumbnailer requires MAGIC and FFMPEG
-PLUGIN_FFMPEG=libextractor_thumbnailffmpeg.la
-TEST_FFMPEG=test_thumbnailffmpeg
-endif
-
 if HAVE_TIDY
+# HTML requires MAGIC and tidy
 PLUGIN_HTML=libextractor_html.la
 TEST_HTML=test_html
 endif
 endif
 
+
+if HAVE_EXIV2
+PLUGIN_EXIV2=libextractor_exiv2.la
+TEST_EXIV2=test_exiv2
+endif
+
+if HAVE_FLAC
+PLUGIN_FLAC=libextractor_flac.la
+TEST_FLAC=test_flac
+endif
+
 if HAVE_GIF
 PLUGIN_GIF=libextractor_gif.la
 TEST_GIF=test_gif
 endif
 
-if HAVE_LIBRPM
-PLUGIN_RPM=libextractor_rpm.la
-TEST_RPM=test_rpm
+if HAVE_GSF
+PLUGIN_GSF=libextractor_ole2.la
+TEST_GSF=test_ole2
 endif
 
-if HAVE_FLAC
-PLUGIN_FLAC=libextractor_flac.la
-TEST_FLAC=test_flac
+if HAVE_GSTREAMER
+PLUGIN_GSTREAMER=libextractor_gstreamer.la
+TEST_GSTREAMER=test_gstreamer
 endif
 
-if HAVE_TIFF
-PLUGIN_TIFF=libextractor_tiff.la
-TEST_TIFF=test_tiff
+if HAVE_JPEG
+PLUGIN_JPEG=libextractor_jpeg.la
+TEST_JPEG=test_jpeg
 endif
 
 if HAVE_MPEG2
@@ -92,19 +106,19 @@
 TEST_MPEG=test_mpeg
 endif
 
-if HAVE_JPEG
-PLUGIN_JPEG=libextractor_jpeg.la
-TEST_JPEG=test_jpeg
+if HAVE_LIBRPM
+PLUGIN_RPM=libextractor_rpm.la
+TEST_RPM=test_rpm
 endif
 
-if HAVE_EXIV2
-PLUGIN_EXIV2=libextractor_exiv2.la
-TEST_EXIV2=test_exiv2
+if HAVE_TIFF
+PLUGIN_TIFF=libextractor_tiff.la
+TEST_TIFF=test_tiff
 endif
 
-if HAVE_GSF
-PLUGIN_GSF=libextractor_ole2.la
-TEST_GSF=test_ole2
+if HAVE_VORBISFILE
+PLUGIN_OGG=libextractor_ogg.la
+TEST_OGG=test_ogg
 endif
 
 if HAVE_ZLIB
@@ -113,70 +127,69 @@
 endif
 
 
-if HAVE_GSTREAMER
-PLUGIN_GSTREAMER=libextractor_gstreamer.la
-TEST_GSTREAMER=test_gstreamer
-endif
-
 plugin_LTLIBRARIES = \
+  libextractor_dvi.la \
   libextractor_it.la \
   libextractor_man.la \
   libextractor_nsf.la \
   libextractor_nsfe.la \
   libextractor_odf.la \
   libextractor_png.la \
-  libextractor_xm.la \
+  libextractor_ps.la \
+  libextractor_riff.la \
   libextractor_s3m.la \
   libextractor_sid.la \
-  libextractor_riff.la \
   libextractor_wav.la \
+  libextractor_xm.la \
   libextractor_zip.la \
+  $(PLUGIN_EXIV2) \
+  $(PLUGIN_FFMPEG) \
+  $(PLUGIN_FLAC) \
+  $(PLUGIN_GIF) \
+  $(PLUGIN_GSF) \
+  $(PLUGIN_GSTREAMER) \
   $(PLUGIN_GTK) \
   $(PLUGIN_HTML) \
-  $(PLUGIN_FFMPEG) \
-  $(PLUGIN_ZLIB) \
+  $(PLUGIN_JPEG) \
+  $(PLUGIN_MIME) \
+  $(PLUGIN_MPEG) \
   $(PLUGIN_OGG) \
-  $(PLUGIN_MIME) \
+  $(PLUGIN_RPM) \
   $(PLUGIN_TIFF) \
-  $(PLUGIN_GIF) \
-  $(PLUGIN_RPM) \
-  $(PLUGIN_FLAC) \
-  $(PLUGIN_MPEG) \
-  $(PLUGIN_JPEG) \
-  $(PLUGIN_EXIV2) \
-  $(PLUGIN_GSTREAMER) \
-  $(PLUGIN_GSF)
+  $(PLUGIN_ZLIB) 
 
 if HAVE_ZZUF
   fuzz_tests=fuzz_default.sh 
 endif
 
 check_PROGRAMS = \
-  test_wav \
+  test_dvi \
+  test_it \
   test_man \
-  test_it \
+  test_nsf \
+  test_nsfe \
+  test_odf \
+  test_ps \
+  test_png \
   test_s3m \
-  test_png \
-  test_odf \
+  test_wav \
+  test_xm \
   test_zip \
-  test_xm \
-  test_nsf \
-  test_nsfe \
-  $(TEST_ZLIB) \
+  $(TEST_EXIV2) \
+  $(TEST_FFMPEG) \
+  $(TEST_FLAC) \
+  $(TEST_GIF) \
+  $(TEST_GSF) \
+  $(TEST_GSTREAMER) \
+  $(TEST_GTK) \
   $(TEST_HTML) \
-  $(TEST_GTK) \
-  $(TEST_FFMPEG) \
+  $(TEST_JPEG) \
+  $(TEST_MIME) \
+  $(TEST_MPEG) \
   $(TEST_OGG) \
-  $(TEST_MIME) \
+  $(TEST_RPM) \
   $(TEST_TIFF) \
-  $(TEST_GIF) \
-  $(TEST_RPM) \
-  $(TEST_FLAC) \
-  $(TEST_MPEG) \
-  $(TEST_JPEG) \
-  $(TEST_EXIV2) \
-  $(TEST_GSTREAMER) \
-  $(TEST_GSF)
+  $(TEST_ZLIB) 
 
 TESTS = \
   $(fuzz_tests) \
@@ -192,17 +205,6 @@
   $(top_builddir)/src/main/libextractor.la
 
 
-libextractor_xm_la_SOURCES = \
-  xm_extractor.c
-libextractor_xm_la_LDFLAGS = \
-  $(PLUGINFLAGS)
-
-test_xm_SOURCES = \
-  test_xm.c
-test_xm_LDADD = \
-  $(top_builddir)/src/plugins/libtest.la
-
-
 libextractor_deb_la_SOURCES = \
   deb_extractor.c
 libextractor_deb_la_LDFLAGS = \
@@ -214,75 +216,81 @@
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_man_la_SOURCES = \
-  man_extractor.c
-libextractor_man_la_LDFLAGS = \
+libextractor_dvi_la_SOURCES = \
+  dvi_extractor.c
+libextractor_dvi_la_LDFLAGS = \
   $(PLUGINFLAGS)
 
-test_man_SOURCES = \
-  test_man.c
-test_man_LDADD = \
+test_dvi_SOURCES = \
+  test_dvi.c
+test_dvi_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_nsf_la_SOURCES = \
-  nsf_extractor.c
-libextractor_nsf_la_LDFLAGS = \
+libextractor_exiv2_la_SOURCES = \
+  exiv2_extractor.cc
+libextractor_exiv2_la_LDFLAGS = \
   $(PLUGINFLAGS)
+libextractor_exiv2_la_LIBADD = \
+  -lexiv2
 
-test_nsf_SOURCES = \
-  test_nsf.c
-test_nsf_LDADD = \
+test_exiv2_SOURCES = \
+  test_exiv2.c
+test_exiv2_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_nsfe_la_SOURCES = \
-  nsfe_extractor.c
-libextractor_nsfe_la_LDFLAGS = \
+libextractor_flac_la_SOURCES = \
+  flac_extractor.c
+libextractor_flac_la_LDFLAGS = \
   $(PLUGINFLAGS)
+libextractor_flac_la_LIBADD = \
+  -lFLAC
 
-test_nsfe_SOURCES = \
-  test_nsfe.c
-test_nsfe_LDADD = \
+test_flac_SOURCES = \
+  test_flac.c
+test_flac_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_odf_la_SOURCES = \
-  odf_extractor.c
-libextractor_odf_la_LDFLAGS = \
+libextractor_gif_la_SOURCES = \
+  gif_extractor.c
+libextractor_gif_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_odf_la_LIBADD = \
-  $(top_builddir)/src/common/libextractor_common.la 
+libextractor_gif_la_LIBADD = \
+  -lgif
 
-test_odf_SOURCES = \
-  test_odf.c
-test_odf_LDADD = \
+test_gif_SOURCES = \
+  test_gif.c
+test_gif_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_zip_la_SOURCES = \
-  zip_extractor.c
-libextractor_zip_la_LDFLAGS = \
+libextractor_gstreamer_la_SOURCES = \
+  gstreamer_extractor.c
+libextractor_gstreamer_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_zip_la_LIBADD = \
-  $(top_builddir)/src/common/libextractor_common.la 
+libextractor_gstreamer_la_LIBADD = \
+  $(GSTREAMER_LIBS) $(GSTREAMER_PBUTILS_LIBS) $(GSTREAMER_TAG_LIBS) 
$(GSTREAMER_APP_LIBS)
+libextractor_gstreamer_la_CFLAGS = \
+  $(GSTREAMER_CFLAGS) $(GSTREAMER_PBUTILS_CFLAGS) $(GSTREAMER_TAG_CFLAGS) 
$(GSTREAMER_APP_CFALGS)
 
-test_zip_SOURCES = \
-  test_zip.c
-test_zip_LDADD = \
+test_gstreamer_SOURCES = \
+  test_gstreamer.c
+test_gstreamer_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_png_la_SOURCES = \
-  png_extractor.c
-libextractor_png_la_LDFLAGS = \
+libextractor_html_la_SOURCES = \
+  html_extractor.c
+libextractor_html_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_png_la_LIBADD = \
-  $(top_builddir)/src/common/libextractor_common.la 
+libextractor_html_la_LIBADD = \
+  -ltidy -lmagic
 
-test_png_SOURCES = \
-  test_png.c
-test_png_LDADD = \
+test_html_SOURCES = \
+  test_html.c
+test_html_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
@@ -297,40 +305,109 @@
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_sid_la_SOURCES = \
-  sid_extractor.c
-libextractor_sid_la_LDFLAGS = \
+libextractor_jpeg_la_SOURCES = \
+  jpeg_extractor.c
+libextractor_jpeg_la_LDFLAGS = \
   $(PLUGINFLAGS)
+libextractor_jpeg_la_LIBADD = \
+  -ljpeg
 
+test_jpeg_SOURCES = \
+  test_jpeg.c
+test_jpeg_LDADD = \
+  $(top_builddir)/src/plugins/libtest.la
 
-libextractor_riff_la_SOURCES = \
-  riff_extractor.c
-libextractor_riff_la_LDFLAGS = \
+
+libextractor_man_la_SOURCES = \
+  man_extractor.c
+libextractor_man_la_LDFLAGS = \
   $(PLUGINFLAGS)
 
+test_man_SOURCES = \
+  test_man.c
+test_man_LDADD = \
+  $(top_builddir)/src/plugins/libtest.la
 
-libextractor_s3m_la_SOURCES = \
-  s3m_extractor.c
-libextractor_s3m_la_LDFLAGS = \
+
+libextractor_mime_la_SOURCES = \
+  mime_extractor.c
+libextractor_mime_la_LDFLAGS = \
   $(PLUGINFLAGS)
+libextractor_mime_la_LIBADD = \
+  -lmagic
 
-test_s3m_SOURCES = \
-  test_s3m.c
-test_s3m_LDADD = \
+test_mime_SOURCES = \
+  test_mime.c
+test_mime_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_wav_la_SOURCES = \
-  wav_extractor.c
-libextractor_wav_la_LDFLAGS = \
+libextractor_mpeg_la_SOURCES = \
+  mpeg_extractor.c
+libextractor_mpeg_la_LDFLAGS = \
   $(PLUGINFLAGS)
+libextractor_mpeg_la_LIBADD = \
+  -lmpeg2
 
-test_wav_SOURCES = \
-  test_wav.c
-test_wav_LDADD = \
+test_mpeg_SOURCES = \
+  test_mpeg.c
+test_mpeg_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
+libextractor_nsf_la_SOURCES = \
+  nsf_extractor.c
+libextractor_nsf_la_LDFLAGS = \
+  $(PLUGINFLAGS)
+
+test_nsf_SOURCES = \
+  test_nsf.c
+test_nsf_LDADD = \
+  $(top_builddir)/src/plugins/libtest.la
+
+
+libextractor_nsfe_la_SOURCES = \
+  nsfe_extractor.c
+libextractor_nsfe_la_LDFLAGS = \
+  $(PLUGINFLAGS)
+
+test_nsfe_SOURCES = \
+  test_nsfe.c
+test_nsfe_LDADD = \
+  $(top_builddir)/src/plugins/libtest.la
+
+
+libextractor_odf_la_SOURCES = \
+  odf_extractor.c
+libextractor_odf_la_LDFLAGS = \
+  $(PLUGINFLAGS)
+libextractor_odf_la_LIBADD = \
+  $(top_builddir)/src/common/libextractor_common.la 
+
+test_odf_SOURCES = \
+  test_odf.c
+test_odf_LDADD = \
+  $(top_builddir)/src/plugins/libtest.la
+
+
+libextractor_ole2_la_SOURCES = \
+  ole2_extractor.c
+libextractor_ole2_la_CFLAGS = \
+  $(GSF_CFLAGS)
+libextractor_ole2_la_CPPFLAGS = \
+  $(GSF_CFLAGS)
+libextractor_ole2_la_LDFLAGS = \
+  $(PLUGINFLAGS) 
+libextractor_ole2_la_LIBADD = \
+  $(top_builddir)/src/common/libextractor_common.la \
+  $(GSF_LIBS)
+
+test_ole2_SOURCES = \
+  test_ole2.c
+test_ole2_LDADD = \
+  $(top_builddir)/src/plugins/libtest.la
+
+
 libextractor_ogg_la_SOURCES = \
   ogg_extractor.c
 libextractor_ogg_la_LDFLAGS = \
@@ -344,47 +421,36 @@
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_mime_la_SOURCES = \
-  mime_extractor.c
-libextractor_mime_la_LDFLAGS = \
+libextractor_png_la_SOURCES = \
+  png_extractor.c
+libextractor_png_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_mime_la_LIBADD = \
-  -lmagic
+libextractor_png_la_LIBADD = \
+  $(top_builddir)/src/common/libextractor_common.la 
 
-test_mime_SOURCES = \
-  test_mime.c
-test_mime_LDADD = \
+test_png_SOURCES = \
+  test_png.c
+test_png_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_thumbnailgtk_la_SOURCES = \
-  thumbnailgtk_extractor.c
-libextractor_thumbnailgtk_la_LDFLAGS = \
+libextractor_ps_la_SOURCES = \
+  ps_extractor.c
+libextractor_ps_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_thumbnailgtk_la_CFLAGS = \
-  $(GTK_CFLAGS)
-libextractor_thumbnailgtk_la_LIBADD = \
-  -lmagic $(GTK_LIBS)
 
-test_thumbnailgtk_SOURCES = \
-  test_thumbnailgtk.c
-test_thumbnailgtk_LDADD = \
+test_ps_SOURCES = \
+  test_ps.c
+test_ps_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_gif_la_SOURCES = \
-  gif_extractor.c
-libextractor_gif_la_LDFLAGS = \
+libextractor_riff_la_SOURCES = \
+  riff_extractor.c
+libextractor_riff_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_gif_la_LIBADD = \
-  -lgif
 
-test_gif_SOURCES = \
-  test_gif.c
-test_gif_LDADD = \
-  $(top_builddir)/src/plugins/libtest.la
 
-
 libextractor_rpm_la_SOURCES = \
   rpm_extractor.c
 libextractor_rpm_la_LDFLAGS = \
@@ -398,55 +464,48 @@
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_flac_la_SOURCES = \
-  flac_extractor.c
-libextractor_flac_la_LDFLAGS = \
+libextractor_s3m_la_SOURCES = \
+  s3m_extractor.c
+libextractor_s3m_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_flac_la_LIBADD = \
-  -lFLAC
 
-test_flac_SOURCES = \
-  test_flac.c
-test_flac_LDADD = \
+test_s3m_SOURCES = \
+  test_s3m.c
+test_s3m_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_mpeg_la_SOURCES = \
-  mpeg_extractor.c
-libextractor_mpeg_la_LDFLAGS = \
+libextractor_sid_la_SOURCES = \
+  sid_extractor.c
+libextractor_sid_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_mpeg_la_LIBADD = \
-  -lmpeg2
 
-test_mpeg_SOURCES = \
-  test_mpeg.c
-test_mpeg_LDADD = \
-  $(top_builddir)/src/plugins/libtest.la
 
-
-libextractor_jpeg_la_SOURCES = \
-  jpeg_extractor.c
-libextractor_jpeg_la_LDFLAGS = \
+libextractor_thumbnailffmpeg_la_SOURCES = \
+  thumbnailffmpeg_extractor.c
+libextractor_thumbnailffmpeg_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_jpeg_la_LIBADD = \
-  -ljpeg
+libextractor_thumbnailffmpeg_la_LIBADD = \
+  -lavutil -lavformat -lavcodec -lswscale -lmagic
 
-test_jpeg_SOURCES = \
-  test_jpeg.c
-test_jpeg_LDADD = \
+test_thumbnailffmpeg_SOURCES = \
+  test_thumbnailffmpeg.c
+test_thumbnailffmpeg_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_exiv2_la_SOURCES = \
-  exiv2_extractor.cc
-libextractor_exiv2_la_LDFLAGS = \
+libextractor_thumbnailgtk_la_SOURCES = \
+  thumbnailgtk_extractor.c
+libextractor_thumbnailgtk_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_exiv2_la_LIBADD = \
-  -lexiv2
+libextractor_thumbnailgtk_la_CFLAGS = \
+  $(GTK_CFLAGS)
+libextractor_thumbnailgtk_la_LIBADD = \
+  -lmagic $(GTK_LIBS)
 
-test_exiv2_SOURCES = \
-  test_exiv2.c
-test_exiv2_LDADD = \
+test_thumbnailgtk_SOURCES = \
+  test_thumbnailgtk.c
+test_thumbnailgtk_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
@@ -463,60 +522,37 @@
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_ole2_la_SOURCES = \
-  ole2_extractor.c
-libextractor_ole2_la_CFLAGS = \
-  $(GSF_CFLAGS)
-libextractor_ole2_la_CPPFLAGS = \
-  $(GSF_CFLAGS)
-libextractor_ole2_la_LDFLAGS = \
-  $(PLUGINFLAGS) 
-libextractor_ole2_la_LIBADD = \
-  $(top_builddir)/src/common/libextractor_common.la \
-  $(GSF_LIBS)
+libextractor_wav_la_SOURCES = \
+  wav_extractor.c
+libextractor_wav_la_LDFLAGS = \
+  $(PLUGINFLAGS)
 
-test_ole2_SOURCES = \
-  test_ole2.c
-test_ole2_LDADD = \
+test_wav_SOURCES = \
+  test_wav.c
+test_wav_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_gstreamer_la_SOURCES = \
-  gstreamer_extractor.c
-libextractor_gstreamer_la_LDFLAGS = \
+libextractor_xm_la_SOURCES = \
+  xm_extractor.c
+libextractor_xm_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_gstreamer_la_LIBADD = \
-  $(GSTREAMER_LIBS) $(GSTREAMER_PBUTILS_LIBS) $(GSTREAMER_TAG_LIBS) 
$(GSTREAMER_APP_LIBS)
-libextractor_gstreamer_la_CFLAGS = \
-  $(GSTREAMER_CFLAGS) $(GSTREAMER_PBUTILS_CFLAGS) $(GSTREAMER_TAG_CFLAGS) 
$(GSTREAMER_APP_CFALGS)
 
-test_gstreamer_SOURCES = \
-  test_gstreamer.c
-test_gstreamer_LDADD = \
+test_xm_SOURCES = \
+  test_xm.c
+test_xm_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
 
-libextractor_thumbnailffmpeg_la_SOURCES = \
-  thumbnailffmpeg_extractor.c
-libextractor_thumbnailffmpeg_la_LDFLAGS = \
+libextractor_zip_la_SOURCES = \
+  zip_extractor.c
+libextractor_zip_la_LDFLAGS = \
   $(PLUGINFLAGS)
-libextractor_thumbnailffmpeg_la_LIBADD = \
-  -lavutil -lavformat -lavcodec -lswscale -lmagic
+libextractor_zip_la_LIBADD = \
+  $(top_builddir)/src/common/libextractor_common.la 
 
-test_thumbnailffmpeg_SOURCES = \
-  test_thumbnailffmpeg.c
-test_thumbnailffmpeg_LDADD = \
+test_zip_SOURCES = \
+  test_zip.c
+test_zip_LDADD = \
   $(top_builddir)/src/plugins/libtest.la
 
-
-libextractor_html_la_SOURCES = \
-  html_extractor.c
-libextractor_html_la_LDFLAGS = \
-  $(PLUGINFLAGS)
-libextractor_html_la_LIBADD = \
-  -ltidy -lmagic
-
-test_html_SOURCES = \
-  test_html.c
-test_html_LDADD = \
-  $(top_builddir)/src/plugins/libtest.la

Copied: Extractor/src/plugins/dvi_extractor.c (from rev 23289, 
Extractor/src/plugins/old/dvi_extractor.c)
===================================================================
--- Extractor/src/plugins/dvi_extractor.c                               (rev 0)
+++ Extractor/src/plugins/dvi_extractor.c       2012-08-18 14:14:56 UTC (rev 
23304)
@@ -0,0 +1,315 @@
+/*
+     This file is part of libextractor.
+     (C) 2002, 2003, 2004, 2012 Vidyut Samanta and Christian Grothoff
+
+     libextractor is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     libextractor is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with libextractor; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+ */
+/**
+ * @file plugins/dvi_extractor.c
+ * @brief plugin to support DVI files (from LaTeX)
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "extractor.h"
+
+
+/**
+ * Pair of a PostScipt prefix and the corresponding LE type.
+ */
+struct Matches
+{
+  /**
+   * Prefix in the PS map.
+   */
+  const char *text;
+
+  /**
+   * Corresponding LE type.
+   */
+  enum EXTRACTOR_MetaType type;
+};
+
+
+/**
+ * Map from PS names to LE types.
+ */
+static struct Matches tmap[] = {
+  { "/Title (",    EXTRACTOR_METATYPE_TITLE },
+  { "/Subject (",  EXTRACTOR_METATYPE_SUBJECT },
+  { "/Author (",   EXTRACTOR_METATYPE_AUTHOR_NAME },
+  { "/Keywords (", EXTRACTOR_METATYPE_KEYWORDS },
+  { "/Creator (",  EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE },
+  { "/Producer (", EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE },
+  { NULL, 0 } 
+};
+
+
+/**
+ * Parse a "ZZZ" tag.  Specifically, the data may contain a 
+ * postscript dictionary with metadata.
+ *
+ * @param data overall input stream
+ * @param pos where in data is the zzz data
+ * @param len how many bytes from 'pos' does the zzz data extend?
+ * @param proc function to call with meta data found
+ * @param proc_cls closure for proc
+ * @return 0 to continue to extract, 1 to stop
+ */
+static int
+parseZZZ (const char *data,
+          size_t pos, size_t len,
+         EXTRACTOR_MetaDataProcessor proc,
+         void *proc_cls)
+{
+  size_t slen;
+  size_t end;
+  unsigned int i;
+
+  end = pos + len;
+  slen = strlen ("ps:SDict begin [");
+  if ( (len <= slen) ||
+       (0 != strncmp ("ps:SDict begin [ ", &data[pos], slen)) )
+    return 0;
+  pos += slen;
+  while (pos < end)
+    {
+      for (i = 0; NULL != tmap[i].text; i++)
+        {
+          slen = strlen (tmap[i].text);
+          if ( (pos + slen > end) ||
+              (0 != strncmp (&data[pos], tmap[i].text, slen)) )
+           continue;
+         pos += slen;
+         slen = pos;
+         while ((slen < end) && (data[slen] != ')'))
+           slen++;
+         slen = slen - pos;
+         {
+           char value[slen + 1];
+         
+           value[slen] = '\0';
+           memcpy (value, &data[pos], slen);
+           if (0 != proc (proc_cls, 
+                          "dvi",
+                          tmap[i].type,
+                          EXTRACTOR_METAFORMAT_C_STRING,
+                          "text/plain",
+                          value,
+                          slen + 1))
+             return 1;
+         }
+         pos += slen + 1;
+         break;
+       }
+      pos++;
+    }
+  return 0;
+}
+
+
+/**
+ * Read 32-bit unsigned integer in big-endian format from 'data'.
+ *
+ * @param data pointer to integer (possibly unaligned)
+ * @return 32-bit integer in host byte order
+ */
+static uint32_t
+getIntAt (const void *data)
+{
+  uint32_t p;
+
+  memcpy (&p, data, 4);          /* ensure alignment! */
+  return ntohl (p);
+}
+
+
+/**
+ * Read 16-bit unsigned integer in big-endian format from 'data'.
+ *
+ * @param data pointer to integer (possibly unaligned)
+ * @return 16-bit integer in host byte order
+ */
+static uint16_t
+getShortAt (const void *data)
+{
+  uint16_t p;
+
+  memcpy (&p, data, sizeof (uint16_t));          /* ensure alignment! */
+  return ntohs (p);
+}
+
+
+/**
+ * Main entry method for the 'application/x-dvi' extraction plugin.  
+ *
+ * @param ec extraction context provided to the plugin
+ */
+void
+EXTRACTOR_dvi_extract_method (struct EXTRACTOR_ExtractContext *ec)
+{
+  unsigned int klen;
+  uint32_t pos;
+  uint32_t opos;
+  unsigned int len;
+  unsigned int pageCount;
+  char pages[16];
+  void *buf;
+  unsigned char *data;
+  uint64_t size;
+  uint64_t off;
+  ssize_t iret;
+  
+  if (40 >= (iret = ec->read (ec->cls, &buf, 1024)))
+    return;
+  data = buf;
+  if ((data[0] != 247) || (data[1] != 2))
+    return;                /* cannot be DVI or unsupported version */
+  klen = data[14];
+  size = ec->get_size (ec->cls);
+  if (size > 16 * 1024 * 1024)
+    return; /* too large */
+  if (NULL == (data = malloc ((size_t) size)))
+    return; /* out of memory */
+  memcpy (data, buf, iret);
+  off = iret;
+  while (off < size)
+    {
+      if (0 >= (iret = ec->read (ec->cls, &buf, 16 * 1024)))
+       {
+         free (data);
+         return;
+       }
+      memcpy (&data[off], buf, iret);
+      off += iret;
+    }
+  pos = size - 1;
+  while ((223 == data[pos]) && (pos > 0))
+    pos--;
+  if ((2 != data[pos]) || (pos < 40))
+    goto CLEANUP;
+  pos--;
+  pos -= 4;
+  /* assert pos at 'post_post tag' */
+  if (data[pos] != 249)
+    goto CLEANUP;
+  opos = pos;
+  pos = getIntAt (&data[opos + 1]);
+  if (pos + 25 > size)
+    goto CLEANUP;
+  /* assert pos at 'post' command */
+  if (data[pos] != 248)
+    goto CLEANUP;
+  pageCount = 0;
+  opos = pos;
+  pos = getIntAt (&data[opos + 1]);
+  while (1)
+    {
+      if (UINT32_MAX == pos)
+        break;
+      if (pos + 45 > size)
+       goto CLEANUP;
+      if (data[pos] != 139)     /* expect 'bop' */
+       goto CLEANUP;
+      pageCount++;
+      opos = pos;
+      pos = getIntAt (&data[opos + 41]);
+      if (UINT32_MAX == pos)
+        break;
+      if (pos >= opos)
+       goto CLEANUP;           /* invalid! */
+    }
+  /* ok, now we believe it's a dvi... */
+  snprintf (pages,
+           sizeof (pages),
+           "%u", 
+           pageCount);
+  if (0 != ec->proc (ec->cls, 
+                    "dvi",
+                    EXTRACTOR_METATYPE_PAGE_COUNT,
+                    EXTRACTOR_METAFORMAT_UTF8,
+                    "text/plain",
+                    pages,
+                    strlen (pages) + 1))
+    goto CLEANUP;
+  if (0 != ec->proc (ec->cls, 
+                    "dvi",
+                    EXTRACTOR_METATYPE_MIMETYPE,
+                    EXTRACTOR_METAFORMAT_UTF8,
+                    "text/plain",
+                    "application/x-dvi",
+                    strlen ("application/x-dvi") + 1))
+    goto CLEANUP;
+  {
+    char comment[klen + 1];
+    
+    comment[klen] = '\0';
+    memcpy (comment, &data[15], klen);
+    if (0 != ec->proc (ec->cls, 
+                      "dvi",
+                      EXTRACTOR_METATYPE_COMMENT,
+                      EXTRACTOR_METAFORMAT_C_STRING,
+                      "text/plain",
+                      comment,
+                      klen + 1))
+      goto CLEANUP;
+  }
+  /* try to find PDF/ps special */
+  pos = opos;
+  while (pos < size - 100)
+    {
+      switch (data[pos])
+        {
+        case 139:              /* begin page 'bop', we typically have to skip 
that one to
+                                   find the zzz's */
+          pos += 45;            /* skip bop */
+          break;
+        case 239:              /* zzz1 */
+          len = data[pos + 1];
+          if (pos + 2 + len < size)
+            if (0 != parseZZZ ((const char *) data, pos + 2, len, ec->proc, 
ec->cls))
+             goto CLEANUP;
+          pos += len + 2;
+          break;
+        case 240:              /* zzz2 */
+          len = getShortAt (&data[pos + 1]);
+          if (pos + 3 + len < size)
+            if (0 != parseZZZ ((const char *) data, pos + 3, len, ec->proc, 
ec->cls))
+             goto CLEANUP;
+          pos += len + 3;
+          break;
+        case 241:              /* zzz3, who uses that? */
+          len = (getShortAt (&data[pos + 1])) + 65536 * data[pos + 3];
+          if (pos + 4 + len < size)
+            if (0 != parseZZZ ((const char *) data, pos + 4, len, ec->proc, 
ec->cls))
+             goto CLEANUP;
+          pos += len + 4;
+          break;
+        case 242:              /* zzz4, hurray! */
+          len = getIntAt (&data[pos + 1]);
+          if (pos + 1 + len < size)
+            if (0 != parseZZZ ((const char *) data, pos + 5, len, ec->proc, 
ec->cls))
+             goto CLEANUP;
+          pos += len + 5;
+          break;
+        default:               /* unsupported opcode, abort scan */
+         goto CLEANUP;
+        }
+    }
+ CLEANUP:
+  free (data);
+}
+
+/* end of dvi_extractor.c */

Modified: Extractor/src/plugins/ogg_extractor.c
===================================================================
--- Extractor/src/plugins/ogg_extractor.c       2012-08-18 13:12:14 UTC (rev 
23303)
+++ Extractor/src/plugins/ogg_extractor.c       2012-08-18 14:14:56 UTC (rev 
23304)
@@ -24,7 +24,6 @@
  */
 #include "platform.h"
 #include "extractor.h"
-#include "extractor_plugins.h"
 #include <vorbis/vorbisfile.h>
 
 /**

Deleted: Extractor/src/plugins/old/dvi_extractor.c
===================================================================
--- Extractor/src/plugins/old/dvi_extractor.c   2012-08-18 13:12:14 UTC (rev 
23303)
+++ Extractor/src/plugins/old/dvi_extractor.c   2012-08-18 14:14:56 UTC (rev 
23304)
@@ -1,247 +0,0 @@
-/*
-     This file is part of libextractor.
-     (C) 2002, 2003, 2004 Vidyut Samanta and Christian Grothoff
-
-     libextractor is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     libextractor is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with libextractor; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
- */
-
-#include "platform.h"
-#include "extractor.h"
-
-typedef struct
-{
-  char *text;
-  enum EXTRACTOR_MetaType type;
-} Matches;
-
-static Matches tmap[] = {
-  {"/Title (",    EXTRACTOR_METATYPE_TITLE},
-  {"/Subject (",  EXTRACTOR_METATYPE_SUBJECT},
-  {"/Author (",   EXTRACTOR_METATYPE_AUTHOR_NAME},
-  {"/Keywords (", EXTRACTOR_METATYPE_KEYWORDS},
-  {"/Creator (",  EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE },
-  {"/Producer (", EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE},
-  {NULL, 0},
-};
-
-static int
-parseZZZ (const char *data,
-          size_t pos, size_t len,
-         EXTRACTOR_MetaDataProcessor proc,
-         void *proc_cls)
-{
-  size_t slen;
-  size_t end;
-  int i;
-
-  end = pos + len;
-  slen = strlen ("ps:SDict begin [");
-  if (len <= slen)
-    return 0;
-  if (0 != strncmp ("ps:SDict begin [ ", &data[pos], slen))
-    return 0;
-  pos += slen;
-  while (pos < end)
-    {
-      i = 0;
-      while (tmap[i].text != NULL)
-        {
-          slen = strlen (tmap[i].text);
-          if (pos + slen < end)
-            {
-              if (0 == strncmp (&data[pos], tmap[i].text, slen))
-                {
-                  pos += slen;
-                  slen = pos;
-                  while ((slen < end) && (data[slen] != ')'))
-                    slen++;
-                  slen = slen - pos;
-                 {
-                   char value[slen + 1];
-                   value[slen] = '\0';
-                   memcpy (value, &data[pos], slen);
-                   if (0 != proc (proc_cls, 
-                                  "dvi",
-                                  tmap[i].type,
-                                  EXTRACTOR_METAFORMAT_C_STRING,
-                                  "text/plain",
-                                  value,
-                                  slen +1))
-                     {
-                       return 1;
-                     }
-                 }
-                  pos += slen + 1;
-                }
-            }
-          i++;
-        }
-      pos++;
-    }
-  return 0;
-}
-
-static unsigned int
-getIntAt (const void *data)
-{
-  char p[4];
-
-  memcpy (p, data, 4);          /* ensure alignment! */
-  return *(unsigned int *) &p[0];
-}
-
-static unsigned int
-getShortAt (const void *data)
-{
-  char p[2];
-
-  memcpy (p, data, 2);          /* ensure alignment! */
-  return *(unsigned short *) &p[0];
-}
-
-
-int 
-EXTRACTOR_dvi_extract (const unsigned char *data,
-                      size_t size,
-                      EXTRACTOR_MetaDataProcessor proc,
-                      void *proc_cls,
-                      const char *options)
-{
-  unsigned int klen;
-  uint32_t pos;
-  uint32_t opos;
-  unsigned int len;
-  unsigned int pageCount;
-  char pages[16];
-
-  if (size < 40)
-    return 0;
-  if ((data[0] != 247) || (data[1] != 2))
-    return 0;                /* cannot be dvi or unsupported version */
-  klen = data[14];
-
-  pos = size - 1;
-  while ((data[pos] == 223) && (pos > 0))
-    pos--;
-  if ((data[pos] != 2) || (pos < 40))
-    return 0;
-  pos--;
-  pos -= 4;
-  /* assert pos at 'post_post tag' */
-  if (data[pos] != 249)
-    return 0;
-  opos = pos;
-  pos = ntohl (getIntAt (&data[opos + 1]));
-  if (pos + 25 > size)
-    return 0;
-  /* assert pos at 'post' command */
-  if (data[pos] != 248)
-    return 0;
-  pageCount = 0;
-  opos = pos;
-  pos = ntohl (getIntAt (&data[opos + 1]));
-  while (1)
-    {
-      if (pos == UINT32_MAX)
-        break;
-      if (pos + 45 > size)
-        return 0;
-      if (data[pos] != 139)     /* expect 'bop' */
-        return 0;
-      pageCount++;
-      opos = pos;
-      pos = ntohl (getIntAt (&data[opos + 41]));
-      if (pos == UINT32_MAX)
-        break;
-      if (pos >= opos)
-        return 0;            /* invalid! */
-    }
-  /* ok, now we believe it's a dvi... */
-  snprintf (pages, sizeof(pages), "%u", pageCount);
-  if (0 != proc (proc_cls, 
-                "dvi",
-                EXTRACTOR_METATYPE_PAGE_COUNT,
-                EXTRACTOR_METAFORMAT_UTF8,
-                "text/plain",
-                pages,
-                strlen (pages) +1))
-    return 1;
-  if (0 != proc (proc_cls, 
-                "dvi",
-                EXTRACTOR_METATYPE_MIMETYPE,
-                EXTRACTOR_METAFORMAT_UTF8,
-                "text/plain",
-                "application/x-dvi",
-                strlen ("application/x-dvi") +1))
-    return 1;
-  {
-    char comment[klen + 1];
-    
-    comment[klen] = '\0';
-    memcpy (comment, &data[15], klen);
-    if (0 != proc (proc_cls, 
-                  "dvi",
-                  EXTRACTOR_METATYPE_COMMENT,
-                  EXTRACTOR_METAFORMAT_UTF8,
-                  "text/plain",
-                  comment,
-                  klen +1))
-      return 1;
-  }
-  /* try to find PDF/ps special */
-  pos = opos;
-  while (pos < size - 100)
-    {
-      switch (data[pos])
-        {
-        case 139:              /* begin page 'bop', we typically have to skip 
that one to
-                                   find the zzz's */
-          pos += 45;            /* skip bop */
-          break;
-        case 239:              /* zzz1 */
-          len = data[pos + 1];
-          if (pos + 2 + len < size)
-            if (0 != parseZZZ ((const char *) data, pos + 2, len, proc, 
proc_cls))
-             return 1;
-          pos += len + 2;
-          break;
-        case 240:              /* zzz2 */
-          len = ntohs (getShortAt (&data[pos + 1]));
-          if (pos + 3 + len < size)
-            if (0 != parseZZZ ((const char *) data, pos + 3, len, proc, 
proc_cls))
-             return 1;
-          pos += len + 3;
-          break;
-        case 241:              /* zzz3, who uses that? */
-          len = (ntohs (getShortAt (&data[pos + 1]))) + 65536 * data[pos + 3];
-          if (pos + 4 + len < size)
-            if (0 != parseZZZ ((const char *) data, pos + 4, len, proc, 
proc_cls))
-             return 1;
-          pos += len + 4;
-          break;
-        case 242:              /* zzz4, hurray! */
-          len = ntohl (getIntAt (&data[pos + 1]));
-          if (pos + 1 + len < size)
-            if (0 != parseZZZ ((const char *) data, pos + 5, len, proc, 
proc_cls))
-             return 1;
-          pos += len + 5;
-          break;
-        default:               /* unsupported opcode, abort scan */
-          return 0;
-        }
-    }
-  return 0;
-}

Deleted: Extractor/src/plugins/old/id3_extractor.c
===================================================================
--- Extractor/src/plugins/old/id3_extractor.c   2012-08-18 13:12:14 UTC (rev 
23303)
+++ Extractor/src/plugins/old/id3_extractor.c   2012-08-18 14:14:56 UTC (rev 
23304)
@@ -1,306 +0,0 @@
-/*
-     This file is part of libextractor.
-     (C) 2002, 2003, 2004, 2006, 2009, 2010 Vidyut Samanta and Christian 
Grothoff
-
-     libextractor is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     libextractor is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with libextractor; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-
- */
-
-#include "platform.h"
-#include "extractor.h"
-#include "convert.h"
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-#include "extractor_plugins.h"
-
-typedef struct
-{
-  char *title;
-  char *artist;
-  char *album;
-  char *year;
-  char *comment;
-  const char *genre;
-  unsigned int track_number;
-} id3tag;
-
-static const char *const genre_names[] = {
-  gettext_noop ("Blues"),
-  gettext_noop ("Classic Rock"),
-  gettext_noop ("Country"),
-  gettext_noop ("Dance"),
-  gettext_noop ("Disco"),
-  gettext_noop ("Funk"),
-  gettext_noop ("Grunge"),
-  gettext_noop ("Hip-Hop"),
-  gettext_noop ("Jazz"),
-  gettext_noop ("Metal"),
-  gettext_noop ("New Age"),
-  gettext_noop ("Oldies"),
-  gettext_noop ("Other"),
-  gettext_noop ("Pop"),
-  gettext_noop ("R&B"),
-  gettext_noop ("Rap"),
-  gettext_noop ("Reggae"),
-  gettext_noop ("Rock"),
-  gettext_noop ("Techno"),
-  gettext_noop ("Industrial"),
-  gettext_noop ("Alternative"),
-  gettext_noop ("Ska"),
-  gettext_noop ("Death Metal"),
-  gettext_noop ("Pranks"),
-  gettext_noop ("Soundtrack"),
-  gettext_noop ("Euro-Techno"),
-  gettext_noop ("Ambient"),
-  gettext_noop ("Trip-Hop"),
-  gettext_noop ("Vocal"),
-  gettext_noop ("Jazz+Funk"),
-  gettext_noop ("Fusion"),
-  gettext_noop ("Trance"),
-  gettext_noop ("Classical"),
-  gettext_noop ("Instrumental"),
-  gettext_noop ("Acid"),
-  gettext_noop ("House"),
-  gettext_noop ("Game"),
-  gettext_noop ("Sound Clip"),
-  gettext_noop ("Gospel"),
-  gettext_noop ("Noise"),
-  gettext_noop ("Alt. Rock"),
-  gettext_noop ("Bass"),
-  gettext_noop ("Soul"),
-  gettext_noop ("Punk"),
-  gettext_noop ("Space"),
-  gettext_noop ("Meditative"),
-  gettext_noop ("Instrumental Pop"),
-  gettext_noop ("Instrumental Rock"),
-  gettext_noop ("Ethnic"),
-  gettext_noop ("Gothic"),
-  gettext_noop ("Darkwave"),
-  gettext_noop ("Techno-Industrial"),
-  gettext_noop ("Electronic"),
-  gettext_noop ("Pop-Folk"),
-  gettext_noop ("Eurodance"),
-  gettext_noop ("Dream"),
-  gettext_noop ("Southern Rock"),
-  gettext_noop ("Comedy"),
-  gettext_noop ("Cult"),
-  gettext_noop ("Gangsta Rap"),
-  gettext_noop ("Top 40"),
-  gettext_noop ("Christian Rap"),
-  gettext_noop ("Pop/Funk"),
-  gettext_noop ("Jungle"),
-  gettext_noop ("Native American"),
-  gettext_noop ("Cabaret"),
-  gettext_noop ("New Wave"),
-  gettext_noop ("Psychedelic"),
-  gettext_noop ("Rave"),
-  gettext_noop ("Showtunes"),
-  gettext_noop ("Trailer"),
-  gettext_noop ("Lo-Fi"),
-  gettext_noop ("Tribal"),
-  gettext_noop ("Acid Punk"),
-  gettext_noop ("Acid Jazz"),
-  gettext_noop ("Polka"),
-  gettext_noop ("Retro"),
-  gettext_noop ("Musical"),
-  gettext_noop ("Rock & Roll"),
-  gettext_noop ("Hard Rock"),
-  gettext_noop ("Folk"),
-  gettext_noop ("Folk/Rock"),
-  gettext_noop ("National Folk"),
-  gettext_noop ("Swing"),
-  gettext_noop ("Fast-Fusion"),
-  gettext_noop ("Bebob"),
-  gettext_noop ("Latin"),
-  gettext_noop ("Revival"),
-  gettext_noop ("Celtic"),
-  gettext_noop ("Bluegrass"),
-  gettext_noop ("Avantgarde"),
-  gettext_noop ("Gothic Rock"),
-  gettext_noop ("Progressive Rock"),
-  gettext_noop ("Psychedelic Rock"),
-  gettext_noop ("Symphonic Rock"),
-  gettext_noop ("Slow Rock"),
-  gettext_noop ("Big Band"),
-  gettext_noop ("Chorus"),
-  gettext_noop ("Easy Listening"),
-  gettext_noop ("Acoustic"),
-  gettext_noop ("Humour"),
-  gettext_noop ("Speech"),
-  gettext_noop ("Chanson"),
-  gettext_noop ("Opera"),
-  gettext_noop ("Chamber Music"),
-  gettext_noop ("Sonata"),
-  gettext_noop ("Symphony"),
-  gettext_noop ("Booty Bass"),
-  gettext_noop ("Primus"),
-  gettext_noop ("Porn Groove"),
-  gettext_noop ("Satire"),
-  gettext_noop ("Slow Jam"),
-  gettext_noop ("Club"),
-  gettext_noop ("Tango"),
-  gettext_noop ("Samba"),
-  gettext_noop ("Folklore"),
-  gettext_noop ("Ballad"),
-  gettext_noop ("Power Ballad"),
-  gettext_noop ("Rhythmic Soul"),
-  gettext_noop ("Freestyle"),
-  gettext_noop ("Duet"),
-  gettext_noop ("Punk Rock"),
-  gettext_noop ("Drum Solo"),
-  gettext_noop ("A Cappella"),
-  gettext_noop ("Euro-House"),
-  gettext_noop ("Dance Hall"),
-  gettext_noop ("Goa"),
-  gettext_noop ("Drum & Bass"),
-  gettext_noop ("Club-House"),
-  gettext_noop ("Hardcore"),
-  gettext_noop ("Terror"),
-  gettext_noop ("Indie"),
-  gettext_noop ("BritPop"),
-  gettext_noop ("Negerpunk"),
-  gettext_noop ("Polsk Punk"),
-  gettext_noop ("Beat"),
-  gettext_noop ("Christian Gangsta Rap"),
-  gettext_noop ("Heavy Metal"),
-  gettext_noop ("Black Metal"),
-  gettext_noop ("Crossover"),
-  gettext_noop ("Contemporary Christian"),
-  gettext_noop ("Christian Rock"),
-  gettext_noop ("Merengue"),
-  gettext_noop ("Salsa"),
-  gettext_noop ("Thrash Metal"),
-  gettext_noop ("Anime"),
-  gettext_noop ("JPop"),
-  gettext_noop ("Synthpop"),
-};
-
-#define GENRE_NAME_COUNT \
-    ((unsigned int)(sizeof genre_names / sizeof (const char *const)))
-
-
-
-#define OK         0
-#define INVALID_ID3 1
-
-static void
-trim (char *k)
-{
-  if (k == NULL)
-    return;
-  while ((strlen (k) > 0) && (isspace ((unsigned char) k[strlen (k) - 1])))
-    k[strlen (k) - 1] = '\0';
-}
-
-static int
-get_id3 (const char *data, int64_t offset, int64_t size, id3tag *id3)
-{
-  const char *pos;
-
-  if (size < 128)
-    return INVALID_ID3;
-
-  pos = &data[offset];
-  if (0 != strncmp ("TAG", pos, 3))
-    return INVALID_ID3;
-  pos += 3;
-
-  id3->title = EXTRACTOR_common_convert_to_utf8 (pos, 30, "ISO-8859-1");
-  trim (id3->title);
-  pos += 30;
-  id3->artist = EXTRACTOR_common_convert_to_utf8 (pos, 30, "ISO-8859-1");
-  trim (id3->artist);
-  pos += 30;
-  id3->album = EXTRACTOR_common_convert_to_utf8 (pos, 30, "ISO-8859-1");
-  trim (id3->album);
-  pos += 30;
-  id3->year = EXTRACTOR_common_convert_to_utf8 (pos, 4, "ISO-8859-1");
-  trim (id3->year);
-  pos += 4;
-  id3->comment = EXTRACTOR_common_convert_to_utf8 (pos, 30, "ISO-8859-1");
-  trim (id3->comment);
-  if ( (pos[28] == '\0') &&
-       (pos[29] != '\0') )
-    {
-      /* ID3v1.1 */
-      id3->track_number = pos[29];
-    }
-  else
-    {
-      id3->track_number = 0;
-    }
-  pos += 30;
-  id3->genre = "";
-  if (pos[0] < GENRE_NAME_COUNT)
-    id3->genre = dgettext (PACKAGE, genre_names[(unsigned) pos[0]]);
-  return OK;
-}
-
-
-#define ADD(s,t) do { if ( (s != NULL) && (strlen(s) > 0) && (0 != proc 
(proc_cls, "id3", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen(s)+1))) 
return 1; } while (0)
-
-
-int
-EXTRACTOR_id3_extract_method (struct EXTRACTOR_PluginList *plugin,
-    EXTRACTOR_MetaDataProcessor proc, void *proc_cls)
-{
-  id3tag info;
-  int64_t fsize;
-  unsigned char *data;
-  char track[16];
-
-  if (plugin == NULL)
-    return 1;
-
-  pl_seek (plugin, -128, SEEK_END);
-  fsize = pl_get_fsize (plugin);
-  if (fsize <= 0)
-    return 1;
-
-  if (128 != pl_read (plugin, &data, 128))
-    return 1;
-
-  memset (&info, 0, sizeof (info));
-
-  if (OK != get_id3 ((const char *) data, 0, 128, &info))
-    return 1;
-  ADD (info.title, EXTRACTOR_METATYPE_TITLE);
-  ADD (info.artist, EXTRACTOR_METATYPE_ARTIST);
-  ADD (info.album, EXTRACTOR_METATYPE_ALBUM);
-  ADD (info.year, EXTRACTOR_METATYPE_PUBLICATION_YEAR);
-  ADD (info.genre, EXTRACTOR_METATYPE_GENRE);
-  ADD (info.comment, EXTRACTOR_METATYPE_COMMENT);
-  if (info.track_number != 0)
-  {
-    snprintf (track, sizeof(track), "%u", info.track_number);
-    ADD (track, EXTRACTOR_METATYPE_TRACK_NUMBER);
-  }
-
-  if (info.title != NULL) free (info.title);
-  if (info.year != NULL) free (info.year);
-  if (info.album != NULL) free (info.album);
-  if (info.artist != NULL) free (info.artist);
-  if (info.comment != NULL) free (info.comment);
-  
-  return 1;
-}
-
-/* end of id3_extractor.c */

Deleted: Extractor/src/plugins/old/id3v2_extractor.c
===================================================================
--- Extractor/src/plugins/old/id3v2_extractor.c 2012-08-18 13:12:14 UTC (rev 
23303)
+++ Extractor/src/plugins/old/id3v2_extractor.c 2012-08-18 14:14:56 UTC (rev 
23304)
@@ -1,753 +0,0 @@
-/*
-     This file is part of libextractor.
-     (C) 2002, 2003, 2004, 2006, 2009 Vidyut Samanta and Christian Grothoff
-
-     libextractor is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     libextractor is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with libextractor; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
-
- */
-
-#include "platform.h"
-#include "extractor.h"
-#ifndef MINGW
-#include <sys/mman.h>
-#endif
-#include "convert.h"
-
-#include "extractor_plugins.h"
-
-#define DEBUG_EXTRACT_ID3v2 0
-
-enum Id3v2Fmt
-  {
-    T, /* simple, 0-terminated string, prefixed by encoding */
-    U, /* 0-terminated ASCII string, no encoding */
-    UL, /* unsync'ed lyrics */
-    SL, /* sync'ed lyrics */
-    L, /* string with language prefix */
-    I /* image */
-  };
-
-typedef struct
-{
-  const char *text;
-  enum EXTRACTOR_MetaType type;
-  enum Id3v2Fmt fmt;
-} Matches;
-
-static Matches tmap[] = {
-  /* skipping UFI */
-  {"TT1 ", EXTRACTOR_METATYPE_SECTION, T},
-  {"TT2 ", EXTRACTOR_METATYPE_TITLE, T},
-  {"TT3 ", EXTRACTOR_METATYPE_SONG_VERSION, T},
-  {"TP1 ", EXTRACTOR_METATYPE_ARTIST, T},
-  {"TP2 ", EXTRACTOR_METATYPE_PERFORMER, T},
-  {"TP3 ", EXTRACTOR_METATYPE_CONDUCTOR, T},
-  {"TP4 ", EXTRACTOR_METATYPE_INTERPRETATION, T},
-  {"TCM ", EXTRACTOR_METATYPE_COMPOSER, T},
-  {"TXT ", EXTRACTOR_METATYPE_WRITER, T},
-  {"TLA ", EXTRACTOR_METATYPE_LANGUAGE, T},
-  {"TCO ", EXTRACTOR_METATYPE_GENRE, T},
-  {"TAL ", EXTRACTOR_METATYPE_ALBUM, T},
-  {"TPA ", EXTRACTOR_METATYPE_DISC_NUMBER, T},
-  {"TRK ", EXTRACTOR_METATYPE_TRACK_NUMBER, T},
-  {"TRC ", EXTRACTOR_METATYPE_ISRC, T},
-  {"TYE ", EXTRACTOR_METATYPE_PUBLICATION_YEAR, T},
-  /*
-    FIXME: these two and TYE should be combined into
-    the actual publication date (if TRD is missing)
-  {"TDA ", EXTRACTOR_METATYPE_PUBLICATION_DATE},
-  {"TIM ", EXTRACTOR_METATYPE_PUBLICATION_DATE},
-  */
-  {"TRD ", EXTRACTOR_METATYPE_CREATION_TIME, T},
-  {"TMT ", EXTRACTOR_METATYPE_SOURCE, T},
-  {"TFT ", EXTRACTOR_METATYPE_FORMAT_VERSION, T},
-  {"TBP ", EXTRACTOR_METATYPE_BEATS_PER_MINUTE, T},
-  {"TCR ", EXTRACTOR_METATYPE_COPYRIGHT, T},
-  {"TPB ", EXTRACTOR_METATYPE_PUBLISHER, T},
-  {"TEN ", EXTRACTOR_METATYPE_ENCODED_BY, T},
-  {"TSS ", EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE, T},
-  {"TOF ", EXTRACTOR_METATYPE_FILENAME, T},
-  {"TLE ", EXTRACTOR_METATYPE_DURATION, T}, /* FIXME: should append 'ms' as 
unit */
-  {"TSI ", EXTRACTOR_METATYPE_EMBEDDED_FILE_SIZE, T},
-  /* skipping TDY, TKE */
-  {"TOT ", EXTRACTOR_METATYPE_ORIGINAL_TITLE, T},
-  {"TOA ", EXTRACTOR_METATYPE_ORIGINAL_ARTIST, T},
-  {"TOL ", EXTRACTOR_METATYPE_ORIGINAL_WRITER, T},
-  {"TOR ", EXTRACTOR_METATYPE_ORIGINAL_RELEASE_YEAR, T},
-  /* skipping TXX */
-
-  {"WAF ", EXTRACTOR_METATYPE_URL, U},
-  {"WAR ", EXTRACTOR_METATYPE_URL, U},
-  {"WAS ", EXTRACTOR_METATYPE_URL, U},
-  {"WCM ", EXTRACTOR_METATYPE_URL, U},
-  {"WCP ", EXTRACTOR_METATYPE_RIGHTS, U},
-  {"WCB ", EXTRACTOR_METATYPE_URL, U},
-  /* skipping WXX */
-  {"IPL ", EXTRACTOR_METATYPE_CONTRIBUTOR_NAME, T},
-  /* skipping MCI */
-  /* skipping ETC */
-  /* skipping MLL */
-  /* skipping STC */
-  {"ULT ", EXTRACTOR_METATYPE_LYRICS, UL},
-  {"SLT ", EXTRACTOR_METATYPE_LYRICS, SL},
-  {"COM ", EXTRACTOR_METATYPE_COMMENT, L},
-  /* skipping RVA */
-  /* skipping EQU */
-  /* skipping REV */
-  {"PIC ", EXTRACTOR_METATYPE_PICTURE, I},
-  /* skipping GEN */
-  /* {"CNT ", EXTRACTOR_METATYPE_PLAY_COUNTER, XXX}, */
-  /* {"POP ", EXTRACTOR_METATYPE_POPULARITY_METER, XXX}, */
-  /* skipping BUF */
-  /* skipping CRM */
-  /* skipping CRA */
-  /* {"LNK ", EXTRACTOR_METATYPE_URL, XXX}, */
-
-
-  {"TALB", EXTRACTOR_METATYPE_ALBUM, T},
-  {"TBPM", EXTRACTOR_METATYPE_BEATS_PER_MINUTE, T},
-  {"TCOM", EXTRACTOR_METATYPE_COMPOSER, T},
-  {"TCON", EXTRACTOR_METATYPE_SONG_VERSION, T},
-  {"TCOP", EXTRACTOR_METATYPE_COPYRIGHT, T},
-  {"TDAT", EXTRACTOR_METATYPE_CREATION_DATE, T}, /* idv23 only */
-  /* TDLY */
-  {"TENC", EXTRACTOR_METATYPE_ENCODED_BY, T},
-  {"TEXT", EXTRACTOR_METATYPE_WRITER, T},  
-  {"TFLT", EXTRACTOR_METATYPE_FORMAT_VERSION, T},
-  /* TIME, idv23 only */
-  {"TIT1", EXTRACTOR_METATYPE_SECTION, T},
-  {"TIT2", EXTRACTOR_METATYPE_TITLE, T},
-  {"TIT3", EXTRACTOR_METATYPE_SONG_VERSION, T},
-  /* TKEY */
-  {"TLAN", EXTRACTOR_METATYPE_LANGUAGE, T},
-  {"TLEN", EXTRACTOR_METATYPE_DURATION, T}, /* FIXME: should append 'ms' as 
unit */
-  {"TMED", EXTRACTOR_METATYPE_SOURCE, T}, 
-  {"TOAL", EXTRACTOR_METATYPE_ORIGINAL_TITLE, T},
-  {"TOFN", EXTRACTOR_METATYPE_ORIGINAL_ARTIST, T},
-  {"TOLY", EXTRACTOR_METATYPE_ORIGINAL_WRITER, T},
-  {"TOPE", EXTRACTOR_METATYPE_ORIGINAL_PERFORMER, T},
-  {"TORY", EXTRACTOR_METATYPE_ORIGINAL_RELEASE_YEAR, T}, /* idv23 only */
-  {"TOWN", EXTRACTOR_METATYPE_LICENSEE, T},
-  {"TPE1", EXTRACTOR_METATYPE_ARTIST, T},
-  {"TPE2", EXTRACTOR_METATYPE_PERFORMER, T},
-  {"TPE3", EXTRACTOR_METATYPE_CONDUCTOR, T},
-  {"TPE4", EXTRACTOR_METATYPE_INTERPRETATION, T}, 
-  {"TPOS", EXTRACTOR_METATYPE_DISC_NUMBER, T},
-  {"TPUB", EXTRACTOR_METATYPE_PUBLISHER, T},
-  {"TRCK", EXTRACTOR_METATYPE_TRACK_NUMBER, T},
-  /* TRDA, idv23 only */
-  {"TRSN", EXTRACTOR_METATYPE_NETWORK_NAME, T},
-  /* TRSO */
-  {"TSIZ", EXTRACTOR_METATYPE_EMBEDDED_FILE_SIZE, T}, /* idv23 only */
-  {"TSRC", EXTRACTOR_METATYPE_ISRC, T},
-  /* TSSE */
-  {"TYER", EXTRACTOR_METATYPE_PUBLICATION_YEAR, T}, /* idv23 only */
-  {"WCOM", EXTRACTOR_METATYPE_URL, U},
-  {"WCOP", EXTRACTOR_METATYPE_URL, U},
-  {"WOAF", EXTRACTOR_METATYPE_URL, U},
-  {"WOAS", EXTRACTOR_METATYPE_URL, U},
-  {"WORS", EXTRACTOR_METATYPE_URL, U},
-  {"WPAY", EXTRACTOR_METATYPE_URL, U},
-  {"WPUB", EXTRACTOR_METATYPE_URL, U},
-  {"WXXX", EXTRACTOR_METATYPE_URL, T},
-  {"IPLS", EXTRACTOR_METATYPE_CONTRIBUTOR_NAME, T}, /* idv23 only */
-  /* ... */
-  {"USLT", EXTRACTOR_METATYPE_LYRICS, UL },
-  {"SYLT", EXTRACTOR_METATYPE_LYRICS, SL },
-  {"COMM", EXTRACTOR_METATYPE_COMMENT, L},
-  /* ... */
-  {"APIC", EXTRACTOR_METATYPE_PICTURE, I},
-  /* ... */
-  {"LINK", EXTRACTOR_METATYPE_URL, U},
-  /* ... */
-  {"USER", EXTRACTOR_METATYPE_LICENSE, T},
-  /* ... */
-
-  /* new frames in id3v24 */
-  /* ASPI, EQU2, RVA2, SEEK, SIGN, TDEN */
-  {"TDOR", EXTRACTOR_METATYPE_PUBLICATION_DATE, T},
-  /* TDRC, TDRL, TDTG */
-  {"TIPL", EXTRACTOR_METATYPE_CONTRIBUTOR_NAME, T},
-  {"TMCL", EXTRACTOR_METATYPE_MUSICIAN_CREDITS_LIST, T},
-  {"TMOO", EXTRACTOR_METATYPE_MOOD, T},
-  {"TPRO", EXTRACTOR_METATYPE_COPYRIGHT, T},
-  {"TSOA", EXTRACTOR_METATYPE_ALBUM, T},
-  {"TSOP", EXTRACTOR_METATYPE_PERFORMER, T},
-  {"TSOT", EXTRACTOR_METATYPE_TITLE, T},
-  {"TSST", EXTRACTOR_METATYPE_SUBTITLE, T},
-
-  {NULL, 0, T},
-};
-
-struct id3v2_state
-{
-  int state;
-  unsigned int tsize;
-  size_t csize;
-  char id[4];
-  int32_t ti;
-  char ver;
-  char extended_header;
-  uint16_t frame_flags;
-  char *mime;
-};
-
-enum ID3v2State
-{
-  ID3V2_INVALID = -1,
-  ID3V2_READING_HEADER = 0,
-  ID3V2_READING_FRAME_HEADER,
-  ID3V23_READING_EXTENDED_HEADER,
-  ID3V24_READING_EXTENDED_HEADER,
-  ID3V2_READING_FRAME
-};
-
-struct id3v2_state *
-EXTRACTOR_id3v2_init_state_method ()
-{
-  struct id3v2_state *state;
-  state = malloc (sizeof (struct id3v2_state));
-  if (state == NULL)
-    return NULL;
-  memset (state, 0, sizeof (struct id3v2_state));
-  state->state = ID3V2_READING_HEADER;
-  state->ti = -1;
-  state->mime = NULL;
-  return state;
-}
-
-static int
-EXTRACTOR_id3v2_discard_state_method (struct id3v2_state *state)
-{
-  if (state != NULL)
-  {
-    if (state->mime != NULL)
-      free (state->mime);
-    free (state);
-  }
-  return 1;
-}
-
-static int
-find_type (const char *id, size_t len)
-{
-  int i;
-  for (i = 0; tmap[i].text != NULL; i++)
-    if (0 == strncmp (tmap[i].text, id, len))
-      return i;
-  return -1;
-}
-
-int
-EXTRACTOR_id3v2_extract_method (struct EXTRACTOR_PluginList *plugin,
-    EXTRACTOR_MetaDataProcessor proc, void *proc_cls)
-{
-  int64_t offset = 0;
-  struct id3v2_state *state;
-  unsigned char *data;
-  char *word = NULL;
-  unsigned int off;
-  enum EXTRACTOR_MetaType type;
-  unsigned char picture_type;
-
-  if (plugin == NULL)
-    return 1;
-
-  state = EXTRACTOR_id3v2_init_state_method ();
-  if (state == NULL)
-    return 1;
-
-  while (1)
-  {
-    switch (state->state)
-    {
-    case ID3V2_INVALID:
-      plugin->seek_request = -1;
-      return EXTRACTOR_id3v2_discard_state_method (state);
-    case ID3V2_READING_HEADER:
-      /* TODO: support id3v24 tags at the end of file. Here's a quote from id3 
faq:
-       * Q: Where is an ID3v2 tag located in an MP3 file?
-       * A: It is most likely located at the beginning of the file. Look for 
the
-       *    marker "ID3" in the first 3 bytes of the file. If it's not there, 
it
-       *    could be at the end of the file (if the tag is ID3v2.4). Look for 
the
-       *    marker "3DI" 10 bytes from the end of the file, or 10 bytes before 
the
-       *    beginning of an ID3v1 tag. Finally it is possible to embed ID3v2 
tags
-       *    in the actual MPEG stream, on an MPEG frame boundry. Almost nobody 
does
-       *    this.
-       * Parsing of such tags will not be completely correct, because we can't
-       * seek backwards. (OK, now we CAN seek backwards, but we still need to 
mind the
-       * chunk size). We will have to seek to file_size - chunk_size instead
-       * (by the way, chunk size is theoretically unknown, LE is free to use 
any chunk
-       * size, even though plugins often make assumptions about chunk size 
being large
-       * enough to make one atomic read without seeking, if offset == 0) and 
search
-       * for id3v1 at -128 offset, then look if there's a 3DI marker 10 bytes 
before
-       *  it (or 10 bytes before the end of file, if id3v1 is not there; not 
sure
-       * about APETAGs; we should probably just scan byte-by-byte from the end 
of file,
-       * until we hit 3DI, or reach the offset == 0), and use it set offset to 
the
-       * start of ID3v24 header, adjust the following file_position check and 
data
-       * indices (use offset), and otherwise proceed as normal (maybe file 
size checks
-       * along the way will have to be adjusted by -1, or made ">" instead of 
">=";
-       * these problems do not arise for tags at the beginning of the file, 
since
-       * audio itself is usually at least 1-byte long; when the tag is at the 
end of
-       * file, these checks will have to be 100% correct).
-       * If there are two tags (at the beginning and at the end of the file),
-       * a SEEK in the one at the beginning of the file can be used to seek to 
the
-       * one at the end.
-       */
-      /* TODO: merge id3v1 and id3v2 parsers. There's an "update" flag in 
id3v2 that
-       * tells the parser to augument id3v1 values with the values from id3v2 
(if this
-       * flag is not set, id3v2 parser must discard id3v1 data).
-       * At the moment id3v1 and id3v2 are parsed separately, and update flag 
is ignored.
-       */
-      if (10 != pl_read (plugin, &data, 10))
-      {
-        state->state = ID3V2_INVALID;
-        break;
-      }
-      if ((data[0] != 0x49) || (data[1] != 0x44) || (data[2] != 0x33) || 
((data[3] != 0x02) && (data[3] != 0x03) && (data[3] != 0x04))/* || (data[4] != 
0x00) minor verisons are backward-compatible*/)
-      {
-        state->state = ID3V2_INVALID;
-        break;
-      }
-      state->ver = data[3];
-      if (state->ver == 0x02)
-      {
-        state->extended_header = 0;
-      }
-      else if ((state->ver == 0x03) || (state->ver == 0x04))
-      {
-        if ((data[5] & 0x80) > 0)
-        {
-          /* unsync is not supported in id3v23 or id3v24*/
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        state->extended_header = (data[5] & 0x40) > 0;
-        if ((data[5] & 0x20) > 0)
-        {
-          /* experimental is not supported in id3v23 or id3v24*/
-          state->state = ID3V2_INVALID;
-          break;
-        }
-      }
-      state->tsize = (((data[6] & 0x7F) << 21) | ((data[7] & 0x7F) << 14) | 
((data[8] & 0x7F) << 07) | ((data[9] & 0x7F) << 00));
-      if (state->ver == 0x03 && state->extended_header)
-        state->state = ID3V23_READING_EXTENDED_HEADER;
-      else if (state->ver == 0x04 && state->extended_header)
-        state->state = ID3V24_READING_EXTENDED_HEADER;
-      else
-        state->state = ID3V2_READING_FRAME_HEADER;
-      break;
-    case ID3V23_READING_EXTENDED_HEADER:
-      if (10 != pl_read (plugin, &data, 10))
-      {
-        state->state = ID3V2_INVALID;
-        break;
-      }
-      if (state->ver == 0x03 && state->extended_header)
-      {
-        uint32_t extended_header_size;
-        extended_header_size = (((data[0]) << 24) | ((data[1]) << 16) | 
((data[2]) << 8) | ((data[3]) << 0));
-        // padding = (((data[6]) << 24) | ((data[7]) << 16) | ((data[8]) << 8) 
| ((data[9]) << 0));
-        if (extended_header_size - 6 != pl_read (plugin, &data, 
extended_header_size - 6))
-        {
-          state->state = ID3V2_INVALID;
-          break;
-        }
-      }
-      break;
-    case ID3V24_READING_EXTENDED_HEADER:
-      if (4 != pl_read (plugin, &data, 4))
-      {
-        state->state = ID3V2_INVALID;
-        break;
-      }
-      if ((state->ver == 0x04) && (state->extended_header))
-      {
-       uint32_t extended_header_size;
-
-        extended_header_size = (((data[0]) << 24) | 
-                               ((data[1]) << 16) | 
-                               ((data[2]) << 8) | 
-                               ((data[3]) << 0));
-        if (extended_header_size != pl_read (plugin, &data, 
extended_header_size))
-        {
-          state->state = ID3V2_INVALID;
-          break;
-        }
-      }
-      break;
-    case ID3V2_READING_FRAME_HEADER:
-      if (state->ver == 0x02)
-      {
-        if (6 != pl_read (plugin, &data, 6))
-        {
-          state->state = ID3V2_INVALID;
-          break;
-        }
-      }
-      else if ((state->ver == 0x03) || (state->ver == 0x04))
-      {
-        if (10 != pl_read (plugin, &data, 10))
-        {
-          state->state = ID3V2_INVALID;
-          break;
-        }
-      }
-      if (state->ver == 0x02)
-      {
-        memcpy (state->id, &data[0], 3);
-        state->csize = (data[3] << 16) + (data[4] << 8) + data[5];
-        if (state->csize == 0)
-        {
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        state->frame_flags = 0;
-      }
-      else if ((state->ver == 0x03) || (state->ver == 0x04))
-      {
-        memcpy (state->id, &data[0], 4);
-        if (state->ver == 0x03)
-          state->csize = (data[4] << 24) + (data[5] << 16) + (data[6] << 8) + 
data[7];
-        else if (state->ver == 0x04)
-          state->csize = ((data[4] & 0x7F) << 21) | ((data[5] & 0x7F) << 14) | 
((data[6] & 0x7F) << 07) | ((data[7] & 0x7F) << 00);
-        if (state->csize == 0)
-        {
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        state->frame_flags = (data[8] << 8) + data[9];
-        if (state->ver == 0x03)
-        {
-          if (((state->frame_flags & 0x80) > 0) /* compressed, not yet 
supported */ ||
-              ((state->frame_flags & 0x40) > 0) /* encrypted, not supported */)
-          {
-            /* Skip to next frame header */
-            if (state->csize != pl_read (plugin, &data, state->csize))
-              state->state = ID3V2_INVALID;
-            break;
-          }
-        }
-        else if (state->ver == 0x04)
-        {
-          if (((state->frame_flags & 0x08) > 0) /* compressed, not yet 
supported */ ||
-              ((state->frame_flags & 0x04) > 0) /* encrypted, not supported */ 
||
-              ((state->frame_flags & 0x02) > 0) /* unsynchronization, not 
supported */)
-          {
-            /* Skip to next frame header */
-            if (state->csize != pl_read (plugin, &data, state->csize))
-              state->state = ID3V2_INVALID;
-            break;
-          }
-          if ((state->frame_flags & 0x01) > 0)
-          {
-            /* Skip data length indicator */
-            state->csize -= 4;
-            if (4 != pl_read (plugin, &data, 4))
-            {
-              state->state = ID3V2_INVALID;
-              break;
-            }
-          }
-        }
-      }
-
-      state->ti = find_type ((const char *) state->id, (state->ver == 0x02) ? 
3 : (((state->ver == 0x03) || (state->ver == 0x04)) ? 4 : 0));
-      if (state->ti == -1)
-      {
-        if (state->csize != pl_read (plugin, &data, state->csize))
-          state->state = ID3V2_INVALID;
-        break;
-      }
-      state->state = ID3V2_READING_FRAME;
-      break;
-    case ID3V2_READING_FRAME:
-      if (0 > (offset = pl_get_pos (plugin)))
-      {
-        state->state = ID3V2_INVALID;
-        break;
-      }
-      word = NULL;
-      if (((state->ver == 0x03) && ((state->frame_flags & 0x20) > 0)) ||
-          ((state->ver == 0x04) && ((state->frame_flags & 0x40) > 0)))
-      {
-        /* "group" identifier, skip a byte */
-        if (1 != pl_read (plugin, &data, 1))
-        {
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        state->csize--;
-      }
-      if (state->csize != pl_read (plugin, &data, state->csize))
-      {
-        state->state = ID3V2_INVALID;
-        break;
-      }
-      switch (tmap[state->ti].fmt)
-      {
-      case T:
-        if (data[0] == 0x00)
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[1],
-              state->csize - 1, "ISO-8859-1");
-        else if (data[0] == 0x01)
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[1],
-              state->csize - 1, "UCS-2");
-        else if ((state->ver == 0x04) && (data[0] == 0x02))
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[1],
-              state->csize - 1, "UTF-16BE");
-        else if ((state->ver == 0x04) && (data[0] == 0x03))
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[1],
-              state->csize - 1, "UTF-8");
-        else
-          /* bad encoding byte, try to convert from iso-8859-1 */
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[1],
-              state->csize - 1, "ISO-8859-1");
-        break;
-      case U:
-        word = EXTRACTOR_common_convert_to_utf8 ((const char *) data,
-            state->csize, "ISO-8859-1");
-        break;
-      case UL:
-        if (state->csize < 6)
-        {
-          /* malformed */
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        /* find end of description */
-        off = 4;
-        while ((off < state->csize) && (data[off] != '\0'))
-          off++;
-        if ((off >= state->csize) || (data[off] != '\0'))
-        {
-          /* malformed */
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        off++;
-        if (data[0] == 0x00)
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "ISO-8859-1");
-        else if (data[0] == 0x01)
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "UCS-2");
-        else if ((state->ver == 0x04) && (data[0] == 0x02))
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "UTF-16BE");
-        else if ((state->ver == 0x04) && (data[0] == 0x03))
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "UTF-8");
-        else
-          /* bad encoding byte, try to convert from iso-8859-1 */
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "ISO-8859-1");
-        break;
-      case SL:
-        if (state->csize < 7)
-        {
-          /* malformed */
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        if (data[0] == 0x00)
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[6],
-              state->csize - 6, "ISO-8859-1");
-        else if (data[0] == 0x01)
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[6],
-              state->csize - 6, "UCS-2");
-        else if ((state->ver == 0x04) && (data[0] == 0x02))
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[6],
-              state->csize - 6, "UTF-16BE");
-        else if ((state->ver == 0x04) && (data[0] == 0x03))
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[6],
-              state->csize - 6, "UTF-8");
-        else
-          /* bad encoding byte, try to convert from iso-8859-1 */
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[6],
-              state->csize - 6, "ISO-8859-1");
-        break;
-      case L:
-        if (state->csize < 5)
-        {
-          /* malformed */
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        /* find end of description */
-        off = 4;
-        while ((off < state->csize) && (data[off] != '\0'))
-          off++;
-        if ((off >= state->csize) || (data[off] != '\0'))
-        {
-          /* malformed */
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        off++;
-
-        if (data[0] == 0x00)
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "ISO-8859-1");
-        else if (data[0] == 0x01)
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "UCS-2");
-        else if ((state->ver == 0x04) && (data[0] == 0x02))
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "UTF-1offBE");
-        else if ((state->ver == 0x04) && (data[0] == 0x03))
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "UTF-8");
-        else
-          /* bad encoding byte, try to convert from iso-8859-1 */
-          word = EXTRACTOR_common_convert_to_utf8 ((const char *) &data[off],
-              state->csize - off, "ISO-8859-1");
-        break;
-      case I:
-        if ( ( (state->ver == 0x02) && 
-              (state->csize < 7) ) ||
-            ( ( (state->ver == 0x03) || 
-                (state->ver == 0x04)) && (state->csize < 5)) )
-        {
-          /* malformed */
-          state->state = ID3V2_INVALID;
-          break;
-        }
-        if (state->mime != NULL)
-          free (state->mime);
-        state->mime = NULL;
-        if (state->ver == 0x02)
-        {
-          off = 5;
-          picture_type = data[4];
-        }
-        else if ((state->ver == 0x03) || (state->ver == 0x04))
-        {
-          off = 1;
-          while ((off < state->csize) && (data[off] != '\0'))
-            off++;
-          if ((off >= state->csize) || (data[off] != '\0'))
-          {
-            /* malformed */
-            state->state = ID3V2_INVALID;
-            break;
-          }
-          state->mime = malloc (off);
-          memcpy (state->mime, &data[1], off - 1);
-          state->mime[off - 1] = '\0';
-          off += 1;
-          picture_type = data[off];
-          off += 1;
-          /* find end of mime type*/
-          while ((off < state->csize) && (data[off] != '\0'))
-            off++;
-          if ((off >= state->csize) || (data[off] != '\0'))
-          {
-            free (state->mime);
-            state->mime = NULL;
-            /* malformed */
-            state->state = ID3V2_INVALID;
-            break;
-          }
-          off++;
-        }
-        switch (picture_type)
-        {
-        case 0x03:
-        case 0x04:
-          type = EXTRACTOR_METATYPE_COVER_PICTURE;
-          break;
-        case 0x07:
-        case 0x08:
-        case 0x09:
-        case 0x0A:
-        case 0x0B:
-        case 0x0C:
-          type = EXTRACTOR_METATYPE_CONTRIBUTOR_PICTURE;
-          break;
-        case 0x0D:
-        case 0x0E:
-        case 0x0F:
-          type = EXTRACTOR_METATYPE_EVENT_PICTURE;
-          break;
-        case 0x14:
-          type = EXTRACTOR_METATYPE_LOGO;
-          type = EXTRACTOR_METATYPE_LOGO;
-          break;
-        default:
-          type = EXTRACTOR_METATYPE_PICTURE;
-          break;
-        }
-        if (state->ver == 0x02)
-        {
-          if (0 == strncasecmp ("PNG", (const char *) &data[1], 3))
-            state->mime = strdup ("image/png");
-          else if (0 == strncasecmp ("JPG", (const char *) &data[1], 3))
-            state->mime = strdup ("image/jpeg");
-          else
-            state->mime = NULL;
-        }
-        else if (((state->ver == 0x03) || (state->ver == 0x04)) && (strchr 
(state->mime, '/') == NULL))
-        {
-          size_t mime_len = strlen (state->mime);
-          char *type_mime = malloc (mime_len + 6 + 1);
-          snprintf (type_mime, mime_len + 6 + 1, "image/%s", state->mime);
-          free (state->mime);
-          state->mime = type_mime;
-        }
-        if ((state->mime != NULL) && (0 == strcmp (state->mime, "-->")))
-        {
-          /* not supported */
-          free (state->mime);
-          state->mime = NULL;
-        }
-        else
-        {
-          if (0 != proc (proc_cls, "id3v2", type, EXTRACTOR_METAFORMAT_BINARY, 
state->mime, (const char*) &data[off], state->csize - off))
-          {
-            if (state->mime != NULL)
-              free (state->mime);
-            state->mime = NULL;
-            return 1;
-          }
-          if (state->mime != NULL)
-            free (state->mime);
-          state->mime = NULL;
-        }
-        word = NULL;
-        break;
-      default:
-        return 1;
-      }
-      if ((word != NULL) && (strlen (word) > 0))
-      {
-        if (0 != proc (proc_cls, "id3v2", tmap[state->ti].type, 
EXTRACTOR_METAFORMAT_UTF8, "text/plain", word, strlen (word) + 1))
-        {
-          free (word);
-          return 1;
-        }
-      }
-      if (word != NULL)
-        free (word);
-      state->state = ID3V2_READING_FRAME_HEADER;
-    break;
-    }
-  }
-  return 1;
-}
-
-/* end of id3v2_extractor.c */

Deleted: Extractor/src/plugins/old/ps_extractor.c
===================================================================
--- Extractor/src/plugins/old/ps_extractor.c    2012-08-18 13:12:14 UTC (rev 
23303)
+++ Extractor/src/plugins/old/ps_extractor.c    2012-08-18 14:14:56 UTC (rev 
23304)
@@ -1,197 +0,0 @@
-/*
-     This file is part of libextractor.
-     (C) 2002, 2003, 2009 Vidyut Samanta and Christian Grothoff
-
-     libextractor is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     libextractor is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with libextractor; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
- */
-
-#include "platform.h"
-#include "extractor.h"
-
-
-static char *
-readline (const char *data, size_t size, size_t pos)
-{
-  size_t end;
-  char *res;
-
-  while ((pos < size) &&
-         ((data[pos] == (char) 0x0d) || (data[pos] == (char) 0x0a)))
-    pos++;
-
-  if (pos >= size)
-    return NULL;                /* end of file */
-  end = pos;
-  while ((end < size) &&
-         (data[end] != (char) 0x0d) && (data[end] != (char) 0x0a))
-    end++;
-  res = malloc (end - pos + 1);
-  if (res == NULL)
-    return NULL;
-  memcpy (res, &data[pos], end - pos);
-  res[end - pos] = '\0';
-
-  return res;
-}
-
-
-static int
-testmeta (char *line,
-          const char *match,
-          enum EXTRACTOR_MetaType type, 
-         EXTRACTOR_MetaDataProcessor proc,
-         void *proc_cls)
-{
-  char *key;
-
-  if ( (strncmp (line, match, strlen (match)) == 0) &&
-       (strlen (line) > strlen (match)) )
-    {
-      if ((line[strlen (line) - 1] == ')') && (line[strlen (match)] == '('))
-        {
-          key = &line[strlen (match) + 1];
-          key[strlen (key) - 1] = '\0'; /* remove ")" */
-        }
-      else
-        {
-          key = &line[strlen (match)];
-        }
-      if (0 != proc (proc_cls,
-                    "ps",
-                    type,
-                    EXTRACTOR_METAFORMAT_UTF8,
-                    "text/plain",
-                    key,
-                    strlen (key)+1))
-       return 1;
-    }
-  return 0;
-}
-
-typedef struct
-{
-  const char *prefix;
-  enum EXTRACTOR_MetaType type;
-} Matches;
-
-static Matches tests[] = {
-  {"%%Title: ", EXTRACTOR_METATYPE_TITLE},
-  {"%%Author: ", EXTRACTOR_METATYPE_AUTHOR_NAME},
-  {"%%Version: ", EXTRACTOR_METATYPE_REVISION_NUMBER},
-  {"%%Creator: ", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE},
-  {"%%CreationDate: ", EXTRACTOR_METATYPE_CREATION_DATE},
-  {"%%Pages: ", EXTRACTOR_METATYPE_PAGE_COUNT},
-  {"%%Orientation: ", EXTRACTOR_METATYPE_PAGE_ORIENTATION},
-  {"%%DocumentPaperSizes: ", EXTRACTOR_METATYPE_PAPER_SIZE},
-  {"%%PageOrder: ", EXTRACTOR_METATYPE_PAGE_ORDER},
-  {"%%LanguageLevel: ", EXTRACTOR_METATYPE_FORMAT_VERSION},
-  {"%%Magnification: ", EXTRACTOR_METATYPE_MAGNIFICATION},
-
-  /* Also widely used but not supported since they
-     probably make no sense:
-     "%%BoundingBox: ",
-     "%%DocumentNeededResources: ",
-     "%%DocumentSuppliedResources: ",
-     "%%DocumentProcSets: ",
-     "%%DocumentData: ", */
-
-  {NULL, 0}
-};
-
-#define PS_HEADER "%!PS-Adobe"
-
-/* mimetype = application/postscript */
-int 
-EXTRACTOR_ps_extract (const char *data,
-                     size_t size,
-                     EXTRACTOR_MetaDataProcessor proc,
-                     void *proc_cls,
-                     const char *options)
-{
-  size_t pos;
-  char *line;
-  int i;
-  int lastLine;
-  int ret;
-
-  pos = strlen (PS_HEADER);
-  if ( (size < pos) ||
-       (0 != strncmp (PS_HEADER,
-                     data,
-                     pos)) )
-    return 0;
-  ret = 0;
-
-  if (0 != proc (proc_cls,
-                "ps",
-                EXTRACTOR_METATYPE_MIMETYPE,
-                EXTRACTOR_METAFORMAT_UTF8,
-                "text/plain",
-                "application/postscript",
-                strlen ("application/postscript")+1))
-    return 1;
-  /* skip rest of first line */
-  while ((pos < size) && (data[pos] != '\n'))
-    pos++;
-
-  lastLine = -1;
-  line = NULL;
-  /* while Windows-PostScript does not seem to (always?) put
-     "%%EndComments", this should allow us to not read through most of
-     the file for all the sane applications... For Windows-generated
-     PS files, we will bail out at the end of the file. */
-  while ( (line == NULL) ||
-         (0 != strncmp ("%%EndComments", line, strlen ("%%EndComments"))) )
-    {
-      if (line != NULL)
-       free (line);
-      line = readline (data, size, pos);
-      if (line == NULL)
-        break;
-      i = 0;
-      while (tests[i].prefix != NULL)
-        {
-          ret = testmeta (line, tests[i].prefix, tests[i].type, proc, 
proc_cls);
-         if (ret != 0)
-           break;
-          i++;
-        }
-      if (ret != 0)
-       break;
-
-      /* %%+ continues previous meta-data type... */
-      if ( (lastLine != -1) && (0 == strncmp (line, "%%+ ", strlen ("%%+ "))))
-        {
-          ret = testmeta (line, "%%+ ", tests[lastLine].type, proc, proc_cls);
-        }
-      else
-        {
-          /* update "previous" type */
-          if (tests[i].prefix == NULL)
-            lastLine = -1;
-          else
-            lastLine = i;
-        }
-      if (pos + strlen (line) + 1 <= pos)
-       break; /* overflow */
-      pos += strlen (line) + 1; /* skip newline, too; guarantee progress! */   
   
-    }
-  if (line != NULL)
-    free (line);
-  return ret;
-}
-
-/* end of ps_extractor.c */

Deleted: Extractor/src/plugins/old/thumbnailqt_extractor.cc
===================================================================
--- Extractor/src/plugins/old/thumbnailqt_extractor.cc  2012-08-18 13:12:14 UTC 
(rev 23303)
+++ Extractor/src/plugins/old/thumbnailqt_extractor.cc  2012-08-18 14:14:56 UTC 
(rev 23304)
@@ -1,199 +0,0 @@
-/*
-     This file is part of libextractor.
-     (C) 2006, 2009 Vidyut Samanta and Christian Grothoff
-
-     libextractor is free software; you can redistribute it and/or modify
-     it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
-     option) any later version.
-
-     libextractor is distributed in the hope that it will be useful, but
-     WITHOUT ANY WARRANTY; without even the implied warranty of
-     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-     General Public License for more details.
-
-     You should have received a copy of the GNU General Public License
-     along with libextractor; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
- */
-
-/**
- * @file thumbnailqt_extractor.cc
- * @author Nils Durner
- * @brief this extractor produces a binary (!) encoded
- * thumbnail of images (using Qt).
- */
-
-#include "platform.h"
-#include "extractor.h"
-#include <Qt/qpixmap.h>
-#include <Qt/qbytearray.h>
-#include <Qt/qbuffer.h>
-#include <Qt/qapplication.h>
-#include <pthread.h>
-
-#ifdef HAVE_QT_SVG
-  #include <Qt/qsvgrenderer.h>
-  #include <Qt/qpainter.h>
-#endif
-
-#define THUMBSIZE 128
-
-extern "C"
-{
-
-
-static void 
-mh (QtMsgType mtype, const char *msg)
-{
-  /* just discard */
-}
-
-
-int 
-EXTRACTOR_thumbnailqt_extract (const char *data,
-                              size_t size,
-                              EXTRACTOR_MetaDataProcessor proc,
-                              void *proc_cls,
-                              const char *options)
-{
-  QImage *img;
-  QByteArray bytes;
-  QBuffer buffer;
-  unsigned long width;
-  unsigned long height;
-  char format[64];
-  QImage::Format colors;
-  QtMsgHandler oh;
-  int ret;
-
-  oh = qInstallMsgHandler (&mh);
-  /* Determine image format to use */
-  if (options == NULL)
-    colors = QImage::Format_Indexed8;
-  else
-    switch (atoi(options))
-      {
-      case 1:
-        colors = QImage::Format_Mono;
-        break;
-      case 8:
-        colors = QImage::Format_Indexed8;
-        break;
-      case 16:
-      case 24:
-        colors = QImage::Format_RGB32;
-        break;
-      default:
-        colors = QImage::Format_ARGB32;
-        break;
-      }
-  QByteArray din (data, (int) size);
-
-#ifdef HAVE_QT_SVG
-  /* Render SVG image */
-  QSvgRenderer svg;
-  QSize qsize;
-  if (svg.load(din))
-    {
-      qsize = svg.defaultSize();
-      img = new QImage(qsize, QImage::Format_ARGB32);
-      QPainter painter(img);
-      painter.setViewport(0, 0, qsize.width(), qsize.height());
-      painter.eraseRect(0, 0, qsize.width(), qsize.height());      
-      svg.render(&painter);
-    }
-  else
-#endif
-    {
-      /* Load image */
-      img = new QImage();
-      img->loadFromData(din);
-    }
-
-  height = img->height();
-  width = img->width();
-  if ( (height == 0) || (width == 0) )
-    {
-      delete img;
-      qInstallMsgHandler (oh);
-      return 0;
-    }
-  snprintf(format,
-          sizeof(format),
-          "%ux%u",
-          (unsigned int) width,
-          (unsigned int) height);
-  if (0 != proc (proc_cls,
-                "thumbnailqt",
-                EXTRACTOR_METATYPE_IMAGE_DIMENSIONS,
-                EXTRACTOR_METAFORMAT_UTF8,
-                "text/plain",
-                format,
-                strlen(format)+1))
-    {
-      delete img;
-      qInstallMsgHandler (oh);
-      return 1;
-    }
-  /* Change color depth */
-  QImage thumb = img->convertToFormat(colors);
-  delete img;
-
-  /* Resize image
-   *
-   * Qt's scaled() produces poor quality if the image is resized to less than
-   * half the size. Therefore, we resize the image in multiple steps.
-   * http://lists.trolltech.com/qt-interest/2006-04/msg00376.html */
-  while ( (width > 32*THUMBSIZE) || (height > 32*THUMBSIZE) )
-    {
-      width /= 2;
-      height /= 2;
-    }
-  while ( (width > THUMBSIZE) || (height > THUMBSIZE) )
-    {
-      width /= 2;
-      if (width < THUMBSIZE)
-       width = THUMBSIZE;      
-      height /= 2;
-      if (height < THUMBSIZE)
-       height = THUMBSIZE;      
-      thumb = thumb.scaled(width, 
-                          height, 
-                          Qt::KeepAspectRatio,
-                          Qt::SmoothTransformation);
-    }
-  buffer.setBuffer(&bytes);
-  buffer.open(QIODevice::WriteOnly);
-  if (TRUE != thumb.save(&buffer, "PNG"))
-    {
-      qInstallMsgHandler (oh);
-      return 0;
-    }
-  buffer.close ();
-  ret = proc (proc_cls,
-             "thumbnailqt",
-             EXTRACTOR_METATYPE_THUMBNAIL,
-             EXTRACTOR_METAFORMAT_BINARY,
-             "image/png",
-             bytes.data(),
-             bytes.size());
-  qInstallMsgHandler (oh);
-  return ret;
-}
-
-
-int 
-EXTRACTOR_thumbnail_extract (const unsigned char *data,
-                            size_t size,
-                            EXTRACTOR_MetaDataProcessor proc,
-                            void *proc_cls,
-                            const char *options)
-{
-  return EXTRACTOR_thumbnail_extract (data, size, proc, proc_cls, options);
-}
-
-} // extern "C"
-
-/* end of thumbnailqt_extractor.cc */

Copied: Extractor/src/plugins/ps_extractor.c (from rev 23289, 
Extractor/src/plugins/old/ps_extractor.c)
===================================================================
--- Extractor/src/plugins/ps_extractor.c                                (rev 0)
+++ Extractor/src/plugins/ps_extractor.c        2012-08-18 14:14:56 UTC (rev 
23304)
@@ -0,0 +1,213 @@
+/*
+     This file is part of libextractor.
+     (C) 2002, 2003, 2009, 2012 Vidyut Samanta and Christian Grothoff
+
+     libextractor is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     libextractor is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with libextractor; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+ */
+/**
+ * @file plugins/ps_extractor.c
+ * @brief plugin to support PostScript files
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "extractor.h"
+
+
+/**
+ * Maximum length of a single line in the PostScript file we're
+ * willing to look at.  While the body of the file can have longer
+ * lines, this should be a sane limit for the lines in the header with
+ * the meta data.
+ */
+#define MAX_LINE (1024)
+
+/**
+ * Header of a PostScript file.
+ */
+#define PS_HEADER "%!PS-Adobe"
+
+
+/**
+ * Pair with prefix in the PS header and corresponding LE type.
+ */
+struct Matches
+{
+  /**
+   * PS header prefix.
+   */
+  const char *prefix;
+  
+  /**
+   * Corresponding LE type.
+   */
+  enum EXTRACTOR_MetaType type;
+};
+
+
+/**
+ * Map of PS prefixes to LE types.
+ */
+static struct Matches tests[] = {
+  { "%%Title: ", EXTRACTOR_METATYPE_TITLE },
+  { "% Subject: ", EXTRACTOR_METATYPE_SUBJECT },
+  { "%%Author: ", EXTRACTOR_METATYPE_AUTHOR_NAME },
+  { "% From: ", EXTRACTOR_METATYPE_AUTHOR_NAME },
+  { "%%Version: ", EXTRACTOR_METATYPE_REVISION_NUMBER },
+  { "%%Creator: ", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE },
+  { "%%CreationDate: ", EXTRACTOR_METATYPE_CREATION_DATE },
+  { "% Date: ", EXTRACTOR_METATYPE_UNKNOWN_DATE },
+  { "%%Pages: ", EXTRACTOR_METATYPE_PAGE_COUNT },
+  { "%%Orientation: ", EXTRACTOR_METATYPE_PAGE_ORIENTATION },
+  { "%%DocumentPaperSizes: ", EXTRACTOR_METATYPE_PAPER_SIZE },
+  { "%%PageOrder: ", EXTRACTOR_METATYPE_PAGE_ORDER },
+  { "%%LanguageLevel: ", EXTRACTOR_METATYPE_FORMAT_VERSION },
+  { "%%Magnification: ", EXTRACTOR_METATYPE_MAGNIFICATION },
+
+  /* Also widely used but not supported since they
+     probably make no sense:
+     "%%BoundingBox: ",
+     "%%DocumentNeededResources: ",
+     "%%DocumentSuppliedResources: ",
+     "%%DocumentProcSets: ",
+     "%%DocumentData: ", */
+
+  { NULL, 0 }
+};
+
+
+/**
+ * Read a single ('\n'-terminated) line of input.
+ *
+ * @param ec context for IO
+ * @return NULL on end-of-file (or if next line exceeds limit)
+ */
+static char *
+readline (struct EXTRACTOR_ExtractContext *ec)
+{
+  int64_t pos;
+  ssize_t ret;
+  char *res;
+  void *data;
+  const char *cdata;
+  const char *eol;
+
+  pos = ec->seek (ec->cls, 0, SEEK_CUR);
+  if (0 >= (ret = ec->read (ec->cls, &data, MAX_LINE)))
+    return NULL; 
+  cdata = data;
+  if (NULL == (eol = memchr (cdata, '\n', ret)))
+    return NULL; /* no end-of-line found */
+  if (NULL == (res = malloc (eol - cdata + 1)))
+    return NULL;
+  memcpy (res, cdata, eol - cdata);
+  res[eol - cdata] = '\0';
+  ec->seek (ec->cls, pos + eol - cdata + 1, SEEK_SET);
+  return res;
+}
+
+
+/**
+ * Main entry method for the 'application/postscript' extraction plugin.  
+ *
+ * @param ec extraction context provided to the plugin
+ */
+void
+EXTRACTOR_ps_extract_method (struct EXTRACTOR_ExtractContext *ec)
+{
+  unsigned int i;
+  char *line;
+  char *next;
+  char *acc;
+  const char *match;
+
+  if (NULL == (line = readline (ec)))
+    return;
+  if ( (strlen (line) < strlen (PS_HEADER)) ||
+       (0 != memcmp (PS_HEADER,
+                    line,
+                    strlen (PS_HEADER))) )
+    {
+      free (line);
+      return;
+    }
+  free (line);
+  if (0 != ec->proc (ec->cls,
+                    "ps",
+                    EXTRACTOR_METATYPE_MIMETYPE,
+                    EXTRACTOR_METAFORMAT_UTF8,
+                    "text/plain",
+                    "application/postscript",
+                    strlen ("application/postscript") + 1))
+    return;
+  
+  line = NULL;
+  next = readline (ec);
+  while ( (NULL != next) &&
+         ('%' == next[0]) )
+    {
+      line = next;
+      next = readline (ec);
+      for (i = 0; NULL != tests[i].prefix; i++)
+        {
+         match = tests[i].prefix;
+         if ( (strlen (line) < strlen (match)) ||
+              (0 != strncmp (line, match, strlen (match))) )
+           continue;
+         /* %%+ continues previous meta-data type... */
+         while ( (NULL != next) &&
+                 (0 == strncmp (next, "%%+", strlen ("%%+"))) )
+           {
+             acc = malloc (strlen (line) + strlen (next) - 1);
+             strcpy (acc, line);
+             strcat (acc, " ");
+             strcat (acc, next + 3);
+             free (line);
+             line = acc;
+             next = readline (ec);
+           }
+         if ( (line[strlen (line) - 1] == ')') && 
+              (line[strlen (match)] == '(') )
+           {
+             acc = &line[strlen (match) + 1];
+             acc[strlen (acc) - 1] = '\0'; /* remove ")" */
+           }
+         else
+           {
+             acc = &line[strlen (match)];
+           }
+         while (isspace ((unsigned int) acc[0]))
+           acc++;
+         if ( (strlen (acc) > 0) &&
+              (0 != ec->proc (ec->cls,
+                              "ps",
+                              tests[i].type,
+                              EXTRACTOR_METAFORMAT_UTF8,
+                              "text/plain",
+                              acc,
+                              strlen (acc) + 1)) )
+           {
+             free (line);
+             if (NULL != next)
+               free (next);
+             return;
+           }
+         break;
+       }
+      free (line);
+    }
+}
+
+/* end of ps_extractor.c */

Added: Extractor/src/plugins/test_dvi.c
===================================================================
--- Extractor/src/plugins/test_dvi.c                            (rev 0)
+++ Extractor/src/plugins/test_dvi.c    2012-08-18 14:14:56 UTC (rev 23304)
@@ -0,0 +1,124 @@
+/*
+     This file is part of libextractor.
+     (C) 2012 Vidyut Samanta and Christian Grothoff
+
+     libextractor is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     libextractor is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with libextractor; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+*/
+/**
+ * @file plugins/test_dvi.c
+ * @brief testcase for dvi plugin
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "test_lib.h"
+
+
+/**
+ * Main function for the DVI testcase.
+ *
+ * @param argc number of arguments (ignored)
+ * @param argv arguments (ignored)
+ * @return 0 on success
+ */
+int
+main (int argc, char *argv[])
+{
+  struct SolutionData dvi_ora_sol[] =
+    {
+      { 
+       EXTRACTOR_METATYPE_MIMETYPE,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "application/x-dvi",
+       strlen ("application/x-dvi") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_PAGE_COUNT,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "10",
+       strlen ("10") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_TITLE,
+       EXTRACTOR_METAFORMAT_C_STRING,
+       "text/plain",
+       "Optimal Bitwise Register Allocation using Integer Linear Programming",
+       strlen ("Optimal Bitwise Register Allocation using Integer Linear 
Programming") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_SUBJECT,
+       EXTRACTOR_METAFORMAT_C_STRING,
+       "text/plain",
+       "Register Allocation",
+       strlen ("Register Allocation") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_COMMENT,
+       EXTRACTOR_METAFORMAT_C_STRING,
+       "text/plain",
+       " TeX output 2005.02.06:0725",
+       strlen (" TeX output 2005.02.06:0725") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE,
+       EXTRACTOR_METAFORMAT_C_STRING,
+       "text/plain",
+       "LaTeX with hyperref package",
+       strlen ("LaTeX with hyperref package") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_AUTHOR_NAME,
+       EXTRACTOR_METAFORMAT_C_STRING,
+       "text/plain",
+       "Rajkishore Barik and Christian Grothoff and Rahul Gupta and Vinayaka 
Pandit and Raghavendra Udupa",
+       strlen ("Rajkishore Barik and Christian Grothoff and Rahul Gupta and 
Vinayaka Pandit and Raghavendra Udupa") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE,
+       EXTRACTOR_METAFORMAT_C_STRING,
+       "text/plain",
+       "dvips + Distiller",
+       strlen ("dvips + Distiller") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_KEYWORDS,
+       EXTRACTOR_METAFORMAT_C_STRING,
+       "text/plain",
+       "register allocation integer linear programming bit-wise spilling 
coalesing rematerialization",
+       strlen ("register allocation integer linear programming bit-wise 
spilling coalesing rematerialization") + 1,
+       0 
+      },
+      { 0, 0, NULL, NULL, 0, -1 }
+    };
+  struct ProblemSet ps[] =
+    {
+      { "testdata/dvi_ora.dvi",
+       dvi_ora_sol },
+      { NULL, NULL }
+    };
+  return ET_main ("dvi", ps);
+}
+
+/* end of test_dvi.c */

Added: Extractor/src/plugins/test_ps.c
===================================================================
--- Extractor/src/plugins/test_ps.c                             (rev 0)
+++ Extractor/src/plugins/test_ps.c     2012-08-18 14:14:56 UTC (rev 23304)
@@ -0,0 +1,139 @@
+/*
+     This file is part of libextractor.
+     (C) 2012 Vidyut Samanta and Christian Grothoff
+
+     libextractor is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     libextractor is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with libextractor; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+*/
+/**
+ * @file plugins/test_ps.c
+ * @brief testcase for ps plugin
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "test_lib.h"
+
+
+
+/**
+ * Main function for the PS testcase.
+ *
+ * @param argc number of arguments (ignored)
+ * @param argv arguments (ignored)
+ * @return 0 on success
+ */
+int
+main (int argc, char *argv[])
+{
+  struct SolutionData ps_bloomfilter_sol[] =
+    {
+      { 
+       EXTRACTOR_METATYPE_MIMETYPE,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "application/postscript",
+       strlen ("application/postscript") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_TITLE,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "A Quick Introduction to Bloom Filters",
+       strlen ("A Quick Introduction to Bloom Filters") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "dvips(k) 5.92b Copyright 2002 Radical Eye Software",
+       strlen ("dvips(k) 5.92b Copyright 2002 Radical Eye Software") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_PAGE_COUNT,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "1",
+       strlen ("1") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_PAGE_ORDER,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "Ascend",
+       strlen ("Ascend") + 1,
+       0 
+      },
+      { 0, 0, NULL, NULL, 0, -1 }
+    };
+  struct SolutionData ps_wallace_sol[] =
+    {
+      { 
+       EXTRACTOR_METATYPE_MIMETYPE,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "application/postscript",
+       strlen ("application/postscript") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_SUBJECT,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "PS preprint of JPEG article submitted to IEEE Trans on Consum. Elect",
+       strlen ("PS preprint of JPEG article submitted to IEEE Trans on Consum. 
Elect") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "DECwrite V1.1 Copyright (c) 1990 DIGITAL EQUIPMENT CORPORATION.   All 
Rights Reserved.",
+       strlen ("DECwrite V1.1 Copyright (c) 1990 DIGITAL EQUIPMENT 
CORPORATION.   All Rights Reserved.") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_AUTHOR_NAME,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "Greg Wallace",
+       strlen ("Greg Wallace") + 1,
+       0 
+      },
+      { 
+       EXTRACTOR_METATYPE_UNKNOWN_DATE,
+       EXTRACTOR_METAFORMAT_UTF8,
+       "text/plain",
+       "Tue, 17 Dec 91 14:49:50 PST",
+       strlen ("Tue, 17 Dec 91 14:49:50 PST") + 1,
+       0 
+      },
+      { 0, 0, NULL, NULL, 0, -1 }
+    };
+  struct ProblemSet ps[] =
+    {
+      { "testdata/ps_bloomfilter.ps",
+       ps_bloomfilter_sol },
+      { "testdata/ps_wallace.ps",
+       ps_wallace_sol },
+      { NULL, NULL }
+    };
+  return ET_main ("ps", ps);
+}
+
+/* end of test_ps.c */

Added: Extractor/src/plugins/testdata/dvi_ora.dvi
===================================================================
(Binary files differ)


Property changes on: Extractor/src/plugins/testdata/dvi_ora.dvi
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: Extractor/src/plugins/testdata/ps_bloomfilter.ps
===================================================================
--- Extractor/src/plugins/testdata/ps_bloomfilter.ps                            
(rev 0)
+++ Extractor/src/plugins/testdata/ps_bloomfilter.ps    2012-08-18 14:14:56 UTC 
(rev 23304)
@@ -0,0 +1,1348 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
+%%Title: A Quick Introduction to Bloom Filters
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentFonts: Times-Roman CMMI10 CMMI7 CMR10 CMSY10 CMSY7 CMEX10 CMR7
+%%+ Times-Italic
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips main.dvi -o main.ps
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource:  TeX output 2005.08.16:1515
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: 8r.enc
+% File  8r.enc as of 2002-03-12 for PSNFSS 9
+%
+% This is the encoding vector for Type1 and TrueType fonts to be used
+% with TeX.  This file is part of the PSNFSS bundle, version 9
+% 
+% Authors: S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, W. Schmidt
+%
+% Idea is to have all the characters normally included in Type 1 fonts
+% available for typesetting. This is effectively the characters in Adobe
+% Standard Encoding + ISO Latin 1 + extra characters from Lucida + Euro.
+% 
+% Character code assignments were made as follows:
+% 
+% (1) the Windows ANSI characters are almost all in their Windows ANSI
+% positions, because some Windows users cannot easily reencode the
+% fonts, and it makes no difference on other systems. The only Windows
+% ANSI characters not available are those that make no sense for
+% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
+% (173). quotesingle and grave are moved just because it's such an
+% irritation not having them in TeX positions.
+% 
+% (2) Remaining characters are assigned arbitrarily to the lower part
+% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
+% 
+% (3) Y&Y Lucida Bright includes some extra text characters; in the
+% hopes that other PostScript fonts, perhaps created for public
+% consumption, will include them, they are included starting at 0x12.
+% 
+% (4) Remaining positions left undefined are for use in (hopefully)
+% upward-compatible revisions, if someday more characters are generally
+% available.
+% 
+% (5) hyphen appears twice for compatibility with both ASCII and Windows.
+%
+% (6) /Euro is assigned to 128, as in Windows ANSI
+% 
+/TeXBase1Encoding [
+% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
+  /.notdef /dotaccent /fi /fl
+  /fraction /hungarumlaut /Lslash /lslash
+  /ogonek /ring /.notdef
+  /breve /minus /.notdef 
+% These are the only two remaining unencoded characters, so may as
+% well include them.
+  /Zcaron /zcaron 
+% 0x10
+ /caron /dotlessi 
+% (unusual TeX characters available in, e.g., Lucida Bright)
+ /dotlessj /ff /ffi /ffl 
+ /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef
+ % very contentious; it's so painful not having quoteleft and quoteright
+ % at 96 and 145 that we move the things normally found there down to here.
+ /grave /quotesingle 
+% 0x20 (ASCII begins)
+ /space /exclam /quotedbl /numbersign
+ /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+% 0x30
+ /zero /one /two /three /four /five /six /seven
+ /eight /nine /colon /semicolon /less /equal /greater /question
+% 0x40
+ /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
+% 0x50
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
+% 0x70
+ /p /q /r /s /t /u /v /w
+ /x /y /z /braceleft /bar /braceright /asciitilde
+ /.notdef % rubout; ASCII ends
+% 0x80
+ /Euro /.notdef /quotesinglbase /florin
+ /quotedblbase /ellipsis /dagger /daggerdbl
+ /circumflex /perthousand /Scaron /guilsinglleft
+ /OE /.notdef /.notdef /.notdef
+% 0x90
+ /.notdef /.notdef /.notdef /quotedblleft
+ /quotedblright /bullet /endash /emdash
+ /tilde /trademark /scaron /guilsinglright
+ /oe /.notdef /.notdef /Ydieresis
+% 0xA0
+ /.notdef % nobreakspace
+ /exclamdown /cent /sterling
+ /currency /yen /brokenbar /section
+ /dieresis /copyright /ordfeminine /guillemotleft
+ /logicalnot
+ /hyphen % Y&Y (also at 45); Windows' softhyphen
+ /registered
+ /macron
+% 0xD0
+ /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered
+ /cedilla /onesuperior /ordmasculine /guillemotright
+ /onequarter /onehalf /threequarters /questiondown
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls
+% 0xE0
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /ae /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+% 0xF0
+ /eth /ntilde /ograve /oacute
+ /ocircumflex /otilde /odieresis /divide
+ /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis
+] def
+
+%%EndProcSet
+%%BeginProcSet: aae443f0.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+%     cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10
+%
+/TeXaae443f0Encoding [
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
+/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa
+/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi
+/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf
+/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft
+/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle
+/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle
+/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash
+/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N
+/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow
+/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p
+/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector
+/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
+/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta
+/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon
+/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%%EndProcSet
+%%BeginProcSet: f7b6d320.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+%     cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
+%     cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
+%     cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
+%     cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
+%
+/TeXf7b6d320Encoding [
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
+/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
+/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
+/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
+/period /slash /zero /one /two /three /four /five /six /seven /eight
+/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
+/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
+/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
+/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
+/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
+/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
+/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
+/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%%EndProcSet
+%%BeginProcSet: bbad153f.enc
+% Thomas Esser, Dec 2002. public domain
+%
+% Encoding for:
+%     cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
+%
+/TeXbbad153fEncoding [
+/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
+/plusminus /minusplus /circleplus /circleminus /circlemultiply
+/circledivide /circledot /circlecopyrt /openbullet /bullet
+/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
+/greaterequal /precedesequal /followsequal /similar /approxequal
+/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
+/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
+/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
+/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
+/prime /infinity /element /owner /triangle /triangleinv /negationslash
+/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
+/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
+/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
+/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
+/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
+/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
+/backslash /wreathproduct /radical /coproduct /nabla /integral
+/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
+/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
+/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
+/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
+/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
+/lessequal /greaterequal /precedesequal /followsequal /similar
+/approxequal /propersubset /propersuperset /lessmuch /greatermuch
+/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%%EndProcSet
+%%BeginProcSet: texps.pro
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginProcSet: special.pro
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@address@hidden div/hsc X}B/@address@hidden div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
address@hidden/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
+savematrix setmatrix}N end
+
+%%EndProcSet
+%%BeginProcSet: color.pro
+%!
+TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
+setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
+}repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def
+/TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{
+setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{
+/currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch
+known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
+/Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC
+/Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0
+setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0
+setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61
+0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC
+/Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0
+setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87
+0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{
+0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{
+0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC
+/Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0
+setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0
+setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90
+0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC
+/Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0
+setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0
+0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{
+0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{
+0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC
+/BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0
+setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC
+/CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0
+0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1
+0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11
+0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0
+setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0
+0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC
+/Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0
+setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0
+0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0
+1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC
+/PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0
+setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{
+0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor}
+DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70
+setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0
+setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1
+setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end
+
+%%EndProcSet
+%%BeginFont: CMR7
+%!PS-AdobeFont-1.1: CMR7 1.0
+%%CreationDate: 1991 Aug 20 16:39:21
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights 
Reserved) readonly def
+/FullName (CMR7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-27 -250 1122 750}readonly def
+/UniqueID 5000790 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D
+E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8
+47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C
+8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4
+78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486
+1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E
+01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B
+C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0
+F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30
+8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF
+A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7
+455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2
+9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105
+EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B
+52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97
+563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F
+0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB
+7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1
+0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4
+1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4A78141CA32C
+B3C74E1A0AE0520B950B826B15D336D8A12ED03ECD59B50775E3C5D8309802AB
+9DF865421C5AD1492673F0D8DC1B55EA958330AE6F4301D5314190C760AE2832
+0FFE98B31B10B50826F26335347600DC34708CD6913388C6A1DCFE3414F267F3
+B269D4D5A9A00AC78F252683E4021E203432502358A9B3E137263BC107513521
+345A2C8F613C2CB9236D0C6D8C81274046D8E26BADE086CC18D48E0F710163FE
+20A0C8F968586F53FB9F1F122AD0B311B35DD63494CCE2A905753031DA7F6D05
+F178B67D06097D803CA48FE0A01FAC8E7CDDD83A30916E01EE9795EDF731031D
+A8C35ED6E0E8D5215ED779FEEA2D2B54BA35B5A50044CC0DE5AB8C0D11BCB29C
+4DCC9065FBA656469709A647096FAD117092865B8579643041485DD042487F0D
+B81F178234359798986A1DD9053ACE7AE2F6A12BB0BA90D1C2E99699BCEEB3E1
+B57E4E3EAC39AA2F28B12383493184C2B6E0CABA99253B9F0B44F4C7183F1B4D
+C23C2244BBBC4A83A75FB9B71042B0B1676B4D9B33A2BB728A7EB3FC945F8CC0
+848FA40DF50A48169E401B3B0F55091F29E66789063857843622FCA3673F4C78
+8E7B68655E08BB031AE83BE6AF0CFC395F6A291796743431CFC4FA0FC1B3CC88
+50FC4640D84E195EC4000C5C8A85C9D395EC884425C49379C710F323A2C06680
+2FB61480B8616927DE8957193BF93D179060F377909E403A987BBDC79148CB6A
+56380A268A2C525B0A03B06AA0CAC2B08A4B475151DCD4AE0984BF8924BD4126
+4937CF034188F309CDCAE7E771C9F1C158DC3E6F58718290F639BF7E826A516F
+6FC312478333DC0B62DF356AAFF8C94FE47F941D2DC07B9FB167ABF4E0CDBEE0
+2955FCDA84B01650AEF0399311D60DFE714FCA065007CB87E502B60C980986C1
+1C6ECC34F8EDA45C8A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMEX10
+%!PS-AdobeFont-1.1: CMEX10 1.00
+%%CreationDate: 1992 Jul 23 21:22:48
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights 
Reserved) readonly def
+/FullName (CMEX10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMEX10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /parenleftbig put
+dup 1 /parenrightbig put
+dup 18 /parenleftbigg put
+dup 19 /parenrightbigg put
+dup 34 /bracketleftBigg put
+dup 35 /bracketrightBigg put
+readonly def
+/FontBBox{-24 -2960 1454 772}readonly def
+/UniqueID 5000774 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910
+DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8
+8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987
+FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422
+BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52
+EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8
+DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1
+EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C
+6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281
+E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350
+E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38
+4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5
+8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023
+8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2
+FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A
+EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387
+680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35
+5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664
+3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666
+DD4DD1C1CD006CAD7ED8E8165E496FA0B191B69671C16B43D92082CA3571EC9E
+61564007C3B7236A7E232FF0A6DC428B4B819D157E9FC09B74927E23149BA2B5
+BE68FDBA54E11195A7A69BC0D96D5233FF2BE7B78EBB611E52D96BC82A31C63E
+164BABACF345BA00E9EF9B27C951DFCA279BE43D84023293356A6A368669AEF2
+54F9A844DE13A92F2AA3ECFD20F4014D1D5FD1D99AD6CE4353510155B6450291
+542F544ACA8935805A8B79D1EB394371CE4957C045906B339F3FF9460726FAEE
+59A9F8D7C6BB6C8F5E67E03CFDAFE74AC6AA35F207646BD8A4C16BD6D160550A
+0644F8A4159DBD5648109DA67C0CB9CD8AE878F270FC2FEB9F7CE591A09B7649
+53DE58FA95E6AD814FB182CDAD00973E58339C7E7CCB3C7ECD0A29D1F10787CE
+3C1054D756BCEB5B2739DA46D227E406596B946C241D4BAD6CD25527368B60AF
+F65BE1D3B6B9A57EABADCCFDA81304E3CA9BCDB0164AE69CA59159C761F7EC66
+4797E8B11396B877D320C782CD2CFF8017B219D29C413B747613B5A4CBC4604C
+A7CE6FC74A2F859AC5EFDCA5740932D94A4C4B83022F03ECA556D0105FFF4D5E
+077546C8F879D532D627C01D86964A93B09A8D2560086F724AB03B4D63E056AD
+EF2334541B6E1DF6B5F9569D57039363DB10BF30BF19F859DFDD4B12AA71A6AF
+C2EE60C962F6766FC438FA4D155290CC93EAF3AF8CB39D2FA97CC4E8D8E14D64
+7F84B0A9BB272BE26CE13200BD1D28952DA7749E37D51590BD54A6711951E729
+C232AE77FC86B39942FD0ED413C8B2EDB1796953B1A7D5D28525EBBADD66337B
+413C20785C0C5431528591FAAF4CAEEA1C827DE698BC77D0CD7C20446F209E33
+B56F7266574AFE96E4BFD59B38CC3197688DF82F584EB7E1A27EA442339EDA3A
+CEA1CB3504B2768510697572A770FA6107B9CAA9EA29DFBC68347E8F1E1BC62A
+D749CC7C84559C972F403CFF79818B873B456DBDC7DF7DA90FE0BB1F49FBA2E9
+15D3701B229BD76D1CD0F5714FBB5AB35A0B1A2BF0C49B49730B13286B3D90EC
+BEA32EB012491D5DE31DE1E468BC7B0A6B281CCAA1A59D06DFACC24FC929BA8C
+04D4D87C39A8E69B1B850FE0A18F124B0B4A67828555D1A0E9C8EDE199E8E43E
+0E2EC13CD07A4B635007898D75DCD5AD6A0F969BA8805F9C908587DECD5960B8
+14C061F17F401346D1E4948986428C2893A6BB591CCC04E95A76B12E66441478
+C235A7709A346EC692D1313787C05D378A21304ACD98CA813CB9DE52A25B513D
+6863E788AB1E6A182661247A10CE4CAE5843D88D88A08C94B2BF5A15F61204AC
+8D0F3DB131AD3CE54EC8BC071A3DE7E139753B3A126329B33C1188B6F8E655C4
+
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSY7
+%!PS-AdobeFont-1.1: CMSY7 1.0
+%%CreationDate: 1991 Aug 15 07:21:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights 
Reserved) readonly def
+/FullName (CMSY7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-15 -951 1252 782}readonly def
+/UniqueID 5000817 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D251491EBF65A98C9FE2B1CF8D725A70281949
+8F4AFFE638BBA6B12386C7F32BA350D62EA218D5B24EE612C2C20F43CD3BFD0D
+F02B185B692D7B27BEC7290EEFDCF92F95DDEB507068DE0B0B0351E3ECB8E443
+E611BE0A41A1F8C89C3BC16B352C3443AB6F665EAC5E0CC4229DECFC58E15765
+424C919C273E7FA240BE7B2E951AB789D127625BBCB7033E005050EB2E12B1C8
+E5F3AD1F44A71957AD2CC53D917BFD09235601155886EE36D0C3DD6E7AA2EF9C
+C402C77FF1549E609A711FC3C211E64E8F263D60A57E9F2B47E3480B978AAF63
+868AEA25DA3D5413467B76D2F02F8097D2841BAFE21CA9B940712F2E5C0EE674
+F89B3247AB7015E1B23392D32427F5DBA2662F737958F4F7245625764E8AF981
+A9FFCB32213B836B1620E55354875AB8423630CB317B48EE89BD9F249C5BFF67
+B9EBEC91D3312715CCCC7C19ADFD5B0A94CE0DB2C9540BB7172CEBACD41836E7
+D7B39100472CBE6C7168AF011698726203C2B718491309B9A6C0DD56DE90B9C9
+38E3CE61C149139F76BAFC25DF3EA35BCDBBDC3E278B2775C2EB92A46C424F27
+6C80929547688A30603D6DF66C52A65509C168BA742F71113C43A94F1497333E
+B59C53FF680FDFC39D9F8DE5152F4C39F4576D0BCCD28A84CAD8C24B6047B571
+FA8D1AB9E59FB8668FAA390C4B7E5F12C7D44B0905743F8E0CB02551F670A693
+554C1B18820AC24A0BCE4ACD8244032DD2622C3A4D67E575CABE5E5BC0FDB3A2
+F0B20A7AACE9AD6C318E11D8760AF75482E9A4F1C525584BFB2BD11A30FBF79B
+9A7C99B05C2664FEFA0A1C022007D83C9FF31205DFE1F6457C321A425DCFC814
+FB74C4D77EBED004915CB81649962B3156804B6F4A98D222AEFC4E4D4FAF1C36
+8035867409DAAB371508D489529481D355239E3FFCD291F496018834311A7070
+21D1AE27561512B486FF25209CD13C43B2A3F82FE22F6B216013556EDDFC8B9F
+C5262A804CD083957CB7502F57801CDD8D9ADF511DFB7019770AC06B6B076B66
+1CBF90AD1B498576A5F2FE4D4761B139D85D1D0FE36998E1DEB2BE569EA3A9CE
+7326D6F36B40696E55B0BE6BBE0BBF1FE9A1F967F5AE01DAB55A2A49047F4882
+4D28CDC48EAD5247465139F346C7378AEB5C50EDB3EE7DFA4BE52C2BD3294A39
+0A11DC8181917891D163F0B0748A2DF8EFEB5624BC76AEB00037E13394E9BA41
+C18C60B9A3514C3C5A1BE28719166CE9C9C34BEFDF4AD71A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMSY10
+%!PS-AdobeFont-1.1: CMSY10 1.0
+%%CreationDate: 1991 Aug 15 07:20:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.0) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights 
Reserved) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.035 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMSY10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-29 -960 1116 775}readonly def
+/UniqueID 5000820 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
+7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
+A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
+E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
+221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
+27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
+5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
+0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
+DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
+71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
+4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
+515DB70A8D4F6146FE068DC1E5DE8BC57034F7455AB67138A1B6DFCA01660EDA
+B80764458B5829EB2FEC53E0A1F53FF5AF7A2E1564E666101BC844AB50DE3860
+2235ECED71E86452D47F2A3E0D887538BAFE377CFC4DD49B397BEE459E06CA48
+29B9E43C4C347E6477372884B41B41DA8075F1A0BBAE835A3CB48186024CF105
+54981EADAF7A9F62BE45C89E39AF4CD4680FB6C1343A780D9C42DF0D40D5413D
+FFAB68B8B983ED2DBD81F0AFDA69DD6136AC8E315693D9BA30AF6BC44FD20A86
+20FB501C02723EB63A007ACE897E056F09435CA492318117062EF02BCF52FF30
+1E1F3D3221BCF9E49559088E536982C557144A2F27E0DF1E442844E46725E89D
+3A834FF30C449CD1FFBCEC6C85F65C3E7D18E22F4CEC2A5D5BEE83CE9D053C95
+25227B7E575768C891A3D4503E4BADDF21D22C65C97DCFE87DB3BB5E58093253
+1125AE1C6DDEFC2B5E33E12CBCFC76804B70B30DA40AE9FBFE24C22CB02819A2
+53BD19545E35C2B03396C07DE5539F1A88428D4142ADBEFABCAA50AEEEFABF80
+5080BE0DE2C4EA969260EA185EF1518DE57EDCB5F3986FBD7FAEB6DD91F04A88
+FF05076B05703A7B477A37C210AE87D98B2B35504DF40C9C52FAB5F63428E239
+222C6A31BFE7689759ECAA3BC4472711AAF747A4951A93B976EAFDFFD38ACF0B
+8B976FDC2A9FC807D66122107DB8BC816619AC74B5A8FC6F20A958FCAE6C9057
+9BF24A2BD815E6079C1247A26C72AE3F11BAE1F4DED05BC8027BCF5A2C548BCF
+C54A257C0142D378F2000BD15429437F9901A413467E94D659C82A5040179D2E
+82C2E274BD5AA736B9BB3FE85F4656722E27E8446FA604E68960EB30D94E5A1A
+6DC95D1B4FFDB25B18B79AB7D69B0CAF89BA82DDA9DFD145BE7126A2BC662585
+D5A71E05C0E888B0BA537698141EDC4C25B16874F1A5F75030E54028951DA634
+683E537E0A4C963E93D07ED8B1F92BAAB6A558DD899506B194602A56E6574DD9
+19C8812FA3253DF055971C3333F688D1FD8A420E002BFC8045A3F02A381F061A
+346489DD13C3A32929964FE56E63EE0FC4E7B8F0302B17F2868D9817AF11D721
+BF2D18E3099B4BB101A95B11935ACD5928A6C2715C1F138F5A6B4A49F0156A77
+1EFAD63BF3351DFE8EB5441990D9E3CA620B68548439E6930003C837B3C8852F
+28F8C6B5AA21A3787ED948691152844013531868051689AEE3C3ACBF1A79F501
+4EB5AC07831E33505486D30A8AC69C7E3B0FCE959D0F2AF7A05F0EC3313C6F26
+6F590C052E81268D9F63C64230FC3460A3C5C2260A523FE927D8DBE208EC6FE5
+38BFC1F060CEC84E5B3DB26479FFF341BC0C9F11168736CF3FDAF2733D90A0B1
+3A8EB69C8E2F4EE01CCC9F6A0F7F8F28BAC98CBAB8DDA2B71A0315B4D2CF1513
+CF55492FB9B051B8DE5E4F30CE08AFC5CDA769668C1469B58FABD5D46A3438C3
+497DB37CED2E3EBBFE57A3335C1797BD2905AB39E6497CF793B4D500F04B2ED8
+C1B4A3F05F59DD5B9943CF7A65FBE8827F65A804A7DAB9287668AC322AA9C6E7
+ADF714A655977CD5E07383EC4267CEEAC86536F632E23E6308D01838AF9040A5
+35F383771127B115733D7208CB6C43B25EBC4463353C3476898F2D390E66F5EF
+ECC6822FC45B0361FC782130B3DDEFECA2D736C29ABDFC68982D9B046E542013
+38329CB876357A60F86DD7A7FCD03E0008E4428DBE8C5C03FE65DC3E8B7DD446
+3974D4CFBF5EA451453639026622513FC65AC3CF
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.1: CMR10 1.00B
+%%CreationDate: 1992 Feb 19 19:54:52
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.00B) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights 
Reserved) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMR10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-251 -250 1009 969}readonly def
+/UniqueID 5000793 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
+016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
+9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
+D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
+469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
+2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
+87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
+D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
+92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
+295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
+409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
+4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
+2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
+0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
+B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
+24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
+43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
+D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
+5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
+96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
+7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850
+439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521
+09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62
+0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A
+7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF
+68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B
+983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107
+3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF
+A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89
+BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70
+F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0
+800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F
+64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754
+2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8
+36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F
+A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8
+4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF
+0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED
+9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361251DCF8A9302
+D6F53ED0F720442A89467CA60E5396A335EA60A77175B7F6119F4E3D8773D100
+3F307FB7310879760E6E7AF5B06207BC4D8321734432C482581783BB9D29E087
+72D7252FAFA6739687225704EC9BD374804808C980CFC1AD9B5CF9DA1F1E6EBE
+9CF00C497704AD5892D7F2E681EB1EA12AE2DC994A24BB9EF5B081D3EFD3D8CF
+64D8F619AE619F5CF7C0BA03DD6306372BA2466D678DE4269D20CB56FCB158A1
+D46655D69F0CADA08992E12C4B9E969427BD224E0978EEF8E841B01480446D46
+074F45B381E2A6E8F3E794F6A13F46CA068F6272CFE4983EF8570FF07F922FBC
+50183FCB1FC8DDCBF579494EEB340C9120EB2AE200328C858438157656266F25
+97FB464C6EAE730CFEB144B021C27D4BBA08707DF3FF860F0166DB8619376F60
+DA2110C94DBB4FC8F8F162E522836CF709AC1D3FD9775114A168A728336BED48
+03FDCF5EFA9786AB4AE9DF3A412B7755811300C5DAEE5EBDEBE63770F89F7F98
+9FE48AA67BECAD7A0EFC1D747EFE910B44C1F9A354750E6D5C87680F3265E717
+76CE04767C1D1E868889E403FB0F15D46DF64CF938B5636924790B03CB68CC75
+9A3489E9860556FCD231C0B2A0559658C4296772E6531F393ED8B94CE572A694
+60C4F04F53AA48EFEAA722E30D3377AFE7411F9393DF3E4E38920E53D5598FBB
+94A5E379FC49DBB09791854CFDFA347B1C4E3FD1A5C695E9B42EC14EB23D69A0
+5FACD0675D66CEB5FCA995A429EDBE0C448A090279D8ED1FB6690DC3BCBC2174
+CC50FD2A9DA96247733EC3CEC48A9DB7DC5BC024DB136F96EE33F1689DD26A2C
+1A1DE4A83B8AFEF766D078744AB0E647AC8E532121AF4BA459BF4DE61A6420BA
+19522EDCA0D18EB5B559621AE04C52C878D8450CCF23E156696A55578EDC6004
+2ADB56EDD857C5205B76F5700392CB6CED9C99A066B12D61B873D582DAA4686D
+CE6862BB93AC52DEA032742438899A1B445D658D51A9DCB12F16945CBC8163D2
+75CA4D1F7968A42E224B5BAD5B6DC70C581CF8F15C37A23A382696C053D2BA9A
+846704327749143708E6D8B74FD5F19F92ADF296C7A9688335F6081A98F458EA
+F84A1CB95C2B13E462E3DF4D0127C6666E95951EFBF35028FECE4C95EC577238
+90DA7FAE2E91A5C099740754D2CAF1DD28ED06FFF08957CF0D5877C1AD17DBC3
+57A029187F9D370946802E6A118FB1B6293579CD3D72E1AA9F64213FB1DBF746
+9CFBDEC1460CC735265324AED8835BB0169B9EBA42491D9C8D65CD2E72CA53BF
+79C2CA8CE90DED771E290D9E7BDC92D44E6072E38766245FD2656C7E708E99AD
+667572AE19CF28CC62EA668786B43CEABD8F74C3FF45D728AB6EB05E2724B2B2
+A0B467F37BFCF2462265B3FF53D5D21F2971AE89DCC3439606DE361327AD118F
+1378AFEACE72D45D1E5DC31343AD83C87228DED463CE2471C25677F0371E8A3F
+0C0FBBF98A2F734F62180561DF84B3079DD916138EDF5B42F0E60F5C7CEFA063
+6BDC54D3CE32D8964D1A68E1FE1D73E1A7E98B306BFE3FD772DBBD481E25438A
+A05ED48AE7A4AA6C03D8FB9450B039DF266869F2572F4CA3D2D92ABB959C2B10
+748266A9A4399741DC25E7217375F437DFC31DEBBA45D84F52F16AC6AE9181A9
+C3066639E102D7007586BEA3FA243F6095A93BE9B85010BA40200C5400714978
+82322233233DCBDB3A1243129E5D8834236C590AE7A5CD7951FCEBE944C65F89
+C3776080297F335A2CE4898BBCA9B565E273ABC671BFF9A0CCF247221C60E2A2
+1A5C702D1E2CD127790205E124DC2E75ABA41FF81DEC1BED791DEF6BB6DCC964
+DE1A8DDF2AB583E2ACD101E0E7FA5819B55A2E48DC28C1E161B5F68B196FDF70
+361660276EE355D2F4201D46587D1091175B119B14B4509DD5A09DB182FA9A13
+833ED7A4754576D900EEE0F264E9280C1E38C3A4C6EC560DB5EE97B2BD735CD9
+B19D3104A83D2C82C46DCD2C027F057B398C3C26C960A78DF1034B64633EDC4E
+02671E04D9B325EB73936C89C4A50B5A773DD2B827BB28745D3F623CAAC5FB53
+5234E54B0B54230EF097FFB79EB4B461F2ACD7A5DC805AC9F009AC9A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMMI7
+%!PS-AdobeFont-1.1: CMMI7 1.100
+%%CreationDate: 1996 Jul 23 07:53:53
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights 
Reserved) readonly def
+/FullName (CMMI7) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI7 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{0 -250 1171 750}readonly def
+/UniqueID 5087382 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F
+C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B
+B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868
+DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811
+4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3
+FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB
+76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5
+123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770
+012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6
+A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413
+44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC
+4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050
+01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608
+D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3
+914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05
+261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615
+24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2
+A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663
+9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C
+889787CDC5CD97BF88176035302FAC972B52AA169D318AFA7EB7B750C5202A8B
+E8D2C46A3C87E0D3B4E1BEE80DEE439C598E55A6AABE0899EC0C9406C3B4D586
+C2DE7990BF8B24D790C69F01A2BDBD05B50E50DE9B0A05DF39B48FEF1FA65D98
+EE816BBE51D69A8EE7528375DD01529D7EEF47E8A88031C9C65CC38E291F7666
+7017DBA809D0AF9A39D22E6EA0FF4AC4DAC3BAA50DEF621FD92BD47DA60C874C
+19AEA1718C87CD095E138C0F749D3B7F05A4479CCC02466BA85043AEE91DEEEC
+5FB759D1BD34302AE48090B8CB8282ABED08B04B8BCFDDB96F11402D63FDFB7A
+297EC426648B8D9A33E1C09FB3B4B03B685169F968952E3DC986DF027D7C48AF
+82A1E5D01BA26A81332B9F18C16916EBAF0BA3B61184D874DC330E4BDD0E0ADF
+2A4FC53610A445123AE7B9DA7AB582E75F4D016CDA75A32931A95A63DFD18413
+D8303DC0146DFB7A203B5A46060B1F7FB9F145D1A0F6C15FECF695927B780B55
+04A5A50218168A660C92594400C65F1478994F85F023D612F4ECE6139B6C2CE4
+448C7199C9A5A104EB40C6A304D21BA2691015733AE74E9F274A79F444B9949D
+B33F03712C5DB22B8A0164C5A3B4B29131F4EF2708C7E4B9BDAACE6D9CA0A3F0
+D1238F1EDE94E5BC97E4FA0EAB2E64C76790CE011E7EBA79623E3053323FA2DC
+963DA83BCDED4E0EEE81C10FAC983084AF67FDCD18C9A5E1CDAB4A2D947B4B25
+12E4340EEA97D08CDCC556D2CD1D243E04D5B0A48DEA544F71167CCC728A5AB5
+1222F2A32773EED562B6E23744AA5C3A8868DB7DB5B989676F0C2F9722C797C6
+31CA27ACF7EE2B41FA1008F9E818172EAB544EA39970BB4FA6DB57C34A9DA288
+CF0321E6D4D3523A5AA7CE64A449D9C46E0C08D76E8E32A3C8DB5769E4B54D50
+1CC956DD38928EC264E1E470342646CC6B594CF884FBD02947FA308B4BAE4969
+24578828773A8229ED93FCC3328F1B8EF95397D6FAA4A79784CB9D4A26966DD6
+E7FD58BBE562AB755C5AA2449175C23DE3D85B016779D1EFC99187E4B8098871
+F665E9AE8E8F802BA3C3A4CE74641E5B9BB442C41F3DEC1902ECCC69BDD839E8
+E145BA14B996799FD0BB27AB602A1E6319799CF35C81FAB8A1F56F6255A0319F
+786972EFD6868B42BA369A49C98B990F179986928A4C2F958D57A56845D9602A
+0857C3668E7E95C5DAC2CDA51FF99EFD341C025153B5A991597547A43CD1C446
+505CED6F0E816761805FA324E120876276F86A73D42BC08494A35747DFF501FD
+498719ED9F6CBF921B15E5A080CF0653CE13B27E4C14DD711F1D2611019519E6
+13241A4628787C910A859C79B4E359FE894DD8032D723978971D411C65501913
+6CE5F76A9970C6931EE5B221D05D3600293AA37A005D97064CA1E39564D7FFF1
+D3D8116A80B5FBB4956C93DB71C9D83493B37589EE382B819757D883A58B7B30
+8009FAE000ABF98CA6CFA8D6A837024FD38814A1177C2908D455BB1F698C25F2
+5429B9F4F9ABDF982F9B604D89963DE5CD3D773C58C6A7475CF18088CA2F8379
+4E01600F075E8662155185B05E48C967C461C949F108C96C2978E580EF3A8E81
+0B6AED2E5B01A9BC41E2F07D311BE11B75F4BEE0FCAC81C00D07D8709C3AFFAE
+3A2892516530F4F9A0A6B7F0508529D67C67A537FEEB7B5730A869C50BA9A9A9
+5A4902CAA57399DF8CCC9575555EBE0BC359C8403F2FD761345F16C8FEBDA717
+2C19E8174E0135547A6E974A8305DD35FAD193202BE064F2C4733943BF0C2E14
+846E944D9475F488D46A9082FBC38EF6AB019D1BA96CF32940CE60FE0EE5B046
+5D803DF5F814CDB5526606E7F393C98903C2874E68DFCC1E5F2AA4AF17B1DDF2
+A8FE6F08D9D677A1957CAF9327FBE9A2FE72197297B225334F9F79DF1445FE7B
+88E882653B163A80C2220034A34E0057335FD8A64B72DBCEB3993532BAF3D55B
+D15B40E8E0B2FB265CE006FB49ADED7861CBC44F70F00C7B85619C9848F07EF1
+08CF0127C852859CA5E515C4C9F0FDB1D777C3FEC579C460E7B886E6C5824445
+3DD85E37EDDDBB0AC2099BD5AE5CB3587F50B477780221223535E1BEAE9E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+%%BeginFont: CMMI10
+%!PS-AdobeFont-1.1: CMMI10 1.100
+%%CreationDate: 1996 Jul 23 07:53:57
+% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
+11 dict begin
+/FontInfo 7 dict dup begin
+/version (1.100) readonly def
+/Notice (Copyright (C) 1997 American Mathematical Society. All Rights 
Reserved) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+end readonly def
+/FontName /CMMI10 def
+/PaintType 0 def
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0] readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /.notdef put
+readonly def
+/FontBBox{-32 -250 1048 750}readonly def
+/UniqueID 5087385 def
+currentdict end
+currentfile eexec
+D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
+3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
+532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
+B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
+986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
+D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
+9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
+990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
+6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
+DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
+59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
+D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
+8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
+6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
+1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
+03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
+95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
+74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
+3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
+47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
+AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
+42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
+40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
+B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
+95601766758EF6E0314FC705A02FE7E5A5430F30CB95EEF1AB3BF2A413AD2E00
+C331CD7A37CE18E8C844BB589F7C7DCFC1E922E9140B46C34857E29559CBD35C
+F6B70C0D6F6EEC3C5E3BABDA03531B13ADCEBC557C7C4EEDDD1CCAD62744D164
+65F0160ADC4E85E1C2196E5427EE94BB207B17DEF6BDBB562E7BAF706EFF1EC5
+ED2471F09F5C5E423EF0A0A52DD549FAA1301278033099EFE067CD326B48AEC6
+A615BAD8BD6677049E9D97405CC77A5B9994318D5C6FA83CD2F42D49A2633CC1
+BA67BE46B85BE0524DD12179EFA03FA78ABD044034C4C33D95AC53FD6A747E5B
+E958CB88B8DC35A23345F17EDDA34B2FB6DAEF016FC62624E78F4D736EA47D41
+C23C29764E5F7E4D1BC7EA70032A7898E7A671DD83BE68761C2EED7E2BA5AFEF
+E8903EAB9AEEC8AF26EB01F8EDD1D5A7360EF65EB90E3991A86E394C97D8602A
+F0AA7FD278223461272407E28D31CC8225ED475CFC6EA58B87909546DCD2B592
+E40982ED4DB82B7AABDCC90750DC0CE867D9DE1D0D7B546C3C6B612F0CE352CC
+FF61B0C80C2B677EC5B576F00567756EBB88E175DE2760D4685838D66112C19A
+8E4A1CA819859FC35C8485700A8886A6E518B61918B2A977F78634288BAA00C8
+663C7017300AD48F501CABE98C7A513F441CD634797F34FF6131D4AE42A6F4C7
+D0219C8099D525C68E466C1CCE978B175047CACC3905A0D6CB272985D01E036D
+A14AD62E3AFB0FD688E6B015CD8515FF20213788DF40F0AF8A6345584E14F3BE
+1C0D77BE18E5BCEFFA59C85CFB04165E8ACA0519F7ABF825BFB1FE9D86564E2D
+A967774E8271C6873B44C6614BED2C8488D0B49DB23F2FC8E02E7D50C1E665BD
+2337700B08882F459750ADC9A624AA4C86B4803ACDBB0F40513F6B0BB579556D
+01F206323DC8EED2B9B12CBA61FACF60D03DE1EB274BFE890D979FF03F78C890
+DA0AB8A056C56B634FD40B8EE4D9218577080D825E227078CE791053B22B05A5
+6C787D423F47EF6213C5A984677230650DF412D1BF4D8DF50DB163126C4C4476
+1EF1B770C5B933CD6E3BDB54300D3319D36A54979C839F8DFEB792D3E7F3EE25
+DFEED216D9C6D2E81BE43C9F54C09394108F51BB4BE9EAC848BCFE5A97CF4D18
+0161EB795EF7F23AE551B2E0CF9CFA6D4981EAA4DCDF846559E8CF2B7A031F5D
+399E265322B271FF8F124884FD2E46E57C36E9DE1E96BE5252002B9B83715861
+70EDAB974F2082CDDD41004D48B27BBD21E29199BB9CEC2BB3E4CDF627205180
+C13D374161C8D45404FEE64E4FB8E25E5E6F3253BDF93ED8E4F71E76CC21AC0F
+AD50D9D3F9B5ECDD23B92AEFFF5FCDF75BC3B6F8992F8FA6F6EBFDC09CC4A92C
+362D1C5F27EA8C6248E39FA164EFB5EA1ED65CD1B8E4E949905A3E293E536244
+4799759214DFFBCAD00554AF680356D89223404192E41DE67887C9549177BED9
+04FFB6F87DF8AC7E570A026043D955F1CD96A63C2C998332D4A569C6B264C574
+1341FA86B2805B468C0645B4C43B6EB172B0BA1A586545303ACA12DCD054A830
+0263B4E50AC0857E3F3CF1694A188B0B5BDA8EB4C55BC8074ED932888E072191
+427D52E2D1B917E4FA02101C35CADFC0EBFE147FF9BDF05E73D1DD48105807D0
+6B4BA1897D8E0284F0D087C0DA3DB80D0D56E3246C6E044EC7817F94690277B7
+F3424FBA3CC6A44B3EF623863232F2B7C15894414C171CE9A527D1A1AF6F0859
+E616FFFC4A99036E5BB7FD33AB2A9A90AB6B7955173509BD700B12E8B716C9F2
+920F8F4A08692298CC890CAE33C5F4B378A52A04F5B937F033B7951C406B7CB2
+40A918B5D19612F58E2134161CA75CE57491467C4A81AA8B317AC450FE6AD693
+62602FDA0DCF6E6224189BA4EDC245453F9C8D71EADACA1B40F0BABEB58615BF
+4EA42924873287E4C5F743D90EDC3EBD2EA0BB0461BED21CCA2584855E1389D6
+9D6E78606E45843863CD818402A7065C0CC3C40016EB75B0D7E293234F103BAB
+37F46EA754E42A52C6D1AC17B678773AD862FC7E55D59266F17B4D79BA6E4132
+2A8CE6EA0A887CCEAF170A6E44E0DAC3FD1B1253F13F15A723C815451C1898AA
+4325F0E27F8DF16915508D7C75DC971C2759A4DE24042351C8E6940F4725DC94
+B9DE25BF60B6A4F990789100D50DDD90656E4699E8403CE2C0650813D49FD1EE
+D776F4C0A675DE3A3833F31209BEDE93EDB46D5AD23FBB9D4906752117DA6596
+55EFAD4842764E7F2DF24939CB9B3E7E103D2D219C9B97C613A223644408BB4A
+181DBE0C3F9C9FD24E86E2CAEC790D7DFD60B4705E4A126AC42D0599C8E0531F
+682EF89B5621B0C0E43AFC63AA9667A7A4F323B66B0FDC28A59AB97EB46F0460
+E5D06A4CEC2B5D217EC477DC34ADEEB2FAA603F6D568E19DD06E7BDB86B19CBD
+E8C2A78E3DE8BB4430EFB8783365940FAED99DABC3B6F282045683CF13DB72A7
+90A8FEB1E552E83C0B0EE7AA9EC8E88C2D5DF35049BB4293D18A7C60C7301A91
+5F90745D4E0C14C87CBCF026AB970D583CDB21CB86F9C71FDF9B9D4172761D8E
+970F854D5E901A2C8FAB6DA9039A8CF5C939846B2532D9CAD2A9276A1E177E8E
+A4C392F06975ECE839AB5FC3AE55F9A04F491E9B294BC395CC567BAA648CA53C
+D17CE0EE279AF16C5F95EF778B41110B1EFF929F9062CB9F0F8835721E1CA406
+C552FDAD7F2A830BD39460AAFFBE91C3E79AD251F09ADD48E1A9F250F56411B8
+E31687BBAEC282944FE6D0D481D8CCD27BB0191761998DDC21C9C753308ACB9A
+2157D571580B07AD6113BD3951A8FBA672B73D9299470490EDCD99AAB5BF265C
+123D6CF6EBA24FBD9877C57C56156E89F9AA95990E3CAF24A225782AA99D63E6
+DAB76A0EA877560399B074C7EE1CBEA12640334351DB311516E8C76EA875363F
+8673DFC65105A9F1AE532D4BE7FA929AFAC9E897AC50EA9450F33B9AA1033249
+A6A2C1C8E8993E19E880CCEA90877F1075666803A0288657CB7FC1A76B3FE471
+06FC852E3825F1FB9A4FAFCF4C162359A436E13213CEE3F145D8E0FD9C6521B9
+B2DC1B0BAF96DE08744A52C4C1FB818601383E37EE9ECC076D140C621DE5CB23
+2417DD7D37900728D7B46EE0F96E4030201B0B7EEA46D095A0BB027AC022FAD6
+ABF3CB5831570BEAD3BE999DBF724FF811547B897ED88649DCF4C1EFB5854EF2
+D58BA3E866A080375CFA2EA375C10AE79ADFF56C58142AF65692380ABD689392
+C910C1B8470D1BC89B09B8453A4C82E6E5B5CFFB7BF573361251F2DF0E27F4CF
+392DE0ABE9FD11EA9C6021D05DFF127DEA144D4888F92FF103ED621615482834
+9EF388EE45BD81A059A0DDE197B6E5BF6BA02616940A8CFEA3AE7C6E86A88BAF
+E5E98DC1EB56BB4D5BC2B885D93D0B968B6F99F3EC070F64ECDC11E1023C458D
+808FFA65EEA4D44D835FA54760F6D884821C76B6C98E5608F5A22A5672BB45A5
+1B563D4BB151138B3CBE504B2A0A9D85A4B532819D97F9D4EB96EC68B37ABB9D
+CF4E489D770F91AF5FF744E226BB48B7EAF7031010B3E418760E6424E44A022C
+405CA00AD443D7AB4EAD53
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndFont 
+TeXDict begin 39158280 55380996 1000 600 600 (main.dvi)
address@hidden /Fa 138[33 18 26 3[33 33 48 3[18 33 1[18 29 1[29
+1[33 19[55 9[44 1[41 65[{ TeXBase1Encoding ReEncodeFont }15
+66.4176 /Times-Italic rf /Fb 205[33 33 7[26 26 40[{
+ TeXf7b6d320Encoding ReEncodeFont }4 58.1154 /CMR7 rf
+/Fc 220[48 48 14[61 61 16[38 38{}6 83.022 /CMEX10 rf
+/Fd 105[33 28[33 1[48 33 33 18 26 22 1[33 33 33 52 18
+2[18 33 33 22 29 33 29 33 29 3[22 1[22 3[63 1[48 41 37
+44 1[37 48 48 59 41 48 1[22 1[48 37 41 48 44 44 48 6[18
+33 1[33 33 1[33 33 33 33 33 18 17 22 17 2[22 22 40[{
+ TeXBase1Encoding ReEncodeFont }58 66.4176 /Times-Roman
+rf /Fe 149[20 4[30 30 30 30 96[20 1[{ TeXbbad153fEncoding ReEncodeFont }
+6 58.1154 /CMSY7 rf /Ff 149[23 2[42 42 37 37 37 37 64[83
+31[23 65{ TeXbbad153fEncoding ReEncodeFont }10 83.022
+/CMSY10 rf /Fg 145[46 1[23 46[65 2[23 7[42 42 42 6[32
+32 40[{ TeXf7b6d320Encoding ReEncodeFont }9 83.022 /CMR10
+rf /Fh 145[41 59 1[35 8[29 28[49 69[{ TeXaae443f0Encoding ReEncodeFont }
+5 58.1154 /CMMI7 rf /Fi 143[42 1[50 73 1[43 4[41 39 2[36
+25[69 2[61 9[23 23 58[{ TeXaae443f0Encoding ReEncodeFont }11
+83.022 /CMMI10 rf /Fj 133[37 42 42 60 42 42 23 32 28
+42 42 42 42 65 23 42 23 23 42 42 28 37 42 37 42 37 3[28
+1[28 3[78 2[51 46 55 1[46 60 60 2[60 1[28 2[46 1[60 55
+55 60 5[23 23 7[42 42 2[21 28 21 2[28 28 37[46 2[{
+ TeXBase1Encoding ReEncodeFont }52 83.022 /Times-Roman
+rf /Fk 134[50 2[50 50 28 39 33 1[50 50 50 78 3[28 50
+50 33 44 50 44 1[44 11[72 1[55 2[55 8[72 2[72 66 2[92
+17[25 46[{ TeXBase1Encoding ReEncodeFont }26 99.6264
+/Times-Roman rf /Fl 138[103 57 80 69 2[103 103 161 57
+103 1[57 3[92 103 92 17[149 7[69 2[115 3[138 149 65[{
+ TeXBase1Encoding ReEncodeFont }18 206.559 /Times-Roman
+rf /Fm 206[29 49[{ TeXBase1Encoding ReEncodeFont }1 58.1154
+/Times-Roman rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%PaperSize: A4
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop Black 4006 -307 a Fm(1)p Black
+Black Black Black 301 46 a Fl(A)51 b(Quick)i(Introduction)h(to)e(Bloom)
+g(Filters)1525 288 y Fk(Christian)24 b(Grothof)n(f)1205
+404 y(Department)h(of)f(Computer)h(Sciences)1531 521
+y(Purdue)g(Uni)n(v)o(ersity)1408 637 y(grothof)n(address@hidden)p
+Black -166 1050 a Fj(A)j(Bloom)f(\002lter)h([1])f(is)h(a)g(compact)e
+(probabilistic)g(data)i(structure)-249 1150 y(which)20
+b(is)h(used)f(to)h(determine)e(if)i(an)f(element)g(might)g(be)g(part)g
+(of)g(a)h(set.)-249 1250 y(The)29 b(test)h(may)e(return)g(true)h(for)f
+(elements)h(that)g(are)g(not)g(actually)f(in)-249 1349
+y(the)20 b(set)h(\(f)o(alse-positi)n(v)o(es\),)d(b)n(ut)i(will)h(ne)n
+(v)o(er)e(return)g(f)o(alse)h(for)g(elements)-249 1449
+y(that)k(are)g(in)g(the)g(set;)i(for)e(each)f(element)h(in)g(the)g(set)
+g(the)g(test)h(must)f(re-)-249 1548 y(turn)15 b(true.)23
+b(Bloom)15 b(\002lters)i(are)e(used)h(in)f(systems)i(where)e(man)o(y)f
+(set)i(tests)-249 1648 y(must)h(be)h(performed)c(and)j(where)g(putting)
+f(the)h(entire)g(set)h(in)g(a)g(location)-249 1748 y(with)23
+b(f)o(ast)h(access)g(times)f(is)h(not)f(feasible.)33
+b(A)24 b(recent)e(e)o(xample)g(which)-249 1847 y(emplo)o(ys)h(the)h
+(use)h(of)e(Bloom)h(\002lters)h(is)g(PlanetP)f([2],)h(a)f(peer)n
+(-to-peer)-249 1947 y(netw)o(ork)g(in)h(which)g(peers)g(e)o(xchange)e
+(summary)h(information)f(about)-249 2047 y(the)g(content)g(a)n(v)n
+(ailable)f(at)i(each)f(peer)g(in)h(the)f(form)f(of)h(Bloom)g
+(\002lters.)-249 2146 y(If)16 b(a)h(PlanetP)f(peer)g(is)h(searching)e
+(for)g(content,)h(it)h(determines)e(which)h(of)-249 2246
+y(the)j(peers)h(adv)o(ertise)e(Bloom)h(\002lters)i(which)e(ha)n(v)o(e)g
+(the)g(correct)g(bits)h(set)-249 2345 y(for)f(the)h(search)f(k)o(e)o(y)
+-5 b(.)24 b(Only)19 b(these)h(peers)f(are)h(then)f(contacted)f(o)o(v)o
+(er)h(the)-249 2445 y(netw)o(ork.)31 b(This)22 b(a)n(v)n(oids)h
+(searches)f(of)g(peers)h(that)f(are)h(guaranteed)d(not)-249
+2545 y(to)h(ha)n(v)o(e)g(the)g(desired)f(content)g(a)n(v)n(ailable)h
+(while)g(k)o(eeping)f(the)h(amount)-249 2644 y(of)29
+b(bandwidth)f(required)f(for)i(transmitting)g(set)h(information)d
+(small;)-249 2744 y(Bloom)c(\002lters)g(can)g(be)g(e)o(xtraordinarily)d
+(compact)i(while)h(still)h(result-)-249 2844 y(ing)c(in)g(small)h
+(numbers)d(of)i(f)o(alse)h(positi)n(v)o(e)e(tests.)-166
+2982 y(Bloom)25 b(\002lters)i(are)e(implemented)f(using)h(a)h(lar)o(ge)
+f(bit)h(v)o(ector)e(with)-249 3082 y Fi(m)30 b Fj(bits.)52
+b(F)o(or)28 b(an)i(empty)e(set,)k(all)d(bits)h(of)f(the)g(bloom)f
+(\002lter)h(are)g(un-)-249 3181 y(set.)43 b(If)26 b(the)g(set)g
+Fi(E)32 b Fj(is)27 b(non-empty)-5 b(,)24 b Fi(k)29 b
+Fj(bits)e(are)f(set)g(for)g(each)f(element)-249 3281
+y Fi(e)j Fj(in)g(the)g(set.)49 b(The)28 b(indices)g(of)f(these)i
+Fi(k)i Fj(bits)d(are)g(obtained)f(using)g Fi(k)-249 3381
+y Fj(hash)i(functions)g Fi(H)342 3393 y Fh(k)423 3381
+y Fg(:)41 b Fi(E)46 b Ff(!)41 b(f)p Fg(0)p Fi(;)14 b(:)g(:)g(:)f(;)h(m)
+25 b Ff(\000)g Fg(1)p Ff(g)p Fj(.)53 b(Bits)32 b(can)d(be)h(set)-249
+3480 y(multiple)22 b(times.)32 b(In)22 b(order)f(to)i(test)g(if)g(an)f
+(element)g Fi(e)g Fj(may)g(be)h(a)f(mem-)-249 3580 y(ber)h(of)h(the)g
+(set,)i(the)e Fi(k)j Fj(bits)d Fi(H)649 3592 y Fh(k)690
+3580 y Fg(\()p Fi(e)p Fg(\))h Fj(are)f(check)o(ed.)35
+b(If)24 b(all)g(are)g(set,)i Fi(e)e Fj(is)-249 3680 y(considered)g(a)j
+(potential)e(member)f(of)i(the)g(set)h(and)f(the)g(Bloom)f(\002lter)
+-249 3779 y(test)i(returns)f(true,)i(otherwise)d(f)o(alse.)45
+b(If)26 b(only)g Fi(p)h Fj(percent)e(of)i(the)f(bits)-249
+3879 y(in)i(the)g(entire)f(Bloom)h(\002lter)g(are)g(set)h(and)e(the)h
+Fi(H)1229 3891 y Fh(k)1298 3879 y Fj(return)f(optimally)-249
+3978 y(balanced)21 b(random)f(v)n(alues,)i(the)h(probability)d(that)i
+(a)h(test)g(willreturn)e(a)-249 4078 y(f)o(alse-positi)n(v)o(e)i
+(result)i(is)g Fi(p)551 4048 y Fh(k)592 4078 y Fj(.)38
+b(If)24 b(the)h(Bloom)f(\002lter)g(needs)g(to)h(support)-249
+4178 y(the)19 b(remo)o(v)n(al)f(of)h(elements)g(from)g(the)g(set,)h(a)g
+(secondary)d(datastructure)-249 4277 y(that)k(counts)g(the)g(number)e
+(of)i(collisions)g(for)f(each)h(bit)g(is)h(used.)28 b(These)-249
+4377 y(collision)g(counters)g(are)h(not)f(required)f(for)h(the)h
+(actual)g(test)h(and)e(can)-249 4477 y(therefore)f(be)i(stored)f(in)h
+(less)h(costly)f(higher)n(-latenc)o(y)d(storage.)50 b(The)-249
+4576 y(length)19 b Fi(m)h Fj(of)g(the)g(bit)g(v)o(ector)e(can)i(be)g
+(tuned,)f(trading)f(space)i(for)f(fe)n(wer)-249 4676
+y(f)o(alse-positi)n(v)o(e)g(results.)-166 4815 y(W)-7
+b(e)25 b(de\002ne)f Fi(b)g Fj(to)g(be)g(the)g(number)e(of)i(bits)h(in)f
+(the)g(bit)g(v)o(ector)f(of)h(the)-249 4914 y(Bloom)e(\002lter)h(per)g
+(element)f(in)g(the)h(set)h(\()p Ff(j)p Fi(E)5 b Ff(j)20
+b(\001)g Fi(b)27 b Fg(=)h Fi(m)p Fj(\).)k(The)22 b(optimal)-249
+5014 y(v)n(alue)k(for)g Fi(k)k Fj(can)c(be)h(computed)e(for)h(a)h(gi)n
+(v)o(en)e(v)n(alue)h(of)h Fi(b)f Fj(since)h(it)h(is)-249
+5113 y(independent)19 b(from)i(the)h(actual)g(size)g(of)g(the)g(set)g
+(and)g(only)f(dependent)-249 5213 y(on)f(the)h(ratio)177
+5180 y Fh(m)p 161 5194 92 4 v 161 5242 a Fe(j)p Fh(E)s
+Fe(j)262 5213 y Fj(.)27 b(F)o(or)20 b(the)h(rest)g(of)g(the)f(paper)g
+(we)h(will)g(assume)g(that)f Fi(b)-249 5321 y Fj(is)k(kno)n(wn,)e
+(constant)h(and)g(cannot)f(be)h(freely)g(chosen.)33 b(This)23
+b(assump-)-249 5421 y(tion)g(holds)f(in)h(particular)f(for)g(\002x)o
+(ed)h(sets)h(\(lik)o(e)f(dictionaries)f(or)g(other)-249
+5520 y(static)c(databases\))f(on)g(de)n(vices)g(where)f(the)i(a)n(v)n
+(ailable)f(storage)f(space)i(is)-249 5620 y(tightly)f(bounded.)22
+b(W)m(ithout)17 b(this)h(assumption,)f(the)h(Bloom)f(\002lter)h(may)p
+Black Black 1943 1050 a(need)h(to)h(be)f(recomputed)e(when)j
+Fi(b)f Fj(changes)g(signi\002cantly)g(in)h(order)e(to)1943
+1150 y(obtain)h(optimal)g(f)o(alse-positi)n(v)o(e)g(rates.)2026
+1243 y(This)k(lea)n(v)o(es)f(the)h(implementor)e(concerned)f(with)j
+(the)g(choice)f(of)g Fi(k)1943 1343 y Fj(for)i(a)h(gi)n(v)o(en)e
+Fi(b)i Fj(such)f(that)h(the)g(number)e(of)h(f)o(alse-positi)n(v)o(e)f
+(set)j(tests)f(is)1943 1442 y(minimized.)31 b(T)-7 b(ypically)i(,)22
+b Fi(k)k Fj(is)d(chosen)f(as)i(a)f(discrete)f(v)n(alue)g(that)h(is)h
+(as)1943 1542 y(close)i(as)h(possible)f(to)g(the)h(non-discrete)d
+(optimal)h(v)n(alue)h(that)g(w)o(ould)1943 1641 y(minimize)c(the)h
+(number)e(of)h(f)o(alse-positi)n(v)o(e)g(tests)i(in)f(the)f
+(non-discrete)1943 1741 y(setting.)37 b(In)24 b(other)f(w)o(ords,)i
+Fi(k)j Fj(is)d(chosen)e(by)h(computing)e(the)i(optimal)1943
+1841 y(v)n(alue)c(for)g(the)h(non-discrete)e(case)i(and)g(then)f
+(rounding)f(that)i(v)n(alue)f(up)1943 1940 y(or)f(do)n(wn.)k(The)c
+(rationale)g(behind)f(rounding)f(to)i(a)h(non-discrete)d(v)n(alue)1943
+2040 y(is)27 b(that)f(it)h(is)g(ob)o(viously)d(impossible)h(to)i(set)g
+(a)f(non-discrete)e(number)1943 2140 y(of)c(bits)g Fi(k)k
+Fj(in)c(the)g(Bloom)g(\002lter)h(for)e(a)i(gi)n(v)o(en)e(element)h
+Fi(e)p Fj(.)2638 2242 y(C)t Fd(O)t(M)t(P)t(U)t(T)n(A)m(T)t(I)t(O)t(N)k
+(O)t(F)f Fi(k)2026 2361 y Fj(Suppose)g Fi(k)29 b Fj(w)o(ould)24
+b(not)g(ha)n(v)o(e)g(to)h(be)g(chosen)f(as)i(a)f(discrete)f(v)n(alue.)
+1943 2460 y(In)j(that)g(case,)i(the)e(optimal)g(choice)f(for)h
+Fi(k)k Fj(is)d(simply)f(the)g(v)n(alue)f(that)1943 2560
+y(minimizes)19 b(the)i(number)d(of)i(f)o(alse-positi)n(v)o(e)f(tests,)i
+Fi(f)3490 2572 y Fh(k)3530 2560 y Fg(\()p Fi(b)p Fg(\))p
+Fj(:)2406 2827 y Fi(f)2447 2839 y Fh(k)2488 2827 y Fg(\()p
+Fi(b)p Fg(\))i(:=)2722 2685 y Fc(")2770 2827 y Fg(1)18
+b Ff(\000)2913 2710 y Fc(\022)2974 2827 y Fg(1)g Ff(\000)3179
+2770 y Fg(1)p 3127 2807 146 4 v 3127 2884 a Fi(n)g Ff(\001)h
+Fi(b)3282 2710 y Fc(\023)3344 2727 y Fh(k)q Fe(\001)p
+Fh(n)3445 2685 y Fc(#)3494 2702 y Fh(k)3548 2827 y Fi(:)367
+b Fj(\(1\))1943 3022 y(The)20 b(v)n(alue)f(of)h Fi(k)k
+Fj(that)c(minimizes)g Fi(f)3001 3034 y Fh(k)3041 3022
+y Fg(\()p Fi(b)p Fg(\))h Fj(is:)2739 3214 y Fi(k)s Fg(\()p
+Fi(b)p Fg(\))i(=)g Fi(b)18 b Ff(\001)g Fg(ln)c(2)p Fi(:)699
+b Fj(\(2\))2026 3334 y(F)o(or)29 b(this)i(v)n(alue)e(of)h
+Fi(k)s Fg(\()p Fi(b)p Fg(\))p Fj(,)j(the)c(number)g(of)g(f)o(alse)i
+(positi)n(v)o(es)e Fi(f)3894 3346 y Fh(k)3935 3334 y
+Fg(\()p Fi(b)p Fg(\))1943 3457 y Fj(w)o(ould)d(be)2283
+3390 y Fc(\000)2331 3424 y Fb(1)p 2331 3438 34 4 v 2331
+3486 a(2)2374 3390 y Fc(\001)2412 3407 y Fh(k)q Fb(\()p
+Fh(b)p Fb(\))2534 3457 y Fj(.)46 b(But)28 b(since)f(the)g(actual)g
+(number)e(of)i(hash)g(func-)1943 3557 y(tions)k(must)h(be)f(discrete,)j
+Fi(k)s Fg(\()p Fi(b)p Fg(\))e Fj(must)f(be)h(rounded)d(up)i(or)g(do)n
+(wn)f(to)1943 3656 y(obtain)g(a)h(useable)f(discrete)h(v)n(alue)f(for)h
+(the)f(number)f(of)i(hash)g(func-)1943 3756 y(tions.)g(Determining)21
+b(which)g(bound)g(\(lo)n(wer)g(or)h(upper\))f(is)i(optimal)e(is)1943
+3856 y(accomplished)c(by)j(inserting)f(the)g(v)n(alue)g(into)h(formula)
+e(\(1\))n(.)26 b(Note)19 b(that)1943 3955 y(while)f(making)f(a)i
+(probabilistic)e(choice)g(between)h Ff(b)p Fi(k)s Ff(c)g
+Fj(and)g Ff(d)p Fi(k)s Ff(e)g Fj(could)1943 4055 y(be)e(used)g(to)g
+(achie)n(v)o(e)f(the)h(optimal)g(information)e(density)h(in)i(the)f
+(Bloom)1943 4155 y(\002lter)26 b(\(by)e(probabilistically)g(setting)
+3085 4122 y Fb(1)p 3085 4136 V 3085 4183 a(2)3155 4155
+y Fj(of)h(the)g(bits\),)i(this)f(impro)o(v)o(ed)1943
+4254 y(approximation)d(w)o(ould)j(not)h(result)g(in)f(a)i(better)e
+(\(smaller\))g(v)n(alue)g(for)1943 4354 y Fi(f)1984 4366
+y Fh(k)2048 4354 y Fj(since)e(the)f(resulting)g Fi(f)32
+b Fj(is)25 b(just)f(a)f(linear)h(combination)d(of)i(the)g(tw)o(o)1943
+4453 y(e)o(xtremes)d Fi(f)2304 4468 y Fe(b)p Fh(k)q Fe(c)2428
+4453 y Fj(and)h Fi(f)2611 4468 y Fe(d)p Fh(k)q Fe(e)2735
+4453 y Fj(and)g(can)g(thus)h(only)e(be)i(w)o(orse)g(than)f(the)g
+Fi(f)3994 4465 y Fh(k)1943 4553 y Fj(for)e(the)h(best)h(discrete)f(v)n
+(alue)f(of)h Fi(k)s Fj(.)2584 4655 y(A)q Fd(C)t(K)t(N)t(O)r(W)t(L)t(E)t
+(D)t(G)t(E)t(M)t(E)t(N)t(T)t(S)2026 4774 y Fj(The)i(author)f(wishs)i
+(to)g(thank)e(Igor)h(Wronsk)o(y)f(for)h(pushing)f(for)g(the)1943
+4874 y(implementation)f(of)j(the)g(Bloom)f(\002lter)i(in)h
+Fd(G)t(N)t(U)r Fj(net)e(and)f(Krista)h(Ben-)1943 4973
+y(nett)d(for)g(editing.)2756 5146 y(R)t Fd(E)t(F)t(E)t(R)t(E)t(N)t(C)t
+(E)t(S)p Black 1943 5239 a([1])p Black 42 w(Burton)c(Bloom.)21
+b(Space/time)d(trade-of)n(fs)f(in)f(hash)g(coding)g(with)h(allo)n(w)o
+(able)h(errors.)2062 5312 y Fa(Communications)h(of)f(the)f(A)n(CM)p
+Fd(,)g(13\(7\):422\226426,)i(1970.)p Black 1943 5385
+a([2])p Black 42 w(Francisco)f(Mathias)f(Cuenca-Acuna,)i(Richard)f(P)-7
+b(.)15 b(Martin,)i(and)g(Thu)f(D.)f(Nguyen.)2062 5458
+y(Planetp:)27 b(Using)19 b(gossiping)i(and)e(random)h(replication)j(to)
+c(support)h(reliable)i(peer)o(-)2062 5531 y(to-peer)e(content)h(search)
+f(and)f(retrie)n(v)n(al.)34 b(T)-5 b(echnical)21 b(Report)f
+(DCS-TR-494,)g(Rut-)2062 5604 y(gers)d(Uni)n(v)o(ersity)l(,)i(2002.)p
+Black Black eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF

Added: Extractor/src/plugins/testdata/ps_wallace.ps
===================================================================
--- Extractor/src/plugins/testdata/ps_wallace.ps                                
(rev 0)
+++ Extractor/src/plugins/testdata/ps_wallace.ps        2012-08-18 14:14:56 UTC 
(rev 23304)
@@ -0,0 +1,18986 @@
+%!PS-Adobe-2.1
+%%Creator: DECwrite V1.1
+%%+Copyright (c) 1990 DIGITAL EQUIPMENT CORPORATION.  
+%%+All Rights Reserved.
+%%DocumentFonts: (atend)
+%%EndComments
+%%BeginProcSet DEC_WRITE 1.06
+% Date:    Tue, 17 Dec 91 14:49:50 PST
+% Subject: PS preprint of JPEG article submitted to IEEE Trans on Consum. Elect
+% From:    Greg Wallace
+% Mods by Tom Lane 18-Dec-91 to avoid use of nonstandard fonts:
+%   Replaced Souvenir-Demi with Helvetica-Bold
+%   Replaced Souvenir-Light with Helvetica
+%   Deleted gratuitous use of AvantGarde for spacing
+/DEC_WRITE_dict 150 dict def DEC_WRITE_dict begin/$D save def/$I 0 def/$S 0
+def/$C matrix def/$R matrix def/$L matrix def/$E matrix def/pat1{/px exch
+def/pa 8 array def 0 1 7{/py exch def/pw 4 string def 0 1 3{pw exch px py 1
+getinterval putinterval}for pa py pw put}for}def/pat2{/pi exch def/cflag
+exch def save cflag 1 eq{eoclip}{clip}ifelse newpath{clippath
+pathbbox}stopped not{/ph exch def/pw exch def/py exch def/px exch def/px px
+3072 div floor 3072 mul def/py py 3072 div floor 3072 mul def px py
+translate/pw pw px sub 3072 div floor 1 add cvi def/ph ph py sub 3072 div
+floor 1 add cvi def pw 3072 mul ph 3072 mul scale/pw pw 32 mul def/ph ph 32
+mul def/px 0 def/py 0 def pw ph pi[pw 0 0 ph 0 0]{pa py get/px px 32 add
+def px pw ge{/px 0 def/py py 1 add 8 mod def}if}pi type/booleantype
+eq{imagemask}{image}ifelse}if restore}def/PS{/_op exch def/_np 8 string def
+0 1 7{/_ii exch def/num _op _ii get def _np 7 _ii sub num -4 bitshift PX
+num 15 and 4 bitshift -4 bitshift PX 4 bitshift or put}for _np}def/PX{[15 7
+11 3 13 5 9 1 14 6 10 2 12 4 8 0]exch get}def/FR{0.7200 0 $E defaultmatrix
+dtransform/yres exch def/xres exch def xres dup mul yres dup mul add
+sqrt}def/SU{/_sf exch def/_sa exch def/_cs exch def/_mm $C currentmatrix
+def/rm _sa $R rotate def/sm _cs dup $L scale def sm rm _mm _mm concatmatrix
+_mm concatmatrix pop 1 0 _mm dtransform/y1 exch def/x1 exch def/_vl x1 dup
+mul y1 dup mul add sqrt def/_fq FR _vl div def/_na y1 x1 atan def _mm 2 get
+_mm 1 get mul _mm 0 get _mm 3 get mul sub 0 gt{{neg}/_sf load
+concatprocs/_sf exch def}if _fq _na/_sf load setscreen}def/BO{/_yb exch
+def/_xb exch def/_bv _bs _yb _bw mul _xb 8 idiv add get def/_mk 1 7 _xb 8
+mod sub bitshift def _bv _mk and 0 ne $I 1 eq xor}def/BF{DEC_WRITE_dict
+begin/_yy exch def/_xx exch def/_xi _xx 1 add 2 div _bp mul cvi def/_yi _yy
+1 add 2 div _bp mul cvi def _xi _yi BO{/_nb _nb 1 add def 1}{/_fb _fb 1 add
+def 0}ifelse end}def/setpattern{/_cz exch def/_bw exch def/_bp exch def/_bs
+exch PS def/_nb 0 def/_fb 0 def _cz 0/BF load SU{}settransfer _fb _fb _nb
+add div setgray/$S 1 def}def/invertpattern{$S 0 eq{{1 exch
+sub}currenttransfer concatprocs settransfer}if}def/invertscreen{/$I 1
+def/$S 0 def}def/revertscreen{/$I 0 def}def/setrect{/$h exch def/$w exch
+def/$y exch def/$x exch def newpath $x $y moveto $w $x add $y lineto $w $x
+add $h $y add lineto $x $h $y add lineto closepath}def/concatprocs{/_p2
+exch cvlit def/_p1 exch cvlit def/_pn _p1 length _p2 length add array def
+_pn 0 _p1 putinterval _pn _p1 length _p2 putinterval _pn
+cvx}def/OF/findfont load def/findfont{dup DEC_WRITE_dict exch
+known{DEC_WRITE_dict exch get}if DEC_WRITE_dict/OF get exec}def
+mark/ISOLatin1Encoding 
+8#000 1 8#001{StandardEncoding exch get}for /emdash/endash
+8#004 1 8#025{StandardEncoding exch get}for /quotedblleft/quotedblright
+8#030 1 8#054{StandardEncoding exch get}for /minus 8#056 1 8#217
+{StandardEncoding exch get}for/dotlessi 8#301 1 8#317{StandardEncoding 
+exch get}for/space/exclamdown/cent/sterling/currency/yen/brokenbar/section
+/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered
+/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph
+/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter
+/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde
+/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave
+/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde
+/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave
+/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis
+256 array astore def cleartomark 
+/encodefont{findfont dup maxlength dict begin{1 index/FID ne{def}{pop
+pop}ifelse}forall/Encoding exch def dup/FontName exch def currentdict
+definefont end}def/loads{/$/ISOLatin1Encoding load def/&/encodefont load
+def/*/invertpattern load def/+/revertscreen load def/-/invertscreen load
+def/:/concatprocs load def/^/setpattern load def/~/pat1 load def/_/pat2
+load def/@/setrect load def/A/arcn load def/B/ashow load def/C/curveto load
+def/D/def load def/E/eofill load def/F/findfont load def/G/setgray load
+def/H/closepath load def/I/clip load def/K/kshow load def/L/lineto load
+def/M/moveto load def/N/newpath load def/O/rotate load def/P/pop load
+def/R/grestore load def/S/gsave load def/T/translate load def/U/sub load
+def/V/div load def/W/widthshow load def/X/exch load def/Y/awidthshow load
+def/a/save load def/c/setlinecap load def/d/setdash load def/e/restore load
+def/f/setfont load def/g/initclip load def/h/show load def/i/setmiterlimit
+load def/j/setlinejoin load def/k/stroke load def/l/rlineto load
+def/m/rmoveto load def/n/currentfont load def/o/scalefont load
+def/p/currentpoint load def/r/currenttransfer load def/s/scale load
+def/t/setmatrix load def/u/settransfer load def/w/setlinewidth load
+def/x/matrix load def/y/currentmatrix load def}def
+end
+%%EndProcSet
+%%EndProlog
+
+%%BeginSetup
+
+%%BeginFont: Dutch801-Roman-DECmath_Extension
+% Bitstream Fontware PSO Font -- Version 1.6
+% DECmath Font Version 1.0, 4-13-89
+%
+% Copyright 1989 by Bitstream, Inc. All Rights Reserved.
+% Copyright 1989 Digital Equipment Corporation
+%
+% This product is the sole property of Bitstream Inc. and
+% contains its proprietary and confidential information
+
+% U.S Government Restricted Rights
+% This software product is provided with RESTRICTED RIGHTS.  Use,
+% duplication or disclosure by the Government is subject to
+% restrictions as set forth in FAR 52.227-19(c)(2) (June, 1987)
+% when applicable or the applicable provisions of DOD FAR supplement
+% 252.227-7013 subdivision (b)(3)(ii) (May,1981) or subdivision
+% (c)(1)(ii) (May, 1987). Contractor/manufacturer is Bitstream Inc. 
+% /215 First Street/Cambridge, MA 02142.
+%
+% This software is furnished under a license and may be used and  copied
+% only  in  accordance  with  the  terms  of  such  license and with the
+% inclusion of the above copyright notices.  This software or  any other
+% copies  thereof may not be provided or otherwise made available to any
+% other person.  No title to and ownership of  the  software  is  hereby
+% transfered. 
+%
+% The information in this software is subject to change  without  notice
+% and  should  not  be  construed  as  a commitment by Digital Equipment
+% Corporation.
+%
+% BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
+% WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
+% WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+% BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY 
+% SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+% RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+% CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+% CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+% 
+/n_chars  128 def
+/DC
+  {
+  /bits exch def
+  /name exch def
+  /num exch def
+  num 256 lt {Encoding num name put} if
+  CharStrings name bits put
+  } bind def
+/bsd 15 dict def
+bsd begin
+  /FontType 3 def
+  /FontName /Dutch801-Roman-DECmath_Extension def
+  /PaintType 0 def
+  /UniqueID 440185 def
+  /FontMatrix [.001 0 0 .001 0 0] def
+  /FontInfo 12 dict def
+  /CharStrings 1 n_chars add dict def
+  CharStrings /.notdef <0F> put
+  /Encoding 256 array def
+  0 1 255 {Encoding exch /.notdef put} for
+  /temp 15 dict def
+  temp begin
+    /get-word
+      {
+      0 s i get add 8 bitshift
+      /i i 1 add def
+      s i get add 32768 sub
+      /i i 1 add def
+      } bind def
+    /get-byte
+      {
+      s i get 128 sub
+      /i i 1 add def
+      } bind def
+    /get-name
+      {
+      /len s i get def
+      /i i 1 add def
+      s i len getinterval
+      /i i len add def
+      } bind def
+    /eval-arr 16 array def
+    eval-arr 16#00 {get-word 0} bind put
+    eval-arr 16#01 {4 {get-word} repeat setcachedevice newpath} bind put
+    eval-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put 
+    eval-arr 16#03 {2 {get-word} repeat lineto} bind put 
+    eval-arr 16#04 {6 {get-word} repeat curveto} bind put 
+    eval-arr 16#05 {4 {get-word} repeat get-name do-char} bind put 
+    eval-arr 16#06 {0 get-word rlineto} bind put 
+    eval-arr 16#07 {get-word 0 rlineto} bind put 
+    eval-arr 16#08 {0 get-byte rlineto} bind put 
+    eval-arr 16#09 {get-byte 0 rlineto} bind put 
+    eval-arr 16#0A {2 {get-byte} repeat rlineto} bind put 
+    eval-arr 16#0B {6 {get-byte} repeat rcurveto} bind put 
+    eval-arr 16#0F {end PaintType 2 eq
+                     {temp begin stroke exit}
+                     {temp begin fill exit}
+                     ifelse } bind put
+    /do-char-arr 16 array def
+    do-char-arr 16#00 {get-word pop} bind put
+    do-char-arr 16#01 {4 {get-word pop} repeat} bind put
+    do-char-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put
+    do-char-arr 16#03 {2 {get-word} repeat lineto} bind put
+    do-char-arr 16#04 {6 {get-word} repeat curveto} bind put
+    do-char-arr 16#05 {4 {get-word} repeat get-name do-char} bind put
+    do-char-arr 16#06 {0 get-word rlineto} bind put 
+    do-char-arr 16#07 {get-word 0 rlineto} bind put 
+    do-char-arr 16#08 {0 get-byte rlineto} bind put 
+    do-char-arr 16#09 {get-byte 0 rlineto} bind put 
+    do-char-arr 16#0A {2 {get-byte} repeat rlineto} bind put 
+    do-char-arr 16#0B {6 {get-byte} repeat rcurveto} bind put 
+    do-char-arr 16#0F {closepath exit} bind put
+    /eval
+      {
+      /s exch def
+      /i 0 def
+        {
+        /t s i get def
+        /i i 1 add def
+        eval-arr t get exec
+        } loop
+      } bind def
+    /do-char
+      {
+      t s i matrix currentmatrix
+      2 {6 index} repeat translate
+      2 {8 index 256 div} repeat scale
+      end CharStrings 5 index get
+      temp begin /s exch def
+      /i 0 def
+        {
+        /t s i get def
+        /i i 1 add def
+        do-char-arr t get exec
+        } loop
+      setmatrix
+      [/i /s /t] {exch def} forall
+      5 {pop} repeat
+      } bind def
+    end
+  /BuildChar
+    {
+    exch begin
+      0.2 setflat
+      Encoding exch get
+      CharStrings exch
+      2 copy known not { pop /space } if get
+      temp begin eval end
+      end
+    } bind def
+  FontInfo /version (Fontware-PSO 1.6) put
+  FontInfo /OutlineResolution 1000 put
+  FontInfo /Copyright (Copyright 1989 by Bitstream,Inc. and Digital Equipment 
Corp. All Rights Reserved.) put
+  FontInfo /Notice (Dutch 801 is a registered trademark of Bitstream, Inc.) put
+  FontInfo /Date (1989/4/13 12:28:18) put
+  FontInfo /FullName (Dutch 801 Roman DECmath_Extension (TM)) put
+  FontInfo /FamilyName (Dutch 801) put
+  FontInfo /Weight (Medium) put
+  FontInfo /ItalicAngle 0.00 put
+  FontInfo /isFixedPitch false put
+  FontInfo /UnderlinePosition -100 put
+  FontInfo /UnderlineThickness 60 put
+  32 /parenlfs4 <0083180180e27480830280290282cd802a04822b7f7981b47ebd81667dd604
+    81097cc380e37b7780e37a560480e37934810977e8816676d50481b875e48226753882cd
+    748109b5048270752e821775c381cd769f04816677cf813f7915813f7a5604813f7b968166
+    7cdc81cd7e0d0482147ee182747f828302802a094b0F> DC
+  33 /parenrts4 <008318018015748082348029028015802a0480a37f8381047edf814b7e0d04
+    81b27cdc81d87b9681d87a560481d8791581b277cf814b769f04810075c280a8752f8015
+    748109b60480f27539815f75e381b176d504820e77e78235793582357a560482357b76820e
+    7cc481b17dd60481617ec280ef7f76804b802a094a0F> DC
+  34 /bracketlfs4 
<008247018115748082398029028116802a06745707812308c0077f1e068b2907
+    80e208c0077edd0F> DC
+  35 /bracketrts4 
<00824701800d74808131802902800e802a08400780e30674d7077f1d084007
+    8124068ba9077edc0F> DC
+  36 /bracketlfbts4 
<00827f018115748082718033028116803306744e07815b08c0077ee6068b7209
+    3f0F> DC
+  37 /bracketrtbts4 
<00827f01800d748081698033028128803306748e077ee6084007815b068bb209
+    3f0F> DC
+  38 /bracketlftps4 
<00827f018115747782718029028116802a06744d09c1068b7307811a08c007
+    7ea50F> DC
+  39 /bracketrttps4 
<00827f01800d74778169802902800e802a084007811a06748d09c1068bb307
+    7ea50F> DC
+  40 /bracelfs4 <0083410180b0748082bd8029028289802a0481df7fdf81857f5681857e9906
+    7d4d0481857b9981787b4a81547b0604812d7abd80f57a8f80b07a66085f04814779eb8185
+    7974818578c5067d4a04818575a481a7753e81ee74ed04821c74b9824b749c8289748109b4
+    08a004821b74e981e6756881e6761206828e0481e6797e81a379e180ef7a560481a57acc
+    81e67b2a81e67c0b06828e0481e67f41821d7fc382bd800908a1094c0F> DC
+  41 /bracerts4 
<008341018083748082918029028084802a085f0481257fc3815b7f42815b7e99
+    067d7204815b7b2a819d7acc82527a5604819f79e1815b797d815b78a0067d7204815b7568
+    812674e9808474a1086009b40480f6749c812674b9815474ed04819b753e81bc75a381bc
+    760f0682b60481bc797481fb79eb82917a4508a10481f87ac281bc7b3381bc7be60682b304
+    81bc7f5681627fdf80b8802a094c0F> DC
+  42 /anglelfs4 
<00832601808a748082bc8029028284802a03808b7a56038284748109b80380c2
+    7a560382bc802a09480F> DC
+  43 /anglerts4 
<0083260180697480829a80290280a1802a09490382637a5603806a748109b703
+    829b7a560380a1802a0F> DC
+  44 /slashs4 <0084fe01802e748084cf8029028498802a03802e748109b80384cf802a0949
+    0F> DC
+  45 /backslashs4 
<0084fe01802e748084cf802902802e802a038498748109b7038066802a0948
+    0F> DC
+  46 /slash <00832b018025792a830580290282cc802a038026792b09b9038305802a0947
+    0F> DC
+  47 /backslash <00832b018025792a8305802902805f802a09470382cc792b09b903805f802a
+    0F> DC
+  48 /parenlefttp 
<00836b01812d79218341802902830f802a0481917e25812e7c06812e798c0816
+    09e208e60481907aea81a47c4282077d990482507e9482b27f578342802a094d0F> DC
+  49 /parenrighttp 
<00836b0180287921823c8029028028802a0480b97f55811a7e9581637d9904
+    81c67c4281da7aea81da7988081a09e208ea04823c7c0481d87e26805b802a094d0F> DC
+  50 /bracketlefttp 
<00829b0181427921828f8029028142802a0678f809c10686c807810d08c007
+    7eb20F> DC
+  51 /bracketrighttp 
<00829b01800a79218158802902800b802a084007810d06793809c006870807
+    7eb30F> DC
+  52 /bracketleftbt 
<00829b018142792a828f803302814280330678f807814e08c1077ef30686c709
+    3f0F> DC
+  53 /bracketrightbt 
<00829b01800a792a815880330281188033067939077ef3083f07814d06870809
+    400F> DC
+  54 /bracketleftex <00829b0181427d6a818380330281428033067d3809c10682c8093f0F> 
DC
+  55 /bracketrightex 
<00829b0181177d6a815880330281188033067d3809c00682c809400F> DC
+  56 /bracelefttp 
<0083790181867c7082d4800002829d80000481da7f6381867f1581877e0c06
+    7e6509ea0681a40481f17ef082317f5382d47fd808a809490F> DC
+  57 /bracerighttp 
<0083790180a37c7081f180000280a4800008580481497f5181867ef281877e15
+    067e5c09ea06819b0481f17f15819e7f6380db800009490F> DC
+  58 /braceleftbt 
<0083790181867c7a82d480090281878009067e660481867d6681da7d18829d
+    7c7a09b708a904822e7d2a81f17d8781f17e660681a309160F> DC
+  59 /bracerightbt 
<0083790180a37c7a81f180090281878009067e5d0481867d8881497d2a80a4
+    7ca3085709b704819f7d1a81f17d6481f17e6f06819a09160F> DC
+  60 /braceleftmid 
<0083790180a3790a81f180090281878009067e540481867d7e814a7d2280a4
+    7c9a08610481497bf481867b9581877ab8067e5309ea06819b0481f17ba281a87bf580ec
+    7c8a0481a97d2181f17d7181f17e6f06819a09160F> DC
+  61 /bracerightmid 
<008379018186790a82d480090281878009067e660481867d7381d07d20828c
+    7c8a0481d07bf681867ba181877aa6067e6509ea0681ad0481f17b9382317bf682d47c7b08
+    9f04822e7d2181f17d7e81f17e5d0681ac09160F> DC
+  62 /braceex <0083790181867ed381f180090281878009067ecb09ea06813509160F> DC
+  63 /arrowvertex <00829b0181367d9d816480000281368000067d9e09ae06826209520F> DC
+  64 /parenleftbtex 
<00836b01812d792a8341803302812e8033081604812e7e61814d7cfd81c27ba5
+    0482167aae827779f9830f792b09b30482ae7a0482527aba82077bbd0481a37d1781907e68
+    81907fce08e5091e0F> DC
+  65 /parenrightbtex 
<00836b018028792a823c80330281da8033081b0481da7e6b81c67d1381637bbd
+    0481187ab980bc7a058028792b09b30480f379f981547aae81a87ba504821c7cfb823c7e62
+    823c7fc908ea091e0F> DC
+  66 /parenleftex <00836b01812d7d6a8190803302812e8033067d3809e20682c8091e0F> DC
+  67 /parenrightex <00836b0181d97d6a823c80330281da8033067d3809e20682c8091e0F> 
DC
+  68 /angleleft 
<0082ee01808a76d582798029028241802a03808b7b8003824176d609b80380c3
+    7b80038279802a09480F> DC
+  69 /angleright 
<0082ee01807476d5826380290280ad802a094803822b7b8003807576d609b803
+    82637b800380ad802a0F> DC
+  70 /unionsqr 
<0083410180377c1f83097ffa0280787fd90B80aa3faa4080067c670B7f688660
+    a0600782910B9380a18da1a00683990B7faa3faa3f80067c88077daf0683780F> DC
+  71 /unionsqrdsp 
<0084570180377a94841f800002808b7fd70B80b52cb52d80067aea0B805f8954
+    ac5407838f0B9b80ad92adac0685160B80b52bb52c80067b10077cbf0684f00F> DC
+  72 /integralcon 
<0081d80180387ba8826c800002822f7fd20B5a705736832d0Bb773c9b1acd604
+    823a800381f4800d81c17ff204815b7fbb81537ef681467e9004807e7e7680607d6a8122
+    7d2004811e7ced81197cbb81137c8804810d7c52810d7c0d80e77be10B625d2f500c710B9b
+    95acc387d60B5c923972404e0480457bb5808b7ba180c47bac0481567bc9815f7ca1816e
+    7d1704823e7d3182597e4681937e8a04819a7ed1819f7f1881a67f5f0B84a68adaa7f60B9e
+    9ec89de27d0281417e620481387e06812e7daa81277d4d0480a27d8a80b37e3f81417e6202
+    818f7e5c04821b7e2382097d6781737d4504817e7da281877dff818f7e5c0F> DC
+  73 /integralcondsp 
<00822c018045774983b8800a0283787fdc0B4f774c3c6d280Ba768e385cfcd04
+    83a18017832e801d83007fe50482977f6982387d7182147cba0481967cba812e7c6b810b
+    7bef0480f57ba181087b5081347b0e0481577ada817b7ac381b37aad0481967a0f814f781e
+    8101779d0B685737300a550Ba798a6c88adc0B569e19713b2d0B8d66ab5ac6530Ba277c47e
+    e19104814c7796817378028190785e0481ca791881ec79d982127a980Ba683c989ec9804
+    82c97ad183057b12831a7b6204832f7bae83217c0282f57c440B60b034cd02e60482967d55
+    82b37e0082d57eab0482e37eef83047f90831d7fca0B8fa3c5b9db9202820d7c8f0481f1
+    7bfb81d67b6881bb7ad50480cc7b3781207c96820d7c8f02826d7c7d0483517c1583147ad7
+    821a7ac20482367b5682527be9826d7c7d0F> DC
+  74 /circledot <0084570180377c18841f800002822c800004811b800080387f1e80387e0d04
+    80377cff811e7c19822c7c1904833d7c1984207cfb84207e0d04841f7f2183408000822c
+    800002822c7fc004831a7fc083de7efb83df7e0d0483df7d1f831a7c5a822c7c5a048142
+    7c5a80787d2380787e0d0480787ef981407fc0822c7fc002822c7e520481d17e5281d27dc8
+    822c7dc80482867dc882877e53822c7e520F> DC
+  75 /circledotdsp 
<0085ea0180367a8585b280000282f58000048175800080377ec080377d4304
+    80377bc9817c7a8682f57a850484757a8685b37bc285b27d430485b27ec58479800082f5
+    80000282f57fb204844e7fb285637e9b85637d430485637beb844b7ad582f57ad40481a5
+    7ad580877bf380867d430480867e9781a27fb282f57fb20282f47d9f0B5080255525240B81
+    51ad25db250Bb180dcabdcdb0B81b257dc24dc0F> DC
+  76 /circleplus 
<0084570180377c18841f800002822c800004811a800080377f2080387e0d04
+    80387cfe811d7c19822c7c190483407c19841f7cfa84207e0d0484207f2383428001822c
+    800002820b7fbe067e6f077e6d04808c7e9880a97ef280f97f420481447f8c81a37fb5820b
+    7fbe02824c7fbe0482b47fb583137f8c835e7f420483b07ef083ca7e9983df7e2d077e6d06
+    81910280787ded078193067e6f0481a07c6681477c8b80f97cd80480a67d2b808d7d808078
+    7ded02824c7ded0781930483ca7d8083b17d2b835e7cd80483117c8b82b67c66824c7c5c06
+    81910F> DC
+  77 /circleplusdsp 
<0085ea0180367a8585b280000282f4800004823c800081897fb981077f3604
+    80857eb480377dfb80377d430480387bc781787a8782f47a860484757a8585b27bbf85b2
+    7d430485b37eca847b800182f480000282ce7fb0067dbb077db60480a27e0880c77e88813e
+    7efe0481ab7f6a82377fa582ce7fb002831c7fb00483b37fa5843f7f6a84ab7efe048522
+    7e8785477e0885657d6b077db70682450280847d1d07824a067dbb0482317ae681b17b18
+    813e7b8a0480c67c0280a27c7f80847d1d02831c7d1d0782490485477c7e85257c0484ab
+    7b8a0484377b1783ba7ae7831c7ad80682450F> DC
+  78 /circlemultiply 
<0084570180377c19841f800002822c8000048119800080377f2080387e0d04
+    80387cf781167c1b822c7c1904833c7c19841f7cfd841f7e0d04841f7f1b833a8001822c
+    80000283457f5603822a7e3b03810d7f580481647f9381be7fc0822b7fc00482957fc082f5
+    7f9883457f560280e07f2a0381fc7e0d0380e17cf204809e7d4380777da080777e0c048077
+    7e7c80a37ed180e07f2a0283727f280483b57ed883dc7e7983dc7e0f0483dc7d9883b27d4e
+    83747cf10382577e0d0383727f2802822a7de00383467cc30482e97c8482a07c5b82287c5b
+    0481ba7c5b81627c80810f7cc503822a7de00F> DC
+  79 /circlemultdsp 
<0085ea01803a7a8685b580000282f880000481768000803b7ec6803b7d4504
+    803b7c8f80847bd581057b540481867ad282417a8882f87a870484777a8685b57bc685b5
+    7d440485b57ebe8472800282f880000284917f150382f67d7b0381587f190481da7f718253
+    7fb382f87fb20483917fb2841e7f7884917f150281217ee20382bf7d450381257ba90480bf
+    7c2180887ca180887d420480877deb80c87e5e81217ee20284c77edf04852b7e6d85637ddf
+    85637d460485637c9b85257c2c84ca7ba703832c7d450384c77edf0282f57d0e0384937b70
+    04840e7b14839f7ad682f37ad60482507ad781d47b0f815b7b730382f57d0e0F> DC
+  80 /summation 
<0084200180397c1883e380000280398000085c0381a07ded0380397c31086807
+    83590383e27d1309660483b17cdd83977cb483667c910483177c5b82b27c5382557c5307
+    7e350381f17e0e0380a97fd30781890482e07fd383777fbd83c97f14099b038397800007
+    7ca20F> DC
+  81 /product <0083b00180377c1883798000028038800008530Bbd81e569e525067d2a0B803b
+    59241b25085207812308ae0B427f1a961adb0683310781c6067ccf0B803c58241a25085207
+    812408ae0B427f1a971adb0682d60B80c4a8dce6db08ad077cbf0F> DC
+  82 /integral 
<0081d80180387ba8826c800002822f7fd20B667559556b3c0B9563c76ed08f04
+    82817ff181fa801e81b27fe904815f7fa981597f20814c7ec20481337e15812c7d678119
+    7cba0481137c82810f7c4a81017c140B7a666a4d543c0B60693a671e820Bb5aa97ee5fd704
+    80187c1180457ba980a37ba90480ff7ba981307bed81497c3e04815c7c8181647cc8816d
+    7d0d04817a7d7981867de581907e520481987eaa819c7f0281a57f5a0B85a78adea8fb0B9e
+    9ec89de27d0F> DC
+  83 /union <0083410180377c1f83097ffa0280787fd90B80aa3faa4080067dde0480377d68
+    80427d1a806a7cd40480a97c6581227c2081a17c2004821f7c20829b7c6582d97cd4048300
+    7d1a830a7d69830a7db70682220B7faa3faa3f80067dde0482c97d7382c27d31829f7cf404
+    826b7c9a82097c6181a17c610481397c6180d37c9980a07cf404807f7d3180787d748078
+    7db70682220F> DC
+  84 /intersection 
<0083410180377c1f83097ffa02830a7e6304830a7eb183007f0082d97f4604
+    829b7fb5821f7ffa81a17ffa0481227ffa80a97fb5806a7f460480427f0080377eb28038
+    7e63067dde0B7f55c055c0800682220480787ea6807e7ee980a07f260480d37f8181397fb9
+    81a17fb90482097fb9826c7f80829f7f260482c27ee982c97ea782c97e63067dde0B8055c0
+    55c1800682220F> DC
+  85 /unionmultiset 
<0083410180377c1f83097ffa0280787fd90B80aa3faa4080067dde0480377d68
+    80427d1a806a7cd40480a97c6581227c2081a17c2004821f7c20829b7c6582d97cd4048300
+    7d1a830a7d69830a7db70682220B7faa3faa3f80067dde0482c97d7382c27d31829f7cf404
+    826b7c9a82097c6181a17c610481397c6180d37c9980a07cf404807f7d3180787d748078
+    7db70682220281be7ee80B80ab3fab3f80067f5f077f600B5581554080400780a0067f5f0B
+    8154c154c1800680a10780a10Bab80abc080c0077f5f0680a10F> DC
+  86 /logicalor 
<0083410180387c16830980000281c17fe80B759f4aa03f8003803c7c450B7052
+    ad40bc6b0381a17f7e0382c97c300B8f55cc67bd950381c17fe80F> DC
+  87 /logicaland 
<0083410180387c16830980000280787fe80B71aa3497446c0381807c300B8c5f
+    b55fc1800383067fd40B8eab52bf43940381a17c9a0380787fe80F> DC
+  88 /summationdsp 
<0085a40180377a78856d80000280388000085c03824a7d020380387a8d086b07
+    84b703856d7bca096004852d7b86850c7b5384ca7b2904844c7ad983a27ad783127ad707
+    7da80382c77d430380ee7fce0782310483a47fce84347fc984ac7f8a0484f77f6285217f2e
+    854b7ee609a20384f48000077b440F> DC
+  89 /productdsp 
<0084fe0180377a7884c68000028038800008400480907fc280de7fa780de7f3f
+    067bfb0480de7ad180917ab880387aba083e0781e108c20481bf7ab881727ad181727b3a06
+    8486078219067b7a04838b7ad1833f7ab882e57aba083e0781e108c204846c7ab884207ad0
+    84207b3a0684050484207fa7846e7fc284c67fc008c0077b720F> DC
+  90 /integraldsp 
<00822c018045774983b8800a0283787fdc0B5f7a51605c400B8b60b259cd690B
+    a4959bd380ec048379801383308016830a7ff00482b17f9582637e3682477db50481f27c24
+    81ae7a8a816378f504815478a4812a77a780db77710B666e496c30810480d0779e808e77fb
+    805777ca04801f77998070772f80d6774f0481477773817e781d819a78810481c8792181e9
+    79c482087a6804823b7b6e826d7c75829d7d7d0482a67db082fb7fa983277fdb0B9699bfa1
+    d1810F> DC
+  91 /uniondsp 
<0084570180377a94841f800002808b7fd70B80b52cb52d80067cf30480377c5c
+    80477bf0807e7b8f0480d57af6817b7a95822b7a950482db7a9583867af583dc7b8f048413
+    7bf0841f7c5c84207cca06830d0B80b52bb52c80067cf20483cc7c6783c57c1283927bba04
+    834a7b3c82be7ae8822c7ae804819b7ae8810c7b3b80c57bba0480987c0c808b7c6c808b
+    7cc906830e0F> DC
+  92 /intersectdsp 
<0084570180377a94841f80000284207dcc04841f7e3a84137ea683dc7f0704
+    83867fa182db8000822b800004817b800080d57fa0807e7f070480467ea680377e3a8038
+    7dcc067cf30B7f4cd347d38006830e04808b7e2a80977e8a80c57edc04810c7f5b819b7fae
+    822c7fae0482be7fae834a7f5a83927edc0483c57e8483cc7e2f83cc7dcd067cf20B804cd3
+    47d48006830d0F> DC
+  93 /unionmultdsp 
<0084570180377a94841f800002808b7fd70B80b52cb52d80067cf30480377c5c
+    80477bf0807e7b8f0480d57af6817b7a95822b7a950482db7a9583867af583dc7b8f048413
+    7bf0841f7c5c84207cca06830d0B80b52bb52c80067cf20483cc7c6783c57c1283927bba04
+    834a7b3c82be7ae8822c7ae804819b7ae8810c7b3b80c57bba0480987c0c808b7c6c808b
+    7cc906830e0282537e820B80be2cc02d80067f1c077f1c0B4381402d802d0780e4067f1c0B
+    8044d33ed3800680e40780e40Bbe80c0d480d3077f1c0680e40F> DC
+  94 /logicalordsp 
<0084570180377a92841f800d0282557fee0B72a83aaa2c8003803c7ace0B6a44
+    bb2dcf6503822c7f640383cc7ab30B9448e45fcf9b0382557fee0F> DC
+  95 /logicalanddsp 
<0084570180377a92841f800d02808b7fee0B6db71ca131650382017ab30B8f55
+    c556d48003841b7fd30B95bb45d2319b03822c7b3e03808b7fee0F> DC
+  96 /coproduct 
<0083b00180377c1883798000028038800008530Bbd81e569e525067d2a0B803b
+    59241b25085207834108ae0B427f1a971adb0682d60B80c4a8dce6db08ad077edc08530Bbe
+    81e669e625067ccf077e3a0683310B80c4a9dce6db08ad077edd0F> DC
+  97 /coproductdsp 
<0084fe0180377a7884c680000280388000083f0480907fc180de7fa780de7f3f
+    067bfb0480de7acf80927ab880387aba083e07848e08c204846c7ab884207acf84207b3a06
+    84050484207fa7846e7fc184c67fbf08c1077e1f083f04833e7fc1838b7fa7838b7f3f06
+    7b7b077de70684850481727fa781c07fc182197fbf08c1077e1f0F> DC
+  98 /circumflex 
<00822c017ffc8230823082e702811582e8037ffc82470A8d6903811582af03
+    822282300A8e9703811582e80F> DC
+  99 /circumflexwide 
<0083e8017fff823e83e983060281f48307037fff82580A84670381f482ce03
+    83e5823f0A84990381f483070F> DC
+  100 /circumflvrywid 
<0085a4017ffc824085a883070282d28307037ffd825a0A86660382d282cc03
+    85a182400A879a0382d283070F> DC
+  101 /tilde <00822c0180018260822a82d602821c82d60481c7828f817e8272811982b104
+    80a682fb805c82be800282720A8d6e04805d82a580b182c5810e828504817d823b81d5827b
+    822a82c70A728f0F> DC
+  102 /tildewide 
<0083e8018000826483e182f10283d682f204832f829f82a7826d81f182bb04
+    8132830d80ac82cf800082760A886f0480b082b1812582e581db82960482a1824183318280
+    83e282e00A74920F> DC
+  103 /tildevrywide 
<0085a4018000827885a482fe02859e82fd0484ad82ae83ea827b82f082d004
+    827a82f982018308818582f60480ff82e2807f82bb8000828c0A886c0480f982cd81da8307
+    82d482ad048353828083d48275845a828c0484cd829f853982bf85a482ee0A7a8f0F> DC
+  104 /bracketfls2 
<0081d80180de792a81c580290280de802a0679010780e808b8077f5006869007
+    80b008b7077f180F> DC
+  105 /bracketrts2 
<0081d8018012792a80fa8029028013802a08490780af067970077f51084807
+    80e70686ff077f190F> DC
+  106 /bracketlfbts2 
<0082100180de792a81fd80330280de80330678f807811f08b8077f190686d009
+    480F> DC
+  107 /bracketrtbts2 
<008210018012792a813180330280fa8033067930077f19084807811f06870809
+    480F> DC
+  108 /bracketlftps2 
<0082100180de792181fd80290280de802a0678f809b80686d10780e708b707
+    7ee10F> DC
+  109 /bracketrttps2 
<008210018012792181318029028013802a08490780e706792f09b806870807
+    7ee10F> DC
+  110 /bracelfs2 
<00829b018075792a8234802902820d802a0481d28019819a8005816c7fdc04
+    81307fa681287f7681287f2a067e780481287d1880e87cf180757cb908640480e87c658128
+    7c3c81287bb4067e7804812879d7813179a88178796f0B9a6bb85bd7500Ba871bc6ce66c08
+    9e0481b27969817279a481727a330681670481727be6816b7c1d81357c570B5da532bd06d4
+    0Bac97d7aefad304816b7d3881727d6f81727dbc0681660481727fb081b37fed8235800c08
+    9e09580F> DC
+  111 /bracerts2 
<00829b018065792a82258029028066802a08620480e87fed81287fb081287f22
+    067e9a0481287d70812f7d3881667cfe0Ba25bce43fa2d0B54692851062c04812f7c1e8128
+    7be681287b9a067e9904812879a480e979698066794908620B8d809a80a8800B9285a38bb5
+    910B9e89b998d3aa048167799f817279d081727a2c0681880481727c3b81b47c6682267c9d
+    089c0481b27cf181727d1981727da20681880481727f7e81697fae81237fe60480ee8010
+    80a9802a8066802a0F> DC
+  112 /radicals1 
<0083e80180667b80840e80390283db80390381cd7be80380f87de20380667d72
+    0A916b0Ac9ba0381a47b8009aa03840e8039094d0F> DC
+  113 /radicals2 
<0083e80180667926840e80390283dc80390381cb79bb0380f87cb50380667c0d
+    0A926c0Ac7d50381a2792609a903840e8039094e0F> DC
+  114 /radicals3 
<0083e801806676cc840e80390283de80390381c9778e0380f97b880380667aa8
+    0A946d0Ac4f003819f76cd09aa03840e803909500F> DC
+  115 /radicals4 
<0083e80180667472840e80390283df80390381c775620380f97a5b0380667943
+    0A956e0380bd79bb03819d747309aa03840e803909510F> DC
+  116 /radicalbtex 
<008420018073790182e980170282bb80170679eb0381007f5f0380737e4c0A92
+    6e0380d47edb0382be790109ab06871609520F> DC
+  117 /radicalex <0084200182ba7d8682e980170282bb8017067d7009ae06829009520F> DC
+  118 /radicaltpex 
<0084200182ba7d868436802e0282bb802e067d5909ae06827907814e08ae07
+    7e840F> DC
+  119 /arrowdblvertex 
<00830a0180fc7d9d820980000280fc8000067d9e09af06826209510281db8000
+    067d9e09af06826209510F> DC
+  120 /arrowupex 
<00829b0180657d9d8234800002814d80000481077fa180d97f6b80667f450850
+    0480c47f2d80f47f5681367f9d067e0109ae0681ff0481a57f5781d77f2d82357f1508b004
+    81c07f6c81947fa0814d80000F> DC
+  121 /arrowdownex 
<00829b0180657d9d823480000281368000067e020480f97e4480be7e738066
+    7e8a08500480d47e35810a7df9814d7d9e0481907df981c77e3682357e5a08b00481dc7e73
+    81a27e4481647e020681fe09520F> DC
+  122 /bracehzlfdnex 
<0081bc017fee7f3181cf806a028197806a0480d2806a803f80077fee7f57085b
+    09b20480467f7c80787fac80c47fd204811c7ffe816f800081cf800008ea09480F> DC
+  123 /bracehzrtdnex 
<0081bc017fee7f3181cf806a027fee806a081604804280008094800080e37fdc
+    04813a7fb681727f84819d7f3209b208a50481a97fa981757fed812880200480c180658064
+    806a7fee806a0F> DC
+  124 /bracehzlfupex 
<0081bc017fee800081cf8139027fee8139085c04801480c0804580808094804b
+    0480fb80068158800081cf800008ea04817a806a8128806c80d9808f04808180b6804b80e6
+    80208139094e0F> DC
+  125 /bracehzrtupex 
<0081bc017fee800081cf813902819d813904817580ee814680c080f8809904
+    80a2806e804b806a7fee806a0816048053800080b58005810f803b04816c807181a380b6
+    81cf811508a4094e0F> DC
+  126 /arrowdblvttpex 
<00830a0180377d9d82d2800002818580000481567fb2812e7f7b80e97f3d04
+    80ad7f0780807eed80387ecf084f04808b7ec180b47ed980fc7f11067e8d09af0681a00B9f
+    a2bdc4dae80B9c5eb93bd61a067e5e09af0681790482547eda827b7ec282d27e9e08b104
+    82327f1181dd7f6e818580000F> DC
+  127 /arrowdblvtbtex 
<00830a0180377d9d82d280000280fc8000067e8e0480bc7ec080827ee18038
+    7f01084f0480d17e9081317e2b81857d9e0481d97e2b82397e9082d27ed008b10482847ee1
+    824c7ebe820a7e880681780951067e5f0B635f463c2a1a0B63a445c626e806819f0951
+    0F> DC
+  160 /parenlefts1 
<0081ca0180797b7d81a08029028186802a0481457ff9810b7fc680e17f7f04
+    80967efe807a7e68807a7dd404807a7d39809a7c9b80ea7c140481117bd381487ba78186
+    7b7d099b0481657baf81327bdf810f7c260480cc7cac80bc7d4180bc7dd40480bc7e6c80cd
+    7f0681147f8f0481367fd081687ffe81a1802a09650F> DC
+  161 /parenrights1 
<0081ca0180297b7d81508029028045802a09650480627ffe80957fd080b67f8f
+    0480fd7f06810e7e6c810e7dd404810e7d4180fe7cac80bc7c260480977bdd80677bb0802a
+    7b7d099b0480847ba980b77bd080e07c140481317c9b81507d3981507dd40481507e688134
+    7efe80e97f7f0480bf7fc680857ff98045802a0F> DC
+  162 /bracketlfs1 
<0081a10180c27b80818b80290280c2802a067b560780ca08b3077f6906844507
+    809708b2077f360F> DC
+  163 /bracketrts1 
<0081a10180147b8080de8029028015802a084e078096067bbb077f6a084d07
+    80c90684aa077f370F> DC
+  164 /bracketlfbts1 
<0081d80180c27b8081c380330280c28033067b4d07810108b3077f3206848009
+    4d0F> DC
+  165 /bracketrtbts1 
<0081d80180147b80811580330280e38033067b80077f32084d0781010684b309
+    4d0F> DC
+  166 /bracketlftps1 
<0081d80180c27b7681c380290280c2802a067b4d09b30684810780ce08b207
+    7eff0F> DC
+  167 /bracketrttps1 
<0081d80180147b7681158029028015802a084e0780ce067b7f09b30684b307
+    7eff0F> DC
+  168 /bracelfs1 
<0082470180577b8081f080290280587de208660Ba777d26ff3580Bad60af3daf
+    0b067f0d0480f97ba881757b8081f07b80089c04817b7ba781387bba81397c440680d204
+    81387d9f81067db9808c7dd50481077df281387e0a81397e950680d20481387ff1817b8002
+    81f0800e089c048176802a80f9800080fa7f72067f0e0B804e7d2b510b0B5f6934610d57
+    0F> DC
+  169 /bracerts1 
<0082470180567b8081ef80290281f07de20B598a2d920ca90B54a051c351f506
+    80f204814d800180d3802a8057802a08640480cd8002810f7ff1810f7f67067f2e04810f
+    7e0a81417df281bc7dd50481427db9810f7d9f810f7d16067f2e04810f7bba80cd7ba78057
+    7b9c08640480d37b80814d7ba7814d7c380680f30B80b283d5aff50Ba197cd9ff4a8089a
+    0F> DC
+  170 /anglelfs1 
<0081d80180607b80819c8029028162802a0380607dd50381627b8009ba03809b
+    7dd503819c802a09460F> DC
+  171 /anglerts1 
<0081d801803c7b8081788029028077802a094503813e7dd503803c7b8009bb03
+    81787dd5038077802a0F> DC
+  172 /linevertex <00814d01808f7da280bd80330280908033067d7009ae06829009520F> DC
+  173 /linedblvertex 
<00822c01808f7da2819c80330280908033067d7009ae068290095202816e8033
+    067d7009ae06829009520F> DC
+  174 /slashs1 <0082470180247b80822280290281e8802a0380257b8009ba038223802a0945
+    0F> DC
+  175 /backslashs1 
<0082470180247b808222802902805f802a09460381e87b8009bb03805f802a
+    0F> DC
+  176 /parenlfs2 
<0082550180b27929822b8029028208802a0481b87fdb816f7f8a81397f2604
+    80d17e6280b27d8580b27caa0480b27bcf80d17af281397a2e04816f79c881b779798208
+    792909a40481df7978819e79c581717a2b0481177af480fd7bd080fd7caa0480fd7d848117
+    7e6081717f2904819e7f8d81e07fdd822c802a095c0F> DC
+  177 /parenrts2 
<008255018029792981a3802902802a802a0480757fdd80b87f8d80e47f2904
+    813e7e6081587d8481587caa0481587bd0813e7af480e47a2b0480b779c580767978802a
+    792909a30480a0797b80e479c5811c7a2e0481847af281a37bcf81a37caa0481a37d858184
+    7e62811c7f260480e77f8a809d7fdb804d802a095d0F> DC
+  178 /parenlfs3 
<0082e00180ea76d482b6802902828a802a04822a7fbc81d27f4b81907ec804
+    810c7dc380ea7ca180ea7b800480ea7a638109794b818878490481cf77ba8225774d828a
+    76d509ac0482587744820c77a781d27831048162793d813e7a60813e7b8004813e7c9c8161
+    7dbb81ce7ec40482067f4b82597fbc82b6802a09540F> DC
+  179 /parenrts3 
<0082e001802976d481f68029028056802a09540480877fbc80da7f4b81127ec4
+    04817f7dbb81a27c9c81a37b800481a27a60817e793d810e78310480d477a780887744802a
+    76d509ac0480bc774e811077b8815878490481d8794d81f67a6181f67b800481f67ca181d4
+    7dc381507ec804810e7f4b80b67fbc8056802a0F> DC
+  180 /bracketlfs3 
<0082100180f976d581ff80290280fa802a0676ac07810608bc077f360688dc07
+    80ca08bc077efa0F> DC
+  181 /bracketrts3 
<00821001801076d581158029028010802a08440780ca067724077f36084407
+    8106068954077efa0F> DC
+  182 /bracketlfbts3 
<0082470180f976d5823780330280fa80330676a307813d08bc077eff06892109
+    440F> DC
+  183 /bracketrtbts3 
<00824701801076d5814d803302811180330676df077eff084407813d06895d09
+    440F> DC
+  184 /bracketlftps3 
<0082470180f976cc823780290280fa802a0676a309bc06892107810108bc07
+    7ec30F> DC
+  185 /bracketrttps3 
<00824701801076cc814d8029028010802a08440781010676df09bc06895d07
+    7ec30F> DC
+  186 /bracelfs3 
<0082ee01809276d58279802902824b802a0481ad7ff181567f9081577ee106
+    7de30481567c2981187bd780937b8f08620481177b2a81567ad481577a3c067de1048157
+    77b98170776b81ba77260B9a68b854d9450Bb06cb36be66b089f0481e7772581ac778b81ac
+    78230681fa0481ac7ad681707b2680d57b800481707bdb81ac7c2881ac7ce30681fa0481ac
+    7f7181eb7fdc8279800a08a009520F> DC
+  187 /bracerts3 
<0082ee01807576d5825b8029028075802a08600481067fdb81427f7381427edd
+    067e060481427c29817f7bdb821a7b800481807b2781427ad581427a1d067e06048142778c
+    81077725807576f508610B8f809f80ae800B9085a08cb0920B9e8cba9dd3b204817a7760
+    819777b18197781d06821f0481987ad581d87b2a825b7b71089e0481d67bd781987c298197
+    7cc406821d0481977f45817f7f9481347fda0B669848ab27ba0B589146961a960F> DC
+  188 /anglelfs3 
<008263018053792a820080290281c7802a0380547cab0381c7792b09b903808d
+    7cab038200802a09470F> DC
+  189 /anglerts3 
<008263018062792a820f8029028063802a0381d67cab038063792b09b903820f
+    7cab03809c802a09470F> DC
+  190 /slashs3 <00841401802a76d583ea80290283b2802a03802a76d609b90383ea802a0948
+    0F> DC
+  191 /backslashs3 
<00841401802a76d583ea8029028063802a09470383b276d609b8038063802a
+    0F> DC
+
+  /FontBBox {-18 -2958 1461 775} def
+  end
+
+/Dutch801-Roman-DECmath_Extension bsd definefont pop
+
+%%EndFont
+
+
+%%BeginFont: Dutch801-Italic-DECmath_Italic
+% Bitstream Fontware PSO Font -- Version 1.6
+% DECmath Font Version 1.0, created 4-13-89
+%
+% Copyright 1989 by Bitstream, Inc. All Rights Reserved.
+% Copyright 1989 Digital Equipment Corporation
+%
+% This product is the sole property of Bitstream Inc. and
+% contains its proprietary and confidential information
+
+% U.S Government Restricted Rights
+% This software product is provided with RESTRICTED RIGHTS.  Use,
+% duplication or disclosure by the Government is subject to
+% restrictions as set forth in FAR 52.227-19(c)(2) (June, 1987)
+% when applicable or the applicable provisions of DOD FAR supplement
+% 252.227-7013 subdivision (b)(3)(ii) (May,1981) or subdivision
+% (c)(1)(ii) (May, 1987). Contractor/manufacturer is Bitstream Inc. 
+% /215 First Street/Cambridge, MA 02142.
+%
+% This software is furnished under a license and may be used and  copied
+% only  in  accordance  with  the  terms  of  such  license and with the
+% inclusion of the above copyright notices.  This software or  any other
+% copies  thereof may not be provided or otherwise made available to any
+% other person.  No title to and ownership of  the  software  is  hereby
+% transfered. 
+%
+% The information in this software is subject to change  without  notice
+% and  should  not  be  construed  as  a commitment by Digital Equipment
+% Corporation.
+%
+% BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
+% WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
+% WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+% BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY 
+% SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+% RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+% CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+% CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+% 
+/n_chars  128 def
+/DC
+  {
+  /bits exch def
+  /name exch def
+  /num exch def
+  num 256 lt {Encoding num name put} if
+  CharStrings name bits put
+  } bind def
+/bsd 15 dict def
+bsd begin
+  /FontType 3 def
+  /FontName /Dutch801-Italic-DECmath_Italic def
+  /PaintType 0 def
+  /UniqueID 440305 def
+  /FontMatrix [.001 0 0 .001 0 0] def
+  /FontInfo 12 dict def
+  /CharStrings 1 n_chars add dict def
+  CharStrings /.notdef <0F> put
+  /Encoding 256 array def
+  0 1 255 {Encoding exch /.notdef put} for
+  /temp 15 dict def
+  temp begin
+    /get-word
+      {
+      0 s i get add 8 bitshift
+      /i i 1 add def
+      s i get add 32768 sub
+      /i i 1 add def
+      } bind def
+    /get-byte
+      {
+      s i get 128 sub
+      /i i 1 add def
+      } bind def
+    /get-name
+      {
+      /len s i get def
+      /i i 1 add def
+      s i len getinterval
+      /i i len add def
+      } bind def
+    /eval-arr 16 array def
+    eval-arr 16#00 {get-word 0} bind put
+    eval-arr 16#01 {4 {get-word} repeat setcachedevice newpath} bind put
+    eval-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put 
+    eval-arr 16#03 {2 {get-word} repeat lineto} bind put 
+    eval-arr 16#04 {6 {get-word} repeat curveto} bind put 
+    eval-arr 16#05 {4 {get-word} repeat get-name do-char} bind put 
+    eval-arr 16#06 {0 get-word rlineto} bind put 
+    eval-arr 16#07 {get-word 0 rlineto} bind put 
+    eval-arr 16#08 {0 get-byte rlineto} bind put 
+    eval-arr 16#09 {get-byte 0 rlineto} bind put 
+    eval-arr 16#0A {2 {get-byte} repeat rlineto} bind put 
+    eval-arr 16#0B {6 {get-byte} repeat rcurveto} bind put 
+    eval-arr 16#0F {end PaintType 2 eq
+                     {temp begin stroke exit}
+                     {temp begin fill exit}
+                     ifelse } bind put
+    /do-char-arr 16 array def
+    do-char-arr 16#00 {get-word pop} bind put
+    do-char-arr 16#01 {4 {get-word pop} repeat} bind put
+    do-char-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put
+    do-char-arr 16#03 {2 {get-word} repeat lineto} bind put
+    do-char-arr 16#04 {6 {get-word} repeat curveto} bind put
+    do-char-arr 16#05 {4 {get-word} repeat get-name do-char} bind put
+    do-char-arr 16#06 {0 get-word rlineto} bind put 
+    do-char-arr 16#07 {get-word 0 rlineto} bind put 
+    do-char-arr 16#08 {0 get-byte rlineto} bind put 
+    do-char-arr 16#09 {get-byte 0 rlineto} bind put 
+    do-char-arr 16#0A {2 {get-byte} repeat rlineto} bind put 
+    do-char-arr 16#0B {6 {get-byte} repeat rcurveto} bind put 
+    do-char-arr 16#0F {closepath exit} bind put
+    /eval
+      {
+      /s exch def
+      /i 0 def
+        {
+        /t s i get def
+        /i i 1 add def
+        eval-arr t get exec
+        } loop
+      } bind def
+    /do-char
+      {
+      t s i matrix currentmatrix
+      2 {6 index} repeat translate
+      2 {8 index 256 div} repeat scale
+      end CharStrings 5 index get
+      temp begin /s exch def
+      /i 0 def
+        {
+        /t s i get def
+        /i i 1 add def
+        do-char-arr t get exec
+        } loop
+      setmatrix
+      [/i /s /t] {exch def} forall
+      5 {pop} repeat
+      } bind def
+    end
+  /BuildChar
+    {
+    exch begin
+      0.2 setflat
+      Encoding exch get
+      CharStrings exch
+      2 copy known not { pop /space } if get
+      temp begin eval end
+      end
+    } bind def
+  FontInfo /version (Fontware-PSO 1.6) put
+  FontInfo /OutlineResolution 1000 put
+  FontInfo /Copyright (Copyright 1989 by Bitstream,Inc. and Digital Equipment 
Corp. All Rights Reserved.) put
+  FontInfo /Notice (Dutch 801 is a registered trademark of Bitstream, Inc.) put
+  FontInfo /Date (1989/4/13 12:34:32) put
+  FontInfo /FullName (Dutch 801 Italic DECmath_Italic (TM)) put
+  FontInfo /FamilyName (Dutch 801) put
+  FontInfo /Weight (Medium) put
+  FontInfo /ItalicAngle -15.60 put
+  FontInfo /isFixedPitch false put
+  FontInfo /UnderlinePosition -108 put
+  FontInfo /UnderlineThickness 60 put
+  32 /psi <008286017fe97f24825b82560280de8013048022804280c3811880bd818f0B7eb2
+    50d51fc704802281c57fff81887fe981530A97770B8fa0a1c2bfd60B958eab88ab6c048068
+    8151803680f78031809f04802e806c8049803d8071801d0B9d69bf60e4590380967f2509df
+    0381237ff40481ba800b821480848244810e0482528136828081d9822781d60481d781d2
+    821381608215813904821a80ed81f780a581c5806f048199803d816b8021812b80160381af
+    825709610380de80130F> DC
+  33 /omega <0082ac017ffd7ff3826981d30280fb81b90A7f9a04803581b27fad80a6802f
+    80180B9e61cf54f9610Bb58fd3bcecea0B855a8f2fb51d0481787fe781b37ffb81dc801504
+    8276807b82b6819681e481d30A7469048224819782178151820a81040481fd80bb81d9801f
+    817b80170B647e498d3fa80481298070813a80a8814c80d604815a80f981ae81808158818a
+    04810d8192811a80f6811380cb048109808b80e6802c809f801a0B6c7b58834a910B669b67
+    c86ceb04805e80d9807181218090815d0B9bb6b3ccebdc0F> DC
+  34 /epsilon <0081b80180027ff3817181d702815480670A688e0B6555462d10240B4c761b
+    9412ca04805480a1808280dc80bd80e90B9e7de264e48f0B81a93e95299104805a812380a5
+    81d7810d81b50Ba3759c56a43b0B8964ad61bb7b0B96a56fcf4fde04810d81de80d081dd
+    80a081cd04802e81a680168129809180fc0B50741d620235047ff080748008801d804c8002
+    0480807fef80bf7fee80f380040Bad94c8bae1e30F> DC
+  35 /theta1 <008209017ff37ff5821382e702816981db04816881618166808d8106803404
+    80bf7ff38071801f8091808e0480a580d3810381a3809c81d004804881f5800c818e7ff3
+    814e0A97780B8c9cb3f0ddde0480918190804580c4803e80a204802c8044805d7fee80c5
+    7ff6048189800581bc812881c181c60B9a79b373cd6d0A85a20B65864a8d2f940481bd822a
+    81bd8272819782aa04816f82e6811482f980d482d804809182b5807e825a80b882240480e8
+    81f8812b81eb816981db0281698200048138820d80fc821a80dd82440B62a76de9a2f504
+    815b82cd8165823b816982000F> DC
+  36 /omega1 <0082f001800c7ff382e781cc02807e818709b00480738148803d8104803580ab
+    048030806b804b8019808b7fff0480e67fd78123801a814b8063048155801081817fe081da
+    7ffc04821d800f825a8047827880860482a380de829a8130826f818409ea0A8ec9077ddf04
+    805581cd802d81ca800d8152099e0B8ca7abb5d3b5028245818704824f8123823b80b6820a
+    805e0481f1803181b57ff981818027048143805f818980d781a2810e0B94aa8ce955db04
+    813e815a814980ca813e80960B774d4f161d060B4a6e2fa72ed404808780cc80b2813680dc
+    81870781690F> DC
+  37 /rhomath <0082230180037f2081dd81d702813a7f200A94880481587f9c80e77f8a8093
+    7f940480147fa3801f802b8027808a0480358051804c801e808580050480d97fe1813e8003
+    817d80400481ca808b81f6810181ce816a0481ac81c0814781e780f181d104807f81b3803a
+    814a801d80de048002807a7fed7fdf802f7f8604805e7f4880aa7f3e80f27f3f0B9f80b97f
+    c8610280a9815c0480d1819c812c81e8816b81950481a2814b817380ae8146806704811c
+    802380bd7fe980868042048057808e807e811680a9815c0F> DC
+  38 /sigma1 <00816801800a7f99816f81da0280427fc40A78640Ba276c56ce8770Baa8cc7b0
+    d1da04810e8069809180ac805880f8048023813f8068819380b081a404811181ba81258175
+    815681850Bab8eaad245d60480e081dc80a881d1807681b204804081918012815c800c811c
+    047fff80898083807080ac80110B8c6687456c350B667045782a7e0F> DC
+  39 /phi1 <00826c017ffe7f1d823381da0280947ff90380557f1d09d60380e87ff404812c
+    7ff681668005819f802c0481f68069823c80d58233814304822a81b081c58201815b81c804
+    8108819c80ec812a80d580d70380a280240480628041804f8083805380c60480588116807a
+    815980af81930A6b96048046816a7ff8811f7fff80ac048003804e8040801480947ff902
+    811f80bc04813281008144815d819081790B9c8abb81ce6b0B9668954491260481e680c4
+    81c58083818e8056048160802f812c801f80f1801a03811f80bc0F> DC
+  40 /arrowlefttop 
<0083e801803e811283a981d00283a9811308b8077d03038179819e0A6ab303
+    803f8155083e07836a0F> DC
+  41 /arrowleftbot 
<0083e801803e808c83a9814b0283a9814b077c96083e038163808d0A96b303
+    80ac81120782fd08b90F> DC
+  42 /arrowrighttop 
<0083e801803e811283a981d002803f811307836a08c203828581d10A6a4d03
+    833c814b077d0308480F> DC
+  43 /arrowrightbot 
<0083e801803e808c83a9814b02803f814b08470782fd03826f80c00A964d03
+    83a9810908c2077c960F> DC
+  44 /hookleft <00811601809a81128169826b028169814b04811a814680d2816780d581c204
+    80d8821a811e82358169823208b90B57812c7e08690480bd8237809b81fa809b81bf04809b
+    818480bd814880f1812a0Ba46bce67f86908b80F> DC
+  45 /hookright <008116017fbc81128089826b027fbc814a08490Baa7ed382f8970480688148
+    80898184808981bf04808981fa80688237803482540B5b953298089708470480078235804c
+    821a804f81c20480528166800a81477fbc814a0F> DC
+  46 /triangleright 
<0081f4018011800081e281cb02801281cb067e350381e280e503801281cb02
+    803e818803818480e703803e80470681410F> DC
+  47 /triangleleft 
<0081f4018011800081e281cb0281e281cb03801180e50381e280000681cb02
+    81b68188067ebf03807080e70381b681880F> DC
+  48 /zerooldstyle 
<00820201801a7ff281e6820a02802a816204800480ea80238042809d800704
+    81247fc781b4801381db80a40481fc812081de81c7815a81fc0480d6822f805481e3802a
+    816202807a814e048091823d8190822d818a80c9048189809681848058815e803204813e
+    80128107800880de801c048082804a807180f6807a814e0F> DC
+  49 /oneoldstyle 
<00820201807d8000818481fd02807e81e80Bd57bd767d715067f030B802f7e19
+    2915086b07810608950B2b84289a28eb0680fd0B80d283e7d8eb0895077efa086b0F> DC
+  50 /twooldstyle 
<008202018026800081e0820a028027801908670781850381e1808e09630481a6
+    80528175805181388051077f610480e28088813980c3817681070481ae814781ba81a48175
+    81e104813e821180eb821780ad81f004807e81d2806481a1804f816f0A9a790B97a3b3c2dd
+    ce0Baf8ee67ffd5204815f8150813a8113811480ea0480cd809c8078805c80278019
+    0F> DC
+  51 /threeoldstyle 
<0082020180277f3c81c6820a0280a580b7086b0480f280a181488095816c8047
+    04818c800081747fa481337f790480bf7f2b80a97fae804d7fa90B547d53487031048072
+    7f3080cf7f39810b7f4a0481767f6a81c57fc381c680350481c68096819680c8814080e80B
+    a4a1cbc4daf40481ad819a819281d6815b81f5048120821880ce820e809681e904806781ca
+    8049819a803381670A91740B96a1adc2d2d50480c681c8810681cb812f81a404815d817a
+    815481308132810204810f80d280dd80bf80a580b70F> DC
+  52 /fouroldstyle 
<0082020180267f3c81e4820a0281357ffa067f4209ce0680be09e108c3091f06
+    81cd09530380278046083407810e028135819b067ea2077f17038135819b0F> DC
+  53 /fiveoldstyle 
<00820201802a7f3c81d182190280c281fe03804d80f10480b680e9813980d1
+    816a806804818f801b817b7fb581377f800B676d476327650B6a82598f489d0B67953fb01c
+    a20B5b70694583320480847f2980fd7f3d813b7f5f0481a97f9d81dc802881ad809e04817f
+    810d810681388099814b0Aace40780e20Aabe20A73890B6d6560644064077f3d0F> DC
+  54 /sixoldstyle 
<00820201802f7ff381d982c0028093815f0480c58197810e81ab8147816e04
+    8183812d818880a1816a805104813d7fd280597fe58093815f0281c382ab089604817482b7
+    812982a780e6827b04808b8240805181e4803b817b048027811c802480a5805c805004808c
+    800780e57fe6813b7ff90481d38017820080ea81b8816204817881cd80fa81cf809d818c04
+    80c482388115828a81c382ab0F> DC
+  55 /sevenoldstyle 
<0082020180257f3d81e981fd02806781fd0380268153099704806381a8807a
+    81a880d381a90780bf0380bd7f3d09be0381ea81fd077e7d0F> DC
+  56 /eightoldstyle 
<00820201802d7ff281d382c10280d98152048113812c817d80eb818680a104
+    818f804c815a800d8104800e04804f8010804f810580d98152028132818404816d81a581af
+    81c981bb82130481ce8288817082c1810782c104808f82c080308269804881ed04805481ac
+    808c818180c0815e048081813e803e8110803180c404801b8044807f7ff480f97ff3048173
+    7ff281eb804d81d080d20481bf8127817281558132818402811e81910480eb81b0809b81de
+    808d821d04807d826a80b782a7810382a80481a182aa819d81de811e81910F> DC
+  57 /nineoldstyle 
<00820201802b7f3c81d5820a0280427f53086a0480937f4780d97f55811f7f83
+    04817a7fbe81b4801981ca80820481dd80e181e1815881a981ac04817981f6811f821780ca
+    820504803381e680038113804c809b04808e8030810a802d816880710481578026813b7fe1
+    81037faa0480cc7f75808b7f6080427f53028171809e048140806680f6805280bd808e04
+    808080cf807d815c809981ac0480c7822a81aa821b8171809e0F> DC
+  58 /periodmath 
<0080fa0180427ffa80b7806d02809a80650B3fa60443461d0Bc15afcbdbae3
+    0F> DC
+  59 /commamath 
<0080fa0180277f5980d280720280287f6e0A876b0Ba593c7a8e4c60Ba1a3bbcd
+    bffc0B87dc1ff70bae0B6f40b945b71d0B7e4d3c1f14080F> DC
+  60 /less <008341018080801e82bf82360282c08236038081814a08410382c0801f08cb03
+    80e7812a0382c081eb08cb0F> DC
+  61 /slashmath <0081f40180377f1481bc82fb02819082fc0380387f1509aa0381bc82fc0954
+    0F> DC
+  62 /greatermath 
<008341018081801e82c082360280818236083503825b812a038081806a0835
+    0382c0810b08bf03808182360F> DC
+  63 /starmath <00822501800f8019821481fc028151814403811281fd0380d48144077f3c03
+    80b080d40380798019038112808d0381ac801903817580d40382158144077f3c0F> DC
+  64 /partialdiff <0081f40180417ff481b7827b02816981200481508166811a818c80cd
+    8177048045815380118085807180210480997ff780d87fe9810e7ffe048166801f81928086
+    81a680da0481c4815681cd8268811b827a0B558412720c3e0B7c51b657cd6e0B9c9bbacfe3
+    a4048185821b817781618169812002808f80c1048099810280be816e8115815b0481638149
+    815c80e1815280a4048147806481277ffc80d1800b04807f801980868084808f80c1
+    0F> DC
+  65 /A <008263017f998000822582a302817682a3096a03800a805e0B614a4f3a14330A7c6f
+    0780d50A85910B3b8031a551df0Ab5e20B8487898e918e0780d70A930c0B8a3f742433250A
+    7c6f0780fe0A84910B3d8438a42fdf03817682a302815b8103077f3d03812f820503815b
+    81030F> DC
+  66 /B <008263017fd08000823d82940281678294077f110A7b6d0Bc879d06bbd22038038
+    80670B6d3a61311d2c0A7b6d07811d0481228000815780058188801a0481c2803481f88065
+    820780a504821280d3820a810681f0812d0B6d9d4eac2fb80481f7817f824d81bd823b8224
+    04822a828781b982948167829402811c823d0B8eb798b6cfb70481bf827581e5823381d0
+    81e40481b7818781678170811181700B6e80527c599603811c823d0280d6813c0B889eb394
+    c894048190815081b580f78192809304817180348113801680b7801f0B56835ca565c403
+    80d6813c0F> DC
+  67 /C <00829b0180247ff2829582a2028296829c09670B71676066456f04819f82c48102
+    828a8091820804804881b480198146802780d5048033806f8073801b80d7800004812a7fe7
+    818d7ff181d8801d0Bab9bcebeeee40A6b930481657fa78050802a80a9816c0480fe829f
+    826b82f2825581d90999038296829c0F> DC
+  68 /D <0082d2017fcf800082aa82940281778294077f020A7a6d0Bc979d36abf2203803b
+    80670B6e3c5d2e192c0A7b6d07811f04813a80008186800b81ca802d04823b8065829480d2
+    82a681510482c48220823782948177829402811682260B8fb895d1d5cf0481a3827381db
+    82698203823d04824381f7823f8189822b8133048201807e8185800980c780220B438850ac
+    5edd03811682260F> DC
+  69 /E <008263017fce8000825682940282578294077e200A7b6d0Bc979cc68b922038033
+    80670B6e3a6431212c0A7b6d07820603821880b5096d0481d1805881a1802b8133802304
+    8114802080b38018809a802b0B6b8f7db982cc0380d781510481508151817a8165816a80e5
+    09930381bf81cf096d0B77686f4f5b3c04815d81658112817180df817103811482330B8593
+    8ab09cbc048143827b81a5827481b282740Bde7ff773f611099203825782940F> DC
+  70 /F <008263017fd88000827482940282748294077e0b0A7b6d0Bc97ad96cc522038048
+    80670B6d395b31162c0A7b6d0781290A83910B47811a8a2dce0380f0814d04810c814d817c
+    81588193813a0B94688d408a2409930381ef81ce096d0B7467674c503a0481808166812d
+    816e80f8816e038129822f0B859489b5a0be048169827981b8827381d582730Bda7ef15bf0
+    05099203827482940F> DC
+  71 /G <0082d20180217ff282ba82a30282ba829b09660B71696252435b0B77836e89658d0B
+    668d4b962e9b04819082b08127828f80d682500480758205802f818f8023811504801980b4
+    8043804c809980180481107fd181b27ff28225803303824d80d00B92c397dde1e10A859107
+    7ef80A7b6f0Bc47bdb7dc7310381c9805b0481a57fdc80647fe3809b812c0480de82ba825e
+    82eb827081d1099b0382ba829b0F> DC
+  72 /H <0082d2017fcf80008303829402817e8294077efa0A7b6d0Bc879cf69bc22038038
+    80670B6c3a61311d2c0A7b6d0781050A86930B3786309843de0380d381380B85908b949d94
+    0780eb0B98809f7b98620381bd80670B6e3a63311e2c0A7b6d0781050A85930B3886319844
+    de03829b822d0B91c0a1d3e3d40A8593077efb0A7b6d0Bc979ce69bc2203820b81850B7c70
+    756b646c077f140B6a7f6186689e038115822d0B91c0a2d3e4d40A85930F> DC
+  73 /I <00814d017fd18000817c829402817d8294077efe0A7a6d0Bc979cc68b922038036
+    80670B6d3b6531212c0A7b6d0781010A86930B3786359a47de038117822d0B91bf9fd3e0d4
+    0A86930F> DC
+  74 /J <0081bc017fb87ff381d3829402808e806d0B7864723e582c0B6e734f703c7d0B6e8b
+    799a7baa0B849c78b75bbd0B3690292970060480187feb80617fec809280040480d98029
+    80f78077810a80c003816b82350B90bea6cae4cc0A8593077ee20A796c0Bd87be572cf1b03
+    808e806d0F> DC
+  75 /K <00829b017fd2800082db82940281888294077ef10A7b6d0Bc97ad56ac22203803f
+    80670B6d3a5c30192c0A7a6d07811a0A86930B3a841e8b33d70380dd813e0B848e90919985
+    03818a80710Bae3fa82257210A7b6e0781230A85920B478327a207d003814881770381ed
+    81f7048220821e8252824a828b826b0B988eae95ca970A8792077f120A7a6d0Bdf7fb94c83
+    220380fb81670B76786c7d708a03811e82320B90bca5cfe5cf0A85930F> DC
+  76 /L <00822c017fbf800081f1829402806382810Bcc7cd56dc12203802c80670B6d3a602e
+    192c0A7b6d0781f50381f180bb096b04819f80378177802180e880210B2080147c30e203
+    810d822d0B91c1a0d4e4d40A8693077ef00A7c6d0F> DC
+  77 /M <008341017fcf800083708294027fd580130A7a6d0780d50A85920B688149813c9a0B
+    749883cc8ae60380df82200381248000098e03829d821f03822b80760B6c3763221a1a0A7b
+    700781080A85930B38862f9642de038306822d0B90bea5d4e5d40A8593077f4b03817180a1
+    03812f8294077f4e0A7a6d0Bc979d36abe2203803980670B6d3c5f301c2c0F> DC
+  78 /N <00829b017fc27ff282d582940281018294077f700A7a6d0B9381a981b6720B936b9c
+    59943e03803880670B6b35582d0f2c0A7c6d0780ef0A84930B27821b8c34e50380d5820203
+    81b27ff20999038266822d0B92c2a9d1ebd40A8593077f1e0A7b6d0Bd07bdd6dc71c0381ce
+    80aa03810182940F> DC
+  79 /O <0082d201801d7ff182b482a1028248828104820182ab81a082ab815482900480f9
+    827080aa8229807481dc048017815a7fe68073808c80120480d67fe7813c7fe9818b800504
+    81df802382238063825680ab0482b6813282f382188248828102820e827104828e821a822c
+    810481ed809f0481c7806381928029814c80150B597529750489048040806e80a3818580e3
+    81ec04810b822b81438267818d827d0481b6828981e98289820e82710F> DC
+  80 /P <008263017fd48000826882940281908294077eeb0A7b6d0Bca7ad96cc522038044
+    80670B6d395a31162c0A7b6d0781260A85930B5082148226c50380e081300B81848389888b
+    0480fc81418151813b8171813d0481ca8142822e8162825881b804827581f3826a823e8237
+    826a048209829281ca82948190829402812882400B8fb8a2baddb70481d6827482008239
+    81f581e90481e6817d818d815b812c81590B6c803b78459903812882400F> DC
+  81 /Q <0082d201801b7f4882b082a2028207826f04827d821b822a812181f480bd0481d0
+    8079819d803481518019048124800980ec800b80c5802b048058808380a2816b80d881cf04
+    80fd82138134825c817f82790481aa828981e0828a8207826f0280b57fc00B918eb0b3c9b6
+    0B8e819c7faa800Ba283c48ae497048245805783058179828d823a048253829781dc82b2
+    8176829b0480fc827f808a8210805181a4048000810a8008803180c97ffd03801c7f5e0A8d
+    6f04807e7f84809f7f8580ff7f670481bc7f2d81f97f3f827f7fd20A708d04822c7f9781fd
+    7f7a819a7f980481467fb2810e7fc380b57fc00F> DC
+  82 /R <008263017fcc8000823f82940281818294077ef40A7b6d0Bc879cd69ba22038033
+    80670B6d3a62311f2c0A7b6d0781080A86910B27822ea143ed0380d481470B9b7db67cd27d
+    03819b80000780940A85920B6c8258854b960B6f9562b859d103818a814e0481e38164823f
+    819f823f820504823f827581de82948181829402811482360B889e8fbab2be0Ba984df7ff7
+    590481e9820a81c6819e8181817a04815081618112815e80dc816603811482360F> DC
+  83 /S <0081f4017ff27ff081ef82a10281f0829e096c0B685840711e7a0480c082c9801f
+    8232808c81910480bd81498111811b813a80cd0481578098814a8055811d802d0480eb8000
+    809980058065802d048036805280258094802480ce096c037ff37ff40990048019802e805e
+    800080907ff704816e7fca820580948173813c048144817180f081ab80d581ec0480c38219
+    80cc825080f4826d048121828c8166828a818f82660481b7824381be820e81c281dc099003
+    81f0829e0F> DC
+  84 /T <00822c01802b80008266829402805481f404806882318090826580d3826e0B9984b8
+    87d1830B8e7d8d6e8a630380af807f048098802a80898016802f80130A7c6d07813b0A8593
+    0B18810f8e2af0038196825a0B889ea498bf97048233826c82368242823681f10993038267
+    8294077e0103803e81f60A967e0F> DC
+  85 /U <0082d201804c7fef830a82940281888294077ede0A7b6e0Bcb7be173cc2403805e
+    810104805080cc804480968059806104807a800d80d77ff181297ff00481db7fef821c804b
+    824580e703828f81fb0482a4824a82a98284830782820A8492077f1a0A7b6e0B997fc480cc
+    620B8b5d7d35751303821f810104820e80c381fe808081ce805204819e8024815780168117
+    8022048096803b80ac80b180c7811003810f821e0B94cca4e2f4e40A85920F> DC
+  86 /V <00826301803d7ff282c282940280e27ff2099503824c82210B9cb0b6dbf1e10A8692
+    077f370A7b6e0Be37ec0519c1303812a80880380ef82260B75c492ded6dd0A8491077ef80A
+    7c6e0Bc181cb5cd3230380e27ff20F> DC
+  87 /W <00834101803a7ff28398829402803b82830Bcb79ce6dd5220380c37ff209940381c8
+    81c90381ee7ff209990383198203048338824083508273839682830A8291077f400A7a6f0B
+    d279d269aa1903823a80ab038220821a0B7ac885e4cfe90A8591077f030A7c6f0B967fb77f
+    c4690B8e678c398e1c03810980a00380ee82260B7ac494ded6dd0A8491077ef60A7d6f
+    0F> DC
+  88 /X <008263017fa8800082b482940281748294077ee80A7b6f0Be079d861f60d038105
+    8146038028805b0B5d5b393a06340A7b710780f20A858f0B6a8141803b9d0B7a9c9bc1add4
+    0381138113038143806b0B9534842638260A7c6f07811d0A85910B2585249c0eef038169
+    816403822f822c04825382518277827f82ae82830A8691077f230A7a6e0B9480b785be6b0B
+    87656443533203815b819503813182270B6ac975dbbeda0A85930F> DC
+  89 /Y <00822c0180188000829282940281338294077eeb0A7b6e0Bd878dc57f8060380dc
+    811f0380a9805e0B6d3b593816330A7a6f07811c0A86910B3f831b7d30ca038142812703
+    8210821e0Ba2a9c5dcfde20A8694077f270A7b6d0Be07dd759a11803813381520380ec822e
+    0B6ac580cfc0d40A87920F> DC
+  90 /Z <00822c017fe38000823782940282378294077e5303805881f40995048097825780cb
+    82708134827009f8037fe4800d0A7f730781d00381ec80b5096b0481a880498171802580fc
+    8026077f71038237828b08890F> DC
+  91 /flat <008103017ff4804580a382450280138061048014808a800b80da802381010B8b
+    92a3a3b6940B9c6b934185260B6f5d5042352602800280460A90820Ba1a2c4c3e6e40B9595
+    abaeabce0B81a463c43ec00B617d4a67355203801e8245095703800280460F> DC
+  92 /natural <0081030180027f9680928215028003802e0Af7a7067f4209980681e70A095c06
+    80bc0968067e1802801b80730680a90Adf9e067f590A21600F> DC
+  93 /sharp <008103017ff27fa380a7820d0280127fa409970680990Ac7a2067f6a099706
+    80a00Aa18f08c80A5f700680860Aa18f08c70A5f710680900969067f640A39600680970969
+    067f5f0A617008390A9f8f067f7b0A617108380A9f90067f7102802980840680860Ac7a106
+    7f7b0A395e0F> DC
+  94 /slurbelow <0083e8018033806283b4815102803381510480a380ab812e806381fa806304
+    82c18063834780b183b58151095c04836b811f834180f3830980d30482b780a482558091
+    81f780910481948090812c80a580d580d80480a180f7807a812180558151095e0F> DC
+  95 /slurabove 
<0083e8018033808d83b4817b028033808d09a204807a80bd80a180e780d58107
+    04812c813a8194814e81f7814e048255814d82b7813b8309810c04834080ec836b80bf8391
+    808d09a4048346812f82c3817b81fa817b04812f817b80a381338033808d0F> DC
+  96 /lscript <0081f40180207ff781c182bc02807580fb04806d809d8077800780ee7ff904
+    81427fee8163803b8177807d0A63890B7257560a1d160480aa802c80d3810980d8813704
+    812b8170817581b281a6820b0481c2823f81d4828e819482b204815182d68111829e80ec
+    826a0480a8820b80888198807981270B6169435227380A946a0B9592aaa2c1b20280dd8161
+    0480ec81bf80fa822a813482780B959ebeb9de970481bb8264818c821a817381f404814b
+    81b98116818b80dd81610F> DC
+  97 /a <0081f40180147ff781c981c002813e81a30481a4817680e4800880878035048033
+    805d80c381d9813e81a302817b81b70A755b0B76a74ab126ad04809e81b0804181288022
+    80bc04800d807180057fe7807b7ff90480d1800681078060813280a3048127807f80f8800d
+    812c7ffb0481677fe681ad804081ca80690A708d0B4d3a1310388d0381c881b70933
+    0F> DC
+  98 /b <0081f40180197ff781dd82b00280b58164038107829d0B848e7f9670930480c782a6
+    80998298806882940A7c6f0Bc181c675b73703801d80470B7553a43ec9370481017fdc819c
+    804e81ce80dd04821681a9814e821c80b5816402809880ed0480df81f281df81aa816680a6
+    048140805880f78002809680120B56884f9f59c303809880ed0F> DC
+  99 /c <0081bc01801e7ff681a881c002818480660A7091048144804780f5800580ad802c04
+    807f80458075807e807880ad04807d80f7809d814080d281740B9e9ec4b4f0b40B887fa07e
+    a1720B816f62656a440B8c52da60dc970481ac81d3811d81c580e881b00480948191804a
+    8143802c80ee04801380a880178044805880140480be7fc8813c8016818480660F> DC
+  100 /d <0081f40180107ff4820782b20281738073038206829e0B84907c966d930481c582a7
+    81998299816982960A7c6f0Bc281c272b33703817281a50B6aa12f9d0f930480988199803c
+    8123801e80be048007807180087ff680757ff70480d37ff8810d80578139809d04812c8076
+    8100801481337ffb0481737fda81bc803981db80650A718e0B706b4f3832380B5b7f70b675
+    c802814581a40481a3817980ee7ff58087802d048026806280d181d6814581a40F> DC
+  101 /e <0081bc01801b7ff781aa81c102807f80e0048091811b80ac815280da817d0B9997e2
+    c7fc970B94596d2050090480f780f680ba80e9807f80e002817a8072048148804380fa8010
+    80b1802a04806e804280748091807b80ca04823580fb81cd822680d381a104808581778042
+    812f802780da04801280958017803b8058800e04808c7fec80d87ff2810f80080Bb095d7b7
+    f9de0A728c0F> DC
+  102 /f <008116017f9c7f27819e82b20280da81af0A98f10B87a592d4b1ee0B8a889a90a687
+    0B947163399c2f0Bcb73c7cf8de80B588f2884066d0480ad826580988202808581af092a0A
+    796209d703802a7fdd0480227fb280197f8480047f5d0B7d7a68595d660B778a859c85a70B
+    7f97649f519a0B4e73641aaf240480247f3180457f72805b7fa704808380078098806f80ad
+    80d50380d4819109eb0A859e09160F> DC
+  103 /g <0081f4017ffb7f2681f681c40281f6817908ab0B5b80367a138a04815381c78114
+    81cb80db81b8048062818f801680f7809e80ac04806e807d8021804c807c802204803a8003
+    7fd77fc080057f6b0480407f0281477f1581847f8a04819b7fb781997ff081738012048148
+    803a8105804580cf80560B6c86479556b00B868c91979d9d048108809c815280a7818680dd
+    0481af810781c1814081b1817909c502809580190480cb8006810c7fff81397fda0B976d99
+    4b8f310B745d51492f410480b77f3c804b7f3c803b7f8f04802f7fd380627ffb8095801902
+    814a819f04817a8178815d811f814480f304812b80c580eb809b80be80c8048078810c80eb
+    81eb814a819f0F> DC
+  104 /h <0081f40180047ff481d582b202809580eb038111829e0B85907c966d930480ce82a6
+    80a18298807082960A7b6f0Bc381ca78b837038004800009d504807d808c80aa8105811b
+    81670B8b8ab4abc3950B906a7e3e7827038125806c048118803c81047fe681587ff6048196
+    800281ba804281d580750A728c0B736b502a322f0B65867dc181cd0381af81380481c18175
+    81cf81d3816c81b6048113819c80c78135809580eb0F> DC
+  105 /i <0081160180287ff6810a82910280f8806a0A708f0B706949352a370B61826eb174c2
+    0380e181a30B8288899f789d0B6b7d4a7432700B677d4e7935760A7c700Bb37eca79ba3e03
+    8038807c04802d805680127fff80517ff80480997fef80d1803880f8806a0280fa82820B52
+    ac09683a3b0Baf54f697c6c50F> DC
+  106 /j <008116017fa27f2a810d829102804981a90A7c6e0Bc77cc873ba2f038052805f04
+    8041800b80327fb580147f640B7b736d585b610B71867a9b7aa60B80956fa35aa20B457c5d
+    12b31e0480637f3a80877ffc809a80510380e381aa0B838a829774960B687e4f7637720B69
+    7c52793b770280fe82820B51ac09683a3b0Baf54f697c6c50F> DC
+  107 /k <0081bc0180027ff681da82b302809780ee03811282980B8592849e6e9b0480d282ac
+    80a7829d807682980A7b6f0Bb17fc883b746038002800009d403808b80b90Aaea50380e3
+    80590B88639441a72a0B8e71a971bb770Ba98cd5c2ede60A72900B5044301d11770380f9
+    81120Aead80Ba19cc7b7f3b70A8591077f460A7a710B907fb07fa7660B796c6458544c03
+    809780ee0F> DC
+  108 /l <0081160180297ff9812382b70280f1806a0A708e0B706c4632293e0B69897ab57ec5
+    03811f829b0B838c899e759c0B697d51773a740B657c4a782f750A7e6f0Baf7ecc79bd4003
+    803f8091048035806c800d8006804d7ffb04808c7fee80d0803c80f1806a0F> DC
+  109 /m <0082d20180037ff582b381be02803781a60A7c6f0Bcf7bbd5fa815038004800009d1
+    048084809180a9811c812c81790Bc7b2a5419d240380f6800009d204816a807d819680f4
+    81f081540Ba5a8ead4d277038205806e0B755a60109b0904825c7fee8298803c82b3806b0A
+    738e0B6d6a59433b3a0B67796f9972a6038290813804829c816582b481b9826c81bd048217
+    81c381c8814f819a81120481a7814681d581bd817781bd04812581be80ca813d809d810103
+    80d181a30B8590829e6e9a04808f81b4806a81aa803781a60F> DC
+  110 /n <0081f40180087ff481d581bd0280a080f80380d881a20B889b829f679704809381ac
+    806581a7803981a20A7c6f0Bcc7ec56daf25038009800009d3048082808b80ac8105811e
+    81670Bd5c9ca78ba3c038126806c048119803c81057fe681597ff60Bbd8be1ccfdfe0A708b
+    0B746b512c34310B65867ec181cd0381b181380481c0816e81d381c3817d81bb04812c81b5
+    80cf813680a080f80F> DC
+  111 /o <0081f40180177ff581dd81c10281b0819804814c81f680b181a78066814f048020
+    80fe7fe98061805180130480b97fc6814c80148192806a0481d280b88207814581b0819802
+    814781a60481dd818781467ff280ae8013048019803380ae81c5814781a60F> DC
+  112 /p <0081f4017f957f2781e081bd0280a580e20480e081cb81d281d3817080c8048153
+    80778111800080ab80090B50844aa155ca0380a580e20280487f7b038069800204809b7fe5
+    80de7fef81108003048180803381d680b181e0812a0481ed81db813581e880c381610480f1
+    81f180e681af803881a20A7b6e0Bba7fcb7dba3d037ff77f810B72475b3b23380A7b6f07
+    80f80A85910B4580268036c20F> DC
+  113 /q <0081f40180127f2881ef81be02815e81a00481d0816381017ff4808f802e04801f
+    806680dd81e2815e81a00281a281b40A735404815c82208027816d8013808004800c8021
+    80427fe280a17ffc0480ec800f81258051814c80910381057f8b0B6c3861341a300A7d6e07
+    80fb0A81920B2d812c9043e00381ef81b409330F> DC
+  114 /r <0081850180188000818581bc02812281770B8d38f25de1a30B79a350a43796048105
+    819280ca813080ab80f90380db81a50B848d859a749704809d81b2806c81a7803a81a00A7d
+    6e0Bd67cc55bb315038019800009cf048082805f809d80bb80d181100B97a4b0cbd1e7
+    0F> DC
+  115 /s <0081850180057ff5817181c002817281bd09740B795e3c782a7d04807d81da8021
+    816d808b80f00480b480c08122806180cf80210B5d64256803850B609e56c651f0097403
+    80067ffb098e0B88a1d082e07f04810e7fde817e805f810a80e40480ec8108807f816280b5
+    81960B9998c796e3850Ba869b43ebd14098c03817281bd0F> DC
+  116 /t <0081160180247ffb812b822d0280fc822d09690480bd81ef808981b4803d81a50A7c
+    6d09c503802c805c0B73517119b32004809b800280c9803880ea80660A71910B594c080429
+    7d0380cf819209d50A879e092c0Aa5fd0F> DC
+  117 /u <0081f40180207ff781d981c0028084809c0380cf81a30B859188a0709c0B6c7e5878
+    44750B657b4a7730740A7d700Bbf7cc475b02b03803580a804802880788001800180547ffb
+    0480c17ff18115808f814780dd0A611a048118804381057fe281617ffb0Bb58edec3f8f20A
+    728c0B49310f0c328e0381d081b7092f0481628136812a80bf80d0805e0B72723e3c295d0B
+    729485cb8be10F> DC
+  118 /v <0081bc0180137ff481b581bf0280937ff4038110807804814980b581ae812481b5
+    817a0B85c240de25b00B644eb646aa1c048174810780f7807f80c580520380b881080B8080
+    7f807f800480a081fb80b581bb801781a60A7d6e0B937daf7eba6a04806681548062811d
+    806b80ef03807f7ff409940F> DC
+  119 /w <00829b0180187ff5829581c202819381c2096f0380b380820A7df20480af810d80af
+    81b6809781c20B7983166b03680A7f700B947ea77db36a04805f81648061811c806280f803
+    806b7ff50992038152813a03817a7ff5099003821d80a604824980dc82b28154828f81a20B
+    6eaa2fa92c77048238814b82b8818b820380b60A3b2e03819381c20F> DC
+  120 /x <0081bc017fd47ff481bd81c002812181680A4e3c0380d181a50B7b96719f5a9a04
+    807f81b6805881a9802a81a30A7d6e0Bb789dc88ec4a0380b280d10A290a0B6f695c584064
+    0B658b43923b6b0B77589d49bc500Bad89c9afe3d20Ac6e00480c2808e80d2802e80e28010
+    0B89709967ac6504814c7ff18182803d81a0806b0A728f0B49301f1005820380f781000Abc
+    d40B8f94a2b2bfa70B9877bc6dc98e0B8fa961bb40b30B58763d4b262c0F> DC
+  121 /y <0081bc017fc77f2981a481c302812580ac0A48280380d080e30480c9810880ad81ac
+    809381c204808e81c7802581ae801081ac0A7d6f0B977daf7bbe680480638164806d8123
+    807680fc0380ad7ffa0A3e280B6d67523d2d4a0B6b8854963e840B686c6e4c8a3f048032
+    7f0880967fa680ba7fd70480f080218190810781a181640B859a88ba74cf0B709350953c86
+    0B6d726f557f450B8c73a06ea45c04817e812c813c80d0812580ac0F> DC
+  122 /z <008185017fe27ff4819481bf028048804603818a81a20B8788939d7f9d0B6e815d60
+    2d640480af81af806681fb8034815a0A90770B98aaaeb5dfaa0480e2816d80ed8168812f
+    8171037ff2801a0B7b7b707171690B81798a7591770B9d8693a6df97048089800580e17fe8
+    81167ffa0Baf90bccdcaf70A6f8904811c7ffe80c88061804880460F> DC
+  123 /dotlessi <0081160180287ff680f781bf0280f8806a0A708f0B706949352a370B6182
+    6eb174c20380e181a30B8288899f789d0B6b7d4a7432700B677d4e7935760A7c700Bb37eca
+    79ba3e038038807c04802d805680127fff80517ff80480997fef80d1803880f8806a
+    0F> DC
+  124 /dotlessj 
<008116017fa27f2a80e481c002804981a90A7c6e0Bc77cc873ba2f038052805f
+    048041800b80327fb580147f640B7b736d585b610B71867a9b7aa60B80956fa35aa20B457c
+    5d12b31e0480637f3a80877ffc809a80510380e381aa0B838a829774960B687e4f7637720B
+    697c52793b770F> DC
+  125 /weierstrass <0083e80180bd7f6882e181db02811680760480ee804580bc800c80be
+    7fca0B814fa122d41f0Bbf7de9b2efec048188801881688066815780a704818d80e28215
+    8182826781770482bd816d828680df827280b4048258807c82368043820280200B68703163
+    2b8e0B7c9e99acacbc0B928f9caf81bb04818e80c9816f802781b380000482197fc8829f
+    806e82c380bd0482db80f282ef813482d8816c0B71a44fb829b904821f81a5819081048151
+    80bd04813d8101814d8148817f817c0B9291a5a2bab00B8d8a9b91a79c0B8585848e7e9204
+    81c481e781508177813f8162048106811a80f480cc8116807602811e806004812c80338142
+    800681467fd70B8455681835310B529752d264fb0B8ea3a8bfbfdd0F> DC
+  126 /vector <008341018000815d834182a102800081e30782d403820781910A964d038341
+    81da08cb03821d82a10A6a4d0382d4821c077d2c08470F> DC
+  127 /tie <008025018012821b817482b4028175821b04815f827b812d82b480c482b404
+    805b82b48028827b8013821b09b80B90c0b8d3f8d40Bc280e86ef92c09b90F> DC
+  160 /Gamma <00825b017fbf80008298829402827e81e70382988294077dde0A7b6c0Bd17fdf
+    6bca1c038043806f0B6930522702250A7a6c0781400A85940B3a831a8d30db038130822a0B
+    8fb89ec3dac309e8048249826d82648236826a81e709940F> DC
+  161 /Delta <008264017fb9800081f6829f0281f7800003819f82a00969037fb9800007823e
+    02800c802d03814781f8038182802d077e8a0F> DC
+  162 /Theta <0082e50180187ff282cc82a30282a2824904823782da814c82a880d1824904
+    807e8209804781ae802b814a04801380f7800d80968043804c048072800b80c57ff28113
+    7ff30481707ff381cb80138214804c048267808c829d80e682ba814a0482d2819d82d88200
+    82a2824902824f822304828081a1822e80d481d780720481a5803b81688016811d801604
+    80d9801680ac80318096807204806680f680b581c0810f8223048140825a817e827f81c9
+    827f04820f827f82378264824f822302815581740B477f368842c309670380c580e8099804
+    80f781308117812b815c812b0B9580dc87f1750B8f7388598548099803822381b709680B78
+    6b70545c480481c6816b81748174815581740F> DC
+  163 /Lambda <0082ae017fb28000825182a3028208808a0381c382a3096703802880770B64
+    574623101d0A7b6c0780be0A86940B27873ca768e703816981f704817281b881a4807e819e
+    80440B7f777c6e78660B706a4a6c326a0A7b6c0781090A85940B6e825b8650960B70976ac5
+    67e00F> DC
+  164 /Xi <008285017fdb800082aa829402827781df0382aa8294077dec03806481df09960B
+    95beaed6f0d60781380Bc57fcb6abf2a099602812081780B49802e8038bf096a03808680e1
+    09960480b9812c80e081258129812404813c81248194812a81aa81190B91738b5a88480996
+    03820381b7096a0B786b6f555a4b0481a1816e814181788120817802806580600B3d803398
+    3fd6096a037fdc800007821803822880b609690B6b43522a102a077ec40F> DC
+  165 /Pi <008300017fbc80008349829402834382800A8694077d2b0A7a6c0Bc77bde72c928
+    03803b806d0B6b34512c07270A7a6c07812f0A86940B3985218e36d903811e8216048139
+    8275816d827081c5826f0481e0826f823f82778257825d0B916d874e81390381e1806d0B6c
+    36502b06270A7b6c07812f0A86940B3784208c36d90382c982280B95cab1d3fad80F> DC
+  166 /Sigma <008250017fad80008277829402824581df0382778294077dfc0A7969038134
+    813f037fb6801c0A78640782140381f580b609680B6b46572a162a077eda03819381580A85
+    8f0380f2826f0780bc048210826f823e8241822d81df09980F> DC
+  167 /Upsilon1 <00826c018057800082db82d30280bd80610B71475f3422320A7b6d0780e5
+    0A85930B4781429750ca038152813a04817e8181822082848268829f0Ba38ea56f9d580B77
+    60924caf5b0482fb827882e282ef826d82c904823382b7820b828181e982520481ab81ff
+    817281aa813d815104813e81ba813e826d80e582b50480c682ce808682e6806582c30B5450
+    9d58c5390480ff823a80fc81a180fb813f0380bd80610F> DC
+  168 /Phi <0082fb01801b800082e1829402826a82800A8694077ed30A7b6c0Bca7bde77c928
+    048106821f807a81fb8037817f0480168142800d80f2804180bc048075808380c38077810d
+    80700B6b32512903240A7b6c07812d0A85940B3685228f38dc0481c58078821280868259
+    80b00482a480dd82df812882e181830482e381c382b581f7827c820e04824f822082208225
+    81f082280B95ccb0d4fad8028180820f03811480890B5685298c0fb004807980f380908143
+    80aa817f0480d081d8812482048180820f0281e9820f04823a8204827b81dd826f817f04
+    82658130824080dd81fc80b00481d5809781a9808e817c80890381e9820f0F> DC
+  169 /Psi <00831b01805580008376829902813e80ed0B5a832b8510a40480a4814380db81cc
+    80e981fe04810c828480dd82a5805d82950A79680Bd183be54ad170A6112048037810280a9
+    80d7813680d00A641d0B6c364f2b05270A7b6c07812f0A86940B3985228f37d90A9ce304
+    823a80d882be810882ea81a60A9fee0B92c29bece7e90A879804830082a582be8281829a
+    820a0482688166826f80fb81aa80ed03820282280B94c8b2d3fad80A8594077ed10A7a6c0B
+    c77bdf73ca2803813e80ed0F> DC
+  170 /Omega <008300017fe4800082ee82a302820e805a09050A91bb04823680b282b88100
+    82e38198048317824f828282a381e082a304813282a3807b824a8048819804801e81068070
+    80b280f880950A6f4509050B3e7f329740d60969037fe5800007810f03812680b40480b6
+    80d180a0813080be81980480e3821b814a827e81d7827f0482638281828f8212826d819804
+    824c812381fd80cf818780b4038154800007810f03829480b0096a0B6b425229102a
+    0F> DC
+  171 /alpha <008254017ff77ff4822d81df0281918135048193817f818881d3812b81d704
+    80b681dc803e816c80118109047fe0809c7ff1800c807a7ff70480e77fe5812f80268169
+    80770B8358860db8020Bbb73ddb9ede50A6c8e0B6e6551412c540B5d945dc15ee40481b1
+    810281dc8161822d81a60A47b90481c581a881ac81788191813502817680f204815580a0
+    8118802380b78013048049800080488080805a80c904806f812280ac81a7811081bb04818a
+    81d48178813c817680f20F> DC
+  172 /beta <008204017fb47f1d81e682e602800b8087037fb47f1d09d9038047804b0B9559
+    b039dd2f0480e27fec81218002815280280481a2806681d280ce81bb81330B72bc3fd90aed
+    04818f81be81ca81e481e082370481f3827e81cc82d1818082e204812382f780d382b580a7
+    826804806981fd802a8108800b808702807d815004809381b480bf8287812582b90B9a8dbc
+    8dd2780B9f639b34930f04817981f2814b81a280f281b70B6a85438846670B8559bd6dd56d
+    048177818c816b8109815780c20481478085812f803f80f280220B63724170237d048057
+    803c80508088805d80c303807d81500F> DC
+  173 /gamma <0081ca017fe17f2181b581d60280a7804b0480ab809f80c181b4806181d204
+    801281eb7fef81657fe181300A9a7e0B8ea4abdfdac0048094814280898077808a802c04
+    80587ff480297fb4801c7f680B7c697c409a3b0480827f16809f7ff380a680220480ce804c
+    8216819b819881d30B4d953e523b2f04814b810e80f080a280a7804b0F> DC
+  174 /delta <0082100180007ff381c482e30281a582610B72ab60d23aec0B619534a0128d0B
+    596b4737560f0480dd8230811e81e8814481b10480b4820080148164800280d8047fe57ffc
+    80d67fa0817880530481cc80b181da813d81a481ae04817a82028122824c8108828c0480ed
+    82d3815282e981898261099c028075812d048095817680f381e08142818e04818781478157
+    80a28127805c048102802780ae7ff38075802c04803c8065805980ed8075812d0F> DC
+  175 /epsilon <0081b80180117ff7819981db02819281b30A879d04810981ee806381cf8028
+    813704800280d680088055806880180480a87fef81017ff2814a80010A88a00480b67fff
+    805c8046806f80e70780dd0A86a6077f240480a381aa80fe81c2819281b30F> DC
+  176 /zeta <0081cf01800b7f4e81ac82d30280dc8226048071824a805e82bc810082b60A82
+    960480ca82d4806c82e4805182a204803082558089822580c4821004805981a98005812b
+    800c80900480148007805e800480d180000Ba080c585e1720B9b6c8b42792d0480df7f46
+    80857fa9805c7f870B7174745f83540B9f69dc73fe7b04811c7f6581597f8e816d7fcf0B8b
+    a787d962f1048107807080598028804780a10480308124808b81b280e482090481108205
+    81b881f581ac82430B7aa053a2399e048132825b8105824380dc82260F> DC
+  177 /eta <008207017ff77f1d81cc81d70280aa81160480b6814c80db81c0808c81d5048042
+    81e8801181897ff781530A97730B8995b9efd8d804807e818d80588112805280fe038008
+    800009d6048084807e80c5815d8143819d0481af81d2816c8127816381070380cf7f1d09da
+    0381af80fc0481bd813281ef81b4819f81d204813381fa80d6816580aa81160F> DC
+  178 /theta <0081ed01800c7ff481d782c002805581f2048018817c7fe0808d8045801e04
+    806c7ff480a77feb80dc8000048123801c815e8067818380a70481b7810081d5816781d8
+    81cf0481d9821581cf8270819682a104816b82c5813082c780ff82b10480b3828f807a8239
+    805581f202807e81540780e904815280fe8112801780a9800f0B537d3dae38d304805780b3
+    806b8106807e8154028171817b077f1704809b81c680da82a8813b82a60481b282a5817e
+    81bd8171817b0F> DC
+  179 /iota <0081180180007ff680d081cc0280c381cc092e0380128082048006805c7fea
+    800080297ff80480717fee80ac803c80d180700A718f0B6f69483128330B618270b575c503
+    80c381cc0F> DC
+  180 /kappa <0081fd017ff37ff481db81d902806d81cd037ff4800009d703808a80e70B8882
+    908398860380db804a0B914ea126e02b0Bb585ddabfed20A6e910B5a57282e0f7b0380ec
+    8121048114815081378185816981aa0B8854a933d84d0Bac9a9dd86ee104813081f180fe
+    8126809181050380c581cd09280F> DC
+  181 /lambda <0081c8017fbb7ff4819782e30280e281ce037fbb800009dd0380eb814803
+    80e980890480e8805480f37fe481437ff70481778002818b804a819780780A6b890B736765
+    4846460B477b45c846ed03811682140481188243813182ec80cf82e304809182dd80738289
+    805f82580A9d750B90a2bbd7e4b4048105826180fb81f580e281ce0F> DC
+  182 /mu <00823b017fb27f2181f381cc0280cc81cc092803800d805f047ff880137fe07fc9
+    7fc27f7f0B756761308a240Bb073b2b5b3d20480007fb8800b7ff9801e80370B8e4ea834df
+    410480d9800c810e8066813a80b1048130807c810f801681527ffa04819e7fd981d7803d
+    81f480730A67880B746a4818262f048167803c81848095818c80b00381da81cc092a04816c
+    81748154811b812980c9048111809b80d38034809c80270480428012808180c3808b80e803
+    80cc81cc0F> DC
+  183 /nu <0081c8017fef7ff781ab81d50280b681330480b7816a80c381c9807881d404802b
+    81df8001817d7fef81430A9d7e0B8896a6e4c7dc0B9b798c188b030380457ff809a503811b
+    80a804814f80dc81b1815581ab81a40B7da64fc22fa5048124819881928157810180bd0A23
+    1d0380b681330F> DC
+  184 /xi <0081e1017ffd7f4e81be82dc02811d82bb0A84980480eb82de80a382e8807d82b4
+    0B726d785483400B9164af55cb470480718202803a81a6809381500B526728490c1b048002
+    80bd7fef8075800780410480367fdc80e3800f81197ffc0Bb66c9e23680b0480b07f628071
+    7fa9804d7f820B76757b63865b0B9d6cc971e9750480fe7f5c81437f7d815e7fbd0B90a894
+    db74fc04811a807180838038804c806d0B669a6bc777e60B95b4c0d3f0ec0481ba80d281e2
+    81b580c5816404806481a1809c820580f1822d048119821f81b881f781be823e0B83a44fac
+    36ae048144826f8115825c80e9824d0B1fac3efcb4ee0F> DC
+  185 /pi <008263017ff27ff4824781e802801380910A6d7f047ff580627fde7ff0802f7ff5
+    0Baf83d0b4e2db0480b880a480d7812380ee8181038172817f03813c80a304813080728115
+    801f814e7ffe0B9f6ecd79ea8a0Bab9ac3ccd9f80A698b0B6d62400a141a0B5b8e77d67dee
+    0381c6817e048218817f822e8191824881e00A68880B796f70655d600B657a467d2a7e03
+    80db81c904806c81cb804181bf8022814d099f048054818c8097818180cd81810480bb8136
+    80938084805a80550B71745a6e4a7a0B6b8e6eac6fc20F> DC
+  186 /rho <008219017f9b7f1d81d981d8028094813b0B8daca1dcccf20Ba091cc93ec8404
+    8199818b8185811d817580db04814e803480e27fcb80498046038094813b027ff47f1d03
+    803b801604807b7ff980c67fe6810c7ffa04818d801c81e680ae81d881310481ca81b08163
+    81e480ed81d604805d81c680458158802280e3037f9c7f1d09d80F> DC
+  187 /sigma <00820e017ff97ff6821981f0028085814b0B98adb6d4e6e80Ba690cf80e76004
+    8186814d815580ac812c80670480b77fa67ffd804b8085814b02818481990481d1818e821b
+    8184821a81eb0A6c850B7b71716761620481c181c8815e81d6813481d70480ea81db80a1
+    81c98069819704801f81567fed80ee7ffd808a0480187fe380e17fd28152803204818b8063
+    81b780aa81be80f60481c3813981ad8168818481990F> DC
+  188 /tau <0081a7017ff67ff6818f81e802817e81e90B776d6861535e04811d81c080df81c7
+    80ab81ca04804081d1800981c67ff7814f0A967e04802481928057818480958181038060
+    80bd04804f8081802d801180827ffa0480d97fe2810d8041812e80810A6b8c0B6d6148141c
+    1a048080802d80aa809980b080b20380e9818004814c817c81718179819081de0A6e8b
+    0F> DC
+  189 /upsilon <008206017ff17ff581c281d702800881460B8e9f9cbfb7d40B8d8aa795b080
+    04808c8156801e80ad803d804d0B8d55b333e02b0480e87feb812980148157804c04818f
+    809081b380e981bf81400481c4816781ca81b181a781cd0B689245883b6b048154818e8180
+    814b8184811c04818f809b80f57fd9809d802504804d806a80fa814080bb81b20B6ba737af
+    119a0B5366373225020A97780F> DC
+  190 /phi <00825d017ff37f238229829d0280f17ff30Baa87d18ef7a10481b5803a81f88077
+    821780c70482368115822c816e81e881a50481c281c4819381ce816481d5038194829d0959
+    03813481d70480f981d380c381c8808f81aa04804781818006813b7ff880e7047fde805f
+    802a800d80a77ff503806a7f2409d40380f17ff302812981b20380af8012048033802e803d
+    80a58066810704808c816180c781a2812981b20280f9801503815c81b20481cd819881dd
+    813a81b780d6048194807a8155803580f980150F> DC
+  191 /chi <0081db017fab7f1c81c181d70280a380ab037fac7f2a09df0380b480340480ba
+    7ff680c47f32810a7f1f0481597f0981787f9281847fc60A67880B745a601c2b280480da
+    7f8380d3802280cf80550381c181cc09230380c180d00480bc810a80b881bf807e81d40B65
+    8a487c356804800f8197800381617ff681310A98780B8ba3a8e9d9d80480988170809f80d7
+    80a380ab0F> DC
+
+  /FontBBox {-107 -236 948 763} def
+  end
+
+/Dutch801-Italic-DECmath_Italic bsd definefont pop
+
+%%EndFont
+
+
+%%BeginFont: Dutch801-Roman-DECmath_Symbol
+% Bitstream Fontware PSO Font -- Version 1.6
+% DECmath Font Version 1.0, created 4-13-89
+%
+% Copyright 1989 by Bitstream, Inc. All Rights Reserved.
+% Copyright 1989 Digital Equipment Corporation
+%
+% This product is the sole property of Bitstream Inc. and
+% contains its proprietary and confidential information
+
+% U.S Government Restricted Rights
+% This software product is provided with RESTRICTED RIGHTS.  Use,
+% duplication or disclosure by the Government is subject to
+% restrictions as set forth in FAR 52.227-19(c)(2) (June, 1987)
+% when applicable or the applicable provisions of DOD FAR supplement
+% 252.227-7013 subdivision (b)(3)(ii) (May,1981) or subdivision
+% (c)(1)(ii) (May, 1987). Contractor/manufacturer is Bitstream Inc. 
+% /215 First Street/Cambridge, MA 02142.
+%
+% This software is furnished under a license and may be used and  copied
+% only  in  accordance  with  the  terms  of  such  license and with the
+% inclusion of the above copyright notices.  This software or  any other
+% copies  thereof may not be provided or otherwise made available to any
+% other person.  No title to and ownership of  the  software  is  hereby
+% transfered. 
+%
+% The information in this software is subject to change  without  notice
+% and  should  not  be  construed  as  a commitment by Digital Equipment
+% Corporation.
+%
+% BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
+% WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
+% WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+% BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY 
+% SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+% RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+% CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+% CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+% 
+/n_chars  128 def
+/DC
+  {
+  /bits exch def
+  /name exch def
+  /num exch def
+  num 256 lt {Encoding num name put} if
+  CharStrings name bits put
+  } bind def
+/bsd 15 dict def
+bsd begin
+  /FontType 3 def
+  /FontName /Dutch801-Roman-DECmath_Symbol def
+  /PaintType 0 def
+  /UniqueID 440175 def
+  /FontMatrix [.001 0 0 .001 0 0] def
+  /FontInfo 12 dict def
+  /CharStrings 1 n_chars add dict def
+  CharStrings /.notdef <0F> put
+  /Encoding 256 array def
+  0 1 255 {Encoding exch /.notdef put} for
+  /temp 15 dict def
+  temp begin
+    /get-word
+      {
+      0 s i get add 8 bitshift
+      /i i 1 add def
+      s i get add 32768 sub
+      /i i 1 add def
+      } bind def
+    /get-byte
+      {
+      s i get 128 sub
+      /i i 1 add def
+      } bind def
+    /get-name
+      {
+      /len s i get def
+      /i i 1 add def
+      s i len getinterval
+      /i i len add def
+      } bind def
+    /eval-arr 16 array def
+    eval-arr 16#00 {get-word 0} bind put
+    eval-arr 16#01 {4 {get-word} repeat setcachedevice newpath} bind put
+    eval-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put 
+    eval-arr 16#03 {2 {get-word} repeat lineto} bind put 
+    eval-arr 16#04 {6 {get-word} repeat curveto} bind put 
+    eval-arr 16#05 {4 {get-word} repeat get-name do-char} bind put 
+    eval-arr 16#06 {0 get-word rlineto} bind put 
+    eval-arr 16#07 {get-word 0 rlineto} bind put 
+    eval-arr 16#08 {0 get-byte rlineto} bind put 
+    eval-arr 16#09 {get-byte 0 rlineto} bind put 
+    eval-arr 16#0A {2 {get-byte} repeat rlineto} bind put 
+    eval-arr 16#0B {6 {get-byte} repeat rcurveto} bind put 
+    eval-arr 16#0F {end PaintType 2 eq
+                     {temp begin stroke exit}
+                     {temp begin fill exit}
+                     ifelse } bind put
+    /do-char-arr 16 array def
+    do-char-arr 16#00 {get-word pop} bind put
+    do-char-arr 16#01 {4 {get-word pop} repeat} bind put
+    do-char-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put
+    do-char-arr 16#03 {2 {get-word} repeat lineto} bind put
+    do-char-arr 16#04 {6 {get-word} repeat curveto} bind put
+    do-char-arr 16#05 {4 {get-word} repeat get-name do-char} bind put
+    do-char-arr 16#06 {0 get-word rlineto} bind put 
+    do-char-arr 16#07 {get-word 0 rlineto} bind put 
+    do-char-arr 16#08 {0 get-byte rlineto} bind put 
+    do-char-arr 16#09 {get-byte 0 rlineto} bind put 
+    do-char-arr 16#0A {2 {get-byte} repeat rlineto} bind put 
+    do-char-arr 16#0B {6 {get-byte} repeat rcurveto} bind put 
+    do-char-arr 16#0F {closepath exit} bind put
+    /eval
+      {
+      /s exch def
+      /i 0 def
+        {
+        /t s i get def
+        /i i 1 add def
+        eval-arr t get exec
+        } loop
+      } bind def
+    /do-char
+      {
+      t s i matrix currentmatrix
+      2 {6 index} repeat translate
+      2 {8 index 256 div} repeat scale
+      end CharStrings 5 index get
+      temp begin /s exch def
+      /i 0 def
+        {
+        /t s i get def
+        /i i 1 add def
+        do-char-arr t get exec
+        } loop
+      setmatrix
+      [/i /s /t] {exch def} forall
+      5 {pop} repeat
+      } bind def
+    end
+  /BuildChar
+    {
+    exch begin
+      0.2 setflat
+      Encoding exch get
+      CharStrings exch
+      2 copy known not { pop /space } if get
+      temp begin eval end
+      end
+    } bind def
+  FontInfo /version (Fontware-PSO 1.6) put
+  FontInfo /OutlineResolution 1000 put
+  FontInfo /Copyright (Copyright 1989 by Bitstream,Inc. and Digital Equipment 
Corp. All Rights Reserved.) put
+  FontInfo /Notice (Dutch 801 is a registered trademark of Bitstream, Inc.) put
+  FontInfo /Date (1989/4/13 12:16:50) put
+  FontInfo /FullName (Dutch 801 Roman DECmath_Symbol (TM)) put
+  FontInfo /FamilyName (Dutch 801) put
+  FontInfo /Weight (Medium) put
+  FontInfo /ItalicAngle 0.00 put
+  FontInfo /isFixedPitch false put
+  FontInfo /UnderlinePosition -100 put
+  FontInfo /UnderlineThickness 60 put
+  32 /arrowleft <0083e801803e808c83a981d00283a9811308b8077d03038179819e0A6ab3
+    03803f81550834038163808d0A96b30380ac81130782fd0F> DC
+  33 /arrowright <0083e801803e808c83a981d002803f81130782fd03826f80c00A964d03
+    83a9810908cc03828581d10A6a4d03833c814b077d0308480F> DC
+  34 /arrowup <0081f40180577f53819b82bc0281167f540682fb03816881830Ab39503811f
+    82bd093403805781980Ab36b0380dd824f067d0509b90F> DC
+  35 /arrowdown <0081f40180577f53819b82bc02805880770380d47f5409cb03819b80770A
+    4d960381167fc10682fc0947067d0403808a808d0A4e6a0F> DC
+  36 /arrowboth <0083e801803e808d83a881d10283418149077d66038179819e0A6ab303
+    803f81550834038163808d0A96b30380a7811607829a03826f80c00A954d0383a9810908cc
+    03828481d10A6b4d03834181490F> DC
+  37 /arrownortheast 
<0083e80180377f4b83b082c40280377f740Aa85803835d8248038306817d0Ab4
+    6b0383b1828f0A4bb5038255824d0A954d03833582700380377f740F> DC
+  38 /arrowsoutheast 
<0083e80180377f4b83b082c3028037829c0383357fa003826a7ff60A6b4d03
+    837c7f4c0Ab5b503833a80a70A4c6b03835d7fc803805f82c40A58580F> DC
+  39 /similarequal 
<0083e80180aa80bf833d81c00280aa813204811a817f8160819581e5816904
+    827f813682b08126833e818208bf0482aa815a828b816e81e781a104816b81ca811681b4
+    80aa817108410280aa80bf07829408b7077d6c08490F> DC
+  40 /arrowdblleft <0083e8018027803183c081dc02812881710Aeabe0A65ae038028811808
+    5f03817780320A9bae0A16bd07829808b3077d100A20b70Ae0b80782f008b2077d68
+    0F> DC
+  41 /arrowdblright <0083e8018027803183c081dc0282c08171077d68084e0782f00Ae048
+    0A2049077d10084d0782980A16430A9b520383c080f708a103827181dd0A65520Aea42
+    0F> DC
+  42 /arrowdblup <0081f40180237f3b81cf82d302809081d3067d6909b20682ef0Ab8e00Ab7
+    20067d1109b30682970Abd160Aae9c03810a82d3095f03802481850Aae640Abeea0F> DC
+  43 /arrowdbldown <0081f40180237f3b81cf82d3028090803b0A42ea0A52650380e97f3c09
+    a10381cf808a0A529b0A4316068298094d067d110A49200A48e00682ef094e067d68
+    0F> DC
+  44 /arrowdblboth <0083e8018027805983c0820402812880c50781970A17430A9b510383c0
+    811e08a203827182050A65510Ae943077e690Aeabd0A65af0380288140085e03817780590A
+    9baf0A16bd0280d080f80A20b70Ae0b70782480Ae0490A2049077db80F> DC
+  45 /arrownorthwest 
<0083e80180377f4b83b082c40283b17f740380b3827003817e821a0A95b303
+    806c82c40A4b4b0380ae81680Ab49503808b82480383897f4c0Aa8a80F> DC
+  46 /arrowsouthwest 
<0083e80180377f4b83b082c30283b1829c0A58a803808b7fc80380e280920A4c
+    950380377f810Ab54b0381937fc30A6bb30380b37fa00383b1829c0F> DC
+  47 /proportional <0083e80180f1807082f681e302820781470481ea810b81c680af8179
+    80ac0B3b7d11bb11fb0B80c4affcf5fd0481be81a481e9817a8207814702822a80ee048257
+    8094828b805582f6808008a9048291809c826880ba823b8113048251814182678171828c
+    81940B9e9dc49eea9708a40482858202824b81cc821881690481f881a881cc81e7817d81e3
+    04811e81df80f1817f80f2812a0480f280d381298074818980710481d9806e820780b0822a
+    80ee0F> DC
+  48 /prime <00811601802c80aa80e9826902804780aa0380db81f70B91a79be267f10B448f
+    2b56242703802c80aa099b0F> DC
+  49 /infinity <00834101806b806b82d681ea0281a680ec0481cc80ae81f7806a8249806e04
+    82ab807282d680d682d6812c0482d58184829f81e7823e81eb0481eb81ee81be81a8819b
+    816804817781a7814b81ec80f981e904809781e4806c8181806c812a04806c80d380a3806f
+    8104806c0481558068818380ae81a680ec0281838145048167810c814580b880fc80b40B3f
+    7c15b715f30B80c1aff4f0f404813e819b81658175818381450281bf81110481db814a81fd
+    819d824681a20Bc184eb48eb0d0482b080b28215808181bf81110F> DC
+  50 /element <0083e80180aa8000833d826c02833e800008ba077e9b04813d803980f2808d
+    80e4812507825a08b3077da60480f781ea8144823281d9823307816508b9077e9b04811b
+    826c80aa81f480aa81360480aa8079811b800081d980000781650F> DC
+  51 /suchthat <0083e80180aa8000833d826c0280aa80000781650482cd8000833d8079833e
+    813604833d81f482cd826c820f826c077e9b08470781650482a5823282f081ea8304815807
+    7da6084d07825a0482f6808d82ab8039820f803a077e9b08460F> DC
+  52 /trianglelgup 
<0083e80180757fde837282e30280757fde0782fe0381f482e40380757fde02
+    80ba80080381f4828403832d8008077d8d0F> DC
+  53 /trianglelgdown 
<0083e80180757f2b8372823002807582310381f47f2c0383738231077d0202
+    80ba82060782730381f47f8b0380ba82060F> DC
+  54 /slashnegate 
<0080000180007f4b81a282c30280347f4c0381a382b10A4c930380007f5f0Ab4
+    6d0F> DC
+  55 /mapsto <008000018024808180b981dc02806181dc0944067ea509bc06809209d808b809
+    280680910F> DC
+  56 /universal <00827d017ffd8000828082ce027ffe82cf038108800009ec03828082cf09
+    160381ca81f7077ee503806282cf091c0280cd81a40780e003813e80670380cd81a4
+    0F> DC
+  57 /existential <00827f0180298000823282ce02823380000682cf077dff082707819f06
+    7f29077e80082c078180067f0f077e58082607820a0F> DC
+  58 /logicalnot <00834101807b80af82c581a402807c816b07820f067f4509ba0680f507
+    7db708460F> DC
+  59 /emptyset <0081f401801c7fae81d782fe02816782ff0A663204812482c380f682c580ca
+    82ba04806c82a1803c8244802a81eb048013817c801780f1803b80860B8d59a439bd190A59
+    1009aa0A9edb0480c67fed81027fef81347ffc048191801481ba807b81ca80d10481df8140
+    81e181d081b6823a0B70a659c43ce00Aa2e509530280a9803403815d8267048174822f8178
+    81f6817881b90481798155817d80ee816c808b0B7850671431060B52742b7f0ca3028141
+    828e038092806204807580e8807081ac808c82310B8ab1a0e6d6f30Ba489c482df6a
+    0F> DC
+  60 /Rfraktur <00831a01801d7ff582ee82f50282bc81ea0B8781a484ab8b0B8586828f7a90
+    0B70835e804f880B658e6bb46dcc0482af833281a48322817a825604814f8311807a8330
+    802c8284047fd281bb812b819b804281210A8b6b0480ac813b80f8818780a781ee048087
+    8216805882398052827004804c82b6809f82e880dd82cf04811882b78128826f8131823704
+    813d81e98140819a8142814c04814580e38155802380c5800f0B6b7d477e3a930B709a8bb3
+    94ca0B8ea36fcb49c70B487a4433570b0B9851cb39fd380480f17ff4812b80178152804a04
+    819480a2819e813c819a81a60Ad8950B9a68a74bac280482298117822180c98228807d04
+    822c804f8238800d82687ff80B9776a894b4a20Ad2d90A70900B6e6e554b37540B618b63bd
+    63d604827680f48287819f824c81d10Af09902828f81f703819881bf048191820381878251
+    81a882900B95a8bdcbedc504825b82cc82438275824a82470B865ea33ac5300F> DC
+  61 /Ifraktur <0082bb0180347ff4829382f502810081a60480ad81a2806a81e2806e823604
+    8071828480b882d6810b82b0048160828a818b821581f1821104824d820d8289825a8271
+    82b1096b0B87527c113f160481db824c818f82d3813582ee04803683387ff881858100818f
+    089702804980020B82a684d69df60B8e91a49dba960B9b79a85fb6490480fa802181268000
+    81677ff80481bb7fec82138004824980480482bb80d681ff814881f5819d0481ed81eb8280
+    81ed827d8152099504829881e48218821481d381c80481ae81a081b3815f81cd81320481ed
+    80fc822580cd8233808d048243804781f4801181b6800d048169800881488051811f808504
+    80c680f5802a80bc8035800209940F> DC
+  62 /latticetop 
<00830a018039800082d082ce02803a82cf084607812e067d6b09ba06829507
+    812e08ba077d6a0F> DC
+  63 /latticebot 
<00830a018039800082d082ce02803a800007829608ba077ed2068295094606
+    7d6b077ed208460F> DC
+  64 /aleph <00825a0180217ff1823782a1028022801c0A826804807c7ff580e0801280b7
+    80800480a680af807880d68082810c0B87a7a7c2c3db04810f8120815b80dc81a180900B9e
+    60bc3dca120B8572835b90510B857c8e8391870B94969abc9ada04822680b481a7811e8166
+    815e0381e381e60Bab619a3fae450B9588a4b0a6c40B85a96cc74ee00B6a914ca243be0B7e
+    877c9373920B6581594a58360B7e539d3ebc22038152817004811481a880d481e2809f8223
+    0B6c995ab450d30B7c8d7ea272ab0B6b905944573c04802981ff807681b880b1817a048059
+    812c802680f48045807a0B8c519e2c5d220F> DC
+  65 /Acursive 
<008276017f647f96820582ec02818e82c404817d824d811e819f80de813d0B57662e
+    4f023a0B9b7db57acf7904808980b980047feb7fb98006047f76801d7fd580a37fea80bd0A
+    6c7e047fa780887f3b7ffb7f717fad0B975ec369e07c0480277fe08095809780cb80ee04
+    80fa80eb812980e9815880ee04815080b181488073814580350B7f6a804c95400481887fd7
+    81f2806d820680860A7b940B746f4f31344d0481a2807b81ad80e081af81010B9f88b99ad2
+    ac0B667c4d7a33790481bc81c581d1825481fd82ed0B5b71376311570280f2812f048127
+    818a815881e88181824904817381e881688187815f81250B5b7e3783138a0F> DC
+  66 /Bcursive 
<008265017fe27fd6826482e9028066826c0A7f6d0Bbda9e1b7cd5d0480a281ec808c
+    81a28073815a04804e80ee801880887ff0801e0B786a6c50783a0Ba19ac3b4e5cf048072
+    8083809880de80bf813a048107813181718121818280cb0481908088816c803f8143800b04
+    80e2801380c4806f80d580c30A74770480a2806380a47fea81177fd604816f800f81de8070
+    81da80e60B7ebc58e823fe0481d181a7824481fc825f82690B88a48bd572f30B6e974e8c39
+    8004819e82a0812181ff80de81980480f481d3814c82b1813282d90B798a6b8662820480d8
+    82bc809c82958066826c0280c9814a0480f881a1812381e38169822c0B8c8cd2dbefcc0B95
+    778e548b430481d581eb81a481a38168816d0B73856589578b0A0a520F> DC
+  67 /Ccursive 
<008222017fee7fe4824c82da02819380db04817880a581518075812680490B6a6a3c
+    6c206f0B50852ea01ccc04803880ec8071816380a881bb0480d6820681328282819482900B
+    a585ca70d34a0481f3822a81d081fa81b181d904818081a48141817f80fb816d0A8a6404
+    81578172819b81a481da81e1048209820f825a8261824b82ad0B7b9866a84eac0B67844c7d
+    347504814582a180d48233807d81c504803281667fe080e07ff080600B8648a716df0804
+    80eb7fc28179807781c680e40A4d770F> DC
+  68 /Dcursive 
<0082d2017fce7fcd82bf82db02802b817504804281ab807a8238809e82580480d4
+    8289814f82958194828e0B5e623a47152d0480eb81a480a28110806a80760B6c8547963385
+    04800480647fd47ffd7fcf7fd80B7c54fdc3fec40480a5800b81017fdd815c7ff60481d5
+    8016826080a08296810c0482d1817f82d28219827b827f0481f1832180f982d48073825704
+    8021820c801a81e9802b817502808f806d0480ea8121814281da81a582890482a0823b828d
+    810d81f6806e0481a4801880ed8053808f806d0F> DC
+  69 /Ecursive 
<008217017fef7fe5821982d602817780d50B725a5e3747150480fc8043805c802e
+    8057809e04805280f080ab813b80f381510Ba089be85de800B9e97bcacdbc10481688191
+    80f381ad80f182020B7faba7e9d0fa048191829e81ff8252818d82010A90780481c58215
+    82218259821982940B7ab432cb06c004815882c480b48233809781f304807781a980a58180
+    80e6816604809281458040810f800d80c3047fe580847fe2802e80247fff04804c7fe38083
+    7fdf80b17fef04811e80138175807681a780db0A507a0F> DC
+  70 /Fcursive 
<00822e0180237fe0825c82db028061820609ac0B85a890f2bffd04811f82958176
+    825c81c882530B686c505f325504816981e9815881ab8145816d048117817180ea817b80bd
+    81860B616a41561f430480a3813c80ea81348132813104811880de80fd808b80d4803e0B5c
+    7835852aac0B76a38ac69ce30A6f7904805f809c802b805e802480210B7b56973fc04004
+    80a07fe280f08023811980490481498077816780f0817c812b0Ba095c1a9e2bd0B677f4f7f
+    36810481ad81b981cc820681f182510Ba492c8a5ecb704820e8297814e82e4811782db0B55
+    7828460f270B625a4d303b040F> DC
+  71 /Gcursive 
<008253017ff57f28823a82dd0281a981c60481db81ef823d825b823a829c048237
+    82e081eb82e481ba82d304814e82ad80d4823f808e81e8048043818c7ff681047ff5808804
+    7ff5803580197fe680747fdc04805d7fa180587f6180767f290480b67f4380ea7f6f8119
+    7fa20481597fe8817b8034819b808d0481c7810881c38109820e816a0481d2816c81968172
+    815b817b0A264504812c813f8155813c8180813704815a80e28123807d80df803e0B4b6c18
+    8703bc048025811480c48223814682740481d282cd82178243818e81c6099b0280857fdb04
+    80e7800081258061815b80b60A847d0B76696a535f3d0B726269435e240481047fd580e5
+    7f8e80ab7f670B5d9d51c75af40F> DC
+  72 /Hcursive 
<0082d2017f2b7fc582d382d1027f2c800e0Aee38047fe37fe8806d801b809a806404
+    80c680ab80ce80ea80e98132048133812b817f812681ca81290481a880de816d80488181
+    7ff904819c7f8b822f8049824780690A79960B7874452a324d0481da807e820b80f7821e
+    81260Aedbb0B627e447d257e0B899795ad9fc5048279820782a0826c82d482cb0B57712c66
+    025b048227823d820181d081dd8163048193816a8149817080ff817504811581ab818282a3
+    816582c90B729159824a7a0480f982a680c28287808f8264086e0B9187c4a6d2940480f3
+    824f80bc81b180ae818c0A16390Acf7704806b80d9804c80698001801a0B7371646b4f6a04
+    7f9980037f6280087f2c800e0F> DC
+  73 /Icursive 
<0081af017fd47fa481cc82d1028068820f0B9187a08fb0980B8a9e95bba7d40Bab8d
+    ca8df68a0480c281e380b8809680367ff30480018018801a8090803380bf0A4d5a047fe5
+    80587fb37fe47ff07fa50480607fc680c4805b80ef80c004810d8108812481538139819e04
+    814d81e5815f822e817f82710B92a6afc2cedd04819482ce813682df810582c50B576b324b
+    14280B69655c434f220F> DC
+  74 /Jcursive 
<0081db017fcb7f29820582cf02820682c504819582bf816082f480ff82a40480aa
+    825e805a81ea805181790B7d558d2fb71f0Ba8a3cdc8eff00B5f6b378130a604809981f9
+    80c6824680f2827e04811c828881478287817282810480fe819f80c87fff802e7f6a047ff1
+    7f99802b8044805080770A6276047ffc80247fbe7fbf7fcd7f5e0B836d8d589e4e0B8e78a6
+    89b28f0480687f6180ae7f9d80d97fe6048117804f814180ea8165815f04818181b881a4
+    824181d682900B8d949fa5b0b50F> DC
+  75 /Kcursive 
<0082a4017fda7fc482b182d802807c807a04809a80ba80b480fa80cb813d0B94749d
+    5ea6490480ca80d780a380a9807c807a027fdb7fc40Ba599cbb3f1ca04807d806180bb80aa
+    80fc80f004811080bd81577fdf81817fd50481a77fca81ff803d821680600A7b950B716c53
+    40344e0481958058815581088143813f0481bb81908275821a82a782a50B868f93a97fb20B
+    75862e3f24360481e7822d818f81c3813881590B5d74396c14690480f381ac81278232813e
+    829d0B838e859e7eac0B788c6c8b60850480dc82ae80a28283806982580A866d0B938ecdb5
+    cb820480b9820c808581848074815104804680ca801880447fdb7fc40F> DC
+  76 /Lcursive 
<00825a017f8a7fab825682dd0281a081d20481d981fa8255825f825782ac0B81b63d
+    b517ac0481aa82c8816a82a181328279048100825680de822e80c481f704808d81848070
+    81068040809004800180787fc7804e7fa380150B79755f536a450B8a73a783b187047ff7
+    7ffb801f80238049804e048093802480d57fbd81237fac0481877fda81d8802e8211808c0A
+    4b760481c6804e81a8801f81797ffe04810e801480db8084808480950480dc811c80e1815a
+    811e81ed0481358224814b825f8175828a0481e282b482298251818e81da0A92780F> DC
+  77 /Mcursive 
<008380017f357f7b833082dc0280bb82760B948bdbb3e88b048145821b80328057
+    7feb80150B6d6d535a365c0B6f82648c619b047f7a80427fa7807a7fc380a20A6c7d047f7b
+    80657f34800e7f367fbc0B815e9640ba3f047fab7f7b7fda7fb97ff97fe3048069807a80e8
+    816d812d822004812b819d8126811b81218098048121808281137ffe812e7ff40B9777b2a1
+    bbae0481b3808081f180e98231814e0482548186827781c0829981f90482798174826280ed
+    824d8066048248804782347ffd824d7fe00B8a739a72a87a0482ac7ff782e3803b830b806a
+    0A79930B74714b38345104829d806e82f6820382ff822e048308825983138284832282ad0B
+    858c919f8dac0B7e847b8477820482fd82c282d282ac82a782960482a382158236817d81f4
+    81160481e580ff81ac809f819580880B7b7c747b718104817c809881968271819082ac0B7e
+    9279a865ac04814b82e280de829b80be82890A7d6d0F> DC
+  78 /Ncursive 
<0082d2017f797f7782c482d902806082540A846a048081825980cb829180f082650B
+    926c904e8b360480e981b780968115806980bc048050808b801a801e7fe380030B777c6677
+    5e810B74927eae84bf0B8eaaabcbc9ea0A6277047fc2806d7f9280337f807fec0B79636e17
+    9a0d0Bae74eedefef604807c808380e981708117821e048155815e817e809181967fc90A88
+    810481e6803c822780b3825d812e048281818082dc825e82c082b904829c832482058260
+    81f382470A8a6f0B9197a4afc1b80B9f88b873c0570482a081d1821780cf81df80670481c5
+    811e818d8243813382da0480e382bd80a1828b806082540F> DC
+  79 /Ocursive 
<00829f017ffc7fe082a482da02813b829b0480aa8240802381a6800380fa047ff6
+    80ad7ff48050802f801504805c7fe980a37fd780e07fe50481c2801882d4814f829d824304
+    828182bf820b82fc819782c904816b827b8127823a80f181f20A99810B9aa5b6cadde304
+    8191827281cf827d81f9825b04828681ec820780c0819b8066048135801080868033806e
+    80c204804f817680c1822e814b82980A70830F> DC
+  80 /Pcursive 
<008251017fee7fb9825482d40280b280f70480e08168812e821d819682600Ba297c7
+    96cf670481fa81d381968103811580ed0B5e7b3d7f1d8a02806a82410B8d8bcbb3d49104
+    80cc821c80788151806581200B6b71566340560B8c749969a85e04803880a57fe37ff27ff0
+    7fc80B866f9c70aa740480537fce80937ffd80c4801c0A819604802a7fc580838077809e
+    80bf04818480a9827f81b0825082910482258360812c8213810d81e10A7b830481188214
+    814d829c813f82ca0B7d87758b6e8a04811582cf80838269806c825a0A7e670F> DC
+  81 /Qcursive 
<0082a4017fd37fa7828782d502821b80450481b67fc281467ff380be802a048128
+    805e8191809581e880e704823d8139828381a38287821c04828d82cb820582f9817682b504
+    80f08274806181ed803e8156048031811e803080d8805b80ab0480b5804d815080d28186
+    811b096404814180e080d680b980b1810e048081818180da8259815982830481d482ab821c
+    824e821181d70482028121814d806a80a0803a0B5b8d379d11a60A22210Ba96bc568f07404
+    809a7fd081177f91817b7fae0481c07fc3820e800b823a80440A61810F> DC
+  82 /Rcursive 
<008296017ff77fc9827882db02807482440B918cb3a9c8950B8e728c5b8a490480b5
+    81b2806880f6803f808904803680727ff57fdc7ff87fcc0B817e847d867e0B8482f2ddfee6
+    048095808780b380dd80d581320480f480fb811280c3812d808b048138807481717fed818d
+    7fdc0B8c79977ba2820481d27ff6820f8042822a80610A79970B6e6b514230520481a7805e
+    815481168142813e0481c881698229819d82608224048271824c828f82b3825f82d404820e
+    830a813481e7811081b40A7e840481878338815f82f28072825b0A82690280dd813a04810f
+    81968166821a81b9825b0B9590bba8c681048210821681c981ac8199817d0B5e6041601565
+    0B65734a652f580F> DC
+  83 /Scursive 
<00820b017fe07fdf821a82d60281aa81d70481c681f082178254821b82760B81867b
+    8f78940B6ea74cc321ca04810382f37fe781b680b181400480f0811c815b8105815480a90B
+    7b416131232404807380307fdf8083807080fa0A5c7d04802180c17fed80777fe180320B7a
+    64bd3cd0360480ef7fa7822380f88161816a048126818d80b381a880b582000B80c2a0dad9
+    eb048184828e820c8246819081da0A9a7d0F> DC
+  84 /Tcursive 
<00828a0180357fdb82ce82d9028035825b0A8d78048077827a8094827d80d4827004
+    811682628157824d819982420480ea81db7fe981208087803d0B9562cc19fd1f0Bac86d9a8
+    f9c20481c2805581f9809a822680e50A4f7a0481d4809d81a98062817180300481118041
+    80cc809580ca80f60480c78192814181f081b8823c048229822c82a5825c82cf82ce0A768b
+    04828082cb823f82ac8201828c0481958292813382c880ca82d904809b82aa806982848035
+    825b0F> DC
+  85 /Ucursive 
<0082bb0180077fe2829b82de02806982600A856d0B9c90d4b3d4780480c181f3802e
+    8082800e801b0B755e793da74c0480ae800e813b80bf8180812c0A847e04816b80e18146
+    8048815a80000481787f96823080658238806e0A79920B6b692e2d1d6a0481af80d68226
+    81cb8251822c04825d824682a282cd829b82dc0B7b880c5804540481d681ea817480f980c4
+    80750B2b414cb25bda0480c1812b8147826b814882b10B80907ca36ba90B798273816e7e04
+    80f282c28095827e806982600F> DC
+  86 /Vcursive 
<0082390180387fd8825e82da02803982460Bae9ce2afe9660480a981e3808f815d
+    8084811904807a80dc8070809e806480610B7c6e785c76490B7c5aa019cb380480e4800d
+    814d80aa817580ed0481a1813681c7818381ed81cf0Ba790cca6f1ba0B648d51a046bc0B8e
+    a59ecaa0f10B81917bb262a10481f782b681a3823481ce81f60481b381a68127807280e4
+    80590B526f5bb95ece0480d681318126823d811782b80B7e8c7c9b6f9f0480ed82dd804d
+    826a8038825c0A816a0F> DC
+  87 /Wcursive 
<00831801802b7fd7835082dc02802e82460Ba297d6abe5730480a581f4806e80f7
+    805f80ae048056808480297ff3806a7fdb0B9b76b48ec5a004810b8060814f80dc81958153
+    0B7a5e733c6d1a04817480ab81618069815980260B7d67793a9b330481ef7fbd82c58175
+    82ec81c60Ba293c3a7e5bb0B658c539f47ba0483218251834d82e3831c82dc0482f382d5
+    8274823b82c981da0482b28191822c807681e880560B546b549f58bb0481ce80f4822e827c
+    822082c20B7d8c739667960481f282d8819682958185828a0B9971a55ca83f0481b28215
+    81a981c0819381900481708142812080c980ee80810B76715c5547660B708d76ae78bf04
+    80c3813c80ed81cf810382650B829190e179ee0B7c82768371810480c582c580518272802c
+    82590A826d0F> DC
+  88 /Xcursive 
<0082d2017fa27fb982a482de028074824b0A866b048093824d80d8828e80fc826304
+    81248233812081698122812304810180fa80398009800080020B717e678862950B75a27fce
+    8bee0B8da3a1c0bbdb0A778a047ff280c17fc980927fb38058047fa480307f947feb7fb4
+    7fc60B8f6ea874ba7e0480507ff980d980a58125810104812880bf81247fe8817a7fd40Ba9
+    76d99af6af0482378039826b8082828d80d50A4e76048245808a8221805381ef8025048179
+    804d818180f4817c815a03820b820a0B806883548c3e04823f81e2826b81f7829782090B5e
+    9757c458eb0482f883088257830a820d823d038179817b04817981bd81808283816582b80B
+    779066a252a304810a82dc808f82668074824b0F> DC
+  89 /Ycursive 
<0082710180377f2b82ba82e002803882680A836f0B968bbc9ed48c0480b982458098
+    81a8809381880480818128806680c3805880640B7e6c7b5580410B86629d52b94b048075
+    7fc080537f8a805a7f4f0B845d9354b0670480c07f5780f27f83811d7fb20481497fe28162
+    801e817c80590481d4811e823d823482ba82de04828782c9825482b6822082a30481ea821b
+    81b48191816d811104815780e98112808080f0806f0B7178607b57890B6d9f76cc7bee04
+    80d5817581218237810a82c40B7d9273a25f9a0480be82cf806082848038826802815680cd
+    0A837f0481308053810a7fbc809f7f6d0480897f96808c7fc2809c7fec0480e18014812e
+    8086815680cd0F> DC
+  90 /Zcursive 
<00824c017fbb7fba827582d902806782230Ab2870B8b9897b0aac404811a827e816d
+    825e81c4825c0380358081047f8d80407f9f7f7b80248034048072802e80a57fd480f27fbf
+    0481647fa181bc803381e080870A567a0B7a5f6c405925048158800f811b802d80eb80450B
+    5b9239aa13b90B7186658655810381f1825604822d8261829082b5827182d30B679a236013
+    500481c082ae817f82c8813d82d80B6e84627b54700480d2829a8097826280678223
+    0F> DC
+  91 /union <0083e80180bd7ff5832a828802832a82880946067e9c0482f080ea82e780aa
+    82be807e04828a8045823f802e81f4802e048155802e80f7808480f88124068164094606
+    7e9c0480bd806681377ff681f47ff50482b27ff6832a8065832a81240681640F> DC
+  92 /intersection <0083e80180bd8000832a82930280be800009ba0681640480f782048155
+    825a81f4825a04823f825a828a824382be820a0482e781de82f0819e82f08164067e9c09ba
+    06816404832a822282b1829381f48294048137829380bd822280be8164067e9c0F> DC
+  93 /unionmultiset 
<0083e80180bd7ff5832a828802832a82880946067e9c0482f080ea82e780aa
+    82be807e04828a8045823f802e81f4802e048155802e80f7808480f88124068164094606
+    7e9c0480bd806681377ff681f47ff50482b27ff6832a8065832a81240681640281db809609
+    b206809407809408b3077f6c068094094e067f6c077f6c084d078094067f6c0F> DC
+  94 /logicaland 
<0083e801807d7fb8836a829c02820d829c094e03807e7fb909bb0381f4825703
+    832f7fb909bb03820d829c0F> DC
+  95 /logicalor 
<0083e801807d7fb8836a829c0281db7fb909b203836a829c09450381f47ffe03
+    80b9829c09450381db7fb90F> DC
+  96 /turnstileleft 
<0082630180378000822b82ce028038800009b906814a0781bb08ba077e4506
+    814b0947067d310F> DC
+  97 /turnstileright 
<0082630180378000822b82ce02822c80000682cf0946067eb5077e46084607
+    81ba067eb609ba0F> DC
+  98 /bracketleftbt <0082100180e67f2581cb83080280e78308067c1e0780e408bf077f5e
+    0683a3093e0F> DC
+  99 /bracketrightbt <0082100180447f25812983080281298308093e067c5d077f5e084107
+    80e40683e20F> DC
+  100 /bracketlefttp <0082100180e67f0781cb82ea0280e77f0709c20683a30780a208c007
+    7f1c067c1d0F> DC
+  101 /bracketrighttp <0082100180447f07812982ea0281297f070683e3077f1c084007
+    80a2067c5d09c20F> DC
+  102 /braceleft <0081f40180557f14819d82fb0280dd7fbd0480dd7f2e81167f17819e7f15
+    089a04813c7f33812a7f50812b7faf06808b04812b80b3812080e980a381080481218126
+    812b815d812b81d506808c04812a82c0813d82dd819e82e2089a04811782fa80dd82e080dd
+    8253067f530480dd813c80bd81238056811708610480bd80eb80dd80d480dd8068067f55
+    0F> DC
+  103 /braceright <0081f40180557f14819d82fb0281167fbd0680ab04811680d4813680eb
+    819d80f8089f04813681238116813c811681a60680ad04811682e180de82f9805682fc0866
+    0480b682dd80c982c080c98261067f740480c9815d80d38126815081080480d380e980c9
+    80b380c9803a067f750480c97f5080b77f3380567f2f08660480de7f1781167f2e81167fbd
+    0F> DC
+  104 /angleleft <00814d01801c7f008131830f028108831003801c81080381087f010Aa992
+    038062810803813182fe0A57920F> DC
+  105 /angleright <00814d01801c7f008131830f02804583100A576e0380eb810803801c
+    7f130Aa96e038131810803804583100F> DC
+  106 /bar <00825a0181177f0f814183000281187f1009aa0683f00956067c100F> DC
+  107 /bardbl <0083e80181807f14826782fb02818082fc067c1909ba0683e7094602822e82fc
+    067c1909ba0683e709460F> DC
+  108 /arrowupdown 
<0081f40180577f14819b82fb0281167f8206830c03816981c20Ab395038120
+    82fc093403805881d70Ab36b0380de828e067cf403808b804e0A4d6a0380d47f1509cc03
+    819c80380A4d960381167f820F> DC
+  109 /arrowdblupdown 
<0081f40180237f1481cf82fb02816480140681e70Abd160Aae9c03810a82fc09
+    5f03802481ad0Aae640Abeea067e190A42ea0A52640380e97f1509a10381cf80620A529c0A
+    43160281317fbd0A49200A48e00682960Ab8e00Ab720067d6a0F> DC
+  110 /backslash 
<0081f40180297f1381cc82fc0281987f130Ab49403805e82fc0A4c6d038198
+    7f130F> DC
+  111 /wreathproduct 
<0081160180377fb680dc81f90280db7fb708a00B4585229913d404805d806f
+    8077809d80a180cf0480d6810e80ed814680d2819a0480bb81e1807d81fc803881f9085e0B
+    b57fda6beb340480be813580908106805c80c904803380a28032804c803f801b0480567fca
+    808f7fba80db7fb70F> DC
+  112 /radical <0083e80180267c7e83ec80300281df7c7f09980383ed800908a70966038207
+    7cf00380df7f260380277ec80A8f610Aebb60381df7c7f0F> DC
+  113 /coproduct 
<008300018017800082ed82940280178294086c0Bc97be276e228067e450B8034
+    652c1e27086c0782d608940B3a851e8c1ed90681bb0B80ce9ad3e2d80894077ed1086c0Bc5
+    7ce171e227067e5704821f801b81e4802581928026048131802680e4801180e5807e0681a9
+    0B80cd9cd4e2d90894077ed00F> DC
+  114 /gradient <0082c90180177ff582b582940281707ff60382b68295077d6203815e7ff6
+    099202818a80940380a982680781c203818a80940F> DC
+  115 /integral <008112017fa77f4b816b82f502815482e30B61983396118604808782bb
+    80748241806981e5048059815c805c80d180578048048055801a80557fb6803a7f8e0B726c
+    5a6d4f820B759672ab55ae0B4586384061200Ba068cc69ee7a04808b7f86809e800080a9
+    805c0480b880e480b5816e80bb81f70480bd822480bd828b80d882b30B8d93a794b17d0B8b
+    6a9055ac530Bba7ac7c09fe00F> DC
+  116 /unionsqr <0083e80180bd8000832a828802832a82880946067db2077e0806824e094606
+    7d7807826c0682880F> DC
+  117 /intersectsqr 
<0083e80180bd8000832a828802832a8000068288077d94067d7809ba06824e07
+    81f8067db209ba0F> DC
+  118 /reflsubsetsq 
<0083e80180b57f85833d828a02833e801e08ba077db20681f907824e08b907
+    7d78067d940782880280b67f8607828808b9077d7808470F> DC
+  119 /reflsupersetsq 
<0083e80180b57f85833d828a0280b6801e07828806826c077d78084707824e06
+    7e07077db2084602833e7f8608b9077d7808470782880F> DC
+  120 /section <0081f40180387f8381bb82c30280e7805f04810c803f814d800f81407fd704
+    81347f9d80e87f9080b87fa40B5d906d9f7eb20B98998ac36acd048045803d80307f9a80cb
+    7f860481137f7c81757f9581887fe504819a802d81608064812e80900481638090819a80a7
+    81b180d90481d28125819d8169816681980A2aca0480e6820580ab823280b3826f0B88b4c1
+    c3edb60Bd964503593050Ba863dc89d8b604818582a5813f82c3810282c30480b582c38065
+    82938069823e04806c8201809c81d980c581b304809181b2805c819c8044816b0480208120
+    805880da808f80ab0Ad83402808f81220B60b06af3adf80480f4819f814a814a8165812004
+    818980e8816f809f812680aa0480f980b080a780fe808f81220F> DC
+  121 /dagger <0081f401802b7f7381c882c30280bf81190480e3807280ea801c80ee7f7409
+    9904810880018112808f8135811904811481518106818c810581cd0Bcc78d260fe580Ba279
+    c68bc5b00B7ea75cb939b10B4f75445e045b0B809d81b989d40B899c98b49fd00B8aa16ebe
+    4ebe0B5e8142644c420480dd823780ef824380ef81e10B4083359a04a50B5d883a76394f0B
+    7f5ba349c5500Bac88b4a1fea80480ee818c80e0815180bf81190F> DC
+  122 /daggerdbl <0081f401802b7f6e81c882c30280ec81c90480ef818a80de814e80bf8118
+    0480e080e080eb80a880ee80670B39862f9d02a50B5e873b753c500B815aa347c64f0Baf8b
+    bf9ffaa30480ed7fe580df800180c77fae0B775e9141b2410Ba280be9cb4bf0B79986cae64
+    c60B789d77bc76da0Bca7bc868fa5d0Ba378c58ac7b10B81a55eb73db00B5378335a035c04
+    810480a6811680e381358118048115814f8108818b810681cb0Bc779d062fe5a0Ba279c58b
+    c4b00B7ea65db93ab10B51764061065d048106824c81168231812d82840B8aa26ebf4ebf0B
+    5e8142644c410480e0822d80ea825480ed81e30B3c84369806a30B5d883a76394f0B7f5ba2
+    49c3500Bae88caa5fda40F> DC
+  123 /paragraph <0081f40180207f9181d382b60281d482b6077f0c04807a82b68020827b
+    8020820c04802081d9803781a8806081880Ba365cb5ef65b067e2f09b70682fa09d6067d06
+    09b60682fa09bb08aa0F> DC
+  124 /clubsuit 
<00847d0180687f88841382ff02825c809e08df04829c80f682bd80b282ea808c
+    04836580248413807b8413811b04841381bc8365821282ea81aa0482be8185829c8140825c
+    813904825b818382a381a482cd81d7048335825282df82ff823e830004819d82ff81478251
+    81af81d70481db81a282218185822081390481e1814081be8185819281aa04811782128069
+    81bc8069811b048069807a811780248192808c0481bf80b281e080f6822080fd048220806b
+    8224800181c87f880482167f9982667f9982b47f880482777fd9825c8038825c809e
+    0F> DC
+  125 /diamondsuit 
<00847c0180887f8983f3831c02823e7f8a0482de804e833480a883f3815204
+    833c81f882db825d823e831c0481a18261813c81f7808981520480d5810c812280c7816a
+    807c0481b4802e81f97fdc823e7f8a02823f7fcb0481ba806a816380c580cb8152048165
+    81e081b98239823f82db0482c48235831481e183b2815204831280c282c58071823f7fcb
+    0F> DC
+  126 /heartsuit 
<00847b0180637f7f841782f802823d82750481be8372804a82ed806581c204
+    8075810d811f80c381a080610481f7802082207fe982337f7f09940482577fda827d8018
+    82c6805204834a80bb84058104841681c204843282ed82bb8372823d827502823d7fea04
+    81f880bf809d80d5809481da04808f826b810582e4819982c30481f582b0821a82638230
+    8211099b0482608263828682b082e282c304837682e483ec826b83e781da0483dd80d7827b
+    80b5823d7fea0F> DC
+  127 /spadesuit 
<00847c0180a07f8083db82fc0282578088048278805982a0803382db802504
+    8352800983c6806183d880d704840381e682868201824582fd09720481f381fd807981e8
+    80a480d70480b68067811f8011819280220481d3802c820080558225808804822680268212
+    7fd381dc7f8004821f7f8a825d7f8a82a07f8004826a7fd382558026825780880F> DC
+  160 /minus <00834101807b810d82c5814702807c810d07824908ba077db708460F> DC
+  161 /dotmath <00823c0180dd810e815e818e0280e381660B6133d602f6500Ba0ce29fe0ab0
+    0F> DC
+  162 /multiply <008341018094801a82b382390280bd801b0381a4810203828b801b0Aa8a8
+    0381cc812a0382b382110A58a80381a481520380bd823a0A585703817c812a03809580430A
+    a8580F> DC
+  163 /asteriskmath <0083e8018140806182a781f30281ee81350B3caa4db222db0B6c9347
+    9c367f0B6f638848a23f0481a0813d81a3815081e8812a0B375a3b6d025d0B64784b5d5c3f
+    0B8f64b46bc87d0Baaa6a1b8e0dd0B7c2d6e3b60020B79638240a53f0Ba080ada3a7be04
+    820e80d781fb80d281fa81200Bc355b24fdd250B956cb963ca800B909c79b95fc1048249
+    8117824381058200812a0Bcba7c393fea40B9c87b4a2a4c00B709c4c9637830B565a614921
+    240B83d192c59ffd0B879d7ec05bc10B6080545e59420481da817c81ec818481ee8135
+    0F> DC
+  164 /divide <00834101807b803a82c5821902816a81f40B6238cf0bee530B9dc82ff612ad
+    02807c810d07824908ba077db7084602816a808c0B6239cf0cee540B9dc72ef412ac
+    0F> DC
+  165 /diamondop 
<0081f4018006801081ed81f602800781030380fa80100381ed81030380fa81f6
+    038007810302803e81030380fa81bf0381b681040380f8804803803e81030F> DC
+  166 /plusminus <00834101807b800082c582830281be817b0681080946067ef8077ef80847
+    078108067ef8077ef8084607824908ba077ef906810807810708b9077ef90F> DC
+  167 /minusplus 
<00834101807b800082c582830281be810807810708ba077ef906810707810708
+    ba077db70846078108067ef9077ef80846078108067ef809ba0681080F> DC
+  168 /circleplus 
<0083e80180727fa9837682ac0283468142077ec50681380482ac8274833f81e3
+    834681420281dc8142077ec60480b281e98133826d81dc827a067ec80280a2811307813a06
+    7ec80481347fe680b2806d80a2811302820b811307813b04833d80c3831e807882e5803e04
+    82ab8005825e7fdb820b7fdb0681380281f482ac04812282ac807381fc8073812a048072
+    805681207faa81f47faa0482c97faa837680568376812a04837681fd82c782ac81f482ac
+    0F> DC
+  169 /circleminus 
<0083e80180727fa9837582ac028344811304832a7f8c80de7f5980a4811307
+    82a00280a581420480cf82ed832782d883448142077d61028376812a04837581fe82c782ab
+    81f482ac04812082ac807381fe8072812a0480728056811f7faa81f47fa90482c87fa98376
+    80568376812a0F> DC
+  170 /circlemultiply 
<0083e80180727faa837582ab028305823b04827082d1817982d080e4823b04
+    804f81a7804f80ae80e4801a04817a7f85826e7f868305801a04839b80b0839a81a58305
+    823b0281f4810a0382d2802c0482937ffc824a7fdb81f87fdb0481a77fdb81517ff38116
+    802d0381f4810a0280f582090381d3812b0380f6804e04808280cb808d818980f5820902
+    81f4814c038115822a04819582948252829682d182290381f4814c0282f3804c038214812b
+    0382f2820804835f8192836180c382f3804c0F> DC
+  171 /circledivide 
<0083e80180727fa9837582ab0280e480190481797f85826f7f868305801904
+    839980ae839981a68305823a04826f82d1817a82d180e4823a04804f81a6804f80ae80e4
+    80190280f7804d047ff58176816d833582d182270380f7804d0282f28207048363817b8366
+    80be82e2803b0482657fbf819b7fb98117802c0382f282070F> DC
+  172 /circledot 
<0083e80180727fa9837682ac0280a3812a0480a281e2813c827c81f4827c04
+    82ac827b834581e28345812a048345807382ac7fda81f47fda04813b7fda80a3807180a3
+    812a0281b3812a0481b380d6823480d58234812a048234817e81b3817e81b3812a0281f4
+    82ac04812282ac807381fc8073812a048072805681207faa81f47fa90482c77fa983768057
+    8376812a04837681fc82c782ac81f482ac0F> DC
+  173 /overlaycircle 
<0083e8017fff7f1483e782fb028031810804803081fe80fc82ca81f282ca04
+    82e982ca83b581ff83b581080483b5801282e97f4681f27f460480fd7f46803180128031
+    81080281f382fc0480e182fb8000821a800081070480007ff580e07f1581f37f15048306
+    7f1583e77ff583e781070483e7821a830682fc81f382fc0F> DC
+  174 /circleop <0081f4018036804081bb81c5028070818c0480258141802580c48070807904
+    80ba802f8137802e818280790481cd80c581ce81428182818d04813781d880ba81d78070
+    818c02808b81700480c681ac812a81ac816681710481a2813581a180d28166809604812a
+    805980c7805a808c809604804f80d180508135808b81700F> DC
+  175 /bullet <0081f4018036804081bb81c5028070818c0480258141802580c48070807904
+    80ba802f8137802e818280790481cd80c581ce81428182818d04813781d880ba81d78070
+    818c0F> DC
+  176 /hardyequiv 
<0083e80180ce8075831881df0280e781df0A685104817f812c8269812d8319
+    81b00A68af04826881668180816580e781df0280e7807504818180ef826780ee830180750A
+    98af04826881278180812880cf80a40A98510F> DC
+  177 /equivalence <0083e80180cf8069831881ea0280cf806a07824a08b9077db6084702
+    80cf810d07824a08ba077db608460280cf81b107824a08ba077db608460F> DC
+  178 /reflexsubset <0083e80180aa7f85833d828a02833e801e08ba077e9b04813a8058
+    80e480b580e481540480e481a080fb81ea8134821f0481608247819f825081d98251078165
+    08b9077e9b04811b828a80aa821280aa81540480aa8097811b801e81d9801e0781650280b2
+    7f8607828c08b9077d7408470F> DC
+  179 /reflexsuperset <0083e80180b37f858347828a0280b3801e0781650482d6801e8347
+    809783478154048347821182d6828a8218828a077e9b08470781650482b88250830d81f4
+    830d815404830d80b582b8805882188058077e9b084602833f7f8608b9077d74084707828c
+    0F> DC
+  180 /lessequal <0083e80180cf80178318823c0280d18146038319808f08ba038126816603
+    8319820208ba0380d181840842028319801808ba077db6084607824a0F> DC
+  181 /greaterequal <0083e80180cf80178318823c0280cf801807824a08ba077db6084602
+    8317814608be0380cf823c08460382c281660380cf80c9084603831781460F> DC
+  182 /precedesequal 
<0083e80180cf80008318826e028319800008ba077db6084607824a0280d08181
+    0849048144814981bc8141822b811d04829680fa82c480c482e4805d0Ab28e04830080b0
+    82e580f182a6811a048254815181f1815e819081660481f1816e8254817b82a681b20482e4
+    81dc8301821c831682610A4e8e0482c58209829481d0822c81ae0481bd818a8145818280d0
+    81810F> DC
+  183 /followsequal 
<0083e80180cf80008318826e02831881810482a38182822b818a81bc81ae04
+    815481d0812382098104826f0A4e720480e7821c810481dd814281b2048194817b81f7816e
+    825881660481f7815e819481518142811a04810380f180e780b080d2806b0Ab272048124
+    80c4815280fa81bd811d04822c814182a481498318814a08b70280cf800007824a08ba07
+    7db608460F> DC
+  184 /similar <0083e80180aa80e3833d81720280aa80e404811a81308160814681e5
+    811a04827f80e782b080d8833e813308bf0482ab810b828b812081e7815304816b817b8116
+    816680aa812208420F> DC
+  185 /approxequal <0083e80180aa8093833d81c00280aa809404811a80e0816080f681e5
+    80ca04827f809782b08088833e80e308bf0482a980ba828b80d081e7810304816b812b8116
+    811680aa80d208420280aa813204811a817f8160819581e5816904827f813682b08126833e
+    818208bf0482aa815a828b816e81e781a104816b81ca811681b480aa817108410F> DC
+  186 /propersubset <0083e80180aa8007833d827402833e800808ba077e9b04813a8042
+    80e4809f80e4813e0480e4818a80fb81d4813482090481608231819f823a81d9823b078165
+    08b9077e9b04811b827480aa81fc80aa813e0480aa8081811b800881d98008078165
+    0F> DC
+  187 /propersuperset <0083e80180aa8007833d82740280aa82740847078165048249823a
+    8288823182b482090482ed81d48304818a8304813e048304809f82ae8042820f8042077e9b
+    08460781650482cd8008833d8081833e813e04833d81fc82cc8274820f8274077e9b
+    0F> DC
+  188 /muchless 
<0083e80180377fb783b082590280378122084d0382627fb708bc038085810803
+    8262821e08bc03803781220281868122084d0383b17fb708bc0381d381080383b1821e08bc
+    03818681220F> DC
+  189 /muchgreater 
<0083e80180377fb783b082590283b18122038186825a08440383638108038186
+    7ff308440383b180ef08b30282628122038037825a084403821581080380377ff3084403
+    826280ef08b30F> DC
+  190 /precedes 
<0083e80180cf8022831582340280d081470849048144810f81bc8107822b80e3
+    04829680c082c4808a82e480220Ab28f048300807682e580b782a680e0048254811781f1
+    81248190812c0481f181348254814082a681780482e481a2830181e1831682260A4e8e04
+    82c581cf82948196822c81740481bd81508145814780d081470F> DC
+  191 /follows <0083e80180cf80228315823402831681470482a181478229815081b9817404
+    81518196812181cf810282340A4e720480e581e1810281a2813f8178048192814081f58134
+    8255812c0481f5812481928117813f80e004810180b780e5807680d080310Ab271048122
+    808a815080c081ba80e304822a810782a1810f8316811008b70F> DC
+
+  /FontBBox {-213 -898 1047 796} def
+  end
+
+/Dutch801-Roman-DECmath_Symbol bsd definefont pop
+
+%%EndFont
+
+DEC_WRITE_dict begin
+loads
+version cvi 23.0 gt {
+currentdict {dup type /arraytype eq
+{bind def} {pop pop} ifelse} forall} if
+0.0100 0.0100 s
+
+%%EndSetup
+%%Page: 1 1
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6313 -23156 T
+N
+0 G
+300 -1050 M
+/Times-Italic-ISOLatin1 $
+/Times-Italic & P
+/Times-Italic-ISOLatin1 F 1000 o f
+2.3 0 32 (This paper is a revised version of an article by the same) W
+300 -2150 M
+27.2 0 32 (title and author which appeared in the April 1991 issue) W
+300 -3250 M
+(of ) h
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+(Communications of the ACM.) h
+300 -4500 M
+300 -6400 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1200 o f
+(Abstract) h
+300 -8150 M
+/Times-Roman-ISOLatin1 F 1000 o f
+135.1 0 32 (For the past few years, a joint ISO/CCITT committee) W
+300 -9250 M
+258.8 0 32 (known as JPEG \(Joint Photographic Experts Group\)) W
+300 -10350 M
+281.4 0 32 (has been working to establish the first international) W
+300 -11450 M
+110.6 0 32 (compression standard for continuous\255tone still images,) W
+300 -12550 M
+190.4 0 32 (both grayscale and color.  JPEG's proposed standard) W
+300 -13650 M
+401.1 0 32 (aims to be generic, to support a wide variety of) W
+300 -14750 M
+189.5 0 32 (applications for continuous\255tone images. To meet the) W
+300 -15850 M
+587.7 0 32 (differing needs of many applications, the JPEG) W
+300 -16950 M
+23.0 0 32 (standard includes two basic compression methods, each) W
+300 -18050 M
+23.6 0 32 (with various modes of operation. A DCT\255based method) W
+300 -19150 M
+127.0 0 32 (is specified for ) W
+127.0 0 32 (\026) W
+127.0 0 32 (lossy'' compression, and a predictive) W
+300 -20250 M
+166.6 0 32 (method for ) W
+166.6 0 32 (\026) W
+166.6 0 32 (lossless'' compression.  JPEG features a) W
+300 -21350 M
+86.9 0 32 (simple lossy technique known as the Baseline method,) W
+300 -22450 M
+163.1 0 32 (a subset of the other DCT\255based modes of operation.) W
+300 -23550 M
+107.9 0 32 (The Baseline method has been by far the most widely) W
+300 -24650 M
+72.5 0 32 (implemented JPEG method to date, and is sufficient in) W
+300 -25750 M
+141.8 0 32 (its own right for a large number of applications. This) W
+300 -26850 M
+52.1 0 32 (article provides an overview of the JPEG standard, and) W
+300 -27950 M
+(focuses in detail on the Baseline method.) h
+300 -29050 M
+300 -30150 M
+300 -31400 M
+/Times-Bold-ISOLatin1 F 1200 o f
+(1  Introduction) h
+300 -33150 M
+/Times-Roman-ISOLatin1 F 1000 o f
+298.8 0 32 (Advances over the past decade in many aspects of) W
+300 -34250 M
+499.8 0 32 (digital technology \255 especially devices for image) W
+300 -35350 M
+203.3 0 32 (acquisition, data storage, and bitmapped printing and) W
+300 -36450 M
+337.0 0 32 (display \255 have brought about many applications of) W
+300 -37550 M
+13.6 0 32 (digital imaging.  However, these applications tend to be) W
+300 -38650 M
+117.1 0 32 (specialized due to their relatively high cost.  With the) W
+300 -39750 M
+126.7 0 32 (possible exception of facsimile, digital images are not) W
+300 -40850 M
+291.3 0 32 (commonplace in general\255purpose computing systems) W
+300 -41950 M
+30.6 0 32 (the way text and geometric graphics are.   The majority) W
+300 -43050 M
+3.9 0 32 (of modern business and consumer usage of photographs) W
+300 -44150 M
+229.1 0 32 (and other types of images takes place through more) W
+300 -45250 M
+(traditional analog means.) h
+300 -46350 M
+300 -47450 M
+-6313 23156 T
+R
+
+S
+31919 -23173 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+305.4 0 32 (The key obstacle for many applications is the vast) W
+300 -2150 M
+215.3 0 32 (amount of data required to represent a digital image) W
+300 -3250 M
+107.9 0 32 (directly.  A digitized version of a single, color picture) W
+300 -4350 M
+144.8 0 32 (at TV resolution contains on the order of one million) W
+300 -5450 M
+55.0 0 32 (bytes; 35mm resolution requires ten times that amount. ) W
+300 -6550 M
+171.9 0 32 (Use of digital images often is not viable due to high) W
+300 -7650 M
+31.7 0 32 (storage or transmission costs, even when image capture) W
+300 -8750 M
+(and display devices are quite affordable.) h
+300 -9850 M
+300 -10950 M
+661.0 0 32 (Modern image compression technology offers a) W
+300 -12050 M
+533.0 0 32 (possible solution.  State\255of\255the\255art techniques can) W
+300 -13150 M
+463.9 0 32 (compress typical images from 1/10 to 1/50 their) W
+300 -14250 M
+427.4 0 32 (uncompressed size without visibly affecting image) W
+300 -15350 M
+372.4 0 32 (quality.  But compression technology alone is not) W
+300 -16450 M
+309.5 0 32 (sufficient.  For digital image applications involving) W
+300 -17550 M
+490.5 0 32 (storage or transmission to become widespread in) W
+300 -18650 M
+355.6 0 32 (today's marketplace, a standard image compression) W
+300 -19750 M
+675.7 0 32 (method is needed to enable interoperability of) W
+300 -20850 M
+152.8 0 32 (equipment from different manufacturers.  The CCITT) W
+300 -21950 M
+259.0 0 32 (recommendation for today's ubiquitous Group 3 fax) W
+300 -23050 M
+40.2 0 32 (machines [17] is a dramatic example of how a standard) W
+300 -24150 M
+268.3 0 32 (compression method can enable an important image) W
+300 -25250 M
+45.0 0 32 (application.  The Group 3 method, however, deals with) W
+300 -26350 M
+75.1 0 32 (bilevel images only and does not address photographic) W
+300 -27450 M
+(image compression.) h
+300 -28550 M
+300 -29650 M
+107.8 0 32 (For the past few years, a standardization effort known) W
+300 -30750 M
+134.6 0 32 (by the acronym JPEG, for Joint Photographic Experts) W
+300 -31850 M
+134.7 0 32 (Group, has been working toward establishing the first) W
+300 -32950 M
+305.2 0 32 (international digital image compression standard for) W
+300 -34050 M
+978.0 0 32 (continuous\255tone \(multilevel\) still images, both) W
+300 -35150 M
+158.4 0 32 (grayscale and color.  The ) W
+158.4 0 32 (\026) W
+158.4 0 32 (joint) W
+158.4 0 32 (\027) W
+158.4 0 32 ( in JPEG refers to a) W
+300 -36250 M
+643.2 0 32 (collaboration between CCITT and ISO.  JPEG) W
+300 -37350 M
+231.3 0 32 (convenes officially as the ISO committee designated) W
+300 -38450 M
+588.2 0 32 (JTC1/SC2/WG10, but operates in close informal) W
+300 -39550 M
+86.4 0 32 (collaboration with CCITT SGVIII.  JPEG will be both) W
+300 -40650 M
+86.6 0 32 (an ISO Standard and a CCITT Recommendation.  The) W
+300 -41750 M
+(text of both will be identical.) h
+300 -42850 M
+300 -43950 M
+166.0 0 32 (Photovideotex, desktop publishing, graphic arts, color) W
+300 -45050 M
+180.3 0 32 (facsimile, newspaper wirephoto transmission, medical) W
+300 -46150 M
+610.6 0 32 (imaging, and many other continuous\255tone image) W
+300 -47250 M
+67.4 0 32 (applications require a compression standard in order to) W
+-31919 23173 T
+R
+
+S
+6519 -10545 T
+N
+0 G
+8366 -1350 M
+/Helvetica-Bold-ISOLatin1 $
+/Helvetica-Bold & P
+/Helvetica-Bold-ISOLatin1 F 1400 o f
+(The JPEG Still Picture Compression Standard) h
+300 -2550 M
+20016 -3650 M
+/Helvetica-ISOLatin1 $
+/Helvetica & P
+/Helvetica-ISOLatin1 F 1000 o f
+(Gregory K. Wallace) h
+19156 -4750 M
+(Multimedia Engineering) h
+17596 -5850 M
+(Digital Equipment Corporation) h
+18866 -6950 M
+(Maynard,  Massachusetts) h
+300 -7888 M
+300 -9373 M
+5659 -10420 M
+/Times-Italic-ISOLatin1 F 1000 o f
+(Submitted in December 1991 for publication in IEEE Transactions on Consumer 
Electronics) h
+300 -11358 M
+300 -12628 M
+-6519 10545 T
+R
+
+S
+30679 -75546 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(1) h
+R
+
+showpage
+$P e
+
+%%Page: 2 2
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6337 -7200 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+71.1 0 32 (develop significantly beyond their present state.  JPEG) W
+300 -2150 M
+345.0 0 32 (has undertaken the ambitious task of developing a) W
+300 -3250 M
+472.2 0 32 (general\255purpose compression standard to meet the) W
+300 -4350 M
+738.2 0 32 (needs of almost all continuous\255tone still\255image) W
+300 -5450 M
+(applications.) h
+300 -6550 M
+300 -7650 M
+141.9 0 32 (If this goal proves attainable, not only will individual) W
+300 -8750 M
+254.5 0 32 (applications flourish, but exchange of images across) W
+300 -9850 M
+182.3 0 32 (application boundaries will be facilitated.  This latter) W
+300 -10950 M
+305.5 0 32 (feature will become increasingly important as more) W
+300 -12050 M
+5.6 0 32 (image applications are implemented on general\255purpose) W
+300 -13150 M
+288.4 0 32 (computing systems, which are themselves becoming) W
+300 -14250 M
+377.8 0 32 (increasingly interoperable and internetworked.  For) W
+300 -15350 M
+240.7 0 32 (applications which require specialized VLSI to meet) W
+300 -16450 M
+1208.0 0 32 (their compression and decompression speed) W
+300 -17550 M
+832.8 0 32 (requirements, a common method will provide) W
+300 -18650 M
+519.4 0 32 (economies of scale not possible within a single) W
+300 -19750 M
+(application. ) h
+300 -20850 M
+300 -21950 M
+305.4 0 32 (This article gives an overview of JPEG's proposed) W
+300 -23050 M
+299.8 0 32 (image\255compression standard.  Readers without prior) W
+300 -24150 M
+400.6 0 32 (knowledge of JPEG or compression based on the) W
+300 -25250 M
+222.5 0 32 (Discrete Cosine Transform \(DCT\) are encouraged to) W
+300 -26350 M
+368.7 0 32 (study first the detailed description of the Baseline) W
+300 -27450 M
+333.2 0 32 (sequential codec, which is the basis for all of the) W
+300 -28550 M
+31.7 0 32 (DCT\255based decoders.  While this article provides many) W
+300 -29650 M
+34.9 0 32 (details, many more are necessarily omitted.  The reader) W
+300 -30750 M
+409.9 0 32 (should refer to the ISO draft standard [2] before) W
+300 -31850 M
+(attempting implementation.) h
+300 -32950 M
+300 -34050 M
+270.4 0 32 (Some of the earliest industry attention to the JPEG) W
+300 -35150 M
+170.6 0 32 (proposal has been focused on the Baseline sequential) W
+300 -36250 M
+95.6 0 32 (codec as a motion image compression method \255 of the) W
+300 -37350 M
+108.3 0 32 (``intraframe'' class, where each frame is encoded as a) W
+300 -38450 M
+208.1 0 32 (separate image.  This class of motion image coding,) W
+300 -39550 M
+261.0 0 32 (while providing less compression than ``interframe'') W
+300 -40650 M
+190.1 0 32 (methods like MPEG, has greater flexibility for video) W
+300 -41750 M
+147.0 0 32 (editing.  While this paper focuses only on JPEG as a) W
+300 -42850 M
+65.6 0 32 (still picture standard \(as ISO intended\), it is interesting) W
+300 -43950 M
+211.0 0 32 (to note that JPEG is likely to become a ``de facto'') W
+300 -45050 M
+(intraframe motion standard as well.) h
+300 -46150 M
+300 -47250 M
+300 -48500 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1200 o f
+195.7 0 32 (2  Background:  Requirements and Selec\255) W
+300 -49800 M
+(tion Process) h
+300 -51550 M
+/Times-Roman-ISOLatin1 F 1000 o f
+492.9 0 32 (JPEG's goal has been to develop a method for) W
+300 -52650 M
+249.6 0 32 (continuous\255tone image compression which meets the) W
+300 -53750 M
+(following requirements:) h
+300 -54850 M
+300 -55950 M
+(1\)) h
+2100 -55950 M
+217.7 0 32 (be at or near the state of the art with regard to) W
+2100 -57050 M
+841.5 0 32 (compression rate and accompanying image) W
+2100 -58150 M
+11.0 0 32 (fidelity, over a wide range of image quality ratings,) W
+2100 -59250 M
+59.6 0 32 (and especially in the range where visual fidelity to) W
+2100 -60350 M
+326.3 0 32 (the original is characterized as ) W
+326.3 0 32 (\026) W
+326.3 0 32 (very good) W
+326.3 0 32 (\027) W
+326.3 0 32 ( to) W
+2100 -61450 M
+951.0 0 32 (\026) W
+951.0 0 32 (excellent) W
+951.0 0 32 (\027) W
+951.0 0 32 (; also, the encoder should be) W
+2100 -62550 M
+214.0 0 32 (parameterizable, so that the application \(or user\)) W
+2100 -63650 M
+(can set the desired compression/quality tradeoff;) h
+-6337 7200 T
+R
+
+S
+31919 -7200 T
+N
+0 G
+2100 -1050 M
+2100 -2150 M
+300 -3250 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(2\)) h
+2100 -3250 M
+838.7 0 32 (be applicable to practically any kind of) W
+2100 -4350 M
+70.0 0 32 (continuous\255tone digital source image \(i.e. for most) W
+2100 -5450 M
+215.0 0 32 (practical purposes not be restricted to images of) W
+2100 -6550 M
+489.8 0 32 (certain dimensions, color spaces, pixel aspect) W
+2100 -7650 M
+0.4 0 32 (ratios, etc.\) and not be limited to classes of imagery) W
+2100 -8750 M
+639.5 0 32 (with restrictions on scene content, such as) W
+2100 -9850 M
+856.2 0 32 (complexity, range of colors, or statistical) W
+2100 -10950 M
+(properties;) h
+2100 -12050 M
+300 -13150 M
+(3\)) h
+2100 -13150 M
+128.6 0 32 (have tractable computational complexity, to make) W
+2100 -14250 M
+549.5 0 32 (feasible software implementations with viable) W
+2100 -15350 M
+348.0 0 32 (performance on a range of CPU's, as well as) W
+2100 -16450 M
+400.8 0 32 (hardware implementations with viable cost for) W
+2100 -17550 M
+(applications requiring high performance;) h
+2100 -18650 M
+300 -19750 M
+(4\)) h
+2100 -19750 M
+( have the following modes of operation:) h
+2100 -20850 M
+2100 -21950 M
+/Symbol F 1000 o f
+(\267) h
+3900 -21950 M
+/Times-Roman-ISOLatin1 F 1000 o f
+7.4 0 32 (Sequential encoding: each image component is) W
+3900 -23050 M
+35.0 0 32 (encoded in a single left\255to\255right, top\255to\255bottom) W
+3900 -24150 M
+(scan;) h
+3900 -25250 M
+2100 -26350 M
+/Symbol F 1000 o f
+(\267) h
+3900 -26350 M
+/Times-Roman-ISOLatin1 F 1000 o f
+47.8 0 32 (Progressive encoding: the image is encoded in) W
+3900 -27450 M
+573.8 0 32 (multiple scans for applications in which) W
+3900 -28550 M
+404.0 0 32 (transmission time is long, and the viewer) W
+3900 -29650 M
+8.0 0 32 (prefers to watch the image build up in multiple) W
+3900 -30750 M
+(coarse\255to\255clear passes;) h
+3900 -31850 M
+2100 -32950 M
+/Symbol F 1000 o f
+(\267) h
+3900 -32950 M
+/Times-Roman-ISOLatin1 F 1000 o f
+260.7 0 32 (Lossless encoding: the image is encoded to) W
+3900 -34050 M
+486.2 0 32 (guarantee exact recovery of every source) W
+3900 -35150 M
+76.7 0 32 (image sample value \(even though the result is) W
+3900 -36250 M
+607.2 0 32 (low compression compared to the lossy) W
+3900 -37350 M
+(modes\);) h
+3900 -38450 M
+2100 -39550 M
+/Symbol F 1000 o f
+(\267) h
+3900 -39550 M
+/Times-Roman-ISOLatin1 F 1000 o f
+11.2 0 32 (Hierarchical encoding: the image is encoded at) W
+3900 -40650 M
+279.5 0 32 (multiple resolutions so that lower\255resolution) W
+3900 -41750 M
+75.7 0 32 (versions may be accessed without first having) W
+3900 -42850 M
+(to decompress the image at its full resolution.) h
+300 -43950 M
+300 -45050 M
+341.1 0 32 (In June 1987, JPEG conducted a selection process) W
+300 -46150 M
+400.6 0 32 (based on a blind assessment of subjective picture) W
+300 -47250 M
+194.3 0 32 (quality, and narrowed 12 proposed methods to three. ) W
+300 -48350 M
+87.3 0 32 (Three informal working groups formed to refine them,) W
+300 -49450 M
+55.5 0 32 (and in January 1988, a second, more rigorous selection) W
+300 -50550 M
+135.1 0 32 (process [19] revealed that the ) W
+135.1 0 32 (\026) W
+135.1 0 32 (ADCT) W
+135.1 0 32 (\027) W
+135.1 0 32 ( proposal [11],) W
+300 -51650 M
+129.6 0 32 (based on the 8x8 DCT, had produced the best picture) W
+300 -52750 M
+(quality.) h
+300 -53850 M
+300 -54950 M
+24.4 0 32 (At the time of its selection, the DCT\255based method was) W
+300 -56050 M
+444.3 0 32 (only partially defined for some of the modes of) W
+300 -57150 M
+114.6 0 32 (operation.  From 1988 through 1990, JPEG undertook) W
+300 -58250 M
+161.5 0 32 (the sizable task of defining, documenting, simulating,) W
+300 -59350 M
+59.1 0 32 (testing, validating, and simply agreeing on the plethora) W
+300 -60450 M
+277.8 0 32 (of details necessary for genuine interoperability and) W
+300 -61550 M
+315.6 0 32 (universality.  Further history of the JPEG effort is) W
+300 -62650 M
+(contained in [6, 7, 9, 18].) h
+300 -63750 M
+-31919 7200 T
+R
+
+S
+30717 -74731 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(2) h
+R
+
+showpage
+$P e
+
+%%Page: 3 3
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6337 -7200 T
+N
+0 G
+300 -1200 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1200 o f
+(3  Architecture of the Proposed Standard) h
+300 -2950 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+281.7 0 32 (The proposed standard contains the four ) W
+281.7 0 32 (\026) W
+281.7 0 32 (modes of) W
+300 -4050 M
+146.7 0 32 (operation) W
+146.7 0 32 (\027) W
+146.7 0 32 ( identified previously.  For each mode, one) W
+300 -5150 M
+67.9 0 32 (or more distinct codecs are specified.  Codecs within a) W
+300 -6250 M
+62.6 0 32 (mode differ according to the precision of source image) W
+300 -7350 M
+76.3 0 32 (samples they can handle or the entropy coding method) W
+300 -8450 M
+103.4 0 32 (they use.  Although the word codec \(encoder/decoder\)) W
+300 -9550 M
+12.2 0 32 (is used frequently in this article, there is no requirement) W
+300 -10650 M
+43.3 0 32 (that implementations must include both an encoder and) W
+300 -11750 M
+246.4 0 32 (a decoder.  Many applications will have systems or) W
+300 -12850 M
+(devices which require only one or the other.) h
+300 -13950 M
+300 -15050 M
+132.0 0 32 (The four modes of operation and their various codecs) W
+300 -16150 M
+159.8 0 32 (have resulted from JPEG's goal of being generic and) W
+300 -17250 M
+15.7 0 32 (from the diversity of image formats across applications. ) W
+300 -18350 M
+535.4 0 32 (The multiple pieces can give the impression of) W
+300 -19450 M
+300.5 0 32 (undesirable complexity, but they should actually be) W
+300 -20550 M
+0.3 0 32 (regarded as a comprehensive ) W
+0.3 0 32 (\026) W
+0.3 0 32 (toolkit) W
+0.3 0 32 (\027) W
+0.3 0 32 ( which can span a) W
+300 -21650 M
+24.1 0 32 (wide range of continuous\255tone image applications.  It is) W
+300 -22750 M
+166.0 0 32 (unlikely that many implementations will utilize every) W
+300 -23850 M
+114.3 0 32 (tool \255\255 indeed, most of the early implementations now) W
+300 -24950 M
+187.8 0 32 (on the market \(even before final ISO approval\) have) W
+300 -26050 M
+(implemented only the Baseline sequential codec.) h
+300 -27150 M
+300 -28250 M
+111.1 0 32 (The Baseline sequential codec is inherently a rich and) W
+300 -29350 M
+593.8 0 32 (sophisticated compression method which will be) W
+300 -30450 M
+15.3 0 32 (sufficient for many applications.  Getting this minimum) W
+300 -31550 M
+1291.0 0 32 (JPEG capability implemented properly and) W
+300 -32650 M
+629.2 0 32 (interoperably will provide the industry with an) W
+300 -33750 M
+360.8 0 32 (important initial capability for exchange of images) W
+300 -34850 M
+(across vendors and applications.) h
+300 -35950 M
+300 -37050 M
+300 -38300 M
+/Times-Bold-ISOLatin1 F 1200 o f
+(4  Processing Steps for DCT\255Based Coding) h
+300 -40050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+138.7 0 32 (Figures 1 and 2 show the key processing steps which) W
+300 -41150 M
+232.8 0 32 (are the heart of the DCT\255based modes of operation. ) W
+300 -42250 M
+953.7 0 32 (These figures illustrate the special case of) W
+300 -43350 M
+55.6 0 32 (single\255component \(grayscale\) image compression.  The) W
+300 -44450 M
+731.7 0 32 (reader can grasp the essentials of DCT\255based) W
+300 -45550 M
+851.2 0 32 (compression by thinking of it as essentially) W
+300 -46650 M
+236.1 0 32 (compression of a stream of 8x8 blocks of grayscale) W
+300 -47750 M
+86.6 0 32 (image samples.  Color image compression can then be) W
+300 -48850 M
+372.0 0 32 (approximately regarded as compression of multiple) W
+300 -49950 M
+60.5 0 32 (grayscale images, which are either compressed entirely) W
+300 -51050 M
+475.8 0 32 (one at a time, or are compressed by alternately) W
+300 -52150 M
+(interleaving 8x8 sample blocks from each in turn.) h
+300 -53250 M
+300 -54350 M
+226.7 0 32 (For DCT sequential\255mode codecs, which include the) W
+300 -55450 M
+433.0 0 32 (Baseline sequential codec, the simplified diagrams) W
+300 -56550 M
+(indicate how single\255component compression works in a ) h
+300 -57650 M
+132.6 0 32 (fairly complete way.  Each 8x8 block is input, makes) W
+300 -58750 M
+44.9 0 32 (its way through each processing step, and yields output) W
+300 -59850 M
+222.0 0 32 (in compressed form into the data stream.  For DCT) W
+300 -60950 M
+125.2 0 32 (progressive\255mode codecs, an image buffer exists prior) W
+300 -62050 M
+219.3 0 32 (to the entropy coding step, so that an image can be) W
+300 -63150 M
+21.4 0 32 (stored and then parceled out in multiple scans with suc\255) W
+300 -64250 M
+39.4 0 32 (cessively improving quality.  For the hierarchical mode) W
+-6337 7200 T
+R
+
+S
+31919 -7200 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+315.8 0 32 (of operation, the steps shown are used as building) W
+300 -2150 M
+(blocks within a larger framework.) h
+300 -3250 M
+300 -4950 M
+/Times-Bold-ISOLatin1 F 1000 o f
+(4.1  8x8 FDCT and IDCT) h
+300 -6650 M
+/Times-Roman-ISOLatin1 F 1000 o f
+111.1 0 32 (At the input to the encoder, source image samples are) W
+300 -7750 M
+7.6 0 32 (grouped into 8x8 blocks, shifted from unsigned integers) W
+300 -8850 M
+219.3 0 32 (with range [0, 2) W
+n 0.800 o f
+0.0 448.0 m
+219.3 0 32 (P) W
+0 -448.0 m
+n 1.250 o f
+219.3 0 32 ( \255 1] to signed integers with range) W
+300 -9950 M
+65.8 0 32 ([\2552) W
+n 0.800 o f
+0.0 448.0 m
+65.8 0 32 (P\2551) W
+0 -448.0 m
+n 1.250 o f
+65.8 0 32 (, 2) W
+n 0.800 o f
+0.0 448.0 m
+65.8 0 32 (P\2551) W
+0 -448.0 m
+n 1.250 o f
+65.8 0 32 (\2551], and input to the Forward DCT \(FDCT\). ) W
+300 -11050 M
+364.5 0 32 (At the output from the decoder, the Inverse DCT) W
+300 -12150 M
+551.1 0 32 (\(IDCT\) outputs 8x8 sample blocks to form the) W
+300 -13250 M
+127.0 0 32 (reconstructed image.  The following equations are the) W
+300 -14350 M
+258.8 0 32 (idealized mathematical definitions of the 8x8 FDCT) W
+300 -15450 M
+(and 8x8 IDCT:) h
+300 -24986 M
+300 -39590 M
+300 -40690 M
+/Times-Roman-ISOLatin1 F 1000 o f
+125.0 0 32 (The DCT is related to the Discrete Fourier Transform) W
+300 -41790 M
+670.7 0 32 (\(DFT\).  Some simple intuition for DCT\255based) W
+300 -42890 M
+9.1 0 32 (compression can be obtained by viewing the FDCT as a) W
+300 -43990 M
+496.1 0 32 (harmonic analyzer and the IDCT as a harmonic) W
+300 -45090 M
+107.6 0 32 (synthesizer.  Each 8x8 block of source image samples) W
+300 -46190 M
+326.3 0 32 (is effectively a 64\255point discrete signal which is a) W
+300 -47290 M
+174.8 0 32 (function of the two spatial dimensions ) W
+/Times-Italic-ISOLatin1 $
+/Times-Italic & P
+/Times-Italic-ISOLatin1 F 1000 o f
+174.8 0 32 (x ) W
+/Times-Roman-ISOLatin1 F 1000 o f
+174.8 0 32 (and ) W
+/Times-Italic-ISOLatin1 F 1000 o f
+174.8 0 32 (y) W
+/Times-Roman-ISOLatin1 F 1000 o f
+174.8 0 32 (.  The) W
+300 -48390 M
+83.0 0 32 (FDCT takes such a signal as its input and decomposes) W
+300 -49490 M
+104.6 0 32 (it into 64 orthogonal basis signals.  Each contains one) W
+300 -50590 M
+583.0 0 32 (of the 64 unique two\255dimensional \(2D\) ) W
+583.0 0 32 (\026) W
+583.0 0 32 (spatial) W
+300 -51690 M
+683.2 0 32 (frequencies'' which comprise the input signal's) W
+300 -52790 M
+146.3 0 32 (\026) W
+146.3 0 32 (spectrum.) W
+146.3 0 32 (\027) W
+146.3 0 32 (  The ouput of the FDCT is the set of 64) W
+300 -53890 M
+227.6 0 32 (basis\255signal amplitudes or ) W
+227.6 0 32 (\026) W
+227.6 0 32 (DCT coefficients) W
+227.6 0 32 (\027) W
+227.6 0 32 ( whose) W
+300 -54990 M
+518.5 0 32 (values are uniquely determined by the particular) W
+300 -56090 M
+(64\255point input signal.) h
+300 -57190 M
+300 -58290 M
+28.0 0 32 (The DCT coefficient values can thus be regarded as the) W
+300 -59390 M
+43.7 0 32 (relative amount of the 2D spatial frequencies contained) W
+300 -60490 M
+86.2 0 32 (in the 64\255point input signal.  The coefficient with zero) W
+300 -61590 M
+495.7 0 32 (frequency in both dimensions is called the ) W
+495.7 0 32 (\026) W
+495.7 0 32 (DC) W
+300 -62690 M
+435.5 0 32 (coefficient) W
+435.5 0 32 (\027) W
+435.5 0 32 ( and the remaining 63 coefficients are) W
+300 -63790 M
+135.1 0 32 (called the ) W
+135.1 0 32 (\026) W
+135.1 0 32 (AC coefficients.''  Because sample values) W
+-31919 7200 T
+S
+N
+S
+32078 -31436 22722 8436 @ I N
+32078 -23000 T
+N
+S
+10569 -3390 M
+/Courier-ISOLatin1 $
+/Courier & P
+/Courier-ISOLatin1 F 2400 o f
+([) h
+R
+
+
+N
+S
+201 -5530 20216 5128 @ I N
+201 -402 T
+N
+N
+S
+0 -5128 20217 5128 @ I N
+0 0 T
+N
+S
+800 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(F) h
+R
+
+S
+1533 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+1933 -2734 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+2533 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+S
+3011 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+3544 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+4477 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(=) h
+R
+
+S
+5687 -2251 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(1) h
+R
+
+S
+N
+5687.00 -2466.00 M
+6187.00 -2466.00 L
+S
+49 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+5687 -3292 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(4) h
+R
+
+S
+6187 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+6487 -2734 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(C) h
+R
+
+S
+7288 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+7687 -2734 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+8287 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+8687 -2734 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(C) h
+R
+
+S
+9487 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+9887 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+10420 -2655 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+11719 -1159 M
+/Dutch801-Roman-DECmath_Extension F 1200 o f
+(X) h
+R
+
+S
+12336 -999 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(7) h
+R
+
+S
+11832 -4208 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(x) h
+R
+
+S
+12276 -4129 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(=0) h
+R
+
+S
+13452 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+13752 -1159 M
+/Dutch801-Roman-DECmath_Extension F 1200 o f
+(X) h
+R
+
+S
+14369 -999 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(7) h
+R
+
+S
+13865 -4208 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(y) h
+R
+
+S
+14309 -4129 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(=0) h
+R
+
+S
+15485 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+15785 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(f) h
+R
+
+S
+16119 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+16518 -2734 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(x) h
+R
+
+S
+17051 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+S
+17529 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(y) h
+R
+
+S
+18062 -2751 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+18817 -2752 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(*) h
+R
+
+R
+
+
+R
+
+
+N
+S
+4395 -8872 13213 3514 @ I N
+4395 -5358 T
+N
+N
+S
+0 -3514 13213 3514 @ I N
+0 0 T
+N
+S
+800 -2152 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(cos) h
+R
+
+S
+2400 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+2700 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(2) h
+R
+
+S
+3533 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(x) h
+R
+
+S
+3977 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(+1\)) h
+R
+
+S
+5374 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(u\271) h
+R
+
+S
+N
+2700.00 -1885.00 M
+6485.00 -1885.00 L
+S
+49 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+4092 -2716 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(16) h
+R
+
+S
+6485 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+6785 -2152 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(cos) h
+R
+
+S
+8384 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+8684 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(2) h
+R
+
+S
+9517 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(y) h
+R
+
+S
+9961 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(+1\)) h
+R
+
+S
+11358 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(v\271) h
+R
+
+S
+N
+8684.00 -1885.00 M
+12413.00 -1885.00 L
+S
+49 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+10049 -2716 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(16) h
+R
+
+S
+12215 -2349 M
+/Courier-ISOLatin1 F 2400 o f
+(]) h
+R
+
+R
+
+
+R
+
+
+S
+21404 -7275 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(1\)) h
+R
+
+R
+
+
+R
+S
+N
+S
+31426 -46040 24026 13504 @ I N
+31426 -32536 T
+N
+S
+6588 -3007 M
+/Courier-ISOLatin1 F 2400 o f
+([) h
+R
+
+
+N
+S
+1158 -4898 19824 4926 @ I N
+1158 28 T
+N
+N
+S
+0 -4926 19824 4926 @ I N
+0 0 T
+N
+S
+800 -2732 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(f) h
+R
+
+S
+1134 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+1533 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(x) h
+R
+
+S
+2066 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+S
+2544 -2732 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(y) h
+R
+
+S
+3077 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+4010 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(=) h
+R
+
+S
+5221 -2154 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(1) h
+R
+
+S
+N
+5221.00 -2465.00 M
+5721.00 -2465.00 L
+S
+49 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+5221 -3291 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(4) h
+R
+
+S
+6621 -1158 M
+/Dutch801-Roman-DECmath_Extension F 1200 o f
+(X) h
+R
+
+S
+7237 -997 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(7) h
+R
+
+S
+6705 -4207 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(u) h
+R
+
+S
+7205 -4128 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(=0) h
+R
+
+S
+8353 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+8653 -1158 M
+/Dutch801-Roman-DECmath_Extension F 1200 o f
+(X) h
+R
+
+S
+9270 -997 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(7) h
+R
+
+S
+8766 -4207 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(v) h
+R
+
+S
+9210 -4128 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(=0) h
+R
+
+S
+10386 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+10686 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(C) h
+R
+
+S
+11487 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+11886 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+12486 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+12886 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(C) h
+R
+
+S
+13686 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+14086 -2732 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+14619 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+15018 -2732 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(F) h
+R
+
+S
+15751 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+16151 -2733 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+16751 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+S
+17229 -2732 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+17762 -2750 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+18504 -2820 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(*) h
+R
+
+R
+
+
+R
+
+
+N
+S
+4344 -8388 13213 3514 @ I N
+4344 -4874 T
+N
+N
+S
+0 -3514 13213 3514 @ I N
+0 0 T
+N
+S
+800 -2152 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(cos) h
+R
+
+S
+2400 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+2700 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(2) h
+R
+
+S
+3533 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(x) h
+R
+
+S
+3977 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(+1\)) h
+R
+
+S
+5374 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(u\271) h
+R
+
+S
+N
+2700.00 -1885.00 M
+6485.00 -1885.00 L
+S
+49 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+4092 -2716 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(16) h
+R
+
+S
+6485 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+6785 -2152 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(cos) h
+R
+
+S
+8384 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+8684 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(2) h
+R
+
+S
+9517 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(y) h
+R
+
+S
+9961 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(+1\)) h
+R
+
+S
+11358 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(v\271) h
+R
+
+S
+N
+8684.00 -1885.00 M
+12413.00 -1885.00 L
+S
+49 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+10049 -2716 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(16) h
+R
+
+S
+12358 -2295 M
+/Courier-ISOLatin1 F 2400 o f
+(]) h
+R
+
+R
+
+
+R
+
+
+S
+22310 -7320 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(2\)) h
+R
+
+S
+1028 -10288 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(where:) h
+R
+
+
+S
+15506 -10288 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(for) h
+R
+
+S
+13014 -12923 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( otherwise.) h
+R
+
+N
+S
+4116 -11330 18079 2884 @ I N
+4116 -8446 T
+N
+N
+S
+0 -2884 16066 2884 @ I N
+0 0 T
+N
+S
+800 -1799 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(C) h
+R
+
+S
+1600 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+2000 -1799 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+2600 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\),) h
+R
+
+S
+3478 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+3778 -1799 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(C) h
+R
+
+S
+4578 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+4978 -1798 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+5510 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+6731 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(=) h
+R
+
+S
+8229 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(1) h
+R
+
+S
+8706 -1799 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(=) h
+R
+
+S
+N
+10289.00 -829.00 M
+10889.00 -829.00 L
+S
+59 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+10289 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(2) h
+R
+
+S
+9182 -834 M
+/Dutch801-Roman-DECmath_Symbol F 1200 o f
+(p) h
+R
+
+S
+7243 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(         ) h
+R
+
+S
+13118 -1703 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+13624 -1817 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+R
+
+
+R
+
+
+N
+S
+4383 -13932 8537 2624 @ I N
+4383 -11308 T
+N
+N
+S
+-4122 -2624 13043 2624 @ I N
+-4122 0 T
+N
+S
+4189 -1627 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(  ) h
+R
+
+S
+4789 -1609 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(C) h
+R
+
+S
+5589 -1627 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+5989 -1610 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+6589 -1627 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\),) h
+R
+
+S
+7466 -1627 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+7766 -1609 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(C) h
+R
+
+S
+8566 -1627 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+8966 -1609 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+9499 -1627 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+10432 -1627 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(=) h
+R
+
+S
+11643 -1627 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(1) h
+R
+
+R
+
+
+R
+
+
+S
+18113 -10213 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+18989 -10231 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(=) h
+R
+
+S
+20581 -10423 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(  ) h
+R
+
+S
+20703 -10328 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(;) h
+R
+
+S
+20734 -10327 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(  ) h
+R
+
+S
+19903 -10231 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(0) h
+R
+
+R
+
+
+R
+R
+
+S
+30583 -75259 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(3) h
+R
+
+showpage
+$P e
+
+%%Page: 4 4
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6325 -37291 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+277.4 0 32 (typically vary slowly from point to point across an) W
+300 -2150 M
+166.3 0 32 (image, the FDCT processing step lays the foundation) W
+300 -3250 M
+129.5 0 32 (for achieving data compression by concentrating most) W
+300 -4350 M
+191.6 0 32 (of the signal in the lower spatial frequencies.  For a) W
+300 -5450 M
+93.6 0 32 (typical 8x8 sample block from a typical source image,) W
+300 -6550 M
+125.4 0 32 (most of the spatial frequencies have zero or near\255zero) W
+300 -7650 M
+(amplitude and need not be encoded.) h
+300 -8750 M
+300 -9850 M
+79.9 0 32 (At the decoder the IDCT reverses this processing step. ) W
+300 -10950 M
+175.8 0 32 (It takes the 64 DCT coefficients \(which at that point) W
+300 -12050 M
+43.7 0 32 (have been quantized\) and reconstructs a 64\255point ouput) W
+300 -13150 M
+855.7 0 32 (image signal by summing the basis signals. ) W
+300 -14250 M
+254.3 0 32 (Mathematically, the DCT is one\255to\255one mapping for) W
+300 -15350 M
+107.3 0 32 (64\255point vectors between the image and the frequency) W
+300 -16450 M
+135.6 0 32 (domains.  If the FDCT and IDCT could be computed) W
+300 -17550 M
+56.0 0 32 (with perfect accuracy and if the DCT coefficients were) W
+300 -18650 M
+412.3 0 32 (not quantized as in the following description, the) W
+300 -19750 M
+59.0 0 32 (original 64\255point signal could be exactly recovered.  In) W
+300 -20850 M
+260.1 0 32 (principle, the DCT introduces no loss to the source) W
+300 -21950 M
+83.0 0 32 (image samples; it merely transforms them to a domain) W
+300 -23050 M
+(in which they can be more efficiently encoded. ) h
+300 -24150 M
+300 -25250 M
+675.7 0 32 (Some properties of practical FDCT and IDCT) W
+300 -26350 M
+462.7 0 32 (implementations raise the issue of what precisely) W
+300 -27450 M
+579.6 0 32 (should be required by the JPEG standard.  A) W
+300 -28550 M
+368.7 0 32 (fundamental property is that the FDCT and IDCT) W
+300 -29650 M
+1721.7 0 32 (equations contain transcendental functions. ) W
+300 -30750 M
+922.8 0 32 (Consequently, no physical implementation can) W
+300 -31850 M
+156.5 0 32 (compute them with perfect accuracy.  Because of the) W
+300 -32950 M
+231.0 0 32 (DCT's application importance and its relationship to) W
+300 -34050 M
+388.6 0 32 (the DFT, many different algorithms by which the) W
+-6325 37291 T
+R
+
+S
+31919 -37291 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+11.7 0 32 (FDCT and IDCT may be approximately computed have) W
+300 -2150 M
+382.1 0 32 (been devised [16].  Indeed, research in fast DCT) W
+300 -3250 M
+439.7 0 32 (algorithms is ongoing and no single algorithm is) W
+300 -4350 M
+204.3 0 32 (optimal for all implementations.  What is optimal in) W
+300 -5450 M
+166.6 0 32 (software for a general\255purpose CPU is unlikely to be) W
+300 -6550 M
+194.3 0 32 (optimal in firmware for a programmable DSP and is) W
+300 -7650 M
+(certain to be suboptimal for dedicated VLSI.) h
+300 -8750 M
+300 -9850 M
+94.1 0 32 (Even in light of the finite precision of the DCT inputs) W
+300 -10950 M
+228.3 0 32 (and outputs, independently designed implementations) W
+300 -12050 M
+3.0 0 32 (of the very same FDCT or IDCT algorithm which differ) W
+300 -13150 M
+62.4 0 32 (even minutely in the precision by which they represent) W
+300 -14250 M
+55.4 0 32 (cosine terms or intermediate results, or in the way they) W
+300 -15350 M
+522.8 0 32 (sum and round fractional values, will eventually) W
+300 -16450 M
+(produce slightly different outputs from identical inputs.) h
+300 -17550 M
+300 -18650 M
+101.8 0 32 (To preserve freedom for innovation and customization) W
+300 -19750 M
+235.5 0 32 (within implementations, JPEG has chosen to specify) W
+300 -20850 M
+215.0 0 32 (neither a unique FDCT algorithm or a unique IDCT) W
+300 -21950 M
+491.6 0 32 (algorithm in its proposed standard.  This makes) W
+300 -23050 M
+610.8 0 32 (compliance somewhat more difficult to confirm,) W
+300 -24150 M
+783.6 0 32 (because two compliant encoders \(or decoders\)) W
+300 -25250 M
+425.5 0 32 (generally will not produce identical outputs given) W
+300 -26350 M
+135.0 0 32 (identical inputs.  The JPEG standard will address this) W
+300 -27450 M
+330.2 0 32 (issue by specifying an accuracy test as part of its) W
+300 -28550 M
+463.0 0 32 (compliance tests for all DCT\255based encoders and) W
+300 -29650 M
+202.4 0 32 (decoders; this is to ensure against crudely inaccurate) W
+300 -30750 M
+351.7 0 32 (cosine basis functions which would degrade image) W
+300 -31850 M
+(quality.) h
+300 -32950 M
+-31919 37291 T
+R
+
+S
+6807 -5369 T
+N
+S
+0 -31926 48224 31926 @
+R
+0 G
+300 -1050 M
+300 -32454 M
+S
+0 -31926 48224 31926 @
+R
+-6807 5369 T
+S
+N
+S
+7334 -36777 47169 30008 @ I N
+7334 -6769 T
+N
+S
+4831 -1639 M
+/Times-Roman-ISOLatin1 F 952 o f
+(   ) h
+n 1.050 o f
+(8x8 blocks) h
+n 0.920 o f
+(                                           ) h
+n 1.087 o f
+(DCT\255Based Encoder) h
+R
+
+
+S
+12324 -4884 M
+/Times-Roman-ISOLatin1 F 953 o f
+(FDCT                 Quantizer) h
+R
+
+S
+26405 -4469 M
+/Times-Roman-ISOLatin1 F 952 o f
+( Entropy) h
+R
+
+S
+26238 -5384 M
+/Times-Roman-ISOLatin1 F 953 o f
+(  Encoder) h
+R
+
+S
+4449 -9800 M
+/Times-Roman-ISOLatin1 F 952 o f
+(     Source                                              Table                
          Table                      Compressed) h
+R
+
+S
+5855 -3376 M
+/Symbol F 956 o f
+(\267) h
+R
+
+S
+26371 -10785 M
+/Times-Roman-ISOLatin1 F 952 o f
+(Specifications               Image Data) h
+R
+
+S
+4285 -7317 4498 4499 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+5855.00 -2848.00 M
+5855.00 -5679.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7394.00 -3392.00 M
+4309.00 -3392.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7394.00 -3854.00 M
+4309.00 -3854.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7394.00 -4827.00 M
+4309.00 -4827.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6370.00 -2848.00 M
+6370.00 -5679.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+5338.00 -2848.00 M
+5338.00 -5679.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+4824.00 -2848.00 M
+4824.00 -5679.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+18156 -6304 5249 3497 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+25572 -6304 5248 3497 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+10909 -6304 5249 3497 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+16116.00 -4556.00 M
+18078.00 -4556.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+17594.00 -4810.00 M
+18137.00 -4556.00 L
+17594.00 -4303.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+23531.00 -4640.00 M
+25494.00 -4640.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+25010.00 -4894.00 M
+25553.00 -4640.00 L
+25010.00 -4387.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+9866 -7803 22162 5746 @
+S
+300 w
+0 c
+0 j
+0.875 G k
+R
+R
+
+S
+17928 -10786 M
+/Times-Roman-ISOLatin1 F 953 o f
+( Specifications) h
+R
+
+S
+33028 -5389 7722 1583 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+4730 -10756 M
+/Times-Roman-ISOLatin1 F 952 o f
+(Image Data) h
+R
+
+S
+N
+20737.00 -8888.00 M
+20737.00 -6505.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+20991.00 -6990.00 M
+20737.00 -6446.00 L
+20484.00 -6990.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+28486.00 -8960.00 M
+28486.00 -6422.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+28740.00 -6907.00 M
+28486.00 -6363.00 L
+28233.00 -6907.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+8784.00 -4472.00 M
+10749.00 -4472.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+10265.00 -4726.00 M
+10808.00 -4472.00 L
+10265.00 -4219.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+30777.00 -4640.00 M
+32977.00 -4640.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+32493.00 -4894.00 M
+33036.00 -4640.00 L
+32493.00 -4387.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7394.00 -4368.00 M
+4309.00 -4368.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6145.00 -3100.00 M
+7453.00 -1795.00 L
+S
+0.00 G E
+R
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+25538 -11119 6457 2163 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+17583 -11119 6457 2163 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+19655.00 -19554.00 M
+21722.00 -19554.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+21238.00 -19808.00 M
+21781.00 -19554.00 L
+21238.00 -19301.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+21912 -21471 5099 3358 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+14549 -21470 5098 3358 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+29357 -21470 5099 3357 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+12673 -23102 22880 5954 @
+S
+400 w
+0 c
+0 j
+0.875 G k
+R
+R
+
+S
+15119 -19684 M
+/Times-Roman-ISOLatin1 F 952 o f
+(  Entropy) h
+R
+
+S
+14875 -20720 M
+/Times-Roman-ISOLatin1 F 953 o f
+(   Decoder) h
+R
+
+S
+21926 -20023 M
+/Times-Roman-ISOLatin1 F 952 o f
+( Dequantizer                IDCT) h
+R
+
+S
+20991 -16674 M
+/Times-Roman-ISOLatin1 F 952 o f
+(DCT\255Based Decoder) h
+R
+
+S
+4785 -20333 7049 1519 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+27100.00 -19633.00 M
+29169.00 -19633.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+28685.00 -19887.00 M
+29228.00 -19633.00 L
+28685.00 -19380.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+17599.00 -23877.00 M
+17599.00 -21524.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+17852.00 -22009.00 M
+17598.00 -21465.00 L
+17345.00 -22009.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+
+S
+N
+12008.00 -19628.00 M
+14553.00 -19628.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+14069.00 -19881.00 M
+14612.00 -19627.00 L
+14068.00 -19374.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+14441 -24997 M
+/Times-Roman-ISOLatin1 F 952 o f
+(    Table                             Table) h
+R
+
+S
+13811 -25878 M
+/Times-Roman-ISOLatin1 F 952 o f
+( Specifications               Specifications) h
+R
+
+S
+6162 -24918 M
+/Times-Roman-ISOLatin1 F 953 o f
+(Compressed) h
+R
+
+S
+6322 -25958 M
+/Times-Roman-ISOLatin1 F 953 o f
+(Image Data) h
+R
+
+S
+35576 -25075 M
+/Times-Roman-ISOLatin1 F 952 o f
+(     Reconstructed) h
+R
+
+S
+36284 -25957 M
+/Times-Roman-ISOLatin1 F 952 o f
+(   Image Data) h
+R
+
+S
+36972 -22062 4448 4448 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+38525.00 -17644.00 M
+38525.00 -20445.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+40045.00 -18105.00 M
+36996.00 -18105.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+40045.00 -18615.00 M
+36996.00 -18615.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+40045.00 -19554.00 M
+36996.00 -19554.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+39033.00 -17644.00 M
+39033.00 -20445.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+38015.00 -17644.00 M
+38015.00 -20445.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+37506.00 -17644.00 M
+37506.00 -20445.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+40045.00 -19021.00 M
+36996.00 -19021.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+25797.00 -23877.00 M
+25797.00 -21524.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+26050.00 -22009.00 M
+25796.00 -21465.00 L
+25543.00 -22009.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+34472.00 -19706.00 M
+36858.00 -19706.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+36374.00 -19959.00 M
+36917.00 -19705.00 L
+36373.00 -19452.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+13486.00 -19678.00 M
+13486.00 -22359.00 L
+24363.00 -22359.00 L
+24363.00 -23817.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+24110.00 -23333.00 M
+24363.00 -23876.00 L
+24617.00 -23333.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+16007.00 -22358.00 M
+16007.00 -23817.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+15754.00 -23333.00 M
+16007.00 -23876.00 L
+16261.00 -23333.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+22435 -26281 6457 2323 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+13621 -26281 6455 2323 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+13684 -13555 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 1.  DCT\255Based Encoder Processing Steps) h
+R
+
+S
+15889 -28638 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 2.  DCT\255Based Decoder Processing Steps) h
+R
+
+R
+
+
+R
+R
+
+S
+30679 -75354 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(4) h
+R
+
+showpage
+$P e
+
+%%Page: 5 5
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6312 -7174 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+325.3 0 32 (For each DCT\255based mode of operation, the JPEG) W
+300 -2150 M
+12.0 0 32 (proposal specifies separate codecs for images with 8\255bit) W
+300 -3250 M
+17.4 0 32 (and 12\255bit \(per component\) source image samples.  The) W
+300 -4350 M
+71.6 0 32 (12\255bit codecs, needed to accommodate certain types of) W
+300 -5450 M
+1166.8 0 32 (medical and other images, require greater) W
+300 -6550 M
+83.3 0 32 (computational resources to achieve the required FDCT) W
+300 -7650 M
+595.3 0 32 (or IDCT accuracy.  Images with other sample) W
+300 -8750 M
+162.7 0 32 (precisions can usually be accommodated by either an) W
+300 -9850 M
+58.0 0 32 (8\255bit or 12\255bit codec, but this must be done outside the) W
+300 -10950 M
+534.4 0 32 (JPEG standard.  For example, it would be the) W
+300 -12050 M
+101.6 0 32 (responsibility of an application to decide how to fit or) W
+300 -13150 M
+402.5 0 32 (pad a 6\255bit sample into the 8\255bit encoder's input) W
+300 -14250 M
+46.3 0 32 (interface, how to unpack it at the decoder's output, and) W
+300 -15350 M
+(how to encode any necessary related information.) h
+300 -16450 M
+300 -17550 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1000 o f
+(4.2  Quantization) h
+300 -19250 M
+/Times-Roman-ISOLatin1 F 1000 o f
+296.1 0 32 (After output from the FDCT, each of the 64 DCT) W
+300 -20350 M
+73.7 0 32 (coefficients is uniformly quantized in conjunction with) W
+300 -21450 M
+495.2 0 32 (a 64\255element Quantization Table, which must be) W
+300 -22550 M
+66.6 0 32 (specified by the application \(or user\) as an input to the) W
+300 -23650 M
+19.7 0 32 (encoder.  Each element can be any integer value from 1) W
+300 -24750 M
+13.9 0 32 (to 255, which specifies the step size of the quantizer for) W
+300 -25850 M
+277.7 0 32 (its corresponding DCT coefficient.  The purpose of) W
+300 -26950 M
+453.5 0 32 (quantization is to achieve further compression by) W
+300 -28050 M
+18.7 0 32 (representing DCT coefficients with no greater precision) W
+300 -29150 M
+93.8 0 32 (than is necessary to achieve the desired image quality. ) W
+300 -30250 M
+110.9 0 32 (Stated another way, the goal of this processing step is) W
+300 -31350 M
+39.1 0 32 (to discard information which is not visually significant.) W
+300 -32450 M
+125.0 0 32 (Quantization is a many\255to\255one mapping, and therefore) W
+300 -33550 M
+215.8 0 32 (is fundamentally lossy.  It is the principal source of) W
+300 -34650 M
+(lossiness in DCT\255based encoders.) h
+300 -35750 M
+300 -36850 M
+448.1 0 32 (Quantization is defined as division of each DCT) W
+300 -37950 M
+310.2 0 32 (coefficient by its corresponding quantizer step size,) W
+300 -39050 M
+(followed by rounding to the nearest integer:) h
+300 -40150 M
+-6312 7174 T
+S
+N
+S
+6806 -52373 22051 4699 @ I N
+6806 -47674 T
+N
+N
+S
+1946 -4021 18495 3678 @ I N
+1946 -343 T
+N
+N
+S
+0 -3199 18495 3199 @ I N
+0 0 T
+N
+S
+800 -2152 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(F) h
+R
+
+S
+1533 -1492 M
+/Dutch801-Italic-DECmath_Italic F 800 o f
+(Q) h
+R
+
+S
+2111 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+2510 -2152 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+3110 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+S
+3588 -2151 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+4121 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+4521 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+5354 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(=) h
+R
+
+S
+6565 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+6865 -2152 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(Integer) h
+R
+
+S
+10331 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+10631 -2152 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(Round) h
+R
+
+S
+13764 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+14064 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+14519 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+( ) h
+R
+
+S
+14769 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(F) h
+R
+
+S
+15380 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\() h
+R
+
+S
+15713 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(u) h
+R
+
+S
+16213 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(,) h
+R
+
+S
+16463 -1571 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(v) h
+R
+
+S
+16907 -1492 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\)) h
+R
+
+S
+14463 -2789 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(Q) h
+R
+
+S
+15185 -2710 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\() h
+R
+
+S
+15518 -2789 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(u) h
+R
+
+S
+16018 -2710 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(,) h
+R
+
+S
+16268 -2789 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(v) h
+R
+
+S
+16712 -2710 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\)) h
+R
+
+S
+N
+14463.00 -1885.00 M
+17295.00 -1885.00 L
+S
+49 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+17045 -2710 M
+/Times-Roman-ISOLatin1 F 1000 o f
+( ) h
+R
+
+S
+17295 -2170 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+R
+
+
+R
+
+
+
+S
+20876 -2965 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(3\)) h
+R
+
+R
+
+
+R
+R
+
+S
+31919 -7170 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+152.5 0 32 (This output value is normalized by the quantizer step) W
+300 -2150 M
+117.9 0 32 (size.  Dequantization is the inverse function, which in) W
+300 -3250 M
+471.7 0 32 (this case means simply that the normalization is) W
+300 -4350 M
+51.8 0 32 (removed by multiplying by the step size, which returns) W
+300 -5450 M
+9.2 0 32 (the result to a representation appropriate for input to the) W
+300 -6550 M
+(IDCT:) h
+300 -11965 M
+/Times-Roman-ISOLatin1 F 1000 o f
+205.4 0 32 (When the aim is to compress the image as much as) W
+300 -13065 M
+71.1 0 32 (possible without visible artifacts, each step size ideally) W
+300 -14165 M
+173.5 0 32 (should be chosen as the perceptual threshold or ) W
+173.5 0 32 (\026) W
+173.5 0 32 (just) W
+300 -15265 M
+91.3 0 32 (noticeable difference) W
+91.3 0 32 (\027) W
+91.3 0 32 ( for the visual contribution of its) W
+300 -16365 M
+97.0 0 32 (corresponding cosine basis function.  These thresholds) W
+300 -17465 M
+151.0 0 32 (are also functions of the source image characteristics,) W
+300 -18565 M
+458.2 0 32 (display characteristics and viewing distance.  For) W
+300 -19665 M
+43.7 0 32 (applications in which these variables can be reasonably) W
+300 -20765 M
+755.4 0 32 (well defined, psychovisual experiments can be) W
+300 -21865 M
+428.4 0 32 (performed to determine the best thresholds.  The) W
+300 -22965 M
+410.4 0 32 (experiment described in [12] has led to a set of) W
+300 -24065 M
+388.7 0 32 (Quantization Tables for CCIR\255601 [4] images and) W
+300 -25165 M
+309.4 0 32 (displays.  These have been used experimentally by) W
+300 -26265 M
+5.5 0 32 (JPEG members and will appear in the ISO standard as a) W
+300 -27365 M
+(matter of information, but not as a requirement.) h
+300 -28465 M
+300 -29565 M
+/Times-Bold-ISOLatin1 F 1000 o f
+(4.3  DC Coding and Zig\255Zag Sequence) h
+300 -31265 M
+/Times-Roman-ISOLatin1 F 1000 o f
+560.2 0 32 (After quantization, the DC coefficient is treated) W
+300 -32365 M
+371.5 0 32 (separately from the 63 AC coefficients.  The DC) W
+300 -33465 M
+83.6 0 32 (coefficient is a measure of the average value of the 64) W
+300 -34565 M
+483.9 0 32 (image samples.  Because there is usually strong) W
+300 -35665 M
+12.1 0 32 (correlation between the DC coefficients of adjacent 8x8) W
+300 -36765 M
+93.8 0 32 (blocks, the quantized DC coefficient is encoded as the) W
+300 -37865 M
+138.9 0 32 (difference from the DC term of the previous block in) W
+300 -38965 M
+24.3 0 32 (the encoding order \(defined in the following\), as shown) W
+300 -40065 M
+157.1 0 32 (in Figure 3.  This special treatment is worthwhile, as) W
+300 -41165 M
+9.3 0 32 (DC coefficients frequently contain a significant fraction) W
+300 -42265 M
+(of the total image energy.) h
+300 -43365 M
+-31919 7170 T
+S
+N
+S
+32270 -18385 22338 4315 @ I N
+32270 -14070 T
+N
+N
+S
+3092 -3422 16296 3021 @ I N
+3092 -401 T
+N
+N
+S
+0 -3021 16296 3021 @ I N
+0 0 T
+N
+S
+800 -1999 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(F) h
+R
+
+S
+1533 -1339 M
+/Dutch801-Italic-DECmath_Italic F 800 o f
+(Q) h
+R
+
+S
+2236 -1250 M
+/Dutch801-Roman-DECmath_Symbol F 695 o f
+(0) h
+R
+
+S
+2333 -2017 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+2733 -1999 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+3333 -2016 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+S
+3811 -1998 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+4344 -2016 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+4743 -2017 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+5577 -2017 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(=) h
+R
+
+S
+6787 -1999 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(F) h
+R
+
+S
+7521 -1339 M
+/Dutch801-Italic-DECmath_Italic F 800 o f
+(Q) h
+R
+
+S
+8098 -2016 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+8498 -1999 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+9098 -2016 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+S
+9576 -1998 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+10108 -2016 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+12219 -1999 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(Q) h
+R
+
+S
+13086 -2016 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\() h
+R
+
+S
+13485 -1999 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(u) h
+R
+
+S
+14085 -2016 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+S
+14563 -1998 M
+/Dutch801-Italic-DECmath_Italic F 1200 o f
+(v) h
+R
+
+S
+15096 -2016 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(\)) h
+R
+
+S
+11136 -2333 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(*) h
+R
+
+R
+
+
+R
+
+
+
+S
+20916 -2456 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(4\)) h
+R
+
+R
+
+
+R
+R
+
+S
+6328 -51770 T
+N
+S
+0 -19270 48703 19270 @
+R
+0 G
+300 -1050 M
+300 -18936 M
+S
+0 -19270 48703 19270 @
+R
+-6328 51770 T
+S
+N
+S
+6759 -69660 47840 16490 @ I N
+6759 -53170 T
+N
+S
+N
+24946.00 -873.00 M
+26265.00 -2033.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+25725.00 -1896.00 M
+26301.00 -2065.00 L
+26060.00 -1516.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+
+S
+N
+38584.00 -11977.00 M
+37539.00 -11120.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+38083.00 -11238.00 M
+37502.00 -11089.00 L
+37761.00 -11630.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+27031.00 -874.00 M
+28353.00 -2033.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+27813.00 -1897.00 M
+28389.00 -2065.00 L
+28147.00 -1516.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+18189 -6843 M
+/Times-Roman-ISOLatin1 F 974 o f
+(. . .) h
+R
+
+S
+9345 -10125 M
+/Times-Roman-ISOLatin1 F 973 o f
+(DIFF) h
+0.0 -436.0 m
+( ) h
+0 436.0 m
+(= DC) h
+n 0.801 o f
+0.0 -349.0 m
+(i) h
+0 349.0 m
+n 1.249 o f
+0.0 -436.0 m
+( ) h
+0 436.0 m
+(\255 DC) h
+n 0.801 o f
+0.0 -349.0 m
+(i\2551) h
+0 349.0 m
+R
+
+S
+10936 -3013 M
+/Times-Roman-ISOLatin1 F 973 o f
+(  DC) h
+n 0.801 o f
+0.0 -349.0 m
+(i\2551) h
+0 349.0 m
+n 1.249 o f
+(       DC) h
+n 0.801 o f
+0.0 -349.0 m
+(i) h
+0 349.0 m
+R
+
+S
+N
+11470.00 -3233.00 M
+10035.00 -4378.00 L
+S
+0.00 G E
+R
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+10264.00 -3871.00 M
+9997.00 -4408.00 L
+10580.00 -4267.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+16221.00 -3158.00 M
+14612.00 -4168.00 L
+S
+0.00 G E
+R
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+14897.00 -3690.00 M
+14571.00 -4193.00 L
+15166.00 -4119.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+26789 -2756 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+28180 -2673 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+29672 -2673 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+31162 -2673 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+32652 -2673 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+34241 -2673 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+35533 -2673 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+37024 -2673 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+26789 -3895 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+28281 -3895 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+29672 -3895 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+31162 -3895 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+32652 -3895 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+34241 -3895 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+35533 -3895 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+37024 -3895 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+26789 -5036 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+28281 -5036 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+29672 -5036 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+31162 -5036 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+32652 -5036 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+34241 -5036 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+35533 -5036 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+37024 -5036 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+26789 -6178 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+28281 -6178 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+29672 -6178 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+31162 -6178 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+32652 -6178 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+34241 -6178 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+35533 -6178 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+37024 -6178 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+26789 -7483 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+28281 -7483 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+29672 -7483 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+31162 -7483 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+32652 -7483 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+34241 -7483 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+35533 -7483 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+37024 -7483 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+26789 -8703 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+28281 -8703 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+29672 -8703 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+31162 -8703 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+32652 -8703 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+34241 -8703 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+35632 -8624 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+37024 -8703 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+26789 -9845 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+28281 -9845 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+29672 -9845 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+31162 -9845 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+32652 -9845 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+34241 -9845 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+35533 -9845 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+37024 -9845 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+26789 -11069 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+28281 -11069 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+29672 -11069 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+31162 -11069 M
+/Symbol F 973 o f
+(\267) h
+R
+
+S
+32652 -11069 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+34241 -11069 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+35533 -11069 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+37024 -11069 M
+/Symbol F 975 o f
+(\267) h
+R
+
+S
+9641 -7946 3957 3243 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+9668 -5108 465 380 @
+S
+0.00 G E
+R
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+8783 -14166 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Differential DC encoding) h
+(                                       ) h
+(Zig-zag sequence) h
+R
+
+S
+9891 -6682 M
+/Times-Roman-ISOLatin1 F 973 o f
+(block) h
+n 0.801 o f
+0.0 -349.0 m
+(i\2551) h
+0 349.0 m
+R
+
+S
+13963 -6683 M
+/Times-Roman-ISOLatin1 F 973 o f
+(block) h
+n 0.801 o f
+0.0 -349.0 m
+(i) h
+0 349.0 m
+R
+
+S
+7064 -6843 M
+/Times-Roman-ISOLatin1 F 974 o f
+(. . .) h
+R
+
+S
+N
+28400.00 -2444.00 M
+27055.00 -3545.00 L
+27055.00 -4726.00 L
+29918.00 -2378.00 L
+31279.00 -2378.00 L
+27043.00 -5851.00 L
+27043.00 -7171.00 L
+32894.00 -2371.00 L
+34260.00 -2371.00 L
+27010.00 -8316.00 L
+27010.00 -9535.00 L
+35709.00 -2398.00 L
+37151.00 -2398.00 L
+26927.00 -10781.00 L
+28401.00 -10781.00 L
+37212.00 -3555.00 L
+37212.00 -4808.00 L
+29924.00 -10783.00 L
+31282.00 -10783.00 L
+37271.00 -5871.00 L
+37271.00 -7171.00 L
+32878.00 -10769.00 L
+34260.00 -10769.00 L
+37202.00 -8356.00 L
+37202.00 -9535.00 L
+35679.00 -10781.00 L
+37242.00 -10781.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+34565.00 -9916.00 M
+35359.00 -9916.00 L
+35359.00 -10488.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+28584.00 -2829.00 M
+29377.00 -2829.00 L
+29377.00 -3400.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+36352.00 -9592.00 M
+36352.00 -10161.00 L
+37047.00 -10161.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+27590.00 -2584.00 M
+27590.00 -3154.00 L
+28286.00 -3154.00 L
+S
+40 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+24000 -783 M
+/Times-Roman-ISOLatin1 F 973 o f
+(DC   AC) h
+n 0.801 o f
+0.0 -349.0 m
+(01) h
+0 349.0 m
+R
+
+S
+38456 -12854 M
+/Times-Roman-ISOLatin1 F 974 o f
+(AC) h
+n 0.800 o f
+0.0 -349.0 m
+(77) h
+0 349.0 m
+R
+
+S
+N
+26839.00 -2400.00 M
+28111.00 -2400.00 L
+S
+0.00 G E
+R
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+27656.00 -2654.00 M
+28200.00 -2400.00 L
+27656.00 -2147.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+35577 -834 M
+/Times-Roman-ISOLatin1 F 974 o f
+(        AC) h
+n 0.800 o f
+0.0 -349.0 m
+(07) h
+0 349.0 m
+R
+
+S
+N
+38222.00 -1303.00 M
+37504.00 -2055.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+37635.00 -1551.00 M
+37442.00 -2119.00 L
+38001.00 -1901.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+24060 -12907 M
+/Times-Roman-ISOLatin1 F 974 o f
+(AC) h
+n 0.800 o f
+0.0 -349.0 m
+(70) h
+0 349.0 m
+R
+
+S
+N
+25766.00 -12186.00 M
+26645.00 -11189.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+26534.00 -11698.00 M
+26704.00 -11123.00 L
+26154.00 -11363.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+13603 -7946 3956 3243 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+13630 -5108 463 380 @
+S
+0.00 G E
+R
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+11935 -16293 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 3.  Preparation of Quantized Coefficients for Entropy Coding) h
+R
+
+R
+
+
+R
+R
+
+S
+30583 -75546 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(5) h
+R
+
+showpage
+$P e
+
+%%Page: 6 6
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6320 -7197 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+246.1 0 32 (Finally, all of the quantized coefficients are ordered) W
+300 -2150 M
+194.4 0 32 (into the ) W
+194.4 0 32 (\026) W
+194.4 0 32 (zig\255zag) W
+194.4 0 32 (\027) W
+194.4 0 32 ( sequence, also shown in Figure 3. ) W
+300 -3250 M
+337.0 0 32 (This ordering helps to facilitate entropy coding by) W
+300 -4350 M
+339.4 0 32 (placing low\255frequency coefficients \(which are more) W
+300 -5450 M
+994.6 0 32 (likely to be nonzero\) before high\255frequency) W
+300 -6550 M
+(coefficients.) h
+300 -7650 M
+300 -8750 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1000 o f
+(4.4  Entropy Coding) h
+300 -10450 M
+/Times-Roman-ISOLatin1 F 1000 o f
+537.0 0 32 (The final DCT\255based encoder processing step is) W
+300 -11550 M
+680.2 0 32 (entropy coding.  This step achieves additional) W
+300 -12650 M
+45.8 0 32 (compression losslessly by encoding the quantized DCT) W
+300 -13750 M
+194.3 0 32 (coefficients more compactly based on their statistical) W
+300 -14850 M
+449.0 0 32 (characteristics.  The JPEG proposal specifies two) W
+300 -15950 M
+321.3 0 32 (entropy coding methods \255 Huffman coding [8] and) W
+300 -17050 M
+87.3 0 32 (arithmetic coding [15].  The Baseline sequential codec) W
+300 -18150 M
+206.0 0 32 (uses Huffman coding, but codecs with both methods) W
+300 -19250 M
+(are specified for all modes of operation.) h
+300 -20350 M
+300 -21450 M
+311.6 0 32 (It is useful to consider entropy coding as a 2\255step) W
+300 -22550 M
+12.6 0 32 (process.  The first step converts the zig\255zag sequence of) W
+300 -23650 M
+65.0 0 32 (quantized coefficients into an intermediate sequence of) W
+300 -24750 M
+166.3 0 32 (symbols.  The second step converts the symbols to a) W
+300 -25850 M
+360.9 0 32 (data stream in which the symbols no longer have) W
+300 -26950 M
+467.5 0 32 (externally identifiable boundaries.  The form and) W
+300 -28050 M
+90.9 0 32 (definition of the intermediate symbols is dependent on) W
+300 -29150 M
+34.6 0 32 (both the DCT\255based mode of operation and the entropy) W
+300 -30250 M
+(coding method.) h
+300 -31350 M
+300 -32450 M
+340.3 0 32 (Huffman coding requires that one or more sets of) W
+300 -33550 M
+198.4 0 32 (Huffman code tables be specified by the application. ) W
+300 -34650 M
+46.4 0 32 (The same tables used to compress an image are needed) W
+300 -35750 M
+156.3 0 32 (to decompress it.  Huffman tables may be predefined) W
+300 -36850 M
+24.1 0 32 (and used within an application as defaults, or computed) W
+300 -37950 M
+821.1 0 32 (specifically for a given image in an initial) W
+300 -39050 M
+272.7 0 32 (statistics\255gathering pass prior to compression.  Such) W
+300 -40150 M
+118.0 0 32 (choices are the business of the applications which use) W
+300 -41250 M
+601.5 0 32 (JPEG; the JPEG proposal specifies no required) W
+300 -42350 M
+333.3 0 32 (Huffman tables.  Huffman coding for the Baseline) W
+300 -43450 M
+(sequential encoder is described in detail in section 7.) h
+300 -44550 M
+300 -45650 M
+254.3 0 32 (By contrast, the particular arithmetic coding method) W
+300 -46750 M
+40.0 0 32 (specified in the JPEG proposal [2] requires no tables to) W
+300 -47850 M
+169.3 0 32 (be externally input, because it is able to adapt to the) W
+300 -48950 M
+182.0 0 32 (image statistics as it encodes the image.  \(If desired,) W
+300 -50050 M
+83.0 0 32 (statistical conditioning tables can be used as inputs for) W
+300 -51150 M
+368.7 0 32 (slightly better efficiency, but this is not required.\) ) W
+300 -52250 M
+827.6 0 32 (Arithmetic coding has produced 5\25510% better) W
+300 -53350 M
+289.6 0 32 (compression than Huffman for many of the images) W
+300 -54450 M
+7.0 0 32 (which JPEG members have tested.  However, some feel) W
+300 -55550 M
+222.1 0 32 (it is more complex than Huffman coding for certain) W
+300 -56650 M
+749.5 0 32 (implementations, for example, the highest\255speed) W
+300 -57750 M
+687.0 0 32 (hardware implementations.  \(Throughout JPEG's) W
+300 -58850 M
+72.6 0 32 (history, ) W
+72.6 0 32 (\026) W
+72.6 0 32 (complexity) W
+72.6 0 32 (\027) W
+72.6 0 32 ( has proved to be most elusive as) W
+300 -59950 M
+(a practical metric for comparing compression methods.\)) h
+300 -61050 M
+300 -62150 M
+83.4 0 32 (If the only difference between two JPEG codecs is the) W
+300 -63250 M
+39.4 0 32 (entropy coding method, transcoding between the two is) W
+-6320 7197 T
+R
+
+S
+31919 -7197 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+106.6 0 32 (possible by simply entropy decoding with one method) W
+300 -2150 M
+(and entropy recoding with the other.) h
+300 -3250 M
+300 -4350 M
+/Times-Bold-ISOLatin1 F 1000 o f
+(4.5  Compression and Picture Quality) h
+300 -6050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+118.9 0 32 (For color images with moderately complex scenes, all) W
+300 -7150 M
+194.3 0 32 (DCT\255based modes of operation typically produce the) W
+300 -8250 M
+289.4 0 32 (following levels of picture quality for the indicated) W
+300 -9350 M
+441.0 0 32 (ranges of compression.  These levels are only a) W
+300 -10450 M
+740.5 0 32 (guideline \255 quality and compression can vary) W
+300 -11550 M
+139.0 0 32 (significantly according to source image characteristics) W
+300 -12650 M
+156.3 0 32 (and scene content.  \(The units ) W
+156.3 0 32 (\026) W
+156.3 0 32 (bits/pixel) W
+156.3 0 32 (\027) W
+156.3 0 32 ( here mean) W
+300 -13750 M
+262.1 0 32 (the total number of bits in the compressed image \255) W
+300 -14850 M
+19.6 0 32 (including the chrominance components \255 divided by the) W
+300 -15950 M
+(number of samples in the luminance component.\)) h
+300 -17050 M
+300 -18150 M
+/Symbol F 1000 o f
+(\267) h
+2100 -18150 M
+/Times-Roman-ISOLatin1 F 1000 o f
+505.8 0 32 (0.25\2550.5 bits/pixel: moderate to good quality,) W
+2100 -19250 M
+(sufficient for some applications;) h
+2100 -20350 M
+300 -21450 M
+/Symbol F 1000 o f
+(\267) h
+2100 -21450 M
+/Times-Roman-ISOLatin1 F 1000 o f
+370.5 0 32 (0.5\2550.75 bits/pixel: good to very good quality,) W
+2100 -22550 M
+(sufficient for many applications;) h
+2100 -23650 M
+300 -24750 M
+/Symbol F 1000 o f
+(\267) h
+2100 -24750 M
+/Times-Roman-ISOLatin1 F 1000 o f
+89.4 0 32 (0.75\2551/5 bits/pixel: excellent quality, sufficient for) W
+2100 -25850 M
+(most applications;) h
+2100 -26950 M
+300 -28050 M
+/Symbol F 1000 o f
+(\267) h
+2100 -28050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+284.8 0 32 (1.5\2552.0 bits/pixel: usually indistinguishable from) W
+2100 -29150 M
+333.8 0 32 (the original, sufficient for the most demanding) W
+2100 -30250 M
+(applications.) h
+300 -31350 M
+300 -32450 M
+300 -33700 M
+/Times-Bold-ISOLatin1 F 1200 o f
+162.7 0 32 (5  Processing Steps for Predictive Lossless) W
+300 -35000 M
+(Coding) h
+300 -36750 M
+/Times-Roman-ISOLatin1 F 1000 o f
+239.4 0 32 (After its selection of a DCT\255based method in 1988,) W
+300 -37850 M
+99.0 0 32 (JPEG discovered that a DCT\255based lossless mode was) W
+300 -38950 M
+69.5 0 32 (difficult to define as a practical standard against which) W
+300 -40050 M
+761.2 0 32 (encoders and decoders could be independently) W
+300 -41150 M
+366.2 0 32 (implemented, without placing severe constraints on) W
+300 -42250 M
+(both encoder and decoder implementations.) h
+300 -43350 M
+300 -44450 M
+160.2 0 32 (JPEG, to meet its requirement for a lossless mode of) W
+300 -45550 M
+448.8 0 32 (operation, has chosen a simple predictive method) W
+300 -46650 M
+225.9 0 32 (which is wholly independent of the DCT processing) W
+300 -47750 M
+37.9 0 32 (described previously.  Selection of this method was not) W
+300 -48850 M
+41.5 0 32 (the result of rigorous competitive evaluation as was the) W
+300 -49950 M
+184.8 0 32 (DCT\255based method.  Nevertheless, the JPEG lossless) W
+300 -51050 M
+626.4 0 32 (method produces results which, in light of its) W
+300 -52150 M
+104.7 0 32 (simplicity, are surprisingly close to the state of the art) W
+300 -53250 M
+144.0 0 32 (for lossless continuous\255tone compression, as indicated) W
+300 -54350 M
+(by a recent technical report [5].) h
+300 -55450 M
+300 -56550 M
+465.0 0 32 (Figure 4 shows the main processing steps for a) W
+300 -57650 M
+282.2 0 32 (single\255component image.  A predictor combines the) W
+300 -58750 M
+5.4 0 32 (values of up to three neighboring samples \(A, B, and C\)) W
+300 -59850 M
+166.5 0 32 (to form a prediction of the sample indicated by X in) W
+300 -60950 M
+147.9 0 32 (Figure 5.  This prediction is then subtracted from the) W
+300 -62050 M
+31.1 0 32 (actual value of sample X, and the difference is encoded) W
+-31919 7197 T
+R
+
+S
+30871 -75643 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(6) h
+R
+
+showpage
+$P e
+
+%%Page: 7 7
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6300 -26613 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+221.9 0 32 (losslessly by either of the entropy coding methods \255) W
+300 -2150 M
+24.7 0 32 (Huffman or arithmetic.  Any one of the eight predictors ) W
+300 -3250 M
+(listed in Table 1 \(under ) h
+(\026) h
+(selection\255value) h
+(\027) h
+(\) can be used.) h
+300 -4350 M
+300 -5450 M
+178.4 0 32 (Selections 1, 2, and 3 are one\255dimensional predictors) W
+300 -6550 M
+395.6 0 32 (and selections 4, 5, 6 and 7 are two\255dimensional) W
+300 -7650 M
+295.1 0 32 (predictors.  Selection\255value 0 can only be used for) W
+300 -8750 M
+666.7 0 32 (differential coding in the hierarchical mode of) W
+300 -9850 M
+211.6 0 32 (operation.  The entropy coding is nearly identical to) W
+300 -10950 M
+58.7 0 32 (that used for the DC coefficient as described in section) W
+300 -12050 M
+(7.1 \(for Huffman coding\).) h
+300 -13150 M
+300 -25655 M
+/Times-Roman-ISOLatin1 F 1000 o f
+3.4 0 32 (For the lossless mode of operation, two different codecs) W
+300 -26755 M
+225.9 0 32 (are specified \255 one for each entropy coding method. ) W
+300 -27855 M
+62.8 0 32 (The encoders can use any source image precision from) W
+300 -28955 M
+119.3 0 32 (2 to 16 bits/sample, and can use any of the predictors) W
+300 -30055 M
+222.3 0 32 (except selection\255value 0.  The decoders must handle) W
+300 -31155 M
+67.9 0 32 (any of the sample precisions and any of the predictors. ) W
+300 -32255 M
+860.8 0 32 (Lossless codecs typically produce around 2:1) W
+300 -33355 M
+18.3 0 32 (compression for color images with moderately complex) W
+300 -34455 M
+(scenes.) h
+-6300 26613 T
+S
+N
+S
+6363 -51518 22914 11405 @ I N
+6363 -40113 T
+N
+S
+N
+8451.00 -362.00 M
+8451.00 -7298.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+
+S
+N
+6930.00 -1720.00 M
+15682.00 -1720.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6930.00 -3077.00 M
+15682.00 -3077.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6930.00 -364.00 M
+15682.00 -364.00 L
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6930.00 -5941.00 M
+15682.00 -5941.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+10260.00 -362.00 M
+10260.00 -7298.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+12069.00 -362.00 M
+12069.00 -7298.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+13877.00 -362.00 M
+13877.00 -7298.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6930.00 -4585.00 M
+15682.00 -4585.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6930.00 -362.00 M
+6930.00 -7298.00 L
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+2274 -9820 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 5.  3\255Sample Prediction Neighborhood) h
+R
+
+S
+8921 -3989 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(C      B) h
+R
+
+S
+8826 -6038 M
+/Times-Roman-ISOLatin1 F 1000 o f
+0.0 448.0 m
+(A      X) h
+0 -448.0 m
+R
+
+R
+
+
+R
+R
+
+S
+31919 -25472 T
+N
+0 G
+300 -1050 M
+300 -17589 M
+300 -18839 M
+300 -20739 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1200 o f
+(6  Multiple\255Component Images) h
+300 -22489 M
+/Times-Roman-ISOLatin1 F 1000 o f
+323.8 0 32 (The previous sections discussed the key processing) W
+300 -23589 M
+115.0 0 32 (steps of the DCT\255based and predictive lossless codecs) W
+300 -24689 M
+31.4 0 32 (for the case of single\255component source images.  These) W
+300 -25789 M
+169.9 0 32 (steps accomplish the image data compression.  But a) W
+300 -26889 M
+64.7 0 32 (good deal of the JPEG proposal is also concerned with) W
+300 -27989 M
+15.3 0 32 (the handling and control of color \(or other\) images with) W
+300 -29089 M
+460.0 0 32 (multiple components.  JPEG's aim for a generic) W
+300 -30189 M
+871.8 0 32 (compression standard requires its proposal to) W
+300 -31289 M
+(accommodate a variety of source image formats.) h
+300 -32389 M
+300 -33489 M
+/Times-Bold-ISOLatin1 F 1000 o f
+(6.1  Source Image Formats) h
+300 -35189 M
+/Times-Roman-ISOLatin1 F 1000 o f
+95.4 0 32 (The source image model used in the JPEG proposal is) W
+300 -36289 M
+388.9 0 32 (an abstraction from a variety of image types and) W
+300 -37389 M
+138.6 0 32 (applications and consists of only what is necessary to) W
+300 -38489 M
+365.0 0 32 (compress and reconstruct digital image data.  The) W
+300 -39589 M
+35.9 0 32 (reader should recognize that the JPEG compressed data) W
+300 -40689 M
+55.5 0 32 (format does not encode enough information to serve as) W
+300 -41789 M
+130.9 0 32 (a complete image representation.  For example, JPEG) W
+300 -42889 M
+201.3 0 32 (does not specify or encode any information on pixel) W
+300 -43989 M
+694.3 0 32 (aspect ratio, color space, or image acquisition) W
+300 -45089 M
+(characteristics.) h
+-31919 25472 T
+S
+N
+S
+32030 -42311 22818 15439 @ I N
+32030 -26872 T
+N
+S
+3275 -15063 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Table 1.  Predictors for Lossless Coding) h
+R
+
+S
+3737 -1354 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(selection\255) h
+R
+
+S
+3737 -2313 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(value) h
+R
+
+S
+12462 -2313 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(prediction) h
+R
+
+S
+5271 -4038 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(0) h
+R
+
+S
+12654 -4038 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(no prediction) h
+R
+
+S
+5271 -5284 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(1) h
+R
+
+S
+5271 -6530 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(2) h
+R
+
+S
+5271 -7776 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(3) h
+R
+
+S
+5271 -9022 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(4) h
+R
+
+S
+5271 -10268 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(5) h
+R
+
+S
+5271 -11514 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(6) h
+R
+
+S
+5271 -12760 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(7) h
+R
+
+S
+12941 -5284 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(A) h
+R
+
+S
+12941 -6530 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(B) h
+R
+
+S
+12941 -7776 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(C) h
+R
+
+S
+12941 -9022 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(A+B\255C) h
+R
+
+S
+12941 -10268 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(A+\(\(B\255C\)/2\)) h
+R
+
+S
+12941 -11514 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(B+\(\(A\255C\)/2\)) h
+R
+
+S
+12941 -12760 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(A+B\)/2) h
+R
+
+S
+2980 -13017 16683 12878 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+3059.00 -2678.00 M
+19742.00 -2678.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+R
+
+
+R
+R
+
+S
+5321 -7623 T
+N
+S
+0 -18886 50333 18886 @
+R
+0 G
+300 -1050 M
+300 -18265 M
+S
+0 -18886 50333 18886 @
+R
+-5321 7623 T
+S
+N
+S
+6040 -24842 48895 15819 @ I N
+6040 -9023 T
+N
+S
+14805 -7446 6419 3372 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+
+S
+24485 -7365 6419 3371 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+6605 -7830 4592 4239 @
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+21194.00 -5693.00 M
+24379.00 -5693.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+23924.00 -5947.00 M
+24468.00 -5693.00 L
+23924.00 -5440.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+12919 -8253 19869 5301 @
+S
+400 w
+0 c
+0 j
+0.875 G k
+R
+R
+
+S
+16371 -6156 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Predictor) h
+R
+
+S
+25955 -5348 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Entropy) h
+R
+
+S
+25955 -6718 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Encoder) h
+R
+
+S
+34036 -6700 9118 1720 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+20155 -2341 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Lossless Encoder) h
+R
+
+S
+N
+27860.00 -9526.00 M
+27860.00 -7553.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+28113.00 -8038.00 M
+27859.00 -7494.00 L
+27606.00 -8038.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+11310.00 -5934.00 M
+14736.00 -5934.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+14252.00 -6188.00 M
+14795.00 -5934.00 L
+14252.00 -5681.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+30770.00 -5853.00 M
+34015.00 -5853.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+33531.00 -6107.00 M
+34074.00 -5853.00 L
+33531.00 -5600.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+7346 -10432 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(  Source ) h
+R
+
+S
+6805 -11556 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Image Data) h
+R
+
+S
+25926 -10814 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(   Table) h
+R
+
+S
+24948 -11967 M
+/Times-Roman-ISOLatin1 F 1000 o f
+( Specifications) h
+R
+
+S
+36573 -10348 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Compressed) h
+R
+
+S
+36253 -11503 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(  Image Data) h
+R
+
+S
+15111 -15567 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 4.  Lossless Mode Encoder Processing Steps) h
+R
+
+S
+24157 -12561 7441 2856 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+R
+
+
+R
+R
+
+S
+30679 -76122 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(7) h
+R
+
+showpage
+$P e
+
+%%Page: 8 8
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6314 -26079 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+129.3 0 32 (Figure 6 illustrates the JPEG source image model.  A) W
+300 -2150 M
+733.9 0 32 (source image contains from 1 to 255 image) W
+300 -3250 M
+143.3 0 32 (components, sometimes called color or spectral bands) W
+300 -4350 M
+59.1 0 32 (or channels.  Each component consists of a rectangular) W
+300 -5450 M
+369.4 0 32 (array of samples.  A sample is defined to be an) W
+300 -6550 M
+121.1 0 32 (unsigned integer with precision P bits, with any value) W
+300 -7650 M
+110.9 0 32 (in the range [0, 2) W
+n 0.800 o f
+0.0 448.0 m
+110.9 0 32 (P) W
+0 -448.0 m
+n 1.250 o f
+110.9 0 32 (\2551].  All samples of all components) W
+300 -8750 M
+305.4 0 32 (within the same source image must have the same) W
+300 -9850 M
+113.6 0 32 (precision P.  P can be 8 or 12 for DCT\255based codecs,) W
+300 -10950 M
+(and 2 to 16 for predictive codecs.) h
+300 -12050 M
+300 -13150 M
+35.8 0 32 (The ith component has sample dimensions x) W
+n 0.800 o f
+0.0 -358.0 m
+35.8 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+35.8 0 32 ( by y) W
+n 0.800 o f
+0.0 -358.0 m
+35.8 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+35.8 0 32 (.  To) W
+300 -14250 M
+960.8 0 32 (accommodate formats in which some image) W
+300 -15350 M
+119.1 0 32 (components are sampled at different rates than others,) W
+300 -16450 M
+504.5 0 32 (components can have different dimensions.  The) W
+300 -17550 M
+258.7 0 32 (dimensions must have a mutual integral relationship) W
+300 -18650 M
+392.4 0 32 (defined by H) W
+n 0.800 o f
+0.0 -358.0 m
+392.4 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+392.4 0 32 ( and V) W
+n 0.800 o f
+0.0 -358.0 m
+392.4 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+392.4 0 32 (, the relative horizontal and) W
+300 -19750 M
+134.9 0 32 (vertical sampling factors, which must be specified for) W
+300 -20850 M
+128.4 0 32 (each component.  Overall image dimensions X and Y) W
+300 -21950 M
+533.9 0 32 (are defined as the maximum x) W
+n 0.800 o f
+0.0 -358.0 m
+533.9 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+533.9 0 32 ( and y) W
+n 0.800 o f
+0.0 -358.0 m
+533.9 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+533.9 0 32 ( for all) W
+300 -23050 M
+36.0 0 32 (components in the image, and can be any number up to) W
+300 -24150 M
+184.8 0 32 (2) W
+n 0.800 o f
+0.0 448.0 m
+184.8 0 32 (16) W
+0 -448.0 m
+n 1.250 o f
+184.8 0 32 (.  H and V are allowed only the integer values 1) W
+300 -25250 M
+86.3 0 32 (through 4.  The encoded parameters are X, Y, and H) W
+n 0.800 o f
+0.0 -358.0 m
+86.3 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+86.3 0 32 (s) W
+300 -26350 M
+3.8 0 32 (and V) W
+n 0.800 o f
+0.0 -358.0 m
+3.8 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+3.8 0 32 (s for each components.  The decoder reconstructs) W
+300 -27450 M
+17.4 0 32 (the dimensions x) W
+n 0.800 o f
+0.0 -358.0 m
+17.4 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+17.4 0 32 ( and y) W
+n 0.800 o f
+0.0 -358.0 m
+17.4 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+17.4 0 32 ( for each component, according) W
+300 -28550 M
+(to the following relationship shown in Equation 5:) h
+300 -35499 M
+300 -36599 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(where ) h
+/Symbol F 1000 o f
+(\351  \371) h
+/Times-Roman-ISOLatin1 F 1000 o f
+(  is the ceiling function.) h
+300 -37699 M
+300 -38799 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1000 o f
+(6.2  Encoding Order and Interleaving) h
+300 -40499 M
+/Times-Roman-ISOLatin1 F 1000 o f
+157.3 0 32 (A practical image compression standard must address) W
+300 -41599 M
+188.0 0 32 (how systems will need to handle the data during the) W
+300 -42699 M
+111.0 0 32 (process of decompression.  Many applications need to) W
+300 -43799 M
+749.5 0 32 (pipeline the process of displaying or printing) W
+300 -44899 M
+36.7 0 32 (multiple\255component images in parallel with the process) W
+-6314 26079 T
+S
+N
+S
+6616 -60828 22435 5849 @ I N
+6616 -54979 T
+N
+S
+3793 -2015 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(x) h
+R
+
+
+
+S
+4326 -2266 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(i) h
+R
+
+S
+5082 -1922 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(=) h
+R
+
+S
+6926 -1947 M
+/Dutch801-Roman-DECmath_Symbol F 1253 o f
+(d) h
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(X) h
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+/Courier-ISOLatin1 $
+/Courier & P
+/Courier-ISOLatin1 F 1200 o f
+(  ) h
+% /AvantGarde-Book-ISOLatin1 $
+% /AvantGarde-Book & P
+% /AvantGarde-Book-ISOLatin1 F 1200 o f
+% (   ) h
+% /Courier-ISOLatin1 F 1200 o f
+(   ) h
+/Dutch801-Roman-DECmath_Symbol F 1200 o f
+(e) h
+R
+
+S
+10345 -1067 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(H) h
+R
+
+S
+11067 -1412 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(i) h
+R
+
+S
+9790 -2540 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(H) h
+R
+
+S
+N
+9502.00 -1510.00 M
+11557.00 -1510.00 L
+S
+49 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+12670 -2114 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   and) h
+n 0.833 o f
+(               ) h
+R
+
+S
+3876 -4899 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(y) h
+R
+
+
+S
+4409 -5150 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(i) h
+R
+
+S
+5165 -4806 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(=) h
+R
+
+S
+7584 -4899 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(Y) h
+R
+
+S
+10363 -4046 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(V) h
+R
+
+S
+10974 -4296 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(i) h
+R
+
+S
+9807 -5424 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(V) h
+R
+
+S
+10418 -5466 M
+/Dutch801-Italic-DECmath_Italic F 800 o f
+(m) h
+R
+
+S
+12135 -4719 M
+/Dutch801-Roman-DECmath_Symbol F 1200 o f
+(e) h
+R
+
+S
+11057 -5498 M
+/Dutch801-Italic-DECmath_Italic F 800 o f
+(ax) h
+R
+
+S
+10610 -2588 M
+/Dutch801-Italic-DECmath_Italic F 800 o f
+(m) h
+R
+
+S
+11249 -2620 M
+/Dutch801-Italic-DECmath_Italic F 800 o f
+(ax) h
+R
+
+S
+N
+9885.00 -4388.00 M
+11940.00 -4388.00 L
+S
+49 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+7009 -4707 M
+/Dutch801-Roman-DECmath_Symbol F 1200 o f
+(d) h
+R
+
+S
+8505 -4699 M
+/Dutch801-Roman-DECmath_Symbol F 1084 o f
+(\242) h
+R
+
+S
+8410 -1822 M
+/Dutch801-Roman-DECmath_Symbol F 1084 o f
+(\242) h
+R
+
+S
+21132 -5513 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(5\)) h
+R
+
+R
+
+
+R
+R
+
+S
+31919 -26075 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+305.0 0 32 (of decompression.  For many systems, this is only) W
+300 -2150 M
+370.5 0 32 (feasible if the components are interleaved together) W
+300 -3250 M
+(within the compressed data stream.) h
+300 -4350 M
+300 -5450 M
+35.7 0 32 (To make the same interleaving machinery applicable to) W
+300 -6550 M
+439.7 0 32 (both DCT\255based and predictive codecs, the JPEG) W
+300 -7650 M
+25.1 0 32 (proposal has defined the concept of ) W
+25.1 0 32 (\026) W
+25.1 0 32 (data unit.) W
+25.1 0 32 (\027) W
+25.1 0 32 (  A data) W
+300 -8750 M
+83.2 0 32 (unit is a sample in predictive codecs and an 8x8 block) W
+300 -9850 M
+(of samples in DCT\255based codecs.) h
+300 -10950 M
+300 -12050 M
+40.2 0 32 (The order in which compressed data units are placed in) W
+300 -13150 M
+400.9 0 32 (the compressed data stream is a generalization of) W
+300 -14250 M
+274.3 0 32 (raster\255scan order.  Generally, data units are ordered) W
+300 -15350 M
+231.2 0 32 (from left\255to\255right and top\255to\255bottom according to the) 
W
+300 -16450 M
+92.1 0 32 (orientation shown in Figure 6.  \(It is the responsibility) W
+300 -17550 M
+21.7 0 32 (of applications to define which edges of a source image) W
+300 -18650 M
+36.0 0 32 (are top, bottom, left and right.\)  If an image component) W
+300 -19750 M
+555.2 0 32 (is noninterleaved \(i.e., compressed without being) W
+300 -20850 M
+222.2 0 32 (interleaved with other components\), compressed data) W
+300 -21950 M
+250.1 0 32 (units are ordered in a pure raster scan as shown in) W
+300 -23050 M
+(Figure 7.) h
+300 -35752 M
+300 -36852 M
+/Times-Roman-ISOLatin1 F 1000 o f
+190.7 0 32 (When two or more components are interleaved, each) W
+300 -37952 M
+75.1 0 32 (component C) W
+n 0.800 o f
+0.0 -358.0 m
+75.1 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+75.1 0 32 ( is partitioned into rectangular regions of) W
+300 -39052 M
+376.4 0 32 (H) W
+n 0.800 o f
+0.0 -358.0 m
+376.4 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+376.4 0 32 ( by V) W
+n 0.800 o f
+0.0 -358.0 m
+376.4 0 32 (i) W
+0 358.0 m
+n 1.250 o f
+376.4 0 32 ( data units, as shown in the generalized) W
+300 -40152 M
+228.3 0 32 (example of Figure 8.  Regions are ordered within a) W
+300 -41252 M
+288.4 0 32 (component from left\255to\255right and top\255to\255bottom, and) W
+300 -42352 M
+17.4 0 32 (within a region, data units are ordered from left\255to\255right) W
+300 -43452 M
+293.3 0 32 (and top\255to\255bottom.  The JPEG proposal defines the) W
+300 -44552 M
+131.4 0 32 (term Minimum Coded Unit \(MCU\) to be the smallest) W
+-31919 26075 T
+S
+N
+S
+32126 -61077 22626 11602 @ I N
+32126 -49475 T
+N
+S
+N
+5326.00 -7291.00 M
+5326.00 -1714.00 L
+16831.00 -1714.00 L
+16831.00 -7204.00 L
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+
+
+S
+N
+7068.00 -1801.00 M
+7068.00 -7291.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+5413.00 -3369.00 M
+16744.00 -3369.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+8725.00 -1801.00 M
+8725.00 -7291.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+10294.00 -1801.00 M
+10294.00 -7291.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+11950.00 -1801.00 M
+11950.00 -7291.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+13606.00 -1801.00 M
+13606.00 -7291.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+15262.00 -1801.00 M
+15262.00 -7291.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6023.00 -2761.00 M
+15841.00 -2761.00 L
+S
+0.00 G - + * E
+R
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+15357.00 -3015.00 M
+15900.00 -2761.00 L
+15357.00 -2508.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6023.00 -4329.00 M
+15841.00 -4329.00 L
+S
+0.00 G - + * E
+R
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+15357.00 -4583.00 M
+15900.00 -4329.00 L
+15357.00 -4076.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6023.00 -5897.00 M
+15912.00 -5897.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+15392.00 -6151.00 M
+15936.00 -5897.00 L
+15392.00 -5644.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+10885 -1242 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(top) h
+R
+
+S
+17405 -4502 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(right) h
+R
+
+S
+9927 -8623 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(bottom) h
+R
+
+S
+3407 -4598 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(left) h
+R
+
+S
+2930 -10983 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 7.  Noninterleaved Data Ordering) h
+R
+
+S
+N
+5413.00 -5198.00 M
+16744.00 -5198.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+5413.00 -6593.00 M
+16744.00 -6593.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+5962 -3048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+7792 -3048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+9449 -3048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+11017 -3048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+12499 -3048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+14329 -3048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+5962 -4617 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+7792 -4617 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+9449 -4617 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+11017 -4617 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+12499 -4617 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+14329 -4617 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+5962 -6185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+7792 -6185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+9449 -6185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+11017 -6185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+12499 -6185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+14329 -6185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+15724 -6185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+15637 -4617 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+15810 -3048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+N
+15985.00 -2880.00 M
+6358.00 -4181.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+6839.00 -3860.00 M
+6334.00 -4184.00 L
+6907.00 -4362.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+15985.00 -4361.00 M
+6358.00 -5663.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+6839.00 -5342.00 M
+6334.00 -5666.00 L
+6907.00 -5844.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+15724.00 -6016.00 M
+7839.00 -7057.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+8321.00 -6738.00 M
+7815.00 -7060.00 L
+8388.00 -7240.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+R
+
+
+R
+R
+
+S
+6136 -6135 T
+N
+0 G
+300 -1050 M
+300 -19032 M
+-6136 6135 T
+S
+N
+S
+6375 -24121 48416 16586 @ I N
+6375 -7535 T
+N
+S
+9244 -9158 9699 8966 @
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+
+S
+7415 -9798 9701 4928 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+27825 -11568 8505 8975 @
+S
+0.00 G - + * E
+R
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+28301 -3210 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+29302 -3210 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+30374 -3210 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+31445 -3210 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+32517 -3210 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+33518 -3210 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+34591 -3210 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+35735 -3210 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+28301 -4190 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+29302 -4190 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+30374 -4190 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+31445 -4190 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+32517 -4190 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+33518 -4190 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+34591 -4190 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+35735 -4190 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+28230 -6603 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+29302 -6603 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+30374 -5473 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+31445 -5473 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+28230 -7584 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+29302 -5473 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+28230 -5473 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+N
+33185.00 -2692.00 M
+33185.00 -11468.00 L
+S
+10 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+32932.00 -10937.00 M
+33185.00 -11481.00 L
+33439.00 -10937.00 L
+S
+10 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+33439.00 -3224.00 M
+33185.00 -2680.00 L
+32932.00 -3224.00 L
+S
+10 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+27921.00 -9380.00 M
+36378.00 -9380.00 L
+S
+10 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+35847.00 -9634.00 M
+36391.00 -9380.00 L
+35847.00 -9127.00 L
+S
+10 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+28453.00 -9127.00 M
+27909.00 -9380.00 L
+28453.00 -9634.00 L
+S
+10 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+32614 -7043 1071 1132 @
+S
+0.00 G - + * E
+R
+R
+
+S
+29397 -9833 929 981 @
+S
+0.00 G - + * E
+R
+R
+
+S
+29540 -9442 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(x) h
+0.0 -448.0 m
+(i) h
+0 448.0 m
+R
+
+S
+32900 -6502 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(y) h
+0.0 -448.0 m
+(i) h
+0 448.0 m
+R
+
+S
+31685 -2094 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(top) h
+R
+
+S
+30970 -12654 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(bottom) h
+R
+
+S
+36830 -7675 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(right) h
+R
+
+S
+26252 -7752 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(left) h
+R
+
+S
+23751 -3752 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(samples) h
+R
+
+S
+37688 -3603 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(line) h
+R
+
+S
+N
+26793.00 -3738.00 M
+28252.00 -4159.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+27716.00 -4268.00 M
+28309.00 -4176.00 L
+27857.00 -3782.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+26824.00 -3725.00 M
+28176.00 -5295.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+27668.00 -5093.00 M
+28215.00 -5340.00 L
+28052.00 -4762.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+27538.00 -4289.00 M
+27538.00 -3950.00 27538.00 -3950.00 32076.00 -3950.00 C
+36615.00 -3950.00 36615.00 -3950.00 36615.00 -4289.00 C
+36615.00 -4629.00 36615.00 -4629.00 32076.00 -4629.00 C
+27538.00 -4629.00 27538.00 -4629.00 27538.00 -4289.00 C
+H
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+37402.00 -3725.00 M
+36787.00 -4114.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+37061.00 -3641.00 M
+36737.00 -4146.00 L
+37332.00 -4070.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+6863 -13926 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(a\) Source image with multiple components   ) h
+R
+
+S
+6402 -11015 5472 4631 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+6248 -6138 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+7002 -5149 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+6658 -5639 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+28040 -1901 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(C) h
+0.0 -448.0 m
+(i) h
+0 448.0 m
+R
+
+S
+17439 -16309 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 6.  JPEG Source Image Model) h
+R
+
+S
+11849 -11761 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(C) h
+0.0 -448.0 m
+(1) h
+0 448.0 m
+R
+
+S
+12308 -10629 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(C) h
+0.0 -448.0 m
+(2) h
+0 448.0 m
+R
+
+S
+17920 -10345 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(C) h
+0.0 -448.0 m
+(Nf\2551) h
+0 448.0 m
+R
+
+S
+6022 -11388 5476 4632 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+25372 -13926 M
+/Times-Roman-ISOLatin1 F 1000 o f
+( \(b\) Characteristics of an image component) h
+R
+
+S
+14239 -10788 M
+/Times-Bold-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+15931 -10565 M
+/Times-Bold-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+17424 -10188 M
+/Times-Bold-ISOLatin1 F 1000 o f
+(.) h
+R
+
+S
+20205 -9004 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(C) h
+0.0 -448.0 m
+(Nf) h
+0 448.0 m
+R
+
+R
+
+
+R
+R
+
+S
+30871 -76122 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(8) h
+R
+
+showpage
+$P e
+
+%%Page: 9 9
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6317 -38015 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+371.4 0 32 (group of interleaved data units.  For the example) W
+300 -2150 M
+10.8 0 32 (shown, MCU) W
+n 0.800 o f
+0.0 -358.0 m
+10.8 0 32 (1) W
+0 358.0 m
+n 1.250 o f
+10.8 0 32 ( consists of data units taken first from the) W
+300 -3250 M
+50.4 0 32 (top\255left\255most region of C) W
+n 0.800 o f
+0.0 -358.0 m
+50.4 0 32 (1) W
+0 358.0 m
+n 1.250 o f
+50.4 0 32 (, followed by data units from) W
+300 -4350 M
+218.7 0 32 (the same region of C) W
+n 0.800 o f
+0.0 -358.0 m
+218.7 0 32 (2) W
+0 358.0 m
+n 1.250 o f
+218.7 0 32 (, and likewise for C) W
+n 0.800 o f
+0.0 -358.0 m
+218.7 0 32 (3) W
+0 358.0 m
+n 1.250 o f
+218.7 0 32 ( and C) W
+n 0.800 o f
+0.0 -358.0 m
+218.7 0 32 (4) W
+0 358.0 m
+n 1.250 o f
+218.7 0 32 (. ) W
+300 -5450 M
+(MCU) h
+n 0.800 o f
+0.0 -358.0 m
+(2) h
+0 358.0 m
+n 1.250 o f
+( continues the pattern as shown.) h
+300 -6550 M
+300 -7650 M
+0.1 0 32 (Thus, interleaved data is an ordered sequence of MCUs,) W
+300 -8750 M
+122.0 0 32 (and the number of data units contained in an MCU is) W
+300 -9850 M
+175.8 0 32 (determined by the number of components interleaved) W
+300 -10950 M
+309.3 0 32 (and their relative sampling factors.  The maximum) W
+300 -12050 M
+166.6 0 32 (number of components which can be interleaved is 4) W
+300 -13150 M
+105.2 0 32 (and the maximum number of data units in an MCU is) W
+300 -14250 M
+271.4 0 32 (10.  The latter restriction is expressed as shown in) W
+300 -15350 M
+650.4 0 32 (Equation 6, where the summation is over the) W
+300 -16450 M
+(interleaved components:) h
+300 -21960 M
+/Times-Roman-ISOLatin1 F 1000 o f
+86.6 0 32 (Because of this restriction, not every combination of 4) W
+300 -23060 M
+0.2 0 32 (components which can be represented in noninterleaved) W
+300 -24160 M
+170.4 0 32 (order within a JPEG\255compressed image is allowed to) W
+300 -25260 M
+312.3 0 32 (be interleaved.  Also, note that the JPEG proposal) W
+300 -26360 M
+48.4 0 32 (allows some components to be interleaved and some to) W
+300 -27460 M
+(be noninterleaved within the same compressed image.) h
+300 -28560 M
+300 -29660 M
+300 -31360 M
+300 -33060 M
+-6317 38015 T
+S
+N
+S
+6715 -59225 22243 4410 @ I N
+6715 -54815 T
+N
+S
+6160 -1603 M
+/Symbol F 1200 o f
+(\345) h
+/Times-Roman-ISOLatin1 F 1000 o f
+(   H) h
+0.0 -448.0 m
+(i) h
+0 448.0 m
+( \327 V) h
+0.0 -448.0 m
+(i) h
+0 448.0 m
+( ) h
+/Symbol F 1000 o f
+(\243) h
+/Times-Roman-ISOLatin1 F 1000 o f
+( 10) h
+R
+
+
+S
+6063 -2753 M
+/Times-Italic-ISOLatin1 $
+/Times-Italic & P
+/Times-Italic-ISOLatin1 F 800 o f
+(all ) h
+/Times-Roman-ISOLatin1 F 800 o f
+(i in) h
+R
+
+S
+6063 -3520 M
+/Times-Roman-ISOLatin1 F 800 o f
+(interleave) h
+R
+
+S
+21020 -3233 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(6\)) h
+R
+
+R
+
+
+R
+R
+
+S
+31919 -38038 T
+N
+0 G
+300 -1050 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1000 o f
+(6.3  Multiple Tables) h
+300 -2750 M
+/Times-Roman-ISOLatin1 F 1000 o f
+564.3 0 32 (In addition to the interleaving control discussed) W
+300 -3850 M
+235.7 0 32 (previously, JPEG codecs must control application of) W
+300 -4950 M
+166.7 0 32 (the proper table data to the proper components.  The) W
+300 -6050 M
+178.4 0 32 (same quantization table and the same entropy coding) W
+300 -7150 M
+288.8 0 32 (table \(or set of tables\) must be used to encode all) W
+300 -8250 M
+(samples within a component.) h
+300 -9350 M
+300 -10450 M
+76.4 0 32 (JPEG decoders can store up to 4 different quantization) W
+300 -11550 M
+212.9 0 32 (tables and up to 4 different \(sets of\) entropy coding) W
+300 -12650 M
+632.8 0 32 (tables simultaneously.  \(The Baseline sequential) W
+300 -13750 M
+93.3 0 32 (decoder is the exception; it can only store up to 2 sets) W
+300 -14850 M
+427.0 0 32 (of entropy coding tables.\)  This is necessary for) W
+300 -15950 M
+1458.0 0 32 (switching between different tables during) W
+300 -17050 M
+916.2 0 32 (decompression of a scan containing multiple) W
+300 -18150 M
+111.1 0 32 (\(interleaved\) components, in order to apply the proper) W
+300 -19250 M
+322.9 0 32 (table to the proper component.  \(Tables cannot be) W
+300 -20350 M
+302.0 0 32 (loaded during decompression of a scan.\)  Figure 9) W
+300 -21450 M
+406.8 0 32 (illustrates the table\255switching control that must be) W
+300 -22550 M
+610.3 0 32 (managed in conjunction with multiple\255component) W
+300 -23650 M
+17.3 0 32 (interleaving for the encoder side.  \(This simplified view) W
+300 -24750 M
+110.7 0 32 (does not distinguish between quantization and entropy) W
+300 -25850 M
+(coding tables.\)) h
+-31919 38038 T
+R
+
+S
+6136 -5992 T
+N
+0 G
+300 -1050 M
+300 -31016 M
+-6136 5992 T
+S
+N
+S
+6423 -35962 48128 28570 @ I N
+6423 -7392 T
+N
+S
+N
+3368.00 -10873.00 M
+3368.00 -3107.00 L
+14202.00 -3107.00 L
+14202.00 -10873.00 L
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+
+S
+N
+3464.00 -6653.00 M
+14297.00 -6653.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7012.00 -3286.00 M
+7012.00 -10693.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+10656.00 -3286.00 M
+10656.00 -10693.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+14203.00 -3202.00 M
+14203.00 -6750.00 L
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+3464.00 -10297.00 M
+14297.00 -10297.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+3848 -2854 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(  0   1    2    3    4     5) h
+R
+
+S
+2410 -4196 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(0) h
+R
+
+S
+2410 -6112 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(1) h
+R
+
+S
+2410 -8028 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(2) h
+R
+
+S
+2410 -9944 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(3) h
+R
+
+S
+N
+16790.00 -7229.00 M
+16790.00 -3106.00 L
+27528.00 -3106.00 L
+27528.00 -7133.00 L
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+17460 -2758 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(0    1    2    3     4    5) h
+R
+
+S
+15927 -4196 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(0) h
+R
+
+S
+15927 -6112 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(1) h
+R
+
+S
+N
+20336.00 -3202.00 M
+20336.00 -7133.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+23979.00 -3202.00 M
+23979.00 -7133.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+16885.00 -6653.00 M
+27527.00 -6653.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+30883.00 -10988.00 M
+30883.00 -3202.00 L
+36252.00 -3202.00 L
+36252.00 -11064.00 L
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+30979.00 -6750.00 M
+36348.00 -6750.00 L
+S
+25 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+32704.00 -3279.00 M
+32704.00 -10910.00 L
+S
+25 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+30979.00 -10394.00 M
+36348.00 -10394.00 L
+S
+25 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+34430.00 -3279.00 M
+34430.00 -10910.00 L
+S
+25 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+31458 -2854 M
+/Times-Roman-ISOLatin1 F 1000 o f
+( 0    1    2) h
+R
+
+S
+29924 -4196 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(0) h
+R
+
+S
+29924 -6113 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(1) h
+R
+
+S
+29924 -8028 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(2) h
+R
+
+S
+29924 -9944 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(3) h
+R
+
+S
+N
+40184.00 -7325.00 M
+40184.00 -3202.00 L
+45648.00 -3202.00 L
+45648.00 -7325.00 L
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+40088.00 -4928.00 M
+45552.00 -4928.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+42004.00 -3298.00 M
+42004.00 -7133.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+43825.00 -3298.00 M
+43825.00 -7133.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+40088.00 -6750.00 M
+45552.00 -6750.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+40854 -2854 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(0    1    2) h
+R
+
+S
+39320 -4484 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(0) h
+R
+
+S
+39320 -6400 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(1) h
+R
+
+S
+4482 -768 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Cs) h
+0.0 -448.0 m
+(1) h
+0 448.0 m
+(: H) h
+0.0 -448.0 m
+(1) h
+0 448.0 m
+(=2, V) h
+0.0 -448.0 m
+(1) h
+0 448.0 m
+(=2) h
+R
+
+S
+17724 -863 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Cs) h
+0.0 -448.0 m
+(2) h
+0 448.0 m
+(:  H) h
+0.0 -448.0 m
+(2) h
+0 448.0 m
+(=2, V) h
+0.0 -448.0 m
+(2) h
+0 448.0 m
+(=1) h
+R
+
+S
+29128 -959 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Cs) h
+0.0 -448.0 m
+(3) h
+0 448.0 m
+(:  H) h
+0.0 -448.0 m
+(3) h
+0 448.0 m
+(=1, V) h
+0.0 -448.0 m
+(3) h
+0 448.0 m
+(=2) h
+R
+
+S
+38312 -864 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Cs) h
+0.0 -448.0 m
+(4) h
+0 448.0 m
+(:  H) h
+0.0 -448.0 m
+(4) h
+0 448.0 m
+(=1, V) h
+0.0 -448.0 m
+(4) h
+0 448.0 m
+(=1) h
+R
+
+S
+4235 -9678 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+5961 -9678 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+7591 -9678 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+9604 -9678 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+11522 -9678 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+13439 -9678 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+4235 -8048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+5961 -8048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+7591 -8048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+9604 -8048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+11426 -8048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+13439 -8048 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+4235 -6131 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+5961 -6131 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+7591 -6131 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+9604 -6131 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+11522 -6131 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+13439 -6131 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+4235 -4501 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+5961 -4501 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+7591 -4501 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+9604 -4501 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+11618 -4597 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+13439 -4501 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+N
+4427.00 -4268.00 M
+6153.00 -4268.00 L
+4422.00 -5726.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+4629.00 -5220.00 M
+4376.00 -5764.00 L
+4956.00 -5608.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+4331.00 -5898.00 M
+6057.00 -5898.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6057.00 -5898.00 M
+7654.00 -4302.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+7466.00 -4849.00 M
+7671.00 -4285.00 L
+7107.00 -4490.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7975.00 -4268.00 M
+9701.00 -4268.00 L
+7970.00 -5726.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+8177.00 -5220.00 M
+7924.00 -5764.00 L
+8504.00 -5608.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7879.00 -5898.00 M
+9605.00 -5898.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+9605.00 -5898.00 M
+11581.00 -4297.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+11337.00 -4821.00 M
+11600.00 -4282.00 L
+11018.00 -4427.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+11905.00 -4268.00 M
+13631.00 -4268.00 L
+11900.00 -5726.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+12107.00 -5220.00 M
+11854.00 -5764.00 L
+12434.00 -5608.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+11809.00 -5898.00 M
+13535.00 -5898.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+4427.00 -7720.00 M
+6153.00 -7720.00 L
+4422.00 -9178.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+4629.00 -8672.00 M
+4376.00 -9216.00 L
+4956.00 -9060.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+4331.00 -9350.00 M
+6057.00 -9350.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6057.00 -9350.00 M
+7654.00 -7754.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+7466.00 -8301.00 M
+7671.00 -7737.00 L
+7107.00 -7942.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+40953 -4376 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+17465 -6007 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+19191 -6007 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+21108 -6007 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+22833 -6007 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+24846 -6007 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+26476 -6007 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+17465 -4186 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+19191 -4186 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+21108 -4186 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+22833 -4186 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+24846 -4186 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+26476 -4186 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+N
+19287.00 -3884.00 M
+21061.00 -3884.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+20541.00 -4138.00 M
+21085.00 -3884.00 L
+20541.00 -3631.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+23026.00 -3884.00 M
+24800.00 -3884.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+24280.00 -4138.00 M
+24824.00 -3884.00 L
+24280.00 -3631.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+19383.00 -5706.00 M
+21157.00 -5706.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+20637.00 -5960.00 M
+21181.00 -5706.00 L
+20637.00 -5453.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+26573.00 -3980.00 M
+18182.00 -5409.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+18652.00 -5072.00 M
+18158.00 -5414.00 L
+18737.00 -5572.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+31655 -4185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+33381 -4185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+35106 -4185 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+31655 -6007 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+33381 -6007 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+35106 -6007 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+31655 -8116 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+33381 -8116 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+35106 -8116 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+31655 -9938 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+33381 -9938 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+35106 -9938 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+N
+31847.00 -3980.00 M
+31847.00 -5588.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+31594.00 -5104.00 M
+31847.00 -5647.00 L
+32101.00 -5104.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+33572.00 -3980.00 M
+33572.00 -5588.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+33319.00 -5104.00 M
+33572.00 -5647.00 L
+33826.00 -5104.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+35298.00 -3980.00 M
+35298.00 -5588.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+35045.00 -5104.00 M
+35298.00 -5647.00 L
+35552.00 -5104.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+31847.00 -7911.00 M
+31847.00 -9519.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+31594.00 -9035.00 M
+31847.00 -9578.00 L
+32101.00 -9035.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+31846.00 -5802.00 M
+33357.00 -4007.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+33213.00 -4573.00 M
+33369.00 -3994.00 L
+32825.00 -4246.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+33572.00 -5802.00 M
+35083.00 -4007.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+34939.00 -4573.00 M
+35095.00 -3994.00 L
+34551.00 -4246.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+31942.00 -9637.00 M
+33453.00 -7842.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+33309.00 -8408.00 M
+33465.00 -7829.00 L
+32921.00 -8081.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+35202.00 -5802.00 M
+31685.00 -7798.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+32017.00 -7318.00 M
+31669.00 -7807.00 L
+32268.00 -7759.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+17561.00 -3884.00 M
+19265.00 -3884.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+18781.00 -4138.00 M
+19324.00 -3884.00 L
+18781.00 -3631.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+17561.00 -5706.00 M
+19265.00 -5706.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+18781.00 -5960.00 M
+19324.00 -5706.00 L
+18781.00 -5453.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+21108.00 -3884.00 M
+22812.00 -3884.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+22328.00 -4138.00 M
+22871.00 -3884.00 L
+22328.00 -3631.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+42679 -4376 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+44500 -4376 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+40953 -6293 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+42679 -6293 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+44500 -6293 M
+/Symbol F 1200 o f
+(\267) h
+R
+
+S
+N
+42105.00 -4076.00 M
+44850.00 -4076.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+44324.00 -4330.00 M
+44868.00 -4076.00 L
+44324.00 -3823.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+44789.00 -4172.00 M
+41177.00 -5883.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+41544.00 -5429.00 M
+41161.00 -5891.00 L
+41761.00 -5887.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+41050.00 -6090.00 M
+42549.00 -6090.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+42023.00 -6344.00 M
+42567.00 -6090.00 L
+42023.00 -5837.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+25039.00 -3884.00 M
+26743.00 -3884.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+26259.00 -4138.00 M
+26802.00 -3884.00 L
+26259.00 -3631.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+16885.00 -5023.00 M
+27527.00 -5023.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+13630.00 -6061.00 M
+4855.00 -7491.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+5327.00 -7158.00 M
+4831.00 -7496.00 L
+5409.00 -7658.00 L
+S
+20 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+41183.00 -4034.00 M
+42674.00 -4034.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+42148.00 -4288.00 M
+42692.00 -4034.00 L
+42148.00 -3781.00 L
+S
+15 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+/ctm_cached x y D
+N
+20194.00 -8274.00 T
+9817.00 15191.00 s
+0 0 1 -68 -112 A
+ctm_cached t
+0 c
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+11023 -14203 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(MCU) h
+0.0 -448.0 m
+(1) h
+0 448.0 m
+(  =) h
+R
+
+S
+11023 -16599 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(MCU) h
+0.0 -448.0 m
+(2) h
+0 448.0 m
+(  =) h
+R
+
+S
+11023 -19090 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(MCU) h
+0.0 -448.0 m
+(3) h
+0 448.0 m
+(  =) h
+R
+
+S
+11023 -21294 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(MCU) h
+0.0 -448.0 m
+(4) h
+0 448.0 m
+(  =) h
+R
+
+S
+16717 -24638 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Cs) h
+0.0 -448.0 m
+(1) h
+0 448.0 m
+( data units) h
+R
+
+S
+25825 -24638 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Cs) h
+0.0 -448.0 m
+(2) h
+0 448.0 m
+( ) h
+R
+
+S
+29852 -24638 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Cs) h
+0.0 -448.0 m
+(3) h
+0 448.0 m
+( ) h
+R
+
+S
+33686 -24638 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Cs) h
+0.0 -448.0 m
+(4) h
+0 448.0 m
+R
+
+N
+S
+16308 -15128 19255 2476 @ I N
+16308 -12652 T
+N
+N
+S
+-574 -2646 20500 3339 @ I N
+-574 693 T
+N
+S
+800 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+1400 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+1400 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(00) h
+R
+
+S
+2400 -2083 M
+/Times-Roman-ISOLatin1 F 800 o f
+( ) h
+R
+
+S
+2700 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+3300 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+3300 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+3800 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+4300 -2099 M
+/Times-Roman-ISOLatin1 F 1000 o f
+( ) h
+R
+
+S
+4600 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+5200 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+5200 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+5700 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+6200 -2099 M
+/Times-Roman-ISOLatin1 F 1000 o f
+( ) h
+R
+
+S
+6500 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+7100 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+7100 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(11) h
+R
+
+S
+8100 -2099 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(   ) h
+R
+
+S
+9000 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+9600 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+9600 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(00) h
+R
+
+S
+10600 -2099 M
+/Times-Roman-ISOLatin1 F 1000 o f
+( ) h
+R
+
+S
+10900 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+11500 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+11500 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+12000 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+12500 -2083 M
+/Times-Roman-ISOLatin1 F 800 o f
+(   ) h
+R
+
+S
+13400 -2178 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+14000 -1476 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+14000 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(00) h
+R
+
+S
+15000 -2099 M
+/Times-Roman-ISOLatin1 F 1000 o f
+( ) h
+R
+
+S
+15300 -2178 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+15900 -1476 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+15900 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+16400 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+16900 -2099 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(   ) h
+R
+
+S
+17800 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+18400 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(4) h
+R
+
+S
+18400 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(00) h
+R
+
+S
+19400 -2099 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(,) h
+R
+
+R
+
+
+R
+
+
+N
+S
+16377 -17452 19254 2287 @ I N
+16377 -15165 T
+N
+N
+S
+-575 -2476 20500 3339 @ I N
+-575 863 T
+N
+S
+800 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+1400 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+1400 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+1900 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+2400 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+2700 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+3300 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+3300 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(03) h
+R
+
+S
+4300 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+4600 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+5200 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+5200 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+5700 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+6200 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+6500 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+7100 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+7100 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+7600 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+8100 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   ) h
+R
+
+S
+9000 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+9600 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+9600 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+10100 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+10600 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+10900 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+11500 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+11500 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(03) h
+R
+
+S
+12500 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   ) h
+R
+
+S
+13400 -2178 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+14000 -1476 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+14000 -2541 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(0) h
+R
+
+S
+14500 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+15000 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+15300 -2178 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+15900 -1476 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+15900 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(11) h
+R
+
+S
+16900 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   ) h
+R
+
+S
+17800 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+18400 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(4) h
+R
+
+S
+18400 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+18900 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+19400 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+R
+
+
+R
+
+
+N
+S
+16282 -19949 19447 2391 @ I N
+16282 -17558 T
+N
+N
+S
+-478 -2511 20500 3347 @ I N
+-478 836 T
+N
+S
+800 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+1400 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+1400 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+1900 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(4) h
+R
+
+S
+2400 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+2700 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+3300 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+3300 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+3800 -2533 M
+/Times-Roman-ISOLatin1 F 800 o f
+(5) h
+R
+
+S
+4300 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+4600 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+5200 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+5200 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(14) h
+R
+
+S
+6200 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+6500 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+7100 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+7100 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+7600 -2533 M
+/Times-Roman-ISOLatin1 F 800 o f
+(5) h
+R
+
+S
+8100 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   ) h
+R
+
+S
+9000 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+9600 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+9600 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+10100 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(4) h
+R
+
+S
+10600 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+10900 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+11500 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+11500 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+12000 -2533 M
+/Times-Roman-ISOLatin1 F 800 o f
+(5) h
+R
+
+S
+12500 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   ) h
+R
+
+S
+13400 -2178 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+14000 -1476 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+14000 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+14500 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+15000 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+15300 -2178 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+15900 -1476 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+15900 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(12) h
+R
+
+S
+16900 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   ) h
+R
+
+S
+17800 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+18400 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(4) h
+R
+
+S
+18400 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+18900 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+19400 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+R
+
+
+R
+
+
+N
+S
+16282 -22537 19447 2391 @ I N
+16282 -20146 T
+N
+N
+S
+-478 -2440 20500 3347 @ I N
+-478 907 T
+N
+S
+800 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+1400 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+1400 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(20) h
+R
+
+S
+2400 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+2700 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+3300 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+3300 -2541 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(2) h
+R
+
+S
+3800 -2533 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+4300 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+4600 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+5200 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+5200 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(30) h
+R
+
+S
+6200 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+6500 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+7100 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+7100 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+7600 -2533 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+8100 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   ) h
+R
+
+S
+9000 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+9600 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+9600 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+10100 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+10600 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+10900 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+11500 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+11500 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+12000 -2533 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+12500 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   ) h
+R
+
+S
+13400 -2178 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+14000 -1476 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+14000 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+14500 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+15000 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+( ) h
+R
+
+S
+15300 -2178 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+15900 -1476 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+15900 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(30) h
+R
+
+S
+16900 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(   ) h
+R
+
+S
+17800 -2179 M
+/Dutch801-Italic-DECmath_Italic F 1000 o f
+(d) h
+R
+
+S
+18400 -1481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(4) h
+R
+
+S
+18400 -2525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+18900 -2534 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+19400 -2099 M
+/Times-Roman-ISOLatin1 F 1200 o f
+(,) h
+R
+
+R
+
+
+R
+
+
+S
+/ctm_cached x y D
+N
+26734.00 -20869.00 T
+2089.00 2274.00 s
+0 0 1 -41 -139 A
+ctm_cached t
+0 c
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+/ctm_cached x y D
+N
+30760.00 -20869.00 T
+2089.00 2274.00 s
+0 0 1 -41 -139 A
+ctm_cached t
+0 c
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+/ctm_cached x y D
+N
+34402.00 -20868.00 T
+1454.00 1988.00 s
+0 0 1 -41 -139 A
+ctm_cached t
+0 c
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+12817 -27196 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 8.  Generalized Interleaved Data Ordering Example) h
+R
+
+R
+
+
+R
+R
+
+S
+30679 -75738 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(9) h
+R
+
+showpage
+$P e
+
+%%Page: 10 10
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6324 -5315 T
+N
+0 G
+300 -1050 M
+300 -18735 M
+300 -19835 M
+300 -21085 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1200 o f
+473.0 0 32 (7  Baseline and Other DCT Sequential) W
+300 -22385 M
+(Codecs) h
+300 -24135 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+97.0 0 32 (The DCT sequential mode of operation consists of the) W
+300 -25235 M
+135.1 0 32 (FDCT and Quantization steps from section 4, and the) W
+300 -26335 M
+481.0 0 32 (multiple\255component control from section 6.3.  In) W
+300 -27435 M
+182.3 0 32 (addition to the Baseline sequential codec, other DCT) W
+300 -28535 M
+91.4 0 32 (sequential codecs are defined to accommodate the two) W
+300 -29635 M
+70.9 0 32 (different sample precisions \(8 and 12 bits\) and the two) W
+300 -30735 M
+240.7 0 32 (different types of entropy coding methods \(Huffman) W
+300 -31835 M
+(and arithmetic\).) h
+300 -32935 M
+300 -34035 M
+305.1 0 32 (Baseline sequential coding is for images with 8\255bit) W
+300 -35135 M
+67.8 0 32 (samples and uses Huffman coding only.  It also differs) W
+300 -36235 M
+402.5 0 32 (from the other sequential DCT codecs in that its) W
+300 -37335 M
+40.2 0 32 (decoder can store only two sets of Huffman tables \(one) W
+300 -38435 M
+47.1 0 32 (AC table and DC table per set\).  This restriction means) W
+300 -39535 M
+603.1 0 32 (that, for images with three or four interleaved) W
+300 -40635 M
+36.9 0 32 (components, at least one set of Huffman tables must be) W
+300 -41735 M
+149.0 0 32 (shared by two components.  This restriction poses no) W
+300 -42835 M
+106.9 0 32 (limitation at all for noninterleaved components; a new) W
+300 -43935 M
+268.7 0 32 (set of tables can be loaded into the decoder before) W
+300 -45035 M
+(decompression of a noninterleaved component begins.) h
+300 -46135 M
+300 -47235 M
+313.3 0 32 (For many applications which do need to interleave) W
+300 -48335 M
+341.0 0 32 (three color components, this restriction is hardly a) W
+300 -49435 M
+467.9 0 32 (limitation at all.  Color spaces \(YUV, CIELUV,) W
+300 -50535 M
+254.7 0 32 (CIELAB, and others\) which represent the chromatic) W
+300 -51635 M
+398.0 0 32 (\(``color''\) information in two components and the) W
+300 -52735 M
+278.2 0 32 (achromatic \(``grayscale''\) information in a third are) W
+300 -53835 M
+134.9 0 32 (more efficient for compression than spaces like RGB. ) W
+300 -54935 M
+95.9 0 32 (One Huffman table set can be used for the achromatic) W
+300 -56035 M
+162.0 0 32 (component and one for the chrominance components. ) W
+300 -57135 M
+805.3 0 32 (DCT coefficient statistics are similar for the) W
+300 -58235 M
+118.9 0 32 (chrominance components of most images, and one set) W
+300 -59335 M
+41.5 0 32 (of Huffman tables can encode both almost as optimally) W
+300 -60435 M
+(as two.) h
+300 -61535 M
+300 -62635 M
+448.1 0 32 (The committee also felt that early availability of) W
+300 -63735 M
+665.8 0 32 (single\255chip implementations at commodity prices) W
+300 -64835 M
+602.2 0 32 (would encourage early acceptance of the JPEG) W
+300 -65935 M
+203.6 0 32 (proposal in a variety of applications.  In 1988 when) W
+-6324 5315 T
+S
+N
+S
+4614 -23300 26461 16585 @ I N
+4614 -6715 T
+N
+S
+10111 -3956 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Encoding ) h
+R
+
+
+S
+10191 -4798 M
+/Times-Roman-ISOLatin1 F 900 o f
+( ) h
+n 1.111 o f
+(Process) h
+R
+
+S
+3508 -2047 M
+/Times-Roman-ISOLatin1 F 900 o f
+(  ) h
+n 1.111 o f
+(A) h
+R
+
+S
+3573 -4517 M
+/Times-Roman-ISOLatin1 F 900 o f
+(  ) h
+n 1.111 o f
+(B) h
+R
+
+S
+3709 -6861 M
+/Times-Roman-ISOLatin1 F 900 o f
+( ) h
+n 1.111 o f
+(C) h
+R
+
+S
+3690 -2541 1239 1570 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+3690 -4936 1239 1569 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+3690 -7168 1239 1569 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+9629 -5104 4697 2315 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+4995.00 -1881.00 M
+6300.00 -1881.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+4995.00 -4111.00 M
+6300.00 -4111.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+4995.00 -6423.00 M
+6300.00 -6423.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+8970 -10675 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Table) h
+n 0.900 o f
+(      ) h
+n 1.111 o f
+(Table ) h
+R
+
+S
+12189 -12096 3325 2419 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+10543.00 -9759.00 M
+10543.00 -8272.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+13458.00 -9484.00 M
+13458.00 -8269.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+14262.00 -3945.00 M
+17538.00 -3945.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+17054.00 -4199.00 M
+17597.00 -3945.00 L
+17054.00 -3692.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+/ctm_cached x y D
+N
+8425.00 -4192.00 T
+1276.00 1616.00 s
+0 0 1 -133 -227 A
+ctm_cached t
+0 c
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+7064.00 -5064.00 M
+7573.00 -5381.00 L
+7489.00 -4787.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+7469.00 -3594.00 M
+7572.00 -3003.00 L
+7053.00 -3304.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+/ctm_cached x y D
+N
+12140.00 -4725.00 T
+2711.00 3432.00 s
+0 0 1 -61 -119 A
+ctm_cached t
+0 c
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+13156.00 -8199.00 M
+13486.00 -7698.00 L
+12890.00 -7767.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+11389.00 -7778.00 M
+10794.00 -7699.00 L
+11115.00 -8205.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+17720 -4729 5866 1568 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+6168 -2114 M
+/Symbol F 900 o f
+(\267) h
+R
+
+S
+6428 -3104 M
+/Symbol F 900 o f
+(\267) h
+R
+
+S
+10348 -8419 M
+/Symbol F 900 o f
+(\267) h
+R
+
+S
+13282 -8419 M
+/Symbol F 900 o f
+(\267) h
+R
+
+S
+N
+11132.00 -8532.00 M
+12239.00 -6798.00 L
+12239.00 -5180.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+12493.00 -5665.00 M
+12239.00 -5121.00 L
+11986.00 -5665.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6561.00 -2831.00 M
+8194.00 -4069.00 L
+9512.00 -4069.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+9028.00 -4323.00 M
+9571.00 -4069.00 L
+9028.00 -3816.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+10998 -8638 M
+/Symbol F 900 o f
+(\267) h
+R
+
+S
+18883 -10330 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Compressed ) h
+R
+
+S
+18733 -11395 M
+/Times-Roman-ISOLatin1 F 900 o f
+(  ) h
+n 1.111 o f
+(Image Data) h
+R
+
+S
+5462 -14680 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 9.  Component\255Interleave and ) h
+R
+
+S
+3777 -10330 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Source ) h
+R
+
+S
+2549 -11395 M
+/Times-Roman-ISOLatin1 F 900 o f
+(   ) h
+n 1.111 o f
+(Image Data) h
+R
+
+S
+8745 -11663 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Spec. 1 ) h
+R
+
+S
+12506 -11661 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Spec. 2) h
+R
+
+S
+6168 -4371 M
+/Symbol F 900 o f
+(\267) h
+R
+
+S
+6102 -6632 M
+/Symbol F 900 o f
+(\267) h
+R
+
+S
+8427 -12096 3233 2419 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+9584 -15926 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Table\255Switching Control) h
+R
+
+R
+
+
+R
+R
+
+S
+31919 -7157 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+41.5 0 32 (Baseline sequential was defined, the committee's VLSI) W
+300 -2150 M
+43.6 0 32 (experts felt that current technology made the feasibility) W
+300 -3250 M
+126.6 0 32 (of crowding four sets of loadable Huffman tables \255 in) W
+300 -4350 M
+231.2 0 32 (addition to four sets of Quantization tables \255 onto a) W
+300 -5450 M
+983.0 0 32 (single commodity\255priced codec chip a risky) W
+300 -6550 M
+(proposition.) h
+300 -7650 M
+300 -8750 M
+41.7 0 32 (The FDCT, Quantization, DC differencing, and zig\255zag) W
+300 -9850 M
+231.3 0 32 (ordering processing steps for the Baseline sequential) W
+300 -10950 M
+119.4 0 32 (codec proceed just as described in section 4.  Prior to) W
+300 -12050 M
+341.4 0 32 (entropy coding, there usually are few nonzero and) W
+300 -13150 M
+254.1 0 32 (many zero\255valued coefficients.  The task of entropy) W
+300 -14250 M
+158.9 0 32 (coding is to encode these few coefficients efficiently. ) W
+300 -15350 M
+138.7 0 32 (The description of Baseline sequential entropy coding) W
+300 -16450 M
+46.0 0 32 (is given in two steps: conversion of the quantized DCT) W
+300 -17550 M
+157.3 0 32 (coefficients into an intermediate sequence of symbols) W
+300 -18650 M
+638.7 0 32 (and assignment of variable\255length codes to the) W
+300 -19750 M
+(symbols.) h
+300 -20850 M
+300 -21950 M
+/Times-Bold-ISOLatin1 F 1000 o f
+(7.1 Intermediate Entropy Coding Representations) h
+300 -23650 M
+/Times-Roman-ISOLatin1 F 1000 o f
+47.7 0 32 (In the intermediate symbol sequence, each nonzero AC) W
+300 -24750 M
+435.0 0 32 (coefficient is represented in combination with the) W
+300 -25850 M
+128.2 0 32 (``runlength'' \(consecutive number\) of zero\255valued AC) W
+300 -26950 M
+151.1 0 32 (coefficients which precede it in the zig\255zag sequence. ) W
+300 -28050 M
+(Each such runlength/nonzero\255coefficient combination is) h
+300 -29150 M
+(\(usually\) represented by a pair of symbols:) h
+300 -30250 M
+300 -31350 M
+5120 -31350 M
+(symbol\2551) h
+15387 -31350 M
+(symbol\2552) h
+300 -32450 M
+2316 -32450 M
+(\(RUNLENGTH, SIZE\)) h
+14055 -32450 M
+(\(AMPLITUDE\)) h
+300 -33550 M
+300 -34650 M
+677.4 0 32 (Symbol\2551 represents two pieces of information, ) W
+300 -35750 M
+410.8 0 32 (RUNLENGTH and SIZE. Symbol\2552 represents the) W
+300 -36850 M
+166.4 0 32 (single piece of information designated AMPLITUDE,) W
+300 -37950 M
+339.9 0 32 (which is simply the amplitude of the nonzero AC) W
+300 -39050 M
+955.4 0 32 (coefficient. RUNLENGTH is the number of) W
+300 -40150 M
+83.7 0 32 (consecutive zero\255valued AC coefficients in the zig\255zag) W
+300 -41250 M
+167.0 0 32 (sequence preceding the nonzero AC coefficient being) W
+300 -42350 M
+61.7 0 32 (represented. SIZE is the number of bits used to encode) W
+300 -43450 M
+194.1 0 32 (AMPLITUDE \255 that is, to encoded symbol\2552, by the) W
+300 -44550 M
+272.0 0 32 (signed\255integer encoding used with JPEG's particular) W
+300 -45650 M
+(method of Huffman coding. ) h
+300 -46750 M
+300 -47850 M
+127.0 0 32 (RUNLENGTH represents zero\255runs of length 0 to 15.) W
+300 -48950 M
+35.3 0 32 (Actual zero\255runs in the zig\255zag sequence can be greater) W
+300 -50050 M
+66.5 0 32 (than 15, so the symbol\2551 value \(15, 0\) is interpreted as) W
+300 -51150 M
+85.9 0 32 (the extension symbol with runlength=16. There can be) W
+300 -52250 M
+191.0 0 32 (up to three consecutive \(15, 0\) extensions before the) W
+300 -53350 M
+555.0 0 32 (terminating symbol\2551 whose RUNLENGTH value) W
+300 -54450 M
+655.2 0 32 (completes the actual runlength. The terminating) W
+300 -55550 M
+293.1 0 32 (symbol\2551 is always followed by a single symbol\2552,) W
+300 -56650 M
+311.2 0 32 (except for the case in which the last run of zeros) W
+300 -57750 M
+100.6 0 32 (includes the last \(63d\) AC coefficient. In this frequent) W
+300 -58850 M
+34.8 0 32 (case, the special symbol\2551 value \(0,0\) means EOB \(end) W
+300 -59950 M
+129.9 0 32 (of block\), and can be viewed as an ``escape'' symbol) W
+300 -61050 M
+(which terminates the 8x8 sample block.) h
+300 -62150 M
+-31919 7157 T
+R
+
+S
+30392 -75162 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(10) h
+R
+
+showpage
+$P e
+
+%%Page: 11 11
+/$P a D
+g N
+0 79200 T
+S
+R
+S
+6328 -7185 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+375.0 0 32 (Thus, for each 8x8 block of samples, the zig\255zag) W
+300 -2150 M
+805.5 0 32 (sequence of 63 quantized AC coefficients is) W
+300 -3250 M
+458.3 0 32 (represented as a sequence of symbol\2551, symbol\2552) W
+300 -4350 M
+79.4 0 32 (symbol pairs, though each ``pair'' can have repetitions) W
+300 -5450 M
+7.5 0 32 (of symbol\2551 in the case of a long run\255length or only one) W
+300 -6550 M
+(symbol\2551 in the case of an EOB.) h
+300 -7650 M
+300 -8750 M
+518.5 0 32 (The possible range of quantized AC coefficients) W
+300 -9850 M
+575.3 0 32 (determines the range of values which both the) W
+300 -10950 M
+793.8 0 32 (AMPLITUDE and the SIZE information must) W
+300 -12050 M
+388.7 0 32 (represent. A numerical analysis of the 8x8 FDCT) W
+300 -13150 M
+135.0 0 32 (equation shows that, if the 64\255point \(8x8 block\) input) W
+300 -14250 M
+235.8 0 32 (signal contains N\255bit integers, then the nonfractional) W
+300 -15350 M
+7.0 0 32 (part of the output numbers \(DCT coefficients\) can grow) W
+300 -16450 M
+95.5 0 32 (by at most 3 bits. This is also the largest possible size) W
+300 -17550 M
+69.5 0 32 (of a quantized DCT coefficient when its quantizer step) W
+300 -18650 M
+(size has integer value 1.) h
+300 -19750 M
+300 -20850 M
+83.1 0 32 (Baseline sequential has 8\255bit integer source samples in) W
+300 -21950 M
+381.9 0 32 (the range [\2552) W
+n 0.800 o f
+0.0 448.0 m
+381.9 0 32 (7) W
+0 -448.0 m
+n 1.250 o f
+381.9 0 32 (, 2) W
+n 0.800 o f
+0.0 448.0 m
+381.9 0 32 (7) W
+0 -448.0 m
+n 1.250 o f
+381.9 0 32 (\2551], so quantized AC coefficient) W
+300 -23050 M
+132.8 0 32 (amplitudes are covered by integers in the range [\2552) W
+n 0.800 o f
+0.0 448.0 m
+132.8 0 32 (10) W
+0 -448.0 m
+n 1.250 o f
+132.8 0 32 (,) W
+300 -24150 M
+406.4 0 32 (2) W
+n 0.800 o f
+0.0 448.0 m
+406.4 0 32 (10) W
+0 -448.0 m
+n 1.250 o f
+406.4 0 32 (\2551]. The signed\255integer encoding uses symbol\2552) W
+300 -25250 M
+71.9 0 32 (AMPLITUDE codes of 1 to 10 bits in length \(so SIZE) W
+300 -26350 M
+888.7 0 32 (also represents values from 1 to 10\), and) W
+300 -27450 M
+416.6 0 32 (RUNLENGTH represents values from 0 to 15 as) W
+300 -28550 M
+36.8 0 32 (discussed previously. For AC coefficients, the structure) W
+300 -29650 M
+1027.2 0 32 (of the symbol\2551 and symbol\2552 intermediate) W
+300 -30750 M
+547.3 0 32 (representations is illustrated in Tables 2 and 3,) W
+300 -31850 M
+(respectively.) h
+300 -32950 M
+300 -34050 M
+379.7 0 32 (The intermediate representation for an 8x8 sample) W
+300 -35150 M
+694.4 0 32 (block's differential DC coefficient is structured) W
+300 -36250 M
+310.6 0 32 (similarly. Symbol\2551, however, represents only SIZE) W
+300 -37350 M
+1027.0 0 32 (information; symbol\2552 represents AMPLITUDE) W
+300 -38450 M
+(information as before:) h
+300 -39550 M
+300 -40650 M
+3437 -40650 M
+(symbol\2551) h
+13467 -40650 M
+(symbol\2552) h
+300 -41750 M
+3938 -41750 M
+(\(SIZE\)) h
+12135 -41750 M
+(\(AMPLITUDE\)) h
+300 -42850 M
+300 -43950 M
+63.6 0 32 (Because the DC coefficient is differentially encoded, it) W
+300 -45050 M
+323.6 0 32 (is covered by twice as many integer values, [\2552) W
+n 0.800 o f
+0.0 448.0 m
+323.6 0 32 (11) W
+0 -448.0 m
+n 1.250 o f
+323.6 0 32 (,) W
+300 -46150 M
+167.3 0 32 (2) W
+n 0.800 o f
+0.0 448.0 m
+167.3 0 32 (11) W
+0 -448.0 m
+n 1.250 o f
+167.3 0 32 (\2551] as the AC coefficients, so one additional level) W
+300 -47250 M
+366.4 0 32 (must be added to the bottom of Table 3 for DC) W
+300 -48350 M
+688.6 0 32 (coefficients. Symbol\2551 for DC coefficients thus) W
+300 -49450 M
+(represents a value from 1 to 11.) h
+-6328 7185 T
+S
+N
+S
+6152 -71270 23393 14285 @ I N
+6152 -56985 T
+N
+S
+9077 -3333 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(0      1      2     . . .     9      10) h
+R
+
+
+
+S
+1502 -7064 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(RUN) h
+R
+
+S
+6918 -4947 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(0) h
+R
+
+S
+6918 -6258 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(.) h
+R
+
+S
+6918 -7568 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(.) h
+R
+
+S
+6918 -8879 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(.) h
+R
+
+S
+6918 -10191 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(15) h
+R
+
+S
+9122 -6258 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(X) h
+R
+
+S
+9122 -7568 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(X) h
+R
+
+S
+9122 -8879 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(X) h
+R
+
+S
+8548 -4947 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(EOB) h
+R
+
+S
+8548 -10191 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(ZRL) h
+R
+
+S
+13199 -7064 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(RUN\255SIZE) h
+R
+
+S
+14061 -8071 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(values) h
+R
+
+S
+1502 -8071 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(LENGTH) h
+R
+
+S
+1166 -10594 20612 9500 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+1213.00 -3787.00 M
+21826.00 -3787.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+4762 -12349 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Table 2.  Baseline Huffman Coding) h
+R
+
+S
+8693 -13669 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Symbol\2551 Structure ) h
+R
+
+S
+15084 -2303 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(SIZE) h
+R
+
+S
+N
+6215.00 -1174.00 M
+6215.00 -10570.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+R
+
+
+R
+R
+
+S
+31919 -7195 T
+N
+0 G
+300 -1050 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1000 o f
+(7.2  Variable\255Length Entropy Coding) h
+300 -2750 M
+/Times-Roman-ISOLatin1 F 1000 o f
+58.8 0 32 (Once the quantized coefficient data for an 8x8 block is) W
+300 -3850 M
+594.4 0 32 (represented in the intermediate symbol sequence) W
+300 -4950 M
+294.8 0 32 (described above, variable\255length codes are assigned. ) W
+300 -6050 M
+52.0 0 32 (For each 8x8 block, the DC coefficient's symbol\2551 and) W
+300 -7150 M
+(symbol\2552 representation is coded and output first.) h
+300 -8250 M
+300 -9350 M
+232.4 0 32 (For both DC and AC coefficients, each symbol\2551 is) W
+300 -10450 M
+194.6 0 32 (encoded with a variable\255length code \(VLC\) from the) W
+300 -11550 M
+180.4 0 32 (Huffman table set assigned to the 8x8 block's image) W
+300 -12650 M
+571.1 0 32 (component.  Each symbol\2552 is encoded with a) W
+300 -13750 M
+194.7 0 32 (\026) W
+194.7 0 32 (variable\255length integer) W
+194.7 0 32 (\027) W
+194.7 0 32 ( \(VLI\) code whose length in) W
+300 -14850 M
+11.4 0 32 (bits is given in Table 3.  VLCs and VLIs both are codes) W
+300 -15950 M
+41.6 0 32 (with variable lengths, but VLIs are not Huffman codes. ) W
+300 -17050 M
+187.8 0 32 (An important distinction is that the length of a VLC) W
+300 -18150 M
+160.2 0 32 (\(Huffman code\) is not known until it is decoded, but) W
+300 -19250 M
+(the length of a VLI is stored in its preceding VLC.) h
+300 -20350 M
+300 -21450 M
+59.6 0 32 (Huffman codes \(VLCs\) must be specified externally as) W
+300 -22550 M
+235.9 0 32 (an input to JPEG encoders.  \(Note that the form in) W
+300 -23650 M
+401.0 0 32 (which Huffman tables are represented in the data) W
+300 -24750 M
+400.6 0 32 (stream is an indirect specification with which the) W
+300 -25850 M
+170.4 0 32 (decoder must construct the tables themselves prior to) W
+300 -26950 M
+467.3 0 32 (decompression.\)  The JPEG proposal includes an) W
+300 -28050 M
+10.3 0 32 (example set of Huffman tables in its information annex,) W
+300 -29150 M
+227.0 0 32 (but because they are application\255specific, it specifies) W
+300 -30250 M
+100.2 0 32 (none for required use.  The VLI codes in contrast, are) W
+300 -31350 M
+289.6 0 32 (\026) W
+289.6 0 32 (hardwired) W
+289.6 0 32 (\027) W
+289.6 0 32 ( into the proposal.  This is appropriate,) W
+300 -32450 M
+105.3 0 32 (because the VLI codes are far more numerous, can be) W
+300 -33550 M
+79.9 0 32 (computed rather than stored, and have not been shown) W
+300 -34650 M
+99.3 0 32 (to be appreciably more efficient when implemented as) W
+300 -35750 M
+(Huffman codes.) h
+300 -36850 M
+300 -37950 M
+/Times-Bold-ISOLatin1 F 1000 o f
+(7.3 Baseline Encoding Example) h
+300 -39650 M
+/Times-Roman-ISOLatin1 F 1000 o f
+43.4 0 32 (This section gives an example of Baseline compression) W
+300 -40750 M
+47.1 0 32 (and encoding of a single 8x8 sample block. Note that a) W
+300 -41850 M
+3.0 0 32 (good deal of the operation of a complete JPEG Baseline) W
+300 -42950 M
+708.2 0 32 (encoder is omitted here, including creation of) W
+300 -44050 M
+208.8 0 32 (Interchange Format information \(parameters, headers,) W
+300 -45150 M
+777.5 0 32 (quantization and Huffman tables\), byte\255stuffing,) W
+300 -46250 M
+52.1 0 32 (padding to byte\255boundaries prior to a marker code, and) W
+300 -47350 M
+64.5 0 32 (other key operations. Nonetheless, this example should) W
+300 -48450 M
+638.9 0 32 (help to make concrete much of the foregoing) W
+300 -49550 M
+(explanation.) h
+300 -50650 M
+300 -51750 M
+524.0 0 32 (Figure 10\(a\) is an 8x8 block of 8\255bit samples,) W
+300 -52850 M
+389.0 0 32 (aribtrarily extracted from a real image. The small) W
+300 -53950 M
+703.3 0 32 (variations from sample to sample indicate the) W
+300 -55050 M
+722.4 0 32 (predominance of low spatial frequencies. After) W
+300 -56150 M
+345.3 0 32 (subtracting 128 from each sample for the required) W
+300 -57250 M
+457.8 0 32 (level\255shift, the 8x8 block is input to the FDCT,) W
+300 -58350 M
+17.4 0 32 (equation \(1\). Figure 10\(b\) shows \(to one decimal place\)) W
+300 -59450 M
+68.0 0 32 (the resulting DCT coefficients. Except for a few of the) W
+300 -60550 M
+97.3 0 32 (lowest frequency coefficients, the amplitudes are quite) W
+300 -61650 M
+(small.) h
+300 -62750 M
+-31919 7195 T
+R
+
+S
+30392 -75642 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(11) h
+R
+
+showpage
+$P e
+
+%%Page: 12 12
+/$P a D
+g N
+0 79200 T
+S
+S
+7200 -2700 T
+N
+0 G
+300 -1200 M
+-7200 2700 T
+R
+
+S
+7200 -74700 T
+N
+0 G
+300 -1200 M
+-7200 74700 T
+R
+
+R
+S
+7070 -42751 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+236.4 0 32 (Figure 10\(c\) is the example quantization table for) W
+300 -2150 M
+264.4 0 32 (luminance \(grayscale\) components included in the) W
+300 -3250 M
+101.6 0 32 (informational annex of the draft JPEG standard part) W
+300 -4350 M
+486.3 0 32 (1 [2]. Figure 10\(d\) shows the quantized DCT) W
+300 -5450 M
+214.4 0 32 (coefficients, normalized by their quantization table) W
+300 -6550 M
+106.4 0 32 (entries, as specified by equation \(3\). At the decoder) W
+300 -7650 M
+487.0 0 32 (these numbers are ) W
+487.0 0 32 (\026) W
+487.0 0 32 (denormalized) W
+487.0 0 32 (\027) W
+487.0 0 32 ( according to) W
+300 -8750 M
+206.8 0 32 (equation \(4\), and input to the IDCT, equation \(2\).) W
+300 -9850 M
+90.7 0 32 (Finally, figure 10\(f\) shows the reconstructed sample) W
+300 -10950 M
+(values, remarkably similar to the originals in 10\(a\). ) h
+300 -12050 M
+300 -13150 M
+331.9 0 32 (Of course, the numbers in figure 10\(d\) must be) W
+300 -14250 M
+893.0 0 32 (Huffman\255encoded before transmission to the) W
+300 -15350 M
+26.7 0 32 (decoder. The first number of the block to be encoded) W
+300 -16450 M
+541.7 0 32 (is the DC term, which must be differentially) W
+300 -17550 M
+172.3 0 32 (encoded. If the quantized DC term of the previous) W
+300 -18650 M
+115.1 0 32 (block is, for example, 12, then the difference is +3.) W
+300 -19750 M
+234.3 0 32 (Thus, the intermediate representation is \(2\)\(3\), for) W
+300 -20850 M
+(SIZE=2 and AMPLITUDE=3.) h
+300 -21950 M
+300 -23050 M
+46.3 0 32 (Next, the the quantized AC coefficients are encoded.) W
+300 -24150 M
+488.8 0 32 (Following the zig\255zag order, the first non\255zero) W
+300 -25250 M
+153.3 0 32 (coefficient is \2552, preceded by a zero\255run of 1. This) W
+300 -26350 M
+342.4 0 32 (yields an intermediate representation of \(1,2\)\(\2552\).) W
+300 -27450 M
+371.9 0 32 (Next encountered in the zig\255zag order are three) W
+300 -28550 M
+174.0 0 32 (consecutive non\255zeros of amplitude \2551. This means) W
+-7070 42751 T
+R
+
+S
+32037 -42745 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+200.0 0 32 (each is preceded by a zero\255run of length zero, for) W
+300 -2150 M
+342.6 0 32 (intermediate symbols \(0,1\)\(\2551\). The last non\255zero) W
+300 -3250 M
+47.9 0 32 (coefficient is \2551 preceded by two zeros, for \(2,1\)\(\2551\).) W
+300 -4350 M
+33.6 0 32 (Because this is the last non\255zero coefficient, the final) W
+300 -5450 M
+(symbol representing this 8x8 block is EOB, or \(0,0\).) h
+300 -6550 M
+300 -7650 M
+113.6 0 32 (Thus, the intermediate sequence of symbols for this) W
+300 -8750 M
+(example 8x8 block is: ) h
+300 -9850 M
+2100 -10950 M
+(\(2\)\(3\),   \(1,2\)\(\2552\),   \(0,1\)\(\2551\),   \(0,1\)\(\2551\),) h
+2100 -12050 M
+(\(0,1\)\(\2551\),   \(2,1\)\(\2551\),   \(0,0\)) h
+2100 -13150 M
+300 -14250 M
+19.4 0 32 (Next the codes themselves must be assigned. For this) W
+300 -15350 M
+498.5 0 32 (example, the VLCs \(Huffman codes\) from the) W
+300 -16450 M
+534.3 0 32 (informational annex of [2] will be used. The) W
+300 -17550 M
+(differential\255DC VLC for this example is: ) h
+300 -18650 M
+2100 -19750 M
+( \(2\)) h
+5744 -19750 M
+( 011) h
+300 -20850 M
+300 -21950 M
+(The AC luminance VLCs for this example are:) h
+300 -23050 M
+2100 -24150 M
+(\(0,0\)) h
+5763 -24150 M
+(1010) h
+2100 -25250 M
+(\(0,1\)) h
+5763 -25250 M
+(00) h
+2100 -26350 M
+(\(1,2\) ) h
+5763 -26350 M
+(11011) h
+2100 -27450 M
+(\(2,1\)) h
+5763 -27450 M
+(11100) h
+300 -28550 M
+-32037 42745 T
+R
+
+S
+7094 -5224 T
+N
+S
+0 -39599 46978 39599 @
+R
+0 G
+300 -1050 M
+300 -38493 M
+S
+0 -39599 46978 39599 @
+R
+-7094 5224 T
+S
+N
+S
+5226 -42671 50715 36047 @ I N
+5226 -6624 T
+N
+S
+1666 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(139) h
+R
+
+
+
+S
+1666 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(144) h
+R
+
+S
+1666 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(150) h
+R
+
+S
+1666 -6778 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+1666 -8380 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+1666 -9980 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+1666 -11579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+1666 -13095 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+3635 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(144) h
+R
+
+S
+5536 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(149) h
+R
+
+S
+7438 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(153) h
+R
+
+S
+9408 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+11242 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+13143 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+15045 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+3635 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(151) h
+R
+
+S
+3635 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+3635 -6778 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+3635 -8380 M
+/Times-Roman-ISOLatin1 F 800 o f
+(160) h
+R
+
+S
+3635 -9980 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+3635 -11579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+3635 -13095 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+5536 -3750 M
+/Times-Roman-ISOLatin1 F 800 o f
+(153) h
+R
+
+S
+5536 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(160) h
+R
+
+S
+5536 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+5536 -8296 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+5536 -9982 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+5536 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+5536 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+7438 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+7438 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(163) h
+R
+
+S
+7438 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(160) h
+R
+
+S
+7438 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+7438 -9898 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+7438 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(163) h
+R
+
+S
+7438 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+9408 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+9408 -5262 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+9408 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(160) h
+R
+
+S
+9408 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+9408 -9982 M
+/Times-Roman-ISOLatin1 F 800 o f
+(160) h
+R
+
+S
+9408 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+9408 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(163) h
+R
+
+S
+11242 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+11242 -5262 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+11242 -6781 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+11242 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+11242 -9982 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+11242 -11582 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+11242 -13013 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+13143 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+13143 -5262 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+13143 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+13143 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+13143 -9981 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+13143 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+13143 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+15045 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+15045 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+15045 -6778 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+15045 -8294 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+15045 -9980 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+15045 -11579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+15045 -13095 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+17966 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(235.6) h
+R
+
+
+S
+18093 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\25522.6) h
+R
+
+S
+18093 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\25510.9) h
+R
+
+S
+18541 -6778 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2557.1) h
+R
+
+S
+18541 -8380 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.6) h
+R
+
+S
+18796 -9980 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.8) h
+R
+
+S
+18605 -11579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551.3) h
+R
+
+S
+18541 -13095 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2552.6) h
+R
+
+S
+20446 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551.0) h
+R
+
+S
+21901 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\25512.1) h
+R
+
+S
+24058 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2555.2) h
+R
+
+S
+26156 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2.1) h
+R
+
+S
+27669 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551.7) h
+R
+
+S
+29443 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2552.7) h
+R
+
+S
+31473 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.3) h
+R
+
+S
+19999 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\25517.5) h
+R
+
+S
+20446 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2559.3) h
+R
+
+S
+20446 -6778 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551.9) h
+R
+
+S
+20446 -8380 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.8) h
+R
+
+S
+20446 -9980 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.2) h
+R
+
+S
+20446 -11579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.4) h
+R
+
+S
+20702 -13095 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.6) h
+R
+
+S
+22284 -3750 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2556.2) h
+R
+
+S
+22284 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551.6) h
+R
+
+S
+22540 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0.2) h
+R
+
+S
+22539 -8296 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.5) h
+R
+
+S
+22540 -9982 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.6) h
+R
+
+S
+22284 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.3) h
+R
+
+S
+22284 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2553.8) h
+R
+
+S
+24058 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2553.2) h
+R
+
+S
+24314 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.5) h
+R
+
+S
+24314 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.5) h
+R
+
+S
+24314 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.6) h
+R
+
+S
+24058 -9898 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.3) h
+R
+
+S
+24058 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551.5) h
+R
+
+S
+24058 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551.8) h
+R
+
+S
+25836 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2552.9) h
+R
+
+S
+26092 -5262 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0.2) h
+R
+
+S
+26156 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0.9) h
+R
+
+S
+25836 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.1) h
+R
+
+S
+25836 -9982 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.8) h
+R
+
+S
+25836 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.5) h
+R
+
+S
+26156 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.9) h
+R
+
+S
+27669 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.1) h
+R
+
+S
+27670 -5262 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.9) h
+R
+
+S
+27670 -6781 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.1) h
+R
+
+S
+27669 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.7) h
+R
+
+S
+27925 -9982 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.5) h
+R
+
+S
+27925 -11582 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.7) h
+R
+
+S
+27925 -13013 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.2) h
+R
+
+S
+29699 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0.4) h
+R
+
+S
+29443 -5262 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.6) h
+R
+
+S
+29699 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0.0) h
+R
+
+S
+29699 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0.6) h
+R
+
+S
+29699 -9981 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.0) h
+R
+
+S
+29699 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.1) h
+R
+
+S
+29443 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.6) h
+R
+
+S
+31218 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551.2) h
+R
+
+S
+31218 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.1) h
+R
+
+S
+31473 -6778 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0.3) h
+R
+
+S
+31473 -8294 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1.3) h
+R
+
+S
+31217 -9980 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551.0) h
+R
+
+S
+31218 -11579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.8) h
+R
+
+S
+31218 -13095 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2550.4) h
+R
+
+S
+3031 -15447 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(a\)    source image samples) h
+R
+
+S
+19330 -15381 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(b\)   forward DCT coefficients) h
+R
+
+S
+34456 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(16) h
+R
+
+
+S
+34456 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(12) h
+R
+
+S
+34456 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(14) h
+R
+
+S
+34456 -6778 M
+/Times-Roman-ISOLatin1 F 800 o f
+(14) h
+R
+
+S
+34456 -8380 M
+/Times-Roman-ISOLatin1 F 800 o f
+(18) h
+R
+
+S
+34456 -9980 M
+/Times-Roman-ISOLatin1 F 800 o f
+(24) h
+R
+
+S
+34456 -11579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(49) h
+R
+
+S
+34456 -13095 M
+/Times-Roman-ISOLatin1 F 800 o f
+(72) h
+R
+
+S
+36425 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(11) h
+R
+
+S
+38326 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(10) h
+R
+
+S
+40228 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(16) h
+R
+
+S
+42198 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(24) h
+R
+
+S
+44032 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(40) h
+R
+
+S
+45933 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(51) h
+R
+
+S
+47835 -2062 M
+/Times-Roman-ISOLatin1 F 800 o f
+(61) h
+R
+
+S
+36425 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(12) h
+R
+
+S
+36425 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(13) h
+R
+
+S
+36425 -6778 M
+/Times-Roman-ISOLatin1 F 800 o f
+(17) h
+R
+
+S
+36425 -8380 M
+/Times-Roman-ISOLatin1 F 800 o f
+(22) h
+R
+
+S
+36425 -9980 M
+/Times-Roman-ISOLatin1 F 800 o f
+(35) h
+R
+
+S
+36425 -11579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(64) h
+R
+
+S
+36425 -13095 M
+/Times-Roman-ISOLatin1 F 800 o f
+(92) h
+R
+
+S
+38326 -3750 M
+/Times-Roman-ISOLatin1 F 800 o f
+(14) h
+R
+
+S
+38326 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(16) h
+R
+
+S
+38326 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(22) h
+R
+
+S
+38326 -8296 M
+/Times-Roman-ISOLatin1 F 800 o f
+(37) h
+R
+
+S
+38326 -9982 M
+/Times-Roman-ISOLatin1 F 800 o f
+(55) h
+R
+
+S
+38326 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(78) h
+R
+
+S
+38326 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(95) h
+R
+
+S
+40228 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(19) h
+R
+
+S
+40228 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(24) h
+R
+
+S
+40228 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(29) h
+R
+
+S
+40228 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(56) h
+R
+
+S
+40228 -9898 M
+/Times-Roman-ISOLatin1 F 800 o f
+(64) h
+R
+
+S
+40228 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(87) h
+R
+
+S
+40228 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(98) h
+R
+
+S
+42198 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(26) h
+R
+
+S
+42198 -5262 M
+/Times-Roman-ISOLatin1 F 800 o f
+(40) h
+R
+
+S
+42198 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(51) h
+R
+
+S
+42198 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(68) h
+R
+
+S
+42198 -9982 M
+/Times-Roman-ISOLatin1 F 800 o f
+(81) h
+R
+
+S
+42198 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(103) h
+R
+
+S
+42198 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(112) h
+R
+
+S
+44032 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(58) h
+R
+
+S
+44032 -5262 M
+/Times-Roman-ISOLatin1 F 800 o f
+(57) h
+R
+
+S
+44032 -6781 M
+/Times-Roman-ISOLatin1 F 800 o f
+(87) h
+R
+
+S
+44032 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(109) h
+R
+
+S
+44032 -9982 M
+/Times-Roman-ISOLatin1 F 800 o f
+(104) h
+R
+
+S
+44032 -11582 M
+/Times-Roman-ISOLatin1 F 800 o f
+(121) h
+R
+
+S
+44032 -13013 M
+/Times-Roman-ISOLatin1 F 800 o f
+(100) h
+R
+
+S
+45933 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(60) h
+R
+
+S
+45933 -5262 M
+/Times-Roman-ISOLatin1 F 800 o f
+(69) h
+R
+
+S
+45933 -6779 M
+/Times-Roman-ISOLatin1 F 800 o f
+(80) h
+R
+
+S
+45933 -8381 M
+/Times-Roman-ISOLatin1 F 800 o f
+(103) h
+R
+
+S
+45933 -9981 M
+/Times-Roman-ISOLatin1 F 800 o f
+(113) h
+R
+
+S
+45933 -11581 M
+/Times-Roman-ISOLatin1 F 800 o f
+(120) h
+R
+
+S
+45933 -13096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(103) h
+R
+
+S
+47835 -3662 M
+/Times-Roman-ISOLatin1 F 800 o f
+(55) h
+R
+
+S
+47835 -5261 M
+/Times-Roman-ISOLatin1 F 800 o f
+(56) h
+R
+
+S
+47835 -6778 M
+/Times-Roman-ISOLatin1 F 800 o f
+(62) h
+R
+
+S
+47835 -8294 M
+/Times-Roman-ISOLatin1 F 800 o f
+(77) h
+R
+
+S
+47835 -9980 M
+/Times-Roman-ISOLatin1 F 800 o f
+(92) h
+R
+
+S
+47835 -11579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(101) h
+R
+
+S
+47835 -13095 M
+/Times-Roman-ISOLatin1 F 800 o f
+(99) h
+R
+
+S
+37419 -15381 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(c\)  quantization table) h
+R
+
+S
+1668 -18096 M
+/Times-Roman-ISOLatin1 F 798 o f
+(15) h
+R
+
+
+S
+1668 -19695 M
+/Times-Roman-ISOLatin1 F 796 o f
+(\2552) h
+R
+
+S
+1668 -21296 M
+/Times-Roman-ISOLatin1 F 796 o f
+(\2551) h
+R
+
+S
+1858 -22812 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+1858 -24412 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+1858 -26013 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+1858 -27613 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+1858 -29130 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+3827 -18096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+5536 -18096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551) h
+R
+
+S
+7630 -18096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+9600 -18096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+11434 -18096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+13335 -18096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+15237 -18096 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+3635 -19695 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551) h
+R
+
+S
+3635 -21296 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\2551) h
+R
+
+S
+3827 -22812 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+3827 -24412 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+3827 -26013 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+3827 -27613 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+3827 -29130 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+5728 -19781 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+5728 -21296 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+5728 -22813 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+5728 -24330 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+5728 -26015 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+5728 -27614 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+5728 -29131 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+7630 -19695 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+7630 -21296 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+7630 -22813 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+7630 -24413 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+7630 -25928 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+7630 -27614 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+7630 -29131 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+9600 -19695 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+9600 -21297 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+9600 -22813 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+9600 -24413 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+9600 -26015 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+9600 -27614 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+9600 -29131 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+11434 -19695 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+11434 -21297 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+11434 -22814 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+11434 -24413 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+11434 -26015 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+11434 -27615 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+11434 -29045 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+13335 -19695 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+13335 -21297 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+13335 -22813 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+13335 -24413 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+13335 -26014 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+13335 -27614 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+13335 -29131 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+15237 -19695 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+15237 -21296 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+15237 -22812 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+15237 -24329 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+15237 -26013 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+15237 -27613 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+15237 -29130 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+3927 -31436 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(d\)  normalized quantized) h
+R
+
+S
+19139 -31500 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(e\)  denormalized quantized) h
+R
+
+S
+34201 -18169 M
+/Times-Roman-ISOLatin1 F 800 o f
+(144) h
+R
+
+
+S
+34201 -19770 M
+/Times-Roman-ISOLatin1 F 800 o f
+(148) h
+R
+
+S
+34201 -21372 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+34201 -22887 M
+/Times-Roman-ISOLatin1 F 800 o f
+(160) h
+R
+
+S
+34201 -24488 M
+/Times-Roman-ISOLatin1 F 800 o f
+(163) h
+R
+
+S
+34201 -26088 M
+/Times-Roman-ISOLatin1 F 800 o f
+(163) h
+R
+
+S
+34201 -27688 M
+/Times-Roman-ISOLatin1 F 800 o f
+(160) h
+R
+
+S
+34201 -29204 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+36170 -18169 M
+/Times-Roman-ISOLatin1 F 800 o f
+(146) h
+R
+
+S
+38071 -18169 M
+/Times-Roman-ISOLatin1 F 800 o f
+(149) h
+R
+
+S
+39973 -18169 M
+/Times-Roman-ISOLatin1 F 800 o f
+(152) h
+R
+
+S
+41943 -18169 M
+/Times-Roman-ISOLatin1 F 800 o f
+(154) h
+R
+
+S
+43777 -18169 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+45678 -18169 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+47580 -18169 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+36170 -19770 M
+/Times-Roman-ISOLatin1 F 800 o f
+(150) h
+R
+
+S
+36170 -21372 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+36170 -22887 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+36170 -24488 M
+/Times-Roman-ISOLatin1 F 800 o f
+(163) h
+R
+
+S
+36170 -26088 M
+/Times-Roman-ISOLatin1 F 800 o f
+(164) h
+R
+
+S
+36170 -27688 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+36170 -29204 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+38071 -19856 M
+/Times-Roman-ISOLatin1 F 800 o f
+(152) h
+R
+
+S
+38071 -21372 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+38071 -22888 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+38071 -24405 M
+/Times-Roman-ISOLatin1 F 800 o f
+(164) h
+R
+
+S
+38071 -26090 M
+/Times-Roman-ISOLatin1 F 800 o f
+(164) h
+R
+
+S
+38071 -27689 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+38071 -29206 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+39973 -19770 M
+/Times-Roman-ISOLatin1 F 800 o f
+(154) h
+R
+
+S
+39973 -21372 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+39973 -22888 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+39973 -24489 M
+/Times-Roman-ISOLatin1 F 800 o f
+(163) h
+R
+
+S
+39973 -26003 M
+/Times-Roman-ISOLatin1 F 800 o f
+(164) h
+R
+
+S
+39973 -27689 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+39973 -29206 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+41943 -19770 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+41943 -21373 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+41943 -22888 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+41943 -24489 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+41943 -26090 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+41943 -27689 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+41943 -29206 M
+/Times-Roman-ISOLatin1 F 800 o f
+(162) h
+R
+
+S
+43777 -19770 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+43777 -21373 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+43777 -22889 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+43777 -24489 M
+/Times-Roman-ISOLatin1 F 800 o f
+(160) h
+R
+
+S
+43777 -26090 M
+/Times-Roman-ISOLatin1 F 800 o f
+(160) h
+R
+
+S
+43777 -27690 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+43777 -29122 M
+/Times-Roman-ISOLatin1 F 800 o f
+(161) h
+R
+
+S
+45678 -19770 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+45678 -21373 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+45678 -22888 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+45678 -24489 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+45678 -26089 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+45678 -27689 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+45678 -29206 M
+/Times-Roman-ISOLatin1 F 800 o f
+(159) h
+R
+
+S
+47580 -19770 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+47580 -21372 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+47580 -22887 M
+/Times-Roman-ISOLatin1 F 800 o f
+(155) h
+R
+
+S
+47580 -24402 M
+/Times-Roman-ISOLatin1 F 800 o f
+(156) h
+R
+
+S
+47580 -26088 M
+/Times-Roman-ISOLatin1 F 800 o f
+(157) h
+R
+
+S
+47580 -27688 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+47580 -29204 M
+/Times-Roman-ISOLatin1 F 800 o f
+(158) h
+R
+
+S
+34861 -31630 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(f\)  reconstructed image samples) h
+R
+
+S
+16167 -34835 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 10.    DCT and Quantization Examples) h
+R
+
+S
+17704 -17741 M
+/Times-Roman-ISOLatin1 F 800 o f
+(240) h
+R
+
+
+S
+17703 -19304 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\25524) h
+R
+
+S
+17703 -20869 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\25514) h
+R
+
+S
+18087 -22350 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+18087 -23914 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+18087 -25479 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+18087 -27042 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+18087 -28525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+20056 -17741 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+21573 -17741 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\25510) h
+R
+
+S
+23859 -17741 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+25829 -17741 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+27663 -17741 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+29564 -17741 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+31466 -17741 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+19672 -19304 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\25512) h
+R
+
+S
+19672 -20869 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\25513) h
+R
+
+S
+20056 -22350 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+20056 -23914 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+20056 -25479 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+20056 -27042 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+20056 -28525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+21957 -19388 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+21957 -20869 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+21957 -22351 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+21957 -23833 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+21957 -25481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+21957 -27043 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+21957 -28526 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+23859 -19304 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+23859 -20869 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+23859 -22351 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+23859 -23915 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+23859 -25396 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+23859 -27043 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+23859 -28526 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+25829 -19304 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+25829 -20870 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+25829 -22351 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+25829 -23915 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+25829 -25481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+25829 -27043 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+25829 -28526 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+27663 -19304 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+27663 -20870 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+27663 -22352 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+27663 -23915 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+27663 -25481 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+27663 -27044 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+27663 -28443 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+29564 -19304 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+29564 -20870 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+29564 -22351 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+29564 -23915 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+29564 -25480 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+29564 -27043 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+29564 -28526 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+31466 -19304 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+31466 -20869 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+31466 -22350 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+31466 -23832 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+31466 -25479 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+31466 -27042 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+31466 -28525 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+5462 -32484 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(coefficients) h
+R
+
+S
+20706 -32581 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(coefficients) h
+R
+
+R
+
+
+R
+R
+
+S
+30200 -75546 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(12) h
+R
+
+showpage
+$P e
+
+%%Page: 13 13
+/$P a D
+g N
+0 79200 T
+S
+S
+7200 -2700 T
+N
+0 G
+300 -1200 M
+-7200 2700 T
+R
+
+S
+7200 -74700 T
+N
+0 G
+300 -1200 M
+-7200 74700 T
+R
+
+R
+S
+7172 -7467 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+153.2 0 32 (The VLIs specified in  [2] are related to the two's) W
+300 -2150 M
+(complement representation. They  are:) h
+300 -3250 M
+2100 -4350 M
+(\(3\)) h
+5739 -4350 M
+(11) h
+2100 -5450 M
+(\(\2552\)) h
+5739 -5450 M
+(01) h
+2100 -6550 M
+(\(\2551\) ) h
+5739 -6550 M
+(0) h
+300 -7650 M
+300 -8750 M
+40.2 0 32 (Thus, the bit\255stream for this 8x8 example block is as) W
+300 -9850 M
+108.3 0 32 (follows.  Note that 31 bits are required to represent) W
+300 -10950 M
+120.8 0 32 (64 coefficients, which achieves compression of just) W
+300 -12050 M
+(under 0.5 bits/sample:) h
+300 -13150 M
+2100 -14250 M
+( 0111111011010000000001110001010 ) h
+2100 -15350 M
+300 -16450 M
+300 -17550 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1000 o f
+(7.4  Other DCT Sequential Codecs) h
+300 -18650 M
+300 -19750 M
+/Times-Roman-ISOLatin1 F 1000 o f
+246.4 0 32 (The structure of the 12\255bit DCT sequential codec) W
+300 -20850 M
+106.8 0 32 (with Huffman coding is a straightforward extension) W
+300 -21950 M
+120.7 0 32 (of the entropy coding method described previously.) W
+300 -23050 M
+104.6 0 32 (Quantized DCT coefficients can be 4 bits larger, so) W
+300 -24150 M
+433.6 0 32 (the SIZE and AMPLITUDE information extend) W
+300 -25250 M
+46.5 0 32 (accordingly.  DCT sequential with arithmetic coding) W
+300 -26350 M
+(is described in detail in [2].) h
+300 -27450 M
+300 -28550 M
+300 -29800 M
+/Times-Bold-ISOLatin1 F 1200 o f
+(8  DCT Progressive Mode) h
+300 -31550 M
+/Times-Roman-ISOLatin1 F 1000 o f
+87.6 0 32 (The DCT progressive mode of operation consists of) W
+300 -32650 M
+8.1 0 32 (the same FDCT and Quantization steps \(from section) W
+300 -33750 M
+94.7 0 32 (4\) that are used by DCT sequential mode.  The key) W
+300 -34850 M
+95.9 0 32 (difference is that each image component is encoded) W
+300 -35950 M
+133.5 0 32 (in multiple scans rather than in a single scan.  The) W
+300 -37050 M
+32.4 0 32 (first scan\(s\) encode a rough but recognizable version) W
+300 -38150 M
+225.9 0 32 (of the image which can be transmitted quickly in) W
+300 -39250 M
+202.4 0 32 (comparison to the total transmission time, and are) W
+300 -40350 M
+52.6 0 32 (refined by succeeding scans until reaching a level of) W
+300 -41450 M
+764.0 0 32 (picture quality that was established by the) W
+300 -42550 M
+(quantization tables.) h
+300 -43650 M
+300 -44750 M
+643.1 0 32 (To achieve this requires the addition of an) W
+300 -45850 M
+349.6 0 32 (image\255sized buffer memory at the output of the) W
+300 -46950 M
+94.3 0 32 (quantizer, before the input to entropy encoder.  The) W
+300 -48050 M
+37.3 0 32 (buffer memory must be of sufficient size to store the) W
+300 -49150 M
+60.1 0 32 (image as quantized DCT coefficients, each of which) W
+300 -50250 M
+101.0 0 32 (\(if stored straightforwardly\) is 3 bits larger than the) W
+300 -51350 M
+229.6 0 32 (source image samples.  After each block of DCT) W
+300 -52450 M
+639.0 0 32 (coefficients is quantized, it is stored in the) W
+300 -53550 M
+40.2 0 32 (coefficient buffer memory. The buffered coefficients) W
+300 -54650 M
+(are then partially encoded in each of multiple scans.) h
+300 -55750 M
+300 -56850 M
+151.3 0 32 (There are two complementary methods by which a) W
+300 -57950 M
+0.4 0 32 (block of quantized DCT coefficients may be partially) W
+300 -59050 M
+635.3 0 32 (encoded.  First, only a specified ) W
+635.3 0 32 (\026) W
+635.3 0 32 (band) W
+635.3 0 32 (\027) W
+635.3 0 32 ( of) W
+300 -60150 M
+431.5 0 32 (coefficients from the zig\255zag sequence need be) W
+300 -61250 M
+292.0 0 32 (encoded within a given scan.  This procedure is) W
+300 -62350 M
+595.6 0 32 (called ) W
+595.6 0 32 (\026) W
+595.6 0 32 (spectral selection,) W
+595.6 0 32 (\027) W
+595.6 0 32 ( because each band) W
+300 -63450 M
+51.5 0 32 (typically contains coefficients which occupy a lower) W
+-7172 7467 T
+R
+
+S
+32040 -7170 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+119.7 0 32 (or higher part of the spatial\255frequency spectrum for) W
+300 -2150 M
+31.4 0 32 (that 8x8 block.  Secondly, the coefficients within the) W
+300 -3250 M
+392.8 0 32 (current band need not be encoded to their full) W
+300 -4350 M
+389.5 0 32 (\(quantized\) accuracy in a given scan.  Upon a) W
+300 -5450 M
+204.0 0 32 (coefficient's first encoding, the N most significant) W
+300 -6550 M
+64.3 0 32 (bits can be encoded first, where N is specifiable.  In) W
+300 -7650 M
+7.1 0 32 (subsequent scans, the less significant bits can then be) W
+300 -8750 M
+426.7 0 32 (encoded.  This procedure is called ``successive) W
+300 -9850 M
+435.7 0 32 (approximation.''  Both procedures can be used) W
+300 -10950 M
+(separately, or mixed in flexible combinations.) h
+300 -12050 M
+300 -30888 M
+/Times-Roman-ISOLatin1 F 1000 o f
+116.0 0 32 (Some intuition for spectral selection and successive) W
+300 -31988 M
+48.9 0 32 (approximation can be obtained from Figure 11.  The) W
+300 -33088 M
+578.4 0 32 (quantized DCT coefficient information can be) W
+300 -34188 M
+247.6 0 32 (viewed as a rectangle for which the axes are the) W
+300 -35288 M
+570.2 0 32 (DCT coefficients \(in zig\255zag order\) and their) W
+300 -36388 M
+37.2 0 32 (amplitudes.  Spectral selection slices the information) W
+300 -37488 M
+199.2 0 32 (in one dimension and successive approximation in) W
+300 -38588 M
+(the other.) h
+300 -39688 M
+300 -40788 M
+300 -42038 M
+/Times-Bold-ISOLatin1 F 1200 o f
+(9  Hierarchical Mode of Operation) h
+300 -43788 M
+/Times-Roman-ISOLatin1 F 1000 o f
+556.4 0 32 (The hierarchical mode provides a ) W
+556.4 0 32 (\026) W
+556.4 0 32 (pyramidal) W
+556.4 0 32 (\027) W
+300 -44888 M
+170.9 0 32 (encoding of an image at multiple resolutions, each) W
+300 -45988 M
+63.7 0 32 (differing in resolution from its adjacent encoding by) W
+300 -47088 M
+204.1 0 32 (a factor of two in either the horizontal or vertical) W
+300 -48188 M
+97.6 0 32 (dimension or both.  The encoding procedure can be) W
+300 -49288 M
+(summarized as follows:) h
+300 -50388 M
+300 -51488 M
+(1\)) h
+2100 -51488 M
+214.0 0 32 (Filter and down\255sample the original image by) W
+2100 -52588 M
+237.0 0 32 (the desired number of multiples of 2 in each) W
+2100 -53688 M
+(dimension.) h
+2100 -54788 M
+300 -55888 M
+(2\)) h
+2100 -55888 M
+29.0 0 32 (Encode this reduced\255size image using one of the) W
+2100 -56988 M
+251.2 0 32 (sequential DCT, progressive DCT, or lossless) W
+2100 -58088 M
+(encoders described previously.) h
+2100 -59188 M
+300 -60288 M
+(3\)) h
+2100 -60288 M
+629.6 0 32 (Decode this reduced\255size image and then) W
+2100 -61388 M
+214.0 0 32 (interpolate and up\255sample it by 2 horizontally) W
+2100 -62488 M
+1286.3 0 32 (and/or vertically, using the identical) W
+2100 -63588 M
+(interpolation filter which the receiver must use.) h
+-32040 7170 T
+S
+N
+S
+32282 -37308 21475 17738 @ I N
+32282 -19570 T
+N
+S
+3610 -15064 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Table 3.  Baseline Entropy Coding) h
+R
+
+
+S
+7350 -16502 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Symbol\2552 Structure) h
+R
+
+S
+4858 -3655 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(1) h
+R
+
+
+S
+4858 -4709 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(2) h
+R
+
+S
+4858 -5764 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(3) h
+R
+
+S
+4858 -6722 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(4) h
+R
+
+S
+4858 -7777 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(5) h
+R
+
+S
+4858 -8832 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(6) h
+R
+
+S
+4858 -9791 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(7) h
+R
+
+S
+4858 -10846 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(8) h
+R
+
+S
+4858 -11804 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(9) h
+R
+
+S
+4378 -12859 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(10) h
+R
+
+S
+11665 -3655 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\2551,1) h
+R
+
+S
+10610 -4709 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\2553,\2552,2,3) h
+R
+
+S
+10418 -5764 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\2557..\2554,4..7) h
+R
+
+S
+9843 -6722 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\25515..\2558,8..15) h
+R
+
+S
+9268 -7777 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\25531..\25516,16..31) h
+R
+
+S
+9268 -8832 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\25563..\25532,32..63) h
+R
+
+S
+8692 -9791 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\255127..\25564,64..127) h
+R
+
+S
+8214 -10846 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\255255..\255128,128..255) h
+R
+
+S
+8214 -11804 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\255511..\255256,256..511) h
+R
+
+S
+7638 -12859 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(\2551023..\255512,512..1023) h
+R
+
+S
+2556 -13507 17736 12745 @
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+2679.00 -2454.00 M
+20333.00 -2454.00 L
+S
+50 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+3889 -2073 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(SIZE) h
+R
+
+S
+9354 -2073 M
+/Times-Roman-ISOLatin1 F 1100 o f
+(AMPLITUDE) h
+R
+
+R
+
+
+R
+R
+
+S
+30008 -75738 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(13) h
+R
+
+showpage
+$P e
+
+%%Page: 14 14
+/$P a D
+g N
+0 79200 T
+S
+S
+7200 -2700 T
+N
+0 G
+300 -1200 M
+-7200 2700 T
+R
+
+S
+7200 -74700 T
+N
+0 G
+300 -1200 M
+-7200 74700 T
+R
+
+R
+S
+7152 -59314 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+(4\)) h
+2100 -1050 M
+7.9 0 32 (Use this up\255sampled image as a prediction of the) W
+2100 -2150 M
+505.7 0 32 (original at this resolution, and encode the) W
+2100 -3250 M
+307.0 0 32 (difference image using one of the sequential) W
+2100 -4350 M
+351.4 0 32 (DCT, progressive DCT, or lossless encoders) W
+2100 -5450 M
+(described previously.) h
+2100 -6550 M
+300 -7650 M
+(5\)) h
+2100 -7650 M
+16.1 0 32 (Repeat steps 3\) and 4\) until the full resolution of) W
+2100 -8750 M
+(the image has been encoded.) h
+2100 -9850 M
+300 -10950 M
+75.1 0 32 (The encoding in steps 2\) and 4\) must be done using) W
+300 -12050 M
+144.8 0 32 (only DCT\255based processes, only lossless processes,) W
+-7152 59314 T
+R
+
+S
+32040 -59325 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+32.1 0 32 (or DCT\255based processes with a final lossless process) W
+300 -2150 M
+(for each component.) h
+300 -3250 M
+300 -4350 M
+292.0 0 32 (Hierarchical encoding is useful in applications in) W
+300 -5450 M
+10.8 0 32 (which a very high resolution image must be accessed) W
+300 -6550 M
+243.3 0 32 (by a lower\255resolution display.  An example is an) W
+300 -7650 M
+16.3 0 32 (image scanned and compressed at high resolution for) W
+300 -8750 M
+218.6 0 32 (a very high\255quality printer, where the image must) W
+300 -9850 M
+357.1 0 32 (also be displayed on a low\255resolution PC video) W
+300 -10950 M
+(screen.) h
+300 -12050 M
+-32040 59325 T
+R
+
+S
+7478 -5752 T
+N
+S
+0 -55990 47170 55990 @
+R
+0 G
+300 -1050 M
+300 -55560 M
+S
+0 -55990 47170 55990 @
+R
+-7478 5752 T
+S
+N
+S
+7910 -60266 46306 53114 @ I N
+7910 -7152 T
+N
+S
+N
+28051.00 -26485.00 M
+29810.00 -26485.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+29355.00 -26739.00 M
+29899.00 -26485.00 L
+29355.00 -26232.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+27572 -26841 1434 854 @
+S
+0.00 G - + * E
+R
+R
+
+S
+N
+7951.00 -5609.00 M
+7951.00 -7452.00 L
+S
+150 w
+0 c
+0 j
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+10071.00 -2868.00 M
+12373.00 -2107.00 L
+S
+150 w
+0 c
+0 j
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+27673 -24959 2034 3299 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+28111.00 -24989.00 M
+28111.00 -21690.00 L
+34561.00 -16951.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+28586.00 -24989.00 M
+28586.00 -21690.00 L
+35034.00 -16951.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+29170.00 -24989.00 M
+29170.00 -21713.00 L
+35515.00 -17004.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+27752.00 -21655.00 M
+34156.00 -16950.00 L
+36061.00 -17005.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+29765.00 -24993.00 M
+36112.00 -19542.00 L
+36112.00 -17114.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+27936 -34013 657 3168 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+28014.00 -30789.00 M
+34616.00 -26319.00 L
+35158.00 -26319.00 L
+28609.00 -30789.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+35159.00 -26369.00 M
+35159.00 -29208.00 L
+28598.00 -34045.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+28070.00 -21382.00 M
+30187.00 -21382.00 L
+30187.00 -24611.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+28491.00 -21051.00 M
+30609.00 -21051.00 L
+30609.00 -24282.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+29073.00 -33616.00 M
+29073.00 -30462.00 L
+28491.00 -30462.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+29496.00 -33297.00 M
+29496.00 -30145.00 L
+28915.00 -30145.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+31982.00 -21620.00 M
+33692.00 -20185.00 L
+S
+150 w
+0 c
+0 j
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+31469.00 -29792.00 M
+33236.00 -28348.00 L
+S
+150 w
+0 c
+0 j
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+28254 -45069 659 3261 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+28333.00 -41749.00 M
+34935.00 -37152.00 L
+35477.00 -37152.00 L
+28927.00 -41749.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+35477.00 -37203.00 M
+35477.00 -40126.00 L
+28915.00 -45102.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+29337.00 -44777.00 M
+29337.00 -41405.00 L
+28861.00 -41405.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+29707.00 -44452.00 M
+29707.00 -41205.00 L
+29231.00 -41205.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+31527.00 -41856.00 M
+33350.00 -40419.00 L
+S
+150 w
+0 c
+0 j
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+6408 -35969 4044 1320 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6459.00 -34679.00 M
+13019.00 -30105.00 L
+16445.00 -30105.00 L
+10505.00 -34652.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6901.00 -34370.00 M
+10756.00 -34370.00 L
+10756.00 -35713.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7363.00 -34064.00 M
+11218.00 -34064.00 L
+11218.00 -35455.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+16436.00 -30163.00 M
+16436.00 -31362.00 L
+10508.00 -35947.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6487.00 -35060.00 M
+10508.00 -35060.00 L
+16488.00 -30526.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6487.00 -35530.00 M
+10508.00 -35530.00 L
+16488.00 -30994.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+8585 -1604 M
+/Times-Roman-ISOLatin1 F 800 o f
+(Blocks) h
+R
+
+S
+4074 -6206 M
+/Times-Roman-ISOLatin1 F 800 o f
+(DCT) h
+R
+
+S
+3023 -6976 M
+/Times-Roman-ISOLatin1 F 800 o f
+(coefficients) h
+R
+
+S
+16940 -8844 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(a\) image component) h
+R
+
+S
+18710 -9709 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(as quantized) h
+R
+
+S
+17936 -10669 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(DCT coefficients) h
+R
+
+S
+27584 -26840 M
+/Times-Roman-ISOLatin1 F 800 o f
+(MSB) h
+R
+
+S
+27853 -28363 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+0.0 358.0 m
+(nd) h
+0 -358.0 m
+( scan) h
+R
+
+S
+6859 -20758 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+0.0 358.0 m
+(st) h
+0 -358.0 m
+( scan) h
+R
+
+S
+6408 -45081 4044 1293 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6459.00 -43816.00 M
+13019.00 -39334.00 L
+16445.00 -39334.00 L
+10505.00 -43791.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6901.00 -43493.00 M
+10803.00 -43493.00 L
+10803.00 -44709.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7476.00 -43156.00 M
+11377.00 -43156.00 L
+11377.00 -44424.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+10870.00 -42266.00 M
+12410.00 -40955.00 L
+S
+150 w
+0 c
+0 j
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+16436.00 -39388.00 M
+16436.00 -40562.00 L
+10508.00 -45061.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6487.00 -44192.00 M
+10508.00 -44192.00 L
+16488.00 -39744.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6487.00 -44650.00 M
+10508.00 -44650.00 L
+16488.00 -40203.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+6533 -37579 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+0.0 358.0 m
+(rd) h
+0 -358.0 m
+( scan) h
+R
+
+S
+27519 -36504 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+0.0 358.0 m
+(rd) h
+0 -358.0 m
+( scan) h
+R
+
+S
+27906 -46729 M
+/Times-Roman-ISOLatin1 F 800 o f
+(\(LSB\)) h
+R
+
+S
+27906 -47951 M
+/Times-Roman-ISOLatin1 F 800 o f
+(6) h
+0.0 358.0 m
+(th) h
+0 -358.0 m
+( scan) h
+R
+
+S
+32477 -24147 M
+/Times-Roman-ISOLatin1 F 800 o f
+(sending) h
+R
+
+S
+14094 -34924 M
+/Times-Roman-ISOLatin1 F 800 o f
+(sending) h
+R
+
+S
+14011 -43670 M
+/Times-Roman-ISOLatin1 F 800 o f
+(sending) h
+R
+
+S
+32059 -44171 M
+/Times-Roman-ISOLatin1 F 800 o f
+(sending) h
+R
+
+S
+31912 -32940 M
+/Times-Roman-ISOLatin1 F 800 o f
+(sending) h
+R
+
+S
+N
+10629.00 -10527.00 M
+11896.00 -10527.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+11441.00 -10781.00 M
+11985.00 -10527.00 L
+11441.00 -10274.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+31350.00 -24176.00 M
+33120.00 -22714.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+32930.00 -23199.00 M
+33188.00 -22658.00 L
+32607.00 -22808.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+30555.00 -33224.00 M
+32324.00 -31762.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+32135.00 -32247.00 M
+32392.00 -31706.00 L
+31811.00 -31857.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+30662.00 -44524.00 M
+32429.00 -43059.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+32240.00 -43545.00 M
+32497.00 -43003.00 L
+31917.00 -43155.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+12784.00 -43931.00 M
+14621.00 -42531.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+14413.00 -43008.00 M
+14692.00 -42477.00 L
+14106.00 -42605.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+13154.00 -34829.00 M
+14925.00 -33364.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+14736.00 -33850.00 M
+14993.00 -33308.00 L
+14413.00 -33459.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+12784.00 -18057.00 M
+14555.00 -16594.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+14365.00 -17079.00 M
+14623.00 -16538.00 L
+14042.00 -16688.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+10203.00 -6420.00 M
+11270.00 -6420.00 L
+S
+75 w
+0 c
+0 j
+2 i
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+10754.00 -5815.00 M
+10754.00 -7112.00 L
+S
+75 w
+0 c
+0 j
+2 i
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+7797 -4435 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+7806 -5153 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+7651 -8208 M
+/Times-Roman-ISOLatin1 F 800 o f
+(62) h
+R
+
+S
+7652 -8936 M
+/Times-Roman-ISOLatin1 F 800 o f
+(63) h
+R
+
+S
+8299 -3638 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+9159 -3368 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+9109 -9691 M
+/Times-Roman-ISOLatin1 F 800 o f
+(7) h
+R
+
+S
+9960 -9762 M
+/Times-Roman-ISOLatin1 F 800 o f
+(6) h
+R
+
+S
+13016 -9692 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+13835 -9692 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+8804 -10813 M
+/Times-Roman-ISOLatin1 F 800 o f
+(MSB) h
+R
+
+S
+12578 -10813 M
+/Times-Roman-ISOLatin1 F 800 o f
+(LSB) h
+R
+
+S
+5934 -18462 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+27733 -25901 M
+/Times-Roman-ISOLatin1 F 800 o f
+(7) h
+R
+
+S
+28232 -25901 M
+/Times-Roman-ISOLatin1 F 800 o f
+(6) h
+R
+
+S
+28729 -25900 M
+/Times-Roman-ISOLatin1 F 800 o f
+(5) h
+R
+
+S
+29338 -25901 M
+/Times-Roman-ISOLatin1 F 800 o f
+(4) h
+R
+
+S
+28157 -34924 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+5754 -35249 M
+/Times-Roman-ISOLatin1 F 800 o f
+(3) h
+R
+
+S
+5754 -35719 M
+/Times-Roman-ISOLatin1 F 800 o f
+(4) h
+R
+
+S
+5754 -36191 M
+/Times-Roman-ISOLatin1 F 800 o f
+(5) h
+R
+
+S
+5559 -44264 M
+/Times-Roman-ISOLatin1 F 800 o f
+(61) h
+R
+
+S
+5559 -44889 M
+/Times-Roman-ISOLatin1 F 800 o f
+(62) h
+R
+
+S
+5560 -45516 M
+/Times-Roman-ISOLatin1 F 800 o f
+(63) h
+R
+
+S
+28498 -46101 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+N
+9232.00 -2405.00 M
+12267.00 -1312.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+11925.00 -1704.00 M
+12351.00 -1281.00 L
+11753.00 -1227.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7044.00 -17494.00 M
+10906.00 -17494.00 L
+10906.00 -18296.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7499.00 -17223.00 M
+11289.00 -17223.00 L
+11289.00 -18060.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+3940 -51149 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(Figure 11.  Spectral Selection and Successive Approximation Methods of 
Progressive Encoding) h
+R
+
+S
+N
+29672.00 -24989.00 M
+29672.00 -21743.00 L
+36017.00 -17076.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+18315.00 -5036.00 M
+20075.00 -4182.00 L
+S
+75 w
+0 c
+0 j
+2 i
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+19098.00 -4110.00 M
+19098.00 -5323.00 L
+S
+75 w
+0 c
+0 j
+2 i
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+14358.00 -3042.00 M
+16000.00 -2471.00 L
+S
+75 w
+0 c
+0 j
+2 i
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+14684.00 -2542.00 M
+15662.00 -2970.00 L
+S
+75 w
+0 c
+0 j
+2 i
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+10224.00 -6462.00 M
+11658.00 -6462.00 L
+S
+75 w
+0 c
+0 j
+2 i
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+10875.00 -5678.00 M
+10875.00 -7319.00 L
+S
+75 w
+0 c
+0 j
+2 i
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+N
+6893.00 -4894.00 M
+6893.00 -7995.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+6640.00 -7540.00 M
+6893.00 -8084.00 L
+7147.00 -7540.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+14019 -17828 M
+/Times-Roman-ISOLatin1 F 800 o f
+(sending) h
+R
+
+S
+7146 -46597 M
+/Times-Roman-ISOLatin1 F 800 o f
+(n) h
+0.0 358.0 m
+(th) h
+0 -358.0 m
+( scan) h
+R
+
+S
+3868 -49347 M
+/Times-Roman-ISOLatin1 F 900 o f
+(c\) progressive encoding: spectral selection) h
+R
+
+S
+22272 -49418 M
+/Times-Roman-ISOLatin1 F 900 o f
+(d\) progressive encoding: successive approximation) h
+R
+
+S
+6761 -39209 M
+/Symbol F 800 o f
+(\267) h
+R
+
+S
+6761 -40349 M
+/Symbol F 800 o f
+(\267) h
+R
+
+S
+6761 -41490 M
+/Symbol F 800 o f
+(\267) h
+R
+
+S
+28181 -38240 M
+/Symbol F 800 o f
+(\267) h
+R
+
+S
+28181 -39379 M
+/Symbol F 800 o f
+(\267) h
+R
+
+S
+28181 -40518 M
+/Symbol F 800 o f
+(\267) h
+R
+
+S
+8608 -8890 5712 5048 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+8480.00 -3864.00 M
+19987.00 -616.00 L
+24607.00 -616.00 L
+14376.00 -3864.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+14339.00 -8897.00 M
+24606.00 -4823.00 L
+24606.00 -751.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+9448.00 -3798.00 M
+20752.00 -618.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+10340.00 -3798.00 M
+21712.00 -553.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+13375.00 -3864.00 M
+23711.00 -552.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+12411.00 -3864.00 M
+22746.00 -552.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+9310.00 -3667.00 M
+14822.00 -3667.00 L
+14822.00 -8565.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+9792.00 -3468.00 M
+15305.00 -3468.00 L
+15305.00 -8366.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+8690.00 -4528.00 M
+14384.00 -4528.00 L
+24606.00 -1214.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+8690.00 -5190.00 M
+14359.00 -5190.00 L
+24537.00 -1878.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+8690.00 -8234.00 M
+14359.00 -8234.00 L
+24606.00 -4194.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+8690.00 -7504.00 M
+14336.00 -7504.00 L
+24537.00 -3533.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+9517.00 -3864.00 M
+9517.00 -8964.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+10413.00 -3864.00 M
+10413.00 -8964.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+13581.00 -3864.00 M
+13581.00 -8964.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+12686.00 -3864.00 M
+12686.00 -8964.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+26725.00 -22712.00 M
+26725.00 -23700.00 L
+S
+150 w
+0 c
+0 j
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+26651 -22398 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+26377 -24313 M
+/Times-Roman-ISOLatin1 F 800 o f
+(62) h
+R
+
+S
+26377 -25040 M
+/Times-Roman-ISOLatin1 F 800 o f
+(63) h
+R
+
+S
+26619 -21752 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+26256 -17201 4043 750 @
+S
+0.00 G - + * E
+R
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+26307.00 -16481.00 M
+32866.00 -11908.00 L
+36293.00 -11908.00 L
+30353.00 -16453.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+30384.00 -17169.00 M
+36306.00 -12642.00 L
+36306.00 -11896.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+26324 -18004 M
+/Times-Roman-ISOLatin1 F 800 o f
+(7 .   .   .   .    0) h
+R
+
+S
+25568 -17191 M
+/Times-Roman-ISOLatin1 F 800 o f
+(0) h
+R
+
+S
+26706 -19382 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+0.0 358.0 m
+(st) h
+0 -358.0 m
+( scan) h
+R
+
+S
+22215 -6305 4985 7815 @
+S
+0.00 G - + * E
+R
+R
+
+S
+17516 -1346 7671 1999 @
+S
+0.00 G - + * E
+R
+R
+
+S
+N
+17439.00 -1330.00 M
+22168.00 -1330.00 L
+22168.00 -5748.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+28685 -9812 4043 3950 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+28684.00 -5898.00 M
+35241.00 -149.00 L
+38669.00 -149.00 L
+32728.00 -5866.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+38633.00 -149.00 M
+38633.00 -3395.00 L
+32803.00 -9738.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+29391.00 -5360.00 M
+33271.00 -5360.00 L
+33271.00 -9272.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+29771.00 -4897.00 M
+33706.00 -4897.00 L
+33706.00 -8811.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+35650.00 -4967.00 M
+36962.00 -3846.00 L
+S
+150 w
+0 c
+0 j
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+27998 -11153 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(\(b\)  Sequential encoding) h
+R
+
+S
+36964 -6785 M
+/Times-Roman-ISOLatin1 F 800 o f
+(sending) h
+R
+
+S
+N
+35852.00 -7340.00 M
+37402.00 -5494.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+37304.00 -6005.00 M
+37459.00 -5426.00 L
+36916.00 -5679.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+33515.00 -3361.00 M
+34771.00 -2174.00 L
+S
+150 w
+0 c
+0 j
+[100 400] 0 d
+0.00 G k
+R
+R
+
+S
+6408 -27700 4044 1319 @
+S
+0.00 G - + * E
+R
+S
+100 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6459.00 -26412.00 M
+13019.00 -21838.00 L
+16445.00 -21838.00 L
+10505.00 -26384.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6901.00 -26103.00 M
+10756.00 -26103.00 L
+10756.00 -27444.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+7363.00 -25797.00 M
+11218.00 -25797.00 L
+11218.00 -27189.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+16436.00 -21894.00 M
+16436.00 -23094.00 L
+10508.00 -27680.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6487.00 -27121.00 M
+10508.00 -27121.00 L
+16488.00 -22585.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+6533 -29311 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+0.0 358.0 m
+(nd) h
+0 -358.0 m
+( scan) h
+R
+
+S
+14094 -26658 M
+/Times-Roman-ISOLatin1 F 800 o f
+(sending) h
+R
+
+S
+N
+13154.00 -26562.00 M
+14925.00 -25096.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+S
+N
+14736.00 -25582.00 M
+14993.00 -25040.00 L
+14413.00 -25191.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+5825 -26910 M
+/Times-Roman-ISOLatin1 F 800 o f
+(1) h
+R
+
+S
+5826 -27665 M
+/Times-Roman-ISOLatin1 F 800 o f
+(2) h
+R
+
+S
+6407 -18554 4044 752 @
+S
+0.00 G - + * E
+R
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+6458.00 -17835.00 M
+13018.00 -13262.00 L
+16444.00 -13262.00 L
+10505.00 -17805.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+S
+N
+10535.00 -18523.00 M
+16459.00 -13996.00 L
+16459.00 -13249.00 L
+S
+75 w
+0 c
+0 j
+2 i
+0.00 G k
+R
+R
+
+R
+
+
+R
+R
+
+S
+29816 -75834 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(14) h
+R
+
+showpage
+$P e
+
+%%Page: 15 15
+/$P a D
+g N
+0 79200 T
+S
+S
+7200 -2700 T
+N
+0 G
+300 -1200 M
+-7200 2700 T
+R
+
+S
+7200 -74700 T
+N
+0 G
+300 -1200 M
+-7200 74700 T
+R
+
+R
+S
+7192 -7189 T
+N
+0 G
+300 -1200 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1200 o f
+(10  Other Aspects of the JPEG Proposal) h
+300 -2950 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+59.4 0 32 (Some key aspects of the proposed standard can only) W
+300 -4050 M
+250.3 0 32 (be mentioned briefly.  Foremost among these are) W
+300 -5150 M
+556.2 0 32 (points concerning the coded representation for) W
+300 -6250 M
+159.0 0 32 (compressed image data specified in addition to the) W
+300 -7350 M
+(encoding and decoding procedures.) h
+300 -8450 M
+300 -9550 M
+203.5 0 32 (Most importantly, an ) W
+/Times-Italic-ISOLatin1 $
+/Times-Italic & P
+/Times-Italic-ISOLatin1 F 1000 o f
+203.5 0 32 (interchange format) W
+/Times-Roman-ISOLatin1 F 1000 o f
+203.5 0 32 ( syntax is) W
+300 -10650 M
+356.2 0 32 (specified which ensures that a JPEG\255compressed) W
+300 -11750 M
+567.6 0 32 (image can be exchanged successfully between) W
+300 -12850 M
+231.8 0 32 (different application environments.  The format is) W
+300 -13950 M
+357.9 0 32 (structured in a consistent way for all modes of) W
+300 -15050 M
+139.5 0 32 (operation.  The interchange format always includes) W
+300 -16150 M
+367.0 0 32 (all quantization and entropy\255coding tables which) W
+300 -17250 M
+(were used to compress the image.) h
+300 -18350 M
+300 -19450 M
+63.5 0 32 (Applications \(and application\255specific standards\) are) W
+300 -20550 M
+423.9 0 32 (the ) W
+423.9 0 32 (\026) W
+423.9 0 32 (users) W
+423.9 0 32 (\027) W
+423.9 0 32 ( of the JPEG standard.  The JPEG) W
+300 -21650 M
+352.0 0 32 (standard imposes no requirement that, within an) W
+300 -22750 M
+315.2 0 32 (application's environment, all or even any tables) W
+300 -23850 M
+222.6 0 32 (must be encoded with the compressed image data) W
+300 -24950 M
+657.5 0 32 (during storage or transmission.  This leaves) W
+300 -26050 M
+532.8 0 32 (applications the freedom to specify default or) W
+300 -27150 M
+103.0 0 32 (referenced tables if they are considered appropriate. ) W
+300 -28250 M
+135.5 0 32 (It also leaves them the responsibility to ensure that) W
+300 -29350 M
+993.3 0 32 (JPEG\255compliant decoders used within their) W
+300 -30450 M
+66.3 0 32 (environment get loaded with the proper tables at the) W
+300 -31550 M
+69.9 0 32 (proper times, and that the proper tables are included) W
+300 -32650 M
+72.0 0 32 (in the interchange format when a compressed image) W
+300 -33750 M
+(is ) h
+(\026) h
+(exported) h
+(\027) h
+( outside the application.) h
+300 -34850 M
+300 -35950 M
+127.3 0 32 (Some of the important applications that are already) W
+300 -37050 M
+301.7 0 32 (in the process of adopting JPEG compression or) W
+300 -38150 M
+226.0 0 32 (have stated their interest in doing so are Adobe's) W
+300 -39250 M
+333.3 0 32 (PostScript language for printing systems [1], the) W
+300 -40350 M
+87.6 0 32 (Raster Content portion of the ISO Office Document) W
+300 -41450 M
+47.2 0 32 (Architecture and Interchange Format [13], the future) W
+300 -42550 M
+185.7 0 32 (CCITT color facsimile standard, and the European) W
+300 -43650 M
+(ETSI videotext standard [10].) h
+300 -44750 M
+300 -45850 M
+300 -47100 M
+/Times-Bold-ISOLatin1 F 1200 o f
+(11  Standardization Schedule) h
+300 -48850 M
+/Times-Roman-ISOLatin1 F 1000 o f
+76.4 0 32 (JPEG's ISO standard will be divided into two parts. ) W
+300 -49950 M
+114.4 0 32 (Part 1 [2] will specify the four modes of operation,) W
+300 -51050 M
+147.4 0 32 (the different codecs specified for those modes, and) W
+300 -52150 M
+423.9 0 32 (the interchange format.  It will also contain a) W
+300 -53250 M
+131.8 0 32 (substantial informational section on implementation) W
+300 -54350 M
+180.8 0 32 (guidelines.  Part 2 [3] will specify the compliance) W
+300 -55450 M
+458.8 0 32 (tests which will determine whether an encoder) W
+300 -56550 M
+433.6 0 32 (implementation, a decoder implementation, or a) W
+300 -57650 M
+618.8 0 32 (JPEG\255compressed image in interchange format) W
+300 -58750 M
+40.1 0 32 (comply with the Part 1 specifications.  In addition to) W
+300 -59850 M
+222.8 0 32 (the ISO documents referenced, the JPEG standard) W
+300 -60950 M
+(will also be issued as CCITT Recommendation T.81.) h
+300 -62050 M
+-7192 7189 T
+R
+
+S
+32040 -7189 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 F 1000 o f
+378.8 0 32 (There are two key balloting phases in the ISO) W
+300 -2150 M
+125.3 0 32 (standardization process: a Committee Draft \(CD\) is) W
+300 -3250 M
+1011.2 0 32 (balloted to determine promotion to Draft) W
+300 -4350 M
+0.3 0 32 (International Standard \(DIS\), and a DIS is balloted to) W
+300 -5450 M
+139.2 0 32 (determine promotion to International Standard \(IS\). ) W
+300 -6550 M
+545.1 0 32 (A CD ballot requires four to six months of) W
+300 -7650 M
+271.0 0 32 (processing, and a DIS ballot requires six to nine) W
+300 -8750 M
+243.1 0 32 (months of processing.  JPEG's Part 1 began DIS) W
+300 -9850 M
+312.6 0 32 (ballot in November 1991, and Part 2 began CD) W
+300 -10950 M
+(ballot in December 1991.) h
+300 -12050 M
+300 -13150 M
+111.3 0 32 (Though there is no guarantee that the first ballot of) W
+300 -14250 M
+3.1 0 32 (each phase will result in promotion to the next, JPEG) W
+300 -15350 M
+5.1 0 32 (achieved promotion of CD Part 1 to DIS Part 1 in the) W
+300 -16450 M
+371.6 0 32 (first ballot.  Moreover, JPEG's DIS Part 1 has) W
+300 -17550 M
+264.5 0 32 (undergone no technical changes \(other than some) W
+300 -18650 M
+23.7 0 32 (minor corrections\) since JPEG's final Working Draft) W
+300 -19750 M
+170.6 0 32 (\(WD\) [14].  Thus, Part 1 has remained unchanged) W
+300 -20850 M
+38.0 0 32 (from the final WD, through CD, and into DIS.  If all) W
+300 -21950 M
+59.0 0 32 (goes well, Part 1 should receive final approval as an) W
+300 -23050 M
+46.2 0 32 (IS in mid\2551992, with Part 2 getting final IS approval) W
+300 -24150 M
+(about nine months later.  ) h
+300 -25250 M
+300 -26350 M
+300 -27600 M
+/Times-Bold-ISOLatin1 F 1200 o f
+(12  Conclusions) h
+300 -29350 M
+/Times-Roman-ISOLatin1 F 1000 o f
+965.5 0 32 (The emerging JPEG continuous\255tone image) W
+300 -30450 M
+17.6 0 32 (compression standard is not a panacea that will solve) W
+300 -31550 M
+190.9 0 32 (the myriad issues which must be addressed before) W
+300 -32650 M
+100.6 0 32 (digital images will be fully integrated within all the) W
+300 -33750 M
+157.3 0 32 (applications that will ultimately benefit from them. ) W
+300 -34850 M
+241.2 0 32 (For example, if two applications cannot exchange) W
+300 -35950 M
+22.8 0 32 (uncompressed images because they use incompatible) W
+300 -37050 M
+190.9 0 32 (color spaces, aspect ratios, dimensions, etc. then a) W
+300 -38150 M
+(common compression method will not help.) h
+300 -39250 M
+300 -40350 M
+100.0 0 32 (However, a great many applications are ) W
+100.0 0 32 (\026) W
+100.0 0 32 (stuck) W
+100.0 0 32 (\027) W
+100.0 0 32 ( be\255) W
+300 -41450 M
+21.4 0 32 (cause of storage or transmission costs, because of ar\255) W
+300 -42550 M
+632.5 0 32 (gument over which \(nonstandard\) compression) W
+300 -43650 M
+114.7 0 32 (method to use, or because VLSI codecs are too ex\255) W
+300 -44750 M
+52.1 0 32 (pensive due to low volumes.  For these applications,) W
+300 -45850 M
+105.8 0 32 (the thorough technical evaluation, testing, selection,) W
+300 -46950 M
+339.0 0 32 (validation, and documentation work which JPEG) W
+300 -48050 M
+153.3 0 32 (committee members have performed is expected to) W
+300 -49150 M
+227.2 0 32 (soon yield an approved international standard that) W
+300 -50250 M
+111.0 0 32 (will withstand the tests of quality and time.  As di\255) W
+300 -51350 M
+100.4 0 32 (verse imaging applications become increasingly im\255) W
+300 -52450 M
+216.8 0 32 (plemented on open networked computing systems,) W
+300 -53550 M
+32.0 0 32 (the ultimate measure of the committee's success will) W
+300 -54650 M
+180.8 0 32 (be when JPEG\255compressed digital images come to) W
+300 -55750 M
+111.8 0 32 (be regarded and even taken for granted as ) W
+111.8 0 32 (\026) W
+111.8 0 32 (just an\255) W
+300 -56850 M
+(other data type,) h
+(\027) h
+( as text and graphics are today.) h
+300 -58250 M
+300 -59350 M
+300 -60450 M
+300 -61550 M
+300 -62650 M
+300 -63750 M
+-32040 7189 T
+R
+
+S
+29912 -75834 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(15) h
+R
+
+showpage
+$P e
+
+%%Page: 16 16
+/$P a D
+g N
+0 79200 T
+S
+S
+7200 -2700 T
+N
+0 G
+300 -1200 M
+-7200 2700 T
+R
+
+S
+7200 -74700 T
+N
+0 G
+300 -1200 M
+-7200 74700 T
+R
+
+R
+S
+7200 -7200 T
+N
+0 G
+300 -1200 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1200 o f
+(For more information) h
+300 -2950 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+114.8 0 32 (Information on how to obtain the ISO JPEG \(draft\)) W
+300 -4050 M
+177.4 0 32 (standards can be obtained by writing the author at) W
+300 -5150 M
+(the following address:) h
+300 -6250 M
+300 -7350 M
+(Digital Equipment Corporation) h
+300 -8450 M
+(146 Main Street,  ML01\2552/U44) h
+300 -9550 M
+(Maynard, MA  01754\2552571) h
+300 -10650 M
+300 -11750 M
+(Internet:   address@hidden) h
+300 -12850 M
+300 -13950 M
+76.5 0 32 (Floppy disks containing uncompressed, compressed,) W
+300 -15050 M
+72.0 0 32 (and reconstructed data for the purpose of informally) W
+300 -16150 M
+956.4 0 32 (validating whether an encoder or decoder) W
+300 -17250 M
+200.2 0 32 (implementation conforms to the proposed standard) W
+300 -18350 M
+488.3 0 32 (are available.  Thanks to the following JPEG) W
+300 -19450 M
+412.3 0 32 (committee member and his company who have) W
+300 -20550 M
+105.4 0 32 (agreed to provide these for a nominal fee on behalf) W
+300 -21650 M
+24.8 0 32 (of the committee until arrangements can be made for) W
+300 -22750 M
+(ISO to provide them:) h
+300 -23850 M
+300 -24950 M
+(Eric Hamilton) h
+300 -26050 M
+(C\255Cube Microsystems) h
+300 -27150 M
+(1778 McCarthy Blvd.) h
+300 -28250 M
+(Milpitas,  CA  95035) h
+300 -29350 M
+300 -30450 M
+300 -31700 M
+/Times-Bold-ISOLatin1 F 1200 o f
+(Acknowledgments) h
+300 -33450 M
+/Times-Roman-ISOLatin1 F 1000 o f
+217.8 0 32 (The following longtime JPEG core members have) W
+300 -34550 M
+52.1 0 32 (spent untold hours \(usually in addition to their ``real) W
+300 -35650 M
+51.3 0 32 (jobs''\) to make this collaborative international effort) W
+300 -36750 M
+60.1 0 32 (succeed.  Each has made specific substantive contri\255) W
+300 -37850 M
+111.1 0 32 (butions to the JPEG proposal:  Aharon Gill \(Zoran,) W
+300 -38950 M
+130.2 0 32 (Israel\), Eric Hamilton \(C\255Cube, USA\), Alain Leger) W
+300 -40050 M
+667.3 0 32 (\(CCETT, France\), Adriaan Ligtenberg \(Storm,) W
+300 -41150 M
+195.4 0 32 (USA\), Herbert Lohscheller \(ANT, Germany\), Joan) W
+300 -42250 M
+88.3 0 32 (Mitchell \(IBM, USA\), Michael Nier \(Kodak, USA\),) W
+300 -43350 M
+211.8 0 32 (Takao Omachi \(NEC, Japan\), William Pennebaker) W
+300 -44450 M
+189.2 0 32 (\(IBM, USA\), Henning Poulsen \(KTAS, Denmark\),) W
+300 -45550 M
+292.5 0 32 (and Jorgen Vaaben \(AutoGraph, Denmark\).  The) W
+300 -46650 M
+153.5 0 32 (leadership efforts of Hiroshi Yasuda \(NTT, Japan\),) W
+300 -47750 M
+97.2 0 32 (the Convenor of JTC1/SC2/WG8 from which JPEG) W
+300 -48850 M
+6.2 0 32 (was spawned, Istvan Sebestyen \(Siemens, Germany\),) W
+300 -49950 M
+278.2 0 32 (the Special Rapporteur from CCITT SGVIII, and) W
+300 -51050 M
+445.0 0 32 (Graham Hudson \(British Telecom U.K.\) former) W
+300 -52150 M
+94.4 0 32 (JPEG chair and founder of the effort which became) W
+300 -53250 M
+34.2 0 32 (JPEG.  The author regrets that space does not permit) W
+300 -54350 M
+111.3 0 32 (recognition of the many other individuals who con\255) W
+300 -55450 M
+(tributed to JPEG's work.) h
+300 -57150 M
+17.6 0 32 (Thanks to Majid Rabbani of Eastman Kodak for pro\255) W
+300 -58250 M
+(viding the example in section 7.3.) h
+300 -59950 M
+24.5 0 32 (The author's role within JPEG has been supported in) W
+300 -61050 M
+121.8 0 32 (a great number of ways by Digital Equipment Cor\255) W
+300 -62150 M
+(poration ) h
+300 -64000 M
+-7200 7200 T
+R
+
+S
+32040 -7200 T
+N
+0 G
+300 -1200 M
+/Times-Bold-ISOLatin1 F 1200 o f
+(References) h
+300 -2950 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(1.) h
+2100 -2950 M
+23.4 0 32 (Adobe Systems Inc. ) W
+/Times-Italic-ISOLatin1 $
+/Times-Italic & P
+/Times-Italic-ISOLatin1 F 1000 o f
+23.4 0 32 (PostScript Language Refer\255) W
+2100 -4050 M
+320.7 0 32 (ence Manual) W
+/Times-Roman-ISOLatin1 F 1000 o f
+320.7 0 32 (.  Second Ed. Addison Wesley,) W
+2100 -5150 M
+(Menlo Park,  Calif. 1990) h
+300 -6850 M
+(2.) h
+2100 -6850 M
+17.4 0 32 (Digital Compression and Coding of Continuous\255) W
+2100 -7950 M
+362.0 0 32 (tone Still Images, Part 1, Requirements and) W
+2100 -9050 M
+168.0 0 32 (Guidelines.  ISO/IEC JTC1 Draft International) W
+2100 -10150 M
+(Standard 10918\2551, Nov. 1991.) h
+300 -11850 M
+(3.) h
+2100 -11850 M
+17.4 0 32 (Digital Compression and Coding of Continuous\255) W
+2100 -12950 M
+181.3 0 32 (tone Still Images, Part 2, Compliance Testing. ) W
+2100 -14050 M
+129.0 0 32 (ISO/IEC JTC1 Committee Draft 10918\2552, Dec.) W
+2100 -15150 M
+(1991.) h
+300 -16850 M
+(4.) h
+2100 -16850 M
+329.2 0 32 (Encoding parameters of digital television for) W
+2100 -17950 M
+140.0 0 32 (studios.  CCIR Recommendations, Recommen\255) W
+2100 -19050 M
+(dation 601, 1982.) h
+300 -20750 M
+(5.) h
+2100 -20750 M
+18.3 0 32 (Howard, P.G., and Vitter, J.S.  New methods for) W
+2100 -21850 M
+445.8 0 32 (lossless image compression using arithmetic) W
+2100 -22950 M
+186.2 0 32 (coding.  Brown University Dept. of Computer) W
+2100 -24050 M
+(Science Tech. Report No. CS\25591\25547, Aug. 1991.) h
+300 -25750 M
+(6.) h
+2100 -25750 M
+68.0 0 32 (Hudson, G.P. The development of photographic) W
+2100 -26850 M
+53.0 0 32 (videotex in the UK. In ) W
+/Times-Italic-ISOLatin1 F 1000 o f
+53.0 0 32 (Proceedings of the IEEE) W
+2100 -27950 M
+243.0 0 32 (Global Telecommunications Conference, IEEE) W
+2100 -29050 M
+(Communication Society,) h
+/Times-Roman-ISOLatin1 F 1000 o f
+( 1983, pp. 319\255322.) h
+300 -30750 M
+(7.) h
+2100 -30750 M
+261.3 0 32 (Hudson, G.P., Yasuda, H., and Sebesty\351n,) W
+300.0 0.0 m
+261.3 0 32 ( ) W
+261.3 0 32 (I. ) W
+2100 -31850 M
+167.8 0 32 (The international standardization of a still pic\255) W
+2100 -32950 M
+117.0 0 32 (ture compression technique.  In ) W
+/Times-Italic-ISOLatin1 F 1000 o f
+117.0 0 32 (Proceedings of) W
+2100 -34050 M
+251.5 0 32 (the IEEE Global Telecommunications Confer\255) W
+2100 -35150 M
+606.0 0 32 (ence, IEEE Communications Society,) W
+/Times-Roman-ISOLatin1 F 1000 o f
+606.0 0 32 ( Nov.) W
+2100 -36250 M
+(1988, pp. 1016\2551021.) h
+300 -37950 M
+(8.) h
+2100 -37950 M
+136.0 0 32 (Huffman, D.A.  A method for the construction) W
+2100 -39050 M
+52.2 0 32 (of minimum redundancy codes.  In ) W
+/Times-Italic-ISOLatin1 F 1000 o f
+52.2 0 32 (Proceedings) W
+2100 -40150 M
+(IRE) h
+/Times-Roman-ISOLatin1 F 1000 o f
+(, vol. 40, 1962, pp. 1098\2551101.) h
+300 -41850 M
+(9.) h
+2100 -41850 M
+186.7 0 32 (L\351ger, A. Implementations of fast discrete co\255) W
+2100 -42950 M
+214.3 0 32 (sine transform for full color videotex services) W
+2100 -44050 M
+342.3 0 32 (and terminals.  In ) W
+/Times-Italic-ISOLatin1 F 1000 o f
+342.3 0 32 (Proceedings of the IEEE) W
+2100 -45150 M
+243.0 0 32 (Global Telecommunications Conference, IEEE) W
+2100 -46250 M
+(Communications Society,) h
+/Times-Roman-ISOLatin1 F 1000 o f
+( 1984, pp. 333\255337.) h
+300 -47950 M
+(10.) h
+2100 -47950 M
+216.5 0 32 (L\351ger, A., Omachi, T., and Wallace, G.  The) W
+2100 -49050 M
+246.2 0 32 (JPEG still picture compression algorithm.  In) W
+2100 -50150 M
+/Times-Italic-ISOLatin1 F 1000 o f
+72.1 0 32 (Optical Engineering) W
+/Times-Roman-ISOLatin1 F 1000 o f
+72.1 0 32 (, vol. 30, no. 7 \(July 1991\),) W
+2100 -51250 M
+(pp. 947\255954.) h
+300 -52950 M
+(11.) h
+2100 -52950 M
+42.5 0 32 (L\351ger, A., Mitchell, M., and Yamazaki, Y.  Still) W
+2100 -54050 M
+18.2 0 32 (picture compression algorithms evaluated for in\255) W
+2100 -55150 M
+223.6 0 32 (ternational standardization.  In P) W
+/Times-Italic-ISOLatin1 F 1000 o f
+223.6 0 32 (roceedings of) W
+2100 -56250 M
+251.5 0 32 (the IEEE Global Telecommunications Confer\255) W
+2100 -57350 M
+606.0 0 32 (ence, IEEE Communications Society,) W
+/Times-Roman-ISOLatin1 F 1000 o f
+606.0 0 32 ( Nov.) W
+2100 -58450 M
+(1988, pp. 1028\2551032.) h
+300 -60150 M
+(12.) h
+2100 -60150 M
+168.0 0 32 (Lohscheller, H.  A subjectively adapted image) W
+2100 -61250 M
+89.8 0 32 (communication system.  ) W
+/Times-Italic-ISOLatin1 F 1000 o f
+89.8 0 32 (IEEE Trans. Commun.) W
+/Times-Roman-ISOLatin1 F 1000 o f
+89.8 0 32 ( ) W
+2100 -62350 M
+(COM\25532 \(Dec. 1984\), pp. 1316\2551322.) h
+2100 -63450 M
+-32040 7200 T
+R
+
+S
+29720 -76121 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(16) h
+R
+
+showpage
+$P e
+
+%%Page: 17 17
+/$P a D
+g N
+0 79200 T
+S
+S
+7200 -2700 T
+N
+0 G
+300 -1200 M
+-7200 2700 T
+R
+
+S
+7200 -74700 T
+N
+0 G
+300 -1200 M
+-7200 74700 T
+R
+
+R
+S
+7200 -7200 T
+N
+0 G
+300 -1050 M
+/Times-Roman-ISOLatin1 $
+/Times-Roman & P
+/Times-Roman-ISOLatin1 F 1000 o f
+(13.) h
+2100 -1050 M
+19.0 0 32 (Office Document Architecture \(ODA\) and Inter\255) W
+2100 -2150 M
+16.9 0 32 (change Format, Part 7:  Raster Graphics Content) W
+2100 -3250 M
+536.5 0 32 (Architectures.  ISO/IEC JTC1 International) W
+2100 -4350 M
+(Standard 8613\2557.) h
+300 -6050 M
+(14.) h
+2100 -6050 M
+307.5 0 32 (Pennebaker, W.B., JPEG Tech. Specification,) W
+2100 -7150 M
+257.0 0 32 (Revision 8. Informal Working paper JPEG\2558\255) W
+2100 -8250 M
+(R8, Aug. 1990.) h
+300 -9950 M
+(15.) h
+2100 -9950 M
+108.1 0 32 (Pennebaker, W.B., Mitchell, J.L., et. al.  Arith\255) W
+2100 -11050 M
+53.1 0 32 (metic coding articles. ) W
+/Times-Italic-ISOLatin1 $
+/Times-Italic & P
+/Times-Italic-ISOLatin1 F 1000 o f
+53.1 0 32 (IBM J. Res. Dev., ) W
+/Times-Roman-ISOLatin1 F 1000 o f
+53.1 0 32 (vol. 32,) W
+2100 -12150 M
+(no. 6  \(Nov. 1988\),  pp. 717\255774.) h
+300 -13850 M
+(16.) h
+2100 -13850 M
+649.0 0 32 (Rao, K.R., and Yip, P. ) W
+/Times-Italic-ISOLatin1 F 1000 o f
+649.0 0 32 (Discrete Cosine) W
+2100 -14950 M
+558.0 0 32 (Transform\255\255Algorithms, Advantages, Applica\255) W
+2100 -16050 M
+(tions) h
+/Times-Roman-ISOLatin1 F 1000 o f
+(.  Academic Press, Inc. London, 1990.) h
+300 -17750 M
+(17.) h
+2100 -17750 M
+129.4 0 32 (Standardization of Group 3 facsimile apparatus) W
+2100 -18850 M
+23.4 0 32 (for document transmission.  CCITT Recommen\255) W
+2100 -19950 M
+272.5 0 32 (dations, Fascicle VII.2, Recommendation T.4,) W
+2100 -21050 M
+(1980.) h
+300 -22750 M
+(18.) h
+2100 -22750 M
+912.8 0 32 (Wallace, G.K. Overview of the JPEG) W
+2100 -23850 M
+119.5 0 32 (\(ISO/CCITT\) still image compression standard. ) W
+2100 -24950 M
+217.0 0 32 (Image Processing Algorithms and Techniques. ) W
+2100 -26050 M
+294.6 0 32 (In ) W
+/Times-Italic-ISOLatin1 F 1000 o f
+294.6 0 32 (Proceedings of the SPIE) W
+/Times-Roman-ISOLatin1 F 1000 o f
+294.6 0 32 (, vol. 1244 \(Feb.) W
+2100 -27150 M
+(1990\), pp. 220\255233.) h
+300 -28850 M
+(19.) h
+2100 -28850 M
+118.9 0 32 (Wallace, G., Vivian, R,. and Poulsen, H.  Sub\255) W
+2100 -29950 M
+158.5 0 32 (jective testing results for still picture compres\255) W
+2100 -31050 M
+8.5 0 32 (sion algorithms for international standardization. ) W
+2100 -32150 M
+56.8 0 32 (In ) W
+/Times-Italic-ISOLatin1 F 1000 o f
+56.8 0 32 (Proceedings of the IEEE Global Telecommu\255) W
+2100 -33250 M
+272.3 0 32 (nications Conference.  IEEE Communications) W
+2100 -34350 M
+(Society,) h
+/Times-Roman-ISOLatin1 F 1000 o f
+( Nov. 1988,  pp. 1022\2551027.) h
+300 -36050 M
+( ) h
+300 -37900 M
+/Times-Bold-ISOLatin1 $
+/Times-Bold & P
+/Times-Bold-ISOLatin1 F 1200 o f
+(Biography) h
+300 -39050 M
+300 -40150 M
+/Times-Roman-ISOLatin1 F 1000 o f
+602.7 0 32 (Gregory K. Wallace is currently Manager of) W
+300 -41250 M
+35.3 0 32 (Multimedia Engineering, Advanced Development, at) W
+300 -42350 M
+185.2 0 32 (Digital Equipment Corporation. Since 1988 he has) W
+300 -43450 M
+222.4 0 32 (served as Chair of the JPEG committee \(ISO/IEC) W
+300 -44550 M
+100.8 0 32 (JTC1/SC2/WG10\).  For the past five years at DEC,) W
+300 -45650 M
+199.3 0 32 (he has worked on efficient software and hardware) W
+300 -46750 M
+979.3 0 32 (implementations of image compression and) W
+300 -47850 M
+1118.3 0 32 (processing algorithms for incorporation in) W
+300 -48950 M
+39.6 0 32 (general\255purpose computing systems. He received the) W
+300 -50050 M
+95.1 0 32 (BSEE and MSEE from Stanford University in 1977) W
+300 -51150 M
+369.7 0 32 (and 1979. His current research interests are the) W
+300 -52250 M
+1132.0 0 32 (integration of robust real\255time multimedia) W
+300 -53350 M
+(capabilities into networked computing systems. ) h
+300 -54450 M
+300 -56150 M
+300 -57546 M
+-7200 7200 T
+R
+
+S
+32040 -7200 T
+N
+0 G
+-32040 7200 T
+R
+
+S
+29912 -76888 M
+/Times-Roman-ISOLatin1 F 1000 o f
+(17) h
+R
+
+showpage
+$P e
+
+$D restore
+%%Trailer
+end % DEC_WRITE_dict
+%%Pages: 17
+%%DocumentFonts: Times-Italic-ISOLatin1
+%%+ Times-Roman-ISOLatin1
+%%+ Times-Bold-ISOLatin1
+%%+ Helvetica-Bold-ISOLatin1
+%%+ Helvetica-ISOLatin1
+%%+ Symbol
+%%+ Courier-ISOLatin1
+%%+ Dutch801-Italic-DECmath_Italic
+%%+ Dutch801-Roman-DECmath_Extension
+%%+ Dutch801-Roman-DECmath_Symbol

Modified: Extractor/src/plugins/thumbnailffmpeg_extractor.c
===================================================================
--- Extractor/src/plugins/thumbnailffmpeg_extractor.c   2012-08-18 13:12:14 UTC 
(rev 23303)
+++ Extractor/src/plugins/thumbnailffmpeg_extractor.c   2012-08-18 14:14:56 UTC 
(rev 23304)
@@ -482,7 +482,6 @@
 #endif
       avformat_close_input (&format_ctx);
       av_free (io_ctx);
-      av_free (iob);
       return;
     }
   codec = NULL;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]